private void btnRunSA_Click(object sender, EventArgs e) { EnableRunButtons(false); try { _watch.Restart(); _watch.Start(); var loopCount = txtSALoopCount.Text.ToInt(); var sa = new SimulatedAnnealingAlgo { NumOfJobs = InputData.NumOfJobs, LoopCount = loopCount }; sa.StartSimulating(); var initText = DisplayUtils.DisplayText(sa.InitJobs.Cmax, sa.InitJobs.JobsPermutation, sa.InitJobs.JobsAssignment); var cMax = sa.ResultCmax; var jobPermutation = sa.ResultJobPermutation; var jobAssignment = sa.ResultJobAssignment; var resultText = DisplayUtils.DisplayText(cMax, jobPermutation, jobAssignment); txtResultSA.Text = $"--- CHOSEN INIT JOBS ---\r\n{initText}\r\n\r\n" + $"--- RESULT JOBS ---\r\n{resultText}"; _watch.Stop(); var time = TimeSpan.FromMilliseconds(_watch.ElapsedMilliseconds).Humanize(4); MessageBox.Show($@"Execution time: {time}.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { EnableRunButtons(); } }
private void btnRunBruteForce_Click(object sender, EventArgs e) { EnableRunButtons(false); try { _watch.Restart(); _watch.Start(); var jobHelper = new JobHelper(); jobHelper.GeneratePermutation(); var cMax = jobHelper.ResultCmax; var jobPermutation = jobHelper.ResultJobPermutation; var jobAssignment = jobHelper.ResultJobAssignments; var displayResultText = DisplayUtils.DisplayText(cMax, jobPermutation, jobAssignment); var displayAlternativeResultText = $"\r\n--- ALTERNATIVE RESULTS --- Found {jobHelper.Results.Count} ---\r\n"; for (var i = 0; i < jobHelper.Results.Count; ++i) { var result = jobHelper.Results[i]; displayAlternativeResultText += $"\r\n=== ({i + 1}) ===\r\n" + result.DisplayText(); } txtResultBF.Text = displayResultText + displayAlternativeResultText; _watch.Stop(); var time = TimeSpan.FromMilliseconds(_watch.ElapsedMilliseconds).Humanize(4); MessageBox.Show($@"Execution time: {time}.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { EnableRunButtons(); } }