Skip to content

Commit dc38c73

Browse files
authored
Merge pull request #235 from pobonomo/master
otfix to L2O Part 1 notebook: Computation of violations and objective in notebook
2 parents cc33391 + c3f09a0 commit dc38c73

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

examples/parametric_programming/Part_1_basics.ipynb

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -936,7 +936,7 @@
936936
" con_viol_mean = np.mean(con_viol)\n",
937937
" return con_viol_mean\n",
938938
"\n",
939-
"def eval_objective(x, y):\n",
939+
"def eval_objective(x, y, a):\n",
940940
" obj_value_mean = np.mean((1 - x) ** 2 + a * (y - x ** 2) ** 2) \n",
941941
" return obj_value_mean\n",
942942
"\n",
@@ -978,7 +978,7 @@
978978
"t = time.time()\n",
979979
"x_solver, y_solver = [], []\n",
980980
"for i in range(0, n_samples):\n",
981-
" prob, x, y = NLP_param(p_samples[i].numpy(), a_samples[i].numpy(), opti_silent=True)\n",
981+
" prob, x, y = NLP_param(a_samples[i].numpy(), p_samples[i].numpy(), opti_silent=True)\n",
982982
" sol = prob.solve()\n",
983983
" x_solver.append(sol.value(x))\n",
984984
" y_solver.append(sol.value(y))\n",
@@ -1002,33 +1002,33 @@
10021002
"name": "stdout",
10031003
"output_type": "stream",
10041004
"text": [
1005-
"Solution for 1000 problems via Neuromancer obtained in 0.0038 seconds\n",
1006-
"Neuromancer mean constraints violation 0.3537\n",
1007-
"Neuromancer mean objective value 0.0610\n",
1005+
"Solution for 1000 problems via Neuromancer obtained in 0.0074 seconds\n",
1006+
"Neuromancer mean constraints violation 0.0000\n",
1007+
"Neuromancer mean objective value 0.0550\n",
10081008
"\n",
1009-
"Solution for 1000 problems via solver obtained in 9.5317 seconds\n",
1010-
"Solver mean constraints violation 0.0746\n",
1011-
"Solver mean objective value 0.2036\n",
1009+
"Solution for 1000 problems via solver obtained in 4.4246 seconds\n",
1010+
"Solver mean constraints violation 0.0000\n",
1011+
"Solver mean objective value 0.0468\n",
10121012
"\n",
1013-
"Solution speedup factor 2540.9132\n",
1014-
"MSE primal optimizers: 0.11051816632586187\n",
1015-
"mean objective value discrepancy: 70.02 %\n"
1013+
"Solution speedup factor 598.4203\n",
1014+
"MSE primal optimizers: 0.1598999456654803\n",
1015+
"mean objective value discrepancy: 17.48 %\n"
10161016
]
10171017
}
10181018
],
10191019
"source": [
10201020
"# Evaluate neuromancer solution\n",
10211021
"print(f'Solution for {n_samples} problems via Neuromancer obtained in {nm_time:.4f} seconds')\n",
1022-
"nm_con_viol_mean = eval_constraints(x_nm, y_nm, p)\n",
1022+
"nm_con_viol_mean = eval_constraints(x_nm.ravel(), y_nm.ravel(), p_samples.numpy().ravel())\n",
10231023
"print(f'Neuromancer mean constraints violation {nm_con_viol_mean:.4f}')\n",
1024-
"nm_obj_mean = eval_objective(x_nm, y_nm)\n",
1024+
"nm_obj_mean = eval_objective(x_nm.ravel(), y_nm.ravel(), a_samples.numpy().ravel())\n",
10251025
"print(f'Neuromancer mean objective value {nm_obj_mean:.4f}\\n')\n",
10261026
"\n",
10271027
"# Evaluate solver solution\n",
10281028
"print(f'Solution for {n_samples} problems via solver obtained in {solver_time:.4f} seconds')\n",
1029-
"solver_con_viol_mean = eval_constraints(x_solver, y_solver, p)\n",
1029+
"solver_con_viol_mean = eval_constraints(x_solver, y_solver, p_samples.numpy().ravel())\n",
10301030
"print(f'Solver mean constraints violation {solver_con_viol_mean:.4f}')\n",
1031-
"solver_obj_mean = eval_objective(x_solver, y_solver)\n",
1031+
"solver_obj_mean = eval_objective(x_solver, y_solver, a_samples.numpy().ravel())\n",
10321032
"print(f'Solver mean objective value {solver_obj_mean:.4f}\\n')\n",
10331033
"\n",
10341034
"# neuromancer solver comparison\n",

0 commit comments

Comments
 (0)