-----------------------------------------------------------------------------------------
 MARPLE (Model for Assignment and Regional PoLicy Evaluation)
 versie 3.9.0 © 2004-2025 Henk Taale, Rijkswaterstaat & TU Delft
-----------------------------------------------------------------------------------------

Installatie:
------------
Om MARPLE te kunnen draaien, dient eerst de bibliotheek met MATLAB Runtime 
Components geïnstalleerd te worden. Dat kan door de het pakket MATLAB Runtime
version 23.2 (R2025a) te installeren. Volg verder de aanwijzingen op het scherm en start
de PC opnieuw op. Indien aanwezig verwijder eerst de oude versie van MARPLE. Installeer 
dan MARPLE met 'MARPLE_setup.exe'. Volg verder de aanwijzingen op het scherm.

Om MARPLE binnen de OmniTRANS plugin te gebruiken, kan via de menukeuze
'Project - Instellingen' de locatie van de MARPLE executable opgegeven
worden.


Wijzigingen:
------------

versie  3.9.3 : - Fout in uitvoer van totale aantal voertuigen opgelost.
                - Fout opgelost met routes met hele lange reistijden. De toedeling
				  ging dan niet goed. Daar een oplossing voor geïmplementeerd.
                - De indeling van de y-as flow plots was soms niet logisch. Dat is
				  aangepast.
                - De mogelijkheid is ingebouwd om per regelperiode linkuitvoer te
				  generen en regelinvoer in te lezen via CSV-files. Details staan in
				  de handleiding.

