Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Specific bound definition in opl

    Posted 04/26/18 03:53 AM

    Originally posted by: A.Omidi


    Dear Mr. Fleischer

    I try to write a constraint with specific bounds.

    //--------------------------
    My sets & data are:
    setof(int) activities = asSet(0..5); - (that 0, 5 are dummy)
    setof(int) date = {0,1,2,3,4,5,6};
    {string} resources = {1,2,3,4};

    float est[activities] = [0,0,1,1,4,6];
    float lst[activities] =  [0,0,2,1,4,6];
    float day[activities] = [0,1,2,3,2,0];
    float a[resources] = [4,4,4,4];
    float res[activities][resources] = res = [[0,0,0,0],[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1],[0,0,0,0]];
    float bound1 = maxl(max(i in activities, t in date) (t-day[i]+1),max(i in activities) est[i]);
    float bound2 = minl(min(i in activities) lst[i],min(t in date) t);

    dvar float+ x[date][resources];
    dvar boolean s[date][activities];

    co1:
    forall(t in date, k in resources, ii in activities: est[ii] <= t <= lst[ii]+day[ii]-1)
    sum(i in activities) res[i,k] * sum(t1 in date : bound1<=t1<=bound2) s[t1,i] - a[i,k] <= x[t,k] ; 
    //---------------------------

    When I solved my model I haven't a true solution.
    I'm appreciated if let me know, how can I define this constraint?

     

    Best regards

     

     

     

     

     

     

     


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: Specific bound definition in opl

    Posted 05/02/18 02:36 AM

    Hi,

    you had some parenthesis issue.

    setof(int) activities = asSet(0..5);
    setof(int) date = {0,1,2,3,4,5,6};
    {int} resources = {1,2,3,4};

    float est[activities] = [0,0,1,1,4,6];
    float lst[activities] =  [0,0,2,1,4,6];
    float day[activities] = [0,1,2,3,2,0];
    float a[resources] = [4,4,4,4];
    float res[activities][resources] = [[0,0,0,0],[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1],[0,0,0,0]];
    float bound1 = maxl(max(i in activities, t in date) (t-day[i]+1),max(i in activities) est[i]);
    float bound2 = minl(min(i in activities) lst[i],min(t in date) t);

    dvar float+ x[date][resources];
    dvar boolean s[date][activities];

    subject to
    {
    co1:
    forall(t in date, k in resources, ii in activities: est[ii] <= t <= lst[ii]+day[ii]-1)
    sum(i in activities) (res[i,k] * sum(t1 in date : bound1<=t1<=bound2) s[t1,i] - a[k]) <= x[t,k];

    }

    works fine

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: Specific bound definition in opl

    Posted 05/02/18 04:19 AM

    Originally posted by: A.Omidi


    Thanks so much


    #DecisionOptimization
    #OPLusingCPLEXOptimizer