Я пытаюсь составить расписание обучения, в котором у учителя есть определенное количество учеников, которые будут преподавать индивидуально (например, на уроках музыки) один раз в неделю. Ученики должны меняться, то есть их нельзя обучать в одно и то же время, неделя за неделей (минимальный допустимый промежуток между уроками в одно и то же время я называю «периодом ротации»). Придумать простейшую форму тривиально:
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6
10.00 Alice Edgar David Charles Bertha Alice
10.30 Bertha Alice Edgar David Charles Bertha
11.00 Charles Bertha Alice Edgar David Charles
11.30 David Charles Bertha Alice Edgar David
12.00 Edgar David Charles Bertha Alice Edgar
Но я хочу, чтобы пользователь мог добавлять правила, например, Алиса не может сделать 10.30 или 11.00 на неделе 3 и т. Д. Я начал с простого цикла возврата, но вскоре понял, что количество возможностей делает это практически осуществимым. Я не очень опытный программист и понимаю, что это может привести меня к продвинутым методам программирования. Но если бы кто-нибудь мог дать мне несколько идей о том, как подойти к проблеме, я был бы очень благодарен. Я, конечно, искал помощи, но большая часть обсуждения, кажется, посвящена более сложной задаче создания всего школьного расписания. Стоит ли в этом разбираться с генетическим программированием? Я создаю программу как веб-страницу, используя php.