• No results found

Conflictdetectie en -resolutie bij treinverstoringen

N/A
N/A
Protected

Academic year: 2021

Share "Conflictdetectie en -resolutie bij treinverstoringen"

Copied!
72
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Master Thesis Applied Mathematics

Faculty of Electrical Engineering, Mathematics and Computer Science (EEMCS) Discrete Mathematics and Mathematical Programming

CONFLICTDETECTIE EN -RESOLUTIE BIJ

TREINVERSTORINGEN

Kay W. Jongsma

Afstudeercommissie:

Prof. dr. J.L. Hurink (Universiteit Twente) Dr. ir. J. Goseling (Universiteit Twente) Ing. L. Tuin (Movares)

3 augustus 2015

(2)
(3)

Samenvatting

De spoordienstregeling in Nederland is zo opgesteld, dat treinen geen hinder van elkaar ondervinden wanneer zij deze dienstregeling volgen. De realiteit is echter weerbarstig.

Naast kleine verstoringen zijn er ook grote storingen zoals bijvoorbeeld een stroomsto- ring, of een defecte bovenleiding waardoor de dienstregeling ernstig verstoord raakt.

Vooral rond grote stations als Amsterdam Centraal en Utrecht Centraal zijn dan veel

treinen die de dienstregeling niet meer kunnen volgen. In een dergelijke situatie is het de

taak van de treindienstleider om deze treinen in te delen, zodanig dat de oorspronkelijke

dienstregeling zo spoedig mogelijk hervat kan worden. Dit verslag beschrijft het onder-

zoek naar een methode om de treindienstleider van advies te voorzien met betrekking tot

het indelen van treinen na een verstoring. Om dit doel te bereiken wordt het probleem

geformuleerd als Weighted Node Packing probleem. In de bijbehorende graaf stelt elk

punt een toewijzing van een route en een tijdstip aan een trein voor. Twee punten wor-

den verbonden door een lijn wanneer de bijbehorende toewijzingen niet compatibel met

elkaar zijn. Met elk punt wordt een gewicht geassocieerd dat aangeeft hoe goed deze

toewijzing is. Het vinden van de optimale tijdelijke dienstregeling is nu teruggebracht

naar het vinden van een maximum weight node packing in deze graaf. Omdat het vinden

van een optimale oplossing te lang duurt als er veel treinen moeten worden ingedeeld, is

een heuristiek ontwikkeld. Deze heuristiek vindt in korte tijd een acceptabele oplossing

van het probleem. De ontwikkelde methode wordt getest op een klein, fictief, station,

en op station Utrecht. De resultaten laten zien dat op kleine emplacementen snel een

optimale oplossing gevonden kan worden. Op grote emplacementen is de heuristiek in

staat om binnen korte tijd, een goede herindeling van de treinen te vinden.

(4)
(5)

Inhoudsopgave

1 Introductie 1

1.1 Inleiding . . . . 1

1.2 Achtergrond . . . . 2

1.3 Probleembeschrijving . . . . 4

1.4 Onderzoeksvragen . . . . 5

1.5 Opbouw van het verslag . . . . 6

2 Literatuuronderzoek 7 2.1 Train Timetable Rescheduling problem . . . . 7

2.2 Alternative graph model . . . . 8

2.3 Weighted Node Packing . . . 10

3 Model 15 3.1 Secties . . . 15

3.2 Treinen . . . 16

3.3 Routes . . . 17

3.4 Weighted Node Packing . . . 17

3.4.1 Punten aanmaken . . . 19

3.4.2 Lijnen tussen punten . . . 26

4 Oplosmethoden 29 4.1 Heuristiek . . . 29

4.2 Gewichten van de punten . . . 32

4.3 Verschillende gewichten . . . 37

4.4 Beoordelingscriteria . . . 38

4.5 Oplossen met behulp van MILP solver . . . 39

4.6 Parameter in heuristiek bepalen . . . 40

5 Analyse 43 5.1 Herschrijven LP . . . 45

5.2 Dominantie . . . 46

5.3 Omweg . . . 47

6 Resultaten 49 6.1 Instelling gewichten en beoordelingscriteria . . . 50

6.2 Klein emplacement . . . 51

6.2.1 Instellingen op klein emplacement . . . 51

6.2.2 Informatie over simulatie op klein emplacement . . . 51

iii

(6)

6.2.3 Casussen op klein emplacement . . . 52

6.2.4 Resultaten klein emplacement . . . 53

6.3 Resultaten van emplacement Utrecht . . . 55

6.3.1 Instellingen op emplacement Utrecht . . . 55

6.3.2 Instelling van gewichten en beoordelingscriteria . . . 56

6.3.3 Beschrijving van casussen . . . 56

6.3.4 Bespreking van resultaten . . . 56

6.3.5 Algemene conclusie van simulaties . . . 57

7 Conclusies en aanbevelingen 61 7.1 Conclusies . . . 61

7.2 Aanbevelingen . . . 62

Bibliografie 65

(7)

Hoofdstuk 1

Introductie

1.1 Inleiding

De spoordienstregeling in Nederland is zo gemaakt dat treinen geen conflicten op het spoor ondervinden, wanneer zij deze dienstregeling volgen. Wanneer een trein afwijkt van het geplande schema, kan het voorkomen dat hij in conflict komt met een andere trein en ´ e´ en van beide moet wachten. In een dergelijke situatie is het de taak van de treindienstleider om het rijden van de treinen zo bij te sturen dat deze conflicten worden opgelost . Het is hem echter niet altijd duidelijk hoe de treinen in zulke situaties het beste kunnen worden ingepland.

Vooral wanneer op grote stations veel treinen vertraging hebben, is het voor de trein- dienstleider lastig om de juiste indeling van de treinen te vinden. Na bijvoorbeeld een grote stroomstoring (zoals op 27 maart 2015) of de reparatie van een defecte bovenlei- ding (zoals op 2 februari 2015) ligt het treinverkeer nog lang stil. Het is dan aan de treindienstleider om na de storing alle treinen zo in te delen dat ze weer op gang kunnen komen en zo snel mogelijk weer volgens dienstregeling rijden.

Dit onderzoek heeft als doel om de treindienstleider advies te geven in situaties waar treinen afwijken van de dienstregeling, zodat hij ze zo effici¨ ent mogelijk door een station kan leiden. Wanneer er slechts een kleine ongeregeldheid is in het geplande schema, is de situatie voor de treindienstleider nog overzichtelijk en kan een effici¨ ente herindeling van de betreffende treinen met behulp van zijn eigen inzicht wel gevonden worden. Wanneer er zich echter een grote verstoring voordoet, is het vinden van een goede toewijzing moeilijker. In zulke gevallen is een advies met betrekking tot het indelen van treinen gewenst. Daarom ligt de focus van dit onderzoek meer specifiek op het indelen van treinen rondom een station na een grote verstoring.

1

(8)

1.2 Achtergrond

In deze paragraaf wordt achtergrondinformatie gegeven over de werking van het spoor en de seinen, evenals de taken van de treindienstleider. Daarnaast wordt het onderscheid tussen een verstoring en een disruptie uitgelegd. Deze kennis vormt het uitgangspunt voor het onderzoek en helpt bij het formuleren van de onderzoeksvragen (zie par. 1.3).

Werking van het spoor

Het Nederlandse sporennet is opgedeeld in secties. Op een sectie mag zich slechts een trein tegelijk bevinden. Door middel van een detectiecircuit wordt waargenomen of een bepaalde sectie bezet is. De secties die tussen twee seinen liggen, worden samen een blok genoemd. E´ en of meerdere blokken kunnen een rijweg vormen; dit is een verzameling van secties, voorafgegaan door een sein, die voor een trein zijn gereserveerd. Voordat de treindienstleider een rijweg voor een bepaalde trein kan instellen, controleert hij of alle secties vrij zijn en niet zijn gereserveerd voor een andere trein. Als de rijweg is ingesteld, zijn alle secties daarbinnen bestemd voor die trein en is het voor andere treinen niet toegestaan om (een gedeelte van) de rijweg op te rijden. Zodra de trein een sectie van de rijweg verlaat, wordt deze sectie weer beschikbaar voor andere treinen. De toestand van de rijweg wordt aan de machinist gecommuniceerd door middel van seinen.

Figuur 1.1: Schematische weergaven van het spoor

Seinen

Het treinverkeer wordt geregeld door middel van seinen langs het spoor. Aan het sein-

beeld van de seinen kan een machinist opmaken of hij de rijweg op mag rijden en wat

de maximaal toegestane snelheid is.

(9)

3

In principe zijn er drie verschillende seinbeelden die een sein kan tonen 1 :

• Groen: De rijweg achter dit sein is ingesteld voor deze trein. De machinist mag de rijweg ongehinderd oprijden.

• Geel: De maximale snelheid achter het sein bedraagt 40 km/u. De machinist moet er rekening mee houden dat het volgende sein op rood staat.

• Rood: De trein mag dit sein niet passeren.

Zowel bij een groen, als bij een geel sein is de rijweg erachter dus vrij en gereserveerd voor de betreffende trein. Omdat een trein vaak een lange remweg heeft, zijn seinen zo ingesteld dat het sein voor een rood sein altijd geel is. Dit stelt de machinist in staat om zijn snelheid terug te brengen naar 40 km/u, zodat hij de trein voor het daaropvolgende rode sein tot stilstand kan brengen.

