18c. 0-1 Integer linear programming
2021-04-30
slides.com/jod/pt_18c
Docent: Jo Devriendt
Assistent: Ann Philips
Coördinator: Joost Vennekens
voornaam.achternaam@kuleuven.be
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
IDP under the hood
Hoe vindt een systeem als IDP een interpretatie voor queen die de volgende formules waar maakt?
Door deze "hoogniveau" constraints te reduceren naar eenvoudiger constraints.
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
IDP under the hood
wordt
met een variabele die waarde 0 of 1 kan hebben, en aangeeft of er een koningin staat op vakje (r,c)
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
0-1 integer linear program
(0-1 ILP)
Dit is een 0-1 ILP, waar gespecialiseerde solvers voor bestaan.
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
0-1 integer linear program
(0-1 ILP)
Algemene vorm van 0-1 ILP
- In het algemeen:
- Veel interessante problemen kunnen uitgedrukt worden als 0-1 ILP
- Simpel voorbeeld: knapzakprobleem
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Knapzakprobleem
Beslis welke objecten j, met gewicht en waarde , in je knapzak te steken. De knapzak heeft een maximum totaalgewicht b, en je wil een zo groot mogelijke totale waarde in de knapzak.
en.wikipedia.org/wiki/Knapsack_problem
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Mathematical programming
- 0-1 ILP is een vorm van mathematical programming (MP)
- Een mathematical program is een verzameling rekenkundige vergelijkingen waar een oplossing voor gezocht moet worden
- Meest bekende is linear programming, waar de variabelen rationale getallen kunnen aannemen, en de vergelijkingen lineaire ongelijkheden zijn
- Andere mogelijkheden voor variabelen (bvb. geheeltallig of enkel 0-1) of vergelijkingen (bvb. veeltermen) zijn ook mogelijk
- Vergelijkingen worden opgelost met gespecialiseerde solvers
- Bvb. RoundingSat voor 0-1 ILPs
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Samenvatting
- Systemen die oplossingen zoeken voor logische formules of constraints vertalen naar 0-1 ILPs onder de motorkap
- 0-1 ILPs zijn programma's bestaande uit lineaire ongelijkheden over 0-1 (Booleaanse) variabelen, waar een optimale oplossing voor moet gevonden worden
- 0-1 ILPs behoren tot de algemenere klasse van mathematical programs
18c. 0-1 Integer linear programming
By Jo Devriendt
18c. 0-1 Integer linear programming
- 940