2016-10-11 17 views
0

これは実際にどのように動作するのか混乱します。私はCPLEXのバイナリが何を意味するのか分かりません。問題は次のとおりです。

製造マネージャーは、次の4ヶ月間の購入コスト(原材料と保管費)を最小限に抑えることを担当しています。 表3.4には、原材料の1単位のコストと、毎月の原材料の要求があります。保管コストは、月末に保管された各ユニットの2 e に等しくなります。所定の月に購入された原料の任意の単位 は、同じ月の需要をカバーするために使用することができますか、または来る月の需要をカバーするために格納されます。 月1日の始まりには在庫がなく、任意の月の最小在庫量は ではありません。 enter image description here
次の4ヶ月間、原材料の供給者は 特別提供を行いました:任意の月に200以上購入したすべてのユニットは に2 eの割引があります。たとえば、350台の購入が の場合、最初の200台はそれぞれ12台で販売され、 は10台ごとに150台が販売されます。 1.総購買コストCPLEXからR言語への変換

ソリューション最小限 線形プログラミングモデルの決定変数(定義された変数の各 セットの簡単な定義を提供)、目的関数と制約条件を定義します
enter image description here


を CPLEXコード

Minimize 
cost : 12 q1 + 14 q2 + 16 q3 + 18 q4 + 10 r1 + 12 r2 + 14 r3 + 16 
      r4 + 2 s1 + 2 s2 + 2 s3 + 2 s4 
Subject To 
    d1 : q1 + r1 - s1 = 150 
    d2 : s1 + q2 + r2 - s2 = 200 
    d3 : s2 + q3 + r3 - s3 = 250 
    d4 : s3 + q4 + r4 - s4 = 150 
    l1 : q1 - 200 b1 >= 0 
    l2 : q2 - 200 b2 >= 0 
    l3 : q3 - 200 b3 >= 0 
    l4 : q4 - 200 b4 >= 0 
    m1 : r1 - 10000 b1 <= 0 
    m2 : r2 - 10000 b2 <= 0 
    m3 : r3 - 10000 b3 <= 0 
    m4 : r4 - 10000 b4 <= 0 
Bounds 
    0 <= q1 <= 200 
    0 <= q2 <= 200 
    0 <= q3 <= 200 
    0 <= q4 <= 200 
Binary 
    b1 
    b2 
    b3 
    b4 
End 


私のコード:

library (lpSolve) 
#defining parameters 
obj.fun <- c(12 , 14, 16, 18, 10, 12, 14, 2, 2, 2, 2) 
constr <- matrix (c(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 
     0, 1, 0, 0, 0,1,0,0,1,-1,0,0, 
     0,0,1,0,0,0,1,0,0,1,-1,0 
     0,0,0,4,0,0,0,1,0,0,1,-1) , ncol = 4 , byrow =TRUE) 
constr.dir <- c("=","=", "=", "=") 
rhs <- c(150 , 200 , 250, 150) 
#solving model 
prod.sol <- lp ("max", obj.fun , constr , constr.dir , rhs ,compute.sens = TRUE) 
#accessing to R output 
prod.sol$obj.val 
prod.sol$solution 
prod.sol$duals 
#sensibility analysis results 
prod.sol$duals.from 
prod.sol$duals.to 
prod.sol$sens.coef.from 
prod.sol$sens.coef.to 

答えて

2

バイナリはB1、B2、B3、B4であることを意味している0または1のいずれか、B1 == 1は、あなたが10000 B1を持っている場合、それはあなたが買うことを意味して10000 * 1 = 10000最初の1ヶ月の原材料のピースと、2、3または4月の任意の原材料を購入する解決策から、

英語では、バイナリ変数を使用して、完全にオフまたは完全にオンの変数を表現します

ソリューションの状態として、「1月のすべてのユニットを購入することをお勧めします」

そして、どのようにその制約を作成しますか?あなたはそれが あなたの先生はあなたが使用しているCPLEXラッパーに応じて、バイナリ変数

に部分的に依存している混合整数計画を、学ぶためにあなたを準備中さ

が見バイナリ変数

を使用して行う

cplexAPIまたはRcplex 、およびバイナリ変数の検索

関連する問題