Rozważam hipotetyczny problem i szukam wskazówek, jak podejść do rozwiązania problemu, z algorytmicznego punktu widzenia.Algorytm do obliczania harmonogramu z podanymi ograniczeniami
Problem:
Rozważmy uniwersytet. Masz następujące obiekty:
- Nauczanie personelu. Każdy członek personelu uczy jednego lub więcej artykułów.
- Studenci. Każdy uczeń bierze jeden lub więcej artykułów.
- Pokoje. Pokoje mieszczą pewną liczbę studentów i zawierają określone rodzaje urządzeń.
- Artykuły. Wymagaj pewnego rodzaju sprzętu i pewnej ilości czasu w każdym tygodniu.
Biorąc pod uwagę informacje na temat zapisów (ie- ile studenci są zapisani w każdym papierze, a co pracownicy są przydzielane uczyć każdy papier), jak mogę obliczyć harmonogram, który jest zgodny z następującą ograniczenia:
- Personel może uczyć tylko jednej rzeczy naraz.
- Uczniowie mogą uczestniczyć tylko w jednym dokumencie naraz.
- Pokoje mogą pomieścić tylko określoną liczbę studentów.
- Papiery, które wymagają określonego rodzaju sprzętu, mogą być przechowywane tylko w pomieszczeniu, które zapewnia tego typu urządzenia.
- Godziny pracy są od poniedziałku do piątku, od 8 do 12 i od 1 do 5.
Dyskusja:
W rzeczywistości nie jestem zbyt zaniepokojony sytuacją opisaną powyżej - to ogólna klasa problemu, że jestem ciekaw. Na pierwszy rzut oka wydaje mi się, że dobrze pasuje do algorytmu genetycznego, ale funkcja przydatności dla takiego algorytmu byłaby niezwykle złożona.
Jakie jest dobre podejście do próby rozwiązania tego rodzaju problemu spełniającego ograniczenia?
Myślę, że prawdopodobnie nie da się tego idealnie rozwiązać, ponieważ studenci mogą wziąć kombinację papierów, która prowadzi do sytuacji niemożliwych, zwłaszcza, że liczba studentów wzrasta.
... możesz być. Chociaż istnieje tylko 5 ograniczeń, istnieją potencjalnie tysiące studentów, setki dokumentów, setki pokoi i setki pracowników. Złożoność sprawdzania wszystkich tych ograniczeń w stosunku do siebie jest, jak sądzę, pierwotnym problemem - po prostu przenieśliśmy go dalej. – Thomi
Chodzi mi o to, że nie odrzuciłbym GA po prostu dlatego, że funkcja fitness jest złożona, ponieważ będziesz musiał pracować tak złożoną metodą (wykorzystując podane metody formalne lub cokolwiek innego), GA, czy nie. – JohnIdol
Dobra uwaga. Dzięki. – Thomi