Google运营研究工具中的目标函数“公平”系数

时间:2019-03-03 07:38:56

标签: python constraints mathematical-optimization or-tools operations-research

我正在尝试使用Google的OR-Tools软件包提出最大化问题。优化的基础是Fantasy MLB拍卖草稿。

该问题涉及以下约束:

1)工资上限为$ 260

2)总共23名玩家

  

2a)至少1:接球手,一垒手,二垒手,三垒手,游击手

     

2b)至少2:起始投手,救济投手,公用事业球员(任意击球手)

     

2c)至少3:外野手,投手(任何投手)

     

2d)恰好6:替补球员(任何投手或击球手)

我的梦幻MLB联赛由6个击球类别和6个投球类别组成。理想情况下,我希望最大化一个阵容,以便在遵守上述约束的同时最大化每个统计类别。我的方法与此NBA Optimizer非常相似。

类似于NBA Optimizer的示例,我为即将到来的赛季的12个统计类别中的每个组织了球员预测/值。

然后,我将所有这些统计信息传递到Google的OR-Tools软件包中:

ioThread {
    INSTANCE.soundsDao().deleteAllSounds()
}

...

private val IO_EXECUTOR = Executors.newSingleThreadExecutor()

/**
 * Utility method to run blocks on a dedicated background thread, used for io/database work.
 */
fun ioThread(f : () -> Unit) {
    IO_EXECUTOR.execute(f)
}

solver.Maximize函数是一个巨大的块,其中包含所有玩家位置类型及其关联的指标。

我现在最主要的担心是我错误地制定了这个目标函数(也许是基于问题的约束)。我的直觉告诉我,我应该在求解器中提供系数或权重。最大化每个部分的目标函数以“平衡”该函数,以便分别最大化12个统计类别中的每一个。

我很高兴进一步阐明自己的方法,但也希望就我将如何制定目标函数的任何反馈给予感谢。

0 个答案:

没有答案