Vytautas Perlibakas. Mokyklos pamokų tvarkaraščio optimizavimo uždavinys. Kaunas, 2000.
TURINYS
1. Užduotis *
2. Užduoties analizė *
2.1 Apribojimai *
2.2 Duomenų struktūra *
3. Tvarkaraščio perstatymo ir įvertinimo
algoritmas *
4. Tvarkaraščio tikrinimas ir
klaidų taisymas *
5. Programos įdiegimas *
6. Vartotojo vadovas *
7.1 Pradinių duomenų įvedimas
*
7.2 Rezultatų išsaugojimas
*
7. Literatūra *
Priedai *
P1. Demonstracinio tvarkaraščio taisymas ir optimizavimas *
Optimizuoti mokyklos vienos savaitės tvarkaraštį minimizuojant mokytojo langų skaičių per dieną. Patikrinti pradinį tvarkaraštį, automatiškai ištaisyti klaidas nurodant jų buvimo vietą.
Mokyklos tvarkaraščio sudarymas - tai gerai žinomas bendresnės tvarkaraščio problemos pavyzdys. Optimizuojant mokyklos tvarkaraštį siekiama sumažinti mokytojo laukimo valandų (langų) skaičių, įvertinant tvarkaraščiui nurodomus apribojimus.
Sudarant ir
optimizuojant mokyklos tvarkaraštį reikia atsižvelgti į tam
tikrus apribojimus, t.y. pamokos tvarkaraštyje išdėstomos
pagal tam tikras taisykles:
1.
Mokiniai negali turėti langų
2.
Vienu metu mokytojas gali vesti tik vieną pamoką
3. Vienu metu mokinys gali
dalyvauti tik vienoje pamokoje
4. Kai kurios pamokos gali būti
sudvejintos (pvz.: dvi lietuvių kalbos pamokos iš eilės)
5.
Klasės gali būti skaidomos į dalis (rusų/anglų/vokiečių
kalbos)
6.
Pamokų skaičius per dieną yra ribotas
Optimizavimas
pradedamas nuo jau sudaryto mokyklos tvarkaraščio.
Mokomasi 5
dienas per savaitę (pirmadienis, antradienis, trečiadienis,
ketvirtadienis, penktadienis). Kiekvieną dieną gali būti ne
daugiau kaip 7 pamokos.
Mokyklos
savaitės tvarkaraštis saugomas masyve Mokytojai[M][3+5*7], M -
mokytojų skaičius.
Čia
Mokytojai[i] - informacija apie i-ąjį mokytoją (i=1..M) :
Mokytojai[i][1]
- mokytojo pavardė
Mokytojai[i][2]
- mokytojo dėstomo dalyko pavadinimas
Mokytojai[i][3] - mokytojo
kabineto koduotas simbolis:
"0" - jeigu mokytojo dėstomam
dalykui nereikalingas specialus kabinetas.
"R" - šio dalyko pamokos gali
eiti viena paskui kitą. Pvz.: klasė gali turėti 2 lietuvių
kalbos, darbų ar kūno kultūros pamokas iš eilės.
"D" - pamokos per kurias klasė
skaidoma į dvi dalis, t.y. klasė turi dvi pamokas tuo pat metu.
Pvz.: kūno kultūra. Taip pažymėtos turi būti abi pamokos.
"B" - galimos viena paskui kitą
einančios pamokos, paskirstytos keliems mokytojams (atitinka
"D" + "R"). Pvz.: darbų pamoka gali vykti
pas skirtingus mokytojus ir po 2 pamokas iš eilės. Abu dalykai
turi būti pažymėti "B" raide.
Mokytojai
[i][j], j=4..38 - i-ojo mokytojo pamokų tvarkaraštis savaitei,
kuriame pažymėta savaites diena, pamokos numeris ir klasė,
kuriai ši pamoka vedama.
Savaitės
dienų žymėjimas: P-pirmadienis, A-antradienis, T-trečiadienis,
K-ketvirtadienis, N-penktadienis.
Kiekvieną
dieną gali būti ne daugiau kaip 7 pamokos (1,2,3,4,5,6,7),
kurios priklausomai nuo savaitės dienos žymimos: P1, P2, P3, P4,
P5, P6, P7, A1, ..., A7, T1, ..., T7, K1, ..., K7, N1, ..., N7.
Likusi
žymėjimo dalis laikoma klasės pavadinimu.
Mokytojo
langai žymimi simboliu "X".
Jei
mokytojas pasirinktą savaitės dieną neturi pirmų ar paskutinių
pamokų, tokios pamokos langais nelaikomos ir žymimos simboliu
"Q".
Pavyzdžiui,
žymėjimas "P19c" reiškia:
"P" -
pirmadienis
"1" - pirma pamoka, "P1"
- pirmadienį pirma pamoka
"9c" -
pamoka vedama 9c klasei
3. Tvarkaraščio perstatymo ir įvertinimo algoritmas
1. Nuskaityti
duomenis į masyvą Mokytojai[M][38] ir perkopijuoti juos į
masyvą Mokytojai0
2. Suskaičiuoti
mokytojų langų skaičių eval0 pradiniame tvarkaraštyje
3. Nustatyti
pradinį iteracijos numerį it = 0
4. Nustatyti
esamą iteraciją it = it + 1, it < K
5. Jei it =
K, nustoti skaičiuoti ir spausdinti esamą tvarkaraštį
6. Nustatyti
pradinį mokytojų skaitliuką kel = 0
7. Jeigu kel
>M-1, eiti į (4) punktą
8.
Sugeneruoti atsitiktinį skaičių x iš intervalo [0,1]
9. Jei x
< pt.x[0], eiti į (13) punktą
10. Rasti
mokytojo langą
11. Rasti
patogią pamoką
12.
Patikrinti ar toks sukeitimas galimas ir jei taip, tai eiti į (14)
punktą
13.
Priskirti kel = kel + 1 ir eiti į (7) punktą
14. Sukeisti
langą ir patogią pamoką vietomis
15. Suskaičiuoti
mokytojų langus eval
16. Palyginti eval ir eval0
17. Jei eval
< eval0, sukeisti esamą tvarkaraštį su pradiniu ir eiti į
(7) punktą
4. Tvarkaraščio tikrinimas ir klaidų taisymas
Tikrinimas
atliekamas atsižvelgiant į tvarkaraščiui keliamus
apribojimus, nurodomus naudojant duomenų struktūros aprašyme
pateiktus žymėjimus. Apie surastas bei ištaisytas klaidas
pranešama vartotojui, nurodant klasę ir, jei įmanoma,
koordinates pamokos, kurią tikrinant surasta klaida.
Tikrinamos bei taisomos tokios
klaidos:
1.
Klasė turi iš eilės 2 ar daugiau pamokų.
2.
Klasė turi 2 ar daugiau pamokų tuo pačiu metu.
3.
Klasė turi langą, t.y pažeistas pamokų nuoseklumas.
Pastaba:
punktai 1-2 klaidomis nelaikomi, jei toks išsidėstymas buvo
leidžiamas nurodant ribojimus naudojant duomenų struktūros
aprašyme pateiktus žymėjimus.
Pateiksime
klaidų taisymo algoritmų aprašymus.
1.
Klasė turi iš eilės 2 ar daugiau pamokų.
1.1 Tikrinama kiekvienam mokytojui, ar nėra
kelių pamokų iš eilės tai pačiai klasei.
1.2 Aptikus 2 pamokas iš eilės bandoma
sukeisti vieną iš tų pamokų su:
1.2.1 To
mokytojo langu X arba patogia pamoka Q.
Atsižvelgiama į tai, ar perkėlus
neatsiras naujų klaidų.
1.2.2 Kitos klasės pamoka.
Atsižvelgiama į tai, ar perkėlus
neatsiras klaidų abiem klasėms.
1.3 Išvedamas pranešimas apie klaidą
bei taisymo rezultatą.
2.
Klasė turi 2 ar daugiau pamokų tuo pačiu metu.
2.1 Tikrinama kiekvienai savaitės
tvarkaraščio pamokai, ar nėra klasei kelių pamokų tuo pačiu
metu.
2.2 Aptikus kelias pamokas tuo pačiu metu
bandoma sukeisti vieną iš tų pamokų su:
2.2.1 To pačio mokytojo langu X
arba patogia pamoka Q.
Atsižvelgiama į tai, ar perkėlus
neatsiras naujų klaidų.
2.2.2 Kitos klasės pamoka.
Atsižvelgiama į tai, ar perkėlus
neatsiras klaidų abiem klasėms.
2.3 Išvedamas pranešimas apie
klaidą bei taisymo rezultatą.
3.
Klasė turi langą, t.y pažeistas pamokų nuoseklumas.
Panaudotos papildomos duomenų struktūros:
masyvas KlPam[], kuriame saugomi indeksai stulpelių, iš kurių
patogu nukelti nagrinėjamos klasės pamoką, norint užpildyti
klasės langą; bei kl[], kuriame surašytos visos tvarkaraščio
klasės. Algoritmas atrodo taip :
3.1 Kiekvienai
klasei iš kl[] masyvo tikrinama, ar yra langų.
3.2 Aptikus langą, į masyvą KlPam[]
surašomi perkėlimui patogių stulpelių indeksai.
3.3 Kiekvienam tų indeksų bandoma
atlikti pamokų keitimą, atsižvelgiant ar perkėlus neatsiras
naujų klaidų.
3.3.1 Bandoma perkelti pamokas į laisvas
vietas (Q arba X).
3.3.2 Jei nepavyksta, keliama į kitos
klasės pamokos vietą, atlikus atitinkamus tikrinimus.
3.4 Sėkmingo taisymo atveju ieškoma kito
einamos klasės lango. Radus langą, pereinama į 3.2 punktą,
priešingu atveju pereinama į 3.1 punktą. Apie taisymo rezultatą
pranešama vartotojui.
3.5 Patikrinus kiekvieną klasę,
tikrinimas bei taisymas baigiamas.
Tvarkaraščio
optimizavimo programinė įranga yra paketo GMJ1 (Global
Minimizer for Java) dalis. Programa gali būti paleidžiama kaip
Java programa arba kaip Java apletas. Norint vykdyti Java programą,
reikalinga "Java 2 Runtime Environment" ar kita
aplinka, leidžianti vykdyti Java programas ir turinti Java
virtualią mašiną ir Java API klases. Norint vykdyti Java apletus, reikalinga apletų peržiūrėjimo programa (pvz.,
"AppletViewer") arba Java apletus palaikanti naršyklė
(pvz., "Microsoft Internet Explorer 4.x" arba "Netscape
Navigator 4.x"). Norint kad apletai naudotų ne naršyklės
Java aplinką, o "Java 2 Runtime Environment", reikia įdiegti
"Java Plug-in".
Programa įdiegiama
išarchyvuojant failą tvarka.zip į norimą katalogą. Paleidžiamieji
failai yra "gmj.bat" ir "gmj.htm". Norint įdiegti
programą serveryje, taip pat reikia sukonfigūruoti cgi skriptus.
Detalus įdiegimo ir konfigūravimo aprašymas bei pradinių
duomenų failų pavyzdžiai pateikiami archyve kartu su
programine įranga.
Programa paleidžiama
vykdant failą "gmj.bat" arba "gmj.htm".
Pasirodžius GMJ programos langui atlikite tokius veiksmus:
1. Pasirinkite optimizavimo metodą ir
nurodykite jo parametrus, pvz., "Method->Select method
and properties:Mig1".
2. Pasirinkite vykdymui užduotį "Task->Select
task and properties:Tvarka". Atsidariusiame tvarkaraščio
įvedimo lange "SheduleLoader" įveskite norimą
optimizuoti tvarkaraštį ir paspauskite "OK". GMJ
lange esančiuose laukeliuose galima nurodyti iteracijų skaičių
K bei tikimybės minimalią, maksimalią ir pradinę reikšmę.
3.
Optimizavimas pradedamas paspaudus "Operation->Run".
Optimizavimą galima bet kada sustabdyti, paspaudus mygtuką
"Stop" arba padaryti pauzę skaičiavimuose paspaudus
mygtuką "Pause".
Skaičiavimams
pasibaigus pateikiami tokie rezultatai: iteracijų, per kurias
metodas sukonvergavo į minimumą, skaičius, gauta minimali
optimizuojamos funkcijos F(x) reikšmė ir gautos atitinkamų
taisyklių parinkimo optimizavimo metu proporcijos.
Optimizuotas
tvarkaraštis peržiūrimas pasirinkus "Run analysis:
TvarkaAnalyser".
Pradinių duomenų
įvedimui naudojamas langas "SheduleLoader",
atsirandantis pasirinkus "Select task and properties: Tvarka".
Kadangi programa gali būti paleidžiama kaip Java programa (angl.
application) arba kaip Java apletas (angl. applet), naudojami
skirtingi pradinių duomenų įvedimo būdai dėl nepasirašytiems
apletams taikomų saugumo apribojimų.
Leidžiant
programą kaip application, paprasčiausia pradinį tvarkaraštį
įvesti pasirinkus "Open file" ir nurodžius tekstinį
failą, kuriame yra kitais tekstiniais
redaktoriais suvestas tvarkaraštis.
Leidžiant
programą iš naršyklės kaip applet, paprasčiausia naudoti
"karštu" klavišų kombinacijas, skirtas duomenų
apsikeitimui per apsikeitimo buferį:
1. Microsoft Windows
sistemoje: "Ctrl+C" ir "Ctrl+V" arba "Ctrl+Insert"
ir "Shift+Insert"
2. UNIX sistemoje: "Ctrl+C"
ir "Shift+Insert"
3. Kitose sistemose: minėtų klavišų atitikmenys
toje sistemoje
Kitas būdas
- nusiųsti tvarkaraštį į serverį naudojant mygtuką "Upload
shedule to server", ir nusiuntus užkrauti jį į redagavimo
laukelį paspaudus mygtuką "Load uploaded shedule from
server".
Realizuota ir daugiau pradinio tvarkaraščio užkrovimo būdų:
1. Mygtukas "Load shedule from URL".
Paspaudus
mygtuką "Load shedule from URL", užkraunamas tvarkaraščio
failas, kurio adresas įvestas redagavimo laukelyje. Pvz.: http://www.soften.ktu.lt/~vartotojas/tvarkarastis/mokytojai.txt
Veikimas: (+)application,
(+-)applet
Jei
leidžiam kaip applet, galima užkrauti failus tik iš to
serverio, kuriame yra apletas, o iš kitų serverių neužkrauna
dėl saugumo apribojimų apletų komunikavimui.
2. Mygtukai "Paste shedule from
clipboard" ir "Copy shedule to clipboard".
Paspaudus
mygtuką "Paste shedule from clipboard" į redagavimo
laukelį įkeliama informacija (tvarkaraštis), esanti sistemos
apsikeitimo buferyje. Į buferį tą informaciją turėtų
patalpinti kita programa, kurioje buvo suvedamas tvarkaraštis (pvz.:
Word'e, pažymėjus tekstą ir paspaudus Ctrl+C arba meniu
komanda Edit->Copy).
Paspaudus
mygtuką "Copy shedule to clipboard" redagavimo
laukelyje esanti informacija patalpinama į sistemos apsikeitimo
buferį. Tada kitoje programoje, pvz. Word'e galima įsikelti
patalpintą informaciją paspaudus Ctrl+V arba meniu komanda Edit->Paste.
Veikimas: (+)application,
(+-)applet
Applet
neveikia, nes untrusted apletas negali prieiti prie sistemos
buferio dėl saugumo apribojimų. Todėl norint apsikeisti per
buferi reikės pažymėti tekstą ir naudoti klavišų
kombinacijas "Ctrl+C", "Ctrl+V" ar jų
atitikmenis informacijos įkėlimui į buferį ir paėmimui iš
jo.
3. Klavišų
kombinacijos Ctrl+V, Ctrl+C ar jų atitikmenys.
Kokiu
nors būdu pažymime tekstą programoje, kurioje yra įvestas
tvarkaraštis, ir patalpiname jį į sistemos apsikeitimo buferį
(clipboard). Pvz. Word'e, Notepad'e galim žymėti klavišo Shift
ir rodyklių pagalba, o į buferį patalpinti paspaudus klavišus
Ctrl+C. Aktyvizuojame tvarkaraščio įvedimo lange esantį
tvarkaraščio įvedimo laukelį ir spaudžiame Ctrl+V, kad
patalpinti į laukelį informaciją, esančią apsikeitimo
buferyje. Skirtingose sistemose klavišai gali būti ir kitokie (nebūtinai
Ctrl+C ir Ctrl+V). Microsoft Windows sistemoje į buferį
tekstiniame redaktoriuje reikia kopijuoti su "Ctrl+C",
o į "SheduleLoader" iš buferio įkelti su "Ctrl+V"
(arba "Ctrl+Insert" ir "Shift+Insert"). UNIX
sistemoje į buferį kopijuoti grafiniame redaktoriuje reikia su
"Ctrl+C", o į "SheduleLoader" iš buferio įkelti su
"Shift+Insert". Kitose sistemose reikia naudoti minėtų
klavišų atitikmenis toje sistemoje.
Veikimas: (+)application,
(+)applet
4. Tvarkaraščio
įvedimas.
Jei
tvarkaraščio kompiuteryje dar neturite, galite jį suvesti
klaviatūros pagalba tvarkaraščio įvedimo lange esančiame
tvarkaraščio įvedimo laukelyje.
Veikimas: (+)application,
(+)applet
5. Mygtukai "Upload shedule to
server", "Load uploaded shedule from server".
Mygtuko
"Upload shedule to server" paspaudimas atidaro langą
tvarkaraščio failo perdavimui iš vietinio disko į serverį,
kad iš serverio jį galėtų pasiimti optimizavimo programa.
Tiesiai iš vietinio disko optimizavimo programa, leidžiama kaip
applet, skaityti informacijos negali dėl saugumo apribojimų.
Naudojami cgi skriptai failo nusiuntimui į serverį.
Nusiųstas tvarkaraštis įrašomas serveryje į failą, iš
kurio tvarkaraštis paimamas ir pavaizduojamas tvarkaraščio įvedimo
laukelyje paspaudus mygtuką "Load uploaded shedule from
server".
Veikimas: (-)application,
(+)applet
6. Mygtukas "Open file".
Paspaudus
mygtuką "Open file", atsidaro failo pasirinkimo iš
vietinio disko dialogas, kuriame pasirinktas failas nuskaitomas
ir pavaizduojamas tvarkaraščio įvedimo laukelyje.
Veikimas: (+)application,
(-)applet
7. Mygtukas "Load demo shedule".
Paspaudus
mygtuką "Load demo shedule", užkraunamas
demonstracinis tvarkaraštis.
Veikimas: (+)application,
(+)applet
Įvedus pradinį tvarkaraštį, spaudžiamas mygtukas "OK" ir šis tvarkaraštis perduodamas optimizavimo programai.
Išsamesnį tvarkaraščio įvedimo būdų ir kitų lange esančių mygtukų aprašymą galima rasti "SheduleLoader" lange paspaudus mygtuką "Help".
Rezultatų peržiūrai ir išsaugojimui naudojamas langas "TvarkaAnalyser", atsirandantis pasirinkus "Run analysis: TvarkaAnalyser". Kadangi programa gali būti paleidžiama kaip Java programa arba kaip Java apletas, naudojami skirtingi rezultatų išsaugojimo būdai dėl nepasirašytiems apletams taikomų saugumo apribojimų.
Realizuoti tokie tvarkaraščio išsaugojimo būdai:
1. Mygtukas "Save shedule to
server and view".
Tvarkaraštis
išsaugomas į failą serveryje, o po to išsaugotas failas užkraunamas
interneto naršyklės lange. Turėdami tvarkaraštį naršyklėje,
galime jį išsaugoti į failą pasirinkdami naršyklės meniu
"File->Save As". Galime naršyklės lange matomą
tvarkaraštį pasižymėti, nukopijuoti į apsikeitimo buferį ir
įkelti į kitą programą. (Edit->Copy, Edit->Paste, Ctrl+C,
Ctrl+V ar jų atitikmenys).
Veikimas: (-)application
(+)applet
2. Mygtukas "Copy shedule to
clipboard".
Paspaudus
mygtuką "Copy shedule to clipboard" redagavimo
laukelyje esanti informacija patalpinama į sistemos apsikeitimo
buferį. Tada kitoje programoje, pvz. Word'e galite įsikelti
patalpintą informaciją paspaudę Ctrl+V arba meniu komanda Edit->Paste.
Veikimas: (+)application,
(+-)applet
Applet
neveikia, nes untrusted apletas negali prieiti prie sistemos
buferio dėl saugumo apribojimų. Todėl norint apsikeisti per
buferį reikės pažymėti tekstą ir naudoti klavišų
kombinacijas "Ctrl+C", "Ctrl+V" ar jų
atitikmenis informacijos įkėlimui į buferį ir paėmimui iš
jo.
3. Klavišų
kombinacijos Ctrl+V, Ctrl+C ar jų atitikmenys.
Pažymime
tekstą tvarkaraščio išvedimo lange norimu būdu, pavyzdžiui,
tai galima padaryti laikant nuspaustą Shift klavišą ir žymint
rodyklių pagalba. Į sistemos apsikeitimo buferį pažymėtas
tekstas patalpinamas paspaudus klavišus Ctrl+C. Aktyvizuojame
kitos programos, į kurią norime įkelti tvarkaraštį, langą
ir spaudžiame Ctrl+V arba pasirenkame iš meniu "Edit->Paste"
ar kitą atitinkamą klavišų kombinaciją. Skirtingose
sistemose klavišai gali būti ir kitokie (nebūtinai Ctrl+C ir
Ctrl+V).
Veikimas: (+)application
(+)applet
4. Mygtukas "Save shedule to file".
Mygtuko
"Save shedule to file" paspaudimas atidaro tvarkaraščio
failo išsaugojimo dialogą, kuriame įvedamas failo pavadinimas,
kokiu norime išsaugoti tvarkaraštį vietiniame diske.
Veikimas: (+)application
(-)applet
Išsamesnį tvarkaraščio išsaugojimo būdų ir kitų lange esančių mygtukų aprašymą galima rasti "TvarkaAnalyser" lange paspaudus mygtuką "Help".
[1] D.Švirmickienė ir
A.Zakšauskaitė. Mokyklos pamokų tvarkaraščio uždavinys.
Techninė ataskaita, Vytauto Didžiojo Universitetas,
Informatikos fakultetas, Lietuva, Kaunas, 1998.
[2] T.Danikauskas, S.Drąsutis. Mokyklos tvarkaraščio uždavinys.
1998.
[3] A.Sidorov. Mokyklos tvarkaraščio uždavinys. Kaunas, 1999.
[4] V.Marcinkevičius, D.Švirmickienė, A.Zakšauskaitė.
Mokyklos pamokų tvarkaraščio optimizavimo uždavinys. Kaunas,
1999.
[5] J.Mockus, W.Eddy, A.Mockus, L.Mockus,
and G.Reklaitis. Bayesian Heuristic Approach to Discrete and
Global Optimization. Kluwer Academic Publishers, Dordrecht-London-Boston,
1997.
[6] M.Grybauskas. Global Minimizer for Java (GMJ) Version 1.1.
Developer's and Power User's Guide. Kaunas, 1997.
P1. Demonstracinio tvarkaraščio taisymas ir optimizavimas
Pradinis demonstracinis tvarkaraštis (langų skaičius 9):
O.Dailidaviciene lietuviu_k D P112d P26b P39d P46c
Q Q Q A16c A212d A312d A46b A59d A610c Q T16b T26c T39d X T510c T612d
Q K19d K29d K310c K46b K56c Q Q N16c N212d N36b X N510c N610c Q
V.Vilkiene lietuviu_k D P112b P212b P312a P412c P55b Q Q A19c A25b
A312a A412b A512c A612c Q T19c X T312c T412b T55b Q Q K112a K212a
K35b K412b X K69c Q N19c N29c N312a N45b X N612c Q
N.Kazokeviciene lietuviu_k D P15c P26a X P48c P56d P68b Q A18c A28b
A35c A46d X A66a Q T16a T26d X T48b T55c T68c Q K15c K26a K38b K46d
K58c Q Q N15c N26a N38c N48b N56d Q Q
J.Kaminskiene choreografija 0 Q Q P35d X P55a Q Q Q Q Q Q A55c A65b
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
Z.Kublickas ekonomika 0 Q Q Q Q Q Q Q Q Q Q Q Q Q A711a Q Q Q Q Q
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
Pranešimai apie klaidas
ir jų ištaisymą:
5b klasė turi langą 10 stulpelyje. Ištaisyta
sėkmingai
5c klasė
turi langą 11 stulpelyje. Ištaisyta sėkmingai
Komentarai pranešimams:
1. "5b klasė turi langą 10 stulpelyje"
V.Vilkiene 9 stulpelyje turi pamoką A25b, J.Kaminskiene 13 stulpelyje turi pamoką A65b,
vadinasi 5b klasė turi langą 10,11,12 stulpelyje (pamokos A3,A4,A5).
Langas
panaikinamas perkėlus J.Kaminskienes pamoką 5b
klasei iš A6 į A3,
t.y. iš A65b į A35b.
2. "5c klasė turi langą 11 stulpelyje"
N.Kazokeviciene 10 stulpelyje turi pamoką A35c, J.Kaminskiene 12 stulpelyje turi pamoką A55c,
vadinasi 5c klasė turi langą 11
stulpelyje (pamoka A4).
Langas
panaikinamas perkėlus J.Kaminskienes pamoką 5c
klasei iš A5 į A4, t.y. iš A55c į A45c.
Ištaisytas tvarkaraštis (langų skaičius 9):
O.Dailidaviciene lietuviu_k D P112d P26b P39d P46c
Q Q Q A16c A212d A312d A46b A59d A610c Q T16b T26c T39d X T510c T612d
Q K19d K29d K310c K46b K56c Q Q N16c N212d N36b X N510c N610c Q
V.Vilkiene lietuviu_k D P112b P212b P312a P412c P55b Q Q A19c A25b
A312a A412b A512c A612c Q T19c X T312c T412b T55b Q Q K112a K212a
K35b K412b X K69c Q N19c N29c N312a N45b X N612c Q
N.Kazokeviciene lietuviu_k D P15c P26a X P48c P56d P68b Q A18c A28b
A35c A46d X A66a Q T16a T26d X T48b T55c T68c Q K15c K26a K38b K46d
K58c Q Q N15c N26a N38c N48b N56d Q Q
J.Kaminskiene choreografija 0 Q Q P35d X P55a Q Q Q Q A35b A45c Q
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
Z.Kublickas ekonomika 0 Q Q Q Q Q Q Q Q Q Q Q Q Q A711a Q Q Q Q Q
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
Optimizuotas tvarkaraštis (langų skaičius 0)
Nr. Mokytojas Dalykas Klase 1P1 1P2 1P3 1P4 1P5
1P6 1P7 2P1 2P2 2P3 2P4 2P5 2P6 2P7 3P1 3P2 3P3 3P4 3P5 3P6 3P7 4P1
4P2 4P3 4P4 4P5 4P6 4P7 5P1 5P2 5P3 5P4 5P5 5P6 5P7
1 O.Dailidaviciene lietuviu_k D P112d P26b P39d P46c Q Q Q A16c A212d
A312d A46b A59d A610c Q Q T26c T39d T46b T510c Q Q K19d K29d K310c
K46b K56c Q Q N16c N212d N36b N412d N510c N610c Q
2 V.Vilkiene lietuviu_k D P112b P212b P312a P412c P55b Q Q Q Q A312a
A412b A512c A612c Q Q T29c T312c T412b T55b Q Q K112a K212a K35b
K412b K55b K69c Q N19c N29c N312a N45b N59c N612c Q
3 N.Kazokeviciene lietuviu_k D P15c P26a P38b P48c P56d P68b Q Q
Q A35c A46d A58c A66a Q T16a T26d T35c T48b T55c T68c Q Q K26a K38b
K46d K58c Q Q N15c N26a N38c N48b N56d Q Q
4 J.Kaminskiene choreografija 0 Q Q P35d P45b P55a Q Q Q Q Q A45c
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
5 Z.Kublickas ekonomika 0 Q Q Q Q Q Q Q Q Q Q Q Q Q A711a Q Q Q Q
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
Komentarai langų skaičiaus sumažinimui:
1. O.Dailidaviciene: T16b perkelta į T46b
naikinant langą T4
2. O.Dailidaviciene: T612d perkelta į N412d
naikinant langą N4
3. V.Vilkiene: A19c perkelta į
N59c naikinant langą N5
4. V.Vilkiene: A25b perkelta į
K55b naikinant langą K5
5. V.Vilkiene: T19c perkelta į
T29c naikinant langą T2
6. N.Kazokeviciene: A18c perkelta į
A58c naikinant langą A5
7. N.Kazokeviciene: A28b perkelta į
P38b naikinant langą P3
8. N.Kazokeviciene: K15c perkelta į
T35c naikinant langą T3
9. J.Kaminskiene: A35b perkelta į
P45b naikinant langą P4