Skip to content

Commit d700648

Browse files
committed
Merge remote-tracking branch 'origin/v9-minor'
2 parents d485ca8 + 40546dd commit d700648

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
@@ -350,6 +350,7 @@ Fixed bugs
350350
- corrected computation of number of variables affected by symmetry
351351
- fixed computation of symmetry group size
352352
- correct comparison conditions in checkRedundancySide() of cons_varbound.c to ensure pair redundancy
353+
- 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
353354

354355
Build system
355356
------------

check/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,7 @@ set(pairs_Issue
560560
"instances/Issue/3911.cip\;-30386.2338470598\;lexdual"
561561
"instances/Issue/3917.cip\;+infinity\;default"
562562
"instances/Issue/3920.cip\;0\;presolving_milp_off"
563+
"instances/Issue/3932.cip\;+infinity\;reduced_tolerance"
563564
)
564565

565566
#
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
@@ -1581,6 +1581,7 @@ SCIP_RETCODE solveNodeInitialLP(
15811581
SCIP_EVENTFILTER* eventfilter, /**< global event filter */
15821582
SCIP_CLIQUETABLE* cliquetable, /**< clique table data structure */
15831583
SCIP_Bool newinitconss, /**< do we have to add new initial constraints? */
1584+
SCIP_Bool forcedlpsolve, /**< would SCIP abort if the LP is not solved? */
15841585
SCIP_Bool* cutoff, /**< pointer to store whether the node can be cut off */
15851586
SCIP_Bool* lperror /**< pointer to store whether an unresolved error in LP solving occured */
15861587
)
@@ -1623,7 +1624,7 @@ SCIP_RETCODE solveNodeInitialLP(
16231624
/* solve initial LP */
16241625
SCIPsetDebugMsg(set, "node: solve initial LP\n");
16251626
SCIP_CALL( SCIPlpSolveAndEval(lp, set, messagehdlr, blkmem, stat, eventqueue, eventfilter, transprob,
1626-
SCIPnodeGetDepth(SCIPtreeGetFocusNode(tree)) == 0 ? set->lp_rootiterlim : set->lp_iterlim, TRUE, TRUE, FALSE, FALSE, lperror) );
1627+
SCIPnodeGetDepth(SCIPtreeGetFocusNode(tree)) == 0 ? set->lp_rootiterlim : set->lp_iterlim, TRUE, TRUE, FALSE, forcedlpsolve, lperror) );
16271628
assert(lp->flushed);
16281629
assert(lp->solved || *lperror);
16291630

@@ -3257,7 +3258,8 @@ SCIP_RETCODE solveNodeLP(
32573258
{
32583259
/* load and solve the initial LP of the node */
32593260
SCIP_CALL( solveNodeInitialLP(blkmem, set, messagehdlr, stat, transprob, origprob, primal, tree, reopt, lp,
3260-
pricestore, sepastore, cutpool, branchcand, eventqueue, eventfilter, cliquetable, newinitconss, cutoff, lperror) );
3261+
pricestore, sepastore, cutpool, branchcand, eventqueue, eventfilter, cliquetable, newinitconss,
3262+
forcedlpsolve, cutoff, lperror) );
32613263

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

0 commit comments

Comments
 (0)