Naast het seinbeeld is ook de positie van de seinen van belang. Wanneer een trein voor een rood sein stopt, blokkeert hij door zijn lengte ´ e´ en of meerdere secties voor het sein.

Rijwegen die ´ e´ en of meerdere van deze bezette secties bevatten, kunnen op dat moment niet gebruikt worden door andere treinen. Door het sein zo te plaatsen dat een hiervoor wachtende trein zo min mogelijk rijwegen blokkeert, wordt de doorstroom van treinen op een emplacement bevorderd. Elk spoor op een emplacement heeft daarom een inrijsein.

Als een trein voor dit sein wacht, worden er weinig of geen andere rijwegen geblokkeerd.

Wanneer de rijweg vanaf het inrijsein tot aan het perron is ingesteld, rijdt de trein in

´

e´ en keer door, zonder tussendoor te stoppen.

Treindienstleider

Seinen worden aangestuurd vanuit een treindienstleiderspost. Hiervan zijn er dertien in Nederland, die elk gaan over het spoor in ´ e´ en van de dertien gebieden waarin ons land is opgedeeld. Vanuit deze post wordt het treinverkeer in het betreffende gebied gestuurd door een treindienstleider. Hij is verantwoordelijk voor het veilige verloop van het treinverkeer binnen het betreffende gebied. Dit houdt onder andere in dat hij treinen herindeelt wanneer ze vertraging hebben. Ook is hij het aanspreekpunt van de machinisten.

Wanneer een trein een bepaalde rijweg af wil leggen, wordt er eerst gecontroleerd of deze beschikbaar is. Willen twee (of meer) treinen op hetzelfde moment dezelfde sectie reserveren, dan is er sprake van een conflict en is een beslissing van de treindienstleider vereist. In het geval dat alle secties van de potenti¨ ele rijweg beschikbaar zijn, worden ze

1

Er worden in Nederland meer seinbeelden gebruikt, maar die zijn voor dit onderzoek niet van belang.

(10)

gereserveerd voor deze trein. Dit wordt het instellen van een rijweg genoemd. Wanneer de rijweg is ingesteld, wordt het sein aan het begin omgezet van rood naar geel of groen en kan de trein zijn geplande rijweg aanvangen.

Als de vertraging van treinen binnen de drie minuten blijft, worden rijwegen automatisch ingesteld door de Automatische RijwegInstelling (ARI). In dat geval hoeft de treindienst- leider niet in te grijpen. Wanneer treinen echter meer dan drie minuten te laat zijn, stelt ARI de rijwegen voor de trein niet meer in en dient de treindienstleider dit handmatig te doen.

Verstoringen en disrupties

We maken onderscheid tussen een verstoring van de dienstregeling en een disruptie, oftewel een grote desorganisatie op het spoor. Met een verstoring wordt dus een relatief kleine ongeregeldheid bedoeld.

Een verstoring kan veroorzaakt worden doordat bepaalde processen op het spoor meer tijd kosten dan gepland, bijvoorbeeld als een trein te lang langs een perron blijft staan.

Als gevolg van deze verstoring vertrekt deze trein later dan voorzien en loopt hij vertra- ging op. Dit noemen we primaire vertraging. Doordat de trein later is dan de planning, bezet hij vervolgens delen van het spoor op andere momenten dan de dienstregeling voorschrijft. Hierdoor kan het voorkomen dat hij op andere treinen moet wachten of dat andere treinen op deze trein moeten wachten. Deze vorm van vertraging noemen we secundaire vertraging. Veelal is de primaire vertraging niet te vermijden en is het zaak de secundaire vertraging te minimaliseren.

Een disruptie is een relatief grote storing in de dienstregeling en vergt vaak een dras- tischere aanpak dan een verstoring. Een disruptie kan veroorzaakt worden door een tijdelijke onbegaanbaarheid van de infrastructuur, bijvoorbeeld door een kapotte wissel of een defecte bovenleiding. Hierdoor kunnen treinen erg veel vertraging oplopen en vaak gaat dit dan ook gepaard met uitval. Vanwege het landelijke karakter van het sporennet zijn de gevolgen van een (plaatselijke) disruptie vaak in grote delen van het land te merken.

1.3 Probleembeschrijving

Wanneer een trein (veel) vertraging heeft, moet de treindienstleider ingrijpen en hand-

matig een rijweg instellen voor deze trein. Doordat de trein later is dan gepland, kan

het voorkomen dat hij moet wachten voordat hij verder kan, of dat ´ e´ en of meer andere

(11)

5

treinen op deze trein moeten wachten. Het is aan de treindienstleider om hier een beslis- sing over te nemen. Om de treindienstleider te helpen bij het nemen van zijn beslissing zijn er in Nederland veel bedieningsvoorschriften opgesteld. Hierin staat hoe de treinen moeten worden gestuurd bij een specifieke verstoring van de dienstregeling. In Neder- land liggen meer dan duizend verschillende bedieningsvoorschriften klaar [1]. Een nadeel van deze voorschriften is dat, ook al zijn het er veel, ze nog lang niet elke verstoring beschrijven. Daarnaast moeten ze iedere keer opnieuw worden opgesteld wanneer er een structurele verandering van de dienstregeling wordt doorgevoerd. Wanneer er zich een verstoring voordoet die nog niet beschreven is, handelt de treindienstleider vanuit algemene richtlijnen en zijn eigen ervaring. Als er veel treinen vertraagd zijn, is het niet altijd duidelijk wat de beste toewijzing van rijwegen aan treinen is. Dit komt mede door het feit dat hierbij een aantal verschillende belangen een rol speelt. Wanneer een trein het komende station als eindstation heeft, is het misschien minder erg dat hij iets later aankomt, dan wanneer het een intercity betreft die nog verder rijdt. Ook kan het uitmaken of veel passagiers moeten overstappen van/naar de in te delen trein. Al deze belangen maken het lastig om de toewijzing van rijwegen te beoordelen en daarmee om een goede indeling voor de treinen te vinden.

1.4 Onderzoeksvragen

In dit onderzoek wordt gekeken naar het oplossen van conflicten resulterende uit versto- ringen rondom een station. De invloed van de plaatselijke aanpassingen op het resterende deel van het Nederlandse spoor wordt buiten beschouwing gelaten.

Meer specifiek wordt in dit onderzoek getracht een antwoord te vinden op de volgende onderzoeksvraag:

Hoe kan de treindienstleider worden ondersteund bij het nemen van beslissingen met betrekking tot het instellen van rijwegen voor treinen, wanneer er sprake is van een grote verstoring in de dienstregeling?

Deze onderzoeksvraag kan opgedeeld worden in de volgende deelvragen:

• Wat is er al voor onderzoek gedaan naar het realtime inplannen van treinen bij verstoringen?

• Hoe kan de manier waarop treinen rijden goed worden gemodelleerd?

• Welke treineigenschappen zijn van belang voor het indelen van treinen?

• Hoe kan dit probleem effici¨ent worden opgelost?

(12)

1.5 Opbouw van het verslag

Deze paragraaf beschrijft de opbouw van de rest van het verslag. In hoofdstuk 2 wordt

besproken wat voor onderzoek er al gedaan is omtrent het indelen van treinen. Daarna

wordt in hoofdstuk 3 het opgestelde model uit de doeken gedaan en de werking ervan

toegelicht. Vervolgens wordt in hoofdstuk 4 onderzocht hoe dit probleem effici¨ ent en

optimaal kan worden opgelost en worden de parameters vastgesteld. In hoofdstuk 5

wordt beschreven hoe het probleem versimpeld kan worden, waardoor een goede oplos-

sing makkelijker te verkrijgen is. Hoofdstuk 6 beschrijft de resultaten van tests die zijn

uitgevoerd op een fictief emplacement en op station Utrecht. Dit verslag sluit af met

hoofdstuk 7, waar de conclusies en aanbevelingen worden gedaan en waar een antwoord

op de onderzoeksvraag wordt gegeven.

(13)

Hoofdstuk 2

Literatuuronderzoek

Er is al onderzoek gedaan naar het effici¨ ent laten rijden van treinen op het spoor. In dit hoofdstuk wordt een kort overzicht gegeven van de verschillende aspecten van het regelen van treinen, en worden enkele oplosmethodes in meer detail toegelicht.

2.1 Train Timetable Rescheduling problem

Het toewijzen van rijwegen aan treinen zodanig dat deze zo effici¨ ent mogelijk rijden wordt in de literatuur het Train Timetable Rescheduling problem (TTR) of conflict detection and resolution problem genoemd. Hier gaat het om het real-time aanpassen van de dienstregeling die door een verstoring of disruptie niet meer gevolgd kan worden.

De drie belangrijkste aspecten waarmee bij het oplossen van het TTR probleem rekening moet worden gehouden zijn:

• De manier waarop rijwegen aan treinen worden toegewezen

• Tijdstip van aankomst en vertrek

• Benodigde tijd voor het vinden van een oplossing

Mascis et al. [4] laten zien dat zelfs het probleem om te bepalen of er een toegestane oplossing van het TTR probleem is al NP-volledig is.

TTR kan worden opgesplitst in twee delen. Aan de ene kant moeten voor elke trein rijwegen gekozen worden, dat wil zeggen een opeenvolging van de secties die de trein gaat bezetten. Aan de andere kant moet, bij een gegeven rijweg, bepaald worden op welke tijdstippen deze secties voor de trein worden gereserveerd.

7

(14)

