Я работаю над проблемой, когда нужно создать расписание экзаменов на основе некоторых ограничений, создав сеть потоков.Максимальный поток двухсторонний с промежуточными узлами
- Набор количество курсов C
- Набор количество дней D
- Набор количество комнат R
- Отображение студентов S на их курсы
Если студент проходит курс c1 и c2, два экзамена не могут проводиться одновременно.
У меня возникли проблемы с созданием сети потоков из этих ограничений. Это одна из сетей, которые я пытался сделать до сих пор.
Черные узлы являются источником и раковиной. Красный студентов. Зеленые курсы. Оранжевые - это дни. Синие номера.
Цифры представляют пропускную способность.
После создания соответствующего графика потока я знаю, что я бы использовал алгоритм Форда-Фулкерсона, чтобы найти максимальный поток.
Спасибо. Идея о том, что это проблема окраски графа, определенно пришла на ум. Проблема в том, что использование подхода с раскраской графа не помогло бы мне на самом деле определить допустимый график, это только скажет мне, что он существует. –
@YamatoC: Вы можете сформулировать это как проблему окраски, где допустимая раскраска непосредственно сопоставляется с возможным назначением курсов на дни. У вас есть дополнительное ограничение, что вы не можете иметь слишком много комнат в определенный день. Если это связано с проблемой, вы должны действительно сделать IP-модель вместо прямой раскраски. (Симметрии замедлят время решения, но, по крайней мере, будут работать.) – tmyklebu