Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/v90-bugfix' into v9-minor
Browse files Browse the repository at this point in the history
  • Loading branch information
svigerske committed Apr 29, 2024
2 parents 4368404 + 2b8be5e commit 78aa2f5
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 68 deletions.
49 changes: 3 additions & 46 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ Fixed bugs
- simplified the objective sense assumption for the subproblems in the Lagromory separator
- update effective root depth iteratively to avoid trapping it at a single child node
- fixed that dualsparsify presolver did not always check do-not-multiaggregate variable flag
- fixed bug in computing elements of orbits in orbital reduction

Miscellaneous
-------------
Expand Down Expand Up @@ -172,9 +173,6 @@ Performance improvements
- Added new branching score tiebreaker for reliability pseudo-cost branching rule
- Try nearest bound if zero solution value is out of bounds in heuristic trivial.

Examples and applications
-------------------------

Interface changes
-----------------

Expand Down Expand Up @@ -594,9 +592,6 @@ Miscellaneous
SCIPdebugSolIsValidInSubtree, SCIPdebugIsMainscip, SCIPdebugSolEnable, SCIPdebugSolDisable, SCIPdebugSolIsEnabled,
SCIPwithDebugSol are now exported

Known bugs
----------

@section RN802 SCIP 8.0.2
*************************

Expand Down Expand Up @@ -677,6 +672,7 @@ Miscellaneous

@section RN801 SCIP 8.0.1
*************************

Features
--------

Expand Down Expand Up @@ -1576,9 +1572,6 @@ Unit tests
- added sepa/rlt/separation.c
- added tests test_compute_symmetry:expr{1,2,3,4} in symmetry/compute.c

Testing
-------

Build system
------------

Expand Down Expand Up @@ -1635,9 +1628,6 @@ Miscellaneous
different emphasis settings.
- If a lazy bound is set to a value that is tighter than the current global bound, then the global bound is now tightened accordingly.

Known bugs
----------

@page RN70 Release notes for SCIP 7.0

@section RN703 SCIP 7.0.3
Expand Down Expand Up @@ -1726,8 +1716,6 @@ Examples and applications
Interface changes
-----------------

### New and changed callbacks

### Deleted and changed API methods

- deprecated SCIPsetParam(); use SCIPsetIntParam(), SCIPsetRealParam(), etc, instead
Expand All @@ -1737,32 +1725,6 @@ Interface changes
- new function SCIPcolGetVarProbindex() for accessing the probindex of a variable corresponding to a column
- added new sorting functions SCIPsortPtrRealRealBoolBool()

### Command line interface

### Interfaces to external software

### Changed parameters

### New parameters

### Data structures

Deleted files
-------------

Unit tests
----------

Testing
-------

Build system
------------

### Cmake

### Makefile

Fixed bugs
----------

Expand All @@ -1788,12 +1750,6 @@ Fixed bugs
- Fixed issue with multi-aggregated variables
- Fixed issue in with buffer memory in cons_cumulative

Miscellaneous
-------------

Known bugs
----------

@section RN701 SCIP 7.0.1
*************************

Expand Down Expand Up @@ -2695,6 +2651,7 @@ Fixed bugs

Miscellaneous
-------------

- do not scale linear constraints to integral coefficients

