lpSolveAPI阵容优化

时间:2018-08-20 01:16:59

标签: r

我正在使用R包lpSolveAPI对幻想足球进行阵容优化。

现在,我能够根据不同的限制条件(最低和最高薪水,位置(1QB,2RB,3WR等))生成阵容。但是我希望能够生成多个阵容并手动设置某些球员的曝光率。假设我要创建100个阵容,我希望Tom Brady出现在整个阵容中至少20%,最多40%。我希望亚伦·罗杰斯(Aaron Rodgers)出现在总阵容中至少20%,最多50%。在不违反位置限制(仅允许1个QB)的情况下该怎么做?

一些代码来创建一个阵容:

 qb <- ifelse(train$pos1 == "QB", 1, 0)
        wr <- ifelse(train$pos1 == "WR", 1, 0)
        te <- ifelse(train$pos1 == "TE", 1, 0)
        rb <- ifelse(train$pos1 == "RB", 1, 0)
        dst <- ifelse(train$pos1 == "DST", 1, 0)


        lp <- make.lp(0, nrow(train))

        set.objfn(lp, train$projected_pts)

        set.type(lp, seq(1, nrow(train)), type = c("binary"))


        add.constraint(lp, qb, "=", 1)
        add.constraint(lp, wr, ">=", 3)
        add.constraint(lp, wr, "<=", 4)
        add.constraint(lp, rb, ">=", 2)
        add.constraint(lp, rb, "<=", 3)
        add.constraint(lp, te, ">=", 1)
        add.constraint(lp, te, "<=", 2)
        add.constraint(lp, rb+te+wr, "=", 7)
        add.constraint(lp, dst, "=", 1)

        add.constraint(lp, train$salary, "<=", cap_max)
        add.constraint(lp, train$salary, ">=", cap_min)

0 个答案:

没有答案