我有這樣的優化問題,我試圖根據列X中的唯一值來最大化列z,但也在約束條件下,每個X所選的唯一值總和最大的列Y小於(在此例如)23.使用LpSolve在R中設置線性規劃優化?
例如,我有這樣的樣本數據:
d=data.frame(x=c(1,1,1,2,2,2,3,3,3),y=c(9,7,5,9,7,5,9,7,5),z=c(25,20,5,20,10,5,10,5,3))
,看起來像這樣:
X Y Z
1 1 9 25
2 1 7 20
3 1 5 5
4 2 9 20
5 2 7 10
6 2 5 5
7 3 9 10
8 3 7 5
9 3 5 5
結果應該是這樣的:
X Y Z
1 1 9 25
4 2 9 20
9 3 5 5
如何在lpSolve :: lp函數中設置此問題?
你試過了什麼?你有沒有想過LP與IP? – sascha
所以基本上我已經在excel中使用解算器完成了這個工作,並且希望將它移到R.我不太關注LP或IP(他們的意思)。我發現堆棧中的其他示例展示瞭如何移動這個過程,但沒有包括如何使用picks約束的總和。 – CooperBuckeye05
您(可能)無法將其解決爲純粹的線性程序,您將需要混合整數編程(由lpsolve支持)。閱讀您要使用的包裝文檔,查看它需要的標準格式,並自行嘗試一些內容,因爲目前這種格式非常廣泛。 * picking *的性質將被表示爲二元變量:如果選擇x0,x0 = 1。只挑選三個候選人中的一個:x0 + x1 + x2 <= 1 (and > = 1如果您需要的話)。 – sascha