0
私はR
で解決しようとしている線形プログラミングの問題があります。私はlpSolve
パッケージを使用しています。 lpSolveはデフォルトでprimal simplexアルゴリズムを使用して解を求めます。アルゴリズムをdual simplexに変更したいのですが?結果は2つのアルゴリズムで大きく異なります。デュアルシンプレックスアルゴリズムを使用して以下の問題を解決するのに役立つ他のパッケージがありますか?次のようにR
でlpSolveを用い二重シンプレックスでのリニアプログラミングR
library("lpSolve")
f.obj <- c(rep(1,12),rep(0,4))
f.cons <- matrix(c(1,-1,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,
0,0,1,-1,0,0,0,0,0,0,0,0,1,0,-1,0,
0,0,0,0,1,-1,0,0,0,0,0,0,1,0,0,-1,
0,0,0,0,0,0,1,-1,0,0,0,0,0,1,-1,0,
0,0,0,0,0,0,0,0,1,-1,0,0,0,1,0,-1,
0,0,0,0,0,0,0,0,0,0,1,-1,0,0,1,-1),nrow=6,byrow=T)
f.dir <- rep("=",6)
f.rhs <- c(-1.0986,1.6094,-1.0986,1.94591,1.3863,-1.7917)
g <- lp ("min", f.obj, f.cons, f.dir, f.rhs,compute.sens=TRUE)
g$solution
プライマルシンプレックスである:
0 0 0 0 0 0.91630 0.0 0.76209 0.47 0 0 0 1.60940 2.70800 0 1.79170
デュアルシンプレックス次のようにLingoのソフトウェアおよびSASを使用することである:
0 0.76214 0 0 1.23214 0 0 0 0.15415 0 0 0 0.8473 1.9459 0 1.7918
目的関数は、両方に同じですアルゴリズムは2.14839
'lpSolveAPI'を使用すると、例えば、次のようにしてシンプレックスタイプを制御できます。 'lp.control(lprec、simplextype =" dual ")' –
@ KarstenW。それは素晴らしい仕事、ありがとう。私はそれを受け入れることができるように答えとしてあなたのコメントを入れていただけますか? – forecaster