Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  CPLEX 12.1 Solution Polishing (abort)

    Posted 06/24/14 04:12 PM

    Originally posted by: KimLRoss


    I am running a very large MILP and have the following parameters:

    CPLEX Parameter File Version 12.1
    CPX_PARAM_EPGAP 0.01
    CPX_PARAM_NODELIM 10000
    CPX_PARAM_THREADS 4
    CPX_PARAM_POLISHAFTERTIME 900
    CPX_PARAM_RINSHEUR 10
    CPX_PARAM_TILIM 2700
     

    I am seeing that its going into polishing very quickly after root node and rather than saying it hit the polishaftertime limit, it says the following:

    Root relaxation solution time =  100.23 sec.
     
            Nodes                                         Cuts/
       Node  Left     Objective  IInf  Best Integer     Best Node    ItCnt     Gap
     
          0     0   110795.8148   899                 110795.8148   108670
    *     0+    0                       187659.1402   110795.8148   108670   40.96%
          0     0   110935.3610  3208   187659.1402    Cuts: 3632   133706   40.88%
    *     0+    0                       163797.8912   110935.3610   133706   32.27%
          0     0   111415.9541  3424   163797.8912     Cuts: 277   139113   31.98%
     
    Starting condition for polishing reached (Aborted).
    Starting solution polishing.
          0     2   111415.9541  3424   163797.8912   111415.9575   139113   31.98%
    Elapsed real time = 313.52 sec. (tree size =  0.00 MB, solutions = 2)
    *     1+    1                       125506.0624   111415.9575   139115   11.23%
    *     1+    1                       117106.1678   111415.9575   139115    4.86%
    *     1+    1                       114504.1768   111415.9575   139115    2.70%
     

    Can you tell me what would cause the root node processing to abort and then go into polishing immediately?  It has not hit the 900 second limit to trigger the polishing in the first place.

     

    Thanks,

     

     

    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: CPLEX 12.1 Solution Polishing (abort)

    Posted 06/24/14 05:58 PM

    Is it possible that you're using one of the API's and you're using callbacks?  If so, are you aborting the optimization from any of the callbacks?  This may explain why you see "(Aborted)" after "Starting condition for polishing reached".


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: CPLEX 12.1 Solution Polishing (abort)

    Posted 06/25/14 09:46 AM

    Originally posted by: KimLRoss


    I do not have any call backs. I am using all defaults other than the parameters defined above. The only difference I can think of is that I am supplying a .ORD file. Any idea if that might cause the (abort) at the root node?

     

    Kim


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: CPLEX 12.1 Solution Polishing (abort)

    Posted 06/25/14 11:12 AM

    Since you are saying you are solving a big problem, could this be some sort of out-of-memory condition? Can you monitor memory consumption of the process and check whether memory is close to the limit when this "aborted" message occurs.

    Also, 12.1 is a pretty old version of CPLEX. Any chance you can upgrade to something more recent?


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: CPLEX 12.1 Solution Polishing (abort)

    Posted 06/26/14 08:45 AM

    Originally posted by: KimLRoss


    I don't see memory getting maxed out. I reduced the size of the problem somewhat and am still getting the message. Here are the details:

     

    Tried aggregator 3 times.
    MIP Presolve eliminated 60651 rows and 8650 columns.
    MIP Presolve modified 607218 coefficients.
    Aggregator did 20346 substitutions.
    Reduced MIP has 426229 rows, 64250 columns, and 1597863 nonzeros.
    Reduced MIP has 46609 binaries, 0 generals, 0 SOSs, and 0 indicators.
    Presolve time =    3.91 sec.
    Clique table members: 33262.
    MIP emphasis: balance optimality and feasibility.
    MIP search method: dynamic search.
    Parallel mode: opportunistic, using up to 4 threads.
    Root relaxation solution time =   33.62 sec.
     
            Nodes                                         Cuts/
       Node  Left     Objective  IInf  Best Integer     Best Node    ItCnt     Gap
     
          0     0   123288.6781  1601                 123288.6781    87865
    *     0+    0                       181191.6334   123288.6781    87865   31.96%
          0     0   123696.9028  1316   181191.6334     Cuts: 895   103526   31.73%
          0     0   123936.1756  1130   181191.6334     Cuts: 375   112338   31.60%
          0     0   123977.4959  1159   181191.6334     Cuts: 297   120000   31.58%
          0     0   124006.5540  1085   181191.6334     Cuts: 229   122016   31.56%
          0     0   124028.1241   977   181191.6334     Cuts: 199   125670   31.55%
     
    Starting condition for polishing reached (Aborted).
    Starting solution polishing.
     
          0     2   124028.1241   977   181191.6334   124028.3616   125670   31.55%
    Elapsed real time = 169.94 sec. (tree size =  0.00 MB, solutions = 1)
    *     1+    1                       127778.3844   124028.3616   125784    2.93%
    *     1+    1                       127689.9604   124028.3616   125784    2.87%
    *     1+    1                       127689.4814   124028.3616   125784    2.87%
    ...

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: CPLEX 12.1 Solution Polishing (abort)

    Posted 06/26/14 11:21 AM

    Hm, very hard to tell what is happening here. Could you please perform the following experiments:

    1. Explicitly set CPX_PARAM_CLOCKTYPE to 2. Just to make sure CPLEX uses wallclock time and not CPU time.
    2. Remove CPX_PARAM_POLISHAFTERTIME from the parameter settings. This is to let CPLEX just solve the problem. Does this solve also stop during the root node? What is the solution status when CPLEX stops here?

    #CPLEXOptimizers
    #DecisionOptimization