Pellegrini et al. [5] en Rodriguez [7] beschrijven hoe een lineair programma opgesteld kan worden om het TTR op te lossen. Uit de resultaten blijkt dat de benodigde tijd om tot de optimale oplossing te komen snel toeneemt met de grootte van de instance.

Omdat een optimale oplossing vaak niet vereist is, en het wel belangrijk is om een goede oplossing binnen een acceptabele tijd te vinden, focussen we in dit onderzoek niet op het vinden van de beste oplossing maar voldoet een goede oplossing.

TTR kan worden opgesplitst in twee delen. Aan de ene kant moeten voor elke trein rijwegen gekozen worden, dat wil zeggen een opeenvolging van de secties die de trein gaat bezetten. Aan de andere kant moet, bij een gegeven rijweg, bepaald worden op welke tijdstippen deze secties voor de trein worden gereserveerd.

In dit verslag worden twee methodes om het TTR op te lossen besproken. Eerst wordt het alternative graph model besproken, en vervolgens het weighted node packing model.

Het alternative graph model veronderstelt dat de rijwegen van treinen vastligt en bepaalt alleen de volgorde van treinen. Bij het weighted node packing model liggen de rijwegen van de treinen nog niet vast, en moet ook de volgorde van de treinen nog vastgesteld worden.

2.2 Alternative graph model

Als de route van een trein als gegeven wordt verondersteld, moet alleen de volgorde van de treinen nog worden bepaald. Een manier om dat te modelleren wordt beschreven in Mascis et al. [4]. Het probleem wordt daar opgelost door middel van een job shop scheduling formulering.

In deze formulering worden treinen geassocieerd met jobs, en blokken met machines.

Het bezetten van een blok door een trein vormt een operatie. De verwerkingstijd van een operatie is de bezettijd van de trein op het bijbehorende blok. Omdat op elk blok maximaal ´ e´ en trein kan staan, is er sprake van een conflict wanneer er een tijdstip is waarop twee treinen hetzelfde blok willen bezetten. Door middel van no-store randvoor- waarden wordt ervoor gezorgd dat een job een machine niet kan verlaten, als de volgende machine niet vrij is. Dit komt overeen met de manier waarop treinen rijden, een trein mag een blok immers niet verlaten als het volgende blok nog bezet is. Met behulp van blocking randvoorwaarden wordt aangegeven dat een machine een nieuwe job pas kan aanvangen zodra de voltooide job op de volgende machine verwerkt wordt.

Het resulterende scheduling probleem wordt opgelost door het om te zetten naar een

graaf G = (V, F ∪ A), waarbij V de verzameling punten in de graaf is, en F ∪ A twee

verzamelingen van lijnen zijn. Elk punt v ∈ V stelt een operatie voor, dat wil zeggen

een trein die een blok bezet en voor elke mogelijk operatie wordt een punt aangemaakt.

(15)

9

Deze graaf bevat twee verschillende typen lijnen, die de verwerkingsvolgorde van de operaties aangeven, F en A . F is een verzameling gerichte lijnen en A is een verzameling alternatieve lijnenparen. Voor ieder paar i, j van direct opeenvolgende operaties van een job (dat wil zeggen twee opeenvolgende blokken van een rijweg van een trein) wordt een lijn (i, j) toegevoegd aan F , d.w.z. (i, j) ∈ F wanneer operatie j direct volgt na operatie i.

Wanneer twee operaties op dezelfde machine moeten worden uitgevoerd, ligt de bewer- kingsvolgorde niet vast en moet er een keus gemaakt worden welke trein eerst het blok bezet. Dit wordt aangegeven door de alternatieve lijnenparen.

Stel dat operatie i en j op dezelfde machine moeten worden uitgevoerd. Noem de operaties volgend op i en j, respectievelijk h en k. Als ((k, i), (h, j)) ∈ A dan vormen lijnen (k, i) en (h, j) een paar alternatieve lijnen. Hiermee wordt gemodelleerd dat wanneer i eerder behandeld wordt dan j, operatie j pas van start kan gaan nadat h is gestart (want dan verlaat i de machine). Deze situatie wordt weergegeven door de lijn (h, j). Op soortgelijke wijze stelt lijn (k, i) de situatie voor waarin operatie j voorafgaat aan operatie i. Dit is grafisch weergegeven in figuur 2.1.

Figuur 2.1: Voorbeeld van

alternatieve lijnen Figuur 2.2: Voorbeeld van vier treinen rondom een klein station

Bovendien worden nog de dummy operaties 0 en n toegevoegd, die het begin en het eind voorstellen. 0 is een voorganger van elke i en elke i is voorganger van n, i ∈ {1, . . . , n−1}.

Een geldige dienstregeling is een toewijzing van aanvangstijden s 0 , . . . , s n aan operaties 0, . . . , n, zodanig dat de bewerkingsvolgorde van de operaties gerespecteerd is. Verder moet er voor elk alternatieve lijnenpaar precies ´ e´ en van de twee bewerkingsvolgordes gerespecteerd worden.

Wanneer men van elk alternatieve lijnenpaar precies ´ e´ en toevoegt aan de graaf, die ook

al de lijnen uit F en de lijnen met dummy punten 0 en n bevat, kan een dienstregeling

opgesteld worden. De ‘kortste’ dienstregeling wordt gevonden door het langste pad van

punt 0 naar elk punt i in deze graaf te berekenen. Deze dienstregeling is dan de beste

dienstregeling die de gekozen volgordes respecteert, dat wil zeggen, de laatste operatie

n wordt in deze dienstregeling zo vroeg mogelijk voltooid.

(16)

Figuur 2.3: Alternative graph behorend bij het voorbeeld in figuur 2.2.

In figuur 2.2 wordt een klein emplacement weergegeven waar zich vier treinen bevinden die ingedeeld dienen te worden. De letters geven stellen treinen voor, en de nummers geven de secties aan. In figuur 2.3 wordt de bijbehorende alternative graph weergege- ven. In elk punt geeft de letter weer welke trein het betreft, en geeft het getal weer welke sectie deze trein bezet. De ononderbroken lijnen stellen de gerichte lijnen voor, en de onderbroken lijnen geven alternatieve lijnenparen weer. Figuren 2.2 en 2.3 zijn bewerkingen van afbeeldingen afkomstig uit [3].

Door deze formulering van het probleem kan een toegestane dienstregeling als volgt gevonden worden: Vind in de graaf G het langste pad van punt 0 naar ieder ander punt, waarbij van elk paar alternatieve lijnen ´ e´ en richting gekozen dient te worden. Het langste pad van 0 tot n wordt het kritieke pad genoemd en geeft de kritieke operaties weer. De aanvangstijd van operatie i is de lengte van het langste pad van 0 naar i. Nu de aanvangstijden van elke operatie vastligt, ligt hiermee ook de dienstregeling vast.

2.3 Weighted Node Packing

Zwaneveld et al.[2] beschrijven een andere methode om treinen door een emplacement te

leiden. Ze beschouwen dit in de context van het opstellen van een landelijke dienstrege-

ling. Doordat er veel tijd zit tussen het opstellen en het uitvoeren van de dienstregeling,

is in deze context de snelheid van de methode minder van belang. Tevens gaan ze er van

uit dat voor alle treinen bekend is hoe laat ze bij het inrijsein aankomen, waardoor ze

geen rekening houden met vertragingen. Het routeringsprobleem wordt beschreven als

(17)

11

een weighted node packing probleem. Voordat we verder in de methode duiken wordt eerst de gebruikte notatie beschreven.

Secties

Een emplacement is opgebouwd uit een verzameling secties, S. Treinen rijden het em- placement op bij een inrijsectie. Vanaf de inrijsectie rijdt de trein naar een perron, en vervolgens van het perron naar een uitrijsectie. In- en uitrijsecties worden aangeduid met I ⊂ S resp. U ⊂ S. Er kunnen secties zijn die zowel een inrijsectie als een uitrijsectie zijn, in dat geval geldt: I ∩ U 6= ∅.

P duidt de verzameling perrons aan. Een perron p ∈ P bestaat uit ´ e´ en of meerdere aaneengesloten secties.

Routes

Een ingaande route gaat van een inrijsectie i ∈ I naar een perron p ∈ P en bestaat uit een aaneengesloten sequentie van secties die de trein op de weg van i naar p berijdt. Voor een inrijsectie i ∈ I en een perron p ∈ P zijn over het algemeen meerdere routes beschikbaar.

R i,p , i ∈ I, p ∈ P is de verzameling van alle toegestane routes van inrijsectie i naar perron p. Verder defini¨ eren we de verzameling van alle ingaande routes R I := S

i∈I,p∈P R i,p . Analoog hieraan is R p,u de verzameling routes vanaf perron p ∈ P naar uitrijsectie u ∈ U, en R U de verzameling van alle uitgaande routes. Verder worden er perronroutes R p gedefinieerd. Deze perronroutes bestaan uit ´ e´ en of meerdere secties die een trein bezet houdt als hij langs perron p stilstaat. R P is de verzameling van alle perronroutes.

Treinen

De verzameling T bevat alle treinen die beschouwd worden. i(t) ∈ I en u(t) ∈ U zijn respectievelijk de inrij- en uitrijsectie van trein t. P(t) ⊂ P is de verzameling perrons waar trein t naar toe mag rijden. R I t := S

p∈P(t) R i(t),p de verzameling van alle mogelijke ingaande routes voor trein t. Op soortgelijke wijze is R U t de verzameling uitgaande routes voor trein t. De perronroutes voor trein t zijn R P(t) := S

p∈P(t) R p . Hiermee is nu

