Я пытаюсь сформулировать проблему максимизации с помощью пакета Google OR-Tools.В основе оптимизации лежит проект Fantasy MLB Auction.
Проблема включает в себя следующие ограничения:
1) Предел зарплаты в размере 260
2) 23 игрока всего
2a) Не менее 1: Ловец, Первый человек с низов, Второй человек с низов, Третий человек с низами, Короткая остановка
2b) По крайней мере 2: Стартовые кувшины, Вспомогательные кувшины, Утилиты (любой жидкий тест)
2c) По крайней мере 3: Внешние игроки, Кувшины (любой кувшин)
2d) Ровно 6: Игроки на скамейке (любой кувшин или любое жидкое тесто)
Моя лига Fantasy MLB состоит из 6 категорий ватинов и 6 категорий питчинга.В идеале я стремлюсь максимизировать линейку, которая максимизирует каждую из этих статистических категорий при соблюдении вышеупомянутых ограничений.Мой подход очень похож на этот Оптимизатор NBA .
Как и в примере с Оптимизатором NBA, я организовал прогнозы / значения игроков для каждой из 12 статистических категорий на предстоящий сезон.
Затем я передаю всю эту статистику в Google OR-Пакет инструментов:
solver.Maximize(
CatcherHomeRuns + FirstBasemanHomeRuns + SecondBasemenHomeRuns...
StartingPitcherStrikeouts + ReliefPitcherStrikeouts...)
Функция solver.Maximize - это огромный блок, содержащий все типы позиций игрока и связанные с ними метрики.
Моя главная задача сейчас состоит в том, чтобы я неправильно сформулировал эту целевую функцию (возможно, исходя из ограничений задачи).Моя интуиция подсказывает мне, что я должен предоставить коэффициенты или весовые коэффициенты в решателе. Максимизируйте целевую функцию для каждой из частей, чтобы «сбалансировать» функцию так, чтобы каждая из 12 статистических категорий была индивидуально развернута.
Я с удовольствием уточню свой подход, но буду благодарен за любые отзывы о том, как я собираюсь сформулировать свою целевую функцию.