ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ
Seria: INFORM ATYKA z. 29 N r kol. 1306
_______ 1995
Bożena R EB A JN
U K Ł A D A N IE P L A N U ZAJĘĆ ZA PO M O C Ą SYSTEM U PL A N
Streszczenie. Problem układania planu zajęć należy do trudnych, klasycz
nych problemów kombinatorycznych i jest intensywnie badany ze względu n a praktyczne zastosowania. W artykule przedstawiono opis algorytm u rozwiązywa
nia tego problemu, jaki zastosowano w systemie wspomagającym układanie planu zajęć PLAN, a także omówiono strukturę i zasady działania systemu.
TIM ETABLING IN TH E PLAN SYSTEM
Sum m ary. The tim etable problem, one of the difficult classical com binatorial problem s, has been intensively investigated due to its practical relevance. T he paper presents the algorithm implemented in the PLAN tim etabling system . T he system ’s structure and its principles of operation are also described.
TR A Ç A G E D ’HORAIRES SCOLAIRES DANS LE SYSTEM E PLA N
Résumé. Le traçage d’horaires scolaires est un problème com binatoire diffi- cil classique qui a fixé beaucoup d ’attention pour de raisons pratiques. L’article présente l’algorithm e de traçage appliqué dans le système logiciel PLAN. La struc
tu re et les principes du système sont aussi présentés.
1. W prowadzenie
Problem układania planu zajęć dla szkół jest złożonym problem em kom binatorycz- nym. Z problem em tym spotyka się wielu nauczycieli w każdej szkole, od typu podstaw o
wego po wyższy. Ręczne układanie planu zajęć jest bardzo czasochłonne. Pow stają więc pom ysły w ykorzystania do tej pracy komputera.
Rozważany problem można rozwiązać na wiele sposobów. Jednak nie wszystkie roz
w iązania są korzystne dla przyszłych użytkowników planu: uczniów, studentów czy p ra
cowników szkoły. W praktyce istnieje potrzeba znalezienia rozwiązania optymalnego, uwzględniającego wszelkie ograniczenia związane z konkretną szkołą, dla której plan po
w staje, zapewniającego wszystkim dogodne warunki pracy i nauki.
U kładanie planu zajęć polega na wiązaniu ze sobą w gotowe jednostki planu informacji dotyczących:
• grup słuchaczy,
• nauczycieli, grup prowadzących,
• puli zajęć, które powinny odbyć się w danym semestrze,
• dostępnych pomieszczeń dydaktycznych,
• dopuszczalnych godzin pracy w poszczególnych dniach tygodnia.
W szystkim zajęciom należy przypisać ściśle określony term in i salę dydaktyczną. Zaję
cia muszą być prowadzone przez określonego wcześniej prowadzącego, z danym zespołem słuchaczy i z danego przedmiotu nauczania. Oprócz tych podstawowych założeń p ra widłowo ułożony plan zajęć powinien uwzględnić jeszcze wiele dodatkowych ograniczeń i często przeciwstawnych wymagań. Należą do nich między innymi:
• ciągłość zajęć grup słuchaczy i prowadzących, czyli brak luk w planie zajęć,
• równomierne obciążenie dostępnych pomieszczeń dydaktycznych,
• spełnienie indywidualnych preferencji i wymagań dotyczących term inów poszcze
gólnych zajęć zgłaszanych przez prowadzących.
Dodatkowymi czynnikami, które komplikują proces tworzenia planu zajęć, są: nie
w ystarczająca liczba sal dydaktycznych, ściśle określone przeznaczenie niektórych sal, przypisanie terminów do ściśle określonych zajęć, zajęcia prowadzone z kilkoma grupam i równocześnie, zajęcia prowadzone przez zespoły prowadzących.
Złożoność problemu sprawia, że powstające systemy wspomagają układanie planu za
jęć w szkołach określonego typu, np. w szkołach podstawowych i średnich lub w szkołach wyższych, uwzględniając specyficzne uwarunkowania związane z danym typem szkoły.
Przykładem program u wspomagającego planowanie zajęć w szkołach średnich i p o d sta
wowych może być produkt firmy Vulcan, a w szkołach wyższych system, jaki pow staje w Politechnice w Mediolanie [5] oraz system Plan [4].
W dalszej części artykułu zaprezentowane zostanie rozwiązanie problem u układania planu zajęć, jakie zastosowano w systemie Plan, który powstał w Instytucie Inform atyki Politechniki Śląskiej. Zanim jednak poznamy sam system, przyjrzyjmy się bliżej proble
mowi.
U kładanie planu zajęć za pomocą systemu PLAN 57
2. Sformułowanie problemu
Problem układania planu zajęć dla szkół jest problemem N P-zupełnym , znanym w li
teratu rze jako problem T T (ang. TimeTabling). Klasa problemów NP obejm uje te w szyst
kie problemy, które mogą być rozwiązane za pomocą niedeterministycznych algorytmów 0 wielomianowym czasie przetwarzania [2]. Algorytmy niedeterministyczne charaktery
zują się tym , że w danej chwili muszą dokonać wyboru jednej spośród wielu możliwości 1 nie stosują do tego celu żadnej deterministycznej procedury. W pracy [3] p o dana została definicja transform acji wielomianowej, z której wynika, że dla wykazania N P-zupełności badanego problemu decyzyjnego wystarczy przetransformować do niego wielomi&nowo dowolny znany problem NP-zupełny,
K orzystając z tej właściwości problemów N P-zupelnych, Even, Itai i Sham ir [1] udo
wodnili, że problem układania planu zajęć jest problemem N P-zupełnym . Problem T T został przetransformowany do problemu spełnialności wyrażeń boolowskich. W cytowa
nej pracy [1] formułując rozważany problem pominięto wiele czynników, które w praktyce odgrywają w ażną rolę. Mimo przyjętych ograniczeń udowodniono, że problem nadal jest problemem klasy NP.
Problem układania planu zajęć można sformułować w następujący sposób. Dane są:
« skończony zbiór godzin w tygodniu, H ,
o zbiór godzin, które muszą być przeprowadzone przez każdego z n nauczycieli { Z i,T j, ...,T n}, gdzie Ti C H; każdy t-ty nauczyciel może prowadzić zajęcia w pew nym podzbiorze T; zbioru godzin H,
• zbiór m klas { C i,C j,...,C m}, gdzie Cj C H , z których każda jest dostępna tylko w czasie określonych godzin tygodnia, oznaczonych Cj,
• m acierz R o rozmiarach n x m nieujemnych liczb całkowitych, w której je st liczbą godzin, które dany nauczyciel musi przeprowadzić z każdą klasą.
Należy ustalić, czy istnieje funkcja spotkania nauczyciela z daną klasą określona n a
stępująco: f ( i , j , h ) : {1 .. n} x {1 .. m} x H —* {0,1}: Wartość funkcji k) — 1, jeśli nauczyciel i prowadzi zajęcia z klasą j podczas godziny h. Funkcja ta powinna spełniać następujące warunki:
• spotkanie może mieć miejsce wtedy i tylko wtedy, gdy zarówno nauczyciel, jak i klasa są dostępne: ) = 1 =$■ h £ TiflC y,
• liczba spotkań podczas tygodnia pomiędzy nauczycielem i oraz klasą j w wym aga
nym rozm iarze określana jest wartością .Ry:
A) = it*
/ig/r
dla każdego i £ [ 1, n ] oraz dla każdego j € [ 1, m ],
• na każdą klasą przypada co najwyżej jeden nauczyciel w danym czasie:
1=1 dla wszystkich j 6 [ l ,m ] oraz h E H,
• nie m a nauczyciela, który uczy w dwóch klasach równocześnie:
E i 1
j=x dla wszystkich i € [ 1, n ] oraz h G H.
Spełnienie wszystkich przedstawionych warunków jest konieczne, aby pow stał prawi
dłowo ułożony plan zajęć, ale nie jest wystarczające. Udowodniono, że złożoność oblicze
niowa algorytm u rozwiązującego problem TT jest wielomianowa, jeżeli przyjęte zostanie ograniczenie, że wszyscy nauczyciele są 2-nauczycieIami. ¿-nauczyciel, jest to taki na
uczyciel, który może poświęcić danej klasie k godzin, czyli
S u = * i=i
W praktyce, rozwiązując rozważany problem, nie można przyjąć żadnych ograniczeń co do liczby godzin prowadzonych przez nauczycieli. Należy natom iast uwzględnić wiele dodatkowych uwarunkowań i ograniczeń, o których wspomniano na wstępie.
3. Charakterystyka system u PLA N
System wspomagający układanie planów zajęć dla szkół wyższych PLAN pow stał w Instytucie Informatyki Politechniki Śląskiej w latach 1992-1994. System operuje n a złożonych strukturach danych, które zorganizowane są w bazy opisane w system ie Pa- radox 3.5. C entralną częścią systemu jest moduł automatycznej generacji planu zajęć, który napisany jest w języku C. System przystosowany jest do pracy n a kom puterach klasy IB M -P C pod systemem operacyjnym DOS.
Po wprowadzeniu danych wejściowych można zlecić systemowi autom atyczną gene
rację określonej wersji planu lub dokonywać modyfikacji już istniejących wersji planu zajęć. W yniki m ożna wyświetlać na ekranie m onitora w postaci zestawu plansz z tygo
dniowymi planam i zajęć dla poszczególnych grup słuchaczy, osób prowadzących zajęcia i pomieszczeń dydaktycznych. Można także zlecić systemowi drukowanie tych plansz.
U kładanie planu zajęć za pomocą systemu PLAN 59
3 .1 . S tru k tu ra danych sy stem u P L A N
Ogólny schem at ilustrujący przepływ danych w systemie PLAN przedstawiony jest na rys. 1.
Dane statyczne
prow adzący!
1
erupy
przedmioty
■ ale
kierunki
Dane bieżące
zajęcia
ograniczenia É preferencje
Rys. 1. Schemat przepływu danych w systemie PLAN Fig. 1. D ata flow diagram in the PLAN system
Dane wejściowe system u można podzielić na trzy grupy: dane statyczne, dane bieżące oraz jednostki planu.
3 .1 .1 . D a n e sta ty czn e
Dane statyczne opisują środowisko związane z realizacją zajęć dydaktycznych. Dane te są jednokrotnie gromadzone w systemie i rzadko zmieniane. Należą do nich:
• wykaz kierunków studiów,
• param etry zajęć dydaktycznych, przewidzianych planem studiów,
• wykaz osób lub zespołów prowadzących zajęcia,
• wykaz grup słuchaczy,
• charakterystyka dostępnych pomieszczeń.
Istnieje możliwość łączenia grup słuchaczy w grupy zespolone, np. grupa słuchaczy se
m estru pierwszego może tworzyć grupę zespoloną, w skład której będą wchodziły wszyst
kie grupy studenckie semestru pierwszego. Wprowadzenie grup zespolonych umożliwia planowanie zajęć, w których uczestniczy kilka grup jednocześnie, np. wykładów. Na p o dobnych zasadach jak grupy zespolone można utworzyć zespoły prowadzących. Skład osobowy takiego zespołu ustala się za pomocą specjalnego wzorca. Przykładowe wzorce do edycji danych statycznych przedstawione są n a rys. 2 i 3.
E d y c j a d a n y c h ^ GRUP.i "‘S t U C B H C K X 2 '
Eilipohoc
CF3 ] u s t a l a n i e s k ł a d u g r u p y z e s p o l o n e j CF51 - w y b ó r w a r t o ś c i ze
s ł o w n i k a :
[Enter] - a k c e p t a c j a , [Esc! - r e z y g n a c j a .
k i e r u n e k s e m e s t r g r u p a r o d z a j 1 iczn o ś ć
inf ie -1 24
inf 10 z 94
lnr 1 1 26
inf 1 2 26
lnr 1 3 25
lnr 1 4 26
inr 1 5 25
I n M 1 z 120
inr 2 1 33
inr 2 2 34
lnr 2 3 34
inr 2 4 32
lnr 2 z 133
inr 3 1 25
lnr 3 2 25
inr 3 3 26
k i e r u n e k = s k r ó t k i e r u n k u s t u d i ó w z tabeli K I E R U N K I r o d z a j = z ( grupa z e s p o l o n a np. s e m e s t r )
Rys. 2. Edycja danych - grupy studenckie Fig. 2. D ata editing - student groups 3 .1 .2 . D a n e b ieżą ce
Dane bieżące dotyczą konkretnego planu dla słuchaczy danego sem estru lub ro k u .’
Należą do nich: pula przewidzianych zajęć oraz lista postulatów i ograniczeń zgłaszana przez przyszłych użytkowników planu. Postulaty dotyczą terminów preferowanych oraz
Układanie planu zajęć za pomocą systemu PLAN 61
noiwł. S k ł a d z e s p o ł u :
» D y m e k G r z e u u r r F o j c i k M a r c i n . F»flas R o f * ł S r z y u a k A n d r z e j 6rzuuoci_Jei-zy._.
H a r ę ż l a k K a t a r z y n a In leia P i o t r
¡1 Inle la Z o f i a
| J u r a s z c z y k B o ż e n * 1 J a s i ń s k i H e n r y k
J o r d a n Z e n o n K u c e 1 nań' rtdar»
K o i o c z e k D a r i u s z K o n o p k a M a r e k
▼ K a n i o n k a - M i k u ł a H a l i n a
ad k rd
Rys. 3. Edycja danych - zespół prowadzących Fig. 3. D ata editing - teacher groups
terminów niewygodnych do prowadzenia zajęć. Możliwe jest także nałożenie wym agań co do term inu rozpoczęcia i zakończenia zajęć określonego typu oraz długości przerw pomiędzy zajęciami.
Podczas wprowadzania danych o zajęciach użytkownik m a możliwość przypisania za
jęciom określonej sali, w której muszą się one odbywać oraz ustalenia p riorytetu zajęć.
Priorytet decyduje o kolejności wstawiania zajęć do planu i przyjmuje wartości od 0 do 7.
Priorytet 0 zarezerwowany jest dla zajęć, dla których term in będzie przydzielony ręcznie.
Dane bieżące dotyczące różnych planów mogą być zapamiętywane i rozpoznawane n a pod
stawie wybranego kodu planu. Przykładowe wzorce dla wprowadzania danych bieżących przedstawione są na rys. 4 i 5.
3 .1 .3 . J e d n o stk i planu
Trzecią grupę danych stanowią gotowe jednostki planu ustalone i zapam iętane przez system jako wersja planu. Jednostki planu powstają w wyniku autom atycznej genera
cji lub w wyniku ręcznych modyfikacji i stanowią krotkę: < zajęcia, grupa słuchaczy, prowadzący, sala, term in > .
3.2. R ę c z n a korekcja planu
Moduł ręcznej korekcji planu umożliwia wprowadzenie do istniejących wersji planu dowolnych zm ian oraz wizualizację aktualnej postaci planu zajęć.
d y c j a daiiyilf - GGRfiniCZEHIft ¿ U plafiu’ zi3'
I£i.lffiBaciB.c_L,JX£21-*BJtDńczcn.LeJ.!,lK6jLŁWudi:«Jt^.tCscl-»rzi:ł'w«nic._.„.
prou. oper. arg . za J . 1 z a j . 2
ad ^ < 10 c
ad P Z w u
chj > 12 1
ch J > 12 c
p r o u = k o d p r o w a d z ą c e g o ; o p e r = o p e r a t o r o g r a n i c z e n i a :
< n i e p ó ź n i e j ni ż o g odzinie,
> n i e w c z e ś n i e j n i ż o g odzinie.
p p r z e r w a m i ę d z y z a j ę c i a m i . ar g = w a r t o ś ć o g r a n i c z e n i a lub
p r z e r w y z a j = r o d z a j zaj ę ć :
w - wykł a d . c - ć w i c z e n i a . 1 - l a b o r a t o r i u m . p - p r o j e k t .
[F3J - z m i a n o k o d u p l o n u CF51 - wyb ó r kodu p r o w a d z ą c e g o zc s ł o w n i k a
Rys. 4. Edycja danych - ograniczenia Fig. 4. D ata editing - constraints
Użytkownik może usuwać terminy zajęć oraz przydzielać zajęciom nowe term iny za
równo we wstępnej fazie układania planu zajęć, jak i po fazie autom atycznej generacji.
W m odule korzysta się z danych statycznych, danych o zajęciach zaplanowanych i nie zaplanowanych, informacji o terminach wolnych dla nauczycieli, grup słuchaczy i dla sal, natom iast nie uwzględnia się preferencji i ograniczeń.
Zajęcia mogą być planowane w jednym z trzech trybów: cotygodniowym, parzystym i nieparzystym . W stawiając nowe zajęcia do planu program sprawdza zajętość prowadzą
cego i grupy oraz czy są wolne odpowiednie dla wstawianych zajęć sale (pod względem rodzaju zajęć i liczności grupy). W przypadku, gdy są wolne sale, użytkownik m a możli
wość wyboru jednej z nich.
Na ekranie, plan zajęć przedstawiony jest w postaci grafiku podzielonego n a poszcze
gólne dni tygodnia i strefy czasu o długości jednostki lekcyjnej począwszy od godziny 8.00 do 20.00. Rysunek 6 przedstawia grafik planu zajęć, z którego korzysta się podczas ręcznej korekcji planu. Komórki grafiku są puste, jeśli brak jest zajęć zaplanowanych dla danej grupy albo wyświetlone są informacje o zaplanowanych zajęciach takie, jak: kod za
jęć, kod prowadzącego zajęcia oraz rodzaj zajęć. Wyświetlenie w komórce grafiku znaków oznacza, że grupa jest w danym terminie zajęta, odbywając zajęcia w innym trybie niż aktualnie wybrany. W przypadku, gdy na planie grupy zespolonej w komórce grafiku wyświetlane są znaki oznacza to, że w danym term inie zajęcia są już zaplanowane d la jednej z grup składowych.
Układanie planu zajęć za pomocą systemu PLAN 63
ÿ e j a ïa n y 2 i U £ e a i a p l a n i i
gru p a kod godz. tr y b p r o w . r o d z . p r . s a l a 1
EF3 3 - in f lz « UF 2 t pwf c 0 o s l r
z n l a n a k o d u p l a n u Inflz J01 Z t pjo c e s d _ J o
a k t u a l n e g o ; inflz J 02 2 t pjo c e s d _ J o
CESI - Inf Iz NHI E Z t pnh u e a u _ 2 2 2
w y b ó r w a r t o ś c i ze inflz F I Z 2 t Pf u e g r _ 3 0 0
s ł o w n i k a : inf 11 F IZ Z d Pf c 0
lEnterl - a k c e p t a c j a . inf 12 F IZ 2 d Pf c e
[Esc] - r e z y g n a c j a . inf 13 FI Z 2 d Pf c 0
inf 14 FIZ 2 d Pf c 0
inf 15 FI Z 2 d Pf c 0
inflz A LG 2 t pal u 9
inf 11 AL G 2 d pal c 0
inf 12 ALG 2 d pal c 0
inf 13 ALG 2 d pal c e
inf 14 AL G 2 d pal c 0
inf 15 AL G 2 d pal c 0
tr y b = t | [ s p l ( c o t y d z i e ń ) ✓ d t c o dua t y g o d n i e ) s a l a = k o d sali
g r u p a = k i e r u n e k *' seraestr » n u n e r _ g r u p y (dla lab. 1 z a j ę ć r o d z a j = u ( u y k ł a d ) / c ( ć u l c z e n l a ) / 1 ( l a b o r a t o r l u n ) o p r i o r y t e c i e 8)
Rys. 5 .-Edycja danych - repertuar zajęć Fig. 5. D ata editing - a set of lectures
3.3 . A u to m a ty c z n a generacja planu za jęć
C entralną częścią systemu PLAN jest moduł automatycznej generacji realizujący wstawianie do planu zajęć z puli zajęć nie zaplanowanych. Danymi wejściowymi m odułu są dane statyczne, dane bieżące oraz gotowe jednostki planu. W wyniku pracy m odułu otrzymujemy wygenerowaną wersję planu zajęć z rozmieszczonymi wszystkimi zajęciam i lub ewentualnie wskazanie zajęć bez przydzielonych terminów w przypadku nałożenia sprzecznych wymagań. Moduł umożliwia autom atyczną generację planu od podstaw lub uzpelnienie już istniejącej wersji planu powstałej w wyniku pracy korektora ręcznego.
4. Opis zastosowanego algorytm u oraz elem enty optym alizacji
4.1 . P r z y ję te za ło że n ia realizacyjn e
Jak wspomniano wcześniej, problem układania planu zajęć jest jednym z tych pro
blemów kombinatorycznych, dla których nie jest znany efektywny algorytm rozwiązania.
Algorytm nazywamy algorytmem o czasie wielomianowym, jeżeli rząd wielkości czasu potrzebnego na jego wykonanie jest ograniczony z góry przez funkcję wielomianową, k tó rej argum entem jest rozmiar danych. Rozwiązanie problemu układania rozkładu zajęć
‘v~ -- --v;,'.-v nr . T ^ T T ^ T ^
— 0 : 0 9 —
P o n i e d z . U t o r e k Ś r o d a C z w a r t e k P i ą t e k S o b o t a Itttlllltł «
II HI!
J 0 1 c pj o
J 0 2 c Pjo
FI Z w
pf
9 0 8 0 0 0 see ttSKSH «
ttstt
J0 1 c
PJ o
J0 2 c
Pjo
F I Z w pr
8 0 8 8 9 9 898
— 1 1 :00—
ttSttSN I tttM
on w
pa n
8 9 9 0 0 0 000
- 1 2 :©0—
tttttSN « ttttt
AM w
pa n
8 9 0 0 9 0 890
AM u
p an
AL G w
pal
0 9 0 0 0 9 800 1J • “ U
ALG w
pa i
8 0 0 0 9 9 800
FI Pom o c F2 Tr y b F3 G r u p a F4 O p i s FB Usu ń E n t e r U s t a w E s c K o n i e c
Rys. 6. Grafik planu zajęć Fig. 6. The tim etable sheet
poprzez przegląd całej przestrzeni rozwiązań prowadzi do wykładniczego czasu obliczeń.
Jednym ze sposobów rozwiązywania tak trudnych zadań jest osłabienie w arunku uzys
kania optymalnego rozwiązania i zadowolenie się rozwiązaniami suboptym alnym i, zbli
żonymi do rozwiązania optymalnego. Przyjęcie takich założeń redukuje czas obliczeń z wykładniczego na wielomianowy.
W opisywanym algorytmie założenie uzyskania optymalnego rozwiązania zostało osła
bione na rzecz optymalizacji lokalnej z możliwością zmiany param etrów funkcji oceny ja kości rozwiązania. W rezultacie, do rozwiązania rozważanego problemu zastosowano czę
ściowo sparam etryzowany algorytm heurystyczny. Autorem pierwszej wersji algorytm u jest D. Głowacki [4]. Ograniczenie przestrzeni wszystkich stanów rozwiązań następuje poprzez selekcję kierunków poszukiwań w tej przestrzeni. W przypadku układania planu zajęć sprowadza się to do określania kolejności, w jakiej zajęcia będą wstawiane do planu oraz kolejności wyszukiwania potencjalnych terminów.
4.2 . K r y te ria o c en y jak ości term in u
Podstaw ą funkcji oceny jakości term inu są ograniczenia ogólne dotyczące term inów zajęć grup słuchaczy i prowadzących oraz indywidualne preferencje i wym agania zgła
szane przez przyszłych użytkowników pismu. Dodatkowym elementem oceny są przyjęte założenia dotyczące jakości planu, takie jak:
U kładanie planu zajęć za pomocą systemu PLAN 65
• spójność i m aksym alna ciągłość zajęć grup słuchaczy i prowadzących,
• równomierne rozłożenie zajęć w tygodniu,
• równomierne wykorzystanie pomieszczeń dydaktycznych.
W opisywanym algorytmie przyjęto założenie, że każda z grup informacji w pływ ająca na jakość term inu generuje tabelę liczbową. Tabele m ają strukturę odpow iadającą rzeczy
wistemu terminarzowi z podziałem na dni tygodnia i strefy czasowe. Tabele generowane są dla każdych wstawianych zajęć i obejmują następujące grupy informacji:
• tab ela zajętości prowadzącego - bieżąca postać planu zajęć dla prowadzącego zaję
cia,
• tab ela zajętości grupy - bieżąca postać planu zajęć dla grupy,
• tabele preferencji i ograniczeń prowadzącego - wykaz terminów preferowanych i nie
wygodnych dla prowadzącego, określonych n a podstawie ankiety,
• tab ela preferencji grupy - wartości liczbowe przypisane term inom zależnie od pory dnia; preferowane godziny przedpołudniowe,
• tab ela ograniczeń szczegółowych - opis warunków sąsiedztwa, następstw a zajęć,
• tab ela wolnych sal - wykaz dostępnych sal dydaktycznych uwzględniający rodzaj i rozm iar sali.
Powyższe tabele łączone są w jedną tabelę wynikową, nazwaną tab elą wskaźników jakości stref czasowych T W J S C . Na podstawie wartości liczbowych zawartych w tej ta beli możemy każdej strefie czasowej przyporządkować określoną wartość, nazwaną wskaź
nikiem jakości strefy. Terminy zajęte m ają przypisaną wartość 0. Wyższe preferencje otrzym ują term iny zachowujące ciągłość zajęć, zwłaszcza term iny uzupełniające dotych
czasowe luki w planie oraz terminy zapewniające równomierne rozłożenie zajęć dla grup w poszczególnych dniach tygodnia. Dla zajęć planowanych co drugi tydzień, preferowane są term iny uzupełniające już zajęte terminy komplementarne (parzyste i nieparzyste).
Tabela wskaźników jakości stref jest podstawą do obliczenia wskaźnika jakości term inu tojt. W skaźnik ten równy jest sumie wskaźników jakości stref czasowych składających się na dany term in. Zajęciom zostaje przydzielony term in o największym wskaźniku jakości.
4.3 . P o s ta ć a lg o ry tm u
Wygenerowanie wersji planu zajęć sprowadza się do wstawiania do planu zajęć z listy zajęć nie zaplanowanych. Moduł realizujący to zadanie działa według następującego al
gorytmu.
A lg o r y tm 1. Autom atyczna generacja planu zajęć p r o c e d u r ę GENERACJA;
b e g in
w h ile pula zajęć nie jest pusta do b e g in
zajęcia := WYBIERZ-ZAJĘCIA;
if WYBIERZ-TERMIN(zajęcia) = sukces th e n
wstaw zajęcia do planu;
else
przenieś zajęcia do puli rezerwowej;
e n d e n d ;
Zajęcia z puli zajęć nie zaplanowanych wybierane są za pomocą następującej funkcji.
A lg o r y tm 2. W ybór zajęć do rozplanowania f u n c tio n WYBIERZ-ZAJĘCIA;
b e g in
utwórz listę zajęć nie zaplanowanych uporządkowaną według następujących kryteriów:
• priorytet zajęć { ustalany podczas wprowadzania danych bieżących }
• rodzaj zajęć { wykłady, ćwiczenia, laboratoria, projekty }
• liczność grupy;
WYBIERZ-ZAJĘCIA := pierwsze zajęcia z listy;
e n d ;
Dla wybranych zajęć dokonuje się próby znalezienia najodpowiedniejszego term inu.
D la każdych zajęć wykonywane są kolejno:
• próba wstawienia bezpośredniego w którymś z wolnych terminów,
• próba wstawienia z wywłaszczeniem zajęć już zaplanowanych,
• próba wstawienia bez uwzględnienia preferencji prowadzącego.
Każdy z kolejnych etapów wykonywany jest w przypadku niepowodzenia etapu po
przedniego. Zadanie przydzielania terminów dla poszczególnych zajęć realizuje n astęp u jący algorytm .
Układanie planu zajęć za pomocą systemu PLAN 67
A lg o r y tm 3. Przydzielanie terminów dla zajęć fu n c tio n WYBIERZ.TERMIN(zajęcia);
b e g in
WYBIERZ.TERMIN := sukces;
if WSTAW_BEZPOŚREDNIO(zajęcia) = porażka t h e n
if WSTAW_Z_WYWŁASZCZENIEM(zajęcia, 0) = porażka th e n
i f WSTAW_BEZ_PREF(zajęcia) = porażka t h e n
WYBIERZ.TERMIN := porażka end;
W ybór term inu dla zajęć w trybie wstawiania bezpośredniego realizuje funkcja WSTAW .BEZPOŚREDNIO, której param etrem są planowane zajęcia .
A lg o r y tm 4. W stawianie bezpośrednie zajęć do planu fu n c tio n WSTAW_BEZPOŚREDNIO(zajęcia);
b e g in
utwórz tabelę wskaźników jakości stref TWJSC\
wyznacz wartości wskaźników jakości terminów wj t jako sumy wskaźników jakości stref w js ą
wszystkie terminy, których w jt > 0 wpisz do listy uporządkowanej malejąco;
if lista term inów jest pusta th e n
WSTAWJEZPOŚREDNIO := porażka else
b e g in
wybierz z utworzonej listy term in o największym w j t ; przypisz term in planowanym zajęciom;
zaznacz zajęcia jako zaplanowane;
WSTAWJEZPOŚREDNIO := sukces e n d
end;
Próbę w stawiania zajęć z wywłaszczaniem zajęć już zaplanowanych realizuje funkcja WSTAW_Z_WYWŁASZCZENIEM, której param etram i są wstawiane zajęcia oraz licznik wywlasz-
A lg o r y tm 5. W stawianie z wywłaszczaniem zajęć już zaplanowanych f u n c tio n WSTAW_Z_WYWŁASZCZENIEM(zajęcia, licznik.wywłaszczeń);
b e g in
utwórz nową T W J S C , w której nie eliminuj terminów zajętych u prowadzącego i grupy;
wyznacz liczbę konfliktów zajęć wstawianych z zajęciami już
zaplanowanymi (ze względu na zajętość grupy lub prowadzącego);
utwórz nową listę terminów, odrzucając terminy, które powodują
konflikt wielokrotny (konflikt z więcej niż jednym prowadzącym lub grupą) i uporządkuj ją malejąco;
w h ile lista terminów nie jest pusta i nie było sukcesu do b e g in
pobierz kolejny term in z utworzonej listy;
ustal, z którym i zajęciami zaplanowanymi jest konflikt;
wywłaszcz zajęcia zaplanowane i przypisz uzyskany term in zajęciom wstawianym;
zapam iętaj historię wywłaszczeń;
licznik.wywłaszczeń := licznik.wywłaszczeń + 1;
if WSTAW_BEZPOŚREDNIO(zajęcia.wywłaszczone) = sukces th e n
zasygnalizuj sukces else
b e g in
if licznik.wywłaszczeń > głębokość.wywłaszczeń th e n
odtwórz, na podstawie historii wywłaszczeń, stan planu zajęć, jaki był przed wywłaszczeniem
else b e g in
if WSTAW_Z_VYWŁASZCZENIEM(zajęcia_wywłaszczone,licznik) = sukces t h e n
zasygnalizuj sukces else
odtwórz, na podstawie historii wywłaszczeń, stan planu zajęć, jaki był przed wywłaszczeniem;
e n d
Układanie planu zajęć za pomocą systemu PLAN 69
end end
i f nie było sukcesu th e n
WSTAW_Z_VYVŁASZCZENIEM := porażka else
b eg in
przypisz term in planowanym zajęciom;
zaznacz zajęcia jako zaplanowane;
WSTAW_Z_WYWŁASZCZENIEM := sukces;
end end;
Głębokość wywłaszczeń ogranicza poziom rekurencyjnych wywołań funkcji WSTAW_Z_WYWŁASZCZENIEM. Funkcja WSTAW_BEZ-PREF(zajęcia) próbuje przydzielić term in zajęciom nie uwzględniając preferencji prowadzącego. Funkcja ta różni się od funkcji WSTAW-BEZPOŚREDNIO (zajęci a) tylko sposobem tworzenia tabeli wskaźników jakości stref T W J S C , W śród tabel, z których powstaje T W J S C , nie m a tabeli preferencji prowa
dzącego.
W przypadku, kiedy niemożliwe jest znalezienie term inu dla zajęć lub gdy nie są speł
nione wszystkie wymagania dotyczące planu zajęć, użytkownik może wpływać n a wynik końcowy poprzez zmianę danych wejściowych i ponowną generację planu lub poprzez ręczne ustalenie terminów zajęć.
4 .4 . E le m e n ty o p ty m a liza cji
Optym alizacja postaci planu uzależniona jest od funkcji oceny jakości term inu wy
znaczonej n a podstawie tabeli wskaźników jakości stref T W J S C . Dodatkowo, końcowa postać planu może być sterowana kolejnością wyboru zajęć z puli zajęć nie zaplanowa
nych, np.:
• według priorytetów prowadzących,
• według priorytetów zajęć (wykłady, ćwiczenia, laboratoria),
• równomiernie zgodnie z powyższymi kryteriami dla poszczególnych grup.
Jak wspomniano wcześniej, algorytm zawiera punkty decyzyjne o charakterze heu
rystycznym. W tych punktach przeprowadzana jest selekcja różnych postaci rozwiązań, która odbywa się zgodnie z przyjętymi zasadami tworzenia planu zajęć:
• zasada konwersji tabeli zajętości do tabeli T W J S C ; preferowanie ciągłości zajęć,
• zasada łączenia tabel do tabeli wynikowej T W J S C ; wyważenie, w jakim stopniu poszczególne czynniki wpływają na harmonijny układ planu,
• zasada poszukiwań wolnych terminów w kolejnych cyklach wywłaszczeń.
Przyjęte zasady można korygować tak, aby lepiej były dostosowane do konkretnego problem u lub problemów związanych z uwarunkowaniami danej szkoły, uczelni czy wy
działu, co może pomóc w uzyskaniu optymalnego rozwiązania.
5. Uw agi końcowe i wnioski
P rzyjęty schemat rozwiązania jest jednym z wielu możliwych, jednak w ydaje się dość n aturalny w odniesieniu do czynności wykonywanych przy ręcznym układaniu planu.
Dokonanie pewnych uproszczeń kryteriów optymalizacji i zadowolenie się rozwiązaniami suboptym alnym i doprowadziło do uzyskania efektywnego obliczeniowo algorytm u. P ro jektując system P lan korzystano z wiedzy i doświadczenia zespołu układającego plan zajęć dla studentów studiów dziennych Wydziału Autom atyki, Elektroniki i Inform atyki, n a którym system był praktycznie wypróbowany w semestrze letnim roku akademickiego 1993/94. Plan zajęć stworzony przez moduł automatycznej generacji został zaakcepto
wany przez użytkowników.
L IT E R A T U R A
[1] Even S., Itai A., Shamir A.: On the complexity of timetable and multicommodity flow problems. SIAM J. on Computing, vol. 5, no.4, 1976, 691-703.
[2] Reingold E. M., Nievergelt J., Deo N.: Algorytmy kombinatoryczne. PW N , Warszawa 1985.
[3] Błażewicz J.: Problemy optymalizacji kombinatorycznej - zlożność obliczeniowa, algorytmy aproksymacyjne. PW N, Warszawa-Łódź 1986.
[4] Szmal P. i inni.: System doradczy dla realizacji planowania. Sprawozdanie z realizacji projektu. In sty tu t Informatyki Politechniki Śląskiej, Gliwice 1992.
[5] Colorni A., Dorigo M., Maniezzo V.: Genetic Algorithms: A New Approach to the Timetable Problem. NATO ASI Series, vol. F 82, Combinatorial O ptim ization 1992.
Układanie planu zajęć za pomocą systemu PLAN 71
Recenzent: Dr hab. in i. Stanisław Wołek
W płynęło do Redakcji 16 grudnia 1994 r.
A b str a c t
T he p ap er presents the algorithm implemented in the PLAN tim etabling system . It also includes system ’s structure and its principles of operation.
System P lan offers a computer assistance to the construction of a tim etab le for academic-level school. It is a kind of an advisory system, which cope w ith complex d a ta structures (see chapter 3). The data flow diagram in system Plan was shown on figure 1.
The d ata is stored in data bases implemented in Paradox system and involve:
• list of teachers,
• list of student groups,
• list of avaible classrooms,
• sam e external conditions,
• existing elem entary plan units.
The p atte rn s of input d ata editing were shown on figures 2,3,4,5. T he central p a rt of the system is th e autom atic plan generation module. Its role is to assign term s to lectures to be accomplished with respect to personal goals and didactic goals (see chapter 3.3).
The assigment of term s is carried out according to a heuristic algorithm . The description of the im plem ented algorithm ’s operation was discussed in charpter 4. System P lan has been tested in definning the tim etable for the Computer Science Insitute. T he tim etable which was created by this system acquired full acceptation plan users.