R t := R I t ∪ R U t ∪ R P t is de verzameling van alle mogelijke routes, van alle drie routetypen,

die trein t kan volgen. Een route door het emplacement voor trein t bestaat uit een

tripel (r i t , p t , r u t ) waarbij r i t ∈ R i(t),p

t

, p t ∈ P(t) en r t u ∈ R p

t

,u

t

. Het maken van een

dienstregeling, die alle treinen door het emplacement leidt, bestaat nu uit het toewijzen

van een tripel (r t i , p t , r t u ) aan elke trein t ∈ T.

(18)

De verzamelingen F t,t

0

Om aan te geven welke trein-route combinaties niet een toegestane toewijzing vormen, defini¨ eren we de verzamelingen F t,t

0

voor elk paar treinen t, t 0 ∈ T. Deze verzameling bevat toegestane routeparen (r, r 0 ) voor treinenparen (t, t 0 ). Wanneer t 6= t 0 impliceert dit voor (r, r 0 ) ∈ F t,t

0

dat wanneer trein t route r volgt, en trein t 0 volgt route r 0 , dat er geen gemeenschappelijke sectie s ∈ r ∩ r 0 is die door trein t en trein t 0 tegelijkertijd geclaimd is. Uit de verzamelingen F t,t

0

kan zo opgemaakt worden welke trein-route combinaties onderling een conflict hebben.

Omdat de aanvangstijden en eindtijden van de treinen als bekend worden verondersteld voor elke trein-route combinatie, is bekend op welke tijdsintervallen een trein welke secties bezet houdt, en kan zo nagegaan worden of die een conflict vormt met een andere trein-route combinatie. Niet alleen conflicten kunnen met deze verzamelingen worden aangeduid, maar ook andere ongeldige toewijzingen. De verzamelingen F t,t

0

geven dus routeparen aan die bij elkaar passen. Verder is het duidelijk dat wanneer een trein een inroute r 1 ∈ R i(t),p volgt , deze trein bij het uitrijden bijvoorbeeld niet gebruik kan maken van route r 2 ∈ R p

0

,u(t) , indien p 6= p 0 . In dit geval geldt (r 1 , r 2 ) 6∈ F (t, t).

Het lineair programma

Om aan te geven of een trein r wordt toegewezen aan een trein t, worden de beslissings- variabelen X t,r ge¨ıntroduceerd.

X t,r =

1 als trein t route r volgt 0 anders

Voor een geldige toewijzing van treinen aan routes moet aan de volgende vergelijkingen worden voldaan:

X

r∈R

it

X t,r ≤ 1 voor alle t ∈ T (2.1)

X

r∈R

ut

X t,r ≤ 1 voor alle t ∈ T (2.2)

X

r∈R

pt

X t,r ≤ 1 voor alle t ∈ T (2.3)

X t,r + X t

0

,r

0

≤ 1 voor alle t, t 0 ∈ T; r ∈ R t ; r 0 ∈ R t

0

; (r, r 0 ) 6∈ F t,t

0

(2.4)

X t,r ∈ {0, 1} voor alle t ∈ T (2.5)

(19)

13

Vergelijkingen (2.1)-(2.3) zorgen ervoor dat elke trein maximaal ´ e´ en ingaande, ´ e´ en uit- gaande en ´ e´ en perronroute krijgt toegewezen. Vergelijkingen (2.4) garanderen dat er alleen routes worden gekozen die geen conflicten opleveren. Tot slot verklaren vergelij- kingen (2.5) de belissingsvariabelen als binaire variabelen.

Elke variabele X t,r wordt geassocieerd met een gewicht ρ t,r . Dit gewicht geeft aan hoe wenselijk het is om trein t route r te laten rijden. De doelfunctie wordt gegeven door

max X

t∈T

X

r∈R

t

ρ t,r · X t,r .

Dit probleem, het Trein Indeel Probleem (TIP), wordt in [2] opgelost door het te for- muleren als een weighted node packing probleem.

Weighted Node Packing Probleem

Het weighted node packing (WNP) probleem is als volgt gedefini¨ eerd:

Gegeven: Een ongerichte graaf G = (V, E) met een verzameling punten V en een ver- zameling lijnen E. Elk punt v ∈ V heeft een gewicht ρ v . Een node packing is een verzameling S ⊆ V zodanig dat er geen lijn in E twee punten in S verbindt. Het totale gewicht van de node packing S wordt gegeven door P

v∈S ρ v . Het weighted node pac- king probleem is het probleem om een node packing te vinden met een maximaal gewicht.

Om het TIP om te zetten naar een weighted node packing probleem wordt de graaf G als volgt geconstrueerd: Er wordt een punt opgesteld voor elke variabele X t,r . Het gewicht van dit punt is hetzelfde als het bijbehorende gewicht uit de doelfunctie ρ t,r . Vervolgens worden de volgende lijnen toegevoegd aan de graaf:

• Elk punt X t,r wordt verbonden met alle punten die horen bij dezelfde trein t en hetzelfde routetype (ingaand, perron, uitgaand).

• Elk paar punten X t,r en X t

0

r

0

wordt verbonden wanneer (r, r 0 ) 6∈ F t,t

0

Het eerste punt zorgt ervoor dat elke trein van elk routetype er maar ´ e´ en toegewezen

krijgt(vergelijkingen (2.1) - (2.3)). Het tweede punt zorgt ervoor dat twee conflicterende

trein-route toewijzingen niet beide gekozen kunnen worden (vergelijkingen (2.4)). De

binaire aard van het wel of niet selecteren van een punt in het WNP probleem komt

terug in vergelijkingen (2.5).

(20)

Zwaneveld et. al lossen dit probleem op door de LP relaxatie op te lossen en met behulp van een heuristiek vanuit de oplossing van de relaxatie een toegestane oplossing te construeren. Vervolgens wordt deze oplossing gebruikt als ondergrens voor een Branch

& Cut procedure.

(21)

Hoofdstuk 3

Model

In dit hoofdstuk wordt beschreven hoe het rijden van treinen op een emplacement wordt gemodelleerd. Hierbij ori¨ enteren we ons op het TIP model uit [2], maar gezien wij een uitgebreider probleem beschouwen moeten we de modellering uit [2] uitbreiden. De input van het model bestaat in essentie uit een verzameling secties, S, en een verzameling treinen, T. De beslissingen van het model hebben betrekking op de dienstregeling die voor deze treinen wordt opgesteld. Hierbij is de belangrijkste voorwaarde dat de treinen conflictvrij rijden.

3.1 Secties

In- en Uitrijsecties

Voordat het model opgesteld kan worden is het belangrijk om het te beschouwen ge- bied vast te leggen. Omdat conflicten vaak optreden op een emplacement is voor deze opdracht besloten om een emplacement als gebied te nemen. De grenzen van het te beschouwen gebied worden dan gegeven door de inrijseinen van de sporen. Per spoor is de inrijsectie de sectie n´ a het inrijsein, en de uitrijsectie de sectie v´ o´ or het uitrijsein.

De verzameling inrijsecties respectievelijk uitrijsecties wordt weergegeven door I ⊂ S en U ⊂ S. Zie ook figuur 1.1.

Gezien het niet wenselijk is dat treinen op het emplacement elders dan bij de perrons stoppen, zullen wij bij de modellering alleen toestaan dat treinen vanaf de inrijsectie in

´

e´ en keer doorrijden naar het perron, en van het perron in ´ e´ en keer door rijden kan naar de uitrijsectie.

15

(22)

Perronsecties

Een perronsectie is een sectie die passagiers toegang tot het perron verschaft wanneer een trein op die sectie stilstaat. De verzameling perrons wordt aangegeven met P. Veelal geven meerdere aaneengesloten secties toegang tot hetzelfde perron. Elk perron p ∈ P is daarom een deelverzameling van de verzameling S.

Wanneer een perron in werkelijkheid bestaat uit bijvoorbeeld 4, 4a en een 4b gedeelte, worden die in het model gerepresenteerd als drie aparte perrons. Het eerste perron p ∈ P bevat de secties die horen bij het a gedeelte van het perron, het tweede perron bevat de secties van het b gedeelte, en het derde perron bevat de secties van zowel het a als het b gedeelte. Op sommige perrons is het mogelijk om een trein langs een bezet perron a te laten rijden, en op perron b te laten aankomen. De bovenstaande modellering van perrons maakt het mogelijk dit ook in het model mee te nemen.

3.2 Treinen

Naast de secties moeten ook de treinen in het model beschreven worden: Per trein t ∈ T wordt de volgende informatie als gegeven verondersteld:

• inrijsectie, i t ∈ I

• uitrijsectie, u t ∈ U

• toegestane perrons, P(t) ⊆ P

• voorkeursperron, ˜ p t ∈ P(t)

• verwachte aankomsttijd op inrijsectie, τ aankomst,inrij t

• geplande aankomsttijd op perron, τ aankomst,perron t

• geplande vertrektijd van perron, τ vertrek,perron t

• treintype, type t

De inrijsectie is de sectie waar de trein het emplacement binnenkomt, en op de uitrijsectie verlaat de trein het emplacement. Vaak is het niet mogelijk om een trein op elk mogelijk perron te laten stoppen, bijvoorbeeld doordat het perron te kort is. De verzameling perrons waar trein t wel mag stoppen is een deelverzameling van alle perrons, P(t) ⊆ P.

Voor elke trein t is in de dienstregeling vastgelegd langs welk perron deze trein moet

