57{
58 std::cout << "\nComparing All Methods with Default Parameters...\n";
59
60
61 std::cout << "\nDefault Parameters:\n";
62 std::cout <<
"Initial x: " << std::fixed << std::setprecision(4) << params.
x0
63 <<
", Initial y: " << params.
y0 <<
"\n";
64 std::cout <<
"Steepest Descent alpha: " << params.
alpha_sd
66 <<
", tol: " << std::scientific << std::setprecision(3) << params.
tol_sd << std::fixed <<
"\n";
67 std::cout <<
"Conjugate Gradient maxIter: " << params.
maxIter_cg
68 <<
", tol: " << std::scientific << std::setprecision(3) << params.
tol_cg << std::fixed <<
"\n";
69 std::cout <<
"Simulated Annealing T0: " << params.
T0_sa
70 <<
", Tmin: " << std::scientific << std::setprecision(3) << params.
Tmin_sa
71 << std::fixed <<
", alpha: " << params.
alpha_sa
75 <<
", mutationRate: " << std::fixed << std::setprecision(4) << params.
mutationRate_ga
77
78
83
84
85 std::cout << "\nResults:\n";
86
87
88 std::cout << "Steepest Descent Method:\n";
89 std::cout <<
"Minimum at (" << std::fixed << std::setprecision(5) << res_sd.
x <<
", " << res_sd.
y <<
")\n";
90 std::cout <<
"Minimum value: " << std::fixed << std::setprecision(5) << res_sd.
f <<
"\n";
91 std::cout <<
"Total iterations: " << res_sd.
iterations <<
"\n";
92 std::cout <<
"Execution Time: " << std::scientific << std::setprecision(3) << res_sd.
duration <<
" seconds\n\n";
93
94
95 std::cout << "Conjugate Gradient Method:\n";
96 std::cout <<
"Minimum at (" << std::fixed << std::setprecision(5) << res_cg.
x <<
", " << res_cg.
y <<
")\n";
97 std::cout <<
"Minimum value: " << std::fixed << std::setprecision(5) << res_cg.
f <<
"\n";
98 std::cout <<
"Total iterations: " << res_cg.
iterations <<
"\n";
99 std::cout <<
"Execution Time: " << std::scientific << std::setprecision(3) << res_cg.
duration <<
" seconds\n\n";
100
101
102 std::cout << "Simulated Annealing:\n";
103 std::cout <<
"Minimum at (" << std::fixed << std::setprecision(5) << res_sa.
x <<
", " << res_sa.
y <<
")\n";
104 std::cout <<
"Minimum value: " << std::fixed << std::setprecision(5) << res_sa.
f <<
"\n";
105 std::cout <<
"Total iterations: " << res_sa.
iterations <<
"\n";
106 std::cout <<
"Execution Time: " << std::scientific << std::setprecision(3) << res_sa.
duration <<
" seconds\n\n";
107
108
109 std::cout << "Genetic Algorithm:\n";
110 std::cout <<
"Minimum at (" << std::fixed << std::setprecision(5) << res_ga.
x <<
", " << res_ga.
y <<
")\n";
111 std::cout <<
"Minimum value: " << std::fixed << std::setprecision(5) << res_ga.
f <<
"\n";
112 std::cout <<
"Total iterations: " << res_ga.
iterations <<
"\n";
113 std::cout <<
"Execution Time: " << std::scientific << std::setprecision(3) << res_ga.
duration <<
" seconds\n";
114}
Result simulatedAnnealing(double x0, double y0, double T0, double Tmin, double alpha, int maxIter)
Result steepestDescent(double x0, double y0, double alpha, int maxIter, double tol)
Result conjugateGradient(double x0, double y0, int maxIter, double tol)
Result geneticAlgorithm(int populationSize, int generations, double mutationRate, double crossoverRate)