minprog / heuristieken

1 stars 10 forks source link

RailNL DataSets #24

Open danivenk opened 4 years ago

danivenk commented 4 years ago

Toen ik keek naar de spoorverbindingen voor RailNL kwam ik er achter dat in de Holland en Nationaal de spoorverbindingen (uitgaande van InterCities zoals in de opdracht) niet allemaal kloppen. Voorbeelden hiervan zijn:

Zo zijn er nog een aantal.

Beide datasets (Holland en Nationaal) zijn niet volledig voor InterCity stations/spoorverbindingen.

Als u wil zou ik kunnen kijken of ik alle fouten/missende connecties kan vinden.

WouterVrielink commented 4 years ago

Als je het leuk vind mag je dat zeker doen! Er zijn wel een aantal dingen waar je rekening moet houden natuurlijk; je wilt geen stations met maar 2 connecties bijvoorbeeld.

danivenk commented 3 years ago

Realistic_IC-Connections Ik heb ff gekeken, maar dit zijn de connecties van Intercities die gebruikt worden. Als u dit goedgenoeg vind zal ik ff kijken in de connecties en stations data wat er mist of te veel is.

PS: Het zwarte bij sommige lijnen is dat ze kruisen maar dat het geen station is. Sorry als dat misschien onduidelijk is.

WouterVrielink commented 3 years ago

Ah dat ziet er goed uit! Nee ik denk dat het heel duidelijk is zo waar ze alleen kruizen. Nice!

Deze is al aardig interessant inderdaad, lijkt me zeker genoeg.

danivenk commented 3 years ago

Realistic_IC-Connections Edit: Was vergeten om de A'dam Zuid - Hilversum connection toe te voegen

Ben nu bezig met het checken van de Holland Stations. Zwart zijn overbodig aan de hand van de nieuwe kaart Grijs zijn die miste en toegoegd moeten worden. image

Nog ff een vraagje, zou u willen dat ik de 4 "verbeterde" csv bestanden lever? De voorbeeld output moet dan ook zeker geupdate worden

WouterVrielink commented 3 years ago

Hmm ja, dat is een goede vraag. @OkkeVanEck wat denk jij?

Moeten uberhaupt even zien of de statespace van het probleem niet (te) veel kleiner wordt door het weghalen van deze stations... Of zijn er veel meer connections?

danivenk commented 3 years ago

Connecties die weggehaald worden waardoor een aantal stations maar 2 connections heeft.

Om het meer uitgebreid te krijgen zouden we kunnen kijken naar niet alleen Intercity connecties. Maar jullie moeten zeggen hoe jullie het precies willen

WouterVrielink commented 3 years ago

Wat is het verschil in het totaal aantal connecties? Ik geloof dat dit er eerder 89 waren.

Uitbreiden is denk ik wel nodig als het er veel minder zijn. Bijvoorbeeld dingen als Lelystad toevoegen heeft natuurlijk niet heel veel zin, maar de complexiteit moet hoog genoeg blijven. Waarom zit Nijmegen er nu niet tussen eigenlijk?

danivenk commented 3 years ago

Het zijn er ong 60. Nijmegen zit er niet tussen want Nijmegen heeft maar 2 connecties qua Intercity connecties (Richting Den Bosch en Arnhem CS)

WouterVrielink commented 3 years ago

Ah oké. Dan moeten er inderdaad uitbreidingen bij. Nijmegen is wat mij betreft wel een kandidaat bijvoorbeeld, dan kan je connecties maken naar Venlo, Arnhem, en 's-Hertogenbosch. Hetzelfde geld voor Roermond en directe verbinding van Rotterdam naar Schiphol.

Tussenstations toevoegen zoals Lelystad voegt weinig complexiteit toe, maar zou de kaart wel interessanter kunnen maken.

danivenk commented 3 years ago

Dus basically kijken naar stations waar meer als 2 lijnen bij elkaar komen. We zitten wel natuurlijk met eind stations, zoals Den Helder, Enkhuizen, Zantvoort aan Zee, Vlissingen e.d.

WouterVrielink commented 3 years ago

Ja dat is niet erg, die voegen leuke heuristieken toe.

danivenk commented 3 years ago

Realistic_IC-Connections Nieuwe versie, dit is het trein netwerk van Nederland (Alles niet alleen de Intercities) Zit wel te twijfelen over de achterhoek loop die er nu niet bij zit omdat het effectief dezelfde connectie als Arnhem-Zutphen is (Via Dieren) maar via achterhoek is Arnhem-Zevenaar-Doetinchem-Winterswijk-Zutphen

WouterVrielink commented 3 years ago

Dit ziet er echt supergoed uit Dani! Misschien is het hele netwerk wel gewoon een beter plan inderdaad. Dan zullen we wel moeten testen of dit goed gaat met het huidige aantal treinen etc.. Supercool.

danivenk commented 3 years ago