stoppen, het voorkeursperron, ˜ p t ∈ P(t). Wanneer een trein niet gehinderd is zal hij op

dit perron aankomen.

(23)

17

Vooraf is vaak bekend hoe laat een trein zal aankomen op zijn beginsectie. Dit tijdstip wordt aangegeven door τ t aankomst . Het tijdstip waarop de trein volgens de originele dienstregeling van het perron moet vertrekken is τ t vertrek . Het type van een trein geeft meer informatie over wat voor trein het is. Hieruit kan worden opgemaakt bij welke treinserie de trein hoort, dus waar een trein vandaan komt en waar hij naartoe rijdt.

Bovendien kan hieruit worden opgemaakt of het een Intercity of een Sprinter betreft.

De prioriteit van een trein hangt samen met het type van de trein en geeft aan hoe belangrijk de trein gevonden wordt in dit model. Dit is niet een vaststaande eigenschap van een trein, maar wordt mede door de treindienstleider bepaald.

3.3 Routes

Een route is een sequentie van secties. We onderscheiden drie typen routes: ingaande routes, uitgaande routes en perronroutes. Eerst defini¨ eren we perronroutes, R p . Deze perronroutes representeren de secties langs een perron p ∈ P, en worden gebruikt om de bezetting van het perron door een trein te modelleren. Perronroutes bestaan dus uit

´

e´ en of meerdere secties. De verzameling ingaande routes, R i,p , leiden van een inrijsectie i ∈ I, naar een perron p ∈ P. Een route r ∈ R i,p bestaat uit een sequentie van secties r = (i, s 1 , s 2 , . . . , s n , p 1 , p 2 , . . . , p m ) met s j ∈ S, j = 1, . . . , n en

p k ∈ p, k = 1, . . . , m), en vormen een toegestane rijweg voor een trein. Uitgaande routes, R p,u , leiden van een perron p ∈ P naar een uitrijsectie u ∈ U (een route r ∈ R p,u bestaat in dit geval uit een sequentie van secties r = (p 1 , p 2 , . . . , p m , s 1 , s 2 , . . . , s n , u), s j ∈ S, j = 1, . . . , n, en p k ∈ p, k = 1, . . . , m), die een toegestane rijweg voor een trein vormen. Laat R I , R U en R P respectievelijk de verzameling van alle ingaande, uitgaande en perronroutes zijn. Ofwel R I := S

i∈I,p∈P R i,p , R U := S

p∈P,u∈U R p,u , R P := S

p∈P R p . Een route door het gehele emplacement voor trein t bestaat uit een tripel (r i t , p t , r u t ) waarbij r i t ∈ R i

t

,p

t

, p t ∈ P (t) en r t u ∈ R p

t

,u

t

. Om alle treinen door het emplacement te leiden moet aan elke trein t ∈ T een tripel (r i t , p t , r u t ) toegewezen worden. Naast het toewijzen van een route door het emplacement voor een trein, moet ook beslist worden op welke tijden een trein elk onderdeel van de toegewezen route aanvangt.

3.4 Weighted Node Packing

Uit het literatuuronderzoek is de methode van Zwaneveld et al. [2] naar voren gekomen.

Een voordeel van deze methode is dat de routes van de in te delen treinen nog kunnen

worden gekozen. Zwaneveld et. al. hebben aangetoond dat deze methode zich goed leent

voor een heuristische aanpak die snel een acceptabel antwoord oplevert. De volgende

aanpak in dit onderzoek is gedeeltelijk op het onderzoek uit [2] gebaseerd.

(24)

De opbouw van de graaf is gelijk aan de opbouw in Zwaneveld et al. [2] (zie ook hoofdstuk 2): een toewijzing van een trein aan een route wordt gerepresenteerd door een punt en twee punten worden verbonden wanneer deze routes niet beide kunnen worden gekozen.

Het belangrijkste verschil met de methode van Zwaneveld is dat er nu niet vooraf een dienstregeling opgesteld moet worden, maar real time een herindeling van de treinen moet worden gevonden. Dat wil zeggen dat ook de tijdstippen waarop de treinen hun routes rijden nog dienen te worden vastgelegd. Een gevolg hiervan is dat een trein soms bij het inrijsein moet wachten om vervolgens, zodra er een rijweg voor deze trein is ingesteld, in ´ e´ en keer vanaf het inrijsein naar het perron door te rijden. Wanneer een trein bij het inrijsein aankomt kan deze trein of direct doorrijden naar het perron, of bij het inrijsein wachten en op een later tijdstip het perron oprijden. Ook bij het vertrek vanaf het perron is er een soortgelijke keuze: een trein kan vertrekken op zijn vroegst mogelijke vertrektijdstip, maar het kan ook zijn dat de trein langer op het perron moet wachten vanwege conflicten. Deze tijdsbelissingen moeten worden opgenomen in het model. Dus voor een trein moet niet alleen een route gekozen worden, maar ook een tijdstip waarop de route wordt aangevangen. Deze verandering wordt opgevangen door een punt niet alleen een trein-route combinatie voor te laten stellen, maar hier ook een begintijdstip mee te associ¨ eren. Zo wordt gemodelleerd dat een trein op verschillende momenten een route kan aanvangen.

Om aan te geven dat het tijdstip waarop een trein vertrekt een beslissing is die expliciet meegenomen moet worden, worden de beslissingsvariabelen X t,r vervangen door X t,r,τ , waarbij τ het vertrektijdstip representeert wanneer trein t aan route r begint. Door deze wijziging moeten ook de verzamelingen F t,t

0

aangepast worden. In plaats van alleen te kijken of routepaar (r, r 0 ) gereden kan worden door treinen (t, t 0 ) is het tijdstip waarop de routes aangevangen worden ook van belang. Er wordt dus gekeken of treinen t en t 0 routes r en r 0 kunnen afleggen, als de treinen met de routes beginnen op tijdstippen τ en τ 0 . In dat geval geldt [(r, τ ), (r 0 , τ 0 )] ∈ F t,t

0

.

De verzameling van alle tijdstippen waarop een willekeurige route kan worden aange- vangen, wordt aangegeven door een discrete verzameling τ van tijdstippen, bijvoor- beeld elke seconde, of elke minuut. In dit onderzoek wordt een kleinste tijdstap van

´

e´ en seconde gebruikt. We noteren de verzameling van alle beslissingsvariabelen met X = S

t∈T,r∈R,τ ∈ τ X t,r,τ .

Door deze verandering krijgt het TIP een aangepaste vorm:

(25)

19

X

r∈R

it

X t,r,τ ≤ 1 voor alle t ∈ T, τ ∈ τ (3.1)

X

r∈R

ut

X t,r,τ ≤ 1 voor alle t ∈ T, τ ∈ τ (3.2)

X

r∈R

pt

X t,r,τ ≤ 1 voor alle t ∈ T, τ ∈ τ (3.3)

X t,r,τ + X t

0

,r

0

0

≤ 1 voor alle t, t 0 ∈ T; r ∈ R t ; r 0 ∈ R t

0

, τ, τ 0 ∈ τ ;

[(r, τ ), (r 0 , τ 0 )] 6∈ F t,t

0

(3.4)

X t,r,τ ∈ {0, 1} voor alle t ∈ T, τ ∈ τ (3.5)

Met bijbehorende doelfunctie:

max X

t∈T

X

r∈R

t

X

τ ∈ τ

ρ t,r,τ · X t,r,τ .

Dit aangepaste TIP (ATIP) is het model dat wij in dit onderzoek gebruiken.

Om het ATIP op te lossen zullen we het formuleren als een Weighted Node Packing Problem (WNPP). Hierna wordt beschreven hoe de bijbehorende graaf G opgebouwd wordt. Eerst wordt aangegeven hoe de punten van de bijbehorende graaf aangemaakt worden, en vervolgens wordt beschreven welke punten verbonden zijn.

3.4.1 Punten aanmaken

In dit hoofdstuk wordt beschreven hoe de punten in de graaf G aangemaakt worden.

Voor iedere beslissingsvariabele X t,r,τ wordt een punt in de graaf G aangemaakt. De eigenschappen van de beslissingsvariabelen worden doorgegeven aan het bijbehorende punt in de graaf. Om deze eigenschappen op te slaan voor de punten worden voor ieder punt x ∈ X de volgende eigenschappen vastgelegd. De beslissingsvariabelen uit ATIP worden omgezet in punten in de graaf G.

Voor een punt x ∈ X wordt de volgende notatie gebruikt:

• R(x) is de route die hoort bij punt x.

• IN (x) is de inrijsectie waar de trein het emplacement binnenkomt.

• U IT (x) is de uitrijsectie waar de trein het emplacement verlaat.

(26)

• RT (x) is het routetype van R(x). RT (x) ∈ {in, uit, perron}.

• T (x) is de trein die hoort bij punt x.

• T T (x) is het treintype van T (x).

• A(x) is het tijdstip waarop T (x) begint met het oprijden van route R(x).

• τ 0 (x) is het vroegste tijdstip dat T (x) aan deze route had kunnen beginnen als deze op het emplacement niet was gehinderd. Voor een inrijroute is dit het tijdstip waarop de trein aankomt bij de inrijsectie, bij een uitroute is dit het vroegste tijdstip waarop de trein het perron kan verlaten.

• D(x) is de tijd die trein T (x) nodig heeft om route R(x) af te leggen.

• E(x) is het tijdstip waarop trein T (x) route R(x) voltooid heeft, d.w.z. A(x) + D(x) = E(x)