versie  3.9.0 : - In de netwerkinvoer zijn tabellen toegevoegd waardoor MARPLE kan
                  werken met dynamische groentijden en cyclustijden die in die 
				  tabellen staan (//DynTrafSignals en //DynRampMeters).
                - Fout in de module RTControl is opgelost.

versie  3.8.2 : - Een nieuwe parameter (de 9e) van //PlotPar bepaalt of een grafiek met
                  convergentie indicatoren wordt aangemaakt.
                - Fout in het genereren van de output voor de regelaars is opgelost.
				- Er worden extra uitvoertabellen voor de netwerkindicatoren aangemaakt
   				  in de uitvoerfile. Dat gaat om de som van alle iteraties en het
				  gemiddelde over de iteraties.
				- Er worden extra uitvoerfiles in het JSON format gegenereerd voor de
				  linkdata en netwerkdata.
				- Van een aantal plots is de vormgeving verbeterd.

versie  3.8.1 : - De sources van MARPLE zijn overgezet naar GitHub.
				- De invoer- en uitvoerfiles zijn nu netjes gescheiden. Gebruikers kunnen
				  daarvoor verschillende mappen opgeven.
				- Bij het checken van de bestaande routes wordt nu ook gekeken naar het
				  aantal links en knopen in het netwerk. Als dat veranderd is, dan worden
				  de routes opnieuw gegenereerd.
				  
versie  3.7.9 : - Wegschrijven van linkflows ging niet goed in de plugin.

versie  3.7.8 : - In de convergentieplot die gemaakt wordt aan het einde van een
                  toedeling wordt nu de delay, inclusief entrance delay, getoond.
                - De netwerkindicatoren van alle iteraties worden nu opgeslagen
				  in de file NetworkData.mat.
                - In de file LinkData.mat worden nu zowel de Inflow als de Outflow
				  opgeslagen.
				- Een aantal foutjes zijn opgelost.

versie  3.7.5 : - De combinatie van incident simulatie en simulatie met time penalty is
                  onmogelijk gemaakt.
                - Fouten opgelost bij het inlezen van bepaalde netwerken.
                - De assen van bepaalde plots worden nu beter weergegeven.
                - Er is een uitvoerfile ResultingCapacity.txt toegevoegd waarin de
				  resulterende capaciteiten van elke link voor elke tijdsperiode
				  weergegeven zijn. Capaciteiten van links kunnen veranderen door
				  regelingen en door events.
                - Standaard wordt een plot aangemaakt waarin de totale vertraging in het
				  netwerk en de convergentiefout worden weergegeven.

versie  3.7.0 : - Een probleem met genereren van routes bij 1 HB-paar opgelost.
				- Gebruikers kunnen nu voor netwerktypes of links met een IC-verhouding
				  groter dan een drempelwaarde, een tijdpenalty opgeven per user class.
				  Dit maakt dat een deel vanhet verkeer een andere, dan kortere, route
				  gaat kiezen. Dit kan voor het netwerk voordelig zijn.
				- Het aantal voertuigen in het netwerk wordt nu beter berekend.
				- Als er een verschil is tussen de route flows en de verkeersvraag,
				  wordt dit verschil nu beter verdeeld over de beschikbare routes.
				- Het plotten van regelaarinformatie is aangepast, zodat het klopt met
				  de opgegeven nummering.				  
				  
versie  3.5.2 : - Procedure voor afslagverboden is verbeterd.
				  
versie  3.5.1 : - Bij het genereren van routes werden de nieuwe routes met de bestaande
                  vergeleken op basis van links. Dat gebeurt nu op basis van nodes en dat
				  gaat veel sneller.
				- Bij afslagverboden ging het genereren van de eerste route niet goed. Dit
				  is opgelost.
				  
versie  3.5.0 : - De plugin voor OmniTRANS is aangepast, zodat de resultaten veel sneller
                  worden weggeschreven. Ook is de plugin sterk verbeterd, zodat het
				  bedienen daarvan een stuk makkelijker is.
				- Een fout in de afhandeling van events opgelost.
				- Emissies werden alleen berekend voor de eerste iteratie. Dat is
				  aangepast: de emissies worden nu voor de laatste iteratie berekend.
				  
versie  3.4.7 : - Extra toedelingsoptie ten behoeve van testen voor de Mobiliteitsscan.

versie  3.4.5 : - Extra uitvoerfile ‘ZoneDemand.txt’ waarin de totale vraag per herkomst
                  en bestemming per tijdperiode weergegeven wordt. Dit om te controleren
                  of het verkeer het netwerk wel op en/of af kan.
                - Kleine bugs opgelost.

versie  3.4.0 : - Extra foutmeldingen indien er wel plots worden gevraagd, maar niet 
                  zijn gespecificeerd in de file MARPLE-Graphs.txt.
                - Toevoegen van uitvoer over emissies van CO, CO2, HC, NOx en PM.
				  Dat gaat via een extra parameter in de uitvoerparameters. Verder zijn er
				  emissieparameters geïntroduceerd die iets zeggen over het percentage
				  vrachtverkeer waarmee gerekend wordt en de manier waarop de uitvoer wordt
				  opgeslagen (in binair en/of Excel formaat).

versie  3.3.1 : - Toevoegen van plots van reistijden voor bepaalde routes. Deze worden 
                  gegenereerd met specifieke plotparameters. De routes worden opgegeven via
				  de file Marple-Graphs.txt.
                - Via de Resume parameter kan nu de simulatie per tijdstap gestopt en
				  hervat worden. 

versie  3.2.0 : - Toevoegen van plots van link flows en speeds en groen- en cyclustijden.
				  Deze worden gegenereerd met specifieke plotparameters.
                - Het profiel van de verkeersvraag kan nu realistischer ingevoerd worden.
				  Voorheen sprong de verkeersvraag bij de overgang van de ene naar de andere
				  periode. Nu is een geleidelijk verloop ook mogelijk.
                - Knoopmodel aangepast: bij de berekening van splitsfracties wordt nu
                  rekening gehouden met de (free flow) reistijd.
                - Structureren van parameters in parameter file.
                - Tolheffing opnieuw en beter geïmplementeerd en daarvoor ook de uitvoer
				  uitgebreid.
				- Optimalisatie van geheugengebruik.
                - Model voor rotondes en ongeregelde kruispunten werkten nog met vaste
				  parameters. Deze zijn nu link afhankelijk.
                - Aantal links, nodes, origins, destinations, OD pairs en routes aan de
				  uitvoer toegevoegd.
                - Heel veel kleine fouten verholpen.

versie  2.4.0 : - Tijdens de simulatie wordt voor elke iteratie niet alleen
                  de totale vertraging weergegeven op het scherm (en in de logfile,
				  maar ook de vertraging in de zones (entrance delay).
				- In de uitvoerfile wordt bij de linkuitvoer naast de gemiddelde
				  snelheid per link per periode, nu ook de variantie in de snelheid
				  gegeven. Beide zijn gebaseerd op het aantal tijdstappen in de periode.
				- Er bestaat de mogelijkheid om via opgegeven links de HB-matrix aan
				  te passen. De relaties die deze link gebruiken worden met een bepaald
				  percentage gewijzigd. Dat kan handig zijn om snel de matrix te
				  kalibreren. Dit gaat via de selected links.
				- MARPLE is geschikt gemaakt om DRIP's te simuleren. De gebruiker kan
				  opgeven waar de routeinformatie wordt gegeven. MARPLE deelt het verkeer
				  vervolgens toe via een evenwichtstoedeling. Daarna wordt het verkeer
				  dat via de links met DRIP's rijdt, opnieuw toegedeeld en wordt 
				  aangenomen dat ze meer informatie hebben. In combinatie met de
				  mogelijkheid om incidenten te simuleren, geeft deze optie veel leuke
				  mogelijkheden. Zo kan eerst een incident zonder informatie gesimuleerd
				  worden en gelijk daarna met informatie. De verschillen worden zo goed
				  zichtbaar.
				- Indien de gebruiker dat opgeeft kan MARPLE nu contourplots en MFD plots
				  genereren. De contourplots worden voor opgegeven trajecten geproduceerd
				  en de MFD plot voor het hele netwerk.

versie  2.1.1 : - Verbeteren geheugengebruik bij genereren routes voor grote
                  netwerken.
				- Verbeteren geheugengebruik bij toedelingsmodule.
				- Verbetering in het bijhouden van timers.

versie  2.1.0 : - De berekening van de vertraging indien er al een wachtrij staat
                  is aangepast. Bij het opsplitsen van een lange link in meerdere
				  korte links, werd een heel andere reistijd berekend voor
				  dezelfde situatie. Dit is nu aangepast.

versie  2.0.0 : - De uitvoer van MARPLE wordt nu ook binair opgeslagen om het
                  inlezen in OmniTRANS te vergemakkelijken.
                - MARPLE kan nu rechtstreeks schrijven in de OmniTRANS database.
				  Dat is mogelijk door in de file met de MARPLE parameters een
				  extra 'Output' parameter mee te geven: 'BinaryOutput'. Als
				  deze parameter de waarde 1 heeft, dan schrijft MARPLE in de 
				  OmniTRANS database, mits er bij de aanroep van MARPLE 2 extra 
				  inputdirectories worden meegegeven, naast de 3 files. De aan-
				  roep moet dan zijn: "MARPLE file1 file2 file4 dir4 dir5", met:
				  file1 = de file met parameters;
				  file2 = de file met netwerk;
				  file3 = de uitvoerfile;
				  dir4  = de MARPLE directory van het OmniTRANS project;
				  dir5  = de directory van de variant van het OmniTRANS project.
				  Overigens werkt MARPLE ook nog steeds zonder de laatste 2
				  invoerparameters.
				- Vanaf deze versie wordt de nieuwste MATLAB compiler gebruikt
                  (versie 7.14). Dat betekent dat de gebruikers een nieuwe
                  "Matlab Components Runtime" (MCR) bibiotheek moeten gebruiken.

versie  1.9.0 : - Het inlezen van de routes is sneller gemaakt.
                - Extra foutmeldingen bij het inlezen van de OD table
				- Voor grote netwerken (Nederland) traden er geheugenproblemen
				  op. Deze zijn zoveel mogelijk opgelost door het aantal 
				  variabelen te verminderen.
				- In de logfile wordt nu ook de duur van de simulatie weergegeven.

versie  1.8.1 : - Het berekenen van wachtrijen voor korte links ging mis bij het
                  oplossen van files. Deze fout is verholpen.
                - Bij de simulatie van incidenten gaat het inlezen van initiële
                  routeflows sneller en nauwkeuriger doordat deze worden opgeslagen
                  in de binaire file 'EndFlows.mat'.

versie  1.8.0 : - Het is met MARPLE nu mogelijk om route-informatie mee te nemen
                  in de simulaties. Daarvoor kan in de netwerkfile een extra
                  kaart worden opgenomen met de volgende structuur:
                  
                  //VMSinfo
                  ;linknr  routeinfo  incident  deltaTeta
                        1          1         0        1.0 
                        2          0         1        1.0  
                        
                  Het linknummer betreft de links waarvoor route-informatie beschik-
                  baar is. De volgende twee parameters geven aan of het normale
                  route-informatie is, of route-informatie bij incidenten. Voor
                  allebei mag ook. In de toedeling wordt rekening gehouden met 
                  route-informatie door voor die routes die gebruik maken van de
                  gespecificeerde link, de routekeuze paramater (teta) te verhogen. 
                  Dat gebeurt met de waarde die bij deltaTeta wordt opgegeven.
                - MARPLE is uitgebreid met de mogelijkheid om vanuit de evenwichts-
                  toedeling extra simulaties te doen. Dat kan bijvoorbeeld voor
                  incidenten of WIU. In de parameterfile wordt dat als volgt gespe-
                  cificeerd:

                  //EventSimPar
                  ;EventSimType  EventSimAssign  EventSimNrIter  
                              2               0              30  

                  De parameters EventSimType geeft het type extra simulatie weer:
                  0 = geen extra simulatie van events;
                  1 = extra simulatie van events;
                  2 = extra simulatie van events en daarbij route-informatie gebruiken.
                  Alleen de events met type 2 en 3 worden daarbij meegenomen en voor
                  EventSimType 2 wordt in de extra runs alleen gekeken naar die links
                  waarvoor de parameter incident op 1 staat.      
                - De schermuitvoer van MARPLE wordt nu in een aparte file opge-
                  slagen. Dan kan later de run makkelijker geanalyseerd worden.
                  De file heeft de standaardnaam 'MARPLE-log-yyyymmdd-hhmmss.txt'.        
                  
versie  1.7.5 : - Extra foutmeldingen ingebracht bij het checken van trajecten.    
                - Ten behoeve van contourplots worden snelheid en intensiteit per
                  minuut weggeschreven in ContourComplete.mat.                
                  
versie  1.7.4 : - Routeflows worden nu weggeschreven met 3 decimalen. Dit om de nauw-
                  keurigheid bij het opnieuw inlezen (bij simulatie van incidenten)
                  groter te maken.                   

versie  1.7.3 : - Fout bij het genereren van routes opgelost.                  

versie  1.7.2 : - Bij het verwerken van events op een bepaald tijdstip werden
                  eerst de events met een start tijdstip verwerkt en daarna de events
                  met een eindtijdstip. Dat gaf problemen indien voor dezelfde link
                  op hetzelfde tijdstip een event werd beëindigd en gestart. Het
                  tweede event kwam dan nooit aan de beurt. Nu worden eerst de events
                  beëindigd en daarna gestart.                  

versie  1.7.1 : - Bij het ontbreken van events kon de berekening van de vertraging
                  niet uitgevoerd worden. Deze fout is er uit gehaald.
                - Bij de simulatie van incidenten moet de uitvoer parameter > 0 zijn.
                  Bij het lezen van de parameters wordt daar nu op gecheckt.

versie  1.7.0 : - Bij het inlezen van het netwerk wordt nu een check uitgevoerd
                  of de links bij events wel in het netwerk en de routes zitten.
                - De variabele 'DelayType' in de parameter file heeft een andere
                  betekenis gekregen. Voorheen was dat het type formule dat bij
                  berekeningen van vertraging bij lokale regelingen gebruikt werd.
                  De betekenis is nu volgt:
                  DelayType = 0: bij de berekening van vertraging wordt als basis
                                 de opgegeven maximum snelheid gebruikt;
                  DelayType > 0: bij de berekening van vertraging wordt zowel
                                 de opgegeven maximum snelheid als de aangepaste
                                 maximum snelheid (bij events) gebruikt.
                - De optimalisatie van verkeerslichtenregelingen is aangepast.
                  Voorheen werd dat op basis van linkflows gedaan, maar bij
                  congestie werd dan geen rekening gehouden met het aanbod. Nu
                  wordt in de berekening gebruik gemaakt van route flows.
                - In vorige versies werd de vrije reistijd aan het eind van elke
                  periode berekend en toegekend aan de gehele periode. Bij het
                  gebruik van events is dat niet nauwkeurig. Nu wordt daarom
                  een gemiddelde vrije reistijd per periode berekend en deze
                  wordt ook gebruikt voor het berekenen van de vertraging.
                - Voor de simulatie van incidenten en WIU is een aparte procedure
                  opgezet. De gebruiker voert incidenten en/of WIU in als aparte
                  event types. Deze worden in de eerste toedeling niet meegenomen. 
                  In de extra toedeling wordt uitgegaan van de routekeuze van de 
                  eerste toedeling en worden de incident en/of WIU events wel
                  meegenomen. Bovendien kan in de extra toedeling een andere
                  verdeling over de user classes gebruikt worden. Dit om ander
                  routekeuze gedrag mee te kunnen nemen.
                  Een ander wordt geregeld met de //EventSimPar kaart in de file
                  met MARPLE parameters, de //Events kaart en de //UserClasses
                  kaart in de netwerk file.

versie  1.6.8 : - Betere controle op het aantal herkomsten en bestemmingen.
                - Check op totale vraag bij het gebruik van initiële route flows
                  verbeterd.
                - Het inlezen van initiële route flows wordt nu zichtbaar gemaakt.
                - Er zijn extra boodschappen toegevoegd waardoor het inlezen van
                  het netwerk nog beter zichtbaar wordt.
                - Er zat een fout in de berekening van de routekeuze van gewoonte-
                  rijders. Deze fout is er uit gehaald.

versie  1.6.7 : - Door een fout in het blocking back mechanisme kon het gebeuren
                  dat er negatieve intensiteiten ontstonden. Dit is verholpen.

versie  1.6.6 : - De foutmeldingen en waarschuwingen worden nu in twee aparte
                  files gezet (MARPLE-errors.txt en MARPLE-warnings.txt), i.p.v.
                  in één file (MARPLE-messages.txt).
                - De laatste cyclustijd in de tabel met signaalgroepen werd niet
                  getoond indien het slechts één signaalgroep was. Dat is nu wel
                  goed.
                - Bij het inlezen van het netwerk wordt nu een foutmelding getoond
                  als in een knoop een niet bestaande link wordt gebruikt.
                - Bij het inlezen van het netwerk wordt een foutmelding gegeven
                  als het aantal HB intensiteiten niet overeenkomt met het aantal
                  tijdsperioden in de simulatie.
                - Er trad een vreemde fout op indien er links waren opgegeven voor
                  de selected link analyse, maar deze links kwamen niet meer in de
                  routes voor.

versie  1.6.5 : - Probleem met de hoeveelheid verkeer in knopen verholpen bij het
                  hervatten (resume) van een simulatie.

versie  1.6.4 : - Probleem met de hoeveelheid verkeer in het netwerk verholpen bij
                  het hervatten (resume) van een simulatie.
                - Bij het hervatten van een simulatie wordt nu ook het verkeer
                  meegenomen dat in de vorige simulatie in de herkomst bleef staan.
                - In de uitvoerfile is een extra tabel opgenomen met het totaal
                  aantal voertuigen in de herkomsten per tijdsperiode.

versie  1.6.3 : - Opnieuw probleem met de hoeveelheden inkomend en uitgaand verkeer
                  verholpen.
                  
versie  1.6.2 : - De hoeveelheden inkomend en uitgaand verkeer klopten niet met
                  elkaar. Dat is verbeterd.
                - Door sommige teksteditors werd het 'einde-regel' karakter niet
                  goed gelezen of weergegeven. Dat is aangepast.
                - Bij het inlezen van het netwerk is een check op het aantal
                  afslagverboden ingebouwd. Dat zorgde soms voor problemen, terwijl
                  de foutmelding niet duidelijk was.
                  
versie  1.6.1 : - Een andere manier van de opslag van de resultaten van een selected
                  link analyse is geïmplementeerd. De resultaten worden nu ook in
                  een boomstructuur opgeslagen, zodat deze makkelijker gevisualiseerd
                  kunnen worden. Dat gebeurt in de file 'SelectedLinkExtended.txt'.
                - De vertraging in de zone wordt nu ook per deelnetwerk berekend en
                  in de uitvoer in een aparte tabel weergegeven.
                - De uitvoer in de file 'SelectedLink.txt' wordt nu in 2 decimalen
                  weergegeven.
                - In de uitvoer is een extra tabel opgenomen met het aantal voertuigen
                  in de simulatie aan het einde van de periode.
                - Indien er een uitvoerdirectory is opgegeven, worden daar nu alle
                  uitvoerfiles in gezet.
                                    
versie  1.5.6 : - Bij een toedeling werd de cyclustijd nog berekend aan de hand
                  van de groentijden. Dit is niet de bedoeling als de gebruiker
                  vaste groentijden en een bepaale cyclustijd opgeeft.
                - Bij het inlezen van het netwerk wordt gecheckt of voor de
                  signaalgroepen de groentijd groter is dan de cyclustijd. Als dat
                  zo is, wordt een foutmelding gegeven.
                - In de uitvoerfile wordt in de signaalgroepentabel, naast de groen-
                  tijden, ook de cyclustijd per regelaar en per periode geprint.
                  
versie  1.5.5 : - Extra check ingebouwd bij het herverdelen van kleine HB-relaties.
                  Het delen door 0 wordt zo vermeden en de daarmee gepaard gaande
                  onrealististische intensiteiten.

versie  1.5.4 : - Indien er fouten in het netwerk gedetecteerd werden, ging het mis
                  bij het printen van de uitvoerfile.
                - De som van de groentijden van een starre regelaar mag nu groter zijn
                  dan de cyclustijd. Er wordt nog wel een waarschuwing gegeven in een 
                  aparte file 'Marple-warnings.txt', maar geen foutmelding meer.
                  Bij een geoptimaliseerde regelaar kan het dan voorkomen dat de
                  verliestijd op het kruispunt kleiner dan nul wordt. Als dat zo is,
                  dan wordt deze nul verondersteld.

versie  1.5.3 : - Fout in het inlezen van de toeritdoseer parameters verholpen.

versie  1.5.2 : - Fout in de optimalisatie van verkeerslichtenregelingen verholpen.
                - Bij het optimaliseren van regelingen wordt nu ook rekening gehouden
                  met het hogere aanbod door het optreden van wachtrijen.

versie  1.5.1 : - Probleem met brugopeningen opgelost. Wachtrijen verdwenen te
                  snel en daardoor klopten de totale verliestijd en de reistijden
                  niet.

versie  1.5.0 : - Extra uitvoer per deelnetwerk:
                  Per netwerkindicator (totaal afgelegde afstand, totale tijd,
                  gemiddelde snelheid, totale vertraging) wordt een tabel gemaakt
                  waarin per netwerktype en tijdperiode de waarde van de
                  desbetreffende indicator wordt vermeld.

versie  1.4.5 : - Extra parameters voor toeritdosering:
                  percInc: percentage waarmee capaciteit van stroomafwaartse
                           link wordt verhoogd als effect van toeritdosering
                  algCap:  capaciteit waarmee het doseeralgoritme rekent: hoe
                           lager, hoe strenger er gedoseerd wordt

versie  1.4.4 : - Sources voor uitvoer gereorganiseerd voor beter onderhoud
                - Vergelijken van file namen is nu onafhankelijk van het gebruik
                  hoofdletters.
                - Totale vertraging in netwerkuitvoer is nu de som van de totale
                  vertraging in het netwerk en de vertraging bij de ingangen.

versie  1.4.2 : - Extra uitvoer m.b.t. entrance delay (per zone en tijdperiode).

versie  1.4.1 : - Versnelling berekening van splitting rates voor grote netweken.

versie  1.4.0 : - Kleine wijziging in de berekening van intensiteit en dichtheid.
                - Ander format voor de file 'SelectedLink.txt'. De uitvoer is nu
                  gegroepeerd per link per HB-paar voor alle tijdperioden. Voorbeeld:
         
                  //SelectedLinkOutput 
                  -------------------- 
                  Linknr  Origin  Destination            1         2         3   
                       1       1            5       3100.0    3800.0    2422.4   
                       1       1           11        150.0     200.0     138.4   
                       3       1            5       3094.2    1867.2    1801.6   
                       3      10            5        256.8     232.8     298.4   
                       4       1            5       3084.1    2085.9    2178.0   
                       4      10            5        994.9     823.4     746.7   
                      11      10            5       1000.0    1500.0    1200.0   

                - Netwerk file wordt sneller ingelezen en verwerkt.
                - Het genereren en sorteren van routes is sneller geworden.
                - Fout in berekening van free flow reistijden opgelost.
                - Versnelling in sommige simulatie routines.
                - Check op totale aanbod in HB-matrix verbeterd.
                - Opgeven van alternatieve routes (bv. bij werk in uitvoering) is
                  mogelijk gemaakt. Indien deze routes niet automatisch gegenereerd
                  worden, worden ze aan de set met routes toegevoegd. Alternatieve
                  routes worden opgegeven in de file 'Detours.txt', met het volgende
                  format:

                  //Detours
                  ;detournr    nrlinks links
                  ;alternative nrlinks links
                     1               5    45 46 128 236 23  
                                     7    38 123 22 345 346 347 569 
                     2               1    45 
                                     2    222 223 

                  Bij het inlezen van de routes wordt gekeken of de file met alternatieve
                  routes nieuwer is. Als dat het geval is, worden de routes opnieuw
                  gegenereerd.
                  
versie  1.3.2 : - Berekening overgebleven ruimte en wachtrijlengte verbeterd,
                  met name voor korte links.
                  
versie  1.3.1 : - Selected link analyse voor gespecificeerde links. De links worden
                  opgegeven in de netwerk file met een kaart met de volgende structuur:
                  
                    //SelectedLinks
                    ;links for selected link analysis
                        1   3  4  11  
                        
                - Bij events werd de capaciteit bij rotondes en voorrangskruispunten
                  niet goed aangepast. Dit is gecorrigeerd.
                - In de tabel met netwerktotalen in de uitvoerfile is nu ook de uitvoer
                  per deelnetwerk (netwerktype) opgenomen.
                - De berekening van de selected link analyse is versneld. Bovendien is
                  het format van de uitvoer gewijzigd. Voorheen was de uitvoer per link
                  voor alle perioden. Dat is nu de uitvoer per periode voor alle links.  
                - De verkeersafwikkeling op lange en korte links is verbeterd.
                - Bij een splitsing van 1 naar meerdere links werd het verkeer niet
                  goed verdeeld over de uitgaande links indien er terugslaan was. Dat is
                  nu opgelost.
                - Bij het berekenen van de splitsfracties wordt nu rekening gehouden met
                  de vrije reistijd vanaf de herkomst naar de knoop. In de toekomst zal
                  daadwerkelijke reistijd worden.
                - Bij het initialiseren wordt nu de juiste hoeveelheid verkeer op de
                  link gezet.
                - In de uitvoer wordt het totale aantal voertuigen dat gearriveerd is,
                  gepresenteerd, onder de totale vraag.

versie  1.2.2 : - Extra controles op inhoud 'Routes.txt': ook de ScaleFlow parameter
                  en de totale vraag worden nu gecontroleerd. Ook extra meldingen.
                - Extra check op link kenmerken voordat routes worden gegenereerd.
                - Berekening en printen in de uitvoer van 'entrance delay'.
                  Entrance delay is de vertraging die optreedt doordat verkeer het
                  netwerk niet kan binnenrijden vanwege blokkades. Deze werd en wordt
                  niet meegenomen in de totale vertraging of route reistijden, maar
                  wordt nu wel apart in de uitvoer vermeld.
                - Verbetering blocking back voor korte links.  

versie  1.2.0 : - In de berekening van de echte kortste route wordt nu rekening gehouden
                  met afslagverboden. Bovendien is deze berekening versneld.
                - Verbetering van het geheugengebruik bij berekening splitsfracties en
                  reistijden.
                - Snellere berekening van overlap in routes.
                - Extra voortgangsmeldingen bij de toedeling.
                - Opschonen sources en versnelling van de berekeningen.
                - Extra boodschappen bij het inlezen en verwerken van de netwerkfile.
                - Indicatie voortgang bij deterministische toedeling (Assign=1).
                - Verbetering van afhandeling van korte links
                - Probleem met capaciteit van 0 bij events opgelost.
                - Fout in initialisatie van HB-matrix bij het inlezen opgelost.
                - Bij verwijderen van kleine HB-paren is er nu een extra voorwaarde dat
                  de verkeersvraag altijd groter dan 0 moet zijn.
                - Er was bij de stochastische toedeling een probleem met zeer lange
                  reistijden en de nauwkeurigheid van variabelen. Dit is opgelost.
                - Bij een niet geldige distributie werd een verkeerde foutmelding
                  gegeven.
                - De informatie over de verdeling van kleine HB-cellen wordt nu ook in
                  de file 'Routes.txt' afgedrukt.
                - Blocking back mechanisme volledig herzien en opnieuw geprogrammeerd.
                  Alle situaties worden nu goed afgehandeld.
                - Fout in het lezen van de distributie in een 'Routes.txt' is opgelost.
                - Fout in berekening reistijden voor vrachtverkeer opgelost.
                - Afdrukken tussenresultaten van elke iteratie worden nu uitgelijnd.
                - Extra foutmelding indien de HB-matrix niet klopt met het aantal 
                  tijdperioden.
                - Verbetering van de snelheid van de simulatie (tussen 35% en 50%
                  verbetering).
                - Extra check op distributie bij het inlezen van het netwerk.
                - Versnelling inlezen van het netwerk.

versie  1.1.0f: - Fout in blocking back mechanisme opgelost.
                - Fout in het afdrukken van de resultaten voor deelnetwerken opgelost

versie  1.1.0d: - Fout in de afhandeling van events op dezelfde link opgelost.

versie  1.1.0c: - Fout in berekening capaciteit en vrije reistijd bij bepaalde services
                  en maatregelen opgelost.

versie  1.1.0b: - Fout in berekening capaciteit bij bepaalde services en maatregelen
                  opgelost.

versie  1.1.0: - Events waarbij een link werd afgesloten worden nu beter afgehandeld.
               - Fout in berekening van vertraging voor links naar rotondes en 
                 voorrangskruisingen opgelost.
               - Extra foutmeldingen bij de verwerking van events toegevoegd.
               - Bij fouten wordt MARPLE netter afgesloten.
               - Betere berekening van initiële toestand.
               - Betere berekening uitstroom verkeer voor links met congestie.

versie  1.0.9: - Probleem met het administreren van groentijden bij netwerken met VRI's
                 en TDI's opgelost.
               - Fout in gebruikte capaciteit voor geregelde links opgelost.
               - Aanpassing bereking blocking back.
               - Verbetering geheugengebruik bij berekening reistijden.

versie  1.0.8: - Fout in blocking back voor toeritten opgelost.

versie  1.0.7: - Het geheugengebruik voor de simulatie is verminderd.
               - Verbetering geheugengebruik bij berekening van de route tijden.
               - Een aantal modelparameters kan nu door de gebruiker worden ingesteld.
                 Dat gebeurt met //VehPar in de parameter file. Deze ziet er als volgt 
                 uit:
                 
                 //VehPar
                 ;VehLen  TruckV  minV1  minV2  Ja1  Ja2  Ja3  Ja4  Ja5  Ja6  Ja7  Ja8  Ja9 
                    7.5      80     10     10    85   75   60   50   40   20   15   10   10 
                    
                 VehLen = gemiddelde voertuiglengte
                 TruckV = vrije snelheid voor vrachtverkeer (voor reistijd berekening)
                 minV1  = minimum snelheid voor links met vrije snelheid > 90
                 minV2  = minimum snelheid voor links met vrije snelheid <= 90
                 Ja1    = snelheid bij congestie voor links met vrije snelheid > 110
                 Ja2    = snelheid bij congestie voor links met 90 < vrije snelheid <=110
                 Ja3    = snelheid bij congestie voor links met 70 < vrije snelheid <= 90
                 Ja4    = snelheid bij congestie voor links met 60 < vrije snelheid <= 70
                 Ja5    = snelheid bij congestie voor links met 50 < vrije snelheid <= 60
                 Ja6    = snelheid bij congestie voor links met 40 < vrije snelheid <= 50
                 Ja7    = snelheid bij congestie voor links met 30 < vrije snelheid <= 40
                 Ja8    = snelheid bij congestie voor links met 20 < vrije snelheid <= 30
                 Ja9    = snelheid bij congestie voor links met  0 < vrije snelheid <= 20

               - Fout in blocking back model opgelost. Bij blocking back worden nu alleen
                 die links meegenomen die een relatie hebben met de link met file.
               - Fout in schaling van de HB-matrix opgelost.

versie  1.0.6: - Wachtrijmodel aangepast. Files bouwen nu beter op en verdwijnen ook
                 weer. Met name bij korte of zeer korte links gaf dat voorheen
                 problemen.
               - Terugslag van een afrit werd niet goed gemodelleerd. Dat is opgelost
                 met het eerste punt.
               - Bij het genereren van routes wordt geen rekening gehouden met verboden
                 afslagbewegingen. Dat is opgelost.
               - Een extra check op trajecten zonder links is ingebouwd.
               - Door een fout in het knoop model konder er vreemde intensiteiten in
                 het netwerk voorkomen. Dit punt is ook opgelost.
               - Naar aanleiding van een vergelijking van simulatieresultaten en metingen
                 van de reistijd voor het A10-West netwerk, zijn model parameters
                 aangepast.

versie  1.0.5: - In de netwerkfile kon een lege regel geen spaties bevatten. Dat is
                 nu wel toegestaan.
               - Er wordt niet gecheckt of conflicterende links ook bij een route
                 hoorden en dus gebruikt werden. Dat wordt nu wel gecontroleerd.

versie  1.0.4: - Berekening van intensiteiten voor trajecten aangepast. Deze zijn
                 nu meer conform de werkelijkheid.
               - Indien een link geen stroomopwaartse of stroomafwaartse knoop heeft
                 wordt nu een foutmelding gegenereert.
               - Splitting rates worden sneller berekend.
               - Een aantal checks op de links in trajecten ingebouwd (goede volgorde,
                 of ze er zijn en of ze in een route gebruikt worden)
               - Geheugengebruik bij simulatie verminderd.

versie  1.0.3: - Files losten niet meer op. Dit is opgelost in het wachtrijmodel.

versie  1.0.2: - Minder geheugengebruik bij selected link analyse.
               - Invoeggedrag bij samenvoegingen aangepast.
               - Fout in wegschrijven HB-matrix in 'Routes.txt' opgelost. Deze fout is
                 in gekomen in versie 1.0.1. In vorige versies ging dat wel goed.
               - Betekenis OutputPar gewijzigd:
                    0 = minimal (RBV),
                    1 = normal,
                    2 = only selected link output,
                    3 = only LMS output,
                    4 = both selected link and LMS output.

versie  1.0.1: - Dichtheid in link uitvoer is per strook. Dit als eenheid toegevoegd.
               - Verbetering geheugengebruik bij simulatie en berekening reistijden.
               - Extra foutmelding bij ontbreken van HB-paren of routes of de 
                 mogelijkheid van routes.
               - Extra melding welk percentage van de vraag (kleine relaties) over de
                 overige HB-paren is verspreid.
               - Extra parameter bij //Routes die aangeeft of de vraag van kleine
                 relaties uniform of naar rato opgeteld wordt bij de overige relaties
                 met dezelfde herkomst of bestemming (7e parameter).
                 ODDistrib = 0: uniform; ODDistrib = 1: naar rato.

versie  1.0.0: - Fout in wegschrijven van HB-matrix in 'Routes.txt' opgelost.
               - Progressie van wegschrijven van HB-matrix en routes.
               - Extra tabel met snelheden per route in uitvoer (OutputFlag > 0).
               - Minimum afrijcapaciteit en minimum snelheid verhoogd vanwege problemen
                 met grotere vertraging dan reistijd.
               - Andere verdeling van verkeer van kleine relaties. Helft wordt nu bij
                 andere relaties met zelfde herkomst en de helft wordt bij andere
                 relaties met dezelfde bestemming opgeteld. Voorheen werd alles bij 
                 relaties met zelfde herkomst opgeteld.
               - Verkeerde aanroep overlap routes bij initiële flow verdeling opgelost.

versie 0.9.16: - Fout in berekening van vertraging bij gedoseerde links opgelost.

versie 0.9.15: - Meer differentiatie in parameter snelheid bij congestie.
               - Geen berekening overlap routes bij iteraties.
               - Extra optie bij //Routes om kruispunt weerstand wel/niet mee te nemen in
                 genereren routes (6e parameter).
               - Extra optie bij //Assignment om bij initiele toedeling kruispunt
                 weerstand wel/niet mee te nemen (initialAssign).
               - Fout bij generatie routes opgelost.
               - File met MARPLE parameters wordt nu ook gecheckt op juistheid invoer.
               - Extra check bij inlezen netwerk voor onjuiste snelheden.
               - Fout in berekening van capaciteit van geregelde links met events
                 opgelost.

versie 0.9.14: - Verbetering snelheid bij genereren en selectie van routes.
               - Verbetering snelheid bij selected link analyse.
               - Verbetering geheugengebruik.

versie 0.9.13: - Verbetering snelheid bij berekening van splitsfracties.
               - Verbetering geheugengebruik en snelheid bij berekening van reistijden.
               - Fout in toeritdoseeralgoritme opgelost.
               - Weergave voortgang berekening nieuwe routeflows verbeterd.
               - ThresFlow parameter nu op 2 decimalen nauwkeurig.
               - Verbetering snelheid bij berekening van overlap routes en fout opgelost.

versie 0.9.12: - Verbetering geheugengebruik.
               - Verbetering relatie tussen link en routes.
               - Verbetering relatie tussen herkomsten en flows.
               - Verbetering snelheid berekening routes en simulatie.

versie 0.9.11: - Check op het bestaan van conflicterende links bij rotondes en
                 voorrangskruisingen.

versie 0.9.10: - Verbetering check op overlap routes.
               - Verbetering berekening convergentie fout.
               - Verbetering check op initiale flows.
               - Automatische aanpassing capaciteit geregelde kruispunten.

versie 0.9.9 : - Extra checks op de netwerkinvoer (verkeersregelingen).
               - Verbetering Webser optimalisatie bij kruispunten met één geregelde link.

versie 0.9.8 : - Extra checks op de netwerkinvoer (verkeersregelingen en routes).
               - Geheugengebruik verbeterd bij stochastische toedeling.

versie 0.9.7 : - Rotondes en voorrangskruispunten 
               MARPLE 0.9.7 is geschikt voor rotondes en voorrangskruispunten.
               Daartoe zijn twee nieuwe linktypes (linktype 3 = link naar rotonde en
               linktype 4 = voorranggevende link naar voorrangskruising) en 3 nieuwe
               knooptypes (nodetype 6 = rotonde met 1 strook, nodetype 7 = rotonde 
               met 2 stroken, nodetype 8 = voorrangsnode) geïntroduceerd. Bij de links
               moet opgegeven worden hoeveel conflicterende links er zijn en welke. 
               Bij een rotonde zijn dat alle inkomende links en bij een voorrangs-
               kruising de links aan welke voorrang gegeven moet worden. Deze links 
               moeten opgegeven worden in de richting van de klok mee, gerekend vanaf
               de inkomende link. 
               De capaciteit van een link naar een rotonde wordt berekend aan de hand 
               van de hoeveelheid verkeer op de rotonde. Daarvoor wordt het model van Wu
               (leerling Brilon) gebruikt. De vertraging wordt berekend met de bekende 
               benadering van Akcelik. 
               Ook voor de capaciteit van de voorrang gevende link wordt het universele 
               model van Wu gebruikt en weer Akcelik voor het berekenen van de vertraging. 
               Omdat op een link geen richtingen worden onderscheiden, zijn er wel 
               aannames gedaan omtrent de verdeling van de conflicten. 
 
               - Foutmeldingen 
               Tijdens het inlezen van de netwerk file controleert MARPE nu een aantal
               zaken. Indien één of meerdere fouten worden geconstateerd, wordt een file
               met foutmeldingen gegenereerd (MARPLE-messages.txt). De informatie in deze
               file geeft de gebruiker meer zicht op wat er mis is in het netwerk.
 
versie 0.9.6 : - Wijziging in de berekening van de wachrijen en daarmee ook van de 
                 vertragingen en reistijden. 
               - Wijziging in de uitvoerspecificatie. OutputPar kent nu 4 waarden: 
                 0 = minimale uitvoer (alleen wat nodig is voor RBV) 
                 1 = uitgebreidere uitvoer (ook voor routes) 
                 2 = voorgaande selected link analyse (SelectedLink.txt) met daarin per
                     tijdsperiode, per link, per HB-paar de intensiteit (nog niet in RBV) 
                 3 = voorgaande + uitvoer voor LMS (niet in RBV)
 
versie 0.9.5 : - Door gebruik van de nieuwe Matlab Compiler (versie 4.0) is de
                 executable van MARPLE veel sneller geworden (3x zo snel). De oorzaak
                 hiervan is dat Matlab niet meer gebruik maakt van C libraries, maar van
                 gecompileerde Matlab files. Daardoor kunnen stand-alone applicaties veel 
                 sneller draaien. Daarom is het nodig de Matlab Runtime Components te 
                 installeren. Als MARPLE start wordt eerst een directory MARPLE_mcr 
                 aangemaakt waarin de gecompileerde MARPLE sources staan. Dat hoeft maar 
                 één keer. 
               - Opschonen sources, waardoor het geheugengebruik minder is geworden.


Rekentijden:
------------
Voorbeeld A10-West netwerk met 1439 links, 787 knopen, 100 zones, 4618 HB-paren en
ongeveer 9000 routes. Voor de routegeneratie worden maximaal 6 routes geselecteerd uit
50 random trekkingen. De simulatieperiode is 2,5 uur en de tijdstap 20 seconden. De
rekentijd betreft 10 iteraties (12 simulaties).
Het voorbeeld is gedraaid op een PC met een 2.0 Ghz Pentium processor en 512 MB intern
geheugen.

versie 1.4.0 met routegeneratie     :    7.61 minuten  (8813 routes, 624585 vrt.km
versie 1.4.0 zonder routegeneratie  :    5.98 minuten   8804 veh.hrs delay)
versie 1.3.2 met routegeneratie     :   10.39 minuten  (8936 routes, 626173 vrt.km
versie 1.3.2 zonder routegeneratie  :    8.98 minuten   8890 veh.hrs delay)
versie 1.2.0 met routegeneratie     :    9.89 minuten  (8821 routes, 624090 vrt.km, 
versie 1.2.0 zonder routegeneratie  :    8.42 minuten   7101 veh.hrs delay)
versie 1.1.0f met routegeneratie    :   19.55 minuten  (8981 routes, 624929 vrt.km, 
versie 1.1.0f zonder routegeneratie :   16.80 minuten   7203 veh.hrs delay)
versie 1.0.2 met routegeneratie     :   23.70 minuten  (8793 routes, 620700 vrt.km, 
versie 1.0.2 zonder routegeneratie  :   22.26 minuten   5529 veh.hrs delay)

-----------------------------------------------------------------------------------------
Disclaimer:
Het programma mag vrij worden gebruikt, maar is zoals het is. De auteur aanvaard
geen aansprakelijkheid voor alle mogelijke gevolgen die uit het gebruik van dit
programma voortvloeien. De auteur is onder geen enkele voorwaarde, noch door de
gebruiker, noch door een derde aansprakelijk voor welke schade dan ook, gevolgschade
en het verlies van gegevens daarbij inbegrepen, welke voortvloeit uit of in verband
staat met het gebruik of het niet kunnen gebruiken van het programma.
-----------------------------------------------------------------------------------------