Zeszyty Naukowe Wydziału Elektrotechniki i Automatyki Politechniki Gdańskiej Nr 21 XV Seminarium ZASTOSOWANIE KOMPUTERÓW w NAUCE i TECHNICE 2005 Oddział Gdański PTETiS ZASTOSOWANIE ALGORYTMÓW GENETYCZNYCH DO AUTOMATYCZNEGO GENEROWANIA PLANU ZAJĘĆ 10 Dominik CUBALA 1, Longin STOLC 2 1. Politechnika Gdańska, ul. G. Narutowicza 11/12, 80-952 Gdańsk tel: (058) 347 1226 fax: (058) 347 2487 e-mail: cubala@wp.pl 2. Politechnika Gdańska, ul. G. Narutowicza 11/12, 80-952 Gdańsk tel: (058) 347 1420 fax: (058) 347 2487 e-mail: lstolc@ely.pg.gda.pl 10 Praca przedstawia zastosowanie algorytmów genetycznych do automatycznego układania szkolnego rozkładu zajęć. Stworzono do tego celu odpowiedni program komputerowy PLANIX, który w kilkanaście minut potrafi poradzić sobie ze średniej klasy problemem i nie wymaga praktycznie żadnej interwencji ze strony użytkownika. W niniejszej pracy został zaprezentowany rdzeń tego programu, zawierający implementację odpowiedniego algorytmu genetycznego. Opisane zostały sposoby reprezentacji, kodowania i inicjalizacji genotypu, konstrukcja funkcji oceny (konflikty twarde i miękkie) oraz procedury selekcji i reprodukcji. W dalszej części pracy przedstawiono wyniki przeprowadzonych badań, mających na celu odpowiedni dobór szeregu różnego rodzaju parametrów, które w dużym stopniu wpływają na jakość ułożonego rozkładu zajęć. 1. WSTĘP 10 Ręczne ułożenie planu lekcji w średniej wielkości szkole zajmuje człowiekowi od kilku do kilkudziesięciu godzin. Co więcej, tak skonstruowany plan może być niedoskonały pod pewnymi względami, np. klasa może mieć pomiędzy kolejnymi zajęciami zbyt wiele długich przerw. Z tych powodów zwrócono uwagę na możliwość automatyzacji procesu układania rozkładu zajęć. Ze względu na ogromną liczbę ograniczeń i duże rozmiary zagadnienia, metoda polegająca na przejrzeniu całej przestrzeni rozwiązań, nie jest w ogóle brana pod uwagę. Wtedy konieczne jest zastosowanie jednej z wyspecjalizowanych technik obliczeniowych. Jedną z takich metod, która w ciągu ostatnich kilkunastu lat przeżyła okres burzliwego rozwoju, są algorytmy genetyczne. Ich sposób działania naśladuje naturalne procesy zachodzące w przyrodzie, takie jak dziedziczenie i walkę o przetrwanie. Algorytmy te mają niewątpliwe zalety: są niezwykle elastyczne i do rozwiązania problemu nie potrzebują zbyt obszernej wiedzy dziedzinowej. Więcej na temat algorytmów genetycznych można znaleźć w [2], [3], [4]. Recenzent: Dr inż. Mirosław Kwiesielewicz - Wydział Elektrotechniki i Automatyki Politechniki Gdańskiej
- 46-2. SFORMUŁOWANIE ZAGADNIENIA 2.1. Reprezentacja genotypu i sposoby jego kodowania Genotyp w systemie PLANIX reprezentowany jest w sposób bezpośredni. Każda sala odpowiada jednemu chromosomowi w genotypie. Każdy gen chromosomu reprezentuje inny przedział czasowy. Wszystkie geny chromosomów są zakodowane przyjmując wartości całkowite większe bądź równe zero. Wartość zero oznacza, iż gen jest wolny od zajęć. Pozostałe wartości odpowiadają numerowi zajęcia z zadanej przez układającego macierzy odwzorowującej wszystkie spotkania, które muszą zostać zaplanowane. Genotyp w systemie PLANIX wskazuje jedynie dzień, godzinę lekcyjną oraz salę, w której odbywają się poszczególne zajęcia. Jednak korzystając z macierzy zajęć można łatwo wywnioskować rozkłady zajęć dla poszczególnych klas oraz nauczycieli. Taki właśnie wynikowy genotyp z rozkodowanymi rozkładami zajęć dla wszystkich klas i nauczycieli przedstawia rysunek 1. Na jego podstawie można stwierdzić np., iż klasa c 0 ma w poniedziałek na pierwszych trzech lekcjach w sali s 2 geografię z nauczycielem t 1. sale Termin Poniedz. Wtorek Środa Czwartek Piątek 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 11 0 s 1 6 0 0 12 0 0 0 3 0 0 2 0 0 0 1 0 0 s 2 4 0 8 0 0 0 7 0 0 0 5 0 0 0 0 9 0 0 kla nau c 0 4 12 7 2 10 1 c 1 6 8 3 5 9 11 t 0 12 3 2 10 1 t 1 4 8 7 5 9 11 t 2 6 Rys. 1. Przykładowy genotyp z rozkodowanymi rozkładami zajęć 2.2. Inicjalizacja genotypu W systemie PLANIX zaimplementowano deterministyczno-losową strategię inicjalizacji genotypu. Każde zajęcie zostało umieszczone w jednej z przyporządkowanych temu zajęciu sal tak, aby termin i sala, w którym ma ono zostać umieszczone nie był zabroniony dla danej klasy, nauczyciela bądź sali. Należy zatem w odpowiedni sposób wybierać kolejne zajęcia, aby nie doszło do sytuacji, w której to zabraknie miejsca w pewnych salach, bądź niektóre terminy zostaną zablokowane. Na początku rozmieszczane są zajęcia, które mogą odbywać się tylko w jednej sali. Spośród tych zajęć pierwszeństwo mają te, których czas trwania wynosi 3 godziny lekcyjne. Następnie kolejno umieszczane są zajęcia 2-lekcyjne oraz 1-lekcyjne. Proces ten powtarza się dla zajęć, które mogą odbywać się w dwóch, trzech salach itd., aż w genotypie zostaną umieszczone wszystkie zajęcia. 2.3. Funkcja oceny Podczas konstrukcji planu musi być spełniony szereg różnych warunków. Dzieli się je na dwie grupy [1]: twarde takie, które muszą być spełnione, aby rozkład był dopuszczalny, miękkie takie, które powinny być spełnione, a liczba ewentualnych niespełnionych ograniczeń jest minimalizowana.
- 47 - Funkcja oceny w systemie PLANIX (1) jest funkcją opartą na sumie dwóch funkcji ważonych: funkcji kary twardej oraz funkcji kary miękkiej. f = f twarda + f miekka (1) gdzie: f - funkcja oceny, f twarda funkcja kary twardej, f miekka funkcja kary miękkiej Ze względu na rodzaj reprezentacji genotypu oraz sposób jego inicjalizacji większość ograniczeń twardych jest spełnionych. Dwa różne zajęcia nigdy nie będą się odbywały w tej samej sali, gdyż każdy chromosom w genotypie reprezentuje inną salę. Pewne jest również, iż każdy nauczyciel ma odpowiednią liczbę zajęć z każdą klasą, ponieważ właśnie takie pary klasa-nauczyciel umieszczane są w genotypie. Ponadto okres trwania poszczególnych zajęć jest zawsze odpowiedni, gdyż podczas inicjalizacji, zajęcia w genotypie umieszczane są na tylu genach, ile godzin trwa dane zajęcie. Sposób inicjalizacji genotypu zapewnia nam również, iż zajęcia odbywają się w jednej z dozwolonych sal oraz, iż nie odbywają się w terminach, w których ze względu na odgórnie ustaloną niedostępność sal, nauczycieli bądź terminów, nie mogą się odbywać. Sposób reprezentacji oraz inicjalizacji genotypu nie zapewnia jednak stworzenia osiągalnego planu. Dlatego w systemie PLANIX zaimplementowano odpowiednie algorytmy oceniające następujące twarde konflikty: konflikt nauczycieli (k nau ) jednoczesne prowadzenie wielu zajęć w tym samym terminie przez tego samego nauczyciela, konflikt klas (k kla ) jednoczesne odbywanie się wielu zajęć w tym samym terminie przez tę samą klasę. Po wyznaczeniu wartości konfliktów nauczycieli oraz klas dla wszystkich zajęć w genotypie wyznacza się łączną karę twardą dla danego genotypu (2). Aby dany genotyp reprezentował dopuszczalny plan zajęć, funkcja ta musi mieć wartość równą zero. n z 1 z= 0 ( w k + w k ) f = (2) twarda nau gdzie: n z - liczba zajęć, w nau, w kla - wagi konfliktu nauczycieli oraz klas, k nauz, k klaz - liczba poszczególnych konfliktów dla danego zajęcia Podobnie jak wśród ograniczeń twardych, również dla ograniczeń miękkich można wyróżnić kilka rodzajów konfliktów: konflikt okienek klas (k okk ) klasy nie powinny mieć okienek, konflikt godzin początkowych (k gpo ) klasy powinny zaczynać zajęcia na pierwszej godzinie lekcyjnej, konflikt równomierności (k rów ) zajęcia dla poszczególnych klas powinny być równomiernie rozłożone na wszystkie dni tygodnia, konflikt przedmiotów (k prz ) dla tej samej klasy zajęcia z tego samego przedmiotu powinny być równomiernie rozłożone, konflikt okienek nauczycieli (k okn ) nauczyciele nie powinni mieć okienek, konflikt ilości (k ilo ) nauczyciel nie powinien przekraczać pewnej dziennej liczby zajęć w ciągu dnia. nau z kla kla z
- 48-2.4. Selekcja i procedury reprodukcji W systemie PLANIX zastosowano selekcję metodą rankingową. Liczba kopii każdego osobnika wprowadzana do puli rodzicielskiej ustalana jest w następujący sposób: każdy kolejno lepszy osobnik, ma tyle razy większe szanse wejścia od swojego słabszego poprzednika, ile wynosi współczynnik selekcji. Wynika z tego, iż dla współczynnika selekcji równego jeden, każdy z osobników ma taką samą szansę znalezienia się w wyselekcjonowanej populacji. Poza tym w systemie PLANIX zastosowano elitarną strategię reprodukcji. Najlepszy osobnik zawsze trafia do puli rodzicielskiej, a dodatkowo nie podlega on procesowi krzyżowania i mutacji, aby nie zostać zatraconym (na wypadek jakby operatorom krzyżowania i mutacji nie udało się stworzyć lepszego osobnika). Dodatkowo osobnik ten może się znaleźć w puli rodzicielskiej i podlegać normalnemu procesowi ewolucyjnemu. 2.5. Operatory krzyżowania i mutacji W systemie PLANIX zastosowano krzyżowanie równomierne, tzn. krzyżowaniu podlegają po kolei wszystkie zajęcia, dla danej pary rodziców, z prawdopodobieństwem 50% znalezienia się w każdym z dwóch nowych potomków. Algorytm mutacji oprócz właściwości zwykłego operatora mutacji, posiada cechy operatora częściowej wymiany populacji oraz operatora inwersji. Najpierw dla poszczególnych genotypów podejmowana jest losowa decyzja, czy w danym osobniku ma zajść częściowa wymiana populacji, czy też zwykła mutacja. W przypadku pierwszej opcji pewna liczba genów (zgodnie z prawdopodobieństwem wymiany zajęcia) poddawana jest zwykłej mutacji. Takie postępowanie zapobiega zbieżności populacji, a co za tym idzie powoduje ucieczkę z lokalnego minimum. Jeśli jednak dany osobnik nie zostanie poddany procedurze wymiany populacji, wtedy zajęcie po zajęciu, z pewnym prawdopodobieństwem, poddawane jest operatorowi mutacji. Dla pojedynczego zajęcia losowany jest nowy, wolny termin. Jeżeli wylosowany termin jest już zajęty następuje inwersja dwóch zajęć, zawsze z zachowaniem reguł opisanych w procesie inicjalizacji. 3. STROJENIE ALGORYTMU GENETYCZNEGO 3.1. Analiza procesu tworzenia planu dla różnych parametrów ewolucji Wszystkie eksperymenty przeprowadzone zostały na populacji stu osobników. Ewolucja w każdym przypadku przebiega bardzo podobnie. Na początku następuje gwałtowny skok średniej wartości funkcji kary. Zjawisko to bierze się zapewne stąd, iż w procesie inicjalizacji powstają osobniki, które znacznie różnią się od siebie układem poszczególnych zajęć. Na skutek tego, w początkowej fazie algorytmu, podczas krzyżowania dwóch dobrych osobników, powstają osobniki o wiele słabsze. Sytuacja taka powtarza się gdzieś do 120 pokolenia, kiedy to osobniki z populacji zaczynają być do siebie coraz bardziej podobne. Od tego momentu następuje poprawa wartości funkcji kary najlepszego osobnika. Analizując wpływ poszczególnych parametrów ewolucji na przebieg ewolucji otrzymano następujące wartości: współczynnik selekcji 0,75, prawdopodobieństwo krzyżowania 1, prawdopodobieństwo mutacji 0,0012, prawdopodobieństwo wymiany populacji 0, prawdopodobieństwo wymiany zajęcia 0. Okazuje się zatem, iż zastosowanie algorytmu wymiany populacji oraz wymiany zajęcia nie znalazło w tym przypadku zastosowania. Prawdopodobieństwo krzyżowania ustalone zostało na 1, jednak podobne wartości otrzymano przy wartości 0.5. Jednak zdecydowa-
- 49 - no się na krzyżowanie wszystkich osobników ze względu na większą liczbę lepiej przystosowanych osobników w wyższych iteracjach algorytmu. 3.2. Działanie algorytmu a wagi poszczególnych typów konfliktów Na początek należy przyjrzeć się dokładnie jak zmieniają się wartości poszczególnych konfliktów, przy jednostkowych wartościach wag. W takim przypadku liczba konfliktów nauczycieli jest około dwa razy mniejsza od liczby konfliktów klas. Wartości obydwu tych konfliktów bardzo szybko osiągają wartość zerową. Ponieważ te dwa konflikty są jedynymi konfliktami twardymi, zatem można wysnuć wniosek, iż dosyć łatwo jest znaleźć plan osiągalny. Poza tym, w czasie spadku liczby konfliktów twardych, dość znacznie wzrasta liczba okienek klas oraz nauczycieli, natomiast maleje wartość konfliktu godzin początkowych. Największą wartość przez całą ewolucje utrzymuje konflikt przedmiotów. Jest to pewien sygnał, iż waga tego konfliktu powinna mieć większą wartość. Jedynym konfliktem, na którego zmianę wartości nie mają wpływu zmiany wartości innych typów konfliktów jest konflikt ilości. Przez cały okres działania algorytmu jego wartość utrzymuje się na stałym, bardzo niskim poziomie. Tablica 1. Przebieg ewolucji przy dominacji poszczególnych konfliktów wraz z ostatecznymi ich wagami Różnice pomiędzy przebiegiem ewolucji w stosunku dla jednostkowych wartości wag poszczególnych konfliktów Wnioski Konflikt dominujący Ostateczna waga k nau bez zmian brak 4 należy tak dobierać wagę tego konfliktu aby była wyższa od wagi konfliktu 6 dwukrotne zwiększenie ilości oraz czasu k kla redukcji konfliktu nauczycieli nauczycieli k prz k okk k gpo k rów k okn k ilo wartość konfliktu po inicjalizacji 0; czterokrotne zwiększenie wartości konfliktów twardych; znalezienie planu osiągalnego po 700 iteracjach; duże wartości konfliktów okienek klas i nauczycieli wartość konfliktu po inicjalizacji 0; brak planu osiągalnego po 1000 iteracjach brak planu osiągalnego po 1000 iteracjach znalezienie planu osiągalnego zajmuje 700 iteracji; szybkie sprowadzenie do zera wysokiej wartości konfliktu klas; podobny przebieg ewolucji jak dla dominacji konfliktu okienek klas; również brak planu osiągalnego brak planu osiągalnego waga tego konfliktu powinna mieć wartość niewiele większą od pozostałych wag waga konfliktu nie powinna być większa waga konfliktu nie powinna być większa dopuszczalna dominacja tego konfliktu 5 waga konfliktu powinna być większa waga konfliktu nie powinna być większa W dalszej kolejności badano jaki wpływ na ewolucję będzie miało czterokrotne zwiększenie wagi jednego z konfliktów (pozostałe wartości jednostkowe). Opisaną sytuację wraz z wnioskami i opisem ewolucji oraz ostatecznie ustalonymi wagami poszczególnych typów konfliktów przedstawia tablica 1. 6 4 4 2 1
- 50-4. WNIOSKI KOŃCOWE Podsumowując, w pełni automatyczny, oparty o algorytm genetyczny system PLA- NIX układa plan w kilka minut. Stworzony rozkład zajęć nie łamie żadnych twardych ograniczeń, a więc jest planem osiągalnym. Natomiast ograniczenia miękkie program stara się jak najbardziej zminimalizować, poprawiając w ten sposób jakość ułożonego planu. Samo oprogramowanie wymaga jeszcze pewnego dopracowania, aby można je było stosować do układania planu lekcji w szkołach. Powinna pojawić się możliwość uczestniczenia klasy w więcej niż jednym zajęciu w danym czasie (lekcje dzielone) oraz możliwość prowadzenia przez jednego nauczyciela zajęć w więcej niż jednej klasie w tym samym czasie (fakultety). Dodatkowo w programie należy dodać opcję wydruku stworzonego planu i to zarówno w postaci tzw. płachty jak i plany poszczególnych klas i nauczycieli. Warto byłoby również dodać opcję eksportowania gotowego planu do formatu Microsoft Excel oraz do formatu HTML, dającego możliwość publikacji w Internecie. Opisana metoda z powodzeniem może znaleźć zastosowanie w problemach o mniejszej skali złożoności, takich jak: planowanie dyżurów w szpitalu, harmonogramowanie obłożenia obiektów w klubie sportowym, itp. Jej mocną stroną jest duża elastyczność i spora, jak na algorytm genetyczny, szybkość działania. 5. BIBLIOGRAFIA 1. Burke E. K., Elliman D. G., Weare R.: a Genetic Algoritm Based University Timetabling System, Practice and Theory of Automated Timetabling, 1996, ISBN 35-406- 1794-9. 2. Goldberg D. E.: Algorytmy genetyczne i ich zastosowania, Warszawa WNT1998, ISBN 83-204-2843-2. 3. Michalewicz Z.: Algorytmy genetyczne + struktury danych = programy ewolucyjne, Warszawa WNT 1999, ISBN 83-204-2881-5. 4. Rutkowska D., Piliński M., Rutkowski L.: Sieci neuronowe, algorytmy genetyczne i systemy rozmyte, Warszawa PWN 1997, ISBN 93-01-12304-4. USING GENETIC ALGORITHM IN AUTOMATED SCHOOL-TIMETABLING This paper focuses on using genetic algorithm in automated school-timetabling. We provide PLANIX program which compose finished schedule in several minutes. This paper describes core of program including ways of representation, coding and initialization, contruction of fitness function, selection and reproduction procedures. We also present results of our resarch for choosing series of different parameters.