• P (x) is het perron dat trein T (x) aandoet.

• P τ (x) is de minimale tijd die trein T (x) moet wachten op het perron dat hoort bij route R(x).

In principe kan voor elke iedere combinatie van een trein t ∈ T en een tijdstip τ ∈ τ

een punt aangemaakt worden. Dit zou echter tot een onnodig grote instantie leiden. In de volgende paragraaf wordt een aanpak beschreven om een beperkt aantal punten te genereren.

Aanvangstijden van treinen op routes

Voor elke trein wordt eerst een aantal punten aangemaakt. Deze punten stellen de rou- tetoewijzingen voor wanneer de trein geen conflict heeft en volgens de dienstregeling kan rijden. Vaak heeft een trein de keus uit verschillende rijwegen vanaf het inrijsein naar het perron. Voor elk van deze rijwegen wordt een punt aangemaakt. Op gelijke wijze wordt voor elke rijweg vanaf het perron naar het uitrijsein een punt aangemaakt. Perronroutes worden als laatst toegevoegd. Nu er een verzameling punten is aangemaakt, moet per puntpaar x 1 , x 2 ∈ X, T (x 1 ) 6= T (x 2 ) worden nagegaan of deze tot een conflict leidt of niet. Als eerste wordt gekeken of de bijbehorende treinen hetzelfde perron aandoen.

Wanneer ze een ander perron aandoen, vindt een eventueel conflict dus buiten het per- ron plaats en kan het conflict opgelost worden door ´ e´ en van beide treinen op de ander te laten wachten. Wanneer twee treinen hetzelfde perron aandoen is de situatie complexer en vraagt zij om een andere aanpak. Daarom worden deze gevallen apart beschouwd:

eerst de situatie waarbij T (x 1 ) en T (x 2 ) een ander perron aandoen, vervolgens wordt

gekeken naar de situatie waarbij ze hetzelfde perron aandoen.

(27)

21

Wanneer twee routes x 1 , x 2 ∈ X, x 1 6= x 2 een verschillend perron aandoen, P (x 1 ) 6=

P (x 1 ), wordt gekeken of ze onderling een conflict hebben. Dit wil zeggen dat de routes

´

e´ en of meer gemeenschappelijke sectie bevatten en overlappen in tijd, ofwel:

[A(x 1 ), E(x 1 )] ∩ [A(x 2 ), E(x 2 )] 6= ∅ ∧ R(x 1 ) ∩ R(x 2 ) = ∅. In dat geval kunnen x 1 en x 2 niet beide worden gekozen. Omdat vooraf niet duidelijk is welke trein het beste kan wachten en welke beter gelijk door kan rijden, wordt voor beide treinen een extra punt aangemaakt. Deze punten, x 3 en x 4 , zijn hetzelfde als de punten x 1 en x 2 , respectievelijk, met als verschil dat de aanvang- en eindtijd van de route later is.

De aanvangstijd van route x 3 wordt zo gekozen dat trein T (x 3 ) zijn route pas aanvangt op het moment dat trein T (x 2 ) rijweg R(x) weer afrijdt. Op een gelijke wijze wordt x 4

opgesteld.

Kortom:

x 3 = x 1 x 4 = x 2

A(x 3 ) = E(x 2 ) A(x 4 ) = E(x 1 ) E(x 3 ) = A(x 3 ) + D(x 3 ) E(x 4 ) = A(x 4 ) + D(x 4 )

Doordat de punten zo worden aangemaakt kan het puntenpaar (x 1 , x 4 ) of (x 2 , x 3 ) worden gekozen. In het eerste geval wacht T (x 4 ) op T (x 1 ) en in het tweede geval wacht T (x 3 ) op T (x 2 ).

Wanneer x 1 en x 2 routes beschrijven die hetzelfde perron aandoen, volstaat het niet altijd om ´ e´ en trein te laten wachten op de andere. Dit komt bijvoorbeeld voor wanneer

´

e´ en punt een inroute beschrijft, x 1 , en het andere punt een uitroute, x 2 . Wanneer x 1 een inroute, en x 2 een uitroute beschrijft heeft het geen zin om een nieuw punt, x 3 , met een latere vertrektijd voor x 2 aan te maken, want dan staat de trein langer stil op het perron, en kan x 1 niet samen met x 3 gekozen worden. In deze situatie is het wel zinvol om een nieuw punt voor x 1 te construeren, zodat T (x 1 ) het perron op kan rijden zodra T (x 2 ) het perron heeft verlaten.

Aangezien we voor iedere trein zowel in- als uitroutes hebben, kunnen er voor ´ e´ en paar treinen zich zes situaties voor doen. Deze situaties zijn beschreven in figuur 3.1.

Elke situatie beschrijft een selectie van twee punten, x 1 en x 2 . Uit de richting van de pijlen kan worden opgemaakt welk punt een inroute en welk punt een uitroute beschrijft.

• Situatie 1

In deze situatie komen beide treinen van dezelfde kant. Omdat T (x 1 ) en T (x 2 )

hetzelfde perron aandoen, is er sprake van een conflict wanneer er een moment is

waarop beide treinen al zijn begonnen aan de inrijroute, geen van beide vertrokken

(28)

Figuur 3.1: Schets van situaties die op kunnen treden wanneer twee treinen hetzelfde perron aandoen.z

is vanaf het perron, of formeel als:

[A(x 1 ), E(x 1 ) + P τ (x 1 )] ∩ [A(x 2 ), E(x 2 ) + P τ (x 2 )] 6= ∅

In deze situatie is het voor T (x 1 ) niet genoeg om te wachten totdat trein T (x 2 ) de inroute voltooid heeft, maar moet ook gewacht worden totdat de trein het perron heeft verlaten. Vooraf is vaak niet duidelijk hoe lang een trein op het perron verblijft, maar een minimale verblijftijd is wel bekend. Daarom wordt een nieuw punt x 3 aangemaakt dat pas aangevangen kan worden nadat T (x 2 ) van het perron af is.

Vanwege de symmetrie in deze situatie wordt er op dezelfde wijze een nieuw punt x 4 aangemaakt. De eigenschappen van x 3 en x 4 , zijn gelijk aan die van x 2 , res- pectievelijk x 1 , met als verschil:

A(x 3 ) = E(x 2 ) + P τ (x 2 ) A(x 4 ) = E(x 1 ) + P τ (x 1 ) E(x 3 ) = A(x 3 ) + D(x 3 ) E(x 4 ) = A(x 4 ) + D(x 4 )

• Situatie 2

Wanneer T (x 1 ) en T (x 2 ) vanaf verschillende kanten komen, en wel hetzelfde perron

aandoen, doet zich een conflict voor wanneer de twee treinen tegelijkertijd op het

perron aanwezig zijn, ofwel:

(29)

23

[E(x 1 ), E(x 1 ) + P τ (x 1 )] ∩ [E(x 2 ), E(x 2 ) + P τ (x 2 )] 6= ∅

Er worden twee nieuwe punten, x 3 en x 4 aangemaakt, op dezelfde manier aange- maakt als bij situatie 1, waarbij de eigenschappen van x 3 en x 4 , gelijk zijn aan die van x 2 , respectievelijk x 1 , met als verschil:

A(x 3 ) = E(x 2 ) + P τ (x 2 ) A(x 4 ) = E(x 1 ) + P τ (x 1 ) E(x 3 ) = A(x 3 ) + D(x 3 ) E(x 4 ) = A(x 4 ) + D(x 4 )

• Situatie 3

In deze situatie rijdt trein T (x 1 ) naar een perron, en rijdt trein T (x 2 ) net weg van ditzelfde perron, richting T (x 1 ). In deze situatie is sprake van een conflict, indien er een overlap is in de tijd dat trein T (x 1 ) aan de inroute is begonnen en het perron verlaat, en de tijd die T (x 2 ) nodig heeft om de uitroute te voltooien:

[A(x 1 ), E(x 1 ) + P τ (x 1 )] ∩ [A(x 2 ), E(x 2 )] 6= ∅

In deze situatie is het niet zinvol om T (x 2 ) te vertragen, want dan houdt hij het perron langer bezet, waardoor T (x 1 ) het perron niet op kan rijden. Daarom wordt er alleen een nieuw punt aangemaakt voor T (x 1 ), zodanig dat die aan zijn inroute kan beginnen zodra T (x 1 ) de uitroute voltooid heeft. x 3 is gelijk aan x 1 met als verschil:

A(x 3 ) = E(x 2 ) E(x 3 ) = A(3) + D(x 3 )

• Situatie 4

In deze situatie rijdt trein T (x 1 ) het perron op, en staat trein T (x 2 ) op het punt om het perron te verlaten. T (x 2 ) rijdt weg in de tegenovergestelde richting als waar T (x 1 ) vandaan komt. Hierdoor speelt een eventueel conflict zich op het perron af.

In deze situatie is sprake van een conflict wanneer:

E(x 1 ) < A(x 2 ) < E(x 1 ) + P τ (x 1 ).

Indien dat het geval is dan wordt een nieuw punt x 3 aangemaakt, met dezelfde eigenschappen als x 1 , op de volgende wijzigingen na:

In deze situatie is het niet zinvol om de aanvangstijd van x 2 te vertragen, want in

dan zou T (x 2 ) het perron alleen maar langer bezet houden.

(30)

A(x 3 )=A(x 1 ) + A(x 2 ) − E(x 1 ) E(x 3 )=A(x 3 ) + D(x 3 )

