private void startButton_Click(object sender, System.EventArgs e)
{
// get network size
try
{
networkSize = Math.Max(5, Math.Min(50, int.Parse(sizeBox.Text)));
}
catch
{
networkSize = 15;
}
// get iterations count
try
{
iterations = Math.Max(10, Math.Min(1000000, int.Parse(iterationsBox.Text)));
}
catch
{
iterations = 500;
}
// get learning rate
try
{
learningRate = Math.Max(0.00001, Math.Min(1.0, double.Parse(rateBox.Text)));
}
catch
{
learningRate = 0.3;
}
// get radius
try
{
learningRadius = Math.Max(1, Math.Min(30, int.Parse(radiusBox.Text)));
}
catch
{
learningRadius = 3;
}
// update settings controls
UpdateSettings();
// disable all settings controls except "Stop" button
EnableControls(false);
// generate training set
for (int i = 0; i < pointsCount; i++)
{
// create new training sample
trainingSet[i] = new double[2] { points[i, 0], points[i, 1] };
}
// run worker thread
needToStop = false;
workerThread = new Thread(new ThreadStart(SearchSolution));
workerThread.Start();
}