lpSolve를 사용하여 R에서 lp.transport로 선형 전송 문제 해결

운송 문제는 선형 프로그래밍 수업에서 가르치는 고전적인 문제 중 하나입니다. 간단히 말해서 문제는 특정 수요를 가진 특정 고객 세트가 특정 용량을 가진 다른 공급 업체 세트 ( "공급")에 의해 충족되어야한다는 것입니다. 운송 문제에 대한 자세한 설명은 다음과 같습니다. 이것을 읽으십시오 : https://econweb.ucsd.edu/~jsobel/172aw02/notes8.pdf.
R에서 사용할 수있는 lpSolve 패키지는 운송 문제를 모델링하고 해결하는 데 사용할 수 있습니다.
어떻게하는지 보여 드리겠습니다. 3 개의 공급자가 4 명의 고객을 만족시키려는 문제를 정의합니다. 공급 업체는 각각 100, 300, 400 개의 용량을 가지고 있습니다. 고객은 각각 100, 100, 200 및 400을 요구합니다. 또한 공급자 j가 고객 i를 공급하는 비용은 가능한 모든 조합에 대해 정의되고 비용 매트릭스에 명시됩니다.
이 정보를 사용하여 R의 lpSolve 패키지로 운송 문제를 모델링하고 해결할 수 있습니다.
먼저 모델링 파트를 준비합니다.
library(lpSolve)

# 비용 매트릭스 지정
cost.mat <- matrix(nrow=3,ncol=4)
cost.mat[1,] <- 1:4
cost.mat[2,] <- 4:1
cost.mat[3,] <- c(1,4,3,2)

# 이것은 최소화 문제입니다
direction = "min"

# 용량은 초과 할 수 없습니다.
row.signs <- rep("<=",3)
row.rhs <- c(100,300,400)

# 수요가 충족되어야 함
col.signs <- rep(">=",4)
col.rhs <- c(100,100,200,400)
그런 다음 문제를 해결합니다.
# lp 객체 해결 및 할당
solution <- lp.transport(cost.mat = cost.mat,
                         direction = direction,
                         row.signs = row.signs,
                         row.rhs = row.rhs,
                         col.signs = col.signs,
                         col.rhs = col.rhs)
"최적"비용을 검토해 보겠습니다.
solution
## Success: the objective function is 1400
운송 문제에 대한 최적의 솔루션을 검토해 보겠습니다 (즉,이 문제에 대한 최적의 재료 흐름).
solution$solution
##      [,1] [,2] [,3] [,4]
## [1,]    0  100    0    0
## [2,]    0    0  200  100
## [3,]  100    0    0  300
할당 자 문제는 또 다른 고전적인 문제이며 여기에서 R에서 어떻게 해결했는지 확인할 수 있습니다. 비용 최소화 생산 일정-lp.assign을 사용하여 lpSolve로 할당 문제 해결

Leave a Reply

답글 남기기

이메일 주소는 공개되지 않습니다.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

Close

메타