Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
线性优化lpr算法_R_Optimization_Lpsolve - Fatal编程技术网

线性优化lpr算法

线性优化lpr算法,r,optimization,lpsolve,R,Optimization,Lpsolve,我有一个每周得分的数据框架stats,下面是一个片段。我正在尝试使用lpSolve对整个赛季得分最高的球队进行线性优化,每周只选择4名球员。使用下面的脚本很容易做到这一点,但是,我想做的是将一周到下一周的不同玩家数量限制为1 我知道我可以在一周到下一周之间循环添加一个独特的约束,但这不会给我想要的结果,我需要一次完成整个赛季 有人知道我怎样才能给它添加一个约束,以限制从一周到下一周的更改数量吗?我尝试过绑定不同类型的矩阵,但我没有想到什么能满足我的需要 mat_core <- rbind(

我有一个每周得分的数据框架
stats
,下面是一个片段。我正在尝试使用lpSolve对整个赛季得分最高的球队进行线性优化,每周只选择4名球员。使用下面的脚本很容易做到这一点,但是,我想做的是将一周到下一周的不同玩家数量限制为1

我知道我可以在一周到下一周之间循环添加一个独特的约束,但这不会给我想要的结果,我需要一次完成整个赛季

有人知道我怎样才能给它添加一个约束,以限制从一周到下一周的更改数量吗?我尝试过绑定不同类型的矩阵,但我没有想到什么能满足我的需要

mat_core <- rbind(as.numeric(stats$WK == 1),
                  as.numeric(stats$WK == 2),
                  as.numeric(stats$WK == 3),
                  as.numeric(stats$WK == 4))

dir_core <- c("==","==","==","==") # vector of directions for core matrix
rhs_core <- c(4,4,4,4) # vector of limits for core matrix

WK  Player  Score
1   A       4.995163751
1   B       86.82906105
1   C       40.97354028
1   D       31.76318335
1   E       64.10958282
1   F       34.74231366
1   G       45.16688052
2   A       52.12218579
2   B       36.40368228
2   C       22.54055592
2   D       78.89243814
2   E       62.94091956
2   F       80.26134194
2   G       73.3827927
....

mat_core我建议首先写下数学模型(尤其是对于LpSolve,因为输入太难了)。如果你不能写下数学模型,你就很难用代码实现它。