Skip to content

Commit 39f020c

Browse files
committed
Merge branch 'sepa-multilinear-flowers' into 'master'
Implementation of flower inequalities for AND constraints and nonlinear products. See merge request integer/scip!3406
2 parents 9e826f8 + f76ebaf commit 39f020c

14 files changed

+4657
-2
lines changed

CHANGELOG

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ Features
1010
- added more techniques to handle reflection symmetries, in particular, for orbitopes with column reflections and matrices whose rows and columns can be permuted by a symmetry
1111
- implemented symmetry detection callbacks for cons_disjunction and cons_superindicator
1212
- detailed information about applied symmetry handling techniques can be printed to the terminal
13+
- added a new separator sepa_multilinear to generate flower cuts from AND constraints nonlinear product expressions.
14+
- added functionality to deal with hypergraphs by means of efficient access to vertices, edges and intersections edges.
1315

1416
Performance improvements
1517
------------------------
@@ -32,6 +34,8 @@ Interface changes
3234
- SCIPgetAvgDPseudocostScore(), SCIPgetVarDPseudocostScore() for computing the discounted pseudo cost scores using ancestral pseudo costs
3335
- SCIPboundchgGetLPSolVal() for accessing the LP solution value in the branching data of the bound change
3436
- SCIPclearSymgraph() and SCIPcopySymgraphAsSubgraph() to clear and copy as symmetry detection graph, respectively
37+
- SCIPincludeSepaMultilinear() to include the new multilinear cut separator
38+
- SCIPhypergraphCreate(), SCIPhypergraphClear(), SCIPhypergraphFree(), SCIPhypergraphAddVertex(), SCIPhypergraphAddEdge(), SCIPhypergraphIsValid() and SCIPhypergraphComputeVerticesEdges() for building and deleting hypergraphs, SCIPhypergraphComputeOverlaps(), SCIPhypergraphOverlapFind(), SCIPhypergraphIntersectEdges(), SCIPhypergraphComputeOverlapsEdges(), SCIPhypergraphComputeVerticesOverlaps(), SCIPhypergraphOverlapsDisjoint() to deal with pair-wise intersections of hyperedges, SCIPhypergraphIterInit(), SCIPhypergraphIterClear(), SCIPhypergraphIterStart(), SCIPhypergraphIterValid(), SCIPhypergraphIterNext(), SCIPhypergraphIterBase(), SCIPhypergraphIterAdjacent(), SCIPhypergraphIterMinVertex(), SCIPhypergraphIterOverlap() for iterating over adjacent edges, SCIPhypergraphHasVertexEdges() SCIPhypergraphHasOverlaps(), SCIPhypergraphHasOverlapsEdges(), SCIPhypergraphHasVertexOverlaps(), SCIPhypergraphGetNVertices(), SCIPhypergraphGetNEdges(), SCIPhypergraphBlkmem(), SCIPhypergraphGetNOverlaps(), SCIPhypergraphVertexData(), SCIPhypergraphEdgeData(), SCIPhypergraphEdgeSize(), SCIPhypergraphEdgeVertices(), SCIPhypergraphVertexEdgesFirst(), SCIPhypergraphVertexEdgesBeyond(), SCIPhypergraphVertexEdgesGetAtIndex(), SCIPhypergraphOverlapData(), SCIPhypergraphOverlapSize(), SCIPhypergraphOverlapVertices() SCIPhypergraphEdgesOverlapsFirst(), SCIPhypergraphEdgesOverlapsBeyond(), SCIPhypergraphEdgesOverlapsGetAtIndex(), SCIPhypergraphOverlapsEdgesFirst(), SCIPhypergraphOverlapsEdgesBeyond(), SCIPhypergraphOverlapsEdgesGetAtIndex(), SCIPhypergraphVertexOverlapsFirst(), SCIPhypergraphVertexOverlapsBeyond() and SCIPhypergraphVertexOverlapsGetAtIndex() to query information about vertices, edges and overlaps as well as their incidences.
3539

