Skip to content

Commit 40546dd

Browse files
committed
Merge remote-tracking branch 'origin/v92-bugfix' into v9-minor
2 parents ca39fc0 + da448e1 commit 40546dd

File tree

6 files changed

+27
-2
lines changed

6 files changed

+27
-2
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ Fixed bugs
5757
- corrected computation of number of variables affected by symmetry
5858
- fixed computation of symmetry group size
5959
- correct comparison conditions in checkRedundancySide() of cons_varbound.c to ensure pair redundancy
60+
- also for the initial LP solve force acceptance of Farkas row in SCIPlpGetDualfarkas() if all other means for obtaining a reliable Farkas proof have failed
6061

6162
Build system
6263
------------

check/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,7 @@ set(pairs_Issue
514514
"instances/Issue/3911.cip\;-30386.2338470598\;lexdual"
515515
"instances/Issue/3917.cip\;+infinity\;default"
516516
"instances/Issue/3920.cip\;0\;presolving_milp_off"
517+
"instances/Issue/3932.cip\;+infinity\;reduced_tolerance"
517518
)
518519

519520
#
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
lp/solvefreq = -1
2+
numerics/sumepsilon = 1e-9
3+
numerics/feastol = 1e-9
4+
presolving/maxrounds = 0
5+
heuristics/trivial/freq = -1

check/coverage/settings/tolerance.set

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
numerics/sumepsilon = 1e-9
12
numerics/feastol = 1e-9

check/instances/Issue/3932.cip

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
STATISTICS
2+
Problem name : t_t_seed
3+
Variables : 3 (0 binary, 1 integer, 0 implicit integer, 2 continuous)
4+
Constraints : 0 initial, 3 maximal
5+
OBJECTIVE
6+
Sense : minimize
7+
VARIABLES
8+
[integer] <t_t_x0>: obj=0, original bounds=[29,200]
9+
[continuous] <t_t_x4>: obj=0, original bounds=[-200,-88]
10+
[continuous] <t_t_x2>: obj=0, original bounds=[-200,-51]
11+
CONSTRAINTS
12+
[linear] <_C1>: +14.66<t_t_x0>[I] +83.96<t_t_x4>[C] -99.73<t_t_x2>[C] <= 4758.33;
13+
[linear] <_C3>: +36.95<t_t_x0>[I] -77.02<t_t_x4>[C] +27.3<t_t_x2>[C] <= 15108.87;
14+
[linear] <dualproof_bnd_1>: +35.3812724355761<t_t_x0>[I] -106.595454727765<t_t_x4>[C] >= 26150.7507972695;
15+
END

src/scip/solve.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1468,6 +1468,7 @@ SCIP_RETCODE solveNodeInitialLP(
14681468
SCIP_EVENTQUEUE* eventqueue, /**< event queue */
14691469
SCIP_CLIQUETABLE* cliquetable, /**< clique table data structure */
14701470
SCIP_Bool newinitconss, /**< do we have to add new initial constraints? */
1471+
SCIP_Bool forcedlpsolve, /**< would SCIP abort if the LP is not solved? */
14711472
SCIP_Bool* cutoff, /**< pointer to store whether the node can be cut off */
14721473
SCIP_Bool* lperror /**< pointer to store whether an unresolved error in LP solving occured */
14731474
)
@@ -1510,7 +1511,7 @@ SCIP_RETCODE solveNodeInitialLP(
15101511
/* solve initial LP */
15111512
SCIPsetDebugMsg(set, "node: solve initial LP\n");
15121513
SCIP_CALL( SCIPlpSolveAndEval(lp, set, messagehdlr, blkmem, stat, eventqueue, eventfilter, transprob,
1513-
SCIPnodeGetDepth(SCIPtreeGetFocusNode(tree)) == 0 ? set->lp_rootiterlim : set->lp_iterlim, TRUE, TRUE, FALSE, FALSE, lperror) );
1514+
SCIPnodeGetDepth(SCIPtreeGetFocusNode(tree)) == 0 ? set->lp_rootiterlim : set->lp_iterlim, TRUE, TRUE, FALSE, forcedlpsolve, lperror) );
15141515
assert(lp->flushed);
15151516
assert(lp->solved || *lperror);
15161517

@@ -3112,7 +3113,8 @@ SCIP_RETCODE solveNodeLP(
31123113
{
31133114
/* load and solve the initial LP of the node */
31143115
SCIP_CALL( solveNodeInitialLP(blkmem, set, messagehdlr, stat, transprob, origprob, primal, tree, reopt, lp,
3115-
pricestore, sepastore, cutpool, branchcand, eventfilter, eventqueue, cliquetable, newinitconss, cutoff, lperror) );
3116+
pricestore, sepastore, cutpool, branchcand, eventfilter, eventqueue, cliquetable, newinitconss,
3117+
forcedlpsolve, cutoff, lperror) );
31163118

31173119
assert(*cutoff || *lperror || (lp->flushed && lp->solved));
31183120
SCIPsetDebugMsg(set, "price-and-cut-loop: initial LP status: %d, LP obj: %g\n",

0 commit comments

Comments
 (0)