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