private string print_n_queen_result(int[] result) { int n = result.Length; string pr = n + "-Queen problem:\r\n"; for (int i = 0; i < n; i++) { pr += "|"; for (int j = 0; j < n; j++) { if (result[i] == j) { pr += "Q"; } else { pr += " . "; } } pr += "|\r\n"; } n_queens_problem nqp = new n_queens_problem(); if (!nqp.total_satisfaction(result)) { pr += ("Algorithm trapped in local optimum!!"); } return(pr); }
private void button2_Click(object sender, EventArgs e) { textBox1.Text = "searching..."; textBox1.Refresh(); int[] a = helper.generate_random_array(number_of_queen()); ILocal_Search <int[]> h = new first_choise <int[]>(); n_queens_problem nqp = new n_queens_problem(); int[] result = h.solve(nqp, a); textBox1.Text = print_n_queen_result(result); }
private void button9_Click(object sender, EventArgs e) { textBox3.Text = "searching..."; textBox3.Refresh(); double initial_temp = (double)numericUpDown6.Value; double cooling_factor = double.Parse(textBox4.Text); simulated_annealing <int[]> sa = new simulated_annealing <int[]>(initial_temp, cooling_factor); n_queens_problem nqp = new n_queens_problem(); int[] result = sa.solve(nqp, helper.generate_random_array(number_of_queen())); textBox3.Text = print_n_queen_result(result); }
private void button1_Click(object sender, EventArgs e) { textBox1.Text = "searching..."; textBox1.Refresh(); int[] a; ILocal_Search <int[]> h = new best_choise <int[]>(); n_queens_problem nqp = new n_queens_problem(); int[] result; do { a = helper.generate_random_array(number_of_queen()); result = h.solve(nqp, a); } while (!nqp.total_satisfaction(result)); textBox1.Text = print_n_queen_result(result); }
private void button8_Click(object sender, EventArgs e) { textBox2.Text = "searching..."; textBox2.Refresh(); int n_beams = number_of_beams(); int n_queen = number_of_queen(); int[][] initialize_beams = new int[n_beams][]; for (int i = 0; i < n_beams; i++) { initialize_beams[i] = helper.generate_random_array(n_queen); } local_beam_search <int[]> lbs = new local_beam_search <int[]>(); n_queens_problem nqp = new n_queens_problem(); int[] result = lbs.solve(nqp, initialize_beams, n_beams); textBox2.Text = print_n_queen_result(result); }