Waarom sta IK toch altijd in de file? Onderzoek Pre-University College & Profielwerkstuk
Joost Pluim Coornhert Gymnasium
Olivier Paauw Visser ’t Hooft Lyceum
Gouda
Leiden 14 december 2009
Inhoudsopgave 1 Inleiding
9
2 Filemodellen 2.1 Wachtrijmodel . . . . . . . . . . . . . 2.1.1 Basisbegrippen . . . . . . . . . 2.1.2 Verkeersmodel . . . . . . . . . 2.2 Macroscopische modellen . . . . . . . 2.2.1 Intensiteit . . . . . . . . . . . . 2.2.2 Snelheid . . . . . . . . . . . . . 2.2.3 Dichtheid . . . . . . . . . . . . 2.2.4 Wetten . . . . . . . . . . . . . 2.2.5 Parti¨ele differentiaalvergelijking 2.2.6 LWR-model . . . . . . . . . . . 2.2.7 Payne-model . . . . . . . . . . 2.3 Microscopische modellen . . . . . . . . 2.3.1 Follow the leader . . . . . . . . 2.3.2 Cellulaire automaten (CA) . . 3 Wskundige analyse van CA 3.1 Het weer . . . . . . . . . . . 3.1.1 Kansen . . . . . . . 3.1.2 Het weer overmorgen 3.1.3 Een stabiele situatie 3.2 Het verkeer . . . . . . . . . 3.3 Conclusie . . . . . . . . . .
. . . . . .
. . . . . .
4 De bouw van een CA simulatie 4.1 Eenbaansmodel . . . . . . . . . 4.1.1 Het begin . . . . . . . . 4.1.2 De basis van het model 4.1.3 Foutmeldingen . . . . . 4.1.4 Stap 1 . . . . . . . . . . 4.1.5 Stap 2 . . . . . . . . . . 3
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . .
11 11 12 13 14 14 14 15 16 16 18 18 19 19 21
. . . . . .
27 27 27 28 29 30 47
. . . . . .
49 49 49 50 50 52 53
4
INHOUDSOPGAVE . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
55 55 56 56 58 60 61 61 61 62 62 63 63 68 68 69 69 69 69 70 70 72
5 Resultaten en conclusies 5.1 Definitie . . . . . . . . . . . . . . . . . . . . 5.2 Gedrag van een file (eenbaans) . . . . . . . 5.2.1 Invloed vmax op files . . . . . . . . . 5.2.2 Invloed van p op files . . . . . . . . . 5.2.3 Invloed beperking Vmax gedeelte weg 5.3 Gedrag van een file (tweebaans) . . . . . . . 5.3.1 Twee banen = dubbele capaciteit? . 5.3.2 Pech op de rechter baan . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
75 75 76 76 84 90 93 93 96
. . . . . . . . . .
101 . 101 . 102 . 103 . 103 . 104 . 104 . 106 . 107 . 107 . 107
4.2 4.3 4.4
4.5
4.6 4.7
6 Het 6.1 6.2 6.3
4.1.6 Stap 3 . . . . . . . . . . . 4.1.7 Stap 4 . . . . . . . . . . . 4.1.8 Afsluiting van het model . 4.1.9 Het totaal . . . . . . . . . Variant 1 eenbaansmodel . . . . Variant 2 eenbaansmodel . . . . Variant 3 van het eenbaansmodel 4.4.1 De eerste regels . . . . . . 4.4.2 Foutmeldingen . . . . . . 4.4.3 De plot . . . . . . . . . . 4.4.4 Cellbasisloop2vmax.m . . Tweebaansmodel . . . . . . . . . 4.5.1 Het model . . . . . . . . . 4.5.2 Deel 0 . . . . . . . . . . . 4.5.3 Deel 1 . . . . . . . . . . . 4.5.4 Deel 2 . . . . . . . . . . . 4.5.5 Deel 3 . . . . . . . . . . . 4.5.6 Deel 4 . . . . . . . . . . . 4.5.7 Deel 5 . . . . . . . . . . . 4.5.8 Deel 6 . . . . . . . . . . . Variant 1 tweebaansmodel . . . . Variant 2 tweebaansmodel . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
recursiemodel Inleiding . . . . . . . . . . . . . . . . . . . . Het model . . . . . . . . . . . . . . . . . . . Minimaal verkeersgedrag . . . . . . . . . . . 6.3.1 De voorligger . . . . . . . . . . . . . 6.3.2 Het voertuig zelf . . . . . . . . . . . 6.3.3 De veilige afstand en snelheid . . . . 6.3.4 Extra beveiliging . . . . . . . . . . . 6.3.5 De twee beveiligingen samen . . . . 6.4 n-secondenregel . . . . . . . . . . . . . . . . 6.4.1 De grondslag van de n-secondenregel
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
6.5 6.6 6.7 6.8 7 Het 7.1 7.2 7.3 7.4 7.5 7.6 7.7
6.4.2 De theoretische gevaren van 6.4.3 De optimale snelheid . . . . Toeval en richtsnelheid . . . . . . . Optrekken en afremmen . . . . . . Het eerste voertuig . . . . . . . . . Nieuwe voertuigen . . . . . . . . .
de n-secondenregel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
108 109 110 112 112 112
recursiemodel in Octave Invoer . . . . . . . . . . . . Tijdsschaling . . . . . . . . Het eerste voertuig . . . . . Nieuwe voertuigen . . . . . Richtsnelheden toekennen . Snelheden toekennen . . . . Uitvoer . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
115 115 116 117 118 119 121 121
8 Resultaten bij het recursiemodel 8.1 Maximumsnelheid . . . . . . . . . . . . . . 8.2 n-secondenregel of minimaal verkeersgedrag 8.3 Remkans . . . . . . . . . . . . . . . . . . . . 8.4 Intensiteit . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
123 124 129 133 137
. . . . .
145 . 145 . 145 . 146 . 147 . 147
. . . .
149 . 149 . 150 . 150 . 150
. . . . . . .
A Over LATEX A.1 LATEX versus Microsoft Word A.2 De structuur van het bestand A.3 Commando’s . . . . . . . . . A.4 Wiskundige notaties . . . . . A.5 De PDF samenstellen . . . . B GNU Octave B.1 Geschiedenis . . . B.2 Wat is Octave? . . B.3 Octave vs. Matlab B.4 Voorbeelden . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
5
. . . . . . .
. . . . .
. . . .
. . . . . . .
. . . . .
. . . .
. . . . . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . . . .
. . . . .
. . . .
. . . . . . .
. . . . .
. . . .
. . . . . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
6
INHOUDSOPGAVE
Voorwoord Dit is Waarom sta IK toch altijd in de file?, een onderzoeksverslag waarin we proberen een antwoord te geven op de vraag:“Hoe kan je een kwantitatieve analyse (oftewel simulatie) van filevorming opzetten?”Voor dit verslag hebben wij in het najaar van 2009 een onderzoek gedaan. Dit verslag en het onderzoek dat eraan voorafing zijn gedaan om twee projecten. Ten eerste vormt dit document ons profielwerkstuk, een onderdeel van het vwo-programma. Ten tweede vormde dit onderzoek een onderwijsblok van het Pre-University College van de Leidse universiteit, een grootschalig programma voor scholieren van het vwo. Onze dank gaat uiteraard uit naar Floske Spieksma, onderzoeker aan de universiteit van Leiden en begeleider van dit onderzoek, zonder wier hulp bij de modellen, bij LATEX en bij Octave dit verslag nooit had kunnen worden wat het nu is geworden. Verder gaat onze dank uit naar Wouter van den Broek, wiens grote tekenbekwaamheid het prachtige beeld op de voorzijde van dit werkstuk heeft opgeleverd. Dit verslag is zo mogelijk opgezet om voor iedereen die dat wil toegankelijk te zijn. Het uitleggen van rekenstappen is daarom enigszins uitvoerig gedaan. Wij zijn ervan overtuigd dat wie zich in het onderwerp van dit verslag interesseert of kan laten interesseren verkeer beter snapt. We wensen de lezer veel leesplezier.
7
8
INHOUDSOPGAVE
Hoofdstuk 1
Inleiding Kilometerprijs eindelijk in gang Alle weggebruikers gaan in de komende jaren betalen voor het gebruik van hun auto en niet langer voor het bezit ervan. Door de kilometerprijs halveren de files en gaat het milieu er op vooruit. De ministerraad heeft op voorstel van minister Eurlings van Verkeer en Waterstaat op 13 november 2009 ingestemd met toezending aan de Tweede Kamer van het wetsvoorstel Kilometerprijs.[2] Het fileprobleem is ´e´en van de ’hot issues’ van deze tijd. Niet alleen ergert iedereen zich als hij/zij in de file staat, het fileprobleem is ook een groot economisch probleem. Nederland is een doorvoerland en dus berust onze economie voor een groot deel op het vervoer. Vrachtwagens spelen hierin een belangrijk onderdeel. Files veroorzaken ook voor hen oponthoud en dat kost geld. Vervoersorganisatie EVO (Eigen Vervoerders Organisatie) en TLN (Transport en Logistiek Nederland) ramen de kosten van files in 2006 op maar liefst 630 miljoen euro. [13] Vele oplossingen zijn de revue gepasseerd. Voorbeelden zijn spitsstroken, rekeningrijden of blokrijden zoals te lezen in bron [9]. Om erachter te komen of een voorgestelde oplossing daadwerkelijk werkt is het nodig deze oplossing in een model te kunnen narekenen. Op deze manier kan worden gekeken of een oplossing werkt, niet werkt of zelfs averechts werkt. Voor deze technieken moet worden begonnen bij de basis. Want hoe werkt verkeer eigenlijk? Hoe gedragen automobilisten zich? Deze vragen moeten worden opgelost voordat we modellen kunnen maken die de werkelijkheid goed benaderen. Is zo’n model bedacht, dan kan het gebruikt worden om verschillende situaties door te gaan rekenen en te kijken of bepaalde voorgestelde oplossingen het probleem daadwerkelijk oplossen.
9
10
HOOFDSTUK 1. INLEIDING
Onderzoek naar verkeer is de laatste jaren een aparte tak van wetenschap geworden. Er zijn dus al verschillende theorie¨en voorhanden. We beginnen in hoofdstuk 2 met het beschrijven welke modellen er tot nu bedacht zijn en in welke categorie¨en deze modellen onder te verdelen zijn. We richten ons verder op ´e´en type model: het model van de Cellulaire Automaten (CA). In hoofdstuk 3 bekijken we de theoretische oplossing van dit model. Hoofdstuk 4 beschrijft hoe we dit model geprogrammeerd hebben. Dit is noodzakelijk voor het daadwerkelijk behalen van resultaten. Deze programma’s zijn niet beschikbaar en dus schrijven we ze zelf. Ook worden verschillende varianten van het basismodel behandeld. De conclusies en resultaten die we behalen met de zelf geschreven modellen (CA) komen voorbij in hoofdstuk 5. We bekijken de invloed van verschillende variabelen en verschillende situaties uit de werkelijkheid. Vervolgens hebben we een eigen model gemaakt: het recursiemodel. Dit model probeert sommige onzorgvuldigheden van cellulaire automaten te verhelpen. In hoofdstuk 6 behandelen we dit model algebra¨ısch. In hoofdstuk 7 laten we vervolgens zien hoe we dit model opbouwen in Octave. In het laatste hoofdstuk laten we zien welke resultaten we hebben behaald met het recursiemodel. We hadden graag nog wat tijd besteed aan het vergelijken van het CAmodel en het recursiemodel, maar uiteindelijk was hier geen tijd meer voor. Hopelijk vinden volgende studenten nog tijd om hier verder op in te gaan.
Hoofdstuk 2
Filemodellen Wiskundige verkeersmodellen zijn grofweg onder te verdelen in drie soorten: de wachtrijmodellen, de macroscopische modellen en de microscopische modellen. Net zoals we in tal van andere takken van wetenschap, zien veranderde ook de denkwijze over verkeer in de loop van de tijd. In de jaren zestig was men nog voornamelijk bezig met zogenaamde follow the leader -modellen (deze bekijken verkeer op voertuig-niveau). Dit heet een microscopisch model. In de jaren zeventig en tachtig ging men echter meer over op macroscopische modellen. Deze bekijken het verkeer bijvoorbeeld als een vloeistof die zich beweegt en dus berusten deze modellen meer op de natuurkunde. Hierna ontstonden de cellulaire automaten waarbij voertuigen juist weer apart worden bekeken. Hier maakt men dus weer de stap terug naar een microscopisch model. Naast deze 2 soorten modellen is er ook nog een derde, hele andere benadering van een file. Deze heet het wachtrijmodel. Het wachtrijmodel vergelijkt een file met een wachtrij zoals we deze zien voor een loket. Aanvankelijk was het de bedoeling dat we ons zouden gaan bezighouden met het wachtrijmodel. Uiteindelijk waren we meer ge¨ınteresseerd in de microscopische benadering.
2.1
Wachtrijmodel
Het wachtrijmodel draait logischerwijs om een wachtrij. Het gaat er om dat er mensen moeten worden geholpen, een bepaalde service moet worden verleend. Als er om de 2 minuten iemand bij de wachtrij aansluit, en ieder wachtend persoon heeft precies 2 minuten nodig, zal er geen probleem zijn. Is het echter zo dat de aankomst van nieuwe personen niet om de 2 minuten gebeurt, maar bijvoorbeeld met een tussentijd die normaal verdeeld is met een gemiddelde van 2 minuten, dan zal de wachtrij zich al snel ontwikkelen tot een oneindig lange rij. 11
12
2.1.1
HOOFDSTUK 2. FILEMODELLEN
Basisbegrippen
In het wachtrijmodel zijn een aantal belangrijke eigenschappen die we in deze paragraaf zullen behandelen.
Aankomstproces Voor een definitie van het aankomsproces moet worden bepaald hoe de mensen aankomen. Is er bijvoorbeeld van tevoren bepaald wanneer welke nieuwe persoon aankomt (dit wordt deterministisch genoemd) of wordt dit door een kansproces bepaald? Vervolgens kan dit kansproces ook weer naar eigen wensen worden aangepast. Zo kan bijvoorbeeld de kans op een nieuw persoon worden gekoppeld aan de tijd dat er geen nieuwe mensen meer zijn aangekomen. De kans dat er een nieuw persoon zal komen zal dan groter zijn als er zes tijdseenheden geen nieuwe persoon (personen) is gekomen, dan na twee tijdseenheden.
Bedieningseigenschappen Als een wachtende vervolgens aan de beurt is om geholpen te worden, duurt dit ook nog een bepaalde tijd. Voor de verdeling van deze tijd zijn verschillende mogelijkheden. Allereerst is er de deterministische verdeling waarbij van tevoren vast staat hoe lang elke persoon moet worden geholpen. Als tweede kan de bedieningsduur exponentieel verdeeld zijn. Dit is het best uit te leggen aan de hand van een voorbeeld. Stel dat iemand al T tijdseenheden wordt geholpen. Als we vervolgens de kans bekijken dat iemand nog een tijdseenheid moet worden geholpen, dan is deze kans net zo groot als de kans dat die persoon minstens ´e´en tijdseenheid wordt geholpen. Dit betekent dat de kans dat iemand die al 6 tijdseenheden is geholpen voor tijdstip 7 klaar is, net zo groot is als de kans dat deze persoon in ´e´en tijdseenheid klaar is. Deze eigenschap wordt geheugenloosheid genoemd. De verdeling van de nog benodigde bedieningsduur is dus altijd hetzelfde en niet gekoppeld aan de reeds geholpen tijd. Voor een wachtrij is dit een vrij onrealistische situatie, maar in andere situaties is deze methode goed toe te passen. Een voordeel van deze verdeling, die een exponenti¨ele verdeling heet, is dat hij geheugenloos is. Als derde en laatste optie heb je een bedieningsduur die een algemene kansverdeling bezit. Vervolgens zijn er ook nog verschillende manieren waarop wachtenden kunnen worden behandeld. E´en daarvan is de First Come First Served manier (FCFS), waarbij, zoals de naam al zegt, degene die vooraan in de rij staat, als eerste wordt geholpen. Een andere manier is om een waarde aan elke persoon toe te kennen die de prioriteit aangeeft van deze persoon.
2.1. WACHTRIJMODEL
13
Loketten Ook kan het aantal loketten vari¨eren. Ieder loket heeft een eigen rij die onafhankelijk van elkaar zijn.
2.1.2
Verkeersmodel
Bij de toepassing van het wachtrijmodel op verkeer moet de weg in stukjes worden verdeeld. Deze stukjes worden op de volgende manier verdeeld: je bepaalt eerst bij welk aantal voertuigen op een bepaalde lengte weg je zult voertuigen spreken van een ”file”. Hiervan wordt de dichtheid berekend: aantal . lengte weg Deze grootheid noemen we ρ(f ile). De totale weg wordt nu opgedeeld in stukjes van ρ(f1ile) . Voorbeeld: Stel je definieert een file als 15 voertuigen op een wegdek met 15 een lengte van 100 meter. De dichtheid ρ(f ile) is dan 100 = 0, 15. Er rijdt 1 tijdens een file dus 0, 15 voertuig op ´e´en meter. 0,15 levert 6, 66, wat betekent dat ´e´en voertuig plus de ruimte tot het volgende voertuig gemiddeld 6, 66 meter in beslag neemt (op deze 100 meter). Elk van de net gedefinieerde stukken weg noemen we een servicestation. Op dit servicestation komen klanten langs, die in dit geval dus voertuigen zijn. Vervolgens is het belangrijk om te weten hoe lang de klant moet worden geholpen, oftewel hoe lang het voertuig erover doet om dit servicestation te doorkruisen. Hiervoor zijn de begrippen die we hierboven hebben besproken van belang: 1. Het aankomstproces: wat is de manier waarop de voertuigen aankomen in een servicestation? 2. De bedieningseigenschappen: hoe wordt bepaald hoe lang een voertuig blijft staan in een servicestation? 3. Het aantal loketten: in een ´e´enbaansmodel zal dit dus ´e´en loket zijn. Op deze manier kan een model worden gemaakt van het verloop van een file volgens het wachtrijmodel. De modellen in de literatuur bestuderen wat er aan verkeer door een gegeven stukje weg komt. Wachtrijmodellen bekijken maar ´e´en cel en zijn bovendien niet zo visueel in vergelijking met cellulaire automaten. We hebben daarom uiteindelijk besloten dat de huidige wachtrijmodellen niet goed geschikt zijn voor onze wensen.
14
2.2
HOOFDSTUK 2. FILEMODELLEN
Macroscopische modellen
Bij macroscopische modellen wordt het verkeer als het ware van hoog uit de lucht bekeken. Je ziet dan niet meer elk voertuig apart, maar als het ware een stroom. Op deze manier is een file te vergelijken met bijvoorbeeld water. Een file kan dan geanalyseerd worden met behulp van technieken uit de vloeistofdynamica uit de natuurkunde. Vloeistofdynamica is hierbij een enigszins misleidende term aangezien het ook om de dynamica van gassen gaat. Aangezien we de voertuigen als stroom bekijken hebben we te maken met verschillende variabelen.
2.2.1
Intensiteit
De intensiteit Q(x, t) is het aantal voertuigen op een bepaalde plaats en tijd en wordt beschreven door de volgende formule: Q(x, t) =
Nt+∆t − Nt . ∆t
(2.1)
Hierin is N het aantal voertuigen dat op een bepaalde plek x passeert. ∆t is de tijd gedurende welke wordt gemeten. Omdat deze formule dus zowel wordt be¨ınvloed door de plek waarop wordt gemeten, als door de tijd waarin wordt gemeten schrijven we Q(x, t) wat dus betekent dat Q (de intensiteit) afhankelijk is van zowel de plaats x als de tijd t.
2.2.2
Snelheid
Ook de snelheid V is afhankelijk van zowel de plaats x als de tijd t en dus schrijven we weer V (x, t). Omdat we in macroscopische modellen niet naar elk voertuig apart kijken, kijken we hier dus naar de gemiddelde snelheid van de voertuigen die plek x passeren tussen tijdstip 0 en tijdstip t. De formele wiskundige formule die hieruit volgt is: V (x, t) =
1 N
αX 0 +N
vα .
(2.2)
α=α0 +1
Deze formule vergt wat uitleg. Allereerst het stuk
αX 0 +N
vα . Hierin is α
α=α0 +1
het nummer van het voertuig waarvan we de snelheid meten. α0 is het laatste voertuig dat passeert voordat we het meten beginnen. Bij voertuig α1 = α0 + 1 beginnen we dus met meten. Dat is wat er onder het som teken staat: we beginnen niet bij α0 maar bij α = α1 . Vervolgens meten we tot en met voertuig α0 + N (dit staat immers boven het somteken). Van elk van deze voertuigen nemen we de snelheid vα (dit staat immers achter het somteken) en die tellen we bij elkaar op. Nu hebben we alle
2.2. MACROSCOPISCHE MODELLEN
15
snelheden bij elkaar opgeteld en komen we bij de som van alle snelheden van voertuig α = α0 + 1 = α1 tot en met voertuig α0 + N . Als laatste stap 1 wat hetzelfde betekent als delen door vermenigvuldigen we dit getal met N N (het totaal aantal gemeten voertuigen). Zo krijgen we uiteindelijk V (x, t), de gemiddelde snelheid van N voertuigen die plek x passeren gedurende tijd t.
2.2.3
Dichtheid
De dichtheid ρ(x, t) (ook deze variabele is afhankelijke van zowel x als t) is het aantal voertuigen per eenheid weglengte. De formule die deze variabele beschrijft is de volgende: ρ(x, t) =
Q(x, t) . V (x, t)
(2.3)
Het aantal voertuigen dat een stuk weg passeert gedeeld door de gemiddelde snelheid van deze voertuigen (en dus de tijd die de voertuigen over dit van tevoren afgesproken stuk weg doen) geeft de dichtheid ρ(x, t). Voorbeeld: Gedurende 1 seconde passeren 7 voertuigen een stuk weg x van 1 meter. Hun snelheid is als volgt verdeeld: Voertuig
Snelheid (m/s)
α1 α2 α3 α4 α5 α6 α7
30 50 35 40 55 25 45
Allereerst berekenen we de intensiteit met formule 2.1 Q(x, t) =
7 N = = 7 voertuigen per seconde. ∆t 1
Vervolgens berekenen we de gemiddelde snelheid van voertuig α1 tot en met α7 met formule 2.2 V (x, t) =
α7 1 X vα N α 1
1 = ∗ (30 + 50 + 35 + 40 + 55 + 25 + 45) 7 1 280 = ∗ 280 = = 40 meter per seconde. 7 7
16
HOOFDSTUK 2. FILEMODELLEN
Als laatste kunnen we dan de dichtheid berekenen (formule 2.3) door gebruik te maken van de intensiteit en de gemiddelde snelheid die we net hebben berekend. ρ(x, t) =
2.2.4
Q(x, t) 7 = = 0, 175 voertuigen per meter. V (x, t) 40
Wetten
Als we een stuk weg bekijken met behulp van de bovenstaande formules, dan moeten we er vanuit gaan dat er geen voertuigen verloren gaan. Dit betekent dat het aantal voertuigen dat het traject binnenkomt gelijk moet zijn aan het aantal voertuigen die het traject verlaat. Dit wordt wel de wet van behoud van voertuigen genoemd. Een tweede wet is de wet die het verband tussen de intensiteit, de snelheid en de dichtheid weergeeft. Dit is de volgende vergelijking Q(x, t) = ρ(x, t)V (x, t).
(2.4)
Deze volgt direct uit formule 2.3.
2.2.5
Parti¨ ele differentiaalvergelijking
Vervolgens kunnen we vanuit de wet van behoud van voertuigen verder redeneren. Er mogen immers geen voertuigen verloren gaan en dus is de instroom aan voertuigen gelijk aan de uitstroom. Omdat deze twee waarden gelijk zijn kunnen we als het ware het begin en het einde van het stuk weg wat we bekijken ’aan elkaar vast plakken’. Dit zorgt voor een gesloten systeem met een vast aantal voertuigen. Als in dit gesloten systeem vervolgens de intensiteit groter wordt, komt dit omdat de voertuigen harder rijden.
Figuur 2.1: voorstelling van de afleiding van de parti¨ele differentiaalvergelijking [10] (pagina 24) Om de parti¨ele differentiaalvergelijking te berekenen moeten we eerst verschillende grootheden defini¨eren. We verdelen de weg in stukjes ter grootte van ∆x. ∆t is het verschil in tijd, oftewel gedurende welke tijd
2.2. MACROSCOPISCHE MODELLEN
17
iets gebeurt. Ieder gebied xi heeft een dichtheid ρ op tijd tj . De dichtheid wordt dus genoteerd als ρ(i, j). Omdat de dichtheid het aantal voertuigen per eenheid weglengte weergeeft, is het aantal voertuigen op weglengte ∆x gelijk aan ρ(i, j)∆x. Vervolgens gaan we bekijken wat de instroom en de uitstroom van het middelste vakje is, het vakje xi . De instroom wordt hierbij be¨ınvloed door het aantal voertuigen dat uit vakje xi−1 komt en door een eventuele instroom uit een invoegstrook. De waarde voor de in- en uitstroom uit een invoegstrook noemen we z(i, j) en wordt negatief als we een grotere externe uitstroom dan instroom hebben. Deze instroom is zowel afhankelijk van ∆x als ∆t en wordt dus beschreven door z(i, j)∆x∆t. Dit is bijvoorbeeld het geval als op dit stukje weg zowel een oprit als een afrit zouden zijn en er meer voertuigen via de afrit afgaan dan dat er voertuigen via de oprit bijkomen. Het aantal voertuigen dat van xi−1 komt, wordt beschreven door de functie Q(i − 1, j)∆t. De intensiteit is immers het aantal voertuigen dat passeert per tijdseenheid. Dit vermenigvuldigd met de tijdstap die je neemt geeft het aantal voertuigen dat er in die tijd vakje xi−1 zijn gepasseerd en dus vakje xi binnenkomen. Op deze manier wordt ook de uitstroom van het aantal voertuigen bepaald. Deze is gelijk aan Q(i, j)∆t. Als we nu ´e´en tijdstap nemen ontstaat de situatie voor j + 1. Deze is als volgt te beschrijven: ρ(i, j + 1)∆x = ρ(i, j)∆x + Q(i − 1, j)∆t + z(i, j)∆x∆t − Q(i, j)∆t. Vervolgens schrijven we deze formule wat anders waardoor de volgende formule ontstaat: ρ(i, j + 1)∆x − ρ(i, j)∆x − Q(i − 1, j)∆t + Q(i, j)∆t = z(i, j)∆x∆t. Delen we dit geheel vervolgens door zowel ∆x als ∆t krijgen we het volgende resultaat: ρ(i, j + 1) − ρ(i, j) Q(i, j) − Q(i − 1, j) + = z(i, j). ∆t ∆x Omdat j+1 de tijd (deze hebben we immers j genoemd) plus ´e´en tijdseenheid is, is dit hetzelfde als j + ∆t. Ditzelfde geldt voor i en i − 1. i − 1 betekent immers niets meer dan de plaats min ´e´en plaatseenheid, ∆x. Als laatste hebben we nog De wet van behoud van voertuigen besproken, wat betekent dat we niet te maken hebben met opritten of afritten. Hierdoor kunnen we zeggen dat z(i, j) = 0. Het laten naderen van ∆x en ∆t tot 0 brengt ons bij de volgende parti¨ele differentiaalvergelijking: ∂ρ(x, t) ∂Q(x, t) + = 0. (2.5) ∂t ∂x Deze formule kan vervolgens in macroscopische modellen worden gebruikt. De parti¨ele differentiaalvergelijking zegt dus dat de de toename van ρ per tijdseenheid gelijk is aan de afname van Q per plaatseenheid en omgekeerd.
18
2.2.6
HOOFDSTUK 2. FILEMODELLEN
LWR-model
Vervolgens zijn er verschillende technici die verder gaan op deze vergelijkingen. Zo is er het model van Lighthill, Whitham en Richards, die heel heel toepasselijk het LWR model wordt genoemd. Zij gaan er vanuit dat er een bepaalde (zelfgekozen) vergelijking is, die de relatie tussen gemiddelde snelheid en de dichtheid weergeeft: V (x, t) = F (ρ(x, t)).
(2.6)
Verder gaan ze uit van een wat herschreven variant van de net beschreven functie voor het behoud van voertuigen: ρ(i, t + 1) = ρ(i, t) +
∆t [Q(x − 1, t) − Q(i, t)]. ∆x
(2.7)
En als derde maken ze gebruik van formule 2.4: Q(x, t) = ρ(x, t)V (x, t). Deze drie vergelijkingen samen vormen de verzameling formules waaruit intensiteit Q(x, t), snelheid V (x, t) en de dichtheid ρ(x, t) berekend worden voor de waarden x en t. V (x, t) = F (ρ(x, t)), Q(x, t) = ρ(x, t)V (x, t), ∆t ρ(x, t + 1) = ρ(x, t) + ∆x [Q(x − 1, t) − Q(x, t)].
2.2.7
Payne-model
Dit model bestaat niet uit ´e´en parti¨ele differentiaalvergelijking, maar uit twee. De voornaamste functie van deze tweede parti¨ele differentiaalvergelijking is het toevoegen van een versnellingsfactor. Ieder voertuig zal zijn snelheid geleidelijk aanpassen naar een van te voren vastgestelde streefsnelheid bij dichtheid ρ. Dit zal gebeuren door een geleidelijke verhoging (of verlaging) van de snelheid als een voertuig van een gebied naar een volgend gebied gaat. Op deze manier heeft de snelheid op plaats i (i en x zijn beide plaatsbepalingen en betekenen hetzelfde) invloed op de snelheid in i + 1. We zullen verder niet ingaan op de formules van dit model. Het Payne-model heeft overeenkomsten met het recursiemodel, in die zin dat de snelheid geleidelijk wordt aangepast naar een streefsnelheid. Het Payne-model berekent de streefsnelheid echter aan de hand van de dichtheid en niet aan de hand van de specifieke voorliggers.
2.3. MICROSCOPISCHE MODELLEN
2.3
19
Microscopische modellen
In het bovenstaande zagen we bij de macroscopische modellen dat verkeer op een grote schaal wordt bekeken. Hebben we het echter over microscopische modellen, dan bekijken we verker op zo’n kleine schaal dat we de voertuigen los van elkaar bekijken. We bekijken per voertuig hoe het zich gedraagt, als we bepaalde regels opstellen. Op deze manier bekijk je altijd een stukje van de weg. Het is immers zeer veel rekenwerk om met een microscopisch model stukken weg met honderden voertuigen te gaan doorrekenen.
2.3.1
Follow the leader
In de jaren zestig werden de zogenaamde follow the leader modellen populair. De naam zegt het al: volg de leider, volg het voertuig voor je. In een follow the leader model is het dus zo, dat het gedrag van een voertuig wordt bepaald door het voertuig voor hem, en wellicht zelfs door het voertuig daarvoor enzovoorts. Als we dit in wiskundige taal zeggen, zeg je dat het gedrag van voertuig α wordt bepaald door voertuig α − 1 en wellicht zelfs door voertuig α − n met n ≥ 1. Wellicht is het gebruik van de notatie α − 1 verwarrend. Neemt men immers een gewoon assenstelsel voor zich dan bevindt de -1 zich links van de 0, en dus zou α − 1 zich links van α bevinden. De situatie moet echter op een andere manier worden bekeken. Stel je zit op een klapstoel langs de weg en ziet in de verte een groene Mercedes aankomen. Je zegt we noemen dit voertuig, voertuig α. We zien dat daarvoor een grijze Alfa Romeo rijdt. Dit voertuig bevindt zich voor voertuig α en komt eerder langs. Daarom noemen we het voertuig α−1. Het voertuig dat na voertuig α langs je komt, zal op deze manier voertuig α + 1 worden genoemd en ga zo maar door. Hierin kunnen we verschillende soorten modellen onderscheiden. Safe-distancemodel Deze modellen zeggen eigenlijk niets over het gedrag van een voertuig, maar alleen over de veilige afstand tussen 2 voertuigen. Leutzbach kwam met een model waarin hij 3 componenten van de reactietijd opneemt [6]: 1. De tijd tot waarnemen. 2. De tijd die men nodig heeft om een beslissing te nemen. 3. De tijd die het kost om vervolgens ook daadwerkelijk actie te ondernemen. Vervolgens kunnen hier de verschillende natuurkundige wetten op worden losgelaten die betrekking hebben op de vertraging/versnelling en de afgelegde weg etc.
20
HOOFDSTUK 2. FILEMODELLEN
Zo is de plaats van voertuig α gelijk aan: xα (t) = xα (0) + vα t +
at2 . 2
(2.8)
Zeggen we echter vervolgens dat we het niet over een versnelling a hebben maar over een vertraging g dan geldt: v(t) = vα (0) − gt.
(2.9)
Als we de tijd willen bereken totdat het voertuig stilstaat (vα (t) = 0), dan geldt: vα (0) t= . (2.10) g De weg die het voertuig aflegt tijdens het remmen kan vervolgens beschreven worden met de volgende formule: vα (0)2 gvα (0)2 vα (0)2 vα (0)2 vα (0)2 ∆x = x(t)−x(0) = xα (0) + − −x (0) = − = . α g 2g 2 g 2g 2g (2.11) Nu kunnen we opmerken dat de afstand die een voertuig aflegt vanaf het moment dat hij merkt dat zijn voorganger (voertuig α − 1) remt, bestaat uit 2 delen. Deel 1 is de afstand die het voertuig aflegt in de reactietijd, deze reactietijd noemen we T (en bestaat uit de tijd tot waarnemen + de tijd tot men een beslissing heeft genomen). Deel 2 is de afstand die het voertuig vervolgens nog aflegt in de tijd dat deze remt. Deze afstand hebben we hierboven afgeleid. We kunnen dus nu de formule opstellen voor de veilige afstand (d) tussen 2 voertuigen: d(v) = T v +
v2 . 2g
(2.12)
Voorbeeld: Een voertuig rijdt 30 m/s. De bestuurder heeft een reactie tijd van 0,4 seconden en de maximale vertraging van het voertuig is 10 m/s2 . De veilige afstand kunnen we vervolgens bereken met formule 2.12: d(30) = 0, 4 · 30 +
302 = 57 meter. 2 · 10
Stimulus-response-car-followingmodellen Bij deze categorie modellen gaat het om de relatie tussen een stimulus en vervolgens responses (acties) die daarop volgen. De relatie tussen deze 2 grootheden is als volgt te beschrijven: Response = gevoeligheid · stimulus.
(2.13)
2.3. MICROSCOPISCHE MODELLEN
21
In deze modellen zijn de responses de versnelling of vertraging van het voertuig. De gevoeligheid γ geeft aan in welke mate er op een stimulus wordt gereageerd. Een voorbeeld van een formule voor γ is: γ=c
(vα (t + T ))m1 . (xα−1 (t) − xα (t))m2
(2.14)
Hieruit volgt dat de bestuurder meer reageert op de stimulus als de afstand tot het voertuig voor hem kleiner is. In de formule moet gelden m2 6= 0. Onder de streep staat namelijk de afstand tussen voertuig α en voertuig α − 1. Het gaat hierbij om de afstand tussen de 2 achterbumpers van de voertuigen. Als deze waarde kleiner wordt, dan wordt de uitkomst van de breuk logischerwijs groter (als vα gelijk blijft). Verder geldt ook dat als vα (t + T ) (wat betekent de snelheid na de reactietijd) groter wordt, γ ook groter wordt (als wat onder de streep staat gelijk blijft) en er dus gevoeliger wordt gereageerd. Intelligent-drivermodel Dit model, ontwikkeld door Treiber en Helbing, maakt de versnelling (of de vertraging) niet alleen afhankelijk van de snelheid maar ook van de afstand tot het voertuig ervoor en de relatieve snelheid daarvan ten opzichte van dit voertuig. Ten opzichte van de vorige modellen introduceert dit model dus relatieve snelheid.
2.3.2
Cellulaire automaten (CA)
Bij deze soort van microscopische modellen delen we een stuk weg op in verschillende vakjes. Deze vakjes hebben de grootte van ´e´en voertuig en alle vakjes zijn even groot. Dit verklaart meteen ´e´en van de zwakke punten van dit model. Alle voertuigen hebben namelijk zogenaamd dezelfde grootte, terwijl in het echt natuurlijk ook bijvoorbeeld vrachtwagens voorkomen. Eenbaansmodel
Figuur 2.2: Mogelijke situatie bij Cellulaire Automaat In de bovenstaande figuur zie je een visuele weergave van hoe je cellulaire automaten (CA) weer kan geven. Om met CA te kunnen werken moeten er echter eerst verschillende basisvariabelen duidelijk zijn:
22
HOOFDSTUK 2. FILEMODELLEN - vi is de snelheid van het voertuig dat zich op plaats i. - xi geeft aan of op plek i zich een voertuig bevindt (x = 1) of niet (x = 0). - di is het aantal lege cellen dat het voertuig op plaats i voor zich heeft. - vmax is de maximale snelheid die een voertuig kan hebben.
Stel dat we het meest linkse voertuig in figuur 2.2 voertuig α noemen dan geldt di = 2. Zoals in figuur 2.2, te zien is hebben we het momenteel alleen nog maar over ´e´en baan. Stel dat figuur 2.2 de situatie op tijdstip t is. Als we vervolgens de situatie op tijdstip t + 1 willen bepalen, dan lopen we een lijstje af met verschillende eisen: 1. Ieder voertuig verhoogt zijn snelheid met 1 (behalve als geldt vvoertuig = vmax ). 2. Ieder voertuig verlaagt zijn snelheid tot di . Stel dat een voertuig 2 lege vakjes voor zich heeft en net bij stap 1 een snelheid van 4 heeft gekregen. Dan wordt deze snelheid weer verlaagd tot 2. 3. Met kans p wordt de snelheid van ieder voertuig met 1 verlaagd. 4. Ieder voertuig gaat naar zijn nieuwe cel die v cellen verderop ligt. [11] Een uitleg bij sommige van deze stappen is wel op zijn plaats. Allereerst stap 1: we gaan ervan uit gaan dat iedereen het liefst vmax rijdt (in dit geval dus ook de oude mensen in hun Toyota Yaris). We eisen dat de maximale versnelling in ´e´en tijdseenheid gelijk is aan 1. Bij stap 2 kijken we wat het aantal lege vakjes is voor een bepaald voertuig. Hoe minder lege vakjes een voertuig voor zich heeft, hoe minder hard hij ook zal rijden. Het voertuig zal immers rekening houden met de kans dat zijn voorganger kan gaan remmen. Hoe kleiner de afstand tot de voorganger is, hoe zachter hij dus ook zal gaan rijden. Vervolgens is er bij stap 3 een kans p dat iemand zijn snelheid met 1 verlaagt. Er zijn altijd mensen die overmatig remmen en zo langzamer rijden dan noodzakelijk. Dit gebeurt echter lang niet altijd. Als laatste kijk je puur naar welke nieuwe snelheid elk voertuig volgens stap 1 tot en met 3 heeft gekregen en schuif je het voertuig evenveel stappen naar voren. Het is wel zo dat voor dit model de waarden van p en vmax van te voren bepaald moeten zijn Een opmerking is dat van tevoren al vast moet staan waar welk voertuig staat en welke snelheid dit voertuig heeft. We noteren dit in een zogenaamde matrix. Een voorbeeld hiervan is: 1 0 0 1 1 . (2.15) 3 0 0 0 2
2.3. MICROSCOPISCHE MODELLEN
23
In de bovenste rij van deze matrix (die met de getallen 1 0 0 1 1) zien we of er een voertuig in het betreffende vakje staat of niet. Een 1 betekent dat er een voertuig staat, een 0 als er geen voertuig staat (dit is binaire code). In de rij daaronder (de rij met de getallen 3 0 0 0 2) zien we welke snelheid een voertuig heeft. Voorbeeld: We maken voor dit voorbeeld gebruik van de situatie in figuur 2.3. Hierin stelt de bovenste regel de beginsituatie op tijdstip t voor. In deze figuur staan voor de duidelijkheid ook de snelheden van de voertuigen en de plaatsbepalingen genummerd van x1 tot en met x5 . De eerste regel is een visuele weergave van matrix 2.15. Voor dit voorbeeld gebruiken we een maximum snelheid vmax = 3 en p = 0.1. Allereerst volgen we stap 1 en verhogen we de snelheid van alle voertuigen. De matrix voor de snelheden wordt dan: v= 3 0 0 1 3 . In cel x1 zien we dat de snelheid niet wordt verhoogd. Dit is niet mogelijk aangezien de maximum snelheid 3 is, en het voertuig in x1 deze snelheid dus al heeft bereikt. In cel x4 en x5 zien we echter wel dat de snelheid met 1 is verhoogd. Vervolgens volgen we stap 2 en komt de snelheidsmatrix er als volgt uit te zien: v= 2 0 0 0 3 . In cel X1 en X4 is de snelheid met 1 verlaagd omdat het aantal lege cellen voor het voertuig respectievelijk 2 en 0 is. Over cel X5 kunnen we niets zeggen aangezien we niet weten wat zich rechts van deze cel bevindt. Dit is een bekend probleem bij CA. Hoe pak je zoiets aan? Hier zijn verschillende oplossingen voor. Zo kan je bijvoorbeeld het voertuig in deze cel gewoon zijn snelheid laten behouden en dan uit de matrix laten verdwijnen. Een ander mogelijkheid is om de linkerkant en de rechterkant aan elkaar te ‘plakken’ waardoor een lus ontstaat. Zo blijft het aantal voertuigen constant en heb je het probleem opgelost. Hierover later meer als we het gaan hebben over ons model. Behandelen we stap 3, dan krijgen we het volgende resultaat: v= 1 0 0 0 3 . Cel X1 is verlaagd met 1. Dit komt doordat elk voertuig zijn snelheid met kans p = 0.1 verlaagt met 1. Dit is dus gebeurd bij het voertuig op X1 . Als laatste stap verschuiven we de voertuigen tot hun nieuwe plek: 0 1 0 1 0 . 0 1 0 0 0 De visualisatie is figuur 2.3:
24
HOOFDSTUK 2. FILEMODELLEN
Figuur 2.3: Voorbeeld CA Als we vervolgens deze stappen herhalen, kunnen we de situatie bepalen in t + 2 en ga zo maar door.
Tweebaansmodel Een eenbaansmodel beschrijft de werkelijkheid alleen op een eenbaansweg. Daarom introduceren we het tweebaansmodel. Voor dit tweebaansmodel geldt een aantal nieuwe regels waar rekening mee gehouden moet worden: 1. Het wisselen naar een andere baan is niet mogelijk als er een voertuig naast het betreffende voertuig rijdt. 2. Een voertuig mag van baan wisselen als de afstand tot de voorligger op dezelfde baan kleiner dan of gelijk is aan b1 3. Een voertuig mag van baan wisselen als de afstand tot de voorganger in de andere baan groter dan of gelijk aan b2 is. 4. Voor het invoegen is ruimte nodig. Indien b3 of meer cellen vrij zijn tot de achterligger in de andere baan, kan er van baan gewisseld worden. 5. Het daadwerkelijk wisselen van baan is onderhevig aan een kans pw dat een voertuig daadwerkelijk besluit om van baan te wisselen. Deze stappen passen we toe op elk voertuig om zo te kijken of deze van baan wisselt of niet. Zodoende wordt het model in 2 delen gesplitst: eerst kijken we of een bepaald voertuig van baan wisselt of niet, vervolgens kijken we volgens de stappen bij het eenbaansmodel wat de nieuwe snelheid en plaats worden van het voertuig. In dit tweebaansmodel hebben we nu naast de vaste waarden p en vmax ook te maken met de waarden b1 , b2 en b3 . Aan de ene kant zorgt dit tweebaansmodel voor een realistischere weergave, aan de andere kant komen er steeds meer constanten waaraan we een waarde moeten toekennen. Dit is in dat opzicht een nadeel omdat we voor een goede weergave deze waarden
2.3. MICROSCOPISCHE MODELLEN
25
goed moeten kunnen schatten. Op dit model zijn weer allerlei aanpassingen mogelijk. Zo kan er bijvoorbeeld met de remkans (de kans dat een voertuig op tijd remt) worden gespeeld, of kan de nieuwe snelheid ook afhankelijk worden gemaakt van voertuig α − 2. Er zijn kortom nog vele mogelijkheden om dit model realistischer te maken. Nadere uitleg variabelen b1 , b2 en b3 We zullen in deze paragraaf uitleggen wat wordt verstaan onder de variabelen b1 , b2 en b3 . De waarde b1 De afstand tot de voorganger moet kleiner of gelijk zijn aan b1 om van baan te mogen wisselen. Dit illustreren we met de onderstaande figuur. Stel b1 bedraagt 2, dan heeft het linkse voertuig in de onderste baan voldaan aan de tweede voorwaarde. Het voertuig zal hierdoor niet per definitie van baan verwisselen. Eerst moet aan alle voorwaarden worden voldaan. Dan is er nog de kans pw waarmee een voertuig daadwerkelijk van baan zal verwisselen.
De waarde b2 De waarde b2 staat voor het minimale aantal lege vakjes dat het desbetreffende voertuig moet hebben tot de voorganger in de andere baan. Stel b2 = 2 dan voldoet het voertuig ook nog aan deze waarde als er maar 2 lege cellen zijn. We hebben het immers over kleiner dan of gelijk aan. Als in dit figuur geldt b2 = 4 mag het linkse voertuig in de onderste baan zich niet verplaatsen naar de andere baan.
26
HOOFDSTUK 2. FILEMODELLEN
De waarde b3 Het minimale aantal lege cellen tot de achterligger in de andere baan wordt b3 genoemd. Ook hier hebben we het over groter of gelijk aan. Stel dat geldt b3 = 2 dan mag het linkse voertuig in de onderste baan zich dus niet van baan verwisselen.
Hoofdstuk 3
Wskundige analyse van CA De manier om precieze resultaten te verkrijgen aan de hand van een model is het werken met Markovketens. Een Markovketen is een proces waarbij de situatie op het volgende tijdstip alleen afhangt van de huidige situatie en een daarmee geassocieerd kansmechanisme. Een kenmerk van een Markovketen is dat de antwoorden telkens precies zijn.[12] In dit hoofdstuk leggen we eerst met een voorbeeld uit hoe zo’n Markovketen in elkaar zit. Vervolgens gebruiken we Markovketens in het model van de cellulaire automaat.
3.1 3.1.1
Het weer Kansen
Beschouw het volgende fictieve model voor de weersvoorspelling voor de volgende dag. Er zijn drie complementaire configuraties voor het weer: zonneschijn, bewolking en neerslag. De overgangskansen van de huidige situatie naar de volgende situatie zijn bekend.
Als er vandaag zonneschijn is, is is is Als er vandaag bewolking is, is is is Als er vandaag neerslag is, is is is
de de de de de de de de de
kans kans kans kans kans kans kans kans kans
27
dat dat dat dat dat dat dat dat dat
er er er er er er er er er
morgen zonneschijn is morgen bewolking is morgen neerslag is morgen zonneschijn is morgen bewolking is morgen neerslag is morgen zonneschijn is morgen bewolking is mogen neerslag is
1 1 1 1 2 1 1 3 1
op op op op op op op op op
3. 2. 6. 6. 3. 6. 8. 8. 2.
28
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
Het is een stuk overzichtelijker om deze gegevens in een 3 × 3-matrix te plaatsen. morgen z b n vandaag
z 31 b 61 n 81
1 2 2 3 3 8
1 6 1 6 1 2
.
Hierbij staat z voor zonneschijn, b voor bewolking en n voor neerslag. Links staan de situaties die er vandaag zijn, boven staan de situaties die er morgen kunnen zijn en in de matrix staat de kans op het weer morgen bij ieder mogelijk weer vandaag.
3.1.2
Het weer overmorgen
Deze matrix is ook te gebruiken om de kansen op het weer voor overmorgen te voorspellen en deze kunnen ook in een matrix gezet worden. Omdat er overmorgen nog steeds drie configuraties mogelijk zijn gaat het ook hier om een 3 × 3-matrix.
vandaag
overmorgen z b n z ? b . n
Wat is de kans dat er overmorgen zonneschijn is als er vandaag ook zonneschijn is? Er zijn drie mogelijkheden om van de situatie vandaag naar de situatie overmorgen te gaan: 1. Vandaag is er zonneschijn, morgen zonneschijn en overmorgen zonneschijn. 2. Vandaag is er zonneschijn, morgen bewolking en overmorgen zonneschijn. 3. Vandaag is er zonneschijn, morgen neerslag en overmorgen zonneschijn. De kans dat er zowel vandaag als overmorgen zonneschijn is, is de som van de kansen op de drie genoemde mogelijkheden om dat te bereiken. Voor mogelijkheid 1 geldt dat er eerst een kans van 1 op 3 is om morgen zonneschijn te krijgen en vervolgens een kans van 1 op 3 om overmorgen zonneschijn te krijgen. De kans op mogelijkheid 1, oftewel p1 , is dus
3.1. HET WEER
29
1 3
× 31 = 19 . Voor mogelijkheid 2 is er eerst een kans van 1 op 2 om morgen bewolking te krijgen, vervolgens een kans van 1 op 6 om daarna weer zon te krijgen. 1 p2 = 21 × 16 = 12 Voor mogelijkheid 3, ten slotte, is er eerst een kans van 1 op 6 om morgen neerslag te krijgen, vervolgens een kans van 1 op 8 om daarna weer zon te 1 krijgen. p3 = 16 × 18 = 48 1 De kans die dus linksboven in de matrix voor overmorgen staat is 13 + 12 + 31 1 48 = 144 . We kunnen een soortgelijke berekening maken voor de andere mogelijkheden. Dan is dit het resultaat: de matrix die de kansen op het weer voor overmorgen aangeeft: overmorgen z b n vandaag
31 z 144 3 b 16 1 n 6
9 16 85 144 1 2
2 9 2 96 1 3
.
Dit gehele proces heet het kwadrateren van een matrix, oftewel een matrix met zichzelf vermenigvuldigen. 1 1 1 2 31 81 32
3 1 6 1 8
2 2 3 3 8
6 1 6 1 2
=
144 27 144 24 144
144 85 144 72 144
144 32 144 48 144
.
Als dat kwadraat nog eens met de matrix vermenigvuldigd wordt is daar de derde macht van de matrix. Dit zijn dan de overgangskansen drie dagen vooruit.
3.1.3
1 3 1 6 1 8
1 2 2 3 3 8
1 6 1 6 1 2
3
=
167 864 163 864 156 864
489 864 493 864 468 864
208 864 208 864 240 864
.
Een stabiele situatie
Op dezelfde manier zal de tiende macht van de eerste matrix P de kansverdeling geven van het weer over tien dagen. Het blijkt echter dat voor grote waardes van de macht, ongeveer vanaf de achtste macht, de drie getallen in dezelfde kolom hetzelfde zijn. 3 9 4 P8 =
16 3 16 3 16
16 9 16 9 16
16 4 16 4 16
.
30
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
Dit impliceert dat, ongeacht hoe het weer nu is, de kans op zonneschijn over 3 honderd dagen altijd 16 is. Bij dit proces hangt de situatie in de toekomst alleen af van het heden en wordt het verleden buiten beschouwing gelaten. Als het bijvoorbeeld de 1 30 gehele maand elke dag al regent (de kans daarop is 2 ) blijft de kans op zonneschijn de volgende dag 18 , de kans op bewolking 38 en de kans op neerslag 12 . Zo’n proces heet dus een Markovketen.
3.2
Het verkeer
De Markovketen kan ook gebruikt worden als model voor cellulaire automaten . Beschouw een ringvormige weg met vijf plaatsen, deze plaatsen heten 1 t/m 5, die bezet worden door drie voertuigen. De configuraties bestaan hier uit plaatsen x en snelheden v. De configuraties hebben als vorm x1 x2 x3 x4 x5 . v1 v2 v3 v4 v5 De plaatsen xi kunnen als waarde 0 (geen voertuig) of 1 (voertuig) aannemen. Voor de snelheden geldt in principe dat de snelheden als waarde 0 (stilstand) kunnen aannemen, of de maximumsnelheid vmax , of een geheel getal daartussen. In dit geval, waarbij er drie voertuigen zijn en vijf plaatsen, kan een voertuig maximaal twee lege plaatsen voor zich hebben, dus de maximale snelheid is 2 (de echte vmax , de snelheid die op de verkeersborden staat, is overigens niet bepaald in dit voorbeeld). Volgens de cellulaire automaat geldt namelijk dat de snelheid van een voertuig nooit groter kan zijn dan het aantal lege plaatsen voor hem. In eerste instantie kunnen er op de bovenste rij 53 = 10 verschillende configuraties voorkomen. Bij iedere x-configuratie kunnen er 33 = 27 mogelijke V -configuraties zijn. Voor de gehele matrix zijn er dus 27· 10 = 270 verschillende configuraties voorkomen, hetgeen zou leiden tot een 270 × 270-matrix. Zelfs voor een kleine cellulaire automaat is een enorme matrix nodig. Voor een enigszins realistisch model wordt deze matrix dus zeker onhanteerbaar, ook voor een computer. Natuurlijk komen van deze 270 configuraties lang niet alle configuraties voor. Het is voor een computer echter niet gemakkelijk om configuraties weg te strepen. De som van alle snelheden is maximaal 2, omdat er maximaal twee lege plaatsen zijn. Het kan echter wel zo zijn dat de som van de snelheden kleiner is dan 2, bijvoorbeeld als de kans p in het model een snelheid nog eens met 1 verlaagt. Er geldt dus 5 X n=1
vn ≤ 2.
3.2. HET VERKEER
31
Daarnaast zorgt ook de ringvormige structuur van de weg ervoor dat sommige configuraties in de praktijk hetzelfde zijn. De volgende twee configuraties zijn in feite hetzelfde door de ringstructuur: 1 1 0 1 0 0 1 1 0 1 ∼ . 0 1 0 1 0 0 0 1 0 1 Alles beschouwend zijn dit de enige unieke configuraties voor de plaatsen: x=
1 1 1 0 0
en x =
1 1 0 1 0
.
Daarbij kunnen verschillende snelheden worden aangenomen. In de eerste configuratie is het uitgesloten dat het voertuig op plaats x3 snelheid heeft. Als het voertuig had bewogen, was het op het vorige tijdstip op plaats 1 of 2. Aangezien daar nu wel voertuigen staan en het model van de cellulaire automaten niet toestaat dat een plaats op twee opeenvolgende tijdstippen door verschillende voertuigen bezet is, moet het voertuig op plaats 3 stilstaan. Er geldt dus v3 = 0. Op dezelfde manier is het ook uitgesloten dat het voertuig op plaats 2 beweegt. Dan had er geen voertuig op plaats 1 kunnen zijn. Dus ook v2 = 0. Dan rest alleen nog de snelheid van het eerste voertuig. Deze kan alle waardes aannemen. Er zijn dus de volgende configuraties voor de eerste plaatsconfiguratie: 1 1 1 0 0 , 0 0 0 0 0 1 1 1 0 0 , 1 0 0 0 0 1 1 1 0 0 . 2 0 0 0 0 Bij de tweede plaatsconfiguratie moet wederom het tweede voertuig stilstaan, V2 = 0. Het derde voertuig bevond zich op het vorige tijdstip ofwel op plaats 3, ofwel op plaats 4. Plaats 2 was toen namelijk bezet door het tweede voertuig. Dit impliceert dat de snelheid van het derde voertuig ofwel 1 is, ofwel 0. V4 ∈ {0, 1}. Het eerste voertuig begon ofwel op plaats 5, ofwel op plaats 1. Op plaats 4 kon het eerste voertuig niet zijn op het vorige tijdstip, omdat dan het derde voertuig niet naar die plaats had kunnen rijden. Ook hier geldt dus V1 ∈ {0, 1}. Er zijn dus de volgende configuraties mogelijk bij de tweede plaatsconfiguratie: 1 1 0 1 0 , 0 0 0 0 0
32
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
1 1 0 1 0 1 0 0 0 0
1 1 0 1 0 0 0 0 1 0
1 1 0 1 0 1 0 0 1 0
, , .
Concluderend zijn er de volgende configuraties C: 1 1 1 0 0 C1 = , 0 0 0 0 0 C2 = C3 = C4 = C5 = C6 = C7 =
1 1 1 0 0 1 0 0 0 0
1 1 1 0 0 2 0 0 0 0
1 1 0 1 0 0 0 0 0 0
1 1 0 1 0 1 0 0 0 0
1 1 0 1 0 0 0 0 1 0
1 1 0 1 0 1 0 0 1 0
, , , , , .
Het zal later overigens blijken dat ´e´en van deze zeven configuraties hooguit als beginsituatie kan voorkomen. Om het verband tussen deze zeven configuraties als Markovketen te beschrijven, moet een 7 × 7-matrix gemaakt worden met daarin alle overgangskansen van de ene naar de andere configuratie Cn . Deze kansen hangen alleen van de huidige configuratie af. C1
C1 C2 C3 C4 C5 C6 C7
C2
C3
C4
C5
C6
C7 .
3.2. HET VERKEER
33
Op configuratie C1 worden de stappen toegepast uit het model van de cellulaire automaat.
1 1 1 0 0 0 0 0 0 0
1 1 1 0 0 1 1 1 0 0
1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
0 0 0 0
(begintoestand) (eerste stap) (tweede stap)
1 0 0 0 0 0
1 0 0 1 0 0
1 0 0 0 0 1 0 1
met kans p
. (derde stap)
met kans 1 − p 0 met kans p 0 (vierde stap) 0 met kans 1 − p 0
Oftewel
• de kans dat configuratie C1 overgaat in C1 is gelijk aan p en
• de kans dat configuratie C1 overgaat in C6 is gelijk aan 1 − p en
• de kans dat configuratie C1 overgaat in een andere configuratie is gelijk aan 0.
Dit ziet er in de matrix als volgt uit:
C1 C2 C3 C4 C5 C6 C7
C1 p
C2 0
C3 0
C4 0
C5 0
C6 C7 1−p 0 .
34
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA Voor de configuratie C2 :
1 1 1 0 0 1 0 0 0 0
1 1 1 0 0 2 1 1 0 0
1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
0 0 0 0
(begintoestand) (eerste stap) (tweede stap)
1 0 0 0 0 0
1 0 0 1 0 0
1 0 0 0
met kans p
.
(derde stap) met kans 1 − p 0 0 met kans p 0 0 (vierde stap) 1 0 met kans 1 − p 1 0
Oftewel
• de kans dat configuratie C2 overgaat in C1 is gelijk aan p en
• de kans dat configuratie C2 overgaat in C6 is gelijk aan 1 − p en
• de kans dat configuratie C2 overgaat in een andere configuratie is gelijk aan 0.
Dit ziet er in de matrix als volgt uit:
C1 C1 p C2 p C3 C4 C5 C6 C7
C2 0 0
C3 0 0
C4 0 0
C5 0 0
C6 1−p 1−p
C7 0 0 .
3.2. HET VERKEER Voor de configuratie 1 1 1 0 0 2 0 0 0 0 1 1 1 0 0 3 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1
35 C3 : (begintoestand) (eerste stap) (tweede stap) 0 0
0 0
met kansp
.
(derde stap) met kans 1 − p 0 met kans p 0 (vierde stap) 0 met kans 1 − p 0
Oftewel • de kans dat configuratie C3 overgaat in C1 is gelijk aan p en • de kans dat configuratie C3 overgaat in C6 is gelijk aan 1 − p en • de kans dat configuratie C3 overgaat in een andere configuratie is gelijk aan 0. Dit ziet er in de matrix als volgt uit: C1 C1 p C2 p C3 p C4 C5 C6 C7
C2 0 0 0
C3 0 0 0
C4 0 0 0
C5 0 0 0
C6 C7 1−p 0 1−p 0 1−p 0 .
36
(begintoestand) (eerste stap) (tweede stap) met kans p × p(beide voertuigen remmen af) met kans p × (1 − p)(het ene voertuig remt af)
met kans met kans met kans met kans
(1 − p) × p(het andere voertuig remt af) (1 − p) × (1 − p)(beide voertuigen remmen niet af) p2 2 p−p
met kans p − p2
2 met kans 1 − 2p + p
(derde stap) .
(vierde stap)
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
Voor de configuratie C4 : 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1
3.2. HET VERKEER
37
Oftewel • • • • •
de kans dat configuratie C4 overgaat in C4 is gelijk aan p2 en de kans dat configuratie C4 overgaat in C5 is gelijk aan p − p2 en de kans dat configuratie C4 overgaat in C2 is gelijk aan p − p2 en de kans dat configuratie C4 overgaat in C7 is gelijk aan 1 − 2p + p2 en de kans dat configuratie C4 overgaat in een andere configuratie is gelijk aan 0.
Dit ziet er in de matrix als volgt uit: C1 C1 p C2 p C3 p C4 0 C5 C6 C7
C2 0 0 0 p − p2
C3 0 0 0 0
C4 0 0 0 p2
C5 0 0 0 p − p2
C6 1−p 1−p 1−p 0
C7 0 0 0 2 1 − 2p + p .
38
(begintoestand) (eerste stap) (tweede stap) met kans p × p(beide voertuigen remmen af) met kans p × (1 − p)(het ene voertuig remt af)
met kans met kans met kans met kans
(1 − p) × p(het andere voertuig remt af) (1 − p) × (1 − p)(beide voertuigen remmen niet af) p2 2 p−p
met kans p − p2
2 met kans 1 − 2p + p
(derde stap) .
(vierde stap)
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
Voor de configuratie C5 : 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 2 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1
3.2. HET VERKEER
39
Oftewel • • • • •
de kans dat configuratie C5 overgaat in C4 is gelijk aan p2 en de kans dat configuratie C5 overgaat in C5 is gelijk aan p − p2 en de kans dat configuratie C5 overgaat in C2 is gelijk aan p − p2 en de kans dat configuratie C5 overgaat in C7 is gelijk aan 1 − 2p + p2 en de kans dat configuratie C5 overgaat in een andere configuratie is gelijk aan 0.
Dit ziet er in de matrix als volgt uitziet: C1 C1 p C2 p C3 p C4 0 C5 0 C6 C7
C2 0 0 0 p − p2 p − p2
C3 0 0 0 0 0
C4 0 0 0 p2 p2
C5 0 0 0 p − p2 p − p2
C6 1−p 1−p 1−p 0 0
C7 0 0 0 2 1 − 2p + p . 1 − 2p + p2
40
(begintoestand) (eerste stap) (tweede stap) met kans p × p(beide voertuigen remmen af) met kans p × (1 − p)(het ene voertuig remt af)
met kans met kans met kans met kans
(1 − p) × p(het andere voertuig remt af) (1 − p) × (1 − p)(beide voertuigen remmen niet af) p2 2 p−p
met kans p − p2
2 met kans 1 − 2p + p
(derde stap) .
(vierde stap)
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
Voor de configuratie C6 : 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 2 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1
3.2. HET VERKEER
41
Oftewel • • • • •
de kans dat configuratie C6 overgaat in C4 is gelijk aan p2 en de kans dat configuratie C6 overgaat in C5 is gelijk aan p − p2 en de kans dat configuratie C6 overgaat in C2 is gelijk aan p − p2 en de kans dat configuratie C6 overgaat in C7 is gelijk aan 1 − 2p + p2 en de kans dat configuratie C6 overgaat in een andere configuratie is gelijk aan 0,
Dit ziet er in de matrix als volgt uit:
C1 C1 p C2 p C3 p C4 0 C5 0 C6 0 C7
C2 0 0 0 p − p2 p − p2 p − p2
C3 0 0 0 0 0 0
C4 0 0 0 p2 p2 p2
C5 0 0 0 p − p2 p − p2 p − p2
C6 1−p 1−p 1−p 0 0 0
C7 0 0 0 2 1 − 2p + p . 1 − 2p + p2 1 − 2p + p2
42
(begintoestand) (eerste stap) (tweede stap)
(derde stap)
.
(vierde stap)
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
Voor de configuratie C7 geldt dan ten slotte: 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 2 1 0 2 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 met kans p × p(beide voertuigen remmen af) 0 0 0 0 0 1 1 0 1 0 met kans p × (1 − p)(het ene voertuig remt af) 0 1 0 0 0 1 1 0 1 0 met kans (1 − p) × p(het andere voertuig remt af) 0 0 0 1 0 1 1 0 1 0 met kans (1 − p) × (1 − p)(beide voertuigen remmen niet af) 0 1 0 1 0 1 1 0 1 0 2 met kans p 0 0 0 0 0 1 0 1 1 0 2 met kans p − p 0 0 1 0 0 1 1 0 0 1 2 met kans p − p 0 0 0 0 1 1 0 1 0 1 2 met kans 1 − 2p + p 0 0 1 0 1
3.2. HET VERKEER
43
Oftewel • • • • •
de kans dat configuratie C7 overgaat in C4 is gelijk aan p2 en de kans dat configuratie C7 overgaat in C5 is gelijk aan p − p2 en de kans dat configuratie C7 overgaat in C2 is gelijk aan p − p2 en de kans dat configuratie C7 overgaat in C7 is gelijk aan 1 − 2p + p2 en de kans dat configuratie C7 overgaat in een andere configuratie is gelijk aan 0.
De definitieve matrix van overgangskansen is dus als volgt:
C1 C1 p C2 p C3 p C4 0 C5 0 C6 0 C7 0
C2 0 0 0 p − p2 p − p2 p − p2 p − p2
C3 0 0 0 0 0 0 0
C4 0 0 0 p2 p2 p2 p2
C5 0 0 0 p − p2 p − p2 p − p2 p − p2
C6 1−p 1−p 1−p 0 0 0 0
C7 0 0 0 2 1 − 2p + p . 1 − 2p + p2 1 − 2p + p2 1 − 2p + p2
Een visualisatie van deze matrix is de volgende afbeelding:
Twee dingen vallen op aan deze matrix. Ten eerste zijn er slechts twee verschillende kansverdelingen. Ten tweede zijn in de C3 -kolom alleen nullen. Het eerste betekent dat in dit specifieke geval de overgangskansen alleen afhangen van de plaatsconfiguratie. Er geldt immers xC1 = xC2 = xC3 en xC4 = xC5 = xC6 = xC7 Het tweede betekent dat C3 eigenlijk geen juiste configuratie is. Ook als de
44
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
configuratie niet gefilterd wordt, blijkt dus dat de matrix dit zelf oplost. In het uiterste geval, een 270 × 270-matrix, waarbij geen van de mogelijkheden gefilterd is, zou een computer ook alle onmogelijke configuraties eruit kunnen filteren. Daarbij treedt wel het probleem op dat er nog configuraties zijn waarbij een snelheid gegeven is zonder dat een voertuig in de cel staat. Deze zijn namelijk nog onderdeel van die 270 verschillende configuraties. Hiervoor zou dan een aanpassing in het model nodig zijn.
Bij een Markovketen kan men kijken naar de eventuele stabiliteit op de lange duur. Als de kans nog niet vastgelegd is moet dit algebra¨ısch, op dezelfde manier als bij het weersmodel. Zo is er slechts ´e´en manier om van C1 over twee tijdseenheden naar C1 te geraken en dat is door ook via C1 te gaan. De kans daarop is p2 . Dit zijn alle mogelijkheden vanuit de configuratie C1 . • C1 → C1 → C1 met kans p2 • C1 → C1 → C6 met kans p(1 − p) • C1 → C6 → C2 met kans p(1 − p)2 • C1 → C6 → C4 met kans p2 (1 − p) • C1 → C6 → C5 met kans p(1 − p)2 • C1 → C6 → C7 met kans (1 − p)3 C2 en C3 hebben dezelfde mogelijkheden als C1 en dus dezelfde overgangskansen als C1 . Vervolgens zijn dit de mogelijkheden vanuit configuraties C4 , C5 , C6 en C7 . • C4 → C2 → C1 met kans p2 (1 − p) • C4 → C2 → C6 met kans p(1 − p)2 • C4 → C4 → C2 met kans p3 (1 − p) • C4 → C4 → C4 met kans p4 • C4 → C4 → C5 met kans p3 (1 − p) • C4 → C4 → C7 met kans p2 (1 − p)2 • C4 → C5 → C2 met kans p2 (1 − p)2 • C4 → C5 → C4 met kans p3 (1 − p) • C4 → C5 → C5 met kans p2 (1 − p)2
3.2. HET VERKEER • C4 → C5 → C7 met kans p(1 − p)3 • C4 → C7 → C2 met kans p(1 − p)3 • C4 → C7 → C4 met kans p2 (1 − p)2 • C4 → C7 → C5 met kans p(1 − p)3 • C4 → C7 → C7 met kans (1 − p)4
45
46
C1 C1 p2 2 C2 2p 3 C p − p = 4 2 3 C5 p − p 2 C6 p − p3 C7 p2 − p3
C2 p − 2p2 + p3 p − 2p2 + p3 p − p2 + 2p3 − p4 p − p2 + 2p3 − p4 p − p2 + 2p3 − p4 p − p2 + 2p3 − p4
C2 0 0 p − p2 p − p2 p − p2 p − p2
C4 − p3 2 p − p3 p4 − p3 + p2 p4 − p3 + p2 p4 − p3 + p2 p4 − p3 + p2 p2
C4 0 0 p2 p2 p2 p2
C5 0 0 p − p2 p − p2 p − p2 p − p2
C6 1−p 1−p 0 0 0 0
C5 p − 2p2 + p3 p − 2p2 + p3 p − 2p2 + 2p3 − p4 p − 2p2 + 2p3 − p4 p − 2p2 + 2p3 − p4 p − 2p2 + 2p3 − p4
2
C7 0 0 1 − 2p + p2 1 − 2p + p2 1 − 2p + p2 1 − 2p + p2 C6 p − p2 p − p2 p − 2p2 + p3 p − 2p2 + p3 p − 2p2 + p3 p − 2p2 + p3
C7 1 − 3p + 3p2 − p3 1 − 3p + 3p2 − p3 4 3 2 p − 3p + 4p − 3p + 1 . p4 − 3p3 + 4p2 − 3p + 1 p4 − 3p3 + 4p2 − 3p + 1 p4 − 3p3 + 4p2 − 3p + 1
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
C1 C1 p C2 p 0 C P2 = 4 C5 0 C6 0 C7 0
3.3. CONCLUSIE
47
Het wordt een hele klus om dit algebra¨ısch voort te zetten. Wel kunnen we voor enkele waardes van p een stabiele situatie zoeken. Dit zijn de resultaten voor de vijftigste macht van de matrix voor verschillende waardes van de kans uit de cellulaire automaat. Omwille van de vergelijkbaarheid bij de verschillende kansen zijn de getallen hier in decimale notatie, maar de resultaten zijn wel exact.
p = 0.1 p = 0.2 C1 0.0091 0.0333 C2 0.0818 0.1333 C4 0.0091 0.0333 C5 0.0818 0.1333 C6 0.0818 0.1333 C7 0.7364 0.5333
p = 0.3 p = 0.4 0.0692 0.1143 0.1615 0.1714 0.0692 0.1143 0.1615 0.1714 0.1615 0.1714 0.3769 0.2571
p = 0.5 0.1667 0.1667 0.1667 . 0.1667 0.1667 0.1667
Hierbij valt op dat de kansen bij C2 , C5 en C6 aan elkaar gelijk zijn. Dit hangt ermee samen dat er in die configuraties twee voertuigen even snel rijden. Iets vergelijkbaars is het geval bij de gelijke kansen bij C1 en C4 .
3.3
Conclusie
Zelfs bij een zeer klein stuk weg met een beperkt aantal voertuigen is de complexiteit van de algebra¨ısche aanpak groot. Voor realistische groottes van de cellulaire automaten wordt dit nog complexer en is het onmogelijk voor een computer om dit zo te modelleren. Daarom zijn simulaties de enige mogelijkheid om met realistische wegen cellulaire automaten te gebruiken. Bij een simulatie kiest de computer zelf steeds of de snelheden verlaagd worden. Deze methode wordt in het volgende hoofdstuk besproken.
48
HOOFDSTUK 3. WSKUNDIGE ANALYSE VAN CA
Hoofdstuk 4
De bouw van een CA simulatie Om daadwerkelijk iets te kunnen doen met de principes van een model, is het dus van belang deze principes automatisch toe te kunnen passen. Tal van programma’s zijn hiervoor geschikt. Voorbeelden zijn het veel gebruikte Matlab en het minder bekende Octave (zie Bijlage B). Beide programma’s zijn te vergelijken met zeer uitgebreide rekenmachines die op de computer kunnen worden gebruikt. Deze programma’s bieden een grote verscheidenheid aan functies: van het uitrekenen van simpele sommen tot het maken van complexe 3D-grafieken. Ook is het mogelijk om hierin in een veredelde programmeertaal te werken met commando’s als if, while en for. Lees voor meer informatie over Octave en zijn mogelijkheden bijlage B.
4.1
Eenbaansmodel
We beginnen met het maken van een model van een situatie met ´e´en baan. Het eenbaansmodel is de basis van een cellulaire automaten model. Later kunnen we op dit model doorbouwen door het bijvoorbeeld uit te breiden naar twee banen.
4.1.1
Het begin
De eerste stap van het maken van een geautomatiseerd bestand is het openen van een nieuw plain text bestand. Niet in de zin van een Word-bestand, maar een kladblokbestand. We slaan dit bestand op met een korte naam die slaat op het model dat je gaat maken. In deze naam mogen geen spaties gebruikt worden. De extensie van dit bestand moet .m zijn. Dit is nodig voor het gebruik in Octave. Wij gebruiken de naam cellbasis.m. 49
50
4.1.2
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE
De basis van het model
De eerste regel van het model slaat altijd op de hoofdformule van het model. De opzet voor de eerste regel van het model ziet er als volgt uit: function[output1, output2, ...] = name(input1, input2, ...). Direct hieronder kan een nieuwe regel volgen beginnende met een %teken. Op deze regel staat een uitleg van de eerste formule. Hierin is het handig om informatie te zetten over wat de volgorde is waarin de inputs moeten worden ingevoerd en waar elke inputwaarde voor staat. In ons model komt dit neer op het volgende: function T = c e l l b a s i s ( p , c , vmax ) %c e l l b a s i s ( kans , b e g i n c o n f i g u r a t i e , maximumsnelheid ) We noemen de uitkomst T en de variabelen die hiervoor moeten worden ingevoerd p, c en vmax . p is de kans dat een voertuig zijn snelheid met nog 1 verlaagt. c is de beginconfiguratie. Hierin staat in een matrix vermeld waar elk voertuig zich bevindt en welke snelheid dit voertuig heeft. Als laatste is vmax de maximale snelheid in het model. Je ziet dat de functie ook hier cellbasis heet. Het is noodzakelijk de functie hetzelfde te noemen als de naam van het bestand. Willen we in Octave informatie hebben over in welke volgorde de variabelen ook al weer moeten worden ingevoerd, dan je slechts ‘help cellbasis’ in te typen. Dan verschijnt de boodschap die we na het % hebben vermeld.
4.1.3
Foutmeldingen
De volgende stap is het invoeren van foutmeldingen die controleren of de ingevoerde variabelen niet strijdig zijn met zichzelf of met andere waarden. Een foutmelding dient op de volgende manier genoteerd te worden: i f voorwaarde error ( ’ Dit kan n i e t ’ ) end Voor ons model noteren we een aantal foutmeldingen waarbij we eerst variabelen m en n gedefinieerd moeten hebben: 0.1 [m, n ] = s i z e ( c ) ; 0.2 i f m˜=2 error ( ’ g e e f op de e e r s t e r i j de p l a a t s e n en op de tweede r i j de s n e l h e d e n ’ )
4.1. EENBAANSMODEL
51
end 0.3 i f p<0 error ( ’ kans n e g a t i e f ’ ) end 0.4 i f vmax<0 error ( ’ vmax n e g a t i e f ’ ) end 0.5 for k = 1 : n i f c ( 1 , k )==0 & c ( 2 , k ) ˜=0 disp ( k ) error ( ’ s n e l h e i d b i j l e e g v a k j e ’ ) end De cijfers die boven elk stuk tekst staan, staan in het echte model niet. Dit is enkel ter verduidelijking van de functie van elk deel. Een puntkomma aan het einde van een regel zorgt ervoor dat bij het draaien van het model de uitkomst hiervan niet te zien is. Zo krijg je niet alle tussenstappen te zien, maar wordt alleen het eindresultaat zichtbaar. In de testfase van het model is het juist wel zeer nuttig om op sommige plekken nog geen %-tekens neer zetten. Zo kun je goed te tussenstappen die het model maakt, zien. 1. De eerste regel ([m,n] = size(c); heeft twee waarden als resultaat: een waarde voor m en voor n. m geeft de waarde voor het aantal rijen van de matrix, n geeft de waarde voor het aantal kolommen van de matrix. 2. In deel 0.2 wordt gekeken of de grootte van de waarde m en dus het aantal rijen van de matrix ongelijk is aan 2. Als dit zo is volgt de foutmelding ’geef op de eerste rij de plaatsen en op de tweede rij de snelheden’. Met end wordt het if commando weer be¨eindigd. 3. Deel 0.3 zorgt ervoor dat als p < 0 de melding ’kans negatief’ verschijnt. De waarde van p is immers een kans en kan dus niet negatief zijn. 4. Deel 0.4 doet hetzelfde als deel 0.3, maar dan voor vmax . vmax is een snelheid en kan dus niet kleiner zijn dan 0. We gaan er vanuit dat mensen niet achteruit rijden in een file.
52
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE 5. Deel 0.5 introduceert het begrip for. Deze voorwaarde zorgt ervoor dat dit deel niet maar ´e´en keer wordt doorlopen maar voor de waarden voor k van 1 tot en met n. n is hierin de lengte van de matrix zoals bepaald in deel 0.1. Als eerste wordt gewerkt met de waarde k=1. Nu wordt gekeken of aan 2 voorwaarden wordt voldaan (deze worden gescheiden door een &). Er wordt gecontroleerd of de waarde op plek (1,1) gelijk is aan 0 en of de waarde op plek (2,1) ongelijk is aan 0. Dit zou betekenen dat er een snelheid staat bij een cel waar geen voertuig in staat. Dit is logischerwijs niet mogelijk. Disp(k) betekent dat de waarde k wordt weergegeven. Op deze manier verschijnt de foutmelding: k (dus de plek waar het niet klopt) ’snelheid bij leeg vakje’. Zowel het if als het for commando moeten worden afgesloten met een end. We maken echter nog langer gebruik van het for commando en dus sluiten we deze in het model pas later af.
Voor de duidelijkheid zullen we tussendoor nog uitleggen wat bedoeld wordt met bijvoorbeeld c(1,1). Stel we hebben de volgende matrix c: 1 0 0 1 1 . (4.1) 3 0 0 0 2 Als we het vervolgens hebben over waarde c(1,1) komt hier 1 uit. Hebben we het over c(2,5) dan komt hier de waarde 2 uit. Een algemene definitie is dus c(i,j). Hier hebben het dus over het getal in de ide rij, in de j de kolom.
4.1.4
Stap 1
Na het controleren van de variabelen weten we dat de waarden hiervan in principe toegestaan zijn om mee verder te werken. Nu kunnen we beginnen aan het aflopen van de verschillende regels waaraan cellulaire automaten voldoen. Stap 1 is hierbij dat we de snelheid van elk voertuig verhogen met 1. In het model ziet dit er als volgt uit: 1.1 i f c ( 1 , k ) ˜=0 & c ( 2 , k )
4.1. EENBAANSMODEL
53
van het for commando uit 0.5.
4.1.5
Stap 2
Stap 2 bekijkt de afstand tot het volgende voertuig. Als deze afstand kleiner is dan de snelheid die het voertuig op dat moment heeft, wordt de snelheid verlaagd tot de afstand tot het volgende voertuig. 2.1 c = [ c ; zeros ( 1 , n ) ] ; 2.2 a = find ( c ( 1 , : ) ==1) ; for f = 1 : length ( a ) i f f
54
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE regel: c(3,a(1,f))=a(1,f+1)-a(1,f)-1;. Hierin wordt in matrix c, in de derde regel en in de kolom waar net een 1 is gevonden (deze zit in kolom a(1,f)) de waarde veranderd. De waarde van 1,f+1 geeft de plek van het voertuig dat zich voor het voertuig bevindt waar we op dat moment naar kijken. De plek waar deze zich bevindt, min de plek waar het betreffende voertuig zich bevindt, min 1 geeft de onderlinge afstand. Bevindt het ene voertuig zich namelijk op plek 4 en de ander op plek 6, dan is de afstand niet 6 − 4 = 2, maar 6 − 4 − 1 = 1. Als de waarde van f gelijk is aan de lengte van f hebben we te maken met het laatste voertuig uit de matrix. We hebben besloten dat we de voorkant en de achterkant van de matrix aan elkaar koppelen. Er kan dus nooit een voertuig verdwijnen. Om hier rekening mee te houden werken we met de wiskundige term ’modulo’. Voorbeeld: 7 mod(ulo) 3 = 1. Bij modulo-rekenen kijk je hoeveel gehele keren je een bepaald getal in een ander getal krijgt en welke waarde je dan overhoudt. Bij de bovenstaande som kijk je hoeveel gehele keren je 3 in 7 krijgt. Dit is 2 keer. Wat we vervolgens overhouden is 1. Kort genoteerd betekent de modulo 3: de rest bij deling door 3. 9 mod 5 = 4 Ditzelfde kan ook bij negatieve getallen: −13 mod 5 = 2 Bij positieve getallen geldt dus: 9 mod 5 = 9 − k ∗ 5 = 4 (met voor k een geheel, positief getal). Bij negatieve getallen geldt: −13 mod 5 = −13 + k ∗ 5 = 2 (waarbij k een zo groot mogelijk, natuurlijk, positief getal is waarmee je stopt zodra de uitkomst een positief getal betreft) [4]. In de zesde regel wordt dus de modulus berekend van de plek van het eerste voertuig, minus de plek van het laatste voertuig, min 1. Deze waarde modulo de lengte van de matrix levert de afstand van het laatste voertuig tot het eerste voertuig. Afgesloten met tweemaal end is dit deel afgesloten. Voorbeeld: Stel we hebben een matrix van 10 cellen lang. Er bevindt zich een voertuig op cel 8 en een voertuig op cel 2. Wat is het aantal lege vakjes voor het voertuig in cel 8? Dit is te berekenen met de formule: (plek eerste voertuig - plek laatste voertuig - 1) mod (lengte matrix). Dit komt neer op 2 − 8 − 1 mod 10. Dit is −7 mod 10. De uitkomst van deze som is 3. Cel 9, 10 en 1 zijn leeg. Dit komt overeen met de uitkomst. 3. Het for commando waar we hier mee starten, zal inmiddels wel duidelijk zijn. In de volgende regel (c(2,f)=min(c(2,f),c(3,f));)
4.1. EENBAANSMODEL
55
wordt de waarde in de tweede regel veranderd in de kleinste waarde van de tweede en de derde regel. Als de afstand tot het volgende voertuig dus kleiner is dan de snelheid die het voertuig op dat moment heeft, wordt de snelheid gereduceerd tot de onderlinge afstand.
4.1.6
Stap 3
Deze stap beschrijft de voorwaarde dat een voertuig zijn snelheid ook nog met een vooraf ingesteld kans p kan verlagen met 1. De regels in het model die deze handeling uitvoeren zijn: 3.1 for f = 1 : n c ( 2 , f )=max( 0 , c ( 2 , f ) −(rand<=p ) ) ; end Het for commando zorgt er weer voor dat we deze handeling kunnen verrichten voor elke cel. Uit de vergelijking rand<=p volgt een logische waarde 1 of 0. De waarde 1 zal met kans p voorkomen en de waarde 0 met kans 1 − p. Als we vervolgens ´e´en van deze twee logische waarden aftrekken, krijgen we de nieuwe snelheid. Om te voorkomen dat cellen zonder snelheid een negatieve waarde krijgen nemen we de maximale waarde van 0 en de zojuist uitgerekende waarde.
4.1.7
Stap 4
4.1 e = zeros ( 2 , n ) ; 4.2 for f = 1 : n g = mod( f+c ( 2 , f ) , n ) ; i f g == 0 g = n; end i f c ( 1 , f ) ˜=0 e ( 2 , g )=c ( 2 , f ) ; e ( 1 , g )=c ( 1 , f ) ; end end In stap 4.1 maken we een nieuwe matrix (lengte n en hoogte 2) waarin we vervolgens de nieuwe configuratie zetten.
56
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE
In stap 4.2 volgt de daadwerkelijke verplaatsing van de voertuigen. g is een matrix waarin de nieuwe plaats van elk voertuig staat. Hierbij tellen we de plaats waar het voertuig zich op dat moment bevindt (f) op bij de snelheid die het heeft (c(2,f)). De modulus hiervan zorgt ervoor dat de voertuigen zich van het einde van de matrix weer naar het begin kunnen verplaatsen. Omdat de modulo van 3, 0 is, zou een voertuig dat zich in de meest rechtse kolom bevindt, zich dus niet kunnen verplaatsen. Om dit op te lossen geldt het if -commando: if g == 0 g = n;. Nu kijken we of in matrix c op de eerste regel een voertuig staat. Is dit het geval, dan wordt de nieuwe snelheid van dit voertuig in matrix e, de snelheid c(2,f). De nieuwe plek (e(1,g) is gelijk aan c(1,f) (en dus een 1).
4.1.8
Afsluiting van het model
c = e; T = c; In de afsluiting van het model defini¨eren we matrix c als e zodat de nieuwe matrix c de bijgewerkte configuratie bevat. Omdat we het model begonnen met function T = ... zeggen we voor het gemak dat T ook gelijk is aan c zodat we hiermee verder kunnen werken in Octave.
4.1.9
Het totaal
Het totale model ziet er als volgt uit: function T = c e l l b a s i s ( p , c , vmax ) %c e l l b a s i s ( kans , b e g i n c o n f i g u r a t i e , maximumsnelheid ) [m, n ] = s i z e ( c ) ; i f m˜=2 error ( ’ g e e f op de e e r s t e r i j de p l a a t s e n en op de tweede r i j de s n e l h e d e n ’ ) end i f p<0 error ( ’ kans n e g a t i e f ’ ) end i f vmax<0 error ( ’ vmax n e g a t i e f ’ ) end for k = 1 : n
4.1. EENBAANSMODEL i f c ( 1 , k )==0 & c ( 2 , k ) ˜=0 disp ( k ) error ( ’ s n e l h e i d b i j l e e g v a k j e ’ ) end %s t a p 1 : i f c ( 1 , k ) ˜=0 & c ( 2 , k )
57
58
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE
end c = e; T = c;
4.2
Variant 1 eenbaansmodel
Om mooie resultaten te verkrijgen is het noodzakelijk het model een aantal keren achter elkaar te draaien en te observeren hoe het model verandert. Bij de beschrijving van het eenbaansmodel hebben we al kennis gemaakt met het for commando. Dit commando is ook uitermate geschikt om het hele model mee te ‘loopen’ (het herhaald achter elkaar draaien van iets). Het resultaat is het volgende: 1 function P = c e l l b a s i s l o o p 1 ( p , c , s , vmax ) % F u n c t i e om de e e r d e r b e p a a l d e f u n c t i e c e l l b a s i s t e l o o p e n met v a r i a b e l e n kans , b e g i n c o n f i g u r a t i e , a a n t a l s i m u l a t i e s , maximumsnelheid ) 2 n=length ( c ) ; Q=zeros ( s , n ) ; 3 for f = 1 : n Q( 1 , f )=c ( 2 , f ) ; end 4 T=c e l l b a s i s ( p , c , vmax ) ; for f = 1 : n Q( 2 , f )=T( 2 , f ) ; end 5 for i = 3 : s T=c e l l b a s i s ( p , T, vmax ) ; for f = 1 : n i f T( 1 , f )==0 Q( i , f )=NaN; else Q( i , f )=T( 2 , f ) ;
4.2. VARIANT 1 EENBAANSMODEL
59
end end end 6 P = Q; We introduceren in deel 1 een nieuwe variabele: s. s geeft aan hoe vaak we het model willen draaien. We maken een nieuwe matrix met nullen (deel 2) genaamd Q. Deze heeft c aantal kolommen en s aantal rijen (het aantal simulaties). In deel 3 plaatsen we op de eerste regel van matrix Q de beginsnelheden van matrix c. Vervolgens (in deel 4) draaien we het model cellbasis.m ´e´en keer en noemen de uitkomst T. De snelheden die nu zijn ontstaan vullen we in op regel 2. Als deel 5 draaien we het model de resterende i-2 keer en vullen steeds de nieuwe snelheden in, in matrix Q. Stel er bevindt zich geen voertuig in een cel, dan plaatst het model er NaN, dat staat voor “Not a Number”. Otave (zie bijlage B) kan namelijk wel werken met deze waarde maar niet met bijvoorbeeld leestekens. In dit bestand vervangen we vervolgens voor de duidelijkheid deze NaN door een punt. Als laatste stap noemen we matrix Q ook P voor het geval we met deze matrix in het vervolg verder willen rekenen. Het resultaat van zo’n matrix heeft de volgende vorm: c = 1 2
0 0
0 0
1 3
0 0
0 0
1 2
1 1
0 0
1 2
3 . . . 1 . 1 0 . 1 . 1 . . . 1 0 0 .
. . 2 0 . 1 0 . 1 . . . . 2 0 0 0 . 1
. 2 0 . 1 0 . 1 . . 2 . 2 0 0 0 . 1 .
2 0 . 1 0 . 1 . . 2 . 1 0 0 . . 1 . .
1 . 1 0 . 1 . . 2 . 1 0 . . 1 . . . 2
. 1 0 . 1 . . 2 . 1 0 . 1 . . . . 2 .
2 0 . 1 . . 2 . 1 0 . 1 . 1 . 2 . . .
>> cellbasisloop(0.1,c,25,3) ans = 2 . 1 . . 2 . 1 0 . 1 . 1 . 1 . 1 . 2
. . . . 2 . 1 . . 1 . 1 . 1 . 1 . 1 0
. 2 . 2 . 1 . 1 0 . 1 . 1 . 1 . 1 0 0
60
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE 0 0 . 1 . 1
0 . 1 . 1 .
. 1 . 1 . .
1 . . . . 2
. . 2 . 2 .
. 2 . . . 1
2 . . 2 0 0
. . 2 0 0 .
In deze figuur staat het getal 0 dus voor een stilstaand voertuig. Een punt staat voor een lege plaats. We zien midden in het model een rij nullen staan. Dit kan duiden op een file (zie voor de definite van een file paragraaf 5.1).
4.3
Variant 2 eenbaansmodel
Een andere kleine variant van het eenbaansmodel is deze: function P = c e l l b a s i s l o o p 2 ( p , c , s1 , s2 , vmax ) % F u n c t i e om de e e r d e r b e p a a l d e f u n c t i e c e l l b a s i s t e l o o p e n met v a r i a b e l e n kans , b e g i n c o n f i g u r a t i e , aantal s i m u l a t i e s voorberekenen , aantal s i m u l a t i e s tonen , maximumsnelheid ) n=length ( c ) ; Q=zeros ( s2 , n ) ; for i = 1 : s1 T=c e l l b a s i s ( p , c , vmax ) ; end for i = 1 : s2 T=c e l l b a s i s ( p , T, vmax ) ; for f = 1 : n i f T( 1 , f )==0 Q( i , f )=NaN; else Q( i , f )=T( 2 , f ) ; end end end P = Q; Dit model is nagenoeg hetzelfde als variant 1, op een paar punten na. We hebben nu niet met ´e´en variabele s te maken, maar met twee. s1 staat voor hoeveel simulaties je wil uitvoeren zonder dat je het ziet. s2 voor hoeveel simulaties je wel ziet. Het is goed om het model voordat je het
. 2 0 0 . 1
2 0 0 . 1 .
4.4. VARIANT 3 VAN HET EENBAANSMODEL
61
gaat gebruiken een aantal keren door te laten rekenen. Op deze manier krijg je een realistischere situatie, omdat het effect van de door jou gekozen beginconfiguratie is uitgewerkt. Als je zoals bij variant 1 direct begint met laten zien, en bijvoorbeeld maar 10 regels laat zien, kan je door de ingevoerde beginconfiguratie het resultaat in regel 10 be¨ınvloeden.
4.4
Variant 3 van het eenbaansmodel
In deze variant simuleren we een situatie met matrixborden. Hierdoor wordt de vmax op een bepaald deel van de weg verlaagd. Om deze situatie te simuleren is een aanpassing nodig van het originele eenbaansmodel. In het oorspronkelijke model kunnen we namelijk niet door het veranderen van variabelen op een bepaald deel van de weg de maximum snelheid veranderen.
4.4.1
De eerste regels
De verandering begint bij de eerste regels. We moeten het model allereerst een nieuwe naam geven. We noemen het cellbasisvmax. Het bijbehorende bestand krijgt dus de naam cellbasisvmax.m. De eerste regel van het aangepaste model ziet er als volgt uit: function T = c e l l b a s i s v m a x ( p , c , xbegin , xeind , vmax1 , vmax2 ) We zien de nieuwe variabelen xbegin, xeind, vmax1 en vmax2. xbegin staat voor het nummer van de eerste cel van waar je de snelheidsbeperking in wilt voeren. xeind staat voor het nummer van de laatste cel waarin je snelheidsbeperking in wilt voeren. vmax1 staat voor de maximale snelheid in gebied xbegin tot xeind (het gebied waarin je de snelheidsbeperking doorvoert). vmax2 staat voor de maximale snelheid in het resterende gebied.
4.4.2
Foutmeldingen
Er is ´e´en nieuwe foutmelding toegevoegd: i f vmax1>vmax2 error ( ’maximum s n e l h e i d i n a f g e s p r o k e n g e b i e d g r o t e r dan maximum s n e l h e i d t o t a l e t r a j e c t ’ ) end Dit stuk code zorgt ervoor dat als de maximumsnelheid op het stuk waar je de snelheid wil beperken groter is dan de maximumsnelheid van de rest van de weg, er een foutmelding ontstaat. Als dit namelijk het geval is, klopt de rest van het model niet meer.
62
4.4.3
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE
De plot
%s t a p 1 : f o r k = 1 : ( xbegin −1) i f c ( 1 , k ) ˜=0 & c ( 2 , k )
=vmax1 ; c ( 2 , k ) = vmax1 ; end end f o r k = ( x e i n d +1) : n i f c ( 1 , k ) ˜=0 & c ( 2 , k )
4.4.4
Cellbasisloop2vmax.m
Om weer mooie resultaten te verkrijgen uit ons model, moeten we weer zorgen dat de resultaten onder elkaar geprint worden. Er moet dus ook een nieuw loop-bestand gemaakt worden. Het enige wat veranderd moet worden in dit nieuwe loop-bestand is dat cellbasisloop2(p, c, s1, s2, vmax) vervangen moet worden door cellbasisloop2vmax(p, c, xbegin, xeind, s1, s2, vmax1, vmax2), met c respectievelijk T.
4.5. TWEEBAANSMODEL
4.5
63
Tweebaansmodel
Een realistischere weergave van de werkelijkheid is een model met twee banen. In dit model moet dan rekening gehouden met het verwisselen van baan. Hiervoor moeten nieuwe voorwaarden worden nageleefd. De extra regels die gelden bij een tweebaansmodel zijn te lezen in paragraaf 2.3.2 op pagina 24. Deze nieuwe regels verwerken we in een model.
4.5.1
Het model
0.1 function [ c , d ] = tweebaan ( b1 , b2 , b3 , c , d , pw , p , vmax ) %twee baan c e l l ( maximale a f s t a n d t o t v o o r g a n g e r ( z e l f d e baan ) , de minimale a f s t a n d t o t de v o o r g a n g e r i n de andere baan , minimale r u i m t e t o t a c h t e r l i g g e r op andere baan , b e g i n c o n f i g u r a t i e b o v e n s t e baan , b e g i n c o n f i g u r a t i e o n d e r s t e baan , kans d a t v o e r t u i g d a a d w e r k e l i j k van baan v e r w i s s e l t , kans d a t v o e r t u i g afremt , maximale snelheid ) 0.2 [m, n ] = s i z e ( c ) ; [ u , v ] = size (d) ; e = [ c (1 ,1: n) ; d (1 ,1: v) ] ; i f m˜=2; error ( ’ g e e f op de e e r s t e r i j de p l a a t s e n en op de tweede r i j de s n e l h e d e n ’ ) end i f u˜=2; error ( ’ g e e f op de e e r s t e r i j de p l a a t s e n en op de tweede r i j de s n e l h e d e n ’ ) end for k = 1 : n i f c ( 1 , k )==0 & c ( 2 , k ) ˜=0 disp ( k ) error ( ’ s n e l h e i d b i j l e e g v a k j e ’ ) end end
64
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE
i f n˜=v ; error ( ’ l e n g t e s van b e i d e banen moet g e l i j k z i j n ’ ) end 1.0 g = zeros ( 4 , n ) ; h = zeros ( 4 , v ) ;
1.1 for f = 1 : n i f e ( 1 , f )==1 & e ( 2 , f )==1 g ( 1 , f ) =1; h ( 1 , f ) =1; end end 2.1.1 %b o v e n s t e baan ac = find ( c ( 1 , : ) ==1) ; f o r f = 1 : length ( ac ) i f f
4.5. TWEEBAANSMODEL 2.2.1 %o n d e r s t e baan ad = find ( d ( 1 , : ) ==1) ;
for f = 1 : length ( ad ) i f f
65
66
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE
for f = 1 : n i f max( ( ad )=b2 i ( 1 , f ) =1∗ i ( 1 , f ) ; else i ( 1 , f ) =0;
4.5. TWEEBAANSMODEL end i f g ( 4 , f )>=b3 i ( 1 , f ) =1∗ i ( 1 , f ) ; else i ( 1 , f ) =0; end end 5.2 %van o n d e r s t e baan naar b o v e n s t e baan for f =1:v i f h ( 1 , f ) ˜=1 i ( 2 , f ) =1; else i ( 2 , f ) =0; end i f h ( 2 , f )<=b1 i ( 2 , f ) =1∗ i ( 2 , f ) ; else i ( 2 , f ) =0; end i f h ( 3 , f )>=b2 i ( 2 , f ) =1∗ i ( 2 , f ) ; else i ( 2 , n ) =0; end i f h ( 4 , f )>=b3 i ( 2 , f ) =1∗ i ( 2 , f ) ; else i ( 2 , f ) =0; end end 5.3 for f =1:n %b o v e n s t e r i j i f i ( 1 , f )==1 & rand
67
68
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE d ( 2 , f )=c ( 2 , f ) ; c ( 1 , f ) =0; c ( 2 , f ) =0; end i f i ( 2 , f )==1 & rand
end c=c ; d=d ; 6.1 c=c e l l b a s i s ( p , c , vmax ) d=c e l l b a s i s ( p , d , vmax )
4.5.2
Deel 0
We beginnen bij het begin: deel 0.1. We zien dat we uit deze simulatie niet meer ´e´en variabele maar twee variabelen krijgen. Zowel de situatie c en d zullen worden opgeslagen. Daarnaast hebben we een aantal nieuwe variabelen. Lees voor een uitleg van deze variabelen de commented tekst onder de functie. In deel 0.2 worden weer verschillende foutmeldingen gedefinieerd. Ook worden variabelen zoals de lengte van de matrices hier gedefinieerd. Deze hebben we namelijk in het hele model nodig. In de matrix e zullen alleen de plaatsbepalingen en niet de snelheden van de voertuigen worden vermeld. Dit is dus de situatie waarin we de 2 banen naast elkaar zien.
4.5.3
Deel 1
Deel 1 behandelt de eerste voorwaarde van het model: als twee voertuigen zich direct naast elkaar bevinden mogen ze niet van baan wisselen. Om te gaan noteren of dit het geval is maken we in deel 1.0 eerst twee nieuwe matrices (g en h) waarin we alle eigenschappen van elk voertuig zullen gaan vermelden. In matrix g komen de eigenschappen van de voertuigen in de bovenste baan (matrix c), in h die van de onderste baan (matrix d). Vervolgens kijken of er zich twee voertuigen naast elkaar bevinden in matrix e. Is dit het geval noteren we een 1 op deze plek in matrix g en h, anders een 0.
4.5. TWEEBAANSMODEL
4.5.4
69
Deel 2
In deel 2 noteren we in de tweede regel van de matrices g of h het aantal lege cellen tot de voorganger in dezelfde baan. Dit doen we op gelijke wijze als in het eenbaansmodel (zie 4.1). Vervolgens vullen we deze tweede regel verder in. We zetten nu ook het aantal lege cellen vanaf de desbetreffende cel, ook al staat er geen voertuig. Dit is ter voorbereiding op stap 3. Omdat we beginnen in cel(2,1) van matrix g, moet hierop een speciale handeling worden uitgevoerd (deel 2.1.2). Deze wordt namelijk be¨ınvloed door waardes aan het einde de matrix c. Vervolgens kunnen we rij 2 in matrix g aanvullen volgens deel 2.1.3. Ditzelfde gebeurt voor matrix h.
4.5.5
Deel 3
Kijken we nu naar de afstand tot de voorligger in de andere baan, hoeven we enkel te kijken naar de waarde die hoort bij de desbetreffende plaats in de andere matrix. Het is hierbij belangrijk dat je je voorstelt dat je het voertuig naar de andere baan schuift en dan kijkt hoeveel lege vakjes er voor dit voertuig zijn. Het vakje direct naast het voertuig telt dus niet mee. Stel we hebben het over het voertuig op plek c(1,3). Deze bevindt zich dus in de derde cel. Kijken we vervolgens in matrix h (dus die met de eigenschappen van de andere baan), dan staat daar het aantal lege cellen tot de eerstvolgende voorganger. Deze waarde kunnen we gewoon overnemen. Dit wordt genoteerd in de derde regel van de matrix g. Andersom gebeurt weer precies hetzelfde.
4.5.6
Deel 4
Stap 4 betreft de afstand (het aantal lege cellen) tot de achterligger in de andere baan. Hiervoor gaan we op zoek in matrix ad (hierin staan de verticale plaatsen van de voertuigen genoteerd) naar de zo groot mogelijk waarde kleiner dan de plek waar het voertuig zelf staat. Dit is immers eerste achterligger van het desbetreffende voertuig. Het aantal lege cellen tot dit voertuig wordt berekend en genoteerd in de onderste regel van de matrices g respectievelijk h.
4.5.7
Deel 5
In deel 5 komt de ontknoping van het model. Mag een voertuig van baan verwisselen van baan of niet en gebeurt dit ook daadwerkelijk? • Allereerst maken we een nieuwe matrix i. Als er aan het einde van stappen 5.1 en 5.2 nog steeds een 1 staat op een plek, betekent dit dat het voertuig op die plek van baan mag verwisselen. Hierbij ziet matrix i er hetzelfde uit als matrix e.
70
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE • Deel 5.1 kijkt alleen naar of de bovenste baan naar onderen mag gaan verplaatsen. Eerst wordt er nagegaan of er in de eerste rij van matrix g een 0 staat of niet op de plek van het voertuig. Is dit het geval dan komt er een 1 te staan in matrix i, anders een 0. Vervolgens wordt gekeken of de waarde voor het voertuig in de tweede regel kleiner of gelijk is als de waarde b1 die we zelf hebben ingevoerd. Is dit het geval dan wordt de waarde met 1 vermenigvuldigd. Is het niet het geval, dan wordt de waarde in i veranderd in een 0. Zo gaan we alle eerste 4 stappen door van de voorwaarden van een tweebaans CA. Staat er na al deze stappen nog steeds een 1, betekent dit dat aan alle voorwaarden is voldaan. In stap 5.2 gebeurt het omgekeerde. • Deel 5.3 introduceert de kans pw . Dit is de kans dat een automobilist daadwerkelijk van baan verwisselt. Als de willekeurige waarde tussen 0 en 1 die volgt uit rand kleiner is dan deze kans, dan verplaatst het voertuig zich inclusief zijn snelheid naar de matrix van de andere baan (van c naar d en omgekeerd). Omgekeerd gebeurt ook deze keer precies hetzelfde. Als laatste zorgen we nog dat de matrices c en d goed gedefinieerd zijn.
4.5.8
Deel 6
Dit laatste deel zorgt ervoor dat de principes die we in het eenbaansmodel nu worden toegepast op elke baan afzonderlijk. Dit zorgt er dus voor dat de voertuigen zich verplaatsen naargelang hun huidige snelheid, het aantal lege cellen voor zich en de kans p.
4.6
Variant 1 tweebaansmodel
Op dezelfde manier als dat we dat deden bij variant 1 eenbaansmodel kunnen we nu ook van dit tweebaansmodel een plaatje maken. Nu krijgen we niet ´e´en plaatje, maar twee, van elke baan 1. Dit vergt wat meer inzicht, maar alsnog kunnen we hier wellicht resultaten uit halen. De code van deze variant is de volgende: function [ R, S ] = tweebaanloop1 ( b1 , b2 , b3 , c , d , pw , p , vmax , s ) n=length ( c ) ; o=length ( d ) ; R=zeros ( n , s ) ; S=zeros ( o , s ) ; for f = 1 : n
4.6. VARIANT 1 TWEEBAANSMODEL i f c ( 1 , f )==0 R( 1 , f )=nan ; else R( 1 , f )=c ( 2 , f ) ; end end for f = 1 : o i f d ( 1 , f )==0 S ( 1 , f )=nan ; else S ( 1 , f )=d ( 2 , f ) ; end end [ a , b ] = tweebaan1 ( b1 , b2 , b3 , c , d , pw , p , vmax ) ; for f = 1 : n i f a ( 1 , f )==0 R( 2 , f )=nan ; else R( 2 , f )=a ( 2 , f ) ; end end for f = 1 : o i f b ( 1 , f )==0 S ( 2 , f )=nan ; else S ( 2 , f )=b ( 2 , f ) ; end end for i =3: s [ a , b ] = tweebaan1 ( b1 , b2 , b3 , a , b , pw , p , vmax ) ; f o r f =1:n i f a ( 1 , f )==0 R( i , f )=nan ; else R( i , f )=a ( 2 , f ) ; end end f o r f =1: o
71
72
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE i f b ( 1 , f )==0 S ( i , f )=nan ; else S ( i , f )=b ( 2 , f ) ; end end
end R S De enige nieuwe variabele in dit model is de s die staat voor het aantal simulaties dat je uit wil voeren. Tweebaan1 verwijst naar een variant van het tweebaansmodel. Alleen zijn nu de laatste de regels niet meer zichtbaar, maar zijn hier ; aan toe gevoegd. Dit voorkomt dat ze wel tevoorschijn komen in het resultaat.
4.7
Variant 2 tweebaansmodel
Ook variant 2 vertoont grote overeenkomsten met variant 2 eenbaansmodel. Enkele variabelen zijn toegevoegd en er is gezorgd in deze aanpassing dat er 2 matrices uitkomen. function [ R, S ] = tweebaanloop1 ( b1 , b2 , b3 , c , d , pw , p , vmax , s1 , s 2 ) n=length ( c ) ; o=length ( d ) ; R=zeros ( s2 , n ) ; S=zeros ( s2 , o ) ; [ a , b ] = tweebaan1 ( b1 , b2 , b3 , c , d , pw , p , vmax ) ; for i = 2 : s1 [ a , b ] = tweebaan1 ( b1 , b2 , b3 , a , b , pw , p , vmax ) ; end for i = 1 : s2 [ a , b ] = tweebaan1 ( b1 , b2 , b3 , a , b , pw , p , vmax ) ; for f = 1 : n i f a ( 1 , f )==0 R( i , f )=nan ;
4.7. VARIANT 2 TWEEBAANSMODEL else R( i , f )=a ( 2 , f ) ; end end for f = 1 : o i f b ( 1 , f )==0 S ( i , f )=nan ; else S ( i , f )=b ( 2 , f ) ; end end end R=R S=S
73
74
HOOFDSTUK 4. DE BOUW VAN EEN CA SIMULATIE
Hoofdstuk 5
Resultaten en conclusies Een wiskundig model is een wiskundige beschrijving van een systeem, vaak met doel om systematische analyse mogelijk te maken. [5] Dit is de definitie die Wikipedia geeft aan het begrip ‘wiskundig model’. Duidelijk hierin is de zinsnede met doel om systematische analyse mogelijk te maken. Het doel van een model is dus om inzicht te bieden in verschillende situaties. Ook met de modellen die wij in hoofdstuk 4 hebben gebouwd, zullen we verschillende situaties bekijken. We zagen in hoofdstuk 4 dat vooral het eenbaansmodel zich goed leende om overzichtelijke grafieken van te maken. In dit hoofdstuk zullen we, ondanks dat het tweebaansmodel een betere weergave van de realiteit is, werken met het eenbaansmodel.
5.1
Definitie
Om over files te kunnen spreken, moeten we duidelijk afspreken wat we verstaan onder een file. De VerkeersInformatieDienst definieert een file als een verzameling van drie verschillende soorten stagnerend verkeer [10]: • Langzaam rijdend verkeer is verkeer dat niet sneller rijdt dan 50 km/uur, maar doorgaans wel sneller rijdt dan 25 km/uur over een traject van minimaal 2 kilometer. • Stilstaand verkeerd verkeer is verkeer dat vrijwel overal langzamer rijdt dan 25 km/uur over een traject van minimaal 2 kilometer. • Tot slot is er langzaam rijdend tot stilstaand verkeer wat verkeer is dat langzaam rijdt over een grote lengte met daarin gebieden met stilstaand verkeer. Met deze definitie kunnen wij in het geval van CA niet zo veel. Toch moeten ook wij een definitie hebben om van een file te spreken. Een file is afhankelijk van de lengte van de weg en het aantal voertuigen op dit stuk weg. Wij 75
76
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
spreken van een file als op een stuk weg langzamer wordt gereden dan de vmax . Een verwoording voor de lengte van een file is dus:
1 3
van
Een file is de situatie waarin 8· aantalvoertuigen voertuigen langzamer rijden aantalcellen dan vmax (alles naar beneden afgerond). Natuurlijk mag de snelheid ook 3 lager zijn dan de zojuist bepaalde waarde en mag het aantal stilstaande voertuigen ook meer zijn dan de net bepaalde waarde. Dit hebben we bepaald naar analogie van de volgende situatie: stel dat we een weg hebben van 20 vakjes met daarop 10 voertuigen. We vonden dat we dan van 1 een file spreken als 4 voertuigen stilstaan achter elkaar. 10 20 = 2 en dut vermenigvuldigen met 8 levert de waarde 4 op. Op deze manier hebben we onze definitie van een file vastgesteld. Deze definitie is gebaseerd op de matrices die in de loop van dit hoofdstuk volgen.
5.2
Gedrag van een file (eenbaans)
Het gedrag van een file in een eenbaansbaan CA model wordt door verschillende variabelen be¨ınvloed: • De kans p waarmee een voertuig zijn snelheid 1 verlaagt (onafhankelijk van de afstand tot de voorganger). • De vmax , de maximale snelheid waarmee een voertuig mag rijden. • Het aantal voertuigen op de weg. • De lengte van de weg. We bekijken de invloed van verschillende van deze factoren op het gedrag van de file.
5.2.1
Invloed vmax op files
In dit onderdeel bekijken we in hoeverre de maximale snelheid verband houdt met het ontstaan en het verloop van files. Hiervoor laten we de waarden van vmax vari¨eren van 2 tot 5. We maken gebruik van de volgende beginconfiguratie die 19 cellen lang is en 10 voertuigen bevat: >> c=[1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1; 3 0 2 1 0 0 0 0 1 0 2 3 0 0 3 0 0 0 2] c = 1 3
0 0
1 2
1 1
0 0
0 0
1 0
0 0
1 1
0 0
5.2. GEDRAG VAN EEN FILE (EENBAANS)
1 2
1 3
0 0
0 0
1 3
0 0
77
1 0
0 0
1 2
Voor de simulatie maken we gebruik van het model cellbasisloop2.m. We laten dit model eerst 100 keer op de achtergrond lopen, en laten vervolgens 45 keer zien. Hiervoor maken we gebruik van p = 0.1. Het resultaat is:
lengte file = 4 voertuigen
78
Vmax = 2
vf ile = 0
>> cellbasisloop2(0.1,c,100,45,2) ans = 0 . 1 . . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 .
. 1 . . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 . 1
1 . . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 . 1 0
. . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 . . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 . 1 0 .
. 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 . 1 0 . 1 0 . 1 . 1 . . 2 0 0 . . 1 . . 2 0 . 1 . 1 0 . 1
1 0 . 1 0 . 1 . 1 0 0 . 1 . . . 1 0 . 1 0 . 1 . 1 . . 2 0 . . 1 . . . 2 0 . 1 . 1 0 . 1 .
0 . 1 0 . 1 . 1 0 0 . 1 . . 2 0 0 . 1 . . 1 . . . . 2 0 . 1 . . . . 2 0 . 1 . 1 0 . 1 . 1
. 1 0 . 1 . 1 0 0 . 1 . . 2 . . . 1 . 1 . . . 2 . 2 . . 1 . . . 2 0 0 . 1 . 1 0 . 1 . 1 .
1 0 . 1 . 1 0 0 . 1 . . 2 . 1 0 0 . 1 . . . 2 . . . 1 . . . 2 0 0 . . 1 . 1 . . 1 . . . .
0 . 1 . 1 0 0 . 1 . . 2 . 1 0 0 . 1 . . 2 . . . 2 0 . 1 . 2 0 0 . 1 . . 1 . 1 . . . 2 . 2
. 1 . 1 . . . 1 . . 2 . 1 0 0 . 1 . . 2 . 1 . 2 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 . 2 . 1 0
. . 1 . 1 . . . . 2 . 1 0 0 . 1 . . 2 . 1 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 . . . 1 0 0
. . . . . . . . 2 . 1 . . . 1 . . 2 . . . 1 0 . 1 . 1 0 0 . 1 . 1 . . 1 . . . . 2 0 0 0 .
1 . . 2 . 2 0 0 . 1 . 1 . . . . 2 . . 2 0 0 . 1 . 1 0 . . 1 . 1 . 1 . . . 2 . 2 0 0 0 . 1
. 1 0 . 1 0 0 . 1 . 1 . 1 . . 2 . . 2 0 0 . 1 . 1 0 . 1 0 . 1 . 1 . 1 . 2 . 1 0 0 . . 1 .
1 0 . 1 0 . . 1 . . . 1 . 1 . . . 2 0 0 . 1 . 1 0 . 1 . . 1 . 1 . 1 . . . 1 0 0 . 1 . . .
0 . 1 0 . 1 . . . 2 0 . 1 . 1 . 2 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . . 2
. 1 0 . 1 . . . 2 0 . 1 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 .
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
1 0 . 1 . . 2 0 . . 1 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1
lengte file = 4 voertuigen
vf ile = 1
>> cellbasisloop2(0.1,c,100,45,3) ans = 0 . 1 . . 2 . 1 0 0 0 . 1 . . . 2 . 1 . 1 . . . . . . 2 . 1 0 0 . 1 0 . 1 . 1 . 2 . . 2 0
. 1 . . 2 . 1 0 0 0 . 1 . . . 2 . 1 . 1 . . 2 . . 2 . . 1 0 0 . 1 0 . 1 . 1 . . . . 2 0 .
1 . . 2 . 1 0 0 0 . 1 . . 2 . . 1 . 1 . . 2 . 1 . . 1 0 0 0 . 1 0 . 1 . 1 . . 2 . 2 0 . 1
. . 2 . 1 0 0 0 . 1 . . 2 . 1 0 . 1 . . 2 . 1 . 1 0 0 0 0 . 1 . . 1 . 1 . . 2 . 1 0 . 1 .
. 2 . 1 0 0 0 . 1 . . 2 . 1 0 . 1 . . 2 . 1 . 1 0 0 0 0 . 1 . 1 0 . 1 . . 2 . 1 0 . 1 . 1
1 . 1 0 0 0 . 1 . . 2 . 1 0 . 1 . . 2 . 1 . 1 0 0 0 0 . 1 . 1 0 . 1 . . 2 . 1 0 . 1 . 1 .
. 1 0 0 . . 1 . . 2 . 1 0 . 1 . . 2 . 1 . 1 0 0 0 0 . 1 . 1 . . 1 . . 2 . 1 0 . 1 . . . 1
1 0 . . 1 . . . 2 . 1 0 . 1 . . 2 . 1 . 1 0 0 0 0 . 1 . 1 . 1 . . . 2 . 1 0 . 1 . . 2 0 0
0 . 1 . . . . 2 . 1 . . 1 . . 2 . 1 . 1 0 0 0 0 . 1 . 1 . 1 . 1 . 2 . 1 0 . 1 . . 2 0 0 .
. 1 . . . 2 . . . . 1 . . . 2 . 1 . 1 0 0 0 . . 1 . 1 . . . 1 . 1 . 1 0 . 1 . . 2 0 0 . 1
1 . . 2 0 . 1 . 2 0 . 1 . 2 . 1 . 1 0 0 0 . 1 0 . 1 . . 2 0 . 1 . 1 0 . 1 . . 2 0 0 . 1 0
. . 2 0 . 1 . 1 0 . 1 . . . 1 . 1 0 0 0 . 1 . . 1 . . 2 0 . 1 . 1 0 . 1 . . 2 0 0 . 1 0 .
. 2 . . 1 . 1 0 . 1 . . 2 0 . 1 0 0 0 . 1 . 1 . . . 2 0 . 1 . 1 . . 1 . . 2 0 0 . 1 0 . 1
1 . 1 0 . 1 0 . 1 . . 2 0 . 1 0 0 0 . 1 . 1 . . . 2 0 . 1 . 1 . 1 . . . 2 0 . . 1 0 . 1 .
. 1 0 . 1 0 . 1 . . 2 . . 1 0 0 0 . 1 . 1 . . 2 0 . . 1 . 1 . 1 . . . 2 0 . 1 0 0 . 1 . .
1 0 . 1 0 . 1 . . 2 . 1 0 0 0 0 . 1 . 1 . . 2 0 . 1 0 . 1 . . . . 2 0 0 . 1 0 0 . 1 . . 2
0 . 1 0 . 1 . . 2 . 1 0 0 0 0 . 1 . 1 . . 2 0 . 1 0 . 1 . . 2 . 2 0 0 . 1 0 0 . 1 . . 2 .
. 1 0 . 1 . . 2 . 1 0 0 0 0 . 1 . . . . 2 . . 1 . . 1 . . 2 . 1 0 0 . 1 0 . . 1 . . 2 . 1
79
1 0 . 1 . . 2 . 1 0 0 0 . . 1 . . 2 . 2 . 1 . . 1 . . . 2 . 1 0 0 . 1 0 . 1 . . . 2 . . .
5.2. GEDRAG VAN EEN FILE (EENBAANS)
Vmax = 3
lengte file = 4 voertuigen
80
Vmax = 4
vf ile = 1
>> cellbasisloop2(0.1,c,100,45,4) ans = 0 0 . 1 0 . 1 . . 2 . . 3 . . 3 . 1 . 1 0 0 0 0 0 . 1 0 . 1 . . 2 . . . . 3 . . 3 0 0 0 0
0 . 1 . . 1 . . 2 . . 2 . . . . 1 . 1 0 0 0 0 0 . 1 0 . 1 . . 2 . . 2 . 3 . . 2 0 0 0 0 0
. 1 . 1 . . . 2 . . 2 . . 2 0 0 . 1 0 0 0 0 0 . 1 . . 1 . . 2 . . 2 . . . . 2 0 0 0 0 0 .
. . 1 . 1 . 2 . . 2 . . 2 0 0 . 1 0 0 0 0 0 . 1 . 1 . . . 2 . . . . . 2 . 2 0 0 0 0 0 . 1
0 0 . 1 . 1 . . 2 . . 2 0 0 . 1 0 0 0 0 0 . 1 . 1 . . . 2 . . . 3 . 2 . 1 0 0 0 0 0 . 1 .
. . 1 . . . . 2 . . 2 0 0 . 1 0 0 0 0 0 . 1 . 1 . . 2 . . . . 3 . 1 . 1 0 0 0 0 0 . 1 . 1
. . . . 2 . 2 . . 2 0 0 . 1 0 0 0 0 0 . 1 . 1 . . 2 . . . . 3 . 1 . 1 0 0 0 0 0 . 1 . 1 .
1 0 . 2 . . . . 2 0 0 . 1 0 0 0 0 0 . 1 . 1 . . 2 . . 2 . 3 . 1 . 1 0 0 0 0 0 . 1 . 1 . 1
0 . 1 . . 2 . 2 0 0 . 1 0 0 0 0 0 . 1 . . . . 2 . . 2 . . . 1 . 1 0 0 0 0 0 . 1 . 1 . . .
. 1 . . 2 . 1 0 . . 1 0 0 0 0 0 . 1 . . 2 . 2 . . 2 . . . . . 1 0 0 0 0 0 . 1 . 1 . . 2 .
1 . . 2 . 1 0 . 1 0 0 0 0 0 . . 1 . . 2 . . . . 2 . . . 3 0 0 0 0 0 0 . . 1 . 1 . . 2 . 1
. . 2 . 1 0 . 1 0 0 0 0 0 . 1 . . . 2 . . . . . . . . 3 0 0 0 0 0 0 . 1 0 . 1 . . 2 . 1 .
. 2 . 1 0 . 1 0 0 0 0 0 . 1 . 1 . 2 . . . 3 . 3 . . 3 0 0 0 0 0 0 . 1 0 . 1 . . 2 . 1 . .
2 . 1 0 . 1 0 0 0 0 . . 1 . 1 . . . . . 3 . . . . 3 0 0 0 0 0 0 . 1 0 . 1 . . 2 . 1 . . 2
. 1 0 . 1 0 0 . . . 1 . . 1 . . 2 . . 3 . . 2 . 2 0 0 0 0 0 0 . 1 0 . 1 . . 2 . . . . 2 .
1 0 . 1 0 0 . 1 0 . . . . . . 2 . . 3 . . 2 . 1 0 0 0 0 0 . . 1 . . 1 . . 2 . . 2 . 2 . 1
0 . 1 0 0 . 1 0 . 1 . 2 . . 2 . . . . . 2 . 1 0 0 0 0 0 . 1 0 . 1 . . . 2 . . 2 . . . . .
. 1 0 0 . 1 0 . 1 . . . . . . . . 3 . 2 . 1 0 0 0 0 0 . 1 0 . 1 . . . 2 . . . . . . . 2 0
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
1 0 0 . 1 0 . 1 . . 2 . . . . . 3 . 1 . 1 0 0 0 0 0 . 1 0 . 1 . . 2 . . . . 3 . . 3 0 0 0
lengte file = 4 voertuigen
vf ile = 0
>> cellbasisloop2(0.1,c,100,50,5) ans = 0 . 1 . 1 0 . 1 . . 1 0 0 0 . 1 . . 2 . . . . . 1 0 . 1 . 1 . . 1 0 0 0 0 . 1 . 1 . 2 . 1
. 1 . 1 0 . 1 . 1 0 0 0 . . 1 . . 2 . . . . 3 0 . . 1 . . . 1 0 0 0 0 0 . 1 . 1 . 1 . 1 .
1 . 1 0 . 1 . 1 0 0 0 . 1 . . . 2 . . 2 . 3 0 . 1 . . . 2 0 0 0 0 0 0 . 1 . . . 1 . 1 . .
. 1 0 . 1 . 1 0 0 0 . 1 . . . 2 . . 2 . 1 0 . 1 . 1 . 2 0 0 0 0 0 . . 1 . . 2 0 . 1 . . 2
0 0 . 1 . 1 0 0 . . 1 . . 2 . . . 2 . 1 0 . 1 . 1 . 1 0 0 0 0 0 . 1 . . . 2 . . 1 . . 2 .
. . 1 . 1 0 . . 1 . . . 2 . 1 . 2 . 1 0 . 1 . 1 . 1 0 0 0 0 0 . 1 . . . 2 . 1 . . . 2 . .
1 . . 1 0 . 1 . . . . 2 . 1 . 1 . 1 0 . 1 . 1 . 1 0 0 0 0 0 . 1 . . 2 . . . . . . 2 . . .
. 1 0 0 . 1 . . . 2 . . . . 1 . 1 . . 1 . 1 . 1 0 0 0 0 0 . 1 . . 2 . . . 2 . 2 . . . . 3
0 . . . 1 . . 2 . . . . 2 . . 1 . 1 0 . 1 . 1 0 0 0 0 . . 1 . . 2 . . 2 0 . 1 . . . . 3 0
. 1 . . . . 2 . 1 . 2 0 . 1 0 . 1 0 . 1 . 1 0 0 0 0 . 1 . . . 2 . . 2 0 . 1 . . 2 . 3 0 0
1 . 1 . . 2 . 1 . 1 0 . 1 . . 1 0 . 1 . 1 0 0 0 0 . 1 . 1 . 2 . . 2 0 . 1 . . 2 . 1 0 0 0
. 1 . 1 . . 1 . 1 . . 1 . 1 0 0 . 1 . 1 0 0 0 . . 1 . 1 . . . . 2 0 . 1 . . 2 . 1 0 0 0 0
0 . 1 . 1 0 . 1 . 1 . . 1 0 0 . 1 . 1 0 0 0 . 1 . . . . . 2 . 2 0 . 1 . . 2 . 1 0 0 0 0 0
. 1 . 1 . . 1 . 1 . 1 0 0 0 . 1 . 1 0 0 0 . 1 . . . 2 . 2 . 1 0 . 1 . . 2 . 1 0 0 0 0 0 .
1 . 1 . 1 0 . 1 . 1 0 0 . . 1 . 1 0 0 0 . 1 . . 2 . . . . 1 . . 1 . . 2 . 1 0 0 0 0 0 . 1
. 1 . 1 0 . 1 . 1 0 0 . 1 . . 1 0 0 0 . 1 . . 2 . . . . . . 1 . . . 2 . 1 0 0 0 0 0 . 1 .
0 . 1 0 . 1 . 1 0 0 . 1 . 1 0 0 0 . . 1 . . 2 . . 2 . 3 0 . . . . 2 . 1 0 0 0 0 0 . 1 . .
. 1 0 . 1 . 1 0 0 . 1 . 1 0 0 0 . 1 . . . 2 . . 2 . 1 0 . 1 . 2 0 . 1 0 0 0 0 . . 1 . . 2
81
1 0 . 1 . 1 0 . . 1 . 1 0 0 0 . 1 . . . 2 . . 2 . 1 0 . 1 . 1 0 . 1 0 0 0 0 . 1 . . . 2 .
5.2. GEDRAG VAN EEN FILE (EENBAANS)
Vmax = 5
82
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
Conclusies We analyseren elke matrix. De matrix van vmax = 2 is redelijk verdeeld. We zien wel rijen van nullen (dit zijn stilstaande voertuigen) ontstaan, maar deze worden niet langer dan drie. Om deze reden kunnen we bij vmax = 3 niet spreken van files. Een file moet in deze situatie immers wel vier voertuigen bedragen. Bij vmax = 3 zien we de lijn nullen al duidelijker door de figuur bewegen. De langste rij met nullen (en dus stilstaande voertuigen achter elkaar) is hier vier nullen lang. We vinden 21 rijen met een file. De gemiddelde lengte van een file is 4,1 voertuigen. Ondanks dat de maximale snelheid 3 is, zijn we tot nu toe nog geen voertuigen met snelheid 3 tegen gekomen. Deze komen we echter wel tegen bij vmax = 4. Aan de andere kant is de file in deze figuur aanzienlijk duidelijker zichtbaar. De langste file heeft hier een lengte van 5, wat tevens betekent dat je, als je achteraan in de file aansluit, minimaal 5 tijdseenheden moet wachten totdat je weer kan gaan rijden. Ook in deze figuur wordt maximaal de snelheid 3 bereikt. We vonden 36 rijen met een file erin. De gemiddelde lengte is 5,11 voertuigen. Bij vmax = 5 vinden we 27 rijen met files met een gemiddelde lengte van 4,8 voertuigen. Tussen vmax = 4 en vmax = 5 zien we weinig verschillen. Een relatie die kan worden gelegd is dat de verandering in vmax hier geen verandering meer teweeg brengt vanwege andere factoren. Zo kan de lengte van de weg worden aangewezen, of het aantal voertuigen dat zich op deze weg bevindt. Als je met 10 voertuigen op 19 vakjes rijdt is het immers vrij moeilijk om een snelheid 5 te krijgen, omdat de kans dat het aantal lege vakjes tot de voorganger kleiner is dan 5, vrij groot is. Het verschil tussen de gemiddelde lengte van een file bij vmax = 4 en vmax = 5 is verklaren door te zeggen dat beide situaties een bepaalde toevalsfactor hebben. De kans p zorgt voor steeds weer andere plaatjes. Hierdoor veranderen ook de waarden zoals de gemiddelde lengte van de files. Bij vmax = 2 zien we dat de voertuigen vrij gelijk zijn verdeeld met af en toe een rij stilstaande voertuigen. Er is dus een relatie tussen vmax en het ontstaan van files. Er zijn echter ook andere factoren die hierbij een rol spelen. Dit betekent dus dat als je de maximale snelheid verlaagt er minder tot geen files ontstaan. De gemiddelde lengtes van de files zijn dus: vmax v max v max v max
=2 =3 =4 =5
De visualisatie hiervan is:
gemiddelde gemiddelde gemiddelde gemiddelde
lengte lengte lengte lengte
file: file: file: file:
0, 4, 1 , 5, 11 , 4, 8 .
5.2. GEDRAG VAN EEN FILE (EENBAANS)
83
Uit de bovenstaande matrices is ook af te leiden hoe een file zich beweegt. Een file beweegt zich namelijk naar achteren. Het voorste voertuig heeft geen stilstaande voertuigen meer voor zich en kan dus zijn snelheid verhogen met 1. Het voertuig wat achteraan aansluit heeft echter ineens een voertuig direct voor zich staan en moet dus zijn snelheid matigen tot 0. Op deze manier beweegt een file naar achteren. Een volgende vraag is: ”Hoe ontstaat een file en hoe lost hij weer op?”Om een voorbeeld te geven van hoe een file aangroeit kijken we naar matrix vmax = 3, naar de derde en vierde rij, kolom 5 t/m 7. In de derde rij zien we dat we een 1 gevolgd door een 0. In de vierde rij hebben we een 1 gevolgd door twee nullen. Het geheel is ´e´en cel naar links uitgebreid. Dit betekent dat aan de achterkant wel een voertuig is aangeschoven, maar aan de voorkant niet een voertuig is weg gegaan. Het voorste voertuig heeft ´e´en lege cel voor zich en dus belemmert niks hem om een snelheid 1 aan te nemen. De enige reden dat het voertuig stil is blijven staan is dat de snelheid door kans p weer verlaagd is met 1. Dat wil zeggen dat degene die vooraan de file rijdt niet alert is en doorrijdt, maar nog even blijft hangen. Vergelijk het bijvoorbeeld met een automobilist die de file zo zat is dat hij in slaap is gevallen en dus niet direct reageert op het wegrijden van zijn voorganger. Zo groeit een file. Gemiddeld genomen verplaatst de file zich elke tijdseenheid ´e´en naar links. Dit is niet altijd het geval (zoals te zien in het begin van regel 9 en 10 van vmax = 5). In deze regels is te zien dat er aan de achterkant geen voertuig aanschuift. Zo wordt de file 1 voertuig minder lang. Op deze manier krimpt de file.
84
5.2.2
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
Invloed van p op files
We werken weer met beginconfiguratie c zoals gedefinieerd in paragraaf 5.2.1. We gebruiken een maximumsnelheid van 2. We zagen namelijk in bovenstaande 5.2.1, dat bij deze snelheid het aantal voertuigen op de weg redelijk was verdeeld over de hele weg. Verder laten we het model weer 100 keer draaien op de achtergrond en laten we 45 keer zien. De waarden van p vari¨eren we. Voor de eerste situatie gebruiken we gewoon de matrix die we ook in de vorige paragraaf verkregen bij een maximale snelheid van vmax = 2.
lengte file = 4 voertuigen
vf ile = 0
>> cellbasisloop2(0.1,c,100,45,2) ans = 0 . 1 . . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 .
. 1 . . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 . 1
1 . . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 . 1 0
. . 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 . . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1 . 1 0 .
. 2 0 . 1 0 . 1 . 1 0 0 . 1 . 1 . 1 0 . 1 0 . 1 . 1 . . 2 0 0 . . 1 . . 2 0 . 1 . 1 0 . 1
1 0 . 1 0 . 1 . 1 0 0 . 1 . . . 1 0 . 1 0 . 1 . 1 . . 2 0 . . 1 . . . 2 0 . 1 . 1 0 . 1 .
0 . 1 0 . 1 . 1 0 0 . 1 . . 2 0 0 . 1 . . 1 . . . . 2 0 . 1 . . . . 2 0 . 1 . 1 0 . 1 . 1
. 1 0 . 1 . 1 0 0 . 1 . . 2 . . . 1 . 1 . . . 2 . 2 . . 1 . . . 2 0 0 . 1 . 1 0 . 1 . 1 .
1 0 . 1 . 1 0 0 . 1 . . 2 . 1 0 0 . 1 . . . 2 . . . 1 . . . 2 0 0 . . 1 . 1 . . 1 . . . .
0 . 1 . 1 0 0 . 1 . . 2 . 1 0 0 . 1 . . 2 . . . 2 0 . 1 . 2 0 0 . 1 . . 1 . 1 . . . 2 . 2
. 1 . 1 . . . 1 . . 2 . 1 0 0 . 1 . . 2 . 1 . 2 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 . 2 . 1 0
. . 1 . 1 . . . . 2 . 1 0 0 . 1 . . 2 . 1 . 1 0 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 . . . 1 0 0
. . . . . . . . 2 . 1 . . . 1 . . 2 . . . 1 0 . 1 . 1 0 0 . 1 . 1 . . 1 . . . . 2 0 0 0 .
1 . . 2 . 2 0 0 . 1 . 1 . . . . 2 . . 2 0 0 . 1 . 1 0 . . 1 . 1 . 1 . . . 2 . 2 0 0 0 . 1
. 1 0 . 1 0 0 . 1 . 1 . 1 . . 2 . . 2 0 0 . 1 . 1 0 . 1 0 . 1 . 1 . 1 . 2 . 1 0 0 . . 1 .
1 0 . 1 0 . . 1 . . . 1 . 1 . . . 2 0 0 . 1 . 1 0 . 1 . . 1 . 1 . 1 . . . 1 0 0 . 1 . . .
0 . 1 0 . 1 . . . 2 0 . 1 . 1 . 2 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . . 2
. 1 0 . 1 . . . 2 0 . 1 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 .
85
1 0 . 1 . . 2 0 . . 1 . 1 . 1 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 . . 2 0 0 0 . 1 . . 2 0 . 1
5.2. GEDRAG VAN EEN FILE (EENBAANS)
p = 0.1
lengte file = 4 voertuigen
86
p = 0.25
vf ile = 0
>> cellbasisloop2(0.25,c,100,45,2) ans = 0 . 1 . 1 0 . 1 . . 1 0 . 1 0 0 0 . 1 . 1 . . 2 0 0 . . 1 . 1 0 0 . . 1 0 . 1 0 0 0 0 0 .
. 1 . 1 0 . 1 . 1 0 0 . 1 0 . . . 1 . . . . 2 0 0 . 1 . . 1 0 . . 1 . . . 1 0 0 0 0 . . 1
1 . 1 . . 1 . 1 0 0 . 1 . . 1 0 . . . 2 . 2 0 0 . 1 . 1 0 0 . 1 . . 1 0 0 0 0 0 0 . 1 . .
. 1 . 1 0 . 1 0 0 . 1 . 1 0 0 . 1 . 2 . 1 0 0 . 1 . 1 0 . . 1 . 1 0 0 0 0 0 . . . 1 . . .
. . . . . 1 0 0 . 1 . 1 0 0 . 1 . . . 1 0 0 . 1 . 1 . . 1 . . 1 0 0 0 0 . . 1 . . . . 2 .
1 . 2 0 0 0 . . 1 . 1 0 . . 1 . . 2 0 0 0 . 1 . 1 . 1 0 . 1 0 0 0 0 0 . 1 . . . . . 2 . 1
. 1 0 0 . . 1 0 . 1 0 . 1 . . . 2 0 0 0 . 1 . . . 1 0 . 1 0 0 0 0 . . 1 . 1 . 2 . . . 1 .
1 0 0 . 1 0 . . 1 0 . 1 . 1 . 2 0 0 0 . 1 . . 2 0 0 . 1 0 0 0 0 . 1 . . . . . . 1 . . . 1
0 0 . 1 0 . 1 0 0 . 1 . 1 . 1 0 0 0 . 1 . . 2 0 0 . 1 0 . . . . 1 . . . 2 . 2 . . . . . .
0 . 1 . . 1 0 . . 1 . . . 1 0 0 . . 1 . . 2 0 0 . 1 0 . 1 . . . . . 2 . . . . . . 2 . . .
. 1 . 1 0 0 . 1 . . . 2 0 0 0 . 1 . . . 2 0 0 . 1 . . 1 . . . . . 2 . 1 . 2 . 2 . . 1 0 0
. . 1 . . . 1 . . . 2 0 0 . . 1 . . . 2 . . . 1 . 1 . . . 2 . . . . 1 . 1 . 1 . 1 0 0 0 .
. . . 1 . . . . 2 0 0 . . 1 . . . 2 . . 1 . . . 1 . . . 2 . 1 . . . . . . . . 1 0 0 0 . 1
1 . . . 1 . . 2 0 0 . 1 . . 1 . 2 . 1 0 . 1 0 . . . 2 . . 1 . 1 0 0 . 2 . 2 0 0 0 0 . 1 0
. 1 0 0 . 1 0 0 0 . 1 . . . . 1 . 1 . . 1 0 . 1 . 2 . 1 0 . 1 0 0 . 1 . 1 0 0 0 0 . 1 0 0
1 0 0 . 1 0 0 0 . 1 . . 2 0 . . 1 . 1 0 0 . 1 . 1 . 1 . . 1 0 . . 1 . 1 0 0 . . . 1 0 0 0
0 0 . 1 . . . . 1 . . 2 . . 1 0 . 1 0 0 . 1 . 1 . . . 1 0 0 . 1 0 . 1 0 0 . 1 0 0 0 0 0 .
0 . 1 . 1 . . . . . 2 . 1 0 0 . 1 0 0 . 1 . 1 . . 2 0 0 0 . 1 0 . 1 0 0 . 1 0 . . . . . 1
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
. 1 . 1 . 1 0 . . 2 . 1 0 . . 1 0 0 . 1 . 1 . . 2 0 0 0 . 1 . . 1 0 0 . 1 0 . 1 0 0 0 0 0
lengte file = 4 voertuigen
vf ile = 0
>> cellbasisloop2(0.5,c,100,45,2) ans = 1 . . . . 1 . . . 2 0 0 . . 1 0 . . 1 0 0 0 0 0 0 0 0 0 0 0 0 . . . . 1 . . 1 . 1 0 . . 1
. 1 0 0 . . 1 0 . . . . 1 0 0 . 1 0 0 0 0 0 0 0 0 0 . . . . . 1 . . . . 1 . . 1 . . 1 . .
1 . . . 1 . . . 1 0 0 0 . . . 1 0 0 0 0 0 0 0 0 0 . 1 . . . . . . . . . . . . . 1 . . 1 .
. 1 0 . . 1 0 0 0 0 0 . 1 0 0 0 0 0 0 0 0 0 . . . 1 . 1 . . . . 2 . . . . 2 . . . 1 . . 1
. . . 1 0 0 0 . . . . 1 0 0 0 0 0 0 0 0 0 . 1 . . . 1 . . . . . . 1 . . . . 1 . . . . . .
2 0 0 0 . . . 1 0 0 0 0 0 0 . . . . . . . 1 . . . . . . 2 . . . . . . . . . . 1 . . 2 . .
0 0 . . 1 0 0 0 0 0 0 . . . 1 . . . . . . . . 2 . . . 2 . . . . . . 2 0 . . . . . . . 1 .
0 . 1 0 0 0 0 0 0 0 . 1 0 . . . . . . . . . 2 . 1 . . . . 2 . . . . . . 1 . . . 2 . . . 1
. 1 0 0 0 0 0 . . . 1 . . 1 . 2 0 . . . . . . 1 . 1 . . 2 . 1 0 0 0 0 . . 1 . . . 1 0 0 0
0 0 0 0 0 . . 1 . . . 1 . . 1 0 . 1 . . . . . . . . . . . . . . . . . 1 . . 1 0 0 0 0 0 0
. . . . . 1 . . . . . . 1 0 . . 1 . 1 0 0 0 0 . 2 . 2 . . 2 0 0 . . . . 1 0 0 0 0 0 0 0 0
. . . . . . 1 . 2 0 0 0 . . 1 0 . 1 0 . . . . 1 . 1 . 1 0 0 . . 1 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 . . . 1 0 0 0 . 1 0 0 . 1 . . 1 0 . . . . . 1 0 0 . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 .
0 0 . . 1 0 0 0 . . . 1 . . . 1 . 1 0 0 . 1 0 . 2 . . . . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 . 1
. . 1 . . . . . 1 0 0 . 1 . . . 1 . . . 1 . . 1 . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . . 1 .
. . . 1 0 0 0 0 0 . . 1 . 1 . . . 1 . . . 1 0 . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 . 1 0 0 . . .
0 0 0 0 0 0 0 0 . 1 . . . . 1 0 . . 1 0 . . . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 . 1 0 0 . 1 . 2
0 0 0 . . . . . 1 . . . 2 0 0 . 1 0 0 . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . 1 0 . . 1 . 1 0
87
. . . 1 0 . . . . . 2 0 0 0 . 1 0 0 . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . 1 0 . 1 . . 1 0 .
5.2. GEDRAG VAN EEN FILE (EENBAANS)
p = 0.5
88
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
Conclusies Uit de bovenstaande matrices is af te lezen dat hoe groter de kans p is, hoe langer de files ook zijn. We zien bij p = 0.1 nog helemaal geen files. Bij p = 0.5 is dit veranderd in steilere verplaatsing van de file. Dit betekent dat de file zich minder snel naar achter beweegt. Dit zorgt ervoor dat als je eenmaal in de file staat, je er ook langer in staat. Sta je, als je achteraan in de file aansluit, bij p = 0.1 minimaal 4 tijdseenheden op dezelfde plek, bij p = 0.5 is dit aantal toegenomen tot maar liefst 15 tijdseenheden op dezelfde plek. Bij p = 0.5 is de maximale lengte van een file toegenomen tot 7 van de 10 voertuigen. De verhouding tussen de kans p en de gemiddelde lengte van een file in die situatie kunnen we als volgt noteren:
p = 0.10 p = 0.25 p = 0.50
gemiddelde lengte file: 0 , gemiddelde lengte file: 4 , gemiddelde lengte file: 5, 75 .
De visualisatie hiervan ziet er als volgt uit:
We kunnen de situatie schetsen dat bij p = 0.1 iedereen alert is (het is bijvoorbeeld overdag). Bij p = 0.5 zijn de meeste mensen niet zo alert (bijvoorbeeld ’s avonds laat). Hoe hoger de kans p is, hoe langer de files zijn en hoe langzamer deze zich naar achteren bewegen. Hierbij is het belangrijk om p experimenteel te benaderen voor een zo realistisch mogelijke weergave van de realiteit.
5.2. GEDRAG VAN EEN FILE (EENBAANS)
5.2.3
89
Invloed beperking Vmax gedeelte weg
Iedereen kent de situatie wel: Je rijdt op de snelweg en in de verte zie je borden boven de weg hangen. De maximale snelheid wordt verlaagd tot bijvoorbeeld 50 km/h. Vaak is dit een voorteken van een file en sta je dus na enkele minuten daadwerkelijk in de file. Veel mensen geeft deze situatie het gevoel dat de snelheidsbeperking niet de file beperkt, maar er juist voor zorgt dat deze groter wordt. Maar is dit juist? We gaan hierbij het model gebruiken uit paragraaf 4.4 waarbij we op een deel van de weg een andere maximale snelheid kunnen zetten. Resultaten vmax1 = 1 en vmax2 = 4 Voor deze situatie werken we met beginconfiguratie c: c = 1 3
0 0
0 0
0 0
0 0
1 2
0 0
0 0
0 0
1 1
0 0
1 3
0 0
0 0
Zoals te zien in bovenstaande matrix is de weg 14 cellen lang en rijden hier 4 voertuigen op. Er rijden bewust weinig voertuigen. Hierdoor is duidelijk aan te wijzen dat de snelheid wordt verlaagd door de verandering in maximale snelheid en niet door de onderlinge afstand. Verder nemen we de waarden p = 0.1, vmax1 = 1, vmax2 = 4. Deze snelheidsbeperking geld voor de kolommen 6 tot en met 12. We draaien eerst 100 simulaties op de achtergrond en vervolgens laten we de volgende 45 situaties zien.
90
lengte file = 2 voertuigen
vf ile = 0
>> e=cellbasisloop2vmax(0.1,c,6,12,100,50,1,4) e = . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . 2 . . . . . . 2 . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 3 . 3 . . . 3 . 3 . 3 . . 3 . . 3 . . . . . . 3 . . . 3 . 3 . . . 3 . . . . . . . . 3 .
. . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . 3 . . . . . . 3 . . . .
1 . 2 . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 . . . . 1 . . .
. 1 . 1 . 1 . . . . . . . . . 3 0 . 3 . . . . . . 3 . . . 3 . 3 0 . 2 0 . 1 . . . . 1 . 3
1 . 1 . 1 . 1 . 4 . 4 . 4 0 0 0 . 1 . 1 0 0 0 . 3 . 1 . . . 1 0 . 1 . . 1 . 1 0 0 . . 1 .
. 1 . 1 . 1 . 1 . 1 . 1 0 0 0 . 1 . 1 0 0 0 . 1 . 1 . 1 0 . . . 1 . 1 0 . 1 0 0 . 1 . . 1
. . 1 . 1 . 1 . 1 . 1 0 0 . . 1 . 1 0 0 . . 1 . 1 . 1 0 . 1 . . . 1 0 . 1 0 0 . 1 . 1 . .
. . . 1 . 1 . 1 . 1 0 . . 1 . . 1 0 0 . 1 . . 1 . 1 0 . 1 . 1 . . . . 1 . . . 1 . 1 . 1 .
1 . . . 1 . 1 . 1 . . 1 . . 1 . . . . 1 . 1 . . 1 0 . 1 . 1 . 1 . . . . 1 . . . 1 . 1 . 1
. 1 . . . 1 . 1 . 1 . . 1 . . 1 . . . . 1 . 1 . . . 1 . 1 . 1 . 1 . . . . 1 . . . 1 . 1 .
. . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . 1 . . . . . . 1 . . . . . .
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
2 . 2 . . . 2 . 2 . 2 . . 2 . . 2 . . . . . . 2 . . . 2 . 2 . . . 2 . . . . . . . . 2 . 2
5.2. GEDRAG VAN EEN FILE (EENBAANS)
91
Conclusies Wellicht zullen sommigen van u het vreemd vinden dat in de kolommen 6 t/m 8 voertuigen voorkomen met een snelheid groter dan 1. We hadden immers gesteld in het model dat vmax = 1. Dit is te verklaren op de volgende manier. Bij het doorrekenen van het model worden eerst alle stappen uitgevoerd en vervolgens worden de voertuigen verplaatst. Wat de situatie na deze verplaatsing is wordt weergegeven. Heeft een voertuig dus in kolom 5 een snelheid van 2 en heeft deze 3 lege vakjes voor zich, zal deze zijn snelheid verhogen tot 3 (uitgaande dat het voertuig zijn snelheid niet met kans p verlaagt) en zal het voertuig zich verplaatsen naar kolom 8. Hier staat hij dan met snelheid 3. Dit wordt weergegeven. Pas bij de volgende ronde wordt deze snelheid aangepast naar een vmax van 1. Dit sluit aan bij de realiteit. Veel voertuigen zullen immers als ze hun snelheid hoger kunnen houden dan de snelheid op de borden, dit doen. Op deze manier schieten zij een stukje door. We verdelen de matrix in 3 delen. Kolom 1 t/m 5, kolom 6 t/m 12 en kolom 13,14. Bekijken we kolom 1 t/m 5 dan kunnen we zeggen dat hier nooit voertuigen achter elkaar stilstaan in deze 45 situaties. Voertuigen in deze cellen halen vaak een snelheid van 3. Kolom 6 t/m 12 zien er anders uit. Kolom 6 en 7 verschillen nog niet significant met het eerste deel. Dit is te verklaren door de grote snelheid van de voertuigen. Veel voertuigen schieten gewoonweg “over deze cellen heen”. Een veranderde maximum snelheid in deze cellen heeft dus geen effect. De kolommen 8 t/m 12 verschillen echter wel significant met de kolommen 1 t/m 6. Hier zien we zelfs in sommige situaties 3 van de 4 voertuigen achter elkaar staan. In deze cellen is een snelheid van 0 geen uitzondering. In de laatste 2 kolommen zien we dat de situatie zich weer herstelt. In deze kolommen komen geen nullen meer voor. De snelheid bouwt zich hier weer op. De gemiddelde snelheid in de kolommen 1 tot en met 5, 13 en 14 is afgerond 2. De gemiddelde snelheid in de kolommen 6 tot en met 12 is 1. Hier is dus een verschil in te zien wat wordt veroorzaakt door de veranderde maximumsnelheid. Een conclusie die we dus kunnen trekken is dat een verlaging van de vmax als er voor de andere voertuigen voldoende ruimte is, leidt tot grotere kans op files. Deze files bevinden zich op het gebied waar ook de vmax is verlaagd. Kanttekening bij deze conclusie is dat we de situatie hebben bekeken voor vrij weinig voertuigen op een relatief grote weg. Deze kunnen een grote snelheid behalen als ze niet worden gehinderd door een vmax . Door de aanpassing van de maximale snelheid op een bepaald stuk weg worden zij echter gehinderd, en dus ontstaat er een file. Ook is een maximale snelheid
92
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
van 1 meteen zeer drastisch te noemen. In dit opzicht is deze situatie niet helemaal te vergelijken met de matrixborden boven de weg. Het is echter een kwestie van andere waarde voor de variabelen om een realistischere situatie te simuleren.
5.3
Gedrag van een file (tweebaans)
Het tweebaansmodel benadert de werkelijkheid meer dan het eenbaansmodel. Het is dus interessant om te bekijken hoe een file zich gedraagt in twee banen in bepaalde situaties.
5.3.1
Twee banen = dubbele capaciteit?
Het eenbaansmodel bestaat uit ´e´en baan. Het tweebaansmodel uit twee banen. Dit is allemaal vrij logisch. Maar is het zo dat bij een tweebaansweg ook de capaciteit verdubbelt ten opzichte van een eenbaansweg? We proberen een situatie te verkrijgen die vergelijkbaar is met die van vmax = 4 in paragraaf 5.2.1. Hierbij werken we met een configuratie van 19 cellen. De variabelen nemen we zoveel mogelijk hetzelfde als in het resultaat bij vmax = 4. Dit betekent dat p = 0.1, vmax = 4, we draaien het model 100 keer op de achtergrond en laten 45 keer zien. Voor de variabelen die in het eenbaansmodel niet voorkomen nemen we de volgende waarden: b1 = 2, b2 = 2, b3 = 2 en pw = 0.85. Dit zijn waarden die de werkelijkheid goed vertegenwoordigen. We werken met het model tweebaanloop1 uit paragraaf 4.6. Gemiddeld genomen staan in de matrix van vmax = 4 in paragraaf 5.2.1 4 voertuigen per regel stil. We gaan nu dus op zoek naar het aantal voertuigen waarbij we gemiddeld 8 stilstaande voertuigen waarnemen. In de resultaten stelt matrix c de bovenste van de 2 banen (oftewel de linker baan) voor. Matrix d stelt de onderste oftewel rechter baan voor.
vf ile = 1
. 1 . 1 . 1 0 . 1 0 0 0 . . 1 . 1 0 . 1 . 2 . 1 . . 1 0 0 0 0 . 1 . 1 0 . 1 . 1 . 1 . . .
1 . 1 . 1 . . 1 0 0 0 . 1 0 . 1 0 . 1 . 1 . 1 . 1 0 0 0 0 0 . 1 . 1 0 . 1 . 1 . 1 . . . 2
. 1 . 1 . 1 0 0 0 0 . 1 0 . 1 0 . 1 . 1 . 1 . 1 0 0 0 0 0 . 1 . 1 0 . 1 . 1 . . . . 2 0 .
1 . 1 . 1 0 0 0 0 . 1 0 . 1 . . 1 . 1 . 1 . 1 0 0 0 0 . . 1 . 1 0 . 1 . . . . 2 . 2 0 . 1
. 1 . 1 0 0 0 0 . 1 0 . 1 . 1 . . 1 . 1 . 1 0 0 0 0 . 1 . . 1 0 . 1 . . 2 . 2 . 1 . . 1 0
. . 1 0 0 0 0 . 1 0 . 1 . 1 . 1 0 . 1 . 1 0 0 0 0 . 1 . . 0 0 . 1 . . 2 . . . . . 1 0 0 0
2 0 0 0 0 0 . 1 0 . 1 . 1 . 1 0 . 1 . 1 0 0 0 . . 1 . . 2 0 . 1 . . 2 . . 2 . 2 0 0 0 0 .
0 0 0 0 0 . 1 . . 1 . 1 . 1 0 . 1 . 1 0 0 0 . 1 . . . 2 0 0 1 . . 2 . . 2 . 1 0 0 0 0 . 1
0 0 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 0 0 0 . 1 . . . 2 0 0 0 . . 2 . . 2 . 1 0 0 0 0 . 1 0
0 0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 0 0 . . 1 . . 2 0 0 0 0 . . 2 . . 2 . 1 0 0 0 0 . 1 0 .
0 0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 0 . . 1 . . . 2 0 0 . . . 1 . . . 2 . 1 0 0 0 0 . 1 0 . 1
0 . 1 . 1 0 . 1 . 1 0 . 1 . 1 0 . 1 0 . 1 . 2 0 0 . 1 . . . . . 2 . 1 0 0 0 0 . 1 0 . 1 0
. 1 . 1 0 . 1 . 1 0 . 1 . 1 0 . 1 0 0 0 . 1 0 0 . 1 . . 0 . 2 0 . 1 0 0 0 0 . 1 0 . 1 0 0
0 . 1 0 . 1 . 1 0 . 1 . 1 0 . 1 0 0 0 . 1 0 0 . 1 . . 2 . 1 0 . 1 0 0 0 0 . 1 0 . 1 0 0 .
. 1 0 . 1 . 1 0 . 1 . 1 . . 1 0 0 0 . 1 0 0 . 1 . . 2 . 1 0 . 1 0 0 0 0 . 1 0 . 1 0 0 . 1
1 0 . 1 . 1 . . 1 . 1 . 1 0 0 0 0 . 1 0 0 . 1 . . 2 . 1 0 . 1 0 0 0 0 . 1 . . 1 0 0 . 1 .
0 . 1 . 1 . 1 . . 1 . 1 0 0 0 0 . 1 0 0 . 1 . . 2 . 1 0 . 1 0 0 0 0 . 1 . 1 0 . . . 1 . .
. 1 . 1 . 1 . 1 0 . 1 0 0 0 0 . 1 0 . . 1 . . 2 . 1 0 . 1 0 0 0 0 . 1 . 1 0 . 1 . . . . 2
93
1 . 1 . 1 . 1 0 . 1 0 0 0 0 . 1 . . 1 . . . 2 . 1 0 . 1 0 0 0 0 . 1 . 1 0 . 1 . 1 . . 2 .
5.3. GEDRAG VAN EEN FILE (TWEEBAANS)
lengte file = 4 voertuigen >> tweebaanloop2(2,2,2,c,d,0.85,0.1,3,100,45) c =
94
d = 0 . 1 . . 2 . . . . . . . . . 3 . 1 . 1 0 . 1 0 0 0 . . 1 . . 2 . 1 . . 2 0 0 0 . . 1 . .
. 1 . . 2 . . 2 . . . 3 . . 3 . 1 . 1 0 . 1 0 0 0 . 1 . . . 2 . 1 . . 2 0 0 0 . 1 . . . 2
1 . . 2 . . 2 . 1 . 3 . . 3 . 1 . 1 0 . 1 0 0 0 . 1 . . . 2 . 1 . . 2 0 0 0 . 1 . . . 2 .
. . 2 . . 2 . 1 . . . . 2 . 1 . 1 0 . 1 0 0 0 . 1 . . 2 0 . 1 . . 2 0 0 0 . 1 . . 2 . . .
. 2 . . 2 . 1 . . 2 . 2 . 1 . 1 0 . 1 0 0 0 . 1 . . 2 0 . 1 . . 2 0 0 0 . 1 . . 2 . . . .
2 . . . . . . . 2 . 1 . 1 . 1 0 . 1 0 0 0 . 1 . . 2 0 . 1 . . 2 0 . . . 1 . . 2 . . 2 . 3
. . . 3 . 2 . 2 . 1 . 1 . 1 0 . 1 0 0 0 . 1 . . 2 0 . 1 . . 2 0 . 1 . . . . 2 . . 2 . . .
. . 3 . . . . . 1 . 1 . 1 0 . 1 0 0 . . 1 . . 2 0 . 1 . . . 0 . 1 . . . . 2 . . 2 . . 2 0
. 3 . . . . 2 0 . 1 . 1 0 . 1 . . . 1 . . . 2 0 . 1 . . 2 . . 1 . . 2 . . . . 2 . . 2 0 0
3 . . . 3 0 0 . 1 . 1 0 . 1 . 1 . . . . . 2 . . 1 . . 2 . . 1 . . 2 . 1 0 . 2 . . 2 0 . .
. . . 3 0 0 . 1 . 1 0 . 1 . 1 . . . . 2 . . 1 . . . 2 . . . . . 2 . 1 0 . 1 . . 2 0 . 1 .
. . 3 0 0 . 1 . 1 0 . 1 . 1 . . 2 . . . 1 . . . . 2 . . . 3 . 2 . 1 0 . 1 . . 2 . . 1 . .
. 3 0 0 . 1 . 1 0 . 1 . 1 . . 2 . 1 . 1 . 1 . 2 . . . 2 3 . . . 1 0 . 1 . . 2 . 1 . . . 2
2 0 0 . 1 . 1 0 . 1 . 1 . . 2 . 1 . . . 1 . . . . . . . . . 2 0 0 . 1 . . 2 . 1 . . . 2 0
0 0 . 1 . 1 0 . 1 . 1 . . 2 . . . . 2 . . . 2 . . . 3 . . 2 0 0 . 1 . . 2 . 1 . . 2 0 0 0
0 . 1 . 1 . . 1 . 1 . . 2 . . 2 . 2 . . . 2 . . 3 . . 1 0 0 0 . 1 . . 2 . 1 . . 2 0 0 0 0
. 1 . 1 . 1 . . 1 . . 2 . . 2 . . . . . . . . 2 . 1 0 0 0 0 . 1 . . 2 . 1 . . 2 0 0 0 0 .
1 . 1 . 1 . . . . . 2 . . 2 . . . . . 3 0 . 2 . 1 0 0 0 0 . 1 . . 2 . 1 . . 2 0 0 0 0 . 1
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
. 1 . 1 . . 2 . . 2 . . 2 . . . 3 . 3 . . 1 . 1 0 0 0 0 . 1 . . 2 . 1 . . 2 0 0 0 0 . 1 .
5.3. GEDRAG VAN EEN FILE (TWEEBAANS)
95
Dit is bij de volgende beginconfiguraties:
c = 1 2
0 0
0 0
1 1
0 0
1 0
0 0
1 3
0 0
1 0
1 2
0 0
1 2
0 0
1 1
0 0
1 0
1 3
0 0
0 0
1 1
1 3
0 0
1 2
0 0
1 2
0 0
1 3
0 0
0 0
1 2
0 0
1 1
1 0
1 2
0 0
0 0
d =
Conclusie Uit de bovenstaande beginconfiguraties is af te leiden dat er zich 20 voertuigen bevonden in het model. Dit is een verdubbeling ten opzichte van de beginconfiguratie met vmax = 4 uit paragraaf 5.2.1. We zien verder dat het aantal stilstaande voertuigen per baan gemiddeld ongeveer 8 is. Dit was de situatie waar we naar zochten. Bij een weg met twee banen verdubbelt dus de capaciteit ten opzichte van een weg met maar ´e´en baan. Opmerking: De kans bestaat dat de bovenstaande situatie een toevalstreffer is. De kansen p en pw kunnen ervoor zorgen dat er (grote) verschillen bestaan tussen de uitkomsten van het opnieuw draaien van dit model. Om dit te compenseren hebben we het model drie keer gesimuleerd. Bij alle drie de keren kregen we vergelijkbare uitkomsten.
5.3.2
Pech op de rechter baan
Een veel voorkomende situatie op de snelweg is pech. Ook kan er een ongeluk zijn gebeurd. Hierdoor kan het zijn dat er zich compleet stilstaande voertuigen op een baan bevinden. Deze situatie gaan we simuleren. Het model In het model simuleren we een pechgeval met een hoeveelheid stilstaande voertuigen. Een voorwaarde is echter dat deze stilstaande voertuigen zich niet gaan verplaatsen. Een aantal aanpassingen aan het model zijn hiervoor nodig:
1 1
96
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES • In het eenbaansmodel moet ervoor worden gezorgd dat de snelheid van het voorste stilstaande voertuig altijd nul blijft. Dit zorgt er automatisch voor dat de stilstaande voertuigen hierachter ook snelheid nul houden. • In het tweebaansmodel moet worden gezorgd dat alle stilstaande voertuigen zich niet zullen verplaatsen naar de andere baan. • Vervolgens moet dit alles verwerkt worden in een model zoals tweebaanloop1.
Met stilstaande voertuigen worden in deze voorwaarden de voertuigen bedoeld die het pechgeval voorstellen. We noemen het aangepaste model tweebaanloop1pech Resultaten Het pechgeval laten we 4 cellen in beslag nemen: de cellen 9 t/m 12. We werken weer met een configuratie van 19 cellen. We plaatsen 15 rijdende voertuigen (10 in c, 5 in d) en 4 stilstaande voertuigen in de configuratie op de volgende manier: c = 1 2
0 0
0 0
1 1
0 0
1 0
0 0
1 3
0 0
1 0
1 2
0 0
1 2
0 0
1 1
0 0
1 0
1 3
1 2
0 0
0 0
1 1
0 0
1 1
0 0
0 0
x 0
x 0
x 0
0 0
0 0
1 2
0 0
1 3
0 0
0 0
0 0
d =
Hierin zijn de cellen van pechgevallen gemarkeerd als x. Verder werken we met de volgende waarden: b1 = 2, b2 = 2, b3 = 2, pw = 0.85, p = 0.1, s = 45, vmax = 4. Hierna volgen de matrices die de simulatie ons levert.
x 0
vf ile = 1
c = . 1 . . . 1 . 1 . 0 0 0 0 . 1 0 . 1 . . 2 0 0 . 1 . . 2 . . . 2 . 1 0 . 1 . 1 . 1 . 1 . 1
. . . 2 0 . 1 . . 0 0 0 . 1 . . 1 . . 2 0 0 . 1 . . 2 . 1 . 2 . 1 0 . 1 . 1 . 1 . 1 . 1 .
1 . 2 0 . 1 . . 2 0 0 . 1 . 1 . . . 2 0 0 . 1 . . 2 . 1 . 1 . 1 . . 1 . 1 . 1 . 1 . . . 1
. 1 0 . 1 . . 2 0 0 . 1 . 1 . 1 . 2 0 . . 1 . . 2 . . . 1 . 1 . 1 . . 1 . 1 . . . . 2 0 0
0 0 . 1 . . 2 0 0 . 1 . 1 . 1 . . 0 . 1 . . . 2 . . 2 0 . 1 . 1 . . 0 . 1 . . 2 . 2 . . .
. . 1 . . 2 0 0 . 1 . 1 . 1 . . 2 . 1 . 1 . 2 . . 2 0 . 1 . . . . 2 . 1 . . 2 . . . 1 . .
3 . . . 2 0 0 . 1 . 1 . 1 . . 2 . . . . . . . . . 0 . 1 . . 2 . 2 . . . . 2 . . . 0 . 1 .
. . . 2 0 0 . 1 . 1 . 1 . . 2 . . 2 . 2 . 2 . . 3 . 1 . . 2 . . . . 2 . 2 . . . 3 . 1 . 1
. 2 0 0 0 . 1 . 1 . . . . 2 . . 2 . . . . . . 3 . . . . 2 . . . . 2 . . . . . 3 . . . . .
0 0 0 . . 1 . . . . 2 . 2 . . 2 . . . . . . . . . 2 . 2 . . . 3 . . . 2 . . 3 . . . . 2 .
2 0 . 1 . . . 2 . 2 . . . . 2 . . . 3 . 3 . 3 . . . . . . . 3 . . . 2 . . 3 . . . 3 . . .
. . 1 . . . 2 . . . . . . . . . . 3 . . . . . . 3 . . . . 3 . . . . . . . . . . 3 . . . .
2 . . . 2 . . . . . . 3 . 3 . . 3 . . . . . . . . . 3 . 3 . . . 3 . . . 3 . . 3 . . 2 . 3
. 1 . 2 . . . . 3 . 3 . . . . 3 . . . 3 . 3 . 3 . 2 . . . . . 3 . 1 . 3 . . 3 . . 2 . . .
1 . 1 0 . 2 . 3 . . . . . . . . . . 3 . . . . . . . . . . 2 3 . 1 . 1 . . . . . . . 1 . .
. 1 0 0 1 . . 0 . 2 . . 3 . 3 . . 3 . . . . 2 . . . . 3 0 . . . . . . . . 3 0 . 3 0 . 3 .
0 0 0 . . . 2 . . . . 3 . . . 1 . 0 0 . 3 . . 1 0 0 . 0 . 1 . 2 . 2 . 2 . 0 . 1 . . 1 . .
3 0 . 1 . 2 . 1 . . . . 1 0 0 . 1 0 . 1 . . 1 0 0 . 1 . 1 . 1 . . . . . 1 . 1 . 1 . . . 2
97
2 . 1 . 1 . 1 . . 2 3 0 0 0 . 1 0 . 1 . . 2 0 0 . 1 . . . 1 . . 2 . 2 0 . 1 . 1 . 1 . 2 .
5.3. GEDRAG VAN EEN FILE (TWEEBAANS)
lengte file = 4 voertuigen
98
d = . . 2 0 . 1 . . 2 . . . . 1 0 0 0 0 0 0 . . 1 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 . 1 0 0 0 0 0
. 2 0 . 1 . . 2 0 . 2 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 . 1 0 0 0 0 0 0
1 0 . 1 . . 2 0 0 0 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 . . 1 0 0 0 0 0 0 0
. . 1 . . 2 0 0 0 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 . 1 0 0 0 0 0 0 0 0 .
1 . . . 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 . . 1
. . . 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . 1 0 0
. 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 1 . . 1 . . . 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 . . . . 1 0 . . . 1 . . . . . . . . 1 . . . . . . . . . . 1 . . . . . . . . . . . . . .
. . 2 . 1 . . . 1 . . . . . . . 3 . . . 1 0 . . 3 . 3 . . . . 1 0 . . . 3 . . 3 0 . . 2 0
. 2 . . . 1 . . . . . 2 . 2 0 . . . 2 0 0 0 0 . . 1 0 0 0 0 0 0 . 1 0 0 0 0 0 0 . 1 0 0 0
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
2 . . 2 0 . 1 . . . . . 1 . . 1 0 0 0 0 0 0 . 1 0 0 0 0 0 0 0 . 1 0 0 0 0 0 0 . 1 0 0 0 0
5.3. GEDRAG VAN EEN FILE (TWEEBAANS)
99
Conclusie We zien dat dit al redelijk snel uitmondt in een totale chaos op de rechter baan (matrix d). De file bereikt zelfs een lengte van 8. Dit betekent dat maar liefst 8 van 15 voertuigen compleet stilstaan. Ook is het zo dat de bestuurders op de linker baan totaal geen rekening houden met de file op de rechter baan. Het enige wat ze doen is kijken of ze zich naar de rechter baan kunnen verplaatsen. In de cellen links van het pechgeval kunnen de voertuigen niet van baan wisselen. Dan rijden ze gewoon door op hun eigen baan. In de werkelijkheid zullen mensen eerder geneigd zijn iemand van de andere baan voor te laten gaan. Daartegenover staat wel dat we ook nog weer kijkers hebben naar het pechgeval. Hierdoor wordt de kans p groter. Dit zou in een vervolgonderzoek kunnen worden getest.
100
HOOFDSTUK 5. RESULTATEN EN CONCLUSIES
Hoofdstuk 6
Het recursiemodel 6.1
Inleiding
Het is niet moeilijk om te zien waar cellulaire automaten onzorgvuldig zijn. Ten eerste kunnen voertuigen hun snelheid van het ene op het andere moment verkleinen. Wanneer een voertuig met snelheid 5 bijvoorbeeld direct achter een ander voertuig rijdt, zal het achterste voertuig direct tot stilstand kunnen afremmen. In het echt moet men hier rekening houden met reactietijd en remweg. Ook zorgt het stapsgewijze patroon van de cellen voor een zekere onnauwkeurigheid. Een voertuig kan bijvoorbeeld niet tussen twee vakjes zijn en het model gaat ervan uit dat alle voertuigen even lang zijn. Het uitgangspunt van het door ons ontwikkelde recursiemodel was daarom om deze twee punten te verbeteren. De reactietijd en remweg hebben we toegevoegd door het gedrag van voertuigen afhankelijk te maken van de natuurkundige formule voor snelheid en afstand: ∆s = Vgem · ∆t, waarin ∆s het afstandsverschil is over een bepaalde tijd, Vgem de gemiddelde snelheid over die tijd en ∆t het tijdsverschil. Om de cellenstructuur van de cellulaire automaat te doorbreken, wordt de plaats van een voertuig in ons model uitgedrukt in de afstand tot het begin van de weg. Een voertuig heet in ons model αn, waarin n een geheel positief getal is. Voor de voertuigen die wij bestuderen geldt telkens dat een voertuig met een hoger getal achter een voertuig met een lager getal rijdt. α1 rijdt dus voor α2 en α2 rijdt zelf voor α3. De afstand waarop een voertuig zich bevindt op een tijdstip t heet αnt . Zo is α52 de plaats van α5 op tijdstip t = 2.
101
102
HOOFDSTUK 6. HET RECURSIEMODEL
Een probleem dat gelijk oprijst wanneer de cellenstructuur achterwege wordt gelaten is dat de afstand tussen de voertuigen klein kan zijn. Als alleen als voorwaarde wordt gesteld dat αnt > α(n + 1)t (een voertuig rijdt voor zijn achterligger) kan het nog steeds zo zijn dat α1t = 1, α2t = 2 en α2t = 3. Dit zou betekenen dat α2 zich in een afstand van 2 meter moet bevinden. Dit is onmogelijk omdat een voertuig langer dan dat is. Omdat een voertuig geen punt is, maar ook een lengte heeft, defini¨eren we dat αnt de afstand van de achterbumper is. Er moet dan een minimumafstand k tussen αn en α(n + 1) worden gehouden: αnt − α(n + 1)t ≥ k. Deze minimumafstand k is gelijk aan een vaste waarde voor de afstand tussen de voorbumper en achterbumper plus de lengte van het voertuig, die kan vari¨eren.
6.2
Het model
Het model bestaat uit twee componenten, het minimaal verkeersgedrag en de n-secondenregel. Beide zijn manieren voor een voertuig om te bepalen hoe het zich moet gedragen, die later nog worden uitgewerkt. Het model draait erom dat een voertuig met een bepaalde kans p zich gedraagt volgens de regels van het minimaal verkeersgedrag en zich anders (met een kans 1 − p) houdt aan de n-secondenregel. Omdat het toeval bij afremmen ook een grote rol speelt bij de vorming van files, bestaat er daarna ook nog een kans dat het voertuig nogmaals de snelheid verlaagt met 10%. Deze kans heet q. Het volgende diagram illustreert het model.
6.3. MINIMAAL VERKEERSGEDRAG
6.3
103
Minimaal verkeersgedrag
Het minimaal verkeersgedrag is het gedrag dat een voertuig volgens de natuurkundige formules moet volgen opdat er, als zijn voorligger vol in de remmen gaat en tot stilstand afremt, geen botsing ontstaat. Hiervoor is het ten eerste belangrijk om te bekijken welke afstand de voorligger α(n + 1) aflegt als hij dat doet.
6.3.1
De voorligger
De afstand die voertuig αn aflegt bij een eenparige remming volgt uit de definities van snelheid en acceleratie. ∆sαn = Vgem · ∆t Dit moet worden uitgedrukt in variabelen die het voertuig op dat moment weet. De bestuurder weet niet bij het zien van zijn voorligger wat de gemiddelde snelheid is bij de remming, maar kan wel de huidige snelheid zien. Omdat er sprake is van een eenparige remming (de snelheid wordt iedere tijdseenheid met een bepaalde deceleratie d verlaagd) is de gemiddelde snelheid gelijk aan de helft van de beginsnelheid. Vgem = 21 · Vαn,t Er geldt dus: 1 ∆sαn = · Vαn,t · ∆t. 2 Een andere eigenschap van de eenparige vertraging is de formule ∆V = aαn · ∆t, waarin ∆V het snelheidsverschil is tussen de twee tijdstippen en aαn de acceleratie van het voertuig. Aangezien het gaat om een vertraging tot stilstand, geldt dat het snelheidsverschil ∆V gelijk is aan 0 − Vαn,t , oftewel −Vαn,t . Er geldt dus −Vαn,t = a· ∆t. −Vαn,t . aαn Omdat het altijd gaat om een vertraging is aαn altijd negatief. Daarom kunnen we ook spreken over de deceleratie d, waarbij d = −a. Dan geldt ∆t =
∆t =
−Vαn,t Vαn,t = . −dαn dαn
Dit kan weer worden ingevuld in de eerdere formule voor de afstand: Vαn,t 1 ∆sαn = · Vαn,t · 2 dαn en korter geschreven staat daar ∆sαn =
Vαn,t 2 . 2· dαn
Het gedrag van voertuig αn is nu bekend bij een volledige remming.
104
6.3.2
HOOFDSTUK 6. HET RECURSIEMODEL
Het voertuig zelf
Het gedrag van voertuig α(n + 1) bestaat uit twee componenten. Op het moment dat voertuig αn begint te remmen, zal α(n+1) niet direct reageren. De bestuurder moet immers eerst waarnemen dat dat gebeurt. Gedurende deze tijd, de reactietijd Rα(n+1) , zal voertuig α(n + 1) met volle snelheid doorrijden. Voor de eerste component van ∆sα(n+1) geldt dus ∆sα(n+1),1 = Rα(n+1) · Vα(n+1),t . Daarna begint de tweede component, waarin het voertuig net als αn een eenparige remming inzet. ∆sα(n+1),2 =
Vα(n+1),t 2 . 2· dα(n+1)
De eindafstand van α(n + 1) is dus ∆sα(n+1)
6.3.3
Vα(n+1),t 2 . = Rα(n+1) · Vα(n+1),t + 2· dα(n+1)
De veilige afstand en snelheid
Uiteindelijk, als beide voertuigen tot stilstand zijn gekomen, moet aan de volgende voorwaarde worden voldaan, op grond van de definities van αn en k αneind − α(n + 1)eind ≥ kα(n+1) . Omdat in dit model het minimaal toelaatbare verkeersgedrag wordt beschreven, gaat het hier om de situatie waarin αneind − α(n + 1)eind = kα(n+1) . Hierin geldt αneind = αnstart + ∆sαn en α(n + 1)eind = α(n + 1)start + ∆sα(n+1) dus (αnstart + ∆sαn ) − α(n + 1)start + ∆sα(n+1) = kα(n+1) . Hierin passen uiteraard de formules voor de eindafstanden ∆s, waardoor dit geldt: ! Vα(n+1),t 2 Vαn,t 2 − α(n + 1)start + Rα(n+1) · Vα(n+1),t + = kα(n+1) . αnstart + 2· dαn 2· dα(n+1)
6.3. MINIMAAL VERKEERSGEDRAG
105
Het doel is nu om de snelheid Vα(n+1),t die voertuig α(n + 1) aan moet houden uit te drukken in de andere constantes, die bekend moeten zijn bij de bestuurder van α(n + 1). Daarom moet de kwadratische vergelijking met als variabele Vα(n+1),t worden opgelost waarbij de oplossing wordt uitgedrukt in constantes of variabelen die de bestuurder kent. Vαn,t 2 = 0. · Vα(n+1),t 2 +Rα(n+1) · Vα(n+1),t − αnstart − α(n + 1)start − kα(n+1) − 2· dα(n+1) 2· dαn 1
De volgende factoren be¨ınvloeden dus het gedrag van een voertuig. Hierbij moet wel worden opgemerkt dat dit model niet probeert om te beschrijven hoe een bestuurder van een voertuig zijn snelheid bepaalt (volgens dit model zou een bestuurder dan iedere seconde een kwadratische vergelijking moeten oplossen), maar probeert te beschrijven hoe voertuigen rijden. • dα(n+1) , de deceleratie van dat voertuig, • Rα(n+1) , de reactietijd van de bestuurder van dat voertuig, • αnstart −α(n + 1)start −kα(n+1) , de afstand van de voorbumper van dat voertuig tot de achterbumper van zijn voorligger, die ook wel bekend staat als de headway h, • Vαn,t , de snelheid van de voorligger van dat voertuig en • dαn , de deceleratie van de voorligger. Uit de abc-formule volgt de oplossing van deze kwadratische vergelijking, waarin • a=
1 2·dα(n+1)
• b = Rα(n+1) V
2
αn,t −h • c = − 2·d αn
dus r −Rα(n+1) + Rα(n+1) 2 − 4· 2·d Vα(n+1),t =
1
α(n+1)
2· 2·d
Vαn,t 2 · − 2·d − h αn
1
α(n+1)
s Vα(n+1),t = −Rα(n+1) · dα(n+1) +dα(n+1) ·
Rα(n+1) 2 −
Vαn,t 2 2h − . dα(n+1) · dαn dα(n+1)
106
HOOFDSTUK 6. HET RECURSIEMODEL
6.3.4
Extra beveiliging
Hiermee is geen rekening gehouden met het feit dat de α(n + 1) altijd achter αn moet rijden. Als dα(n+1) > dαn kan het voorkomen dat de situatie zoals in de volgende grafiek voorkomt:
Daarom kan ook, in plaats van de afstand tot stilstand, de afstand op het volgende tijdstip beveiligd worden in het geval dat αn met dαn afremt. Er moet dan gelden: α(n + 1)t+1 + kα(n+1) ≤ αnt+1 . αn remt af met deceleratie dαn , dus 1 αnt+1 = αnt + Vαn,t − · dαn . 2 Hierin is Vαn,t − 12 · dαn de gemiddelde snelheid die het voertuig heeft tijdens zijn deceleratie. α(n + 1) remt af met deceleratie dα(n+1) na een reactietijd Rα(n+1) . Als de reactietijd groter dan of gelijk aan ´e´en tijdseenheid is, zal het voertuig nog met de vorige snelheid doorrijden. In dat geval geldt dus gewoon α(n + 1)t+1 = α(n + 1)t + Vα(n+1),t . Als de reactietijd kleiner is dan ´e´en tijdseenheid, zal het voertuig eerst tijdens zijn reactietijd met de vorige snelheid rijden, om vervolgens de rest van de tijdseenheid met dα(n+1) af te remmen. De remming bestaat hier dus uit twee componenten: 1 α(n + 1)t+1 = α(n + 1)t +RA · Vα(n+1),t +(1−Rα(n+1) )· Vα(n+1),t − · dα(n+1) · (1 − Rα(n+1) ) 2 1 α(n + 1)t+1 = α(n + 1)t + Vα(n+1),t − · dα(n+1) · (1 − Rα(n+1) ). 2 Invullen in de eerste voorwaarde, in de situatie waarin Rα(n+1) < 1 geeft α(n + 1)t+1 + kα(n+1) = αnt+1 1 1 α(n + 1)t + Vα(n+1),t − · dα(n+1) · (1 − RA ) + kα(n+1) = αnt + Vαn,t − · dαn 2 2
6.4. N -SECONDENREGEL
107
1 1 Vα(n+1),t = αnt − α(n + 1)t − kα(n+1) +Vαn,t − · dαn + · dα(n+1) · (1−RA ) 2 2 1 Vα(n+1),t = h + Vαn,t + · dα(n+1) · (1 − RA ) − dαn . 2 En als RA ≥ 1 geeft dit α(n + 1)t+1 + kα(n+1) = αnt+1 1 α(n + 1)t + Vα(n+1),t + kα(n+1) = αnt + Vαn,t − · dαn 2 1 Vα(n+1),t = αnt − α(n + 1)t − kα(n+1) + Vαn,t − · dαn 2 1 Vα(n+1),t = h + Vαn,t − · dαn . 2
6.3.5
De twee beveiligingen samen
Bij twijfel moet een verantwoordelijke bestuurder van een voertuig altijd de veiligste optie nemen. Ook in dit model is de uiteindelijke snelheid die een voertuig aan zou moeten houden de kleinste snelheid die door de beveiligingen wordt opgegeven. De eerste beveiliging is die voor het afremmen tot stilstand, de tweede beveiliging die voor het afremmen na ´e´en tijdseenheid. Samen vormen deze de ideale maximumsnelheid die een voertuig aan moet houden. De snelheid die deze component opgeeft komt dus als volgt tot stand: r 2 V min −Rα(n+1) · dα(n+1) + dα(n+1) · Rα(n+1) 2 − d αn,t·dαn − α(n+1) h + Vαn,t + 12 · dα(n+1) · (1 − RA )r − dαn als Rα(n+1) < 1 Vα(n+1),t = Vαn,t 2 2 min −Rα(n+1) · dα(n+1) + dα(n+1) · Rα(n+1) − dα(n+1) ·dαn − h + Vαn,t − 12 · dαn als Rα(n+1) ≥ 1 Uiteraard mag ook de maximumsnelheid niet vergeten worden, maar omdat de maximumsnelheid ook betrekking heeft op de andere component van het model wordt deze pas later toegevoegd.
6.4 6.4.1
n-secondenregel De grondslag van de n-secondenregel
De andere component van het model is de n-secondenregel. Voertuigen houden zich ofwel aan de regels van het minimale verkeersgedrag, ofwel aan de n-secondenregel, bepaald door het toeval. De simpelste manier om de grondslag van deze component uit te leggen is de door de overheid gepromote
2h dα(n+1)
2h dα(n+1)
, ,
.
108
HOOFDSTUK 6. HET RECURSIEMODEL
slagzin ”Houd twee seconden afstand.” Dit is een regel waaraan onervaren of onzekere bestuurders van voertuigen een handig houvast hebben. Zij kunnen tellen vanaf een bepaald moment waarop hun voorligger langs een punt rijdt. Als zij zelf minder dan twee seconden later op datzelfde punt komen, moeten ze hun snelheid verlagen. In dit model wordt de tweesecondenregel gegeneraliseerd tot de n-secondenregel, waarbij een voertuig de snelheid moet verhogen als de tijd tot de voorligger kleiner is dan n seconden. In de ideale situatie zou moeten gelden α(n + 1)t+n + k = αnt . In een grafische voorstelling ziet deze voorwaarde er zo uit:
6.4.2
De theoretische gevaren van de n-secondenregel
Volgens de regels van het minimale verkeersgedrag geldt, als aangenomen wordt dat Vαn,t = Vα(n+1),t = V , oftewel dat de snelheden van de voertuigen aan elkaar gelijk zijn en constant zijn, dat Rα(n+1) · V +
V2 V2 + kα(n+1) = αnt − α(n + 1)t + 2· dα(n+1) 2· dα(n+1)
en dus dat αnt − α(n + 1)t = Rα(n+1) · V +
2
αnt − α(n + 1)t = V ·
1 2· dα(n+1)
V2 V2 − + kα(n+1) 2· dα(n+1) 2· dα(n+1) 1 − 2· dαn
+ V · Rα(n+1) + kα(n+1) .
Volgens de n-secondenregel geldt echter dat αnt − α(n + 1)t = n· V. Door de lineaire vorm bij de n-secondenregel en de kwadratische bij het minimale verkeersgedrag, let een positieve co¨effici¨ent bij het kwadraat, raadt de n-secondenregel bij hogere snelheden een afstand aan die kleiner is dan de afstand die de n-secondenregel aanraadt. Door het snijpunt van beide
6.4. N -SECONDENREGEL
109
grafieken te vinden kan echter voor iedere maximumsnelheid V een passende waarde van n worden gevonden. De vergelijking hiervoor is 1 1 + V · Rα(n+1) + kα(n+1) n· V = V 2 · − 2· dα(n+1) 2· dαn n=V·
1 2· dα(n+1)
1 − 2· dαn
+ Rα(n+1) +
kα(n+1) . V
Als het gaat om twee gelijkwaardige voertuigen αn en α(n + 1) waarvoor geldt dαn = dα(n+1) , valt de eerste term weg en blijft over n = Rα(n+1) +
kα(n+1) g
maar veiligheidswege mag hier niet vanuit gegaan worden. Het verschil tussen dαn en dα(n+1) is daarvoor in de praktijk te groot. Bij de in Nederland gebruikelijke n = 2 geldt, aangenomen dat Rα(n+1) = 1, kα(n+1) = 10 en V = 30 (in meter per seconde, dit komt overeen met 108 kilometer per uur), ongeveer dat bij realistische waarden en in het uiterste geval dα(n+1) − dαn ∈ [−1, 1]. Dit betekent dat maximaal bij ∆d ≈ 1 de situatie veilig is. Veronderstel nu dat een lichte personenauto voor een zware vrachtwagen rijdt. Voor een beladen vrachtwagen kan gemakkelijk gelden dat d = 3, terwijl de personenauto d = 5 heeft. Bij een 2-secondenregel is een ongeluk hier niet noodzakelijk uitgesloten, hiervoor moet gelden n = 3 13 . Daarentegen moet een bestuurder van een beladen vrachtwagen een hogere rij-opleiding hebben gehad en van hem mag verwacht worden dat hij de gevaren beter kan inschatten. Een voordeel van een n-secondenregel is dat deze gemakkelijk te onthouden, toe te passen en te begrijpen is voor de gemiddelde automobilist (mits n ∈ N natuurlijk, met andere woorden als n een geheel getal is) en bumperkleven voorkomt. Een nadeel is dat automobilisten, wanneer ze merken dat ze er niet aan voldoen, vrij abrupt gaan remmen en zo juist files kunnen veroorzaken.
6.4.3
De optimale snelheid
De snelheid die de bestuurder van α(n + 1) bij de n-secondenregel moet aannemen opdat op tijdstip t + 1 de afstand tussen αn en α(n + 1) gelijk is aan n· V is als volgt: αnt+n − α(n + 1)t+n − kα(n+1) = n· V
110
HOOFDSTUK 6. HET RECURSIEMODEL (αnt + n· Vαn,t ) − α(n + 1)t + n· Vα(n+1),t − kα(n+1) = n· Vα(n+1),t 2· n· Vα(n+1),t = αnt − α(n + 1)t − kα(n+1) + n· Vαn,t 1 h Vα(n+1),t = + Vαn,t . 2 n
6.5
Toeval en richtsnelheid
Met een kans p volgt de bestuurder van voertuig α(n + 1) de regels van het minimale verkeersgedrag, met een kans 1 − p volgt hij de n-secondenregel. Beide componenten kunnen een ideale snelheid opgeven. Omdat een van de nadelen van cellulaire automaten nu juist was dat de voertuigen abrupt rijgedrag hadden, is het niet wenselijk om de snelheid die een voertuig heeft gelijk te stellen aan de ideale snelheden die de componenten aanraden. De voertuigen zullen wel optrekken of afremmen naar die snelheid, met een zekere gegeven acceleratie aα(n+1) en deceleratie dα(n+1) . De ideale snelheid is hier een richtsnelheid V¯α(n+1),t , dat wil zeggen die snelheid waarnaar α(n + 1) zal optrekken of afremmen. Hierin moet ook een gegeven maximumsnelheid Vmax worden opgenomen, aangezien de richtsnelheid nooit groter mag zijn dan die maximumsnelheid.
r 2 V min −Rα(n+1) · dα(n+1) + dα(n+1) · Rα(n+1) 2 − d αn,t·dαn − d 2h , α(n+1) α(n+1) 1 h + Vαn,t + 2 · dα(n+1) · (1 − RA ) − dαn , Vmax als Rα(n+1) < 1 r 2 V min −Rα(n+1) · dα(n+1) + dα(n+1) · Rα(n+1) 2 − d αn,t·dαn − d 2h , α(n+1) α(n+1) 1 h + Vαn,t − 2 · dαn , Vmax als Rα(n+1) ≥ 1 1 h min 2 n + Vαn,t , Vmax
met kans p
met kans 1 − p
de richtsnelheid dan nog eens
met kans p· q
met kans p· (1 − q)
met kans (1 − p)· q met kans (1 − p)· (1 − q)
.
111
Met een kans qα(n+1) , die zoals het subscript doet vermoeden verschilt per voertuig, wordt verlaagd met 10 procent. r 2 V αn,t 2 2h min −Rα(n+1) · dα(n+1) + dα(n+1) · Rα(n+1) − d ·dαn − dα(n+1) , α(n+1) 1 h + V + · d · (1 − R ) − d , V als R < 1 αn,t αn max A α(n+1) α(n+1) 2 9 r 10 · Vαn,t 2 2 2h min −R · d + d · R − − , α(n+1) α(n+1) α(n+1) α(n+1) d ·d d α(n+1) αn α(n+1) 1 · d , V als R ≥ 1 h + V − αn max αn,t α(n+1) 2 r 2 V ¯ min −Rα(n+1) · dα(n+1) + dα(n+1) · Rα(n+1) 2 − d αn,t·dαn − d 2h , Vα(n+1),t = α(n+1) α(n+1) 1 als R < 1 , V h + V + · d · (1 − R ) − d αn,t αn max A α(n+1) α(n+1) 2 r Vαn,t 2 2 2h min −R · d + d · − , R − α(n+1) α(n+1) α(n+1) α(n+1) d ·d d α(n+1) αn α(n+1) 1 h + V − · d , V als R ≥ 1 αn,t αn max α(n+1) 2 9 1 h 10 · min 2 n + Vαn,t , Vmax min 12 nh + Vαn,t , Vmax
.
6.5. TOEVAL EN RICHTSNELHEID
V¯α(n+1),t =
112
6.6
HOOFDSTUK 6. HET RECURSIEMODEL
Optrekken en afremmen
Om de richtsnelheid V¯α(n+1),t te bereiken zal het voertuig α(n+1) afremmen met een deceleratie dα(n+1) als Vα(n+1),t−1 < V¯α(n+1),t of optrekken met een acceleratie aα(n+1) als Vα(n+1),t−1 > V¯α(n+1),t . Bovendien zal het voertuig niet verder accelereren of decelereren dan de richtsnelheid. Als het voertuig al de ideale snelheid heeft, wordt deze uiteraard niet meer veranderd. min Vα(n+1),t−1 + aα(n+1) , V¯α(n+1),t als V¯α(n+1),t > Vα(n+1),t V¯α(n+1),t als V¯α(n+1),t = Vα(n+1),t . Vα(n+1),t = ¯ max Vα(n+1),t−1 − dα(n+1) , Vα(n+1),t als V¯α(n+1),t < Vα(n+1),t Het is ook onmogelijk om de snelheid direct naar deze snelheid te laten springen. De feitelijke definitie van de hiervoor bepaalde Vα(n+1),t is dan ook de snelheid, die het voertuig op t + 1 pas heeft bereikt. Daarom geldt eindelijk Vα(n+1),t−1 + Vα(n+1),t α(n + 1)t+1 = α(n + 1)t + 2 1 α(n + 1)t+1 = α(n + 1)t + Vα(n+1),t−1 + Vα(n+1),t . 2
6.7
Het eerste voertuig
Aangezien alle voertuigen hun snelheid berekenen aan de hand van de voorganger, moet het gedrag van het voorste voertuig α1 apart gedefinieerd worden. Aangezien alle acherliggers al stochastisch hun snelheid bepalen, kan ervoor gekozen worden om α1 gewoon met de maximumsnelheid te laten rijden: α1t+1 = α1t + Vmax met α10 = 0. Er kan ook met toeval gewerkt worden, bijvoorbeeld door, net als bij de acherliggers, de snelheid telkens met een kans p met 10 procent te verlagen. Hiervoor hebben wij niet gekozen.
6.8
Nieuwe voertuigen
De intensiteit Q is het aantal voertuigen per tijdseenheid. De hoeveelheid tijd per voertuig is dan uiteraard Q1 . Voor een voertuig α1 en zijn achterliggers αn geldt dan (αn) n = 0. Q
Vooral hier is het belangrijk om een goede schaalverdeling te kiezen voor de tijd. Als de intensiteit Q inhoudt dat er meer dan een voertuig per seconde rijdt, terwijl de t-schaalverdeling inhoudt dat er op elke seconde opnieuw berekend wordt, moeten tijdswaardes worden afgerond. Bij vijf voertuigen
6.8. NIEUWE VOERTUIGEN
113
per seconde komt α2 op t = 0, 2, hetgeen onmogelijk is bij een discrete schaalverdeling. Hierop moeten dan uiteraard de snelheden en reactietijden worden aangepast. Een nieuw voertuig αn zal daarnaast binnenrijden met de richtsnelheid Vαn,t t.o.v. α(n − 1), zoals hierboven vastgelegd is.
114
HOOFDSTUK 6. HET RECURSIEMODEL
Hoofdstuk 7
Het recursiemodel in Octave In tegenstelling tot de cellulaire automaten ligt het recursiemodel voornamelijk vast met formules. Deze vormen dan ook de kern van de code om het recursiemodel te simuleren. Daarvoor moet een gebruiker wel eerst een grote hoeveelheid parameters invullen. Door de grote hoeveelheid parameters verkrijgt het recursiemodel echter zijn realisme en zijn er daarnaast veel mogelijkheden om de effecten van deze parameters te onderzoeken op het verkeersgedrag.
7.1
Invoer
In de laatste formule van het recursiemodel komen de volgende parameters voor, waarbij α(n + 1) steeds vervangen wordt door αn. • Rαn , kαn , dαn en aαn . respectievelijk de reactietijd, de afstand tussen de achterbumpers, de deceleratie en de acceleratie van een voertuig. Omdat in het model gewerkt wordt met een grote hoeveelheid voertuigen, is het niet mogelijk om aan afzonderlijke voertuigen waardes hiervoor toe te kennen. Daarom worden reactietijd, deceleratie en acceleratie door het toeval bepaald uit een door de gebruiker bepaald interval. Zo wordt Rαn gekozen uit [Rmin , Rmax ]. De gebruiker moet dus de volgende parameters invoeren. - Rmin en Rmax - kmin en kmax - amin en amax - dmin en dmax • p, de kans die bepaalt welke component een voertuig gebruikt. • qαn , de kans die bepaalt of een voertuig extra afremt. Deze kans verschilt wel per voertuig (de ene bestuurder is zelfverzekerder dan de 115
116
HOOFDSTUK 7. HET RECURSIEMODEL IN OCTAVE andere) en wordt dus net als de reactietijd per voertuig uit een interval [qmin , qmax ] gekozen. De gebruiker moet dus qmin en qmax invoeren. • Vmax , de maximumsnelheid op het traject. • n, de tijdsduur voor de n-secondenregel.
Daarnaast is het voor de simulatie nodig nog een tweetal parameters te vragen. Deze verzorgen het verloop van de simulatie. • Q, de verkeersintensiteit, oftewel het aantal voertuigen dat per seconde het traject oprijdt. • De tijd die de simulatie doorloopt. De eerste regel van het programma is de functiebeschrijving: function T = r e c u r s i e m o d e l (Q, oV , p , qmin , qmax , oRmin , oRmax , odmin , odmax , oamin , oamax , te , on , kmin , kmax ) Hierin komen alle genoemde parameters terug. Alle parameters die echter met tijd te maken hebben, worden voorafgegaan door een o. Deze o staat voor oorspronkelijke en wordt hierna verklaard. te staat voor de tijd die de simulatie doorloopt.
7.2
Tijdsschaling
dt = 1/Q; V = oV ∗ dt ; Rmin = oRmin Rmax = oRmax dmin = odmin dmax = odmax amin = oamin amax = oamax n = on ∗ Q;
∗ ∗ ∗ ∗ ∗ ∗
Q; Q; dt ˆ 2 ; dt ˆ 2 ; dt ˆ 2 ; dt ˆ 2 ;
Om rekening te houden met het probleem uit paragraaf 6.8 wordt de tijd opnieuw ingedeeld op basis van de intensiteit Q. In de eerste regel van dit blok wordt een schalingsfactor dt gedefini¨eerd als Q1 . Dit is het gemakkelijkst te laten zien met een voorbeeld. Als Q = 5 rijden er per seconde vijf voertuigen het traject binnen. Omdat voertuigen dan binnen zouden rijden op t ∈ (0, 0.2, 0.4, 0.6, . . . ), wat onmogelijk is bij een discrete tijd zoals in dit model, moet de tijd in het model als het ware vertraagd worden. Als iedere 0.2 seconden een voertuig binnenrijdt, moet ´e´en tijdseenheid in het
7.3. HET EERSTE VOERTUIG
117
model overeenkomen met 0.2 seconden in het echt. De tijdsschalingsfactor is daarom in dat voorbeeld 0.2, en in het algemeen Q1 . Daarmee moeten dan ook de maximumsnelheid worden verkleind. De nieuwe maximumsnelheid V is dus de oorspronkelijke snelheid oV maal dt. De deceleratie en de acceleratie worden, als de tijd vertraagd wordt, kwadratisch verkleind, omdat hun definitie is a = ts2 . De reactietijd en de n uit de nsecondenregel worden echter juist groter na de schaling. Een reactietijd van 1seconde is immers gelijk aan 5· 0.2secondes. Als Q < 1 worden de tijden uiteraard met verkleind, de snelheden vergroot en de acceleraties kwadratisch vergroot. Ra Rb da db aa ab ka kb qa qb
= = = = = = = = = =
Rmax−Rmin ; Rmin ; dmax−dmin ; dmin ; amax−amin ; amin ; kmax−kmin ; kmin ; qmax−qmin ; qmin ;
Deze extra parameters zullen van pas komen bij het genereren van de eigenschappen van nieuwe voertuigen. Octave kan een toevalsgetal genereren tussen 0 en 1 en dit getal kan met deze parameters omgezet worden in een getal in het juiste interval. Dit zal later nog worden toegelicht.
7.3
Het eerste voertuig
De eigenschappen van de voertuigen zullen worden geordend in de vorm van een aantal matrices: α1k α2k . . . αk k plaats = Vα1,k Vα2,k . . . Vαk,k snelheid = V¯α1,k V¯α2,k . . . V¯αk,k richtsnelheid = Rα1 Rα2 . . . Rαk reactiesnelheid = dα1 dα2 . . . dαk deceleratie = aα1 aα2 . . . aαk acceleratie = kα1 kα2 . . . kαk minimumafstand = Deze matrices worden uitgebreid zodra er een nieuw voertuig het dat nodig is. Met het eerste voertuig worden de matrices gemaakt met de eerste invoer, namelijk die van het eerste voertuig. Merk op dat de acceleratie
118
HOOFDSTUK 7. HET RECURSIEMODEL IN OCTAVE
en de minimumafstand van dit voertuig eigenlijk niet gebruikt worden in het model. plaats = [ 0 ] ; s n e l h e i d = [V ] ; r i c h t s n e l h e i d = [V ] ; reactiesnelheid = [ 0 ] ; d e c e l e r a t i e = [ dmax ] ; a c c e l e r a t i e = [ amax ] ; minimumafstand = [ kmin ] ; remkans = [ 0 ] ; u i t v o e r = zeros ( 1 , t e ) ; Hiermee worden de matrices gemaakt. De uitvoermatrix zal van pas komen bij het maken van een uitvoer in paragraaf 7.5.
7.4
Nieuwe voertuigen
f o r t =2: t e Na de voorbereidingen kan de simulatie hier beginnen. Omdat dezelfde actie te maal wordt uitgevoerd, staat de simulatie binnen een for-loop, die loopt van 2 tot te. Deze loop begint bij 2 omdat de simulatie moet beginnen bij het tweede voertuig. Iedere keer dat de for-loop wordt doorlopen, komt er een nieuw voertuig bij. R d a k q
= = = = =
Ra da aa ka qa
∗ ∗ ∗ ∗ ∗
rand rand rand rand rand
+ + + + +
Rb ; db ; ab ; kb ; qb ;
Met deze code worden van het nieuwe voertuig de eigenschappen bepaald. Een toevalsgetal tussen 0 en 1 wordt hier eerst als het ware uitgespreid over de breedte van het interval en vervolgens verhoogd tot het interval op de juiste hoogte is. Met de onderstaande code worden deze eigenschappen aan de matrix toegevoegd. De waarde van de plaats is 0, omdat het voertuig aan het begin van de weg binnenkomt. De snelheid en de richtsnelheid zullen later bepaald worden, maar de ruimte in de matrix wordt alvast gecre¨eerd. reactiesnelheid = [ reactiesnelheid R] ; deceleratie = [ deceleratie d ]; acceleratie = [ acceleratie a ]; minimumafstand = [ minimumafstand k ] ; plaats = [ plaats 0 ] ;
7.5. RICHTSNELHEDEN TOEKENNEN
119
richtsnelheid = [ richtsnelheid 0]; snelheid = [ snelheid 0 ] ; remkans = [ remkans q ] ;
7.5
Richtsnelheden toekennen
for i=length ( p l a a t s ) : −1:2 Aan ieder voertuig moet nu een richtsnelheid worden toegekend op basis van de nieuwe situatie. De for-loop werkt alle voertuigen van achter naar voren af, omdat de richtsnelheid afhangt van de voorligger. Bij ieder voertuig is het simpelweg een kwestie van de formule invullen uit het model. Omdat in die formule echter verschillende situaties voorkomen, bepaalt het programma met de onderstaande code van welke situatie het de formule moet gebruiken. De variabele richt geeft hier de methode aan. i f rand<=p i f rand<=remkans ( i ) i f r e a c t i e s n e l h e i d ( i )<1 richt = 1; else richt = 2; end else i f r e a c t i e s n e l h e i d ( i )<1 richt = 3; else richt = 4; end end else i f rand<=remkans ( i ) richt = 5; else richt = 6; end end Met het switch-commando wordt in de onderstaande code de richtsnelheid berekend. Deze wordt direct ingevuld in de matrix op plaats i. switch r i c h t case 1
120
HOOFDSTUK 7. HET RECURSIEMODEL IN OCTAVE
r i c h t s n e l h e i d ( i ) = 0 . 9 ∗ min(min(− r e a c t i e s n e l h e i d ( i ) ∗ d e c e l e r a t i e ( i )+d e c e l e r a t i e ( i ) ∗ sqrt ( r e a c t i e s n e l h e i d ( i ) ˆ2− s n e l h e i d ( i −1) ˆ2 / ( d e c e l e r a t i e ( i ) ∗ d e c e l e r a t i e ( i −1) ) −2∗( p l a a t s ( i −1)−p l a a t s ( i )−minimumafstand ( i ) ) / d e c e l e r a t i e ( i ) ) , p l a a t s ( i −1)−p l a a t s ( i )− minimumafstand ( i ) + s n e l h e i d ( i −1) + 0 . 5 ∗ ( d e c e l e r a t i e ( i ) ∗ (1− r e a c t i e s n e l h e i d ( i ) )− d e c e l e r a t i e ( i −1) ) ) ,V) ; case 2 r i c h t s n e l h e i d ( i ) = 0 . 9 ∗ min(min(− r e a c t i e s n e l h e i d ( i ) ∗ d e c e l e r a t i e ( i )+d e c e l e r a t i e ( i ) ∗ sqrt ( r e a c t i e s n e l h e i d ( i ) ˆ2− s n e l h e i d ( i −1) ˆ2 / ( d e c e l e r a t i e ( i ) ∗ d e c e l e r a t i e ( i −1) ) −2∗( p l a a t s ( i −1)−p l a a t s ( i )−minimumafstand ( i ) ) / d e c e l e r a t i e ( i ) ) , p l a a t s ( i −1)−p l a a t s ( i )− minimumafstand ( i ) + s n e l h e i d ( i −1) + 0 . 5 ∗ d e c e l e r a t i e ( i −1) ) ,V) ; case 3 r i c h t s n e l h e i d ( i ) = min(min(− r e a c t i e s n e l h e i d ( i ) ∗ d e c e l e r a t i e ( i )+d e c e l e r a t i e ( i ) ∗ sqrt ( r e a c t i e s n e l h e i d ( i ) ˆ2− s n e l h e i d ( i −1) ˆ2 / ( d e c e l e r a t i e ( i ) ∗ d e c e l e r a t i e ( i −1) ) −2∗( p l a a t s ( i −1)−p l a a t s ( i )−minimumafstand ( i ) ) / d e c e l e r a t i e ( i ) ) , p l a a t s ( i −1)−p l a a t s ( i )− minimumafstand ( i ) + s n e l h e i d ( i −1) + 0 . 5 ∗ ( d e c e l e r a t i e ( i ) ∗ (1− r e a c t i e s n e l h e i d ( i ) )− d e c e l e r a t i e ( i −1) ) ) ,V) ; case 4 r i c h t s n e l h e i d ( i ) = min(min(− r e a c t i e s n e l h e i d ( i ) ∗ d e c e l e r a t i e ( i )+d e c e l e r a t i e ( i ) ∗ sqrt ( r e a c t i e s n e l h e i d ( i ) ˆ2− s n e l h e i d ( i −1) ˆ2 / ( d e c e l e r a t i e ( i ) ∗ d e c e l e r a t i e ( i −1) ) −2∗( p l a a t s ( i −1)−p l a a t s ( i )−minimumafstand ( i ) ) / d e c e l e r a t i e ( i ) ) , p l a a t s ( i −1)−p l a a t s ( i )− minimumafstand ( i ) + s n e l h e i d ( i −1) + 0 . 5 ∗ d e c e l e r a t i e ( i −1) ) ,V) ; case 5 r i c h t s n e l h e i d ( i ) = 0 . 9 ∗ min ( 0 . 5 ∗ ( p l a a t s ( i −1)−p l a a t s ( i )−minimumafstand ( i ) ) / n + s n e l h e i d ( i −1) ,V) ; case 6 r i c h t s n e l h e i d ( i ) = min ( 0 . 5 ∗ ( p l a a t s ( i −1)−p l a a t s ( i )− minimumafstand ( i ) ) / n + s n e l h e i d ( i −1) ,V) ; end i f r i c h t s n e l h e i d ( i )<0 richtsnelheid ( i ) = 0 end
7.6. SNELHEDEN TOEKENNEN
7.6
121
Snelheden toekennen
De formules uit paragraaf 6.6 geven alle formules en condities voor het toekennen van snelheden, dat met de volgende code gebeurt. Omdat de vorige snelheid ook nodig is in de formule, wordt eerst de volgende plaats berekend en dan de snelheid vervangen in de snelheidsmatrix. i f r i c h t s n e l h e i d ( i )>s n e l h e i d ( i ) p l a a t s ( i )=p l a a t s ( i )+ 0 . 5 ∗ ( s n e l h e i d ( i )+max( s n e l h e i d ( i )+ deceleratie ( i ) , richtsnelheid ( i ) ) ) ; s n e l h e i d ( i )=max( s n e l h e i d ( i )+d e c e l e r a t i e ( i ) , richtsnelheid ( i ) ) ; e l s e i f r i c h t s n e l h e i d ( i )<s n e l h e i d ( i ) p l a a t s ( i )=p l a a t s ( i )+ 0 . 5 ∗ ( s n e l h e i d ( i )+min( s n e l h e i d ( i )− deceleratie ( i ) , richtsnelheid ( i ) ) ) ; s n e l h e i d ( i )=min( s n e l h e i d ( i )− d e c e l e r a t i e ( i ) , richtsnelheid ( i ) ) ; else p l a a t s ( i )=p l a a t s ( i )+s n e l h e i d ( i ) ; endif Hierna kan de for-loop die alle voertuigen langsgaat worden afgesloten. Vervolgens moet het eerste voertuig ook nog worden verplaatst. endfor p l a a t s ( 1 )=p l a a t s ( 1 )+V;
7.7
Uitvoer
Om een mooie uitvoer te kunnen krijgen, wordt de plaatsmatrix telkens toegevoegd aan de uitvoermatrix. Vervolgens is ook de for-loop voor de simulaties gereed, deze kan dus worden afgesloten. Dat is tevens het einde van het programma. u i t v o e r =[ u i t v o e r ; p l a a t s zeros ( 1 , te−t ) ] ; endfor In de uitvoermatrix geeft het kolomnummer het voertuignummer aan, en geeft het rijnummer de tijd aan. De getallen in de matrix zijn de plaatsen van een voertuig op een bepaalde tijd. De mooiste manier om deze gegevens grafisch weer te geven is met behulp van een plaatstijddiagram per voertuig. Het plot-commando werkt alleen als de invoer in horizontale matrices is ingevoerd. Daarom wordt de matrix eerst gedraaid. Dit kan door een accent achter de matrix te zetten. Dan wordt de eerste kolom de eerste rij, de tweede kolom de tweede rij, etc.
122
HOOFDSTUK 7. HET RECURSIEMODEL IN OCTAVE
Uit de gedraaide matrix moeten dan de afzonderlijke voertuigen geplot worden. Dit gaat het gemakkelijkste met een for-loop. Met het commando hold on weet Octave dat er meerdere grafieken in een figuur geplot moeten worden. Om te voorkomen dat de gebruiker telkens de nieuwe grafieken ziet, wordt de plot-functie eerst verborgen met een puntkomma, en wordt daarna een dummyfunctie (y = 0) gebruikt om de plot te laten zien. f o r j =1: t e p l a a t s e n=u i t v o e r ’ ( j , : ) ; hold on plot ( linspace ( 0 , te , t e ) , p l a a t s e n ) ; endfor hold on plot ( linspace ( 0 , t e ) , zeros ( 1 , 1 0 0 ) ) Daarna is het programma klaar en moet de functie nog worden afgesloten. T = plaats ; endfunction
Hoofdstuk 8
Resultaten bij het recursiemodel Met het programma uit hoofdstuk 6 zijn de grafieken uit dit hoofdstuk gemaakt. Er is telkens een standaardsituatie met de volgende parameters. • Q=2 • V = 30 • p = 0.5 • q ∈ [0.1, 0.3] • R ∈ [0.5, 1.5] • d ∈ [3, 5] • a ∈ [3, 7] • te = 1000 • a=2 • n=2 • k ∈ [2, 20] Verschillende parameters zijn in dit hoofdstuk veranderd ten opzichte van deze standaardsituatie. Daarmee bekijken we de effecten van die parameters in het recursiemodel. Deze parameters zijn achtereenvolgens de V , p, q en Q.
123
124
Maximumsnelheid 8.1
V = 20
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
8.1. MAXIMUMSNELHEID
V = 30
125
126
V = 40
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
8.1. MAXIMUMSNELHEID
V = 50
127
128
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
Enkele zaken vallen op. Bij hogere snelheden is ten eerste duidelijk de invloed van de n-secondenregel te zien. Deze raadt een hogere snelheid aan en daardoor is de doorstroming beter. Ten tweede rijdt het tweede voertuig bij hogere snelheden veel dichter op het eerste voertuig. Dit is waarschijnlijk alleen aan het toeval te wijten. Het is echter de vraag of een verhoging van de maximumsnelheid in de praktijk tot ene betere doorstroming leidt. V = 50m/s komt overeen met 180km/h. Door de grote technische verschillen tussen voertuigen, de grote gevaren en de langere remweg en optrekweg bij op- en afritten kan zoiets in de praktijk anders uitpakken.
n-secondenregel of minimaal verkeersgedrag
p = 0.25
8.2. N -SECONDENREGEL OF MINIMAAL VERKEERSGEDRAG 129
8.2
130
p = 0.5
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
8.2. N -SECONDENREGEL OF MINIMAAL VERKEERSGEDRAG 131
p = 0.75
132
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
Uit de grafieken blijkt dat er, bij een grotere waarde van p en dus een kleinere kans op het gebruiken van de n-secondenregel, een vorming van groepen plaatsvindt. Er rijden groepen voertuigen rond en daartussen valt telkens een vrij groot gat. Bij een lagere waarde van p is er meer interactie tussen de voertuigen. Bij grotere waardes van p zijn wel meer files te zien. Door de groepsvorming moeten de voertuigen dichter op elkaar rijden en ontstaan sneller files. Het valt daarbij op dat de files ook overslaan naar de volgende groep. De diagonale lijnen lopen vaak door.
Remkans
q ∈ [0.0, 0.2]
8.3. REMKANS
8.3
133
134
q ∈ [0.1, 0.3]
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
8.3. REMKANS
q ∈ [0.3, 0.5]
135
136
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
Het lijkt er vreemd genoeg op dat de congestie vermindert met een hogere remkans. Hier wijkt het recursiemodel duidelijk af van de werkelijkheid. Een verklaring kan zijn dat de voertuigen bij een lagere remkans een grotere gemiddelde snelheid hebben. Dit is te zien aan het feit dat de voertuigen bij een lage remkans verder komen in dezelfde tijdsperiode. Ten gevolge daarvan heeft een remming van 10% een groter effect op de achterliggende voertuigen, waardoor er meer congestie plaatsvindt.
Intensiteit
Q = 0.25, te = 125
8.4. INTENSITEIT
8.4
137
138
Q = 1, te = 500
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
8.4. INTENSITEIT
Q = 2, te = 1000
139
140
Q = 4, te = 2000
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
8.4. INTENSITEIT
141
Met een veranderde intensiteit moet ook de eindtijd te worden aangepast. Anders zou een vertekend beeld ontstaan. Bij Q = 4 betekent een simulatie van 1000 voertuigen dat de simulatie 250 seconden doorloopt. Bij Q = 0.25 betekent een simulatie van 1000 voertuigen dat de simulatie 4000 seconden doorloopt. Door de waarde van te te wijzigen loopt de simulatie altijd 500 seconden. Het is duidelijk te zien dat de filevorming extreem toeneemt als de intensiteit groter wordt. Bij Q = 0.25 zijn de files zeer kleinschalig en lokaal. Door de lage intensiteit blijft de file maar kort bestaan en beweegt deze niet verder naar achteren. Bij Q = 1 en Q = 2 is er al sprake van echte files en bij Q = 4 zijn de afzonderlijke files nauwelijks meer te onderscheiden.
142
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
Nawoord Als wij tegenwoordig in de file staan, worden we niet meer chagrijnig, integendeel. We denken terug aan dit geweldige onderzoek. We denken nog eens na over een hoe een file nu precies in elkaar zit en hoe we zelf kunnen bijdragen aan het oplossen van de file. Mede hierom was dit een zeer nuttig en relevant onderzoek. Een file is voor veel mensen toch een abstract begrip. Iedereen weet wat een file is, maar hoe ontstaat een file nou precies? Waardoor wordt een file erger en waardoor juist niet? Het zijn allemaal vragen waarop de meeste mensen geen antwoord weten. Mede daarom vonden we het heel erg leuk om dit onderzoek te doen. We maken niet alleen voor onszelf inzichtelijk hoe een file nu precies in elkaar zit, maar doen dit ook voor elke lezer van dit verslag. Hiermee hebben we het doel dat we onszelf stelden voor dit onderzoek ruimschoots gehaald. Buitengewone dank gaat nogmaals uit naar onze begeleidster Floske Spieksma. Zonder haar zou dit verslag er zeker niet uitzien zoals het nu voor u ligt. Zonder haar deskundigheid zouden we niet de diepgang hebben kunnen bereiken die we nu hebben gehaald en zonder haar hadden we nooit de modellen kunnen opstellen die we nu hebben gebruikt. Algemene conclusie en aanbevelingen Als opdracht voor dit onderzoek hadden we ons de vraag gesteld: “Hoe kun je een kwantitatieve analyse (oftewel simulatie) van filevorming opzetten?” We beschrijven verschillende modellen, waarvan we twee modellen verder uitwerken: het CA-model en het recursiemodel. Met deze modellen hebben we vervolgens enkele situaties kunnen doorrekenen. Hierdoor hebben we een goed inzicht gekregen in hoe het verkeer reageert in zulke situaties en hoe de file zich ontwikkelt. Een van de belangrijkste doelen van onderzoeken als deze is de beperking van het aantal files tot een minimum. Daarvoor is nog veel meer onderzoek nodig dan wij hebben uitgevoerd. Er zijn nog vele invloeden die verwerkt kunnen worden in het CA-model voor een nog realistischere weergave. Bovendien kunnen er een drie- en vierbaansmodel worden ontwikkeld om de situaties 143
144
HOOFDSTUK 8. RESULTATEN BIJ HET RECURSIEMODEL
van snelwegen goed te kunnen beschrijven. Ook kunnen bijvoorbeeld voertuigen met verschillende lengtes (zoals vrachtwagens) aan de cellulaire automaten worden toegevoegd. De resultaten zouden nog visueler kunnen worden gemaakt door bijvoorbeeld gebruik te maken van Java-applets. Kortom: er is altijd iets anders om te onderzoeken, des te meer in het dynamische en van mensen afhankelijke verkeer.
Bijlage A
Over LATEX Dit verslag is niet geschreven in een tekstverwerker zoals Microsoft Word, die gangbaar is op kantoren, op scholen en thuis, maar in LATEX. LATEX is een in de wetenschappelijke wereld vaak gebruikt programma voor het schrijven van teksten. In deze bijlage staat een beknopte uitleg over hoe LATEX werkt en wat de voordelen van LATEX zijn.
A.1
LATEX versus Microsoft Word
Het grote verschil tussen LATEX en Microsoft Word is de manier waarop de gebruiker aan de computer duidelijk maakt wat er op het papier komt te staan. Microsoft Word heeft een interface waaruit direct blijkt wat er op het papier staat. De gebruiker kan tekst typen en ziet onmiddelijk waar deze tekst op het papier staat, welk lettertype de tekst heeft, of de tekst cursief of vet is, etc. Bij LATEX geeft de gebruiker de opmaak uit handen en hoeft de gebruiker alleen in te voeren wat hij op het papier wil hebben. LATEX regelt dan de rest. LATEX heeft om dit uit te voeren een simpel bestand nodig waarin alle inhoud staat. Dat bestand heeft twee onderdelen: de preamble en het document.
A.2
De structuur van het bestand
Een bestand dat LATEX vertelt wat het op papier moet zetten ziet er als volgt uit. . . . de preamble . . . \ b e g i n { document } . . . h e t document . . . \end{ document }
145
146
BIJLAGE A. OVER LATEX
De enige verplichte regel binnen de preamble is het commando documentclass. Deze regel geeft aan welke opmaak LATEX moet gebruiken voor het document. Mogelijke klassen zijn article, book en report. \ documentclass { a r t i c l e } In het document kan de gebruiker vrij een text typen. Met de volgende invoer \ documentclass { a r t i c l e } \ b e g i n { document } Lorem ipsum d o l o r s i t amet , c o n s e c t e t u r a d i p i s i c i n g e l i t , s e d do eiusmod tempor i n c i d i d u n t ut l a b o r e e t d o l o r e magna a l i q u a . Ut enim ad minim veniam , q u i s n o s t r u d e x e r c i t a t i o n u l l a m c o l a b o r i s n i s i ut a l i q u i p ex ea commodo c o n s e q u a t . \end{ document } genereert LATEX de volgende uitvoer: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
A.3
Commando’s
Om de opmaak te regelen gebruikt LATEX commando’s. Een commando wordt altijd voorafgegaan door een backslash (\). Een simpel commando is \\, dat ervoor zorgt dat LATEX een nieuwe regel begint. Sommige commando’s hebben een of meerdere paramters nodig om te functioneren. Het commando \emph staat voor emphasise en geeft de tekst in de parameter een bepaalde opmaak om die tekst te benadrukken. Een voorbeeld: \ documentclass { a r t i c l e } \ b e g i n { document } Lorem ipsum d o l o r s i t amet , c o n s e c t e t u r \\ a d i p i s i c i n g e l i t , s e d do eiusmod tempor i n c i d i d u n t ut l a b o r e e t d o l o r e magna a l i q u a . Ut enim ad minim \emph{ veniam } , q u i s n o s t r u d e x e r c i t a t i o n u l l a m c o l a b o r i s n i s i ut a l i q u i p ex ea commodo c o n s e q u a t . \end{ document } geeft
A.4. WISKUNDIGE NOTATIES
147
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
A.4
Wiskundige notaties
LATEX kan zeer eenvoudig wiskundige notaties weergeven. Hiervoor moet de invoer worden gegeven in de wiskundemodus. Om naar de wiskundemodus te wisselen moet de wiskundige invoer tussen dollartekens staan. LATEX heeft twee stijlen voor wiskunde: een kleine stijl die binnen regels past en een grote stijl die een nieuwe regel begint. De eerste geeft men aan met enkele dollartekens, de tweede met dubbele dollartekens. Een voorbeeld: \ documentclass { a r t i c l e } \ b e g i n { document } Een f u n c t i e $ f ( x ) $ i s c o n t i n u i n $a$ a l s $\ l i m {x uparrow a } f ( x ) = \ l i m {x \ downarrow a} f ( x ) = $ . Een f u n c t i e i s d i f f e r e n t i e e r b a a r i n $a$ a l s ) $ c o n t i n u i s i n $a$ en a l s $$ \ l i m {x \ uparrow ’ ( x ) = \ l i m {x \ downarrow a} f ’ ( x ) = f ’ ( a ) $$ \end{ document }
\ f (a) $f (x a} f
geeft Een functie f (x) is continu in a als limx↑a f (x) = limx↓a f (x) = f (a). Een functie f (x) is differentieerbaar in a als f (x) continu is in a en als lim f 0 (x) = lim f 0 (x) = f 0 (a) x↑a
x↓a
Spaties worden in de wiskundemodus genegeerd. Een subscript maken, bijvoorbeeld bij het limietcommando \lim, gebeurt met een laag streepje ( ). Als het subscript uit meer dan ´e´en karakter bestaat, moet het subscript tussen accolades geplaatst worden. Iets als a 15 zou bijvoorbeeld a1 5 als resultaat geven, terwijl a 15 het resultaat a15 geeft. Commando’s als \uparrow en \downarrow spreken voor zich.
A.5
De PDF samenstellen
Er zijn diverse programma’s die een tekst, in de vorm van een .tex-bestand, omzetten naar een PDF. Een van die programma’s is MiKTEX. Bij MiK TEX wordt ook een teksteditor geleverd die gespecialiseerd is voor het maken van TEX-bestanden.
148
BIJLAGE A. OVER LATEX
Bijlage B
GNU Octave Het programma waarin we het modelleerwerk hebben gedaan heet GNU Octave. Deze bijlage geeft meer uitleg over dit programma.
Figuur B.1: Een van de vele mogelijkheden van Octave [1]
B.1
Geschiedenis
Het project omtrent Octave begon ooit in 1988. Toen was het nog bedoeld als software bij een opleiding voor het ontwerpen van een chemische reactor. Pas in 1992 begon de echte ontwikkeling van het programma door John W. Eaton. Het programma is vernoemd naar professor Octave Levenspiel, ´e´en van de schrijvers van het programma die ook bekend stond om zijn snelle back-of-the-enveloppe calculations [7]. 149
150
B.2
BIJLAGE B. GNU OCTAVE
Wat is Octave?
Octave is een open-source en interactief programma voor het numeriek oplossen van wiskundige problemen. Dit is een leuke binnenkomer maar betekent: de broncode van Octave is vrij, en dus is het iedereen geoorloofd zelf dingen te bedenken om het programma aan te vullen. Het is een interactief programma en reageert dus op de wensen die de gebruiker heeft. Het lost de problemen die de gebruiker invoert numeriek op, wat betekent dat de uitkomst een getal betreft. Je voert een aantal vergelijkingen in en vervolgens berekent het programma voor welke waarden van de variabelen dat geldt. Dit in tegenstelling tot programma’s die een symbolische oplossing geven voor een probleem. Dit betekent dat er niet een getal uit komt, maar een vergelijking van variabelen waaraan de uitkomst voldoet. De offici¨ele naam voor Octave is GNU Octave. Hierin staan de letters GNU voor General Public License. Het programma is gratis en iedereen is vrij om er extra dingen aan vast te programmeren om zo het programma helemaal naar eigen wensen te maken. Octave is vooral goed in het werken met matrices. In het gehele verslag is duidelijk te zien dat het werken met matrices in Octave buitengewoon makkelijk gaat. De uitkomsten zijn duidelijk en zijn geschikt om weer mee verder te werken. Als we het programma Octave in zijn geheel bekijken is dit het best te vergelijken met een zeer krachtige, goed programmeerbare, grafische rekenmachine [8].
B.3
Octave vs. Matlab
Het meest gebruikte programma op universiteiten in de categorie van Octave is Matlab. Matlab biedt op verschillende gebieden meer mogelijkheden dan Octave. Verder zijn sommige commando’s verschillend. Waarom zou men dan in plaats van Matlab Octave gebruiken? De voornaamste reden is geld. Matlab is dan wel uitgebreider, het kost ook een flinke duit. Universiteiten betalen flink voor de licenties voor Matlab met als gevolg dat al hun studenten en medewerkers op het hoogste niveau kunnen werken. Voor de particulier die even wat wil modelleren, is Matlab daarom geen optie. Octave biedt hiervoor een goede gratis oplossing.
B.4
Voorbeelden
Octave is in feite een zeer uitgebreide rekenmachine en dus zijn de meest simpele sommen ook mogelijk met Octave: >> 2+1 ans = 3
B.4. VOORBEELDEN
151
Zo is te zien dat Ocatve de meest simpele sommen kan behandelen. Eerder is al gezegd dat Octave goed is in het behandelen van matrices. Stel we voeren een matrix a en een matrix b in: >> a=[1 5 7; 3 4 1; 6 9 2] a = 1 3 6
5 4 9
7 1 2
>> b=[1 4 7 5 9; 3 6 1 4 7; 9 0 7 5 0] b = 1 3 9
4 6 0
7 1 7
5 4 5
9 7 0
Te zien is hierin hoe matrices moeten worden ingevoerd in Octave. Je begint een matrix altijd met een [, hierna volgen getallen met een spatie tussen elke waarde, een ; zorgt voor een nieuwe regel en een ] sluit de matrix weer af. Het enige wat we hoeven te doen om deze 2 matrices te vermenigvuldigen is het volgende: >> c=a*b c = 79 24 51
34 36 78
61 32 65
60 36 76
44 55 117
We zien dat matrix c de vermenigvuldiging is van matrix a en matrix b. Voor de mensen die niet bedreven zijn met het principe van matrixvermenigvuldigen: De waarde linksboven wordt bepaald door de horizontale waarden in de eerste rij van matrix a te vermenigvuldigen met de eerste verticale kolom van matrix b op de volgende wijze: c(1, 1) = [1 ∗ 1 + 5 ∗ 3 + 7 ∗ 9] = 79. Op deze manier kan elke waarde worden bepaald [3]. Ook voor het maken van een klein script is Octave geschikt: >> a=4; b=2; >> if a>=b c=1 else c=0 end
152
BIJLAGE B. GNU OCTAVE
c = 1 Je ziet dat zodra je een regel typt met een if commando erin, Octave automatisch naar een volgende regel zonder springt. Hierin kan je defini¨eren welke voorwaarden er eventueel nog meer gelden en wat de verschillende uitkomsten zijn. Voor het model dat wij hebben gemaakt is het niet re¨eel om elke handeling iedere keer weer opnieuw zelf in te typen. Door alle handelingen in een apart .m bestand te typen (zoals beschreven in het hoofdstuk over ons zelfgemaakte CA model), kunnen we dit automatiseren. Het enige wat we dan nog in Octave hoeven te doen (als het script eenmaal goed werkt) is de variabelen op te geven en de .m file te draaien: >> c=[1 0 0 1 1 0 0 1 0 0; 3 0 0 1 3 0 0 2 0 0] c = Columns 1 through 8: 1 0 3 0
0 0
1 1
1 3
0 0
0 0
1 2
Columns 9 and 10: 0 0 0 0 Hierboven is te zien dat we eerst de beginconfiguratie weergeven. Deze noemen we c om straks naar te kunnen verwijzen. We draaien het ´e´enbaansmodel cellbasis.m door het typen van cellbasis(...). Tussen de haakjes vullen we vervolgens de verschillende variabelen in. Eventueel is via het typen van help cellbasis een uitleg op te roepen van welke variabele waar moet worden ingevoerd. De eerste waarde is vmax , de tweede de beginmatrix en de derde de kans p. >> cellbasis(4,c,0.1) ans = Columns 1 through 8: 0 0 0 0 Columns 9 and 10: 0 1 0 2 Octave doet de rest.
1 2
1 0
0 0
1 1
0 0
0 0
Bibliografie [1] GNU Octave, Wikipedia. http://en.wikipedia.org/wiki/GNU Octave, 19-11-2009. [2]
Kilometerprijs eindelijk in gang. http://www.kilometerheffing.org /nl/index.php/kilometerprijs-eindelijk-in-gang.html, 25-11-2009.
[3]
Matrix Multiplication. http://www.mathwarehouse.com/algebra /matrix/multiply-matrix.php, 19-11-2009.
[4] Modulo Operation. http://en.wikipedia.org/wiki/Modulo operation, 22-11-2009. [5] Wiskundig model. http://nl.wikipedia.org/wiki/Wiskundig model, 22-11-2009. [6] Hoogendoorn, S.P. Multiclass continuum modeling of multilane traffic flow. Trail Thesis Series nr. T99/4, 1999. [7] Eaton, John W. About Octave. /octave/about.html, 19-11-2009.
http://www.gnu.org/software
[8] Long, Dr. P.J.G. Introduction to Octave. September 2005. [9] Minderhoud, M.M. Supported Drinving: Impacts on Motorway Traffic Flow. Trail Thesis Series nr. T99/4, 1999. [10] Roubos, Dennis. Wiskundige modellen voor filevorming. BWI-werkstuk, vrije Universiteit Amsterdam, 2006. [11] Schadschneider, Andreas Traffic flow modelling. http://www.thp.unikoeln.de/∼as/Mypage/traffic.html, 25-11-2009. [12] Spieksma, Floske. Kansrekening en Markov ketens. Universiteit Leiden, 29 Augustus 2006. [13] Witt, Robert de. Dagelijkse files kosten economie half miljard. In: Elsevier, 26 april 2007.
153
Index .m bestanden cellbasis.m, 56 cellbasisloop1.m, 58 cellbasisloop2.m, 60 cellbasisvmax.m, 61 tweebaan.m, 63 tweebaanloop1.m, 70 tweebaanloop1pech.m, 94 tweebaanloop2.m, 72 tweebaanpech.m, 94
microscopische modellen cellulaire automaten, 11 follow te leader, 11 wachtrij, 11–13 modulo-rekenen, 54 parti¨ele differentiaalvergelijking, 16
aankomstproces, 12, 13
recursiemodel, 100 minimaal verkeersgedrag, 101 n-secondenregel, 105 richtsnelheid, 110
bedieningseigenschappen, 12, 13
snelheid, 14
cellulaire automaten eenbaansmodel, 21–24, 30 tweebaansmodel, 24–26 configuratiematrix, 22
wachtrij, 13 wetten behoud van voertuigen, 16
definitie file, 75 dichtheid, 15 GNU Octave, 49, 147 intensiteit, 14 markovketens, 27–47 modellen macroscopische, 11, 14–18 LWR model, 18 Pyne model, 18 microscopische, 11, 19–26 cellulaire automaten, 21 follow the leader, 19 intelligent driver, 21 safe distance, 19 stimulus-response, 20 154