
Я хочу использовать Excel Solver для оптимизации расписания конференции. Конечная цель — чтобы каждая сессия конференции была тематически связной, а сессии были сгруппированы по темам.
Я создал гипотетическую ситуацию, в которой мне нужно распределить 20 исследовательских работ по 5 сессиям, по 4 работы на сессию. Охвачено 5 тем, по 4 работы на каждую.
Созданная мной таблица Excel выглядит следующим образом.
Я попытался использовать Excel Solver, чтобы определить оптимальные настройки, при которых в одном сеансе будут рассматриваться все работы по теме 1, в следующем сеансе — все работы по теме 2 и т. д.
Ячейки I25:M29 показывают, какие темы рассматриваются в одном сеансе.
Сейчас цель — максимизировать $N$30. Это суммирует ячейки I30:M30, что учитывается, если один из субъектов в сеансе дает сумму 4, например, COUNTIF(I25:I29,4).
Это делается путем изменения ячеек переменных I2:M21, которые представляют собой двоичную переменную для каждой статьи, отнесенной к одной сессии.
Ограничения, которые я ввел:
- Количество докладов на сессию не должно превышать 4.
- I2:M21 — двоичные
- Каждый доклад должен быть отнесен к сессии, т.е. N2:N21 = 1
Проблема в следующем: я не могу заставить это работать правильно. Я пробовал несколько вариантов, например, эволюционный, нелинейный GRG, но ни один из них не дает очевидного решения, которое выглядит так:
Что вы думаете по этому поводу, какие параметры Solver помогут мне найти это решение?
решение1
На самом деле я только что понял, как это сделать.
- $N$30 должна быть суммой всех предметов, что в сумме дает 20 (и фактически допускает линейное программирование)
- Необходимо ввести ограничения для каждой сессии, чтобы она включала одну тему, указав, что тема должна совпадать с максимальным количеством мест на сессию, $I$26 = $I$23, $J$27 = $J$23 и т. д.
Визуально:
Однако, когда я захочу добавить гораздо больше сеансов, это станет довольно трудоемким, поэтому любые альтернативы по-прежнему приветствуются!