From Daan
Revision as of 23:09, 10 October 2012 by MeesterDaan (talk | contribs)
Jump to: navigation, search
Globaltraffic.gif

Inleiding

De nieuw opgerichte Nederlandse maatschappij Mokum Airways (MAW) Amsterdam als thuisbasis en landingsrechten voor 21 verschillende bestemmingen, allen in Europa (zie afbeelding links). Ze heeft een herkenbaar logo en een luchtvloot, bestaande uit toestellen van het type Boeing 737-400 (zie afbeelding onder). Mokum Airlines heeft een marktonderzoek gedaan voor de veertien luchthavens waarop zij actief is waarbij gekeken is hoeveel mensen er potentieel tussen twee luchthavens vervoerd zouden kunnen worden door Mokum Airways.

Opdracht

Mawboeing.gif

Het doel van deze opdracht is een 'dienstregeling' op te stellen zodat er zoveel mogelijk passagiers vervoerd worden. Mokum airways maakt winst door zoveel mogelijk passagiers over zoveel mogelijk afstand te vervoeren. Dus wanneer een vliegtuig 10 passagiers 10 kilometer vervoert heeft, dan bedraagt het totaal aantal passagiers-kilometers 100. Maar passagiers gaan niet extra betalen om ver om te vliegen. Dus als een passagier van Amsterdam naar München vliegt via een omweg, telt de afstand Amsterdam-München, en niet de omweg.


1. Maak een correcte dagroute voor één vliegtuig, zodat er zoveel mogelijk passagiers over zoveel kilometers verplaatst worden. De score voor een schema is het aantal passagiers vermenigvuldigd met het aantal kilometers tussen haar start- en eindpunt.


2. Maak een correct dagschema voor alle zes de vliegtuigen uit de vloot, zodat er zoveel mogelijk passagiers over zoveel kilometers verplaatst worden. De score voor een schema is het aantal passagiers vermenigvuldigd met het aantal kilometers tussen haar start- en eindpunt.


Advanced

Mokum airlines zoekt een nieuwe thuishaven om haar passagierskilometers verder te optimaliseren. Is er een betere thuishaven dan Amsterdam te vinden? Geef een gegrond advies.


Technische Requirements

Een correcte dagroute voor een vliegtuig voldoet aan de volgende eisen:

  • Het begin- en eindpunt zijn gelijk.
  • Het vliegtuig komt vanwege personeelswissels tenminste éénmaal op de route Amsterdam aandoen.
  • Het vliegtuig landt niet, en stijgt niet op tussen 2:00 en 6:00 's nachts
  • Een vliegtuig heeft een maximumcapaciteit van 147 personen
  • Een vliegtuig kan maximaal 3600 kilometer vliegen op een volle tank, en mag onder geen beding zonder brandstof raken.
  • Een vliegtuig heeft tussen twee luchthavens een gemiddelde snelheid van 800 km/u
  • Een vliegtuig moet na een landing een uur blijven staan voor unboarding, schoonmaak en boarding alvorens weer op kunnen stijgen.
  • Een vliegtuig kan op een luchthave voltanken, maar moet dan een uur extra blijven staan.


Resources

Om je algoritme te testen op meerdere passagiersmatrices kan je gebruik maken van de volgende bestandjes. Uiteindelijk gaat het nog altijd om de passagiersmatrix die in eerste instantie werd meegegeven. Maar met deze matrices kan je de consistentie van je oplossingsmethode testen.

3 extra matrices in txt

Excel generator

De passagiersmatrices uit de txt file gebruik je door ze op de plek van de PASSAGIERS matrix in de dienstregeling class te zetten. (let op de naam, in het txt bestand hebben ze een nummer dat weg moet)

De excel generator kan je gebruiken om eventueel zelf nog matrices te maken met een krappere of ruimere markt. Oftewel, stel er zijn meer of minder passagiers die willen vliegen.

De presentatie van de opdracht kan je hier downloaden


Er is java code beschikbaar die je kunt gebruiken, zodat je je kunt richten op het maken van het algoritme. De code bevat bijvoorbeeld al een represenatie, methoden om die representatie te veranderen, methoden om een route af te drukken en methoden om het aantal passagiers-kilometers te berekenen. Die code maakt gebruik van een applet, en daarom kan je de code niet aanroepen in de commandline als "java globalTraffic" maar met "appletviewer globalTraffic.html". Je kunt uiteraard ook eclipse of een andere omgeving gebruiken.

Ook kan je, nadat je de java files gecompiled hebt, het globalTraffic.html bestandje direct openen in je browser. In dit geval hoef je dus geen gebruik te maken van appletviewer.

Er is software en sourcecode beschikbaar:

De benodigde bestanden kunnen ook los gedownload worden vanaf deze locatie

In hoeverre worden de constraints al voldaan door de code? In principe voorkomt de code NIET dat aan een constraint niet voldaan wordt. Dus het checkt niet op begin- en eindpunt, duur van een route, bereik en of Amsterdam bezocht wordt. Sterker nog, het is mogelijk routes te maken die bestaan uit: Amsterdam -> Amsterdam -> Amsterdam etc. Er wordt echter WEL een melding gegeven wanneer een vliegtuig naar een plek wil vliegen die verder weg ligt dan zijn bereik (dus ookal heeft het vliegtuig een volle tank). Maar het blijft enkel een melding, je moet zelf er dus voor zorgen dat er aan de constraints voldaan wordt.

Applet Uitleg

De applet bestaat uit een kaartje waarop de routes getekend worden. Wanneer meerdere vliegtuigen tussen twee steden gevlogen hebben, dan kan je alleen de lijn zien van het vliegtuig dat het laatst getekend is.

Verder zie je een scrollbar waarmee je de tijdlijn in en uit kunt zoomen. Daarnaast een redraw knop die een nieuwe route maakt en ook aan het begin ervoor zorgt dat het kaartje afgebeeld wordt.


De tijdlijn geeft de meeste informatie. Elke rij staat voor een vliegtuig en elk vliegtuig heeft een eigen kleur. Daarnaast zie je de duur in minuten van de route die het vliegtuig vliegt. Vervolgens zie je de beginstad van het vliegtuig en pas vanaf 6 uur begint de daadwerkelijke route. Eerst de grondtijd (in de kleur van de stad). Dan zie je in het grijs de tijd dat het vliegtuig in de lucht is. Elke landing is een balkje in de kleur van de stad. Een witte omlijning geeft de minimale grondtijd aan van het vliegtuig. Als het gekleurde balkje verder gaat dan deze gekleurde omlijning, dan is dit dus de extra grondtijd. Wanneer een vliegtuig tankt zie je geen witte omlijning maar rode omlijning. Als de ruimte het toelaat kun je de totale grondtijd in minuten zien tussen de haakjes achter de naam van de stad.

Applet.jpg