RijwegopeenvolgingOp een complexe wisselstraat bestaan meerdere rijwegen. In de tijd zijn er allerlei rijwegen strijdig met elkaar.
Dat wil zeggen dat die rijwegen niet gelijktijdig beschikbaar zijn. Dat kan omdat ze een gemeenschappelijk doel hebben, zoals V1, V2 en V3. Of omdat ze een gemeenschappelijk startpunt hebben, zoals A1, A2 en A3. Of omdat er kruisende rijwegen zijn (A2xV1, A1xV1). Als ik dat zo noteer, dan doet dat me denken aan de strategie bij dammen, schaken, spelstrategie, kortom. Daar heeft het ook wat van weg.
Maar ik heb er wat anders op gevonden (logica):
Rijwegen op wisselstraten staan in een logisch tijdverband met elkaar.
Neem het voorbeeld van de wisselstraat met halve engelsman (3 kopsporen):
V1 OR V2 OR V3 (want strijdig in de tijd)
A1 OR A2 OR A3 (want strijdig in de tijd)
V1 OR A1 OR A2 OR A3 (want strijdig in de tijd)
V2 AND A1 (want parallel in de tijd)
V3 AND A2 (want parallel in de tijd)
Na filtering:
start:
A1
A2
A3
Continu proces:
V1
V2 AND A1
V3 AND A2
A3
Neem het voorbeeld van het kruiswissel met twee kopsporen:
V1 OR V2 (want strijdig in de tijd)
A1 OR A2 (want strijdig in de tijd)
V2 AND A1 (want parallel in de tijd)
Na filtering:
start:
A1
A2
continu proces:
V1
V2 AND A1
A2
Dat logisch verband leidt (door filtering) tot de optimaliseringsslag die ik maak in mijn modelbouw wereld.
Aankomst en Vertrek. Rijweg-doel moet altijd VRIJ zijn. Zolang het rijweg-doel niet VRIJ is, kan een rijweg niet gekozen worden.
Zo werkte NS niet. Die hadden NX-tableaus voor wisselstraten, rangeerterreinen, stations (o.a.), maar geen ingebouwde rijweg opeeenvolging.
De Zwitsers hadden een eigen systeem, Integra, met ook een soort NX-tableaus. Ook in Integra zat niet zoiets als rijweg-opeenvolging. De opeenvolging zat apart verwerkt in getekende dienstregeling schema's.
Ik heb er nog ergens foto's van, want
in de wachtkamer van Filisur (RhB) hebben ze het tableau bewaard. Maar niet alleen dat, ook de tekeningen van de dienstregeling op het baanvak aan weerszijden van het station. En van de vele kleinere stations erom heen.
Eigen Foto's:
zie in dit draadje Rijwegopeenvolging vroegerEr was een tijd dat
handelsreizigers afhankelijk waren van een postkoets (een keer per week van Amsterdam naar Maastricht) en een trekschuit (meerdaags, tussen Amsterdam en Haarlem, of enkele keren per week, Amsterdam Alkmaar).
Het was beslist niet handig om als rijweg-opeenvolging eerst naar Maastricht te willen, en dan naar Alkmaar, en tot slot naar Haarlem. Je maakte veel kilometers, vaak overbodig, logeerde langdurig in logementen, en je was volledig afhankelijk van het nog net halen van de postkoets terug. Het middel (koets, trekschuit, huurpaard), het aanbod (frekwentie), start en reisdoel bepaalden samen de optimale opeenvolging van rijwegen, en daarmee tijdwinst, inkomen of succes.
Wat voor handelsreizigers gold, gold voor
postbodes,
duivenhouders, en kennelijk voor stationchefs, en is domweg een
optimaliseringsprobleem.
Je kunt dat probleem veralgemeniseren tot een
"Vind het kortste pad" probleem.
Hoe analyseer je rijwegen?Het gaat om een
Beslissingsprobleem waar je door
minimalisatie probeert uit te komen, en dat kan in de treinhobby in wezen op maar twee manieren.
Want het moet wel een beetje begrijpelijk blijven: ofwel met matrices (dat is handiger als je zonder computer werkt), ofwel met een binaire boomstructuur of
graaf (dat is handiger als je veel rekencapaciteit hebt).
Computer gestuurde liefhebbers kennen ze wel: die schermen met "grafen" erop (grafisch voorgestelde rijwegen).
Ik ken inmiddels nogal wat automobilisten die een TomTom in de auto hebben. De navigatie m.b.v. een computer berust op 'graaf'-algoritmen.
Lang voordat computers in staat waren zulke berekeningen 'on the fly' uit te voeren, konden handelsreizigers, postbodes, duivenmelkers, en perronopzichters dat ook al, uit hun bolle hoofd. Dat betekent dat de oplossingsstrategieën (algoritmen) veel ouder zijn dan wiskundigen ons willen doen geloven, en wellicht eeuwen lang algemeen bekend waren, in tal van beroepen.
Dynamiek. Wat schiet je ermee op?Voor dit kopstation met "complexe" wisselstraat niets. En voor kleine variaties op dit zelfde thema eveneens niets. Er zal dezelfde optimalisatie uit komen voor dezelfde rijweg opeenvolging, met hooguit kleine variaties.
Gesteld dat je een, herbruikbare, analoge besturing wilt maken voor meerdere soorten kopstations met meerdere typen wisselstraten, dan schiet je er wel iets mee op.
Op het moment dat een rijweg-opeenvolging-optimalisatie berekend moet worden, zijn er meer variabelen nodig (elk wissel, kruising, is een knooppunt: als twee rijwegen een of meer knooppunten delen, dan zijn ze strijdig) en dus meer procedures (b.v. strijdige rijweg algoritme).
En na die hulpberekeningen moet het dan voorliggende model terug gerekend worden naar een model met minder variabelen, want een vergelijking met vier variabelen kun je nu eenmaal niet zo makkelijk oplossen als een met twee. En in de analoge praktijk doe je die versimpelingsslag met matrix bewerkingen.
Heb je dat rond dan zal bezetmelding veel belangrijker zijn dan in een statisch besturingsmodel.
Een dynamisch proces besturing berust nu eenmaal op meten en (bij-)sturen.
Ik moet het nog zien gebeuren. Wat opvalt is dat tal van optimalisatie algoritmes erg op elkaar lijken. Dat verbaast me niet. De wiskundige uitwerking verschilt enorm. Dat verbaast me ook niet, want dat heeft zowel te maken met het aantal variabelen wat je meeneemt, als met de hardware die je ter beschikking hebt.
Optimalisatie betekent over het algemeen dat maximum (of minimum) niet bereikt kan worden omdat het om logaritmische modellen gaat (die naderen altijd asymptotisch). Wat wel kan, is de inbouw van leerstrategieën die rijweg-keuzen vermijden of juist bevorderen op basis van eerdere ervaringen (Artificial Intelligence, zeg maar), en daar zie ik een analoge aanpak nooit toe in staat, zelfs niet met een Arduino.