logmip2.gms : LogMIP User's Manual Example 2 - Example to illustrate disjunctions

Description

```Example to illustrate disjunctions with multiple terms and logic
propositions.

Aldo Vecchietti, LogMIP User's Manual, 2007,
http://www.logmip.ceride.gov.ar/files/pdfs/logmip_manual.pdf

Keywords: extended mathematical programming, disjunctive programming, logical
constraints
```

Reference

Small Model of Type : EMP

Category : GAMS Model library

Main file : logmip2.gms

``````\$title LogMIP User's Manual Example 2 (LOGMIP2,SEQ=335)

\$onText
Example to illustrate disjunctions with multiple terms and logic
propositions.

Aldo Vecchietti, LogMIP User's Manual, 2007,
http://www.logmip.ceride.gov.ar/files/pdfs/logmip_manual.pdf

Keywords: extended mathematical programming, disjunctive programming, logical
constraints
\$offText

Positive Variable c, x1, x2;

Variable z;

Binary Variable y1, y2, y3;

Equation obj, e1, e2, e3, e4, e5, e6;

obj.. z =e= c + 2*x1 + x2;

e1.. -x1 + x2 + 2 =l= 0;

e2..  c =e= 5;

e3.. -x2 + 2 =l= 0;

e4..  c =e= 7;

e5..  x1 - x2 =l= 1;

e6..  x1 =e= 0;

x1.up = 5;
x2.up = 5;
c.up  = 7;

Logic Equation l1, l2, l3;
l1.. y1 -> not y3;
l2.. y2 -> not y3;
l3.. y3 -> not y2;

Model m / all /;

\$onEcho > "%lm.info%"
default indic
disjunction y1 e1 e2 elseif y2 e3 e4
disjunction y3 e5    else   e6

* optional, if not set LOGMIP will find the modeltype suitable
modeltype mip
\$offEcho

option emp = logmip, mip = cplex;

solve m using emp minimizing z;
``````