diff --git a/benchmarks/macmpec/run_macmpec_experiments_debug.m b/benchmarks/macmpec/run_macmpec_experiments_debug.m index b32611b..07adfd6 100644 --- a/benchmarks/macmpec/run_macmpec_experiments_debug.m +++ b/benchmarks/macmpec/run_macmpec_experiments_debug.m @@ -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'; diff --git a/benchmarks/macmpec/run_macmpec_experiments_general.m b/benchmarks/macmpec/run_macmpec_experiments_general.m index 8f52d89..40a675c 100644 --- a/benchmarks/macmpec/run_macmpec_experiments_general.m +++ b/benchmarks/macmpec/run_macmpec_experiments_general.m @@ -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"; diff --git a/benchmarks/macmpec/run_macmpec_experiments_lpec.m b/benchmarks/macmpec/run_macmpec_experiments_lpec.m index 107130c..e05021e 100644 --- a/benchmarks/macmpec/run_macmpec_experiments_lpec.m +++ b/benchmarks/macmpec/run_macmpec_experiments_lpec.m @@ -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"; diff --git a/benchmarks/macmpec/run_macmpec_experiments_phase_i.m b/benchmarks/macmpec/run_macmpec_experiments_phase_i.m index d2e919f..b02a8ee 100644 --- a/benchmarks/macmpec/run_macmpec_experiments_phase_i.m +++ b/benchmarks/macmpec/run_macmpec_experiments_phase_i.m @@ -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; diff --git a/benchmarks/macmpec/solve_single_macmpec_problem.m b/benchmarks/macmpec/solve_single_macmpec_problem.m index 7c28435..1abaf90 100644 --- a/benchmarks/macmpec/solve_single_macmpec_problem.m +++ b/benchmarks/macmpec/solve_single_macmpec_problem.m @@ -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); diff --git a/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark.m b/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark.m index c42d4f9..f809787 100644 --- a/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark.m +++ b/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark.m @@ -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"; diff --git a/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark_phase_i.m b/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark_phase_i.m index 9890fe4..50da46e 100644 --- a/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark_phase_i.m +++ b/benchmarks/nonlinear_mpec_benchmark/run_nonlinear_mpec_benchmark_phase_i.m @@ -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; diff --git a/benchmarks/nonlinear_mpec_benchmark/solve_single_problem_nonlinear_mpec.m b/benchmarks/nonlinear_mpec_benchmark/solve_single_problem_nonlinear_mpec.m index bc17b84..16369fe 100644 --- a/benchmarks/nonlinear_mpec_benchmark/solve_single_problem_nonlinear_mpec.m +++ b/benchmarks/nonlinear_mpec_benchmark/solve_single_problem_nonlinear_mpec.m @@ -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; diff --git a/benchmarks/nonlinear_mpec_benchmark/try_early_termination.m b/benchmarks/nonlinear_mpec_benchmark/try_early_termination.m index 90ab6df..26de1b6 100644 --- a/benchmarks/nonlinear_mpec_benchmark/try_early_termination.m +++ b/benchmarks/nonlinear_mpec_benchmark/try_early_termination.m @@ -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"; diff --git a/examples/byrd2008_example3_mpcc.m b/examples/byrd2008_example3_mpcc.m index 27d2886..675fa7f 100644 --- a/examples/byrd2008_example3_mpcc.m +++ b/examples/byrd2008_example3_mpcc.m @@ -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'; @@ -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); diff --git a/examples/cardinality_optimization.m b/examples/cardinality_optimization.m index 56b2999..4a92034 100644 --- a/examples/cardinality_optimization.m +++ b/examples/cardinality_optimization.m @@ -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; diff --git a/examples/different_stationarity_types.m b/examples/different_stationarity_types.m index 6fadbe2..5e45520 100644 --- a/examples/different_stationarity_types.m +++ b/examples/different_stationarity_types.m @@ -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); diff --git a/examples/examples_in_mpecopt_paper/global_vs_local_min_in_lpec.m b/examples/examples_in_mpecopt_paper/global_vs_local_min_in_lpec.m index bd1d911..28a08f1 100644 --- a/examples/examples_in_mpecopt_paper/global_vs_local_min_in_lpec.m +++ b/examples/examples_in_mpecopt_paper/global_vs_local_min_in_lpec.m @@ -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; diff --git a/examples/examples_in_mpecopt_paper/lpec_projection_example.m b/examples/examples_in_mpecopt_paper/lpec_projection_example.m index e09092d..062336f 100644 --- a/examples/examples_in_mpecopt_paper/lpec_projection_example.m +++ b/examples/examples_in_mpecopt_paper/lpec_projection_example.m @@ -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]; diff --git a/examples/examples_in_mpecopt_paper/scale1_mpcc.m b/examples/examples_in_mpecopt_paper/scale1_mpcc.m index 38f7b65..1c4a296 100644 --- a/examples/examples_in_mpecopt_paper/scale1_mpcc.m +++ b/examples/examples_in_mpecopt_paper/scale1_mpcc.m @@ -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; diff --git a/examples/examples_in_mpecopt_paper/wrong_bnlp_identification.m b/examples/examples_in_mpecopt_paper/wrong_bnlp_identification.m index 96fdac4..a44276b 100644 --- a/examples/examples_in_mpecopt_paper/wrong_bnlp_identification.m +++ b/examples/examples_in_mpecopt_paper/wrong_bnlp_identification.m @@ -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); diff --git a/examples/getting_started.m b/examples/getting_started.m index 976ea8e..213bdca 100644 --- a/examples/getting_started.m +++ b/examples/getting_started.m @@ -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 @@ -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); diff --git a/examples/kirches2022_aug_lag_bnlp.m b/examples/kirches2022_aug_lag_bnlp.m index 6abe95a..1b00add 100644 --- a/examples/kirches2022_aug_lag_bnlp.m +++ b/examples/kirches2022_aug_lag_bnlp.m @@ -63,7 +63,7 @@ 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. @@ -71,7 +71,7 @@ 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); diff --git a/examples/kirches2022_ex1.m b/examples/kirches2022_ex1.m index a42df72..eeb67a5 100644 --- a/examples/kirches2022_ex1.m +++ b/examples/kirches2022_ex1.m @@ -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); diff --git a/examples/knitro_example.m b/examples/knitro_example.m index 9196b73..c5ac8c9 100644 --- a/examples/knitro_example.m +++ b/examples/knitro_example.m @@ -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); diff --git a/examples/leyffer2007_ex1.m b/examples/leyffer2007_ex1.m index 88b7ae4..0eea027 100644 --- a/examples/leyffer2007_ex1.m +++ b/examples/leyffer2007_ex1.m @@ -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"; @@ -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); diff --git a/examples/leyffer2007_ex2.m b/examples/leyffer2007_ex2.m index 9603d9d..b0aa164 100644 --- a/examples/leyffer2007_ex2.m +++ b/examples/leyffer2007_ex2.m @@ -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? @@ -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); diff --git a/examples/ralph2_mpcc.m b/examples/ralph2_mpcc.m index abe5161..ffd3d56 100644 --- a/examples/ralph2_mpcc.m +++ b/examples/ralph2_mpcc.m @@ -30,7 +30,7 @@ x_opt_homotopy = full(result_homotopy.x); fprintf('x_opt = (%2.4f,%2.4f), f_opt = %2.4f. \n',x_opt_homotopy(1),x_opt_homotopy(2),f_opt_homotopy); %% Settings -solver_settings = MPECOptimizerOptions(); +solver_settings = mpecopt.Options(); solver_settings.settings_lpec.lpec_solver ="Gurobi"; % solver_settings.initialization_strategy = "TakeInitialGuessDirectly"; % solver_settings.initialization_strategy = "RelaxAndProject"; @@ -44,7 +44,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); diff --git a/src/options/MPECOptimizerOptions.m b/src/+mpecopt/Options.m similarity index 99% rename from src/options/MPECOptimizerOptions.m rename to src/+mpecopt/Options.m index 4ee149a..b22a900 100644 --- a/src/options/MPECOptimizerOptions.m +++ b/src/+mpecopt/Options.m @@ -1,6 +1,6 @@ % Copyright (c) 2024, Armin Nurkanović % TODO: allow passing no lbg ubg and assume g empty in this case; and vice versa -classdef MPECOptimizerOptions < handle +classdef Options < handle properties % General solver_name {mustBeTextScalar} = 'MPECopt'; @@ -112,7 +112,7 @@ end methods - function obj = MPECOptimizerOptions() + function obj = Options() obj.settings_lpec = LPECSolverOptions(); % obj.settings_lpec.solver_name = 'lpec_solver'; % obj.settings_lpec.lpec_solver= LpecSolver.Gurobi; diff --git a/src/Mpecopt.m b/src/+mpecopt/Solver.m similarity index 99% rename from src/Mpecopt.m rename to src/+mpecopt/Solver.m index 9271a9c..5b61ce9 100644 --- a/src/Mpecopt.m +++ b/src/+mpecopt/Solver.m @@ -1,4 +1,4 @@ -classdef Mpecopt < handle & matlab.mixin.indexing.RedefinesParen +classdef Solver < handle & matlab.mixin.indexing.RedefinesParen properties opts % all options of mpecopt mpec % casadi expressions defining the mpec/mpcc @@ -10,7 +10,7 @@ end methods - function obj = Mpecopt(mpec, opts) + function obj = Solver(mpec, opts) t_prepare_mpec = tic; obj.opts = opts; obj.mpec = mpec; diff --git a/test/TestPhaseOneOpts.m b/test/TestPhaseOneOpts.m index 7324584..7c62f12 100644 --- a/test/TestPhaseOneOpts.m +++ b/test/TestPhaseOneOpts.m @@ -40,12 +40,12 @@ function test_initialization_strategy(tc,initialization_strategy) mpec = struct('x', w, 'f', f, 'g', g,'p',p,'G',G ,'H',H); solver_initalization = struct('x0', x0, 'lbx',lbw, 'ubx',ubw,'lbg',lbg, 'ubg',ubg,'p0',1, 'y0', [0;1;1]); - opts = MPECOptimizerOptions(); + opts = mpecopt.Options(); opts.initialization_strategy = initialization_strategy; %opts.verbose_solver = false; %opts.verbose_summary = false; - solver = Mpecopt(mpec, opts); + solver = mpecopt.Solver(mpec, opts); [sol,stats] = solver.solve(solver_initalization); end end diff --git a/test/TestPhaseTwoOpts.m b/test/TestPhaseTwoOpts.m index 60239aa..b01aa26 100644 --- a/test/TestPhaseTwoOpts.m +++ b/test/TestPhaseTwoOpts.m @@ -40,12 +40,12 @@ function test_initialization_strategy(tc,piece_nlp_strategy) mpec = struct('x', w, 'f', f, 'g', g,'p',p,'G',G ,'H',H); solver_initalization = struct('x0', x0, 'lbx',lbw, 'ubx',ubw,'lbg',lbg, 'ubg',ubg,'p0',1, 'y0', [0;1;1]); - opts = MPECOptimizerOptions(); + opts = mpecopt.Options(); opts.piece_nlp_strategy = piece_nlp_strategy; %opts.verbose_solver = false; %opts.verbose_summary = false; - solver = Mpecopt(mpec, opts); + solver = mpecopt.Solver(mpec, opts); [sol,stats] = solver.solve(solver_initalization); end end