home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 August
/
Chip_2004-08_cd1.bin
/
program
/
ctenari
/
Jaros
/
readme.txt
< prev
next >
Wrap
Text File
|
2004-06-20
|
10KB
|
248 lines
+----------------------------------------------------+
| TV∙RCE ROZVRH┘ 2.2 (c) PAVEL JAROè 2003-04 |
+----------------------------------------------------+
| Autor: PAVEL JAROè / FUNKYSHiT |
| Web: http://funkyshit.webpark.cz/ |
| E-mail: jaros.pavel@centrum.cz |
+----------------------------------------------------+
+----------------------------------------------------+
| OBSAH |
+----------------------------------------------------+
I. Nßroky na HW a SW
II. Instalace
III. Co je Tv∙rce rozvrh∙
IV. Ovlßdßnφ programu
1) Zadßnφ vstupnφch dat
2) Ovlßdßnφ genetickΘho algoritmu
3) Ulo₧enφ v²stupnφch dat
4) Popis parametr∙ GA
V. Odpov∞dnost za vady
+----------------------------------------------------+
| I. N┴ROKY NA HW A SW |
+----------------------------------------------------+
SystΘm s WIN95 a vyÜÜφ.
+----------------------------------------------------+
| II. INSTALACE |
+----------------------------------------------------+
Program se neinstaluje, ani se nezapisuje do systΘ-
movΘho registru. StaΦφ jej jednoduÜe rozbalit a
zaΦφt pou₧φvat.
Odinstalace spoΦφvß v pouhΘm smazßnφ programu
z disku.
+----------------------------------------------------+
| III. CO JE TV┘RCE ROZVRH┘ |
+----------------------------------------------------+
Program Tv∙rce rozvrh∙ umo₧≥uje pln∞ automatickou
tvorbu Ükolnφch rozvrh∙ s vyu₧itφm techniky gene-
tick²ch algoritm∙.
Program sestavuje Ükolnφ rozvrhy podle zadan²ch
omezujφcφch podmφnek, kter²mi jsou:
a) Silnß omezenφ (povinnß)
-----------------------
- pouze jedinΘ: ₧ßdn² uΦitel nesmφ uΦit
v danΘm Φase vφce ne₧ jeden p°edm∞t.
Je nutnΘ, aby v p°φpustnΘm °eÜenφ rozvrhovacφ ·lohy
nebyl ₧ßdn² t∞₧k² konflikt, tzn. aby vygenerovanΘ
rozvrhy spl≥ovaly silnß omezenφ.
b) Slabß omezenφ (volitelnß)
-------------------------
- maximßlnφ p°φpustnß mezera v rozvrhu,
- maximßlnφ p°φpustn² poΦet hodin denn∞,
- minimßlnφ p°φpustn² poΦet hodin denn∞.
Napln∞nφ vÜech slab²ch omezenφ nenφ pro p°φpustnΘ
°eÜenφ nezbytn∞ nutnΘ, p°esto p°i tvorb∞ rozvrh∙
hrajφ d∙le₧itou roli. Prßv∞ slabß omezenφ urΦujφ
do jakΘ mφry budou vygenerovanΘ rozvrhy pou₧itelnΘ
v praxi. V Φφm v∞tÜφ mφ°e jsou omezujφcφ podmφnky
(silnΘ i slabΘ) spln∞ny, tφm je °eÜenφ kvalitn∞jÜφ.
Program Tv∙rce rozvrh∙ pou₧φvß pro nalezenφ opti-
mßlnφho °eÜenφ techniku genetick²ch algoritm∙ (GA),
kterß je zalo₧ena na p°irozenΘm v²b∞ru, repro-
dukΦnφm procesu a mutaci genetickΘ informace.
GA pracuje s populacφ jedinc∙, kterß se vyvφjφ
v Φase. Ka₧d² jedinec v populaci odpovφdß jednomu
z mo₧n²ch °eÜenφ ·lohy (rozvrh∙). V pr∙b∞hu gene-
racφ (Φasu) dochßzφ k nßr∙stu kvality populace
jedinc∙. Toho je dosa₧eno dosa₧eno aplikovßnφm
selekce, k°φ₧enφ a mutace. Selekce provßdφ v²b∞r
jedinc∙, kte°φ se podφlφ na reprodukci. ╚φm je je-
dinec kvalitn∞jÜφ, tφm v∞tÜφ mß Üanci, ₧e bude vy-
brßn. K°φ₧enφ zajiÜ¥uje v²m∞nu genetickΘho materiß-
lu mezi dv∞ma jedinci - rodiΦi. Potomek zφskß od
ka₧dΘho rodiΦe pouze Φßst genetickΘ inforamce. A
koneΦn∞ mutace udr₧uje variabilitu v populaci, aby
proces hledßnφ °eÜenφ neuvφzl v lokßlnφm optimu.
Vφce inforamcφ o genetick²ch algoritmech m∙₧ete najφt
nap°. na http://alife.fei.tuke.sk/projekty/gen_alg/.
Program Tv∙rce rozvrh∙ navφc pou₧φvß tvz. opravnou
mutaci, kterß v²znamn∞ napomßhß p°i odstra≥ovßnφ
konflikt∙ v rozvrhu.
V²stupem programu jsou jednak rozvrhy hodin pro
jednotlivΘ t°φdy, jednak rozvrhy uΦitel∙.
+----------------------------------------------------+
| IV. OVL┴D┴N═ PROGRAMU |
+----------------------------------------------------+
1) Zadßnφ vstupnφch dat
--------------------
Prvnφm krokem je zadßnφ vstupnφch dat. To je mo₧nΘ
provΘst bu∩ s pomocφ pr∙vodce nebo ·pravou ji₧
existujφcφch dat.
Pr∙vodce pro zadßvßnφ dat m∙₧ete spustit bu∩ z na-
bφdky Soubor p°φkazem Zadat data... nebo tlaΦφtkem
s ikonou rozvrhu na panelu nßstroj∙ (CTRL+Z).
Nejprve budete vyzvßni k zadßnφ jmΘna souboru se
vstupnφmi daty (takΘ m∙₧ete p°epsat ji₧ existujφcφ
soubor). DalÜφm krokem je napln∞nφ seznamu vyuΦujφ-
cφch. Na nßsledujφcφm formulß°i zadßte p°edm∞ty
pro jednotlivΘ t°φdy. U ka₧dΘho p°edm∞tu je t°eba
vyplnit jeho nßzev, poΦet hodin a zvolit vyuΦujφcφ-
ho ze seznamu vyuΦujφcφch. Na tomto formulß°i je
takΘ mo₧nΘ zadat p°edm∞ty s pevn∞ stanov²m dnem
a hodinou v²uky. Na prvnφ zßlo₧ce poslednφho for-
mulß°e pr∙vodce nastavφte chovßnφ genetickΘho algo-
ritmu (poΦet generacφ, poΦet jedinc∙ v generaci,
pravd∞podobnosti k°φ₧enφ a mutace atd. - viz
Popis parametr∙ GA) a na druhΘ zßlo₧ce zadßte
data t²kajφcφ se rozvrhu (poΦet hodin denn∞, poΦet
dn∙ v t²dnu, omezujφcφ podmφnky).
DalÜφ mo₧nostφ je ·prava ji₧ existujφcφch dat.
Ke vstupnφm dat∙m lze p°istupovat p°es nabφdku Data.
Formulß° s nastavenφm genetickΘho algoritmu zobra-
zφte p°φkazem Nastavenφ GA... z nabφdky GA
(klßvesovΘ zkratky F5 - F8).
Vstupnφ data je mo₧nΘ uklßdat (CTRL+U) a naΦφtat
(CTRL+N). K tomu slou₧φ bu∩ p°φkazy v nabφdce soubor
nebo tlaΦφtka na panelu nßstroj∙.
2) Ovlßdßnφ genetickΘho algoritmu
------------------------------
Pokud mß program k dispozici vÜechna pot°ebnß
vstupnφ data je mo₧nΘ zahßjit genetick² algoritmus.
K ovlßdßnφ genetickΘho algoritmu je mo₧nΘ pou₧φt
bu∩ p°φkazy v nabφdce GA nebo tlaΦφtka Start/Pauza/
Stop na panelu nßstroj∙ (klßvesovΘ zkratky F2 - F4).
Genetick² algoritmus zahßjφte p°φkazem Start, jeho
b∞h m∙₧ete kdykoliv p°eruÜit p°φkazem Pauza a nechat
si vypsat dosud nejlepÜφ nalezenΘ °eÜenφ. ╚innost
algoritmu lze potΘ znovu obnovit p°φkazem Start.
Algoritmus ukonΦφte p°φkazem Stop.
Pokud je nalezeno °eÜenφ, kterΘ spl≥uje vÜechny
omezujφcφ podmφnky, je genetick² algoritmus ukonΦen
automaticky.
3) Ulo₧enφ v²stupnφch dat
----------------------
NalezenΘ °eÜenφ je mo₧nΘ ulo₧it (CTRL+S) do texto-
vΘho souboru a odtud znovu naΦφst (CTRl+R).
V²stupnφ data se uklßdajφ jako text odd∞len² st°ed-
nφky, co₧ je formßt vhodn² pro dalÜφ zpracovßnφ v
tabulkovΘm procesoru (nap°. MS Excel).
4) Popis parametr∙ GA
------------------
Pro efektivnφ Φinnost GA je klφΦovΘ jeho sprßvnΘ
nastavenφ. Uvßdφm struΦn² popis jednotliv²ch para-
metr∙ GA, kter² by vßm to m∞l pokud mo₧no usnadnit.
a) Provßd∞t ·pln² GA - ·pln² genetick² algoritmus
odpovφda zßkladnφmu tvaru GA (selekce-k°φ₧enφ
-mutace) a mß smysl jej nasadit pouze na slo₧i-
t∞jÜφ ·lohy - p°i sestavovßnφ rozvrh∙ pro v∞tÜφ
poΦet t°φd t°φd). V opaΦnΘm p°φpad∞ je ·loha °e-
Üena pouze s vyu₧itφm opravnΘ mutace, co₧ je
jednak rychlejÜφ a p°edevÜφm v °ad∞ p°φpad∙ na-
prosto postaΦujφcφ metoda.
b) P°eruÜit p°i stagnaci trvajφcφ po XX generacφ
- v p°φpad∞, ₧e nebylo po urΦit² poΦet generacφ
nalezeno ₧ßdnΘ kvalitn∞jÜφ °eÜenφ, dojde k auto-
matickΘmu p°eruÜenφ GA. V p°φpad∞, ₧e proces
hledßnφ °eÜenφ nikam nevede, je ukonΦeno a zahßjφ
se novΘ hledßnφ (viz parametr PoΦet opakovßnφ).
Pokud je parametr nastaven na 0, k p°eruÜenφ ne-
dojde a b∞h GA je ukonΦen po nastavenΘm poΦtu
generacφ. Standardn∞ je nastaveno 30 generacφ.
c) PoΦet opakovßnφ GA - urΦuje poΦet nezßvisl²ch
b∞hu GA. ╪eÜenφm ulohy pak bude nejkvalitn∞jÜφ
nalezen² rozvrh ze vÜech b∞h∙.
d) PoΦet generacφ - urΦuje poΦet iteracφ GA.
V p°φpad∞, ₧e mßte nasataveno p°eruÜenφ p°i
stagnaci, m∙₧e dojφt k ukonΦenφ b∞hu GA p°ed
dosa₧enφm zvolenΘho poΦtu generacφ. TakΘ v p°φ-
pad∞, ₧e je nalezeno °eÜenφ bez konflikt∙ dojde
k p°eruÜenφ GA. DoporuΦuji nastavit vyÜÜφ poΦet
generacφ (300 a vφce) a souΦasn∞ zapnout p°eru-
Üenφ p°i stagnaci.
e) PoΦet jedinc∙ - urΦuje poΦet jedinc∙ v populaci.
╚φm vyÜÜφ poΦet jedinc∙ nastavφte, tφm ÜφrÜφ
prostor (mo₧n²ch °eÜenφ) je prohledßvßn a tφm
vyÜÜφ je pravd∞pobnost nalezenφ optimßlnφho
°eÜenφ. Um∞rn∞ tomu se vÜak sni₧uje i rychlost
programu. Dobr²ch v²sledk∙ lze dosßhnout zhruba
ji₧ od 100 jedinc∙.
f) PoΦet elitnφch jedinc∙ - urΦuje poΦet nejkvalit-
n∞jÜφch jedinc∙, kte°φ automaticky postupujφ do
dalÜφ generace (beze zm∞n), ani₧ by proÜli se-
lekcφ, k°φ₧enφm a mutacφ.
Standardn∞: 1 - 5 jedinc∙.
g) Pravd∞podobnost k°φ₧enφ - urΦuje s jakou pravd∞-
pobnostφ mß dochßzet ke k°φ₧enφ.
Stanadardn∞: 50 - 75 %.
h) Hornφ a dolnφ pravd∞podobnost "opravnΘ" mutace -
v p°φpad∞ ·plnΘho GA je opravnß mutace aplikovßna
dynamicky: z poΦßtku s vyÜÜφ pravd∞pobnostφ, poz-
d∞ji s ni₧Üφ. To lze interpretovat tak, ₧e v poΦß-
teΦnφch generacφch je preferovßna v∞tÜφ Üφ°e pro-
hledßvanΘho prostoru (mo₧n²ch °eÜenφ) a v pozd∞j-
Üφch generacφch jsou spφÜe prohledßvßna blφzkß
okolφ nejkvalitn∞jÜφch °eÜenφ.
Stanadardn∞: 100 % a 25 %.
i) Pravd∞podobnost "klasickΘ" mutace - urΦuje s ja-
kou pravd∞pobnostφ mß dochßzet ke klasickΘ mutaci.
Stanadardn∞: 1 - 5 %.
+----------------------------------------------------+
| V. ODPOV╠DNOST ZA VADY |
+----------------------------------------------------+
Autor nenφ zodpov∞dn² za ztrßtu nebo zniΦenφ dat,
uÜl² zisk nebo jak²koliv jin² druh ztrßty spojen²
s u₧φvßnφm tohoto programu.
+----------------------------------------------------+
| Pavel JaroÜ, 22. 6. 2004 |
+----------------------------------------------------+