lpsolve
패키지를 사용하여 R
에서 선형 프로그래밍 문제를 해결하려고합니다. 내가 무엇을 경우, 작은 문제에 대해 수동으로이 문제를 해결 할 수있어lpsolve를 사용한 R의 선형 프로그래밍
library("lpSolve")
a <- matrix(c(1,2,5,
1/2,1,3,
1/5,1/3,1),nrow=3,byrow=T)
#
f.obj <- c(1,0,0,0)
f.con <- matrix (c(
1,1,-a[1,2],0, #Contraint 1 for a12
1,-1,a[1,2],0, #Contraint 2 for a12
1,1,0,-a[1,3], #Contraint 1 for a13
1,-1,0,a[1,3], #Contraint 2 for a13
1,0,1,-a[2,3], #Contraint 1 for a23
1,0,-1,a[2,3], #Contraint 2 for a23
0,1,1,1, #Contraint 3
0,1,0,0, #Constraint 4
0,0,1,0, #Constraint 4
0,0,0,1 #Constraint 4
), nrow=10, byrow=TRUE)
f.dir <- c(rep("<=",6), "=",rep(">",3))
f.rhs <- c(rep(1,6),1,rep(0,3))
g <- lp ("max", f.obj, f.con, f.dir, f.rhs)
g$solution
:
가 재현 예를 들어 R 샘플입니다 : 여기
문제입니다 나는7 X 7
또는
n x n
행렬
a
을 가졌습니다.
1
과
2
이라는 제약 조건을 어떻게 지정하겠습니까? 특히 [i, j]와 관련된 제약 조건을 정의하는 데 어려움을 겪고 있습니까?
a = matrix(
c(1,4,9,6,6,5,5,
1/4,1,7,5,5,3,4,
1/9,1/7,1,1/5,1/5,1/7,1/5,
1/6,1/5,5,1,1,1/3,1/3,
1/6,1/5,5,1,1,1/3,1/3,
1/5,1/3,7,3,3,1,2,
1/5,1/4,5,3,3,1/2,1
),nrow = 7,byrow =T)
상기 매트릭스 솔루션은 어떤 도움이 크게 감상 할 0.986 0.501 0.160 0.043 0.060 0.060 0.1 0.075
이다.
안녕, 난 당신이 f.con의 정의에서 마지막 줄이 제약 사를 대표하지 생각 : 0,1,1,1가 + w_2 + w_3 W_1에 해당합니다. 대신 0,1,0,0이어야합니다. [w_1> 0] \\ 0,0,1,0 [w_2> 0] \\ 0,0,0,1 [w_3> 0] – Cettt
안녕하세요 @Cettt 네, 제 조건이 잘못되었습니다, 그것을 지적 해 주셔서 감사합니다. – forecaster