1 Definicja zadania

Transkrypt

1 Definicja zadania
Sztuczna inteligencja 2
Pracownia 3.
Plan lekcji
1
Definicja zadania
Rozwiązanie planu to przypisanie terminów i sal wszystkim zajęciom. Termin
jest liczbą od 1 do 60, liczby od 1 do 12 to terminy poniedziałkowe, 13 do 24 to
terminy wtorkowe itd. Do terminów będziemy się czasem odwoływać za pomocą
liczby i dnia tygodnia, przykładowo druga godzina lekcyjna w środę to termin
26.
Plan powinien spełniać następujące (twarde) ograniczenia:
• Każdy nauczyciel w danym momencie ma co najwyżej jedne zajęcia
• Każda klasa w danym momencie ma co najwyżej jedne zajęcia.
• W każdej sali w danym momencie odbywają się co najwyżej jedne zajęcia.
• W danej sali odbywają się tylko takie zajęcia, do których jest przystosowana.
• Każda klasa ma codziennie od 2 do 9 godzin.
• Nauczyciel nie prowadzi zajęć w terminach, które wcześniej wybrał (tzw.
dezyderaty).
Wartość planu liczymy sumując kary za niespełnienie (ew.nagdrody za spełnienie) pewnych dodatkowych (miękkich) ograniczeń.
• Wolny dzień nauczyciela to 100 punktów nagrody, jeżeli jest to piątek bądź
poniedziałek, to dodatkowe 50.
• 3 lub więcej lekcji jednego przedmiotu tego samego dnia to 1000 punktów
kary.
• 2 lub 9 godzin danej klasy jednego dnia to 200 punktów kary.
• Okienka nauczyciela to 30 punktów kary za każde okienko.
• Okienka danej klasy w danym dniu to 500k 2 punktów kary, gdzie k jest
liczbą okienek w tym dniu.
• Każda lekcja w godzinach 1,10,11,12 (każdego dnia) to 50 punktów kary.
• Każde zajęcia wf, które nie są pierwszą lub ostatnią lekcją danego dnia (o
ile nie odbywają się podczas godziny 61 ) powodują przyznanie 20 punktów
kary.
• Dwie (lub więcej) lekcji tego samego przedmiotu jednego dnia (o ile nie
jest to język polski lub matematyka) powodują przyznanie 300 punktów
kary.
1 Przyjmujemy,
że ta godzina jest otoczona większymi przerwami
• Dwie (lub więcej) lekcji tego samego przedmiotu rozdzielone inną lekcją
to 100 punktów kary.
• Dwie (lub więcej) lekcji tego samego przedmiotu więcej niż raz w tygodniu
to 200 punktów kary.
• Lekcje z przedmiotu, którego są 3 godziny w tygodniu, odbywające się
dzień po dniu to 40 punktów kary.
• Lekcje z przedmiotu, którego są 2 godziny w tygodniu, odbywające się
dzień po dniu to 100 punktów kary.
• 6 lub 7 lekcji jakiejś klasy danego dnia to 10 punktów nagrody
• Nauczyciel może wyrażac preferencje co do niechętnego prowadzenia zajęć
w pewnych terminach. Niespełnienie którejś z nich oznacza 10 punktów
kary.
2
Dane do zadania
Do rozmieszczenia będzie około 450 zadań, każde w jednym z 60 terminów (co
jak łatwo policzyć daje budzące szacunek oszacowanie wielkości przestrzeni na
60450 ). Na stronie wykładu znajduje się prologowy program generujący dane do
planu. Można go wykorzystac do generowania łatwiejszych danych testowych.
Program wypisuje wynik do pliku plan.in. W tym pliku poszczególne wiersze
odpowiadają zajęciom do rozmieszcenia:
(...)
204 :
205 :
206 :
207 :
(...)
Pszczółka Maja :
Pszczółka Maja :
Gucio : historia
Gucio : historia
fizyka : e1 :
fizyka : e1 :
: a1 :
: a1 :
W pierwszej kolumnie jest numer zajęć, w kolejnej nauczyciel, przedmiot oraz
nazwa klasy. Separatorem jest dwukropek.
W pliku plandef.pl znajdują się dwa predykaty, określające zasady przydzielania sal zajęciom. Przedstawiam je poniżej:
%---------------------------------------------------------------% typsali(Typ,ListaPrzedmiotow)
%---------------------------------------------------------------typsali(inf,[informatyka]).
% 2
typsali(norm,[matematyka,polski,historia,biologia]). %15 * 15 = 225
typsali(fiz,[fizyka]).
typsali(wf,[wf]).
typsali(jezyk,[niemiecki,angielski]). % 5 * 15 = 75
typsali(chemia,[chemia]).
%---------------------------------------------------------------% sala(TypSali,ListaNumerowSalTegoTypu)
2
%---------------------------------------------------------------sala(inf,[1]).
sala(fiz,[2]).
sala(wf, [3]).
sala(chemia,[4]).
sala(jezyk,[5,6]).
sala(norm, [7,8,9,10,11,12,13,14,15,16] ).
Predykat typsali określa jakie przedmioty mogą byc uczone w salach określonego
typu. Predykat sala przypisuje typy poszczególnym salom.
Ponadto w pliku plandef.pl znajdą się predykaty niemoze(Kto,Kiedy)
oraz niechce(Kto,Kiedy) ozanczające twarde i miękkie negatywne preferencje
nauczyciela co do prowadzenia zajęć w danym terminie.
3
Zasady oddawania zadania
Poniższe zasady są jedynie szkicem. Chętnie zapoznam się z Waszą opinią i
ewentualnie je zmodyfikuję.
1. Zadanie można przygotowywać w zespołach. Każdy zespół rozwiązuje to
samo zadanie, uprasza się, by kontakt między zespołami był jedynie za
pośrednictwem wykładowcy.
2. Efekt pracy zespołów będzie oceniony w konkursie.
3. Obowiązują standardowe zasady dotyczące udostępniania technicznej części
kodu.
4. Język implementacji jest dowolny, wymagana jest jedynie możliwość prezentacji działania progarmu na pracowni.
5. Każdy zespół może przedstawić dwie (osobno oceniane) wersję swojego
układacza. Pierwsza wersja (off-line) nie jest uruchamiana, zespół prezentuje jedynie otrzymany za jej pomocą plan. Wersja on-line musi w całości
wykonac się w czasie pracowni. (Oczywiście mogą to być również te same
programy).
6. Zespoły mogą liczyć od 1 do 4 osób. Zachęcam do pracy w większych
zespołach.
7. Domyślnie każdy z członków zespołu dostaje tyle samo punktów. Zespół może zadecydować inaczej. Dokładniejsze zasady zostaną ustalone
później.
8. Punkty za zadanie dzielone są w proporcjach 1/1 między egzamin a ćwiczenia.
Za poprawne rozwiązanie zadania otrzymac można 30 punktów. Dodatkowe punkty można otrzymać za zajęcie premiowanego miejsca w konkursie on-line i off-line.
3
4
Format wyniku
Wynikiem działania przypisywacza powinien być plik tekstowy zawierający wiersze w postaci:
numer-zajęcia
termin(1-60) numer-sali(1,16)
Zajęcia powinny być podawane w kolejności rosnącej, poczynając od zajęcia
pierwszego. Dodatkowo powinien być wygenerowany raport informujący o wartości
planu (wymieniając poszczególne jej składowe). Mile widziane jest również wypisanie planu w jakiejś formie przystępnej dla człowieka (np. ze względu na
uczniów i na nauczycieli).
5
Terminarz
Proponuję następujące terminy:
1. 26 kwietnia – zespół dostarcza informację o swoim składzie i krótki dokument, przedstawiający pomysły na rozwiązanie, które będą w pierwszej
kolejności testowane.
2. 2 maja – prawie Święto Pracy (być może spędzone na pracy nad projektem)
3. 9 maja – Dzień Zwycięstwa, ryt wschodni (pierwszy możliwy termin rozstrzygnięcia konkursu)
Jeżeli będzie taka potrzeba, to można 9 maja zrobić listę ćwiczeniową, a
przesunąć konkurs na 16 maja.
4