选择二元线性规划的幼儿园儿童

问题描述 投票:2回答:1

我有以下选择问题。我有一些孩子,每个孩子都有一些可能的工作日组合,当它可以加入一个幼儿园组。每个工作日组合都有自己的收入(每周更多天数,更多收入)。每个工作日的最大孩子数量有一些限制。不是每个孩子都必须被选中。目的是最大化总收入。这是一个示例数据集:

df <- data.frame(kid.nr=c(1,1,2,3,3, 3),
             kid.comb.nr=c(1,2,1,1,2, 3), 
             monday=c(0,0,1,0,1, 0),  
             tuesday=c(1,0,1,0,1, 0), 
             wednesday=c(0,1,0,0,1, 0), 
             thursday=c(0,0,1,1,1, 0), 
             friday=c(0,0,1,0,1, 0), 
             revenue.per.combn =c(100, 100, 400, 100, 500, 0)  )

# kid.nr 3 doesnt necessarily has to bee chosen

max.nr.kids.per.weekday <- c(1,2,3,2,1)

据我所知,lpsolve可以管理这个二进制线性编程问题?怎么可能呢?特别是,我如何应对这样一个事实,即一些孩子有一个以上的工作日组合,但每个孩子应该只考虑一次?

r linear-programming lpsolve
1个回答
2
投票

首先要做的是开发一个数学模型。这看起来像:

enter image description here

然后你需要将其实现为R.我建议使用OMPR包。

基本上皱纹是以下:我们有二进制变量x(i,j)其中i=kidsj=daycombinations。现在x(i,j)有些“褴褛”:它并不存在于所有i,j。例如。 i=kid 2只有一个j。这种类型的东西可以由OMPR处理(他们称之为“过滤器”)。

© www.soinside.com 2019 - 2024. All rights reserved.