• Nie Znaleziono Wyników

UKŁADANIE PLANU ZAJĘĆ ZA POM OCĄ SYSTEMU PLAN

N/A
N/A
Protected

Academic year: 2022

Share "UKŁADANIE PLANU ZAJĘĆ ZA POM OCĄ SYSTEMU PLAN"

Copied!
17
0
0

Pełen tekst

(1)

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­

(2)

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.

(3)

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 ],

(4)

• 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.

(5)

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.

(6)

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

(7)

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ęć.

(8)

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.

(9)

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ęć

(10)

‘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:

(11)

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.

(12)

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 .

(13)

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-

(14)

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

(15)

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ęć,

(16)

• 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.

(17)

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.

Cytaty

Powiązane dokumenty

Plan zajęć dydaktycznych w Szkole

Na pracy w dyskretny sposób trzeba umieścić dane autora pracy (imię i nazwisko oraz szkołę, miejscowość).. Praca ma być zapisana w

Celem publikacji jest przedstawienie działań popra- wiających konkurencyjność w łańcuchu dostaw żywno- ści podejmowanych przez grupy producentów surowców żywnościowych,

Analiza wyników wyborów samorządowych władz wykonawczych w 2010 roku pokazuje wyraźnie, że wy- borcy w niewielkim stopniu chcieli dokonywać zmian na stanowiskach wójtów

niu 1, na samym ko'cu badania nast&#34;powa pomiar g ów- nej zmiennej zale$nej – trafno#ci rozpoznawania. W przypadku rozpoznawania szczegó ów ze zdj&#34;cia zadane pytania by y

82 W oryginale podana fraza napisana większymi literami oraz podkreślona podwójną kreską. 83 W oryginale podana fraza napisana większymi literami oraz podkreślona

Dawniejsze oraz prowadzone po II wojnie badania archeologiczne odsłoniły wokół rotundy także mury gotyckie: odcinek muru obronnego oraz fragmenty zabudowy zamkowej.. W

Często też Prawo Boże podkre- śla ten atrybut woli i serca człowieczego, wykazując jego wagę i źródło: „Duch mądrości jest dobrotliwy” (Mdr 1, 6), „W mądrości jest