私は 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
議論に関連していると思われます。どんな助けでも大歓迎です。