Генерировать перестановки - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть n игроков для n игр.10 <= n <= 20.Каждый игрок может зарегистрировать до 3 игр, но получит только одну.Различные игроки имеют разные оценки для каждой игры, на которую они подписываются.

Пример с 10 игроками:

score of 10 players

Всегда можно назначить игроков х на игру х, но это не всегда даст самый высокийИтого:

Моя цель - набрать как можно более высокий балл, и поэтому я хочу проверить различные варианты.Я мог бы теоретически проверить все перестановки и отбросить невыполнимые, но это даст мне огромное количество возможностей (n!).Можно ли уменьшить проблему с лимитом регистрации максимум 3 игр?Может быть, это можно сделать проще, чем мой подход?Какие-нибудь мысли?Я работаю в Excel VBA.

Надеюсь, вы найдете это столь же интересным, как и я ...

Извините, если вам неясно!Мой вопрос: возможно ли создать подмножество всех перестановок?Точнее, только выполнимые (те, которые не имеют нулевой оценки).

1 Ответ

0 голосов
/ 26 ноября 2018

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

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...