Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions benchmarks/macmpec/run_macmpec_experiments_debug.m
Original file line number Diff line number Diff line change
Expand Up @@ -60,39 +60,39 @@
"$\ell_{\infty}$-MPEC","Reg-MPEC-stop",'mpecopt','reg','reg','reg'];


default_opts1 = MPECOptimizerOptions();
default_opts1 = mpecopt.Options();
default_opts1.solver_name = solver_names{1};
default_opts1.settings_lpec.lpec_solver = "Gurobi";

default_opts2 = MPECOptimizerOptions();
default_opts2 = mpecopt.Options();
default_opts2.solver_name = solver_names{2};
default_opts2.settings_lpec.lpec_solver = "Highs";
default_opts2.rho_TR_phase_i_init = 1e-3;

default_opts3 = MPECOptimizerOptions();
default_opts3 = mpecopt.Options();
default_opts3.solver_name = solver_names{3};
default_opts3.settings_lpec.lpec_solver = "Reg";
default_opts3.stop_if_S_stationary = 0;

default_opts4 = MPECOptimizerOptions();
default_opts4 = mpecopt.Options();
default_opts4.solver_name = solver_names{4};
default_opts4.settings_lpec.lpec_solver = "Ell_1";

default_opts5 = MPECOptimizerOptions();
default_opts5 = mpecopt.Options();
default_opts5.solver_name = solver_names{5};
default_opts5.settings_lpec.lpec_solver = "Ell_inf";


default_opts6 = MPECOptimizerOptions();
default_opts6 = mpecopt.Options();
default_opts6.solver_name = solver_names{6};
default_opts6.settings_lpec.lpec_solver = "Reg";
default_opts6.stop_if_S_stationary = 1;

default_opts7 = MPECOptimizerOptions();
default_opts7 = mpecopt.Options();
default_opts7.solver_name = solver_names{7};
% default_opts7.settings_lpec.lpec_solver = 'Scholtes';

default_opts8 = MPECOptimizerOptions();
default_opts8 = mpecopt.Options();
default_opts8.solver_name = solver_names{8};
% default_opts8.settings_lpec.lpec_solver = 'Scholtes';

Expand Down
6 changes: 3 additions & 3 deletions benchmarks/macmpec/run_macmpec_experiments_general.m
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@
solver_functions = {@mpec_optimizer,@mpec_optimizer,@mpec_optimizer,...
@mpec_homotopy_solver,@mpec_homotopy_solver,@mpec_homotopy_solver};

default_opts1 = MPECOptimizerOptions();
default_opts1 = mpecopt.Options();
default_opts1.solver_name = solver_names{1};

default_opts2 = MPECOptimizerOptions();
default_opts2 = mpecopt.Options();
default_opts2.solver_name = solver_names{2};
default_opts2.settings_lpec.lpec_solver = "Highs";
default_opts2.rho_TR_phase_i_init = 1e-3;

default_opts3 = MPECOptimizerOptions();
default_opts3 = mpecopt.Options();
default_opts3.solver_name = solver_names{3};
default_opts3.relax_and_project_homotopy_parameter_steering = "Ell_1";
% default_opts3.bnlp_projection_strategy = "Simple";
Expand Down
10 changes: 5 additions & 5 deletions benchmarks/macmpec/run_macmpec_experiments_lpec.m
Original file line number Diff line number Diff line change
Expand Up @@ -51,24 +51,24 @@
solver_functions = {@mpec_optimizer,@mpec_optimizer,@mpec_optimizer,...
@mpec_optimizer,@mpec_optimizer,@mpec_optimizer};

default_opts1 = MPECOptimizerOptions();
default_opts1 = mpecopt.Options();
default_opts1.solver_name = solver_names{1};
default_opts1.settings_lpec.lpec_solver = "Gurobi";

default_opts2 = MPECOptimizerOptions();
default_opts2 = mpecopt.Options();
default_opts2.solver_name = solver_names{2};
default_opts2.settings_lpec.lpec_solver = "Highs";
default_opts2.rho_TR_phase_i_init = 1e-3;

default_opts3 = MPECOptimizerOptions();
default_opts3 = mpecopt.Options();
default_opts3.solver_name = solver_names{3};
default_opts3.settings_lpec.lpec_solver = "Reg";

default_opts4 = MPECOptimizerOptions();
default_opts4 = mpecopt.Options();
default_opts4.solver_name = solver_names{4};
default_opts4.settings_lpec.lpec_solver = "Ell_1";

