[Scip] maxstallrounds question

Gerald Gamrath gamrath at zib.de
Fri Oct 24 11:56:28 CEST 2014


Dear James,

a separation round is SCIP is counted as stalling, if from the last LP 
solution to the LP solution with cuts of this separation round added
1) the LP value (dual bound) did not improve and
2) the number of fractional variables did not reduce.

For both these criterions, some tolerances are used, but this is the 
general idea.

So the stalling has nothing to do with whether new primal solutions were 
found, but is actually very connected to the dual bound improvement. 
Therefore, I would recommend to use the maxstallrounds parameter in your 
case.

Best,
Gerald

> Hi SCIPers,
>
> I don't understand the maxstallrounds parameter properly.
>
> The documentation says:
> # maximal number of consecutive separation rounds without objective or
> integrality improvement (-1: no additional restriction)
>
> "objective" I think I understand. I assume it means that if we get a
> new primal solution then the separation round at which it is found is
> not counted as "stalled".
> Correct me if I'm wrong.
>
> But I don't understand "integrality improvement". Is this connected to
> the number of fractional variables in LP solutions?
> Suppose maxstallrounds is at its default value of 5. Does this mean
> that for the past 5 separation rounds the number of fractional
> variables does not go down.
> Or does it mean that on a given round, if the number of fractional
> variables 5 rounds earlier was smaller it is time to truncate
> (assuming no new primal solution)?
>
> Here is an example, which may help with an explanation.
>
>    68.0s|     1 |     0 | 15315 | 477M|   0 |   0 | 808 |5474 |
> 18k|9650 |7069 |5881 |  46 |   0 |-1.738554e+05 |-1.741823e+05 |
> 0.19%
>    68.3s|     1 |     0 | 15315 | 477M|   0 |   0 | 808 |5474 |
> 18k|9650 |7069 |5881 |  46 |   0 |-1.738554e+05 |-1.741823e+05 |
> 0.19%
>    70.5s|     1 |     0 | 15703 | 499M|   0 |   0 | 786 |5474 |  18k|
> 10k|7468 |6213 |  46 |   0 |-1.738589e+05 |-1.741823e+05 |   0.19%
> k70.7s|     1 |     0 | 15703 | 500M|   1 |   0 |   - |5474 |  18k|
> 10k|7468 |6213 |  46 |   0 |-1.738589e+05 |-1.741582e+05 |   0.17%
> time | node  | left  |LP iter| mem |depth|mdpt |frac |cons |cols |rows
> |cuts |pool |confs|strbr|  dualbound   | primalbound  |  gap
>    70.8s|     1 |     0 | 15703 | 499M|   0 |   0 | 786 |5474 |  18k|
> 10k|7468 |6213 |  46 |   0 |-1.738589e+05 |-1.741582e+05 |   0.17%
>    71.2s|     1 |     0 | 15703 | 499M|   0 |   0 | 786 |5474 |  18k|
> 10k|7468 |6213 |  46 |   0 |-1.738589e+05 |-1.741582e+05 |   0.17%
>    73.4s|     1 |     0 | 16186 | 521M|   0 |   0 | 855 |5474 |  18k|
> 10k|7837 |6528 |  46 |   0 |-1.738643e+05 |-1.741582e+05 |   0.17%
>   73.8s|     1 |     0 | 16186 | 521M|   0 |   0 | 855 |5474 |  18k|
> 10k|7837 |6528 |  46 |   0 |-1.738643e+05 |-1.741582e+05 |   0.17%
>   75.6s|     1 |     0 | 16490 | 530M|   0 |   0 | 827 |5474 |  18k|
> 10k|8050 |6720 |  46 |   0 |-1.738658e+05 |-1.741582e+05 |   0.17%
>   75.9s|     1 |     0 | 16490 | 530M|   0 |   0 | 827 |5474 |  18k|
> 10k|8050 |6720 |  46 |   0 |-1.738658e+05 |-1.741582e+05 |   0.17%
> Truncate separation round because of stalling (5 stall rounds).
>
> I am looking for a way to start branching when cutting makes little or
> no progress in reducing (I'm maximising) the dual bound.
> maxstallrounds seems an indirect way of doing
> this - is there something more direct?
>
> Thanks,
>
> James
>



More information about the Scip mailing list