FET – Dokumentacja ograniczeń czasowych
Znaczniki: Weight, Compulsory, First_Activity_Id, Second_Activity_Id
Opis: Masz dwa zajęcia, które chciałbyś aby odbyły się kolejno po sobie w tym samym dniu. Kolejność ma znaczenie. Dopasowanie chromosmu jest zwiększane o pewną wartość, tym większą im dłuższy czas dzieli odbycie się zajęć. Obecnie współczynnik dopasowania zwiększa się o 1 z każdą dodatkową godziną rozdzielającą zajęcia i każdym dniem pomiędzy nimi (optymalnie powinno być 0 - gdy godzina rozpoczęcia drugich zajęć jest godziną skończenia się pierwszych). Pewien użytkownik chciał uwzględnić potrzebę przeprowadzenia w zajęć po sobie (kolejność była istotna). Zarówno dla ograniczenia obowiązkowego jak i nieobowiązkowego, zwracany jest normalny komunikat o błędzie. Konflikt oznacza różnicę w dniach + różnicę w godzinach. Ilość konfliktów mnożona jest przez 2 w przypadku gdy pierwsze zajęcia odbywają się co tydzień (w odróżnieniu od zajęć odbywających się co 2 tygodnie) i jeszcze raz mnożona przez 2, gdy drugie zajęcia odbywają się co tydzień.
Znaczniki: Weight, Compulsory, First_Activity_Id, Second_Activity_Id
Opis: Masz dwa zajęcia, które chciałbyś aby odbyły się kolejno po sobie w tym samym dniu. Kolejność nie ma znaczenia. Dopasowanie chromosmu jest zwiększane o pewną wartość, tym większą im dłuższy czas dzieli odbycie się zajęć. Obecnie współczynnik dopasowania zwiększa się o 1 z każdą dodatkową godziną rozdzielającą zajęcia i zwiększa się o 1 z każdym dodatkowym dniem. (Dla godzin mamy minimum 0, gdy zajęcia są OK, dodatnią stałą gdy się pokrywają i zwiększającą się wartość dodatnią gdy się od siebie oddalają). W przypadku dni - mamy prostą różnicę bezwględną. Pewien użytkownik chciał aby 2 zajęcia odbyły się jedne po drugich, przy czym ich kolejność nie miała znaczenia. Zarówno dla ograniczeń obowiązkowych jak i nieobowiązkowych, zwracany jest normalny komunikat o błędzie. Komunikaty o konfliktach to: różnica w dniach + lub - różnica w godzinach, gdy zajęcia są od siebie oddalone. Jeśli zajęcia pokrywają się, mamy dodatnią wartość, 0 otrzymujemy gdy zajęcia są OK. Ilość konfliktów mnożona jest przez 2 w przypadku gdy pierwsze zajęcia odbywają się co tydzień (w odróżnieniu od zajęć odbywających się co 2 tygodnie) i jeszcze raz mnożona przez 2, gdy drugie zajęcia odbywają się co tydzień.
Znaczniki: Weight, Compulsory, Number_of_Activities, Activity_Id, Activity_Id
Możliwe znaczniki: More Activity_Id
Opis: To ograniczenie ma na celu uniknięcie odbywania się zajęć w jednym czasie. Liczba konfliktów to liczba godzin, które się pokrywają.
Znaczniki: Weight, Compulsory, Teacher_Name, Students_Name, Subject_Name, Subject_Tag, Number_of_Preferred_Times, Preferred_Time
Znaczniki Preferred_Time: Preferred_Day, Preferred_Hour
Opis: Zwraca konflikt, gdy zajęcia odbywają się w innym niż preferowany dla nich przedziale czasu. Zestaw zajęć może zostać określony przez wybór przedmiotu, nauczyciela, studentów lub przez ich kombinację. Pewien użytkownik zasugerował, że ograniczenie ConstraintActivityPreferredTimes powinno być bardziej ogólne. Teraz możesz dobrać filtr nauczycieli, studentów czy przedmiotu aby wybrać odpowiedni zbiór zajęć, które mają odbyć się w określonym czasie.
Znaczniki: ???
Opis: To ograniczenie pozwala na zaplanowanie rozpoczęcia kilku zajęć o tej samej godzinie. Liczba konfliktów to suma różnic czasów odbywania się wszystkich par zajęć. Przez różnicę czasów odbywania się rozumie się różnicę czasów ich rozpoczęcia. DO ZROBIENIA: Zajęcia cotygodniowe wliczają się podwójnie, a odbywające się co 2 tygodnie liczą się pojedynczo (czy to naprawdę jest konieczne?). WAŻNE: Obowiązkowe ograniczenie tego typu powoduje użycie algorytmu reparacji chromosomu (ang.chromosome repairing), co powoduje, że nie zostanie wyświetlony komunikat o konflikcie.
Znaczniki: Weight, Compulsory, Number_of_Activities, Activity_Id, Activity_Id
Możliwe znaczniki: More Activity_Id
Opis: It aims at scheduling a set of activities at the same starting time. Liczba konfliktów to suma różnic czasów rozpoczęcia wszystkich par zajęć.. Różnicą czasów odbywania się pary zajęć jest suma różnic w dniach ich rozpoczęcia oraz godzinach rozpoczęcia. DO ZROBIENIA: Zajęcia cotygodniowe wliczają się podwójnie, a odbywające się co 2 tygodnie liczą się pojedynczo (czy to naprawdę jest konieczne?). WAŻNE: Począwszy od wersji 3.2.3 nałożenie obowiązkowego ograniczenia tego typu powoduje użycie algorytmu reparacji chromosomu (ang. chromosome repairing), więc nie będzie komunikatu o konfliktach. W przypadku ograniczeń obowiązkowych rozwiązanie-kandydat poddawany jest naprawie przed wyliczeniami (więc wszystkie rozwiązanie będą spełniać to ograniczenie i nie będzie konfliktów). Jest to szybsza metoda, co udowodnione zostało w przykładzie Iana Fantoma. W przypadku ograniczeń nieobowiązkowych, metoda powoduje raportowanie konfliktów (i jest wolniejsza, gorsza od metody opisanej powyżej).
Znaczniki: Weight, Compulsory, Activity_Id
Opis: Powoduje zwiększenie współczynnika konfliktów o ilość zajęć, które następują po zajęciach przewidzianych jako ostatnie.
Znaczniki: Weight, Compulsory, Activity_Id, Preferred_Hour, Preferred_Day
Opis: Im bardziej czas odbycia zajęć odbiegać będzie od pożądanego, tym bardziej zwiększał się będzie współczynnik konfliktu dla chromosomu. Obecnie zostaje on zwiększony o 1 z każdą godziną różnicy i o 1 z każdym dniem. W przypadku ograniczeń obowiązkowych rozwiązanie-kandydat poddawany jest naprawie przed wyliczeniami (więc wszystkie rozwiązanie będą spełniać to ograniczenie i nie będzie konfliktów). Jest to szybsze (udowodnione bardziej praktycznie niż teoretycznie). W przypadku ograniczeń nieobowiązkowych metoda powoduje raportowanie konfliktów. Procedura informuje o współczynniku konfliktów, który zwiększa się wraz z odległością od pożądanego czasu odbywanie się zajęć. Może to powodować, że otrzymasz gorsze wyniki, jeśli interesuje Cię, aby zajęcia odbyły się w ściśle określonym czasie. W takim przypadku proszę użyć ograniczenia Preferowanych czasów pojedynczych zajęć i określić tylko jedną, pożądaną godzinę odbywania się zajęć.
Znaczniki: Weight, Compulsory, Activity_Id, Number_of_Preferred_Times, Preferred_Time
Znaczniki Preferred_Time: Preferred_Day, Preferred_Hour
Opis: Zwraca konflikt, gdy zajęcia odbywają się w innym niż preferowany dla nich przedziale czasu. Możesz określić dowolne przedziały czasowe, w których odbywać mogą się zajęcia (taki rodzaj LUB dla większej ilości ograniczeń Preferowany czas pojedynczych zajęć). WAŻNE: W przypadku pojedynczego nieobowiązkowego preferowanego czasu, ograniczenie Preferowane czasy pojedynczych zajęć mogą się lepiej zachowywać niż Preferowany czas pojedynczych zajęć, zależnie od tego, czy jesteś zainteresowany zmniejszaniem odstępu od tego preferowanego czasu lub czy interesuje Cię jedynie dokładne rozwiązanie. Przejrzyj szczegółowe obserwacje w objaśnieniu dla ograniczenia Preferowany czas pojedynczych zajęć.
Znaczniki: Weight, Compulsory
Opis: Na tą klasę ograniczeń składają się wszystkie podstawowe ograniczenia obowiązkowe (które muszą być spełnione przez każdy plan zajęć) - ich część związana z przyporządkowaniem czasu zajęciom.
Znaczniki: Weight, Compulsory, Day, Start_Hour, End_Hour
Opis: Powoduje ono, że żadne zajęcia nie będą zaplanowane określonego dnia, pomiędzy godzinami rozpoczęcia i końca przerwy.
Znaczniki: Weight, Compulsory, Day, Number_of_Activities, Activity_Id, Activity_Id, MinDays
Możliwe znaczniki: More Activity_Id
Opis: Dotyczy zbioru zajęć i wymaga podania stałej N. Dla każdej pary zajęć z tego zbioru nie pozwala się, aby zajęcia odbywały się częściej, niż co N dni. Jeśli ustawisz N=1, wówczas ograniczenie to oznacza, że żadna z par zajęć nie może odbyć się tego samego dnia. N=2 oznacza przynajmniej jeden dzień przerwy pomiędzy zajęciami. Przykład: 3 zajęcia i N=2. Można mieć wtedy zajęcia w poniedziałek, środę i piątek (dla 5 dni w tygodniu). Przykład2: 2 zajęcia, N=3. Wówczas możemy mieć zajęcia w poniedziałek i czwartek, poniedziałek i piątek lub wtorek i piątek (dla 5 dni w tygodniu).
Znaczniki: Weight, Compulsory
Opis: Ograniczenie to powoduje, że współczynnik konfliktów zostaje powiększony o wartość związaną z tym, jak wcześnie studenci rozpoczynają zajęcia. W rezultacie otrzymuje się plan, w którym większość zajęć odbywa się na początku dnia. WAŻNE: zajęcia odbywające się co 2 tygodnie są traktowane jak cotygodniowe, co pozwala zwiększyć prędkość działania, a w normalnej sytuacji nie ma znaczenia. Jest to ograniczenie, które wymaga, aby wszyscy studenci rozpoczynali swoje lekcje tak wcześnie, jak tylko to możliwe. Bądź ostrożny z tym ograniczeniem: jeżeli którakolwiek z grup studentów, któregoś dnia, będzie zaczynać zajęcia później, niż na pierwszej godzinie, będzie to skutkowało konfliktem.
Znaczniki: Weight, Compulsory, MaxHoursDaily, MinHoursDaily
Opis: W rezultacie narzucenia tego ograniczenia otrzymamy plan, w którym wszyscy studenci nie mogą mieć więcej niż max lub mniej niż min godzin zajęć dziennie.
Znaczniki: Weight, Compulsory
Opis: Do współczynnika konfliktów chromosomu dodana zostaje wartość obliczona na podstawie ilości okienek w zajęciach (godzinnych lub dłuższych przerw) studentów. W rezultacie otrzymuje się plan mający mniej okienek dla studentów.
Znaczniki: Weight, Compulsory, Students, Start_Hour, End_Hour, Max_Intervals
Opis: Dla pewnej grupy studentów: Celem tego ograniczenia jest aby nie dopuszczać do odbywania się zajęć w pewnym przedziale godzinowym więcej niż n razy w tygodniu (np. tylko dwa razy zajęcia mogą odbywać się pomiędzy 15.00 a 18.00, co mogłoby odpowiadać popołudniom w poniedziałek i wtorek). Nieco skomplikowana i przydługa nazwa. Pewien użytkownik chciał nie dopuszczać do odbycia się zajęć grupy studentów podczas więcej niż dwóch popołudni w tygodniu. To ograniczenie jest bardziej ogólne. Możesz określić dla grupy przedział czasu (godzinę początkową i końcową) i maksymalną ilość dni w tygodniu, dla których dopuszczasz odbywanie się zajęć w podanym przedziale czasu.
Znaczniki: Weight, Compulsory, MaxHoursDaily, MinHoursDaily, Students
Opis: W efekcie narzucenia tego ograniczenia otrzymamy plan spełniający warunek, że określona grupa studentów nie może mieć mniej niż min i więcej niż max godzin dziennie.
Znaczniki: Weight, Compulsory, Students
Opis: To ograniczenie zwiększa współczynnik konfliktu o wartość obliczoną na podstawie ilości okienek (godzinnych lub dłuższych przerw) w planie zajęć grupy studentów.
Znaczniki: Weight, Compulsory, Students, Day, Start_Hour, End_Hour
Opis: Zwraca współczynnik konfliktów równy iloczynowi wagi ograniczenia i ilości konfliktowych godzin dla każdej z grup studentów (godzin, gdy jest ona nieosiągalna, a mimo to zaplanowano dla niej wówczas zajęcia). Obecnie dotyczy to konkretnego dnia i pewnego przedziału czasu. (konkretnie chodzi o dzień "Dzień" i okres pomiędzy godzinami początkowymi i końcowymi).
Znaczniki: Weight, Compulsory, Teacher_Name, Max_Days_Per_Week
Opis: Jeśli użyjemy tego ograniczenia plan musi spełnić warunek, że nauczyciel nie może pracować w większą niż to określono ilość dni w tygodniu..
Znaczniki: Weight, Compulsory, Teacher_Name, Day, Start_Hour, End_Hour
Opis: Zwraca współczynnik konfliktów równy iloczynowi wagi ograniczenia i ilości konfliktowych godzin (godzin, gdy jest on nieosiągalny, a mimo to zaplanowano dla niego wówczas zajęcia). Obecnie dotyczy to konkretnego dnia i pewnego przedziału czasu. (Nauczyciela "Nauczyciel", dnia "Dzień" i przedziału pomiędzy godziną rozpoczęcia i końca).
Znaczniki: Weight, Compulsory
Opis: Do współczynnika konfliktów chromosomu dodana zostaje wartość obliczona na podstawie ilości okienek w zajęciach (godzinnych lub dłuższych przerw) nauczycieli. W rezultacie otrzymuje się plan mający mniej okienek dla nauczycieli.
Znaczniki: Weight, Compulsory, Maximum_Hours_Continuously
Opis: To ograniczenie ma na celu nie dopuszczenie do tego, aby nauczyciel prowadził zajęcia dłużej niż to określono bez przerwy.
Znaczniki: Weight, Compulsory, Maximum_Hours_Daily
Opis: To ograniczenie ma na celu nie dopuszczenie do tego, aby nauczyciel prowadził dziennie więcej niż to określono zajęć.
Znaczniki: Weight, Compulsory, Maximum_Hours_Daily
Opis: Ograniczenie ma na celu nie dopuszczać do tego, aby określony nauczyciel miał z określoną podgrupą studentów więcej niż X zajęć dziennie.
Znaczniki: Weight, Compulsory, Maximum_Hours_Daily
Opis: Ograniczenie ma na celu nie dopuszczać do tego, aby nauczyciele mieli więcej niż X zajęć o określonym wyróżniku przedmiotu dziennie.
Znaczniki: Weight, Compulsory, Maximum_Hours_Daily
Opis: Ograniczenie ma na celu nie dopuszczać do tego, aby nauczyciele mieli więcej niż X zajęć o tym samym wyróżniku dziennie.
ta dokumentacja została sporządzona przez Daniel S.