2013-04-10 2 views
1

Я работаю над проблемой, когда нужно создать расписание экзаменов на основе некоторых ограничений, создав сеть потоков.Максимальный поток двухсторонний с промежуточными узлами

  • Набор количество курсов C
  • Набор количество дней D
  • Набор количество комнат R
  • Отображение студентов S на их курсы

Если студент проходит курс c1 и c2, два экзамена не могут проводиться одновременно.

У меня возникли проблемы с созданием сети потоков из этих ограничений. Это одна из сетей, которые я пытался сделать до сих пор. Flow Network

Черные узлы являются источником и раковиной. Красный студентов. Зеленые курсы. Оранжевые - это дни. Синие номера.

Цифры представляют пропускную способность.

После создания соответствующего графика потока я знаю, что я бы использовал алгоритм Форда-Фулкерсона, чтобы найти максимальный поток.

ответ

3

Это не проблема потока. Это на самом деле NP-полный; вы можете уменьшить проблему окраски графа к ней следующим образом:

Возьмите в качестве набора курсов набор вершин графа в вашем экземпляре раскраски графа. Для каждого ребра в этом графе, скажем, между u и v, создайте ученика, который принимает только курсы u и v. У вас ровно столько временных интервалов, сколько доступных цветов.

Тогда допустимое расписание (когда ни один студент не имеет обоих экзаменов одновременно) будет окрашивать ваш график.

Возможно, вам удастся построить целую модель программирования вашей проблемы.

+0

Спасибо. Идея о том, что это проблема окраски графа, определенно пришла на ум. Проблема в том, что использование подхода с раскраской графа не помогло бы мне на самом деле определить допустимый график, это только скажет мне, что он существует. –

+0

@YamatoC: Вы можете сформулировать это как проблему окраски, где допустимая раскраска непосредственно сопоставляется с возможным назначением курсов на дни. У вас есть дополнительное ограничение, что вы не можете иметь слишком много комнат в определенный день. Если это связано с проблемой, вы должны действительно сделать IP-модель вместо прямой раскраски. (Симметрии замедлят время решения, но, по крайней мере, будут работать.) – tmyklebu

 Смежные вопросы

  • Нет связанных вопросов^_^