@section RN600 SCIP 6.0.0
Expand Down
2 changes: 1 addition & 1 deletion src/scip/prop_symmetry.c
Original file line number Diff line number Diff line change
Expand Up @@ -640,7 +640,7 @@ SCIP_DECL_TABLEOUTPUT(tableOutputSymmetry)
if ( tabledata->propdata->orbitopalreddata )
{
SCIP_CALL( SCIPorbitopalReductionGetStatistics(scip, tabledata->propdata->orbitopalreddata, &nred, &ncutoff) );
SCIPverbMessage(scip, SCIP_VERBLEVEL_MINIMAL, file, " orbitopal reduction: %10d reductions applied,"
SCIPverbMessage(scip, SCIP_VERBLEVEL_MINIMAL, file, " orbitopal red. : %10d reductions applied,"
" %10d cutoffs\n", nred, ncutoff);
}
if ( tabledata->propdata->orbitalreddata )
Expand Down
29 changes: 11 additions & 18 deletions src/scip/symmetry.c
Original file line number Diff line number Diff line change
Expand Up @@ -2005,14 +2005,17 @@ SCIP_RETCODE isDoublelLexSym(
}

/* store begin positions of row and column blocks */
SCIP_CALL( SCIPallocBlockMemoryArray(scip, rowsbegin, nmatrices2 + 1) );
SCIP_CALL( SCIPallocBlockMemoryArray(scip, colsbegin, nmatrices1 + 1) );
(*rowsbegin)[0] = 0;
(*colsbegin)[0] = 0;
for (j = 0; j < nmatrices2; ++j)
(*rowsbegin)[j + 1] = (*rowsbegin)[j] + ncols2[j];
for (j = 0; j < nmatrices1; ++j)
(*colsbegin)[j + 1] = (*colsbegin)[j] + ncols1[j];
if ( *success )
{
SCIP_CALL( SCIPallocBlockMemoryArray(scip, rowsbegin, nmatrices2 + 1) );
SCIP_CALL( SCIPallocBlockMemoryArray(scip, colsbegin, nmatrices1 + 1) );
(*rowsbegin)[0] = 0;
(*colsbegin)[0] = 0;
for (j = 0; j < nmatrices2; ++j)
(*rowsbegin)[j + 1] = (*rowsbegin)[j] + ncols2[j];
for (j = 0; j < nmatrices1; ++j)
(*colsbegin)[j + 1] = (*colsbegin)[j] + ncols1[j];
}

FREEMEMORY:
SCIPfreeBufferArray(scip, &sortvals);
Expand All @@ -2024,8 +2027,6 @@ SCIP_RETCODE isDoublelLexSym(
SCIPfreeBlockMemoryArray(scip, &(*doublelexmatrix)[i], *ncols);
}
SCIPfreeBlockMemoryArray(scip, doublelexmatrix, *nrows);
SCIPfreeBlockMemoryArray(scip, rowsbegin, nmatrices2 + 1);
SCIPfreeBlockMemoryArray(scip, colsbegin, nmatrices1 + 1);
*doublelexmatrix = NULL;
*rowsbegin = NULL;
*colsbegin = NULL;
Expand Down Expand Up @@ -2177,14 +2178,6 @@ SCIP_RETCODE SCIPdetectSingleOrDoubleLexMatrices(
*success = TRUE;
*isorbitope = TRUE;
}
#ifndef NDEBUG
else if ( !(*success) )
{
assert( *lexmatrix == NULL );
assert( *lexrowsbegin == NULL );
assert( *lexcolsbegin == NULL );
}
#endif

FREEMEMORY:
for (p = nmatricestype2 - 1; p >= 0; --p)
Expand Down
12 changes: 9 additions & 3 deletions src/scip/symmetry_orbital.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ SCIP_RETCODE identifyOrbitalSymmetriesBroken(

/* the orbit must have the same bounds */
orbitsymbroken = FALSE;
j = varorbitids[orbitbegin];
j = varorbitidssort[orbitbegin];
orbitglb = orcdata->globalvarlbs[j];
orbitgub = orcdata->globalvarubs[j];
for (i = orbitbegin + 1; i < orcdata->npermvars; ++i)
Expand All @@ -258,8 +258,14 @@ SCIP_RETCODE identifyOrbitalSymmetriesBroken(
}
}
}
/* the loop above has terminated, so i is either orcdata->npermvars or varorbitidssort[i] is in the next orbit,
* and orbitglb and orbitgub are the maximal global lower bound and minimal global upper bound in orbit orbitid */
assert( orbitsymbroken || i == orcdata->npermvars || varorbitids[j] != orbitid );

/* in case we terminated the orbit due to broken symmetries, find the correct end of the orbit */
if ( orbitsymbroken )
{
while ( i < orcdata->npermvars && varorbitids[j] == orbitid )
j = varorbitidssort[++i];
}
orbitend = i;

/* symmetry is broken within this orbit if the intersection of the global variable domains are empty */
Expand Down

0 comments on commit 78aa2f5

Please sign in to comment.