Description

MATLAB code

Problem 1

Problem 2

Results

Table 1. Solution of Problem 1

Table 2. Solution of Problem 2

Figure 1. Objective vs Parameter for Problem 1 and Problem 2

 

Description

Problem of optimization setup for a project selection problem in MATLAB Environment.  Two optimization problems (see Formal Problem Statement) Problem 1 (CS.1) - (CS.3) and Problem 2 (CS.4) - (CS.6) are solved by PSG subroutine riskconstrparam.

 

Main MATLAB code is in file CS_Project_Selection_FXCHG_psg_riskconstrparam.m.

Data are saved in file CS_Project_Selection_FXCHG_riskconstrprog_data.mat.

 

MATLAB code

Let us describe the main operations. To run case study you need to do the following main steps:

 

In file CS_Project_Selection_FXCHG_psg_riskconstrparam.m.

 

Problem 1

 

Load data from mat file:

 

load('CS_Project_Selection_FXCHG_riskconstrprog_data.mat');

 

Specifies a set of values of parameter (upper bound on init capital) for which runs should be conducted:

 

UB_Init_Capital = [300 350 400 500 600 650];

 

Set solver options:

 

options.Linearization = 'On';

options.Solver = 'CAR';

options.Precision = 6;

options.Stages = 6;

 

Set variables type option (boolean):

 

options.Types = 1;

 

Optimize problem:

 

[Objectives, UB_Init_Capital, Points, GraphHandle2]=riskconstrparam ([],'linear', [], [], [], [], ...

   0.0000001, matrix_costs, [], [], matrix_NPV,  UB_Init_Capital(1), [], [], [], [], point_lowerbounds, point_upperbounds, 'r', [],[],[],...

   [], [], UB_Init_Capital, [], options);

 

 

Describe output arguments of PSG subroutine riskconstrparam:

 

Output argument

Meaning

Objectives

row vector of the optimal values of the objective found by optimizing the problem for each parameter value;

UB_Init_Capital

row vector of values for right-hand side of constraint on available capital (CS.2);

Points

matrix of optimal points found by optimizing the problem for each parameter;

GraphHandle2

handle of the graphical object (if option.PlotGraph = ‘On’, otherwise GraphHandle = [] ).

 

Solution of optimization problem is in Table 1 and on Figure 1.

 

Problem 2

 

Load data from mat file:

 

load('CS_Project_Selection_FXCHG_riskconstrprog_data.mat');

 

Specifies a set of values of parameter (upper bound on init capital) for which runs should be conducted:

 

UB_Init_Capital = [300 350 400 500 600 650];

 

Set solver options:

 

options.Linearization = 'On';

options.Solver = 'CAR';

options.Precision = 6;

options.Stages = 6;

 

Optimize problem:

 

[Objectives, UB_Init_Capital, Points, GraphHandle]=riskconstrparam ([],'fxchg_pos', [], [], [], [], ...

   0.0000001, matrix_costs, [], [], matrix_NPV,  UB_Init_Capital(1), [], [], [], [], point_lowerbounds, point_upperbounds, 'r', [],[],[],...

   [], [], UB_Init_Capital, [], options);

 

 

Describe output arguments of PSG subroutine riskconstrparam:

 

 

Output argument

Meaning

Objectives

row vector of the optimal values of the objective found by optimizing the problem for each parameter value;

UB_Init_Capital

row vector of values for right-hand side of constraint on available capital (CS.5);

Points

matrix of optimal points found by optimizing the problem for each parameter;

GraphHandle

handle of the graphical object (if option.PlotGraph = ‘On’, otherwise GraphHandle = [] ).

 

Solution of optimization problem is in Table 2 and on Figure 1.

 

 

Results

Table 1. Solution of Problem 1

 

UB_Init_Capital         300         350         400         500         600         650

Objective            460.0000    510.0000    540.0000    610.0000    640.0000    660.0000

Optimal points

Project

Project1            1.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project2            0.000000    0.000000    1.000000    0.000000    1.000000    0.000000

Project3            1.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project4            1.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project5            0.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project6            0.000000    0.000000    0.000000    1.000000    1.000000    1.000000

Project7            0.000000    0.000000    0.000000    0.000000    0.000000    1.000000

 

Table 2. Solution of Problem 2

 

B_Init_Capital         300         350         400         500         600         650

Objective            430.0000    510.0000    540.0000    610.0000    640.0000    660.0000

Optimal points

Project

Project1            1.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project2            1.000000    0.000000    1.000000    0.000000    1.000000    0.000000

Project3            1.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project4            0.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project5            0.000000    1.000000    1.000000    1.000000    1.000000    1.000000

Project6            0.000000    0.000000    0.000000    1.000000    1.000000    1.000000

Project7            0.000000    0.000000    0.000000    0.000000    0.000000    1.000000

 

Figure 1. Objective vs Parameter for Problem 1 and Problem 2

 

_amg_ps_012