Zie net nog dat ik beter Uitgeest kan nemen ipv Castricum ^^' Maar goed, ik zal proberen om ergens volgende week een aangepaste versie van de connectie en station files te leveren. Moet ik die hier in deze issue posten?

danivenk commented 3 years ago

Dit netwerk is nu van het gehele Nederlandse spoor netwerk en dus niet alleen Intercity/Sneltrein verbindingen Realistic_IC-Connections Had nog wat fouten gevonden in de kaart tijdens het aanpassen van de connectie en station bestanden.

Fixed-CSV-files.zip Hier is een zip met de aangepaste CSV bestanden.

Wat interessant is om op te merken is dat vanaf Utrecht je de meeste richtingen op kan gaan, maar dat Utrecht Centraal niet de meeste verbindingen heeft. Dat is Zwolle. Bij Utrecht gaan sommige richtingen pas uit elkaar na een paar stations. (Zie Utrecht Overvecht en Utrecht Vaartsche Rijn)

In Holland is Naarden-Bussum wegelaten omdat deze maar 2 verbindingen heeft, in Nationaal is er ook een connectie naar Almere dus is Naarden-Bussum wel toegevoegd.

Belangrijke stations zoals Amsterdam Centraal en Amsterdam Zuid zitten er niet tussen omdat deze maar 2 verbindingen hebben. Hiervoor in de plaats komen Amsterdam Muiderpoort en Amsterdam RAI.

Wat interessant is om naar te kijken voor leerlingen (dacht ik tenminste) is de uiteinden, omdat hier een aantal van toegevoegd zijn met verschillende duraties. Misschien is het uiteindelijk beter voor een concessie om de korte 1 verbinding connecties te negeren en wel de lange 1 verbinding connecties toe te voegen. Maar dat is mijn gedachte gang ;)

Nu moet nog gekeken worden naar een Voorbeeld route met deze data.

okkevaneck commented 3 years ago

Hi Dani en Wouter, excuus dat ik niet eerder gereageerd heb. Ik ben de afgelopen twee weken enorm druk geweest met het afronden van mijn vakken. Fantastisch werk @danivenk! Echt heel tof wat er uit is gekomen en ik denk dat dit heel mooi zou werken voor de case. @WouterVrielink merkt wel terecht op dat we even moeten kijken hoe het staat met de state space. Je hebt toevallig zelf niet gekeken hoe de performance van jullie algoritmes veranderde door deze dataset te gebruiken ipv de huidige?

Ik denk dat je gelijk hebt wat betreft de verschillende 1 verbinding connecties bij de uiteindes. Echter, afhankelijk van je tot nu toe geplande route zullen deze lange verbindingen net wel of niet passen. Het voegt een extra optie toe voor het gebruik van heuristieken, maar niet eentje waarvan ik verwacht dat het een extreem doorslaggevende optimalisatie naar boven brengt. Als dit zo is, is het mij betreft een hele mooie toevoeging!

danivenk commented 3 years ago

Ik ben ff wezen kijken of het allemaal runt en kwam er achter dat ik een aantal typ en consistency foutjes heb gemaakt in de csv bestanden die ik in het vorige comment heb geleverd zaten. Zal die er uit halen en proberen te kijken naar de snelheid van de code vergelijkend tussen de oude en nieuwe versies. Lijkt er tot nu toe dat voor Holland Greedy het niet veel verschilt, de uitgebreide versie of de oude versie.

EDIT: Holland, veranderd niet zo veel Connecties 29 -> 32 en Stations 23 -> 24, nationaal is waar het flink veranderd Connecties 90 -> 109 en Stations 62 -> 78. Hierdoor is het ook dat voor Holland dat het minimum aantal lijnen gaat van 4 -> 5 (120 mins max 7 lijnen) en voor Nationaal dat het minimum aantal lijnen gaat van 9 -> 12 (180 mins max 20 lijnen) Dit is ook te zien uit een greedy run waarbij alleen de data veranderd (Tijd zoals in de opdracht per dataset, greedy 1000x) geeft voor Holland ong dezelfde tijd en voor Nationaal ong een minuut of anderhalf extra.

PS: Wel leuk om te merken hoe mijn (En Michael's) code handig is om dit uit te proberen. Kon heel makkelijk de dataset toevoegen als Holland1 en Nationaal1 en kan zelf het algoritme, duratie, max lijnenen, herhalingen, iteraties instellen als flags in de commandline :D

Als ik meer heb ontdekt hoort u weer van me.

danivenk commented 3 years ago

BTW Hier is de werkende versie van de CSV bestanden Fixed-CSV-files.zip

Qua statespace ligt het er heel er gaan hoe er van uit gegaan wordt hoe die berekend moet worden.... Want als ik er naar kijk op twee verschillende manieren kan ik en krijgen dat de statespace groter zou zijn en dat ie kleiner kan zijn.