Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
Expand all | Collapse all

Sample average approximation (SAA)

  • 1.  Sample average approximation (SAA)

    Posted Fri September 06, 2019 09:24 AM

    Originally posted by: Sultan_Niz7755


    Hello everyone,

    I have a problem with stochastic optimization. 
    I have created a patient scheduling model. It is analogous to a dual bin-packing problem. The model assigns patients to OR by surgical specialties. 
    My objective function tries to maximize number of assigned patients. 
    // Decision variable
    dvar boolean X[Patient][ORooms][Specialty][Day];
    // Objective function
    maximize sum(p in Patient, r in ORooms, s in Specialty, d in Day) X[p][r][s][d];
    And I have several constraints. All parameters are discrete.  It is wroking fine.

    In the next step, I should use random values for operation duration(stochastic duration). I have to implement the model with sample average approximation(SAA). I saw examples of stochastic optimization and added scenarios for operation duration and changed objective function like this: 
    // Decision variables
    dvar boolean X[Patient][ORooms][Specialty][Day][Scenario]; 

    // Objective function
    maximize (1 / scenarios) * sum(p in P, r in ORooms, s in S, d in Day, sc in Scenario) X[Patient][ORooms][Specialty][Day][Scenario];

    I use operation duration only in one constraint to check capacity. Other constraints check is patient assigned correctly or not ... 
    // this constrain checks: is the total duration of operations on exact day smaller than capacity of the selected operation room.
        forall(sc in Scenario, r in ORooms, s in Specialty, d in Day)
          constraint2:
          sum(p in Patient) DurationsWithScenario[p.id][sc] * X[p][r][s][d][sc] <= r.capacity * Y[r][s][d];  

    MY PROBLEM IS THAT IS IT ENOUGH FOR SAMPLE AVERAGE APPROXIMATION? 


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: Sample average approximation (SAA)

    Posted Sat September 07, 2019 03:49 AM

    Hi,

    as said at

    https://en.wikipedia.org/wiki/Stochastic_programming

     

    The SAA problem is a function of the considered sample and in that sense is random. For a given sample ξ 1 , ξ 2 , … , ξ N {\displaystyle \xi ^{1},\xi ^{2},\dots ,\xi ^{N}} \xi ^{1},\xi ^{2},\dots ,\xi ^{N} the SAA problem is of the same form as a two-stage stochastic linear programming problem with the scenarios ξ j {\displaystyle \xi ^{j}} \xi ^{j}., j = 1 , … , N {\displaystyle j=1,\dots ,N} j=1,\dots ,N, each taken with the same probability p j = 1 N {\displaystyle p_{j}={\frac {1}{N}}} p_{j}={\frac {1}{N}}.

    So your approach looks good.

    Tiny example of stochastic optimization at https://www.ibm.com/developerworks/community/forums/html/topic?id=7ce856ee-be78-4258-aede-fd9c4c9e464c&ps=25

    regards

     


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: Sample average approximation (SAA)

    Posted Mon September 09, 2019 11:17 AM

    Originally posted by: Sultan_Niz7755


    Hello, dear Alex Fleischer,

    Thank you very much. 

    I have to check it, I am not sure is it working correctly or not.

    It is working fine with a small set of data, but it is difficult to represent the efficiency of stochastic optimization with the small data. Problem is that It takes too much time for a bigger set of data. Even I have not got a solution in 11 hours. 

    Can you give me advice/

    Thank you in advance.

    Best regards,

    Sherzod

     


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 4.  Re: Sample average approximation (SAA)

    Posted Mon September 09, 2019 12:39 PM

    Hi,

    if the submodel has only float decision variables you may try automatic CPLEX Benders decomposition.

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 5.  Re: Sample average approximation (SAA)

    Posted Mon September 09, 2019 12:45 PM

    Originally posted by: Sultan_Niz7755


    Hi,

    Ok, I will try. Thank you very much.

    Best regards,

    Sherzod


    #DecisionOptimization
    #OPLusingCPLEXOptimizer