%This Example for using users m-function Optimization_subroutine.m was created automatically by PSG Toolbox. %Function description: %maximize %linear(matrix_obj_el) %Constraint: == parameter_bound %linear(matrix_acreage_cotton) %Constraint: == parameter_bound_1 %linear(matrix_acreage_peanut) %Constraint: <= parameter_bound_2, linearize = 1 %pr_pen(parameter_alpha, matrix_scenarios_el) %Constraint: <= parameter_bound_3 %linearmulti(matrix_acreage_xa) %Constraint: <= parameter_bound_4, linearize = 1 %cardn_pos(parameter_alpha_1, matrix_cardinality_cotton) %Constraint: <= parameter_bound_5, linearize = 1 %cardn_pos(parameter_alpha_2, matrix_cardinality_peanut) %Box: >= parameter_bound_6, <= point_upperbounds %Solver: stages = 30 % %Input variables: % %Inputs PSG Type PSG Object Location in Problem Statement Class %matrix_obj_el_data data matrix_obj_el linear(matrix_obj_el) double %matrix_obj_el_vars vars matrix_obj_el linear(matrix_obj_el) cell %matrix_acreage_xa_data data matrix_acreage_xa linearmulti(matrix_acreage_xa) double %matrix_acreage_xa_vars vars matrix_acreage_xa linearmulti(matrix_acreage_xa) cell %matrix_scenarios_el_data data matrix_scenarios_el pr_pen(parameter_alpha, matrix_scenarios_el) double %matrix_scenarios_el_vars vars matrix_scenarios_el pr_pen(parameter_alpha, matrix_scenarios_el) cell %matrix_acreage_cotton_data data matrix_acreage_cotton linear(matrix_acreage_cotton) double %matrix_acreage_cotton_vars vars matrix_acreage_cotton linear(matrix_acreage_cotton) cell %matrix_acreage_peanut_data data matrix_acreage_peanut linear(matrix_acreage_peanut) double %matrix_acreage_peanut_vars vars matrix_acreage_peanut linear(matrix_acreage_peanut) cell %matrix_cardinality_cotton_data data matrix_cardinality_cotton cardn_pos(parameter_alpha_1, matrix_cardinality_cotton) double %matrix_cardinality_cotton_vars vars matrix_cardinality_cotton cardn_pos(parameter_alpha_1, matrix_cardinality_cotton) cell %matrix_cardinality_peanut_data data matrix_cardinality_peanut cardn_pos(parameter_alpha_2, matrix_cardinality_peanut) double %matrix_cardinality_peanut_vars vars matrix_cardinality_peanut cardn_pos(parameter_alpha_2, matrix_cardinality_peanut) cell %point_upperbounds_data data point_upperbounds Box: >= parameter_bound_6, <= point_upperbounds double %point_upperbounds_vars vars point_upperbounds Box: >= parameter_bound_6, <= point_upperbounds cell %parameter_bound_data data parameter_bound Constraint: == parameter_bound double %parameter_bound_1_data data parameter_bound_1 Constraint: == parameter_bound_1 double %parameter_bound_2_data data parameter_bound_2 Constraint: <= parameter_bound_2, linearize = 1 double %parameter_alpha_data data parameter_alpha pr_pen(parameter_alpha, matrix_scenarios_el) double %parameter_bound_3_data data parameter_bound_3 Constraint: <= parameter_bound_3 double %parameter_bound_4_data data parameter_bound_4 Constraint: <= parameter_bound_4, linearize = 1 double %parameter_alpha_1_data data parameter_alpha_1 cardn_pos(parameter_alpha_1, matrix_cardinality_cotton) double %parameter_bound_5_data data parameter_bound_5 Constraint: <= parameter_bound_5, linearize = 1 double %parameter_alpha_2_data data parameter_alpha_2 cardn_pos(parameter_alpha_2, matrix_cardinality_peanut) double %parameter_bound_6_data data parameter_bound_6 Box: >= parameter_bound_6, <= point_upperbounds double % %Output variables: % %solution_str = string with solution of problem; %outargstruc_arr = array of output PSG data structures; %Load data from mat-file: load('D:\American Optimal Decisions\PSG\MATLAB_Stan\ready\Optimal Crop Production and Insurance Coverage\data_problem_crop_insurance_el_nino_prpen\Optimization_subroutine_data.mat') %Save variables from mat-file to Workspace: tbpsg_export_to_workspace(toolboxstruc_arr) %Run users m-function Optimization_subroutine: [solution_str,outargstruc_arr] = Optimization_subroutine(matrix_obj_el_data,matrix_obj_el_vars,matrix_acreage_xa_data,matrix_acreage_xa_vars,matrix_scenarios_el_data,matrix_scenarios_el_vars,matrix_acreage_cotton_data,matrix_acreage_cotton_vars,matrix_acreage_peanut_data,matrix_acreage_peanut_vars,matrix_cardinality_cotton_data,matrix_cardinality_cotton_vars,matrix_cardinality_peanut_data,matrix_cardinality_peanut_vars,point_upperbounds_data,point_upperbounds_vars,parameter_bound_data,parameter_bound_1_data,parameter_bound_2_data,parameter_alpha_data,parameter_bound_3_data,parameter_bound_4_data,parameter_alpha_1_data,parameter_bound_5_data,parameter_alpha_2_data,parameter_bound_6_data); %Extract Objective: val_obj = tbpsg_objective(solution_str, outargstruc_arr); disp(' '); disp('Objective = '); disp(val_obj); %Extract optimal solution: point_data = tbpsg_optimal_point_data(solution_str, outargstruc_arr); disp(' '); disp('Optimal point = '); disp(point_data); %Extract structure containing PSG solution reports: output_structure = tbpsg_solution_struct(solution_str, outargstruc_arr); disp(' '); disp('Structure with PSG solution = '); disp(output_structure); %Uncomment the following lines to extract solutions details: %output = tbpsg_isoptimal(solution_str, outargstruc_arr); %output = tbpsg_function_data(solution_str, outargstruc_arr); %output = tbpsg_function_names(solution_str, outargstruc_arr); %output = tbpsg_time(solution_str, outargstruc_arr); %output = tbpsg_optimal_point_vars(solution_str, outargstruc_arr); %output = tbpsg_constraints_vars(solution_str, outargstruc_arr); %output = tbpsg_slack_data(solution_str, outargstruc_arr); %output = tbpsg_dual_data(solution_str, outargstruc_arr); %output = tbpsg_vector_constraint_data(solution_str, outargstruc_arr); %output = tbpsg_vector_dual_data(solution_str, outargstruc_arr); %output = tbpsg_vector_slack_data(solution_str, outargstruc_arr); %output = tbpsg_matrix_data(solution_str, outargstruc_arr); %output = tbpsg_matrix_vars(solution_str, outargstruc_arr); %output = tbpsg_vector_data(solution_str, outargstruc_arr);