группировка студенческих лабораторий, составление расписаний, сопоставление - PullRequest
4 голосов
/ 19 марта 2012

У меня проблема с группировкой студентов в лабораторные группы.

  1. Учащиеся, сгруппированные в одной лаборатории, не должны группироваться в других лабораториях.

  2. Один из членов группы должен быть назначен руководителем лаборатории для этой лаборатории. Каждый студент должен быть руководителем лаборатории один раз.

См Как решить эту вариацию школьниц kirkkmans для оригинальной задачи, которую мне удастся решить с помощью Goose. Спасибо, что указал мне правильное направление. Я использую поиск по табу, чтобы выполнить группировку (задача 1) и создать двудольный граф, и использую Хопкрофта-Карпа для назначения руководителей групп лаборатории (задача 2).

Мне нужно добавить другие ограничения:

A. Студенты работают в паре, назначается руководитель лаборатории и составляется расписание семестра, отлично. В следующем и следующем семестрах студенты снова группируются (другой курс). Алгоритм должен избегать группирования студентов, где в одной и той же лабораторной группе последний и предыдущий семестры. Естественно, в конце концов это было бы невозможно. Но наилучшая возможная группировка должна быть найдена.

B. Чтобы сделать его еще более сложным, было бы здорово, если бы назначенные руководители лабораторий не были назначены руководителями лаборатории в той же лаборатории. То есть, если в лаборатории участвуют 8 и 1 учеников, студент 1 назначается руководителем лаборатории 1 в 1 семестре. Следующий семестр s1 не должен назначаться руководителем лаборатории в l4, но может назначаться руководителем лаборатории в любой другой лаборатории.

1 Ответ

1 голос
/ 17 апреля 2012

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

Я знаю 2 языка / программного обеспечения, которые очень хорошо подходят для такого рода проблем (но, вероятно, их гораздо больше!):

  • Пролог : логический язык
  • IBM ILOG CPLEX : проприетарное программное обеспечение, но, тем не менее, ссылка в полевых условиях.

Хорошая ссылка, с которой можно начать, - это посмотреть эту ссылку

Надеюсь, это полезно.

...