Anda di halaman 1dari 13

Optymalizacja ruchu na przykadzie skrzyowania dwch drg gwnych W tym opracowaniu zajmiemy si szczegow analiz skrzyowania, ktrego schemat

jest zmieszczony poniej. Praca ta zawierad bdzie teoretyczny opis zagadnienia i przykady, ktrych celem bdzie pokazanie susznoci omawianej teorii. Przedstawimy krok po kroku fazy powstawania chromosomu, omwimy szczegowo jego budow i pokaemy jak mona go ocenid. Zastanowimy si take kiedy algorytm genetyczny powinien zmieniad cykl wiate. Zaczynajmy wic. Schemat skrzyowania

Na schemacie widzimy dwie gwne drogi. Kada skada si z trzech pasw: do jazdy prosto, w lewo i w prawo. Zakadamy, e pasy, ktrymi opuszcza si skrzyowanie s przyporzdkowane do odpowiednich pasw, ktrymi wjeda si na skrzyowanie. Na kolejnym rysunku przedstawimy zalenoci midzy

pasami.

Naley zwrcid uwag na kolory. Zatem, jeeli pojazd nadjecha z zielon strzak, powinien wyjechad pasem ze strzak tego samego koloru. Taki sposb organizacji ruchu daje due moliwoci w stworzeniu pojedynczego cyklu. Okazuje si jednak, e wiele cykli prowadzi do kolizji na rodku skrzyowania. Algorytm genetyczny musi zatem w stu procentach eliminowad takie rozwizania. Lepsze jest oczywicie troch gorsze rozwizanie ni takie, ktre prowadzi do niebezpiecznych kolizji. Mamy 12 wjazdw na skrzyowanie i tyle samo zjazdw. Kadym pasem kieruje osobna sygnalizacja wietlna. Moemy dowolnie ustawiad pozwolenia na przejazd przez skrzyowanie. Poniewa mamy 12 dojazdw, a na kadym moe si wiecid wiato czerwone lub zielone (wiato te jest pomijane ze wzgldu na swj odmienny charakter) dostajemy moliwych ustawieo wiate. Co daje liczb 4096. Kade takie ustawienie jest symbolizowane przez wektor zero jedynkowy, ktry bdziemy oznaczad w nastpujcy sposb: X= *a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12], gdzie ai jest i-tym elementem wektora 12 elementowego (jest rwne 0 lub 1). Zbir wszystkich takich wektorw oznaczymy przez: . Ale czy to jest wszystko? Bo jeli tak, to nie trzeba stosowad algorytmu, aby znaled optymalne rozwizanie. Cykl Zastanwmy si teraz czym jest cykl. W naszym opracowaniu przyjmujemy nastpujc definicj: Definicja: Cykl () jest podzbiorem zbioru (zbioru wszystkich moliwych stawieo wiate), takim, e suma wszystkich wektorw w tym zbiorze jest rwna wektorowi jednostkowemu: X = [1,1,1,1,1,1,1,1,1,1,1,1]

Waciwoci cyklu: Ma najwyej 12 elementw (maksimum jest osigane, gdy elementy s elementarne: to znaczy kazdy wektro skada si z jednej jedynki i samych zer) Elementy nie powtarzaj si Kady sygnalizator jest uwzgldniany, poniewa w zbiore musi istnied wektor, ktry ma jedynk na miejscu, ktre jest powizane z sygnalizatorem

