Pracuję nad prostą aplikacją, która wygeneruje tabelę czasu (dzienny planer) dla szkół. Przeczytałem podstawy algorytmów, ale nie wiem, od czego zacząć.
Który algorytm używany do generowania tabeli czasu dla szkół
Problem:
Przydzielanie nauczycielom klas biorących pod uwagę wiele ograniczeń, takich jak:
1) Z zastrzeżeniem
2) Ekspertyza nauczyciela
3) nie więcej niż 2 zajęcia stale .. itp
Jest rzeczą oczywistą, że nie powinno dojść do nakładania się. Zasadniczo muszę przypisać N nauczycieli do klas M o stałej liczbie godzin pracy każdego dnia (8).
Wejścia:
1) liczbę klas
2) nauczycieli ogółem wraz z ich wiedzy zastrzeżeniem
3) Tematy/Kursy dla każdej klasy
4) Liczba wykładów w klasie dziennie
5) Inne elastyczne ograniczenia, takie jak minimalny/maksymalny czas pracy nauczyciela na dzień, całkowity czas pracy na nauczyciela na tydzień itp.
Moje pytania:
1) Czy to prawda? spojrzeć na to jako na problem z wieloma ograniczeniami?
2) Który algorytm powinienem użyć? (Węgierski algorytm?)
3) Czy powinienem zacząć od zebrania całego zestawu wiązań za jednym razem, a następnie wygenerować tabelę, czy też należy to zrobić w pośrednich krokach?
Jestem początkujący w nauczaniu/wdrażaniu algorytmów, więc każda pomoc wskazuje na mnie we właściwym kierunku docenionym! Dzięki.
Znalazłem plik PostScript mówiący o algorytmie ** Tabu Search ** (http://en.wikipedia.org/wiki/Tabu_search) do przypisywania nauczycieli do zajęć (http://www.uv.es/sestio /TechRep/tr01-01.ps). To głównie heurystyka matematyczna. Mam nadzieję, że da ci to jakiś kierunek. –
To jest duplikat. Odpowiedziałem na to pytanie kilka tygodni temu: http://stackoverflow.com/questions/2177836/algorithm-for-creating-a-school-timetable –
@Stefano, nieoceniony link! Dzięki – Checksum