3

私は R を初めて使用し、解決したい特定のファンタジー スポーツ チームの最適化問題を抱えています。他の投稿で同様の問題に lpSolve を使用しているのを見たことがありますが、コードに頭を悩ませているようには見えません。以下のデータテーブルの例。すべてのプレーヤーはチームに所属し、特定の役割を果たし、給与を受け取り、ゲームごとに平均ポイントを獲得しています。必要な制約は、正確に 8 人のプレーヤーが必要です。1 つのチームから 3 人を超える選手を出場させることはできません。役割ごとに少なくとも 1 人のプレイヤー (5 人) が必要です。また、累積給与は 10,000 ドルを超えてはなりません。

Team    Player   Role      Avgpts    Salary
Bears   A        T         22        930
Bears   B        M         19        900
Bears   C        B         30        1300
Bears   D        J         25        970
Bears   E        S         20        910
Jets    F        T         21        920
Jets    G        M         26        980
[...]   

Rでは、次のように記述します

> obj = DF$AVGPTS
> con = rbind(t(model.matrix(~ Role + 0, DF)), rep(1,nrow(DF)), DF$Salary)
> dir = c(">=",">=",">=",">=",">=","==","<=")
> rhs = c(1,1,1,1,1,8,10000)
> result = lp("max", obj, con, dir, rhs, all.bin = TRUE)

このコードは、1 つのチームから 3 人までのプレイヤーが参加できるという制限なしに、最適なファンタジー チームを作成するのにうまく機能します。これが私が立ち往生しているところであり、それがcon議論に関連していると思われます。どんな助けでも大歓迎です。

4

1 に答える 1