Проблема: учитывая набор групповых регистраций, каждая для разного количества человек (1-7), и набор групп рассадки (неизменяемый, не менее 2 м друг от друга), варьирующийся от 1 до 4 мест, Я хочу найти оптимальное распределение групп людей по группам рассадки:
- Группы людей могут быть разделены на несколько групп рассадки (но желательно этого не делать).
- Группы рассадки не могут быть разделены между разными группами людей.
- (необязательно) назначение должно минимизировать количество «потраченных впустую» мест, т.е. максимизировать количество мест в пустых группах рассадки
- (в идеале он должен запускаться из сценария Google Apps, поэтому объем памяти и вычислительная сложность должны быть как можно меньше)
Первая попытка: меня интересует проблема решения (возможно ли это?), а также проблема оптимизации (см. дополнительную функцию оптимизации). Я смоделировал это как проблему SAT, но это не нашел оптимального решения.
По этой причине я попытался смоделировать это как проблему оптимизации. Я думаю о (удаленном) варианте многослойного рюкзака, но пока не могу назвать его:
- позиции: группы рассадки (размер - ›вес)
- рюкзаки: группы людей (размер - ›размер контейнера)
- ограничение: общий вес товара ›= размер контейнера
- оптимизация: минимизировать количество элементов
Как видите, ограничение и оптимизация перевернуты по сравнению со стандартной задачей. Итак, мой вопрос: на правильном ли я здесь пути или вы бы пошли по другому пути? Если это правильно, то есть ли у этой проблемы оптимизации название?