Mixed Integer Linear Programming (MILP)¶
Mixed Integer Linear Programming is een methode waar een optimalisatieprobleem wordt vertaald naar een set "integer" (hele getallen) variabelen en waar op basis van de waarden van die variabelen een score wordt geoptimaliseerd. Die score mag een kommagetal zijn, maar de te maken keuzes zijn dus gehele getallen of 0/1 schakelaars (Boolean "toggles").
Zo'n optimalisatieprobleem wordt verder vormgegeven door de randvoorwaarden (constraints) en doelfunctie (objective function).
Zie ook het Wikipedia artikel over Integer Programming voor meer achtergrond.
In ons geval zijn alle optimalisatievariabelen integers, maar is de beloningsfunctie een kommagetal.
Tijdssegmenten¶
Het tijdsdomein van de analyse, de horizon, wordt in de analyse opgeknipt in segmenten. In het standaardgeval wordt hier de horizon van meerdere jaren per jaar opgeknipt (1 segment == 1 jaar). Het planningsprobleem is in dat geval te omschrijven als de allocatie van maatregelen binnen hun gestelde 'window' van jaren.
Maatregelen¶
Voor elke maatregel wordt per jaar het respectievelijke 'window' van een maatregel een reeks ja/nee variabelen gemaakt (Booleans) die aangeven of de maatregel in dat jaar van het window wordt gepland.
Daaruit volgt de eerste eis: de som van al deze ja/nee variabelen moet 1 zijn, aangezien een maatregel altijd ingepland moet worden.
Verschuivende maatregelen¶
Er kan een 'weging' worden gehangen aan iedere Boolean die een maatregel in een tijdssegment representeert die moet worden meegenomen in de optimalisatiekosten. Zodra de Boolean voor het jaartal op 'ja' springt voor het met twee jaar uitstellen van een maatregel, wordt die score dan ook meegenomen in de optimalisatie.
Samenvallende maatregelen¶
Voor samenvallende maatregelen worden een aantal zaken gescheiden opgelost:
- Per tijdssegment per beheerobject wordt een score toegekend aan het aantal maatregelen minus 1 dat aan staat, vanaf het moment dat er twee of meer maatregelen aan staan in dat segment en beheerobject.
- Dit geeft een score aan hoeveel "bespaarde" tijd er is, doordat een object niet sequentieel hoeft te worden onderhouden, maar dat er parallel kan worden gewerkt.
- Per combinatie van maatregelen (alle unieke tweetallen) wordt een score toegekend op basis van hun gelijkenis of goed-combinerende eigenschappen.
- Het verbieden van combinaties van maatregelen op basis van hun eigenschappen is mogelijk.
- Het verplicht synchroniseren van het startmoment is mogelijk (alleen wanneer er data m.b.t. maatregel-tijdsduur en voldoende resolutie voorhanden is).
Warning
De combinatie-beloning kan hard oplopen omdat steeds alle unieke paren binnen een segment worden afgegaan. Dat aantal unieke paren loopt numeriek nogal hard weg voor grotere bundels.
Wellicht moet hier nog een balancerend mechanisme voor worden ontworpen of het werkingsprincipe gereviseerd.
Samenvallende ingrepen¶
Wanneer er kolkoverstijgend wordt geoptimaliseerd gelden de verschuivingskosten van individuele maatregelen nog steeds.
Echter, nu kunnen systeem-eigenschappen beter worden meegenomen:
- Er kan een beloning/straf worden toegekend voor het samenvallen in hetzelfde jaar van ingrepen op hetzelfde complex.
- Bij afstraffing kan dit gebruikt worden om de beschikbaarheid van het complex beter te borgen.
- Bij beloning leidt dit juist tot het maximaal in onderhoud stellen van een complex om zoveel mogelijk te kunnen combineren en gezamenlijk aan te pakken.
- Ingrepen op hetzelfde complex in hetzelfde jaar kunnen ook volledig worden verboden.
- Specifieke combi's bestraffen/belonen: geavanceerde optie waarbij op basis van de gegenereerde ingreep-ID's specifieke beloningen of straffen kunnen worden opgegeven.
- Specifieke combi's uitsluiten: geavanceerde optie waarbij op basis van de gegenereerde ingreep-ID's combinaties worden uitgesloten om in hetzelfde jaar te vallen.