이전 게시물에서는 lpSolve를 사용하여 R에서 또는 SciPy.optimize를 사용하여 Python에서 선형 프로그램을 해결하는 방법을 설명했습니다. 이 코딩 예제에서는 FuzzyLP 패키지를 사용하여 간단한 선형 최적화를 수행하는 방법을 보여 드리고자합니다.
FuzzyLP는 “퍼지”선형 프로그래밍, 즉 불확실한 선형 최적화를위한 패키지입니다. 다음 포스트에서는 R에서 FuzzyLP를 사용하여 퍼지 선형 프로그래밍을 수행하는 방법을 보여줍니다.이 포스트는 표준 단순 알고리즘을 사용하여 해결할 수있는 간단한 선형 프로그램에 중점을 둡니다.
해결해야 할 문제는 스칼라 구문에서 아래에 설명되어 있습니다.
이 문제는 벡터 매트릭스 구문으로, 즉 다음 형식으로 설명하여 해결할 수 있습니다.
c는 목적 함수의 계수 벡터입니다. x는 최적화 변수를 포함하는 벡터입니다. A는 선형 제약 조건의 계수 행렬이고 b는 제약 조건 값을 포함하는 벡터입니다. 아래의 코딩 예에서 이러한 벡터와 행렬은 R로 정의되며 문제는 FuzzyLP 패키지에 포함 된 함수 인 crispLP를 사용하여 모델링 및 해결됩니다. crispLP는 표준 심플 렉스 알고리즘을 사용하여 문제를 해결합니다.
#install.packages("FuzzyLP")
library(FuzzyLP)
# 당면한 문제를 설명하는 벡터와 행렬을 정의
c <- c(3,4)
A <- matrix(c(1,1),nrow=1)
dir <- c("<=")
b <- c(1)
# FuzzyLP의 crispLP를 사용하여 문제를 해결하는 단계; 최대화 문제이므로 "최대"는 참이어야합니다.
solution <- crispLP(objective = c,
A = A,
dir = dir,
b = b,
maximum = TRUE)
# 출력 솔루션
solution
## x1 x2 objective
## [1,] 0 1 4
최적화 및 시뮬레이션을 전문으로하는 산업 엔지니어 (R, Python, SQL, VBA)
Leave a Reply