• Situatie 5 en 6

Deze situaties beschrijven twee toewijzingen van treinen aan routes die van het- zelfde perron vertrekken. Als ´ e´ en van de treinen langer wacht voordat hij van het perron vertrekt, levert dit voor de andere trein geen nieuwe mogelijkheden op, want het perron blijft enkel langer bezet. Daarom is het niet zinvol om in deze situatie nieuwe punten aan te maken.

In verschillende gevallen, zoals bij situatie 5 & 6, is er wel sprake van een conflict, maar worden er geen nieuwe mogelijkheden aangemaakt. Dit levert geen probleem op, omdat dit conflict al in een andere situatie is gedetecteerd. Zoals in situatie 5, waarin twee treinen een conflict zouden hebben, omdat ze wegrijden van hetzelfde perron. In dat geval hebben deze treinen ook een inroute naar hetzelfde perron, en wordt dat conflict gedetecteerd in (afhankelijk van de situatie) situatie 1 of situatie 2. In deze situaties worden wel nieuwe punten aangemaakt, zodat het conflict tussen deze twee treinen voorkomen kan worden.

Hierboven is beschreven hoe in elk van de zes situaties nieuwe punten worden aange- maakt. Beschouw een punt x 1 , dat een inroute beschrijft. Wanneer x 1 niet compatibel is met een ander punt wordt er een nieuw punt, zeg x 2 , aangemaakt, die weergeeft dat T (x 1 ) later aan de inroute begint. Stel dat A(x 2 ) = A(x 1 ) + δ. Wanneer er nu voor T (x 1 ) geen nieuw punt wordt aangemaakt dat een uitroute voorstelt, kan het zijn dat er geen geschikte uitroute voor T (x 1 ) is, die compatibel is met x 2 . Dat zou betekenen dat x 2 nooit in een toegestane oplossing opgenomen kan worden. Daarom wordt elke keer dat er een nieuw punt aangemaakt wordt dat een inroute voorstelt, tegelijkertijd een nieuw punt aangemaakt voor diezelfde trein, dat aansluit op de aangemaakte inroute.

Dus wanneer x 2 een nieuw aangemaakte inroute is, wordt een punt x 3 aangemaakt met de volgende aankomst en eindtijden:

A(x 3 )=E(x 2 ) + P τ (x 2 ) E(x 3 )=A(x 3 ) + D(x 3 )

Door op deze manier punten aan de graaf toe te voegen ontstaan meer mogelijkheden

om treinen in te delen op het emplacement. Wanneer alle mogelijke routes van een

trein geen conflicten ondervinden met andere routes, worden er voor deze trein geen

nieuwe punten aangemaakt. Wanneer er voor de mogelijke routes van een trein wel

conflicten zijn, worden zoals hierboven beschreven nieuwe punten aangemaakt. Het is

echter niet duidelijk of deze nieuwe punten conflicten hebben met elkaar, of met andere,

reeds aangemaakte punten. Daarom moet deze procedure een aantal maal herhaald

(31)

25

worden. Tijdens elke iteratie wordt gekeken welke nieuw toegevoegde punten een conflict hebben met eerder aangemaakte punten of nieuw toegevoegde punten. Mocht dat het geval zijn, dan worden, afhankelijk van de situatie zoals hierboven beschreven, nieuwe punten aangemaakt. Hoe vaak deze iteraties herhaald moeten worden om er zeker van te zijn dat er een geldige dienstregeling opgesteld kan worden is vooraf niet duidelijk.

Wanneer er bij een nieuwe iteratie geen punten aangemaakt worden is er zeker een geldige toewijzing mogelijk. Immers hebben de punten die in de laatste iteratie zijn toegevoegd geen conflicten met elkaar, of met eerder aangemaakte punten.

Voorkeursroutes en alternatieve routes

Elke trein heeft vanuit de dienstregeling een voorkeursroute vanaf het inrijsein naar het voorkeursperron. Het ligt voor de hand om een trein langs zijn voorkeursroute naar en van het perron te leiden. Wanneer de dienstregeling ernstig verstoord is, kan het voorkomen dat een andere route een goed alternatief is voor deze trein. Dit komt bijvoorbeeld voor wanneer secties in de voorkeursroute bezet worden gehouden door een defecte trein. Ook wanneer een trein naar een ander perron rijdt kan hij niet de voorkeursroute volgen. Per trein zijn er vaak veel verschillende alternatieve routes van het inrijsein naar het perron, en van het perron naar het uitrijsein. Veel van deze routes zullen in de praktijk nooit gekozen worden omdat ze langer zijn, en veel andere rijwegen blokkeren. Wanneer al de alternatieve routes voor elke trein worden meegenomen neemt het aantal punten in de graaf snel toe. Hierdoor is een goede oplossing moeilijker te vinden.

Om deze redenen worden er alleen nieuwe punten aangemaakt voor alternatieve routes, wanneer de trein niet lang bij het inrijsein hoeft te wachten. De precieze waarde van deze tijdsgrens kan gevarieerd worden naargelang de situatie op een emplacement.

Perronroutes aanmaken

Naast de in- en uitroutes moeten ook nog de perronroutes aangemaakt worden. Omdat

vooraf niet te zeggen is hoe lang een trein op een perron blijft staan, en omdat een

trein maar ´ e´ en perronroute toegewezen mag krijgen, moet elke trein in staat zijn om

tussen elk aankomsttijdstip op het perron, en elk vertrektijdstip vanaf datzelfde perron,

langs het perron te staan. Daarom worden voor alle treinen perronroutes aangemaakt,

zodanig dat elke inroute kan sluiten op elke uitroute. Beschouw voor een trein t inT en

een perron p ∈ P(t) alle inroutes vanaf het inrijsein van trein t, i(t) naar perron p, R i(t),p .

En alle uitroutes vanaf perron p naar het uitrijsein u(t), R p,u(t) . Laat {τ 1 , τ 2 , . . . , τ n }

de verzameling van unieke aankomsttijden zijn van alle mogelijke routes van i(t) naar p

voor trein t, en laat {τ 1 0 , τ 2 0 , . . . , τ m 0 } de verzameling van unieke vertrektijden zijn vanaf

(32)

perron p naar uitrijsectie u(t). Dan wordt er een nieuw punt x i aangemaakt met A(x i ) = τ j , E(x i ) = τ k 0 voor iedere combinatie van j en k, j ∈ {1, 2, . . . , n}, k ∈ {1, 2, . . . , m}.

Door op de in deze paragraaf beschreven manier nieuwe mogelijke toewijzingen aan te maken, is het aantal mogelijkheden voor het indelen van toegenomen. Zoals beschreven zijn sommige toewijzingen niet compatibel met elkaar, en dienen de bijbehorende punten verbonden te worden door een lijn. In de volgende paragraaf wordt beschreven wanneer twee punten verbonden worden.

3.4.2 Lijnen tussen punten

Nu alle punten aangemaakt zijn moet nog vastgesteld worden welke punten niet compa- tibel met elkaar zijn, en dus door een lijn verbonden dienen te worden.

Er zijn verschillende redenen waarom twee punten x 1 , x 2 niet compatibel met elkaar zijn, d.w.z. wanneer (x 1 , x 2 ) ∈ E:

• x 1 en x 2 beschrijven dezelfde trein en hetzelfde routetype:

Aangezien elke trein van elk routetype slechts ´ e´ en punt toebedeeld kan krijgen, zijn twee punten die dezelfde trein en hetzelfde routetype beschrijven niet compatibel met elkaar:

[T (x 1 ) = T (x 2 )] ∧ [RT (x 1 ) = RT (x 2 )]

• x 1 en x 2 stellen twee toewijzingen voor die onderling een conflict hebben:

Dit zijn dezelfde situaties als beschreven in hoofdstuk 3.4.1. Wanneer er voor twee punten een nieuwe punt is aangemaakt, was dit omdat ze een conflict hebben en deze dienen dus verbonden te worden door een lijn.

• x 1 en x 2 beschrijven wel dezelfde trein, maar bijbehorende routes sluiten op een ander perron aan:

[T (x 1 ) = T (x 2 )] ∧ [P (x 1 ) 6= P (x 2 )]

• x 1 en x 2 beschrijven dezelfde trein en opeenvolgende routetypen, maar sluiten qua tijd niet aan:

Als x 1 een inroute beschrijft, en x 2 een perronroute, dan moet de eindtijd van x 1 overeenkomen met de starttijd van x 2 . De trein kan immers niet eerder bij het perron aankomen dan dat hij de inroute heeft voltooid. Evenzo kan de trein niet zijn inroute voltooien, en pas later bij het perron aankomen. In dit geval moet gelden:

E(x 1 ) = A(x 2 )

Een zelfde situatie doet zich voor wanneer RT (x 1 ) = perron, en RT (x 2 ) = uit

(33)

27

• Beschrijven x 1 en x 2 dezelfde trein, maar sluiten de routetypes RT (x 1 ) en RT (x 2 ) niet aan. Stel dat RT (x 1 ) = in en RT (x 2 ) = uit. Deze routes kunnen niet samen gekozen worden wanneer

E(x 1 ) + P τ (x 1 ) > A(x 2 )

In deze situatie kan x 2 nooit worden opgenomen in een toegestane WNP wanneer x 1 geselecteerd is. T (x 1 ) moet minimaal P τ (x 1 ) op het perron blijven staan en kan dus niet op A(x 2 ) aan route R(x 2 ) beginnen.