Chwila zastanowienia i dochodzimy do wniosku, e liczba 4096, czyli moc zbioru nie jest tym czego oczekujemy. Policzymy ile jestemy w stanie stworzyd rnych cykli. Zacznijmy od prostszych przypadkw. Niech N bdzie liczb elementw w wektorze, zatem: N = 1, wtedy moemy stworzyd nastpujce cykle: o [1] o [1],[0] Jeden zbir jednoelementowy (singleton), jeden zbir dwuelementowy N = 2, wtedy moemy stworzyd nastpujce cykle: o [1,1] o [1,1],[0,0] o [0,1],[1,0] o [0,1],[1,0],[0,0] Jeden singleton, dwa zbiory dwuelementowe N = 3, wtedy moemy stworzyd nastpujce cykle: o [1,1,1] o [1,1,1],[0,0,0] o [0,1,1],[1,0,0] o [1,0,1],[0,1,0] o [0,0,1],[1,1,0] o [1,0,0],[0,1,0],[0,0,1] o [0,1,1],[1,0,0],[0,0,0] o [1,0,1],[0,1,0] ,[0,0,0] o [0,0,1],[1,1,0] ,[0,0,0] o [1,0,0],[0,1,0],[0,0,1],[0,0,0,0] Jeden singleton, cztery zbiory dwuelementowe, cztery zbiory trzyelementowe N=4 o [1,1,1,1] o [1,1,1,1],[0,0,0,0] o [1,0,1,1],[0,1,0,0] o [1,1,0,1],[0,0,1,0] o [1,0,0,1],[0,1,1,0] o [0,1,1,1],[1,0,0,0]

o o o o o o o o o o o o o o o o o o o o o o o

[0,0,1,1],[1,1,0,0] [0,1,0,1],[1,0,1,0] [0,0,0,1],[1,1,1,0] [1,1,0,0],[0,0,1,0],[0,0,0,1] [0,1,0,0],[1,0,1,0],[0,0,0,1] [0,1,0,0],[0,0,1,0],[1,0,0,1] [1,0,1,1],[0,1,0,0],[0,0,0,0] [0,0,1,1],[1,1,0,0],[0,0,0,0] [0,0,1,1],[0,1,0,0],[1,0,0,0] [1,1,0,1],[0,0,1,0] ,[0,0,0,0] [0,1,0,1],[1,0,1,0] ,[0,0,0,0] [0,1,0,1],[1,0,1,0] ,[1,0,0,0] [1,0,0,1],[0,1,1,0] ,[0,0,0,0] [0,0,0,1],[1,1,1,0] ,[0,0,0,0] [0,0,0,1],[0,1,1,0] ,[1,0,0,0] [0,0,0,1],[0,0,1,0],[0,1,0,0],[1,0,0,0] [1,1,0,0],[0,0,1,0],[0,0,0,1] ,[0,0,0,0] [0,1,0,0],[1,0,1,0],[0,0,0,1] ,[0,0,0,0] [0,1,0,0],[0,0,1,0],[1,0,0,1] ,[0,0,0,0] [0,0,1,1],[0,1,0,0],[1,0,0,0] ,[0,0,0,0] [0,1,0,1],[1,0,1,0] ,[1,0,0,0] ,[0,0,0,0] [0,0,0,1],[0,1,1,0] ,[1,0,0,0] ,[0,0,0,0] [0,0,0,1],[0,0,1,0],[0,1,0,0],[1,0,0,0],[0,0,0,0]

