Exemple #1
0
        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();
            }
        }
Exemple #2
0
        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();
            }
        }