Algoritme probleempje

Pagina: 1
Acties:

  • achappey
  • Registratie: Februari 2000
  • Laatst online: 27-04-2021
Hi. ik ben nu een maandje bezig met een klein hobbyprojectje van me. Dit alles heeft te maken met de AI engine van Flight Simulator, maar daar gaat het verder niet om. ;)

Het is mijn bedoeling om van een complete lijst met vluchten van luchtvaartmaatschappijen voorbeeld:

code:
1
2
3
4
5
ZaMaDi 14.10 16.00 Amsterdam Parijs Boeing 737
ZaMaDi 17.00 18.00 Parijs Amsterdam Boeing 737
MaDiWo 08.10 10.00 Amsterdam Frankfurt Fokker 100
MaDiWo 11.10 12.00 Frankfurt Amsterdam Fokker 100
etc. etc. etc.


een lijst te maken van alle vluchten maar dan PER vliegtuig:

code:
1
2
3
Vliegtuig A: zondag 14.40 Amsterdam - Frankfurt, zondag 17.00 FrankFurt - Amsterdam, zondag 20.00 Amsterdam - Rome
Vliegtuig B: .....
etc. etc. etc.


Op die manier is het dus mogelijk om een timetable van een luchtvaartmaatshappij om te zetten naar een formaat die door de AI engine van Flight Sim gelezen kan worden. Op dit moment moet dat allemaal met de hand, maar ik wil het dus automatiseren. :)

Het algoritme wat ik tot nu toe heb:

1. Lees alle vluchten in en maak voor elke vlucht een objectje aan (daaro alle informatie in: dus dag van de week, tijdstip vertrek aankomst , vliegtuigtype etc. etc)
2. Gooi al die objecten in een array.
3. Zoek vervolgens de eerst vertrekkende vlucht.
4. Verwijder die vlucht uit de array.
5. Bereken een verwachte vertrektijd nav van de aankomsttijd in die vlucht.
6. Zoek vervolgens een vlucht met een vertrektijd het dichst bij de verwachte vertrektijd, de aankomstplaats is gelijk aan de vertrekplaats, en het vliegtuig type is hetzelfde.
7. En herhaal dit tot de week gevuld is, hierna nieuwe week beginnen met ander vliegtuig.
8. En herhaal dit totdat de array met alle vluchten leeg is.

Tot op zekere hoogte werkt dit goed, alleen het problem is dat er niet gekeken wordt of de aankomst plaats van de laatste vlucht van de week NIET gelijk is aan de vertrek plaats van de 1e vlucht per week.

Heeft iemand enig idee hoe ik dit zou kunnen oplossen?? :)
Misschien ist verhaal wat onduidelijk, maar zal het dan wel nader toelichten...

"Als de werkelijkheid niet zou bestaan dan zou de wereld er heel anders uit zien." - Johnny Stardust


  • DiGuru
  • Registratie: April 2003
  • Laatst online: 05-09-2008
Ik zou er een gelinkte lijst van maken. Geef alle vliegtuigen een ID, maak een array waarin staat: Regelnummer, ID, tijd, plaats, vorige, volgende. Vorige en volgende bevatten het regelnummer van de vorige en volgende entry van dat vliegtuig. Je loopt dan het eerste array door, pakt een willekeurige entry en gaat zoeken naar een tijdstip voor en na het tijdstip in dat nieuwe array. En dan hang je hem er tussen. Heb je een nieuw vliegtuig, dan maak je een nieuwe regel waarbij je vorige en volgende op -1 zet.

Je hebt dan een tabel waarbij de eerste vlucht van een vliegtuig vorige=-1 heeft, de volgende vlucht staat in volgende=regelnummer en de laatste vlucht heeft volgende=-1. Alle informatie die je tot je beschikking hebt zit er in. Je kunt het eindeloos uitbreiden en zoeken naar informatie die niet klopt

[ Voor 4% gewijzigd door DiGuru op 20-12-2003 22:43 ]