Nu beschreven is hoe de punten in de graaf opgesteld worden, en welke punten verbonden

zijn door een lijn, is de constructie van de graaf af. In het volgende hoofdstuk zal

besproken worden hoe we deze graaf kunnen gebruiken om een geldige toewijzing van

treinen te verkrijgen.

(34)
(35)

Hoofdstuk 4

Oplosmethoden

Als er veel treinen verstoord zijn op een groot emplacemet, neemt het aantal variabelen en ongelijkheden in ATIP snel toe. Temeer omdat ATIP uitsluitend binaire variabelen bevat, duurt het lang om een optimale toewijzing te vinden. Door ATIP te formuleren als Weighted Node Packing probleem, kan een geldige indeling van treinen gevonden worden door een WNP te vinden in een graaf, in plaats van integer lineair programma op te lossen. Het belangrijkste voordeel is dat het vinden van een WNP in een graaf weinig tijd kost, en er dus snel een geldige toewijzing gevonden kan worden. Een nadeel is dat er niet altijd de optimale oplossing gevonden wordt, maar slechts een benadering daarvan.

Bij beide formuleringen speelt de gewichten van de variabelen/punten een belangrijke rol. Deze gewichten geven aan hoe waardevol een toewijzing is. In dit hoofdstuk wordt beschreven welke heuristiek ontwikkeld is om een WNP te vinden in de graaf, en hoe de gewichten van de punten gedefini¨ eerd zijn. Bovendien wordt besproken hoe er bij kleine instanties wel een optimale oplossing gevonden kan worden met behulp van een ILP solver.

4.1 Heuristiek

Omdat een optimale oplossing van ATIP veelal niet snel gevonden kan worden, maken we gebruik van een heuristiek. Een heuristiek levert een toegestane oplossing op van het probleem waarbij het berekenen van een oplossing met een heuristiek doorgaans minder tijd kost. Het doel is om in een acceptabele tijd een zo goed mogelijke oplossing te verkrijgen.

Eerst zal kort de gedachte van de heuristiek besproken worden, waarna de pseudocode uitgelegd wordt. Nadat een algeheel beeld van de heuristiek is ontstaan, worden de details verder ingevuld.

29

(36)

De heuristiek is gebaseerd op de WNP formulering van het ATIP. Bij de heuristiek worden iteratief punten aan de selectie voor het WNP toegevoegd. In iedere iteratie wordt er allereerst een verzameling punten gemaakt die beschikbaar zijn om gekozen te worden. De verzameling punten die beschikbaar zijn om te selecteren verandert bij elke iteratie. De verzameling beschikbare punten bevat punten die in deze iteratie toegestaan, en wenselijk zijn om toe te voegen aan de WNP. Wanneer voor een trein nog geen inroute is geselecteerd, is het bijvoorbeeld niet wenselijk om al een uitroute te selecteren. Al deze punten worden vervolgens beoordeeld met behulp van een beoordelingscriterium.

Het punt met de hoogste score wordt gekozen en toegevoegd aan de selectie voor de WNP. Doordat dit punt is opgenomen in de selectie, verandert de verzameling punten die nog gekozen kunnen worden. Daarom wordt deze verzameling ge¨ updatet. Deze stappen worden herhaald, totdat er geen punten meer beschikbaar zijn om te selecteren.

Pseudocode 1 Heuristiek voor het vinden van een WNP Input: Graaf G = (V, E), Gewichten ρ : V → [0, ∞) Output: Weighted Node Packing V s

1: Definieer V ⊂ V : alle punten v ∈ V geschikt zijn om gekozen te worden.

2: V s := ∅

3: repeat

4: Beoordeel elk punt v ∈ V volgens een beoordelingscriterium.

5: Selecteer het hoogst beoordeelde punt v ∈ V

6: Neem v op in de selectie: V s := V s ∪ v

7: Verwijder alle punten v ∈ V met (v , v) ∈ E uit V .

8: Verwijder het punt v uit V .

9: Update de verzameling V .

10: until V = ∅

11: Output V s

Bij de ontwikkelde heuristiek stelt de verzameling V de verzameling punten voor die op dit moment gekozen kunnen worden en V s de verzameling van punten voor de WNP. Zie regel 1 en 2 van het algoritme in Pseudocode 1. Voor elke trein moet een in-, uit-, en perronroute gekozen worden. Als voor een trein al een uitroute gekozen is, is het vaak lastiger om daar een passende in-route bij te selecteren, dan andersom. Daarom stellen we dat voor elke trein eerst een in-route gekozen moet worden, voordat een uitroute geselecteerd kan worden. Op dezelfde wijze kan een perronroute pas gekozen worden als er voor de bijbehorende trein al een uit- (en dus ook een in-) route geselecteerd is.

In regel 1 wordt de verzameling V geconstrueerd. Als er nog geen routes zijn toegewezen

aan treinen, moet aan elke trein eerst een inroute toegewezen worden. De verzameling

V bestaat in dit geval dus uit alle inroutes van alle treinen. Aan het begin van iedere

iteratie wordt elk punt beoordeeld op hoe wenselijk het is om dit punt te kiezen (zie

regel 4, Pseudocode 1). Een punt met veel buren (en dus een hoge graad) in de graaf

G sluit veel andere punten uit indien die wordt opgenomen in V s . Daarom is het allicht

verstandiger om een punt met een lagere graad (en hetzelfde gewicht) te kiezen. Deze

(37)

31

voorkeuren komen terug in het beoordelingscriterium. In paragraaf 4.4 wordt uitgelegd welke beoordelingscriteria opgesteld en getest zijn.

Nadat een punt v ∈ V is toegevoegd aan V s wordt de verzameling V ge¨ updatet (zie regel 9). Alle buren van v kunnen nu niet meer gekozen worden en moeten (samen met v ) uit V verwijderd worden. Wanneer we de buren van punt v aangeven met N (v ), kan dit als volgt genoteerd worden: V = V \ (N (v ) ∪ {v }). Nu er voor T (v ) een route gekozen is, mogen alle routes van het volgende routetype behorend bij trein T (v ) ook gekozen worden, mits ze geen conflict hebben met een punt dat reeds in de selectie V s

is opgenomen.

Aan het einde van iedere iteratie wordt nagegaan of er nog punten beschikbaar zijn om geselecteerd te worden (zie regel 10). Er zijn twee mogelijke situaties waarna er geen punten meer geselecteerd kunnen worden: Voor elke trein zijn inmiddels drie routes op- genomen in V s en dus is een geldige dienstregeling gevonden, of er zijn ´ e´ en of meerdere treinen die niet drie routes toebedeeld hebben gekregen. In het laatste geval is er geen geldige dienstregeling gevonden. Het is dus mogelijk dat de heuristiek beschreven in Pseudocode 1 geen geldige dienstregeling oplevert. Gezien bij het selecteren van punten alleen wordt gekeken wat op dat moment de beste keus is, en het tijdens een iteratie moeilijk te zien is of het selecteren van een punt uiteindelijk resulteert in een niet toege- stane dienstregeling, wordt het basisalgoritme nog verder aangepast. Om toch tot een betrouwbare heuristiek te komen wordt dit algoritme als volgt aangepast.

De verandering betreft de selectie van een punt (zie regel 5). Wij voegen hier een gerandomiseerde keuze toe aan het algoritme. Concreet betekent dit, dat niet altijd het hoogst beoordeelde punt wordt gekozen, maar ´ e´ en van de k hoogst beoordeelde punten.

De keuze uit deze k punten wordt willekeurig gedaan.

Pseudocode 2 Punt selecteren Input: V , k ∈ N +

Output: v

1: Sorteer V op afnemende waarde van het beoordelingscriterium

2: Trek een willekeurig getal b ∈ {1, 2, . . . , max(k, |V |)}

3: Selecteer het bijbehorende punt v = V (b)

Door deze aanpassing is een toevalselement toegevoegd aan de heuristiek. Omdat de

heuristiek snel uitgevoerd kan worden, en er een toevalselement in zit, stelt dit ons in

staat om haar meerdere malen uit te voeren, zodat verschillende toewijzingen verkregen

kunnen worden. Na een aantal runs van deze heuristiek kan vervolgens de beste oplossing

gepresenteerd worden (zie Pseudocode 3).

Referenties

GERELATEERDE DOCUMENTEN

constante snelheid, waarbij de snelheid van A drie keer zo groot is als de snelheid van B.. De lengte van A'B'

constante snelheid, waarbij de snelheid van A drie keer zo groot is als de snelheid van B.. De lengte van A'B'

[r]

Mijn ervaring als geestelijk verzorger en als opleider van toekom- stige geestelijk verzorgers heeft mij geleerd, dat aandacht voor en vragen over zingeving (èn le- vensbeschouwing

In onze beantwoording op de vragen 10 en 11 naar aanleiding van Beraad en Advies van 17 januari 2016 hebben wij gemeld welke inspanningen de wethouder levert voor het behoud

In die tien jaar zullen experimenten en vooroplopers zeker nuttig zijn, maar aan het eind ervan zal de omzetting van de huidige onderbouw van alle scholen voor voortgezet

De liberale jongeren, die zich gedurende het afgelopen weekeinde te Dalfsen hebben beziggehouden met een aantal actuele politieke problemen, hebben hun bijeenkomst

Europese structuurfondsen moeten in de toe- komst alleen ten goede komen aan de landen die ze werkelijk nodig hebben, dat zijn dus de nieuwe lidstaten uit Midden- en Oost-Europa..