Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  How to make the model linear

    Posted 05/04/18 09:18 AM

    Originally posted by: skyskyhuanghuang


    Hi,everyone:

         I encountered a problem.How can I linearize my model? Because using  cp; the calculation is very complicated.My model is as follows:

    using CP;How can I make it linear?And do not use using CP;
    int M=...;
    float P=...;
    float H[1..M][1..M]=...;
    float B0=...;
    float n0=...;
    dvar int Yji[1..M][1..M] in 0..1 ;
    execute
    {
    var p=cp.param;
    p.LogPeriod=80000;
    p.TimeLimit=300;
    p.Workers=40;
    p.searchType="Restart";
    p.OptimalityTolerance=1;
    }
     
     
     
    maximize
    B0*sum(i in 1..M)(
         log(1+P*sum(j in 1..M:j!=i)(
                 H[j][i]*Yji[j][i]/ //fenzi
                   (n0+P*sum(n in 1..M:n!=j)(
                            sum(q in 1..M)H[n][i]*Yji[n][q]
                          )
                   )
               )
             )/log(2)
       );How can I remove the continuously added log function to make it linear?And the molecules have decision variables, what can I do to linearize the objective function?
       
    subject to
    {
    forall(i in 1..M)
    {
    Hangyueshu:
     sum(j in 1..M)
         Yji[i][j]<=1;   
    }
    forall(i in 1..M)
    {
    Lieyueshu:  
        sum(j in 1..M)
         Yji[j][i]<=1;   
    }
    forall(i in 1..M)
    Zishenyueshu:
      Yji[i][i]==0;
    forall(i in 1..M)
    {
    FDRLimiation:
      sum(j in 1..M)
        (Yji[i][j]+Yji[j][i])-Yji[i][i]<=2;
    }
    }
    execute
    {
    writeln("Yji=",Yji);
    writeln("Objective= ",cp.getObjValue());
     
    }
    main
    {
    var nbsol=0;
    thisOplModel.generate();
    cp.startNewSearch();
    while(cp.next())
    {
    nbsol++;
    writeln("solution ",nbsol);
    thisOplModel.postProcess();
    }
     
    }

    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: How to make the model linear

    Posted 05/04/18 10:33 AM

    Hi,

    why do you write the calculation is complicated ?

    do you mean your dataset is bigger than

    M=3;
    P=0.126;//21dbm 0126w
    H=[
    [0 5 0]
    [0 0 6]
    [0 0 0]

    ];
    B0=20e6;
    n0=6.3e-13;

    ?

     

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: How to make the model linear

    Posted 05/04/18 10:21 PM

    Originally posted by: skyskyhuanghuang


    When the data set is large, the calculation time will be very long. I don't want to set the time limit. I want to find the optimal solution. So I don't know how to simplify the objective function and make it linear to accelerate the result.My objective function is as follows:

    maximize
    B0*sum(i in 1..M)(
         log(1+P*sum(j in 1..M:j!=i)(//How can I remove the continuously added log function to make it linear?
                 H[j][i]*Yji[j][i]/ //fenzi
                   (n0+P*sum(n in 1..M:n!=j)(
                            sum(q in 1..M)H[n][i]*Yji[n][q]//And the molecules have decision variables, what can I do to linearize the objective function?
                          )
                   )
               )
             )/log(2)
       );

    Thank you.


    #DecisionOptimization
    #OPLusingCPLEXOptimizer