3640
### Command line interface
3741

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ set(SCIP_VERSION_MAJOR 10)
1717
set(SCIP_VERSION_MINOR 0)
1818
set(SCIP_VERSION_PATCH 0)
1919
set(SCIP_VERSION_SUB 0)
20-
set(SCIP_VERSION_API 118)
20+
set(SCIP_VERSION_API 119)
2121

2222
project(SCIP
2323
VERSION ${SCIP_VERSION_MAJOR}.${SCIP_VERSION_MINOR}.${SCIP_VERSION_PATCH}.${SCIP_VERSION_SUB}

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,7 @@ SCIPPLUGINLIBOBJ= scip/benders_default.o \
691691
scip/heur_veclendiving.o \
692692
scip/heur_zeroobj.o \
693693
scip/heur_zirounding.o \
694+
scip/hypergraph.o \
694695
scip/message_default.o \
695696
scip/nlhdlr_bilinear.o \
696697
scip/nlhdlr_convex.o \
@@ -775,6 +776,7 @@ SCIPPLUGINLIBOBJ= scip/benders_default.o \
775776
scip/sepa_mcf.o \
776777
scip/sepa_minor.o \
777778
scip/sepa_mixing.o \
779+
scip/sepa_multilinear.o \
778780
scip/sepa_oddcycle.o \
779781
scip/sepa_rapidlearning.o \
780782
scip/sepa_rlt.o \

make/make.project

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ SCIP_VERSION_MAJOR = 10
9797
SCIP_VERSION_MINOR = 0
9898
SCIP_VERSION_PATCH = 0
9999
SCIP_VERSION_SUB = 0
100-
SCIP_VERSION_API = 118
100+
SCIP_VERSION_API = 119
101101
SCIP_VERSION = $(SCIP_VERSION_MAJOR).$(SCIP_VERSION_MINOR).$(SCIP_VERSION_PATCH).$(SCIP_VERSION_SUB)
102102

103103
# compiling and linking parameters

src/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ set(scipsources
166166
scip/heur_veclendiving.c
167167
scip/heur_zeroobj.c
168168
scip/heur_zirounding.c
169+
scip/hypergraph.c
169170
scip/message_default.c
170171
scip/nlhdlr_bilinear.c
171172
scip/nlhdlr_convex.c
@@ -254,6 +255,7 @@ set(scipsources
254255
scip/sepa_mcf.c
255256
scip/sepa_minor.c
256257
scip/sepa_mixing.c
258+
scip/sepa_multilinear.c
257259
scip/sepa_oddcycle.c
258260
scip/sepa_rapidlearning.c
259261
scip/sepa_rlt.c
@@ -644,6 +646,7 @@ set(scipheaders
644646
scip/heur_zeroobj.h
645647
scip/heur_zirounding.h
646648
scip/history.h
649+
scip/hypergraph.h
647650
scip/implics.h
648651
scip/interrupt.h
649652
scip/intervalarith.h
@@ -858,6 +861,7 @@ set(scipheaders
858861
scip/sepa_mcf.h
859862
scip/sepa_minor.h
860863
scip/sepa_mixing.h
864+
scip/sepa_multilinear.h
861865
scip/sepa_oddcycle.h
862866
scip/sepa_rapidlearning.h
863867
scip/sepa_rlt.h
@@ -888,6 +892,7 @@ set(scipheaders
888892
scip/struct_expr.h
889893
scip/struct_heur.h
890894
scip/struct_history.h
895+
scip/struct_hypergraph.h
891896
scip/struct_implics.h
892897
scip/struct_lp.h
893898
scip/struct_matrix.h
@@ -951,6 +956,7 @@ set(scipheaders
951956
scip/type_exprinterpret.h
952957
scip/type_heur.h
953958
scip/type_history.h
959+
scip/type_hypergraph.h
954960
scip/type_implics.h
955961
scip/type_interrupt.h
956962
scip/type_lp.h

0 commit comments

Comments
 (0)