Istnieje zatem zalenod midzy liczb poszczeglnych zbiorw. Na przykad zbiorw dwu-elementowych jest . Liczba zbiorw k elementowych, gdzie 1 < k < N: ( . Liczba zbiorw N elementowych jest rwna: N\k 1 2 3 4 5 1 1 1 1 1 1 2 1 2 4 8 16 3 0 1 4 12 36 4 0 0 1 7 28 . Tabela przedstawia obliczenia dla pewnych wartoci N: 5 0 0 0 1 11 6 0 0 0 0 1 7 0 0 0 0 0 8 0 0 0 0 0 9 0 0 0 0 0 10 0 0 0 0 0 11 0 0 0 0 0 12 0 0 0 0 0

6 7 8 9 10 11 12

1 1 1 1 1 1 1

32 64 128 256 512 1024 2048

108 324 972 2916 8748

112 448 1792 7168 28672

55 275 1375 6875 34375 171875 859375

16 96 576 3456 20736

1 22 154 1078 7546

0 1 29 231 1856 14848

0 0 1 37 333 2997

0 0 0 1 46 460 4600

0 0 0 0 1 56 616

0 0 0 0 0 1 67

26244 114688 78732 458752

124416 52822 746496 369754

118784 26973

Wedug tabeli z 4096 ustawieo wiate moemy utworzyd dla zbioru 12 elementowego 2.666.198, czyli ponad 2 i p miliona cykli. Pjdmy dalej. Kady element z danego cyklu moe trwad okrelon dugod z przedziau od 0 do A (A jest liczb cakowit). Dla przykadu wemy cykl jednoelementowy. Takich cykli o rnych dugociach mamy A*1. W oglnoci dla k elementowego zbioru mamy: *(liczba k elementowych cykli). Otrzymujemy zatem liczb: A*1 + *2048 + ... + *67. Jest to bardzo dua liczba. Nawet dla A = 1 bdzie to wartod, ktra nie pozwala nam przejrzed wszystkie moliwe rozwizania (dokadnie 2.666.198). Pozostaje wic zastosowad algorytm genetyczny, ktry w duo krtszym czasie znajdzie zadowalajce rozwizanie. Budowa chromosomu Numer czujki 1 (sygnalizatora) Czas palenia si zielonego wiata (w sekundach) Przynalenod do grupy A1 2 3 4 5 6 7 8 9 10 11 12

A2

A3

A4

A5

A6

A7

A8

A9

A10

A11

A12

B1

B2

B3

B4

B5

B6

B7

B8

B9

B10

B11

B12

Powyszy schemat przedstawia chromosom. Po kolei wyjanimy co oznaczaj kolejne wiersze i kolumny: Numer czujki kady pas ma przyporzdkowan czujk, ktra zlicza samochody wjedajce danym pasem na skrzyowanie. Na jej podstawie obliczany jest wspczynnik natenia ruchu z danej strony. To znaczy jak wiele samochodw przejechao przez czujk w danym odstpie czasu. W naszym opracowaniu odstp ten bdziemy oznaczali przez sta O.

Czas palenia si zielonego wiata liczba sekund, przez ktre na sygnalizatorze bdzie si palio zielone wiato. Samochody maj wtedy moliwod wjazdu na skrzyowanie. Przynalenod do grupy tworzy podzia na cykle (patrz definicja cyklu) poprzez ustawienie zmiennych Bi na wartoci od 1 do 12, z tym, e nie wszystkie wartoci musz byd wykorzystane. Istnieje take wartod specjalna X, ktra oznacza, e dany sygnalizator zostaje pomijany, poniewa na pasie, ktry obsuguje nie ma wystarczajco duego ruchu.

Przejdmy do przykadw. Poniej przedstawiam losowy chromosom: 1 3 1 2 2 2 3 6 1 4 8 1 5 2 4 6 5 6 7 0 X 8 5 4 9 2 3 10 0 X 11 1 2 12 4 2

Przeanalizujmy go. Widzimy, e zawiera on informacje o 12 sygnalizatorach (na skrzyowaniu jest 12 pasw). Kademu z nich jest przyporzdkowana dugod palenia si zielonego wiata oraz grupa do ktrej naley. Te sygnalizatory, ktre maj si palid 0 sekund nie s brane pod uwag, eby nie zajmowad si pasami, na ktrych prawdopodobnie nie ma ruchu. Interpretacja powyszego schematu wyglda nastpujco. Mamy 5 rnych grup i grup specjaln X, ktra nie bierze udziau w cyklu. Uporzdkowanie wedug grup (nazwa grupy: elementy grupy <czas palenia si zielonego wiata danego elementu>): Grupa 1: 1<3>,3<6>,4<8> Grupa 2: 2<2>,11<1>,12<4> Grupa 3: 9<2> Grupa 4: 5<2>,8<5> Grupa 6: 6<5>

Nastpuje teraz ocena poprawnoci chromosomu, to znaczy sprawdzenie, czy dany podzia nie powoduje kolizji. Jeeli powoduje, to potrzebna jest prba naprawy kolizji. Sprawdzamy na podstawie grafu, czy moliwe jest zderzenie pojazdw w rodku skrzyowania. Zanim do tego jednak przejdziemy,

przedstawimy na rysunku numeracj pasw oraz tabel kolizji.

Pasy ponumerowane sa od 1 do 12 zaczynajc od grnego pasa do jazdy w prawo. Kierunek numeracji jest zgody z ruchem wskazwek zegara.

Numer 1 pasa 1 2 3 4 5 6 7 X 0 0 0 0 0 0

10

11

12

0 X 0 0 1 0 0

0 0 X 0 1 1 0

0 0 0 X 0 0 0

0 1 1 0 X 0 0

0 0 1 0 0 X 0

0 0 0 0 0 0 X

0 0 1 0 1 1 0

0 1 0 0 0 1 0

0 0 0 0 0 0 0

0 1 0 0 0 1 0

0 1 1 0 1 0 0

8 9 10 11 12

0 0 0 0 0

0 1 0 1 1

1 0 0 0 1

0 0 0 0 0

1 0 0 0 1

1 1 0 1 0

0 0 0 0 0

X 0 0 1 0

0 X 0 1 1

0 0 X 0 0

1 1 0 X 0

0 1 0 0 X

Tabela kolizji przedstawia zalanoci midzy dwoma dowolnymi pasami. Zero oznacza brak kolizji, jedynka kolizj, a X jest tylko znacznikiem. Wrdmy do przykadu. Numery grup wskazuj take na kolejnod w jakiej ustawienia bd si pojawiad w danym cyklu. Kolejnod nie ma specjalnego znaczenia, ale zawsze jaka musi byd. Zanim wprowadzilimy dodatkowe schematy zajmowalimy si badaniem poprawnoci chromosomu. Teraz wracamy do tego zagadnienia. Aby chromosom by prawidowy, w adnej z grup nie moe byd kolizji. Jak mona zauwayd grupa jest podzbiorem zbioru oznaczanego przez nas , czyli zbioru wszystkich ustawieo wiate. Oznaczmy przez Gi i-t grup zawierajc elementy gij (indeks i oznacza numer grupy, natomiast j nimer elementu). Aby ujednolicid matematyczny zapis wprowadmy take K jako macierz kwadratow o rozmiarze 12, ktra odpowiada tabeli kolizji. Wtedy element takiej macierzy bdziemy oznaczali jako Kij, gdzie i jest numerem wiersza, a j numerem kolumny. Korzystajc z oznaczeo definiujemy formalnie poprawnod chromosomu:

Oznaczenia: i jest numerem grupy j,k s indeksami elementw w danej grupie (k rne od j)

Zalenod mwi nam tylko, e dowolna para w grupie nie moe si przecinad. Aby atwiej zobaczyd o co chodzi w warunku poprawnoci pokaemy jak dziaa na przykadzie. Bierzemy grup pierwsz. Skada si ona z elementw 1,3,4 (g11 = 1, g12 = 3 , g13 = 4). Moemy poczyd je w pray na sposobw, czyli 3: g11 - g12 g11 - g13 g12 - g13

Sprawdzamy, czy w odpowiednich kolumnach macierzy nie ma jedynek:

K13 = 0 K14 = 0 K34 = 0

Okazuje si zatem, e grupa pierwsza jest poprawna. Sprawdzamy kolejne grupy. Grupy 1,3 i 6 s poprawne. Niestety w grupie 2 i 5 nastpuje kolizja. S tutaj dwie metody postpowania. Oceniamy chromosom jak najniej si da, lub cakowicie go wykluczamy z populacji. Lub te rozbijamy grupy, ktre byy niewaciwe. Po rozkadzie otrzymujemy nastpujace grupy: Grupa 1: 1<3>,3<6>,4<8> Grupa 2: 2<2> Grupa 3: 9<2> Grupa 4: 5<2> Grupa 5: 8<5> Grupa 6: 6<5> Grupa 7: 11<1>,12<4>

Taki podzia jest ju poprawny. Przechodzimy zatem do nastepnego etapu interpretacji chromosomu. Ustalamy teraz jak dugo powinno trwad dane ustawienie (reprezentowane przez grup). Elementy jak widzimy s rznej dugoci (rni si czasami wiecenia zielonego wiata). Ustalamy redni arytmetyczn czasw palenia si zielonego wiata elementw jako czas trwania danej grupy (ustawienia). Oznaczamy je jako AVGi, gdzie i jest numerem grupy. AVG oznacza, e dane ustawienie bdzie trwao AVG sekund, czyli na kadym pasie z tej grupy bedzie moliwod wjazdu na skrzyowanie przez AVG sekund. Nastpnie (po tym czasie) nastpi kolejne ustawienie i tak a do zakooczenia cyklu. AVG dla poszczeglnych grup przedstawia si nastpujco: AVG1 = AVG2 = =2 AVG3 = =2 AVG4 = =2 AVG5 = =5 AVG6 = = 5 AVG7 = = 2,5 3 = 5,7 6

Czasy zaokrglamy do liczb cakowitych. Wprowadzamy jeszcze jedno oznaczenie na liczb elementw (pasw) w danel grupie: Lpi bdzie moc zbioru Gi (liczb elementw danej grupy). Oznaczenie to uproci wzr na funkcj oceny chromosomu, do ktrego cay czas dymy. Lp dla poszczeglnych grup wynosi:

Lp1 Lp2 Lp3 Lp4 Lp5 Lp6 Lp7

=3 =1 =1 =1 =1 =1 =2

Niech na i-tym pasie bdzie w danej chwili ai samochodw (moe byd to te wspczynnik natenia ruchu na danym pasie, oczywicie odpowiednio przeskalowany). Wtedy funkcja oceny chromosomu wyglada nastpujco:

T we wzorze jest wspczynnikiem szybkoci pojazdw. Okrela jak wiele samochodw jest w stanie przejechad w cigu jednej sekundy. V jest to chromosom, ktry chcemy oceniad. Funkcja zwraca nam wartod, ktr mona interpretowad jako stosunek liczby samochodw, ktre przejad w danym cyklu przez skrzyzowanie do czasu trwania tego cyklu. Zanim przejdziemy do przykadu i ocenimy kilka chromosomw oraz porwanamy otrzymane rezultaty, wrcimy na moment do budowania pocztkowej populacji. Tworzenie chromosomu do populacji pocztkowej Korzystamy tutaj ze zbiorw rozmytych. Po odpowiednim wybraniu funkcji przynalenoci rozmywamy kolejne wartoci wczytane z czujek oraz aktualn godzin. W ten sposb otrzymujemy za pomoc techniki rozmytej wyostrzon wartod, ktra wskazuje jak dugo powinno si wiecid zielone wiato na danym pasie. Przykadowe czasy zostay przedstawione ju na jednym z rysunkw. Gdy na danym pasie nie ma ruchu, automatycznie ustawiamy czas palenia si zielonego wiata na zero, eby nie tracid czasu.

Nastpnie przechodzimy do procedury oceny chromosomu.

Mao Wczesne Szczytowe Umiarkowane Krtko Krtko Krtko

rednio rednio rednio rednio

Duo rednio rednio Dugo

Reguy rozmyte s przedstawione w powyszej tabeli. Podsumowujc, czasu palenia si zielonego wiata ustalamy w oparciu o logik rozmyt. Przyporzadkowanie do danej grupy odbywa si ju losowo. Reszta natomiast, jest ju w rkach algorytmu genetycznego. Przykad oceny chromosomu Zacznijmy od ocenienia chromosomu, ktry pojawia si ju wiele razy w tym opracowaniu. Mamy dla niego policzone wartoci, zatem nie powinno byd kopotu. Aby dokonac oceny ustalmy pewne stae skrzyowania, ktre s uzyte we wzorze. To jest, wartoci ai oraz T = 2. Wartoci ai przedstawimy w formie wektora: A = [0,3,1,4,1,6,12,4,1,5,0,2] Liczba grup w naszym przypadku (po rozbiciu) wynosi 7. Liczymy: Eval(V)=

Chromosom zosta bardzo sabo oceniony, poniewa wartod funkcji eval jest bardzo maa. Jest to spowodowane faktem, e nie nastpio dopasowanie czasu palenia si zielonego wiata do wartoci odczytanych z czujek.

Anda mungkin juga menyukai