default_opts5 = MPECOptimizerOptions();
default_opts5 = mpecopt.Options();
default_opts5.solver_name = solver_names{5};
default_opts5.settings_lpec.lpec_solver = "Ell_inf";

Expand Down
12 changes: 6 additions & 6 deletions benchmarks/macmpec/run_macmpec_experiments_phase_i.m
Original file line number Diff line number Diff line change
Expand Up @@ -54,27 +54,27 @@
solver_functions = {@mpec_optimizer,@mpec_optimizer,@mpec_optimizer,...
@mpec_optimizer,@mpec_optimizer,@mpec_optimizer};

default_opts1 = MPECOptimizerOptions();
default_opts1 = mpecopt.Options();
default_opts1.solver_name = solver_names{1};

default_opts2 = MPECOptimizerOptions();
default_opts2 = mpecopt.Options();
default_opts2.solver_name = solver_names{2};
default_opts2.bnlp_projection_strategy = "Simple";

default_opts3 = MPECOptimizerOptions();
default_opts3 = mpecopt.Options();
default_opts3.solver_name = solver_names{3};
default_opts3.relax_and_project_homotopy_parameter_steering = "Ell_inf";

default_opts4 = MPECOptimizerOptions();
default_opts4 = mpecopt.Options();
default_opts4.solver_name = solver_names{4};
default_opts4.relax_and_project_homotopy_parameter_steering = "Ell_1";

default_opts5 = MPECOptimizerOptions();
default_opts5 = mpecopt.Options();
default_opts5.solver_name = solver_names{5};
default_opts5.initialization_strategy = "FeasibilityEll1General";
default_opts5.rho_TR_phase_i_init = 1e0;

default_opts6 = MPECOptimizerOptions();
default_opts6 = mpecopt.Options();
default_opts6.solver_name = solver_names{6};
default_opts6.initialization_strategy = "FeasibilityEllInfGeneral";
default_opts6.rho_TR_phase_i_init = 1e0;
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/macmpec/solve_single_macmpec_problem.m
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
% solver_initalization.w0 = w_opt;
%% mpecopt
fprintf('Problem info, n_w = %d, n_g = %d, n_comp = %d, name = %s\n', length(w),length(g),length(G),name)
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.settings_lpec.lpec_solver = 'Highs_casadi';

[results,stats] = mpec_optimizer(mpec, solver_initalization, solver_settings);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,15 @@
solver_functions = {@mpec_optimizer,@mpec_optimizer,@mpec_optimizer,...
@mpec_homotopy_solver,@mpec_homotopy_solver,@mpec_homotopy_solver};

default_opts1 = MPECOptimizerOptions();
default_opts1 = mpecopt.Options();
default_opts1.solver_name = solver_names{1};

default_opts2 = MPECOptimizerOptions();
default_opts2 = mpecopt.Options();
default_opts2.solver_name = solver_names{2};
default_opts2.settings_lpec.lpec_solver = "Highs";
default_opts2.rho_TR_phase_i_init = 1e-3;

default_opts3 = MPECOptimizerOptions();
default_opts3 = mpecopt.Options();
default_opts3.solver_name = solver_names{3};
default_opts3.relax_and_project_homotopy_parameter_steering = "Ell_1";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,27 +84,27 @@
solver_functions = {@mpec_optimizer,@mpec_optimizer,@mpec_optimizer,...
@mpec_optimizer,@mpec_optimizer,@mpec_optimizer};

default_opts1 = MPECOptimizerOptions();
default_opts1 = mpecopt.Options();
default_opts1.solver_name = solver_names{1};

default_opts2 = MPECOptimizerOptions();
default_opts2 = mpecopt.Options();
default_opts2.solver_name = solver_names{2};
default_opts2.bnlp_projection_strategy = "Simple";

default_opts3 = MPECOptimizerOptions();
default_opts3 = mpecopt.Options();
default_opts3.solver_name = solver_names{3};
default_opts3.relax_and_project_homotopy_parameter_steering = "Ell_inf";

default_opts4 = MPECOptimizerOptions();
default_opts4 = mpecopt.Options();
default_opts4.solver_name = solver_names{4};
default_opts4.relax_and_project_homotopy_parameter_steering = "Ell_1";

default_opts5 = MPECOptimizerOptions();
default_opts5 = mpecopt.Options();
default_opts5.solver_name = solver_names{5};
default_opts5.initialization_strategy = "FeasibilityEll1General";
default_opts5.rho_TR_phase_i_init = 1e0;

default_opts6 = MPECOptimizerOptions();
default_opts6 = mpecopt.Options();
default_opts6.solver_name = solver_names{6};
default_opts6.initialization_strategy = "FeasibilityEllInfGeneral";
default_opts6.rho_TR_phase_i_init = 1e0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
% solver_initalization.w0 = w_opt_homotopy;
% mpecopt
fprintf('Problem info, n_w = %d, n_g = %d, n_comp = %d, name = %s\n', length(w),length(g),length(G),mpec_name)
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.plot_mpec_multipliers = true;
% solver_settings.rho_TR_phase_i_init = 1e1;
solver_settings.stop_if_S_stationary = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
solver_names = ["MPEC armin", 'Scholtes direct']; % names of solvers (used for plotting) (strings)
solver_functions = {@mpec_optimizer, @mpec_homotopy_solver};

default_opts1 = MPECOptimizerOptions();
default_opts1 = mpecopt.Options();
default_opts1.solver_name = solver_names{1};
default_opts1.initialization_strategy = 'RelaxAndProject';
default_opts1.relax_and_project_homotopy_parameter_steering = "Direct";
Expand Down
4 changes: 2 additions & 2 deletions examples/byrd2008_example3_mpcc.m
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
f_opt_homotopy = full(result_homotopy.f);
w_opt_homotopy = full(result_homotopy.x);
%% Settings
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.consider_all_complementarities_in_lpec = false;
solver_settings.plot_lpec_iterate = 1;
% solver_settings.settings_lpec.lpec_solver = 'Ell_inf';
Expand All @@ -37,7 +37,7 @@
% [result_active_set,stats_active_set] = mpec_optimizer(mpec, solver_initalization, solver_settings);

% Create solver object
solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
% solve problem
[result_active_set,stats_active_set] = solver.solve(solver_initalization);

Expand Down
2 changes: 1 addition & 1 deletion examples/cardinality_optimization.m
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
f_opt_homotopy = full(result_homotopy.f);
w_opt_homotopy = full(result_homotopy.x);
%% Settings
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
% solver_settings.settings_lpec.lpec_solver = "Highs_casadi";
% solver_settings.settings_lpec.lpec_solver = "Gurobi";
solver_settings.rho_TR_phase_i_init = 1e-1;
Expand Down
4 changes: 2 additions & 2 deletions examples/different_stationarity_types.m
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@
w_opt_reg = full(sol.x);
f_opt_reg = full(sol.f);
%% mpecopt
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.initialization_strategy = "TakeInitialGuessDirectly";
% [result_active_set,stats_active_set] = mpec_optimizer(mpec, solver_initalization, solver_settings);

solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
[result_active_set,stats_active_set] = solver.solve(solver_initalization);

w_opt_active_set = full(result_active_set.x);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
mpec = struct('x', x,'f',f, 'g',g,'G',G,'H',H);
solver_initalization = struct('x0', x0, 'lbx',lbx, 'ubx',ubx,'lbg',lbg, 'ubg',ubg);
%% Settings
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.initialization_strategy = "TakeInitialGuessDirectly";
solver_settings.consider_all_complementarities_in_lpec = 1;
solver_settings.rho_TR_phase_ii_init = 1.5;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
%% Settings
% x0 = [1/a;0];
% x0 = [2;0];
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.settings_lpec.lpec_solver ="Gurobi";
solver_settings.initialization_strategy = "RelaxAndProject";
x0 = [0;0.5];
Expand Down
2 changes: 1 addition & 1 deletion examples/examples_in_mpecopt_paper/scale1_mpcc.m
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
%% Settings
% x0 = [1/a;0];
x0 = [1/a;0];
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.settings_lpec.lpec_solver ="Gurobi";
solver_settings.initialization_strategy = "TakeInitialGuessDirectly";
solver_settings.consider_all_complementarities_in_lpec = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@

tau0 = (settings.kappa)^(settings.max_iter-1)*tau0;
%%
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
% solver_initalization = struct('x0', x0, 'lbx',lbx, 'ubx',ubx,'lbg',lbg, 'ubg',ubg);
% [result_active_set,stats_active_set] = mpec_optimizer(mpec, solver_initalization, solver_settings);
% x_opt_active_set = full(result_active_set.x);
Expand Down
4 changes: 2 additions & 2 deletions examples/getting_started.m
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

%% MPECopt
% Solver settings
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
% change some settings
solver_settings.settings_lpec.lpec_solver = 'Highs_casadi' ; % 'Gurobi'; for best perfomance; 'Highs_casadi' - via CasADi conic
solver_settings.settings_casadi_nlp.ipopt.linear_solver = 'mumps'; % 'ma27' for better perfomance
Expand All @@ -55,7 +55,7 @@
% Call solver
% [result_active_set,stats_active_set] = mpec_optimizer(mpec, solver_initalization, solver_settings);

solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
% solve problem
[result_active_set,stats_active_set] = solver.solve(solver_initalization);

Expand Down
4 changes: 2 additions & 2 deletions examples/kirches2022_aug_lag_bnlp.m
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,15 @@
x_opt_scholtes = full(result_scholtes.x);

% x0 = w_opt_scholtes;
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.initialization_strategy = "TakeInitialGuessDirectly";
solver_settings.consider_all_complementarities_in_lpec = true;
solver_settings.settings_lpec.lpec_solver = "Projected_Gradient"; % for bound constraints, LPEC has explicit solution.
% solver_settings.settings_lpec.lpec_solver = "Gurobi"; % for bound constraints, LPEC has explicit solution.
solver_initalization.x0 = x0;
%
% [result_active_set,stats_active_set] = mpec_optimizer(mpec, solver_initalization, solver_settings);
solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
% solve problem
[result_active_set,stats_active_set] = solver.solve(solver_initalization);

Expand Down
4 changes: 2 additions & 2 deletions examples/kirches2022_ex1.m
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@
x_opt_scholtes = full(result_scholtes.x);

% x0 = w_opt_scholtes;
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
% solver_settings.initialization_strategy = "TakeInitialGuessDirectly";
solver_settings.consider_all_complementarities_in_lpec = true;
solver_settings.tol_B_stationarity = 1e-8;
solver_settings.rho_TR_phase_ii_init = 1e-2;
% solver_initalization.x0 = x0;

solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
[result_active_set,stats_active_set] = solver.solve(solver_initalization);


Expand Down
4 changes: 2 additions & 2 deletions examples/knitro_example.m
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@
lbg = zeros(4,1);
ubg = zeros(4,1);

solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.relax_and_project_homotopy_parameter_steering = "Direct";
solver_settings.initialization_strategy = "FeasibilityEll1General";


% [sol_active_set,stats_active_set] = mpec_optimizer(mpec, solver_initalization, solver_settings);
solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
[sol_active_set,stats_active_set] = solver.solve(solver_initalization);


Expand Down
4 changes: 2 additions & 2 deletions examples/leyffer2007_ex1.m
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
w_opt = full(result_scholtes.x);
f_opt_scholtes = full(result_scholtes.f);
% Pivoting
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.settings_lpec.lpec_solver = "Highs_casadi";
solver_settings.initialization_strategy ="RelaxAndProject";
solver_settings.relax_and_project_homotopy_parameter_steering = "Ell_inf";
Expand All @@ -40,7 +40,7 @@
% solver_settings.initialization_strategy ="TakeProvidedActiveSet";
% solver_initalization.y0 = 0;

solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
[result_active_set,stats_active_set] = solver.solve(solver_initalization);

w_opt_active_set = full(result_active_set.x);
Expand Down
4 changes: 2 additions & 2 deletions examples/leyffer2007_ex2.m
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
f_opt_scholtes = full(result_homotopy.f);
%%
% Pivoting
solver_settings = MPECOptimizerOptions();
solver_settings = mpecopt.Options();
solver_settings.settings_lpec.lpec_solver ="Highs";
solver_settings.initialization_strategy = "TakeInitialGuessDirectly";
solver_settings.consider_all_complementarities_in_lpec = 1; % indentifying the biactive set fails and wrong sol?
Expand All @@ -45,7 +45,7 @@

% [result_active_set,stats_active_set] = mpec_optimizer(mpec, solver_initalization, solver_settings);

solver = Mpecopt(mpec, solver_settings);
solver = mpecopt.Solver(mpec, solver_settings);
[result_active_set,stats_active_set] = solver.solve(solver_initalization);

x_opt_active_set = full(result_active_set.x);
Expand Down
Loading