Genetiska algoritmer i flygtrafikledning
Sammanfattning: I denna fördjupningsuppgift i artificiell intelligens ges en inblick i genetiska algoritmer i flygtrafikledningsdomänen. Arbetet har genomförts med hjälp av dels en teoretisk fördjupning samt studiebesök och slutligen en tillämpning av en genetisk algoritm på ett problem. Inledningsvis ges en kort introduktion till flygtrafikledning, de utmaningar som väntas och det ökade behovet av intelligenta system som kan stödja flygledarna i sitt arbete samt en beskrivning av flygtrafikledning i övergripande termer. Förutom flygtrafikledning beskrivs även genetiska algoritmer i korthet för att vidare ge exempel på tillämpningar på problem inom flygtrafikledning från tidigare studier och likaså uppföljningar av dessa. Slutligen har författaren själv implementerat en genetisk algoritm i LISP för att praktiskt tillämpa användningen av genetiska algoritmer på ett problem. Uppslaget till algoritmen följer en övergripande beskrivning från tidigare studier. 2
Genetiska algoritmer i flygtrafikledning... 1 Sammanfattning:... 2 Ordlista... 4 Inledning... 5 Syfte... 5 Metod... 5 Struktur... 6 Flygtrafikledning... 6 Framtiden och dess förnyade behov... 6 Flygtrafikledningens uppgifter.... 7 Genetiska algoritmer... 9 Tillämpningar från tidigare studier... 11 Exempel på genetisk algoritm för sekvensering... 12 Problemdefinition... 12 Den genetiska algoritmen... 14 Referenser... 17 Nätresurser:... 17 3
Ordlista ATC: (Air traffic control unit) Den sammanfattande benämningen på områdeskontroll, terminalkontroll och flygplatskontroll. (LFS 2002:156) ATCC: (Air traffic control centre) En anläggning som inrymmer områdeskontroll och terminalkontroll samt enheter eller funktioner för flödesplanering och luftrumsplanering. (LFS 2002:156) ATFM: (Air traffic flow management) Flödesplanering en verksamhet med syfte att bidra till ett säkert, välordnat och effektivt flöde av flygtrafik genom att tillförsäkra att kapaciteten hos flygkontrolltjänsten utnyttjas maximalt och att trafikvolymen överensstämmer med den uppgivna kapaciteten. (LFS 2002:156) Callsign: anropssignal En-route: Del av flygning längs luftleder eller bestämda färdlinjer, ej innefattande start- och landningsfaserna. ETA: (Estimated time of arrival) För IFR-flygning: Den tidpunkt vid vilken luftfartyget beräknas anlända över den fastställda punkt varifrån det är avsikten att instrumentinflygning skall påbörjas, eller den tidpunkt vid vilken luftfartyget beräknas anlända över flygplatsen. För VFR-flygning: Den tidpunkt vid vilken luftfartyget beräknas anlända över flygplatsen. MTCA: (Medium Term Conflict Alert) Ett system som påkallar flygledarens uppmärksamhet på att två luftfartyg på sikt kommer komma i konflikt med varandra. STA: (Scheduled Time of Arrival) Den tid som tilldelas ankommande trafik för landning. STCA: (Short Term Conflict Alert) Ett larm som utlöses i flygledarens system för att påkalla uppmärksamhet när två luftfartyg håller på att underskida separationsminima. TMA: (Terminal control area) Kontrollområde upprättat för en eller flera flygplatser. Väntläge: En procedur vanligen över ett fix i väntan på färdtillstånd att fortsätta flygningen som planerat. 4
Inledning Denna rapport behandlar användningen av genetiska algoritmer inom domänen flygtrafikledning. I huvudsak inriktas rapporten på sekvenseringsverktyg. Syfte Inom domänen flygtrafikledning har det länge funnits ett stort behov av intelligenta hjälpmedel för att avlasta och hjälpa flygtrafikledaren i sitt arbete. Ständigt ökande trafik leder till minskade marginaler och beslut måste tas snabbt. Flygtrafikledare är experter på att fatta snabba beslut i en komplex dynamisk miljö med flera påverkande faktorer men kapaciteten idag överskrider vad människor klarar av och därför skapas ständigt nya och utvecklade former av beslutsstödssystem och automatik till deras hjälp. Detta arbete koncentrerar sig i första hand på en typ av sekvenseringsverktyg som används för ankommande och avgående trafik från flygplatser. Verktyget hjälper flygledaren att på ett så effektivt sätt som möjligt skapa ett jämt och ordnat flöde i trafiken. Det intressanta i detta arbete är hur genetiska algoritmer kan tillämpas i applikationer för att stödja flygtrafikledarens planeringsarbete. Huvudsyftet med denna rapport har varit att på egen hand skriva en algoritm för att där igenom praktiskt prova på att lösa ett problem utan att använda de traditionella sökalgoritmerna. En praktisk tillämpning ger bättre förståelse för funktionen och resultaten. Tanken var inledningsvis att skriva en traditionell sökalgoritm som jämförelse men det visade sig vara väl optimistiskt och därför presenteras endast den genetiska algoritmen. Metod Litteraturstudier användes som huvudsakligt medel för att sätta sig in i genetiska algoritmer och dess tillämpningar. Huvudsakligt fokus för teoriinsamling låg på tillämpningar inom den domän som problemet fokuserade på dvs flygtrafikledning. Förutom teoristudier hade författaren förmånen att ta del av observationer och samtal med flygledare på plats vid ATCC (Air Traffic Control Centre) i Stockholm. En närmare förklaring till hur de använder stödsystemen var värdefullt för att förstå helheten. De har också gett en inblick i hur komplext systemet är och att alla faktorer omöjligt kan vägas in i en enkel algoritm om det ska hinna bli klart inom tidsramarna för fördjupningsuppgiften. Slutligen har en praktisk tillämpning programmerats. Den ligger lite vid sidan om den teoretiska biten men har varit den viktigaste och mest intressanta delen av arbetet och skälet till dess uppkomst. Arbetet som helhet har varit problemfokuserat där problemet som skulle lösas först togs fram och sedan lämplig teoretisk grund och tidigare studier liksom begränsningar och inramningar till problemet. 5
Struktur Denna rapport består av fyra delar. - En översiktlig bild av flygtrafikledning. - Kort introduktion till genetiska algoritmer. - Genetiska algoritmers tillämpning inom domänen. - En praktisk tillämpning och implementering av en genetisk algoritm. Flygtrafikledning Flygtrafiken och inte minst flygtrafikledningen står inför en fortsatt omvälvande tid framöver. Tekniska förändringar som förändrar arbetet i grunden inte bara till hur det görs utan också till vad som görs. En förändring av ansvar och kontroll på gott och ont. Framtiden och dess förnyade behov EUROCONTROL är den europeiska organisationen för säkerhet inom flygtrafikledning och de förutspår trots händelser som 9/11 en fortsatt stadig ökning av flygtrafiken åtminstone de kommande 15 åren (EUROCONTROL, 2007). En ökning som enligt Hansen (2004) är större än vad flygplatserna klarar av att hantera vilket leder till förseningar som beräknas kosta flygbolagen 3.5 billioner årligen. Det är denna ökning som ligger till grund för att förändringar av det nuvarande systemet behövs. Den kapacitet som idag finns i systemet räcker inte till för att ta hand om den ökade mängden trafik. En snabb och till synes enkel lösning är att bygga mer flygplatser och öka antalet flygledare men som situationen ser ut nu börjar det även bli trångt i luftrummet också och behovet av flödeskontroll är stort (Kuwata Y & Oohama, 1997). Ett effektivt sätt att snabbt öka utrymmet är att minska separationen mellan flygplan i luften. Detta låter sig inte enkelt göras utan att det får effekter på säkerheten. De separationskrav som finns baseras på det avstånd som luftfartyg beroende på kategori fysiskt måste separeras för att inte påverka varandra med sina ändvirvlar. Det baseras också till stor del på den säkerhetsmarginal som ska ge utrymme för oförutsedda händelser och reaktionstid hos både piloter och flygledare liksom bristande precision i navigationsutrustning och radarledningsutrustning. För att minska dessa marginaler krävs utrustning med bättre precision som dessutom ger mer kontroll över situationen och ökad säkerhet. Det behövs också system som kontrollerar flödet av trafik i flygtrafikledningssystemet för att flygledarna ska klara av att hantera all trafik på ett säkert sätt. Det finns redan idag system för såväl flödeshantering som konflikthantering men inom EUROCONTROL jobbar man ständigt med att förbättra dels tekniken men också de procedurer och reglemente som omgärdar tekniken för att öka kapaciteten. Bland framtidens koncept finns till exempel free-flight och subliminal kontroll som på olika sätt handlar om att förflytta kontroll och ansvar från flygledaren till piloten och avancerade AIsystem vilket ska öppna för ökad kapacitet utan att utöka antalet flygledare (EUROCONTROL, 2007). På så sätt finns det stora likheter mellan flygtrafikledning och andra sociotekniskt komplexa system i det att mer avancerad utrustning utvecklas som i många avseenden ska ta hand om de 6
uppgifter som traditionellt har utförts av människor. Bland dessa uppgifter syns bland annat kontroll och planering. Flygtrafikledningens uppgifter. Flygtrafikledningen är det organ som hanterar all flygtrafik för en stat eller en specifik region, med indelning i mindre ansvarsområden, sk sektorer. Arbetet innefattar hantering av trafikflödet till och från flygplatser och upprätthållandet av säkerhet i form av separation mellan luftfartyg under olika faser av flygningen på flygplatsen och i luftrummet så att kollision inte uppstår. Flygtrafiken är i ständigt kontakt med flygtrafikledningen för att få instruktioner och tillstånd att färdas på flygplatsområdet och i luftrummet. Att leda flygtrafiken är ett komplext samspel mellan människor, teknik och väl utarbetade arbetsmetoder. (LFV, 2007) Figur 1: ATS luftrumsklassificering, AIP ENR 1.4 Den primära uppgiften för flygtrafikledningen är att förhinda kollision mellan luftfartyg inbördes (BCL-FT 3.1) i luften och på marken. För detta finns krav på separation. Separationskraven ser något olika ut beroende på vart i luftrummet man befinner sig samt vilken flygplanskategori man tillhör vilket finns beskrivet i AIP 1.6 för flygningar en-route. Ytterligare krav på separation i samband med start och landning finns i bestämmelserna för civil luftfart vilka kommer presenteras senare i samband med tillämpningen. Förutsättningen för att flygtrafikledningen på ett effektivt sätt ska kunna hantera flygtrafiken är att varje flyg har upprättat en såkallad färdplan bland annat bestående av beräknad starttid och ankomsttid till destinationen samt brytpunkter på vägen, höjd och hastighet. Färdplanen är en god approximation för vart ett flygplan kommer att befinna sig och när, men ändringar sker kontinuerligt och därför krävs att trafikledningen också är beredd och kan hantera detta. Detta ställer krav på dynamisk flödeskontroll vilket trafikledarna kan ha hjälpsystem (traffic 7
management adviser, TMA) för att klara av (Hansen, 2004). Dessa system hjälper till att beräkna effektiva landningssekvenser och bantilldelningar (ibid) men det finns också system som hjälper till att planera flödet på längre sikt (ATFM) liksom system för att hantera konflikter som uppstår en-route (STCA & MTCA). Vanligtvis har större flygplatser som hanterar stora trafikvolymer någon form av sekvenseringsverktyg. Systemet hjälper till att redan långt innan slutlig inflygning sekvensera en grupp flygplan som är på väg mot flygplatsen för landning. Systemet som används på Arlanda heter MAESTRO. Syftet med MAESTRO är att minimera förseningar i luften genom att balansera ankomsterna till varje landningsbana i ett jämt flöde. Hänsyn tas till flygplanskategori, separationsminima, beräknad ankomsttid etc (Hansen, 2004). MAESTRO som används på Arlanda ser i princip ut som figuren nedan där ankomsterna till en landningsbana representeras som en tidsstapel med den närmsta tiden framåt. I figur 1 visas en bana med inflygning från två olika punkter exempelvis en för all trafik norr ifrån och en för all trafik söder ifrån som ska landa på samma bana. Varje ankomst presenteras som en horisontell rad med information om aktuellt luftfartyg i form av callsign, flygplanstyp, kategori, dess försening och av stapeln ges beräknad landningstid. De ankomster som har grå text har fått en fast position i landningssekvensen medan de i grön text fortfarande befinner sig ganska långt bort och bara har fått en preliminär ordning som kan komma att ändras. Det inses snabbt att ett sådant verktyg är ovärderligt för att hantera det pärlband av ankommande luftfartyg som ska hanteras av flygtrafikledaren. Figur 2Sekvenseringsverktyget MAESTRO 8
På ATCC (Air Traffic Control Centre) i Stockholm har både ATC (Area Control Centre) och TMC (Terminal Control Centre) tillgång till detta instrument vilket innebär att arbetet med att sekvensera ankomsterna kan ske redan i ett tidigt skede innan de når fram till inflygningskontrollen. Fördelen är att det blir ett jämt flöde utan att någon trafik behöver hamna i onödiga väntlägen. Genetiska algoritmer Den genetiska algoritmen har sitt ursprung i Darwins evolutionära teorier om att det naturliga urvalet och tanken att använda evolutionen som en analogi för att lösa problem applicerades först av John Holland. Algoritmen bygger på att populationen transformeras över generationer där varje individ för varje generation utvärderas med hjälp av en fitnessfunktion och där de individer som är starkast kan reproducera en ny avkomma med genetiska operationer som överkorsning och mutation. Målet för processen är att nå en så bra lösning som möjligt till problemet genom att låta en initial population växa sig starkare över flera generationer. (Koza et al, 1999) Algoritmen kan översiktligt beskrivs i pseudokod GA // starta med en initial tid, generation 0 t := 0; // initiera en slumpmässig population initpopulation P (t); // utvärdera fitness hos alla individer i populationen evaluate P (t); // testa om termineringskriterium har uppnåtts (tid, fitnessvärde, etc) while not done do // öka tiden med en generation t := t + 1; // välj en en subpopulation för reproduktion P' := selectparents P; // utför genetiska operationer på utvald subpopulation cross-over P'; mutate P'; // evaluate it's new fitness 9
evaluate P'; end GA. // skapa en ny population med de individer som har bäst fitness P := survive P,P'; Det finns några grundläggande steg som behöver beaktas innan en genetisk algoritm kan appliceras på ett problem. (Norvig & Russel, 1999; Koza et al, 1999) - Hur ska en individ representeras? - Hur ska fitnessfunktionen fungera, hur mäts lämpligheten hos en individ? - Hur väljs individer ut? - Hur ska reproduktion ske? Individens representation Vanligtvis representeras en individ som en bitsträng i likhet med vårt DNA som består av AGCT gener. I genetiska algoritmer är det vanligt att använda binära strängar där varje gen i strängen kan bestå av en 1 eller en 0 men andra former av bitsträngar är fullt möjliga. Andra representationer är också möjliga men vissa författare har valt att använda termen genetisk algoritm enbart i de fall då individen utgörs av en bitsträng och i andra fall valt att använda termen genetisk programmering där representationen är mer komplicerad.(norvig & Russel, 1999) I tillämpningen på slutet av denna rapport består en individ av en dubbel uppsättning bitsträngar vilket baseras på problemets natur. Det är värt att notera att även om valet av representation är relativt fritt finns det både för och nackdelar med det. En bitsträng tar mindre plats i beräkningssammanhang men kan också försvåra avkodningen av den vilket avspeglas i de antal funktioner och beräkningar som krävs. Fitnessfunktionen Fitnessfunktionen är den funktion som beräknar hur pass lämplig en individ är som lösning på ett problem och alltså den funktion som driver evolutionen framåt. Syftet med funktionen är att välja ut de individer som är bäst lämpade enligt principen för survival of the fittest. Urval Det lämplighetsvärde som beräknas av fitnessfunktionen används för urvalet av individer. Urvalet i sig kan ske på olika sätt men baseras på följande tre principer. - Bättre individer har större chans att bli utvalda än sämre. - En individ kan bli vald fler än en gång vilket innebär att en stark individ kan reproducera sig flera gånger. - Urvalet är probabilistiskt vilket innebär att den bästa individen i populationen inte nödvändigtvis behöver bli vald även om sannolikheten är större. (Koza et al, 1999) Genetiska operationer De genetiska operationerna svarar för reproduktionen, att skapa nya individer i populationen. Gemensamt för dem är att det ändrar om det genetiska innehållet i en individ. De starkaste 10
individerna som valts ut för reproduktion genomgår en överkorsning motsvarande fortplantning där avkomman får gener från bägge föräldrarna. På så sätt förs de starkaste generna vidare till nästa generation. Detta är en ordnad form av förändring hos genuppsättningen som innebär att en del av bitsträngen från den ena föräldern kombineras med en del av bitsträngen från den andra föräldern (Koza et al, 1999) som i exemplet nedan. Överkorsningspunkten, vart strängarna ska delas, väljs ut slumpmässigt. Överkorsningspunkt på mitten xxxx xxxx Del1 del2 Förälder 1 01101111 -> 0110 Avkomman: 0110 0101 Förälder 2 01010101 ->0101 Mutation är en annan form av genetisk förändring som är slumpmässig till skillnad från överkorsning. Med mutation kan en bit i strängen anta ett slumpmässigt värde vilket gör att egenskaper som inte finns hos någon individ i populationen kan uppstå (ibid). I likhet med överkorsning väljs en slummässig position i strängen ut för att muteras. Förälder 111 -> position 2 slumpas ut! -> avkomma 101 Det finns avarter av mutation som sker på lite annorlunda sätt om det finns särskilda restriktioner i individens struktur som i tillämpningen i slutet av rapporten. Denna typ av mutation kallas i viss litteratur för inversion. För att förklara vad som menas kan exemplet tas med en sträng bestående av 10 bitar och som har restriktionen att den ska innehålla siffrorna 0-9 för det är så valet av representation ser ut. En mutation kan då inte slumpas fram, istället består mutationen av att slumpmässiga positioner i strängen byter plats internt. Exempel: Muteringsfunktion baserat på tre bitars rotation. De positioner som väljs ut flyttar sitt värde bakåt i strängen till nästa position som ska bytas. Sista biten flyttas till första bytespositionen. Mall: xx0xx00xxx -> 256 roteras -> 652 och sätts tillbaka xx6xx52xxx Sträng: 0123456789 0163452789 ny sträng Tillämpningar från tidigare studier Det finns en hel del studier gjorda på den här typen av sekvenseringsproblem och konflikthanteringsproblem, både för planeringshänseende (görs i förväg mer än 20 min) och för realtidslösningar (typiskt kortare än 10 min). REF Olika metoder och algoritmer har använts men även om trial-and-error eller cut-and-try metoder för att hitta lösningar på komplexa problem är accepterade i de flesta vetenskaper är dessas prestanda enligt Cheng et al (1999) beroende av erfarenheten hos den som utför analysen. Istället argumenterar han för att genetiska sökmetoder utgör en formell lösning för att optimera dessa strategier. 11
De argumenterar också för att genetiska algoritmer lämpar sig generellt väl för TMA (traffic management advisor) problem pga sin robusthet i domäner som är diskontinuerliga, ickekonvexa, icke-linjära och icke-analytiska. De gör i sin artikel en utvärdering av fyra olika typer av genetiska sökalgoritmer. 1. Individen består av två kromosomer; en med flygplanssekvensen och en med tilldelad landningsbana. Urvalet för reproduktion sker slumpmässigt men individer med högre fittnessvärde premieras. Komplexitet 12!x3^12 (12 flygplan och 3 landningsbanor). 2. Individen består av en kromosom som representerar de ankommande flygplanen. Landningsbanan är inte del av individen utan tilldelas utifrån vilken som ger tidigast landningstid. Urvalet för reproduktion är helt slumpmässigt. Komplexitet 12! 3. Variant av (2) där urvalet sker slumpmässigt men högre fitnessvärde premieras. Komplexitet 12! 4. Individen består av algebraiska uttryck och bygger snarare på genetisk programmering. Slutsatsen från Chengs olika algoritmer var att valet av presentation är viktigt liksom urvalskriteriet. Den algoritm som snabbast kom fram till en individ med högst fitnessvärde var algoritm nummer tre. En kompakt presentation som håller nere sökrymden i kombination med ett urval som premierar högt fitnessvärde. Cheng uttrycker i sina slutsatser att det finns skäl att anta att det schema som applicerades i algoritm nummer fyra kan förbättras för att uppnå bättre resultat. Han nämner att algoritmer som bygger på genetisk programmering har potentialen att utveckla program med långt mycket bättre lösningar. En uppföljning på ovan nämnda algoritmer gjordes av Hansen (2004) med speciellt intresse i att jämföra GA metoder med GP metoder. I dessa experiment uppvisade GP metoderna konsekvent bättre resultat än GA metoderna i överrensstämmelse med Cheng et al (1999). Exempel på genetisk algoritm för sekvensering I denna del av rapporten presenteras en praktiskt tillämpad algoritm som bygger på den första algoritmen beskriven i Cheng et al (1999). Problemdefinition Problemet består av att skapa en så effektiv landningsordning som möjligt mellan flygplan ankommande till en flygplats. Det primära syftet är att detta ska ske på ett tillfredsställande säkert sätt samt att det ska iaktta önskemål från flygplansoperatören om att hålla nere förseningarna. Således kan vi beskriva ett antal begränsningar som ramar in problemet. 12
Figur 3: Schematisk bild av inflygningsmönster - Alla flygningar har enligt sin färdplan en beräknad ankomsttid ETA (estimated time of arrival). Syftet är att planera trafiken så att alla kan landa så nära sin beräknade landningstid som möjligt. - För att upprätthålla säkerhetskraven krävs att alla flygplan separeras från varandra med tillfredsställande separation enligt bestämmelserna. Efterföljande flygplan ska när framförvarande flygplan passerar tröskeln för landning vara på betryggande avstånd. Separation sker utifrån vilken viktkategori flygplanen tillhör, vi antar här tre stycken. Light (L), medium (M) och heavy (H). Efterföljande\framförvarande L M H L 1 1.5 2 M 1 1.5 1.5 H 1 1 1 Tabell 1: Separation i minuter mellan flygplan - Förseningen är skillnaden mellan ETA och STA (scheduled time of arrival) och den ska vara så liten som möjlig. - Antalet tillgängliga banor på den aktuella flygplatsen utgör ytterligare en restriktion. I detta specifika fallet finns tre av varandra oberoende rullbanor (de är separerade banor som inte korsar eller påverkar varandra genom att ligga för nära). 13
- Ingen hänsyn tas till inflygningsvägar eller inflygningsfix (fig. 3) vilket skulle vara ytterligare begränsningar till problemet liksom en rad andra parametrar exempelvis väder, flygplansprestanda och ekonomi i form av förbrukat bränsle och förseningar. Orsaken till detta är att problemet inte ska bli för komplext. Den genetiska algoritmen Förutom problemdefinitionen ovan kommer här en kort beskrivning av de viktiga delarna i själva algoritmen enligt Norvig & Russel (1999) och Koza et al (1999). Individens representation Individen består av två kromosomer, den ena representerar flygplanssekvensen och den andra representerar tilldelad landningsbana. Detta kan se ut på följande sätt. Individ (en landningssekvens & tilldelad bana) = [(1 3 2 5 4) (1 2 3 1 2)] Flygplanspark = [(ALFA 10 L)(BRAVO 9 H)(CHARLIE 8 M)(DELTA 9 M)(ECHO 11 H)] Ex. (ALFA 10 L) => callsign: ALFA, ETA: 10, kategori: L. Från denna information kan vi nu räkna ut vilken ordning varje flygplan har tilldelats att landa samt från deras flygplansinformation i databasen räkna ut deras försening respektive när efterföljande flygplan tidigast får landa baserat på viktkategorin. Fitnessfunktionen Fitnessfunktionen är den funktion som talar om hur effektiv landningssekvensen är i termer av den totala förseningen för alla flygplan i sekvensen. Med hjälp av den kan vi jämföra vilken landningsordning som är mest fördelaktig. Fitnessvärdet används sedan för att välja ut de individer som uppvisar bäst potential. Värdet beräknas utifrån den ETA som finns angiven i flygplanets identitet och den STA som flygplanet tilldelas före landning. Urval Urvalet baseras i nuläget enbart på principen om att de starkaste individerna får reproducera sig. Antalet som väljs för reproduktion bestäms av en variabel som är möjlig att justera. För varje iteration väljs ett antal för reproduktion, dessa kopieras och får skapa en avkomma som sedan har en viss procents chans att mutera. Slutligen läggs dessa till i populationen. För att inte populationen ska växa och bli för stor dör ett antal individer i varje iteration. Detta sker samtidigt som ett antal individer väljs för reproduktion. Ytterligare en begränsnings på populationen är att den inte får innehålla några dubbletter, det håller bland annat algoritmen borta från att snabbt konvergera mot en lösning som inte är särskilt optimal. Genetiska operationer De genetiska operationer som används är en form av överkorsning som utförs på den kromosom som representerar bantilldelningen. Två individer väljs ut för att korsas. I grundinställningarna finns en variabel som talar om hur många bitar som ska överkorsas, sedan väljs en position i strängen slumpmässigt varifrån bitarna ska börja tas. 14
Slumpmässig position Överkorsning Avkomma Förälder 1 (1 2 3 2 3) xx xxx 12 323 12xxx 12231 Förälder 2 (3 1 2 3 1) 31 231 xx 231 Mutation är den andra operatorn i den genetisk algoritmen. Den i sin tur opererar på flygplanssekvensen och är beroende av att bibehålla varje bit om än inte deras position för att utgöra en giltig individ. Orsaken är naturligtvis att varje flygplan inte kan landa mer än en gång till skillnad från kromosomen med landningsbanor där varje landningsbana kan förekomma flera gånger som landningsalternativ. Alltså finns det 12 flygplan i en individ ska alla nummer finnas med exakt en gång. Tilldelningen av landningsbanor får bestå av endast bana 1 även om det alternativet skulle bli väldigt ineffektivt pga de förseningar som skulle uppstå. Mutationen tar en individ och istället för att slumpmässigt byta värde på en bit byter det istället ordning på ett antal positioner i strängen. Skiftandet av bitar bygger på den rotation som beskrevs tidigare. Antalet som roteras bestäms av en variabel som går att ändra i grundinställningarna till algoritmen. Resultat Nedan presenteras ett exempel från en körning med 15 landande flygplan på 3 banor. Alla flygplan har önskemål att landa inom ett 5 minuters fönster (ETA 7-12). Den totala förseningen för alla flygplan är 11.5 minuter och den flygning som får längst försening är Lima som har en försening på 3 min i förhållande till beräknad landningstid. Max antal generationer: 200 Antal landande flygplan: 15 Antal individer i populationen vid start: 12 Antal elitgener för reproduktion: 8 Antal individer som dör varje iteration: 2 Överkorsande gener: 2 Procents chans för mutering: 50 Antalet bitar som muteras: 2 Fitnessvärde (totala förseningar i tid): 11.5 Bana 1 Bana2 Bana 3 Ident ETA ATL Delay Ident ETA ATL Delay Ident ETA ATL Delay India 9 9 0 Charlie 8 8 0 Kilo 7 7 0 November 9 10 1 Bravo 9 9 0 Delta 9 9 0 Foxtrot 10 11.5 1.5 Juliett 10 10 0 Golf 10 10.5 0.5 Lima 10 13 3 Echo 11 11 0 Alfa 10 11.5 1.5 Oskar 12 12 0 Mike 11 12.5 1.5 Hotel 11 13.5 2.5 Givet följande landande flygplan. (("ALFA" 10 L)("BRAVO" 9 H)("CHARLIE" 8 M) ("DELTA" 9 M)("ECHO" 11 H) ("FOXTROT" 10 M) ("GOLF" 10 L)("HOTEL" 11 M)("INDIA" 9 H) ("JULIETT" 10 H)("KILO" 7 H)("LIMA" 10 M) ("MIKE" 11 L)("NOVEMBER" 9 H)("OSKAR" 12 H))) Generellt tycks algoritmen fungera som tänkt. Det är svårt att avgöra hur optimal den är men precis som påpekas i Cheng et als (1999) artikel är sökrymden för en algoritm bestående av 15
två kromosomer större än om det bara varit en kromosom. I det här fallet med 15 flygplan med 3 alternativa landningsbanor ge sökrymden av 15!x3^15 = 1307674368000 x 14348907 = 18763697892715776000. Sökrymden hade varit betydligt mindre om tilldelning av bana i istället hade gjorts med en heuristik där varje flygplan tilldelas den bana som är tillgänglig med minsta möjliga försening. På sätt hade inte bantilldelningen varit del av sökrymden och därför hade sökrymden blivit enbart 15!. Å andra sidan kräver varje beräkning extra tid i sig vilket inte syns i ekvationen. Det kan argumenteras att den tiden är kortare än tiden som krävs för att söka i sökrymden vilket inte är något jag har för avsikt att gå närmare in på. 16
Referenser Cheng V, Crawford L, Menon P (1999). Air traffic control using genetic search techniques. Proceedings of the IEEE International Conference on Control Applications. Hansen J (2004). Genetic search methods in air traffic control. Computers and Operations Research archive Volume 31, Issue 3 (March 2004) John R. Koza, Forrest H. Bennett, III, David Andre (1999). Genetic programming III Darwinian invention and problem solving. Morgan Kaufmann Publishers. Kuwata Y & Oohama H (1997). A Case Study of a Real-Time Problem Solving Strategy in an Air Traffic Control Problem. Expert Systems with Applications, Vol. 12, No. 1, pp. 71-79, 1997 Russell, S & Norvig, P (1995). Artificial Intelligence: A Modern Approach. Prentice Hall. Nätresurser: AIP [www]. Aeronautical Information Publication. Tillgänglig på nätet. <http://www.lfv.se/templates/lfv_infosida_70_30 2555.aspx> Hämtat mellan 20070301-20070402 BCL [www]. Bestämmelser för Civil Luftfart. Tillgänglig på nätet. <http://www.lfs.luftfartsstyrelsen.se/irisext/gallande/bcl/> Hämtat mellan 20070301-20070402 EUROCONTROL [www] <http://www.eurocontrol.int> Hämtat mellan 20070301-20070402 LFV [www] <http://www.lfv.se/templates/lfv_lfistart 2341.aspx> Hämtat mellan 20070301-20070402 17