솔루션에 각 변수에 고유 한 값이 있어야하는 문제가 있습니다. 예를 들어, 24 명의 전투기 조종사는 하루 중 서로 다른 시간에 출발해야합니다. 따라서 솔루션에는 순서에 대한 몇 가지 제약 조건에 따라 몇 가지 순서로 정수 1:24가 포함되어야합니다.LPSolve에서 모든 다른 제약 조건을 어떻게 구현할 수 있습니까?
LPSolve에서 특별 주문 세트를 사용해 보았지만 사용법을 이해할 수 없습니다. 어쨌든, 나의 시련은 모두 실행하는데 너무 오랜 시간이 걸렸습니다. 나는 이것을 올바르게 설정하고 있다고 믿을 수 없습니다. 나는 1000 분의 1 시간에 그것을 무력으로 해결할 수 있었다.
LPSolve/정수 프로그래밍을 사용하여 인접한 고유 한 정수를 최적화하는 것이 가능합니까? 그렇다면 R (또는 Python)에서 x1! = x2! = x3! = xN을 표현하기위한 제약 조건을 추가하는 가장 좋은 방법은 무엇입니까? 그렇지 않은 경우 이러한 종류의 최적화를 위해 어떤 알고리즘을 조사해야합니까? 여기
는 지금까지 가지고 코드 :library('lpSolveAPI')
people <- c('Joe', 'Bob', 'Dave', 'Mike')
number_of_people = length(people)
model <- make.lp(0, number_of_people)
set.type(model, 1:number_of_people, 'integer')
set.bounds(model, lower=rep(1, number_of_people),
upper=rep(number_of_people, number_of_people))
constraint_names <- c('Bob < Mike')
add.constraint(model, c(0, 1, 0, -1), '<=', -0.1)
constraint_names <- append(constraint_names, 'Mike > Joe')
add.constraint(model, c(-1, 0, 0, 1), '>=', 0.1)
dimnames(model) <- list(constraint_names, people)
#not sure about this
#add.SOS(model, 'different positions', type=2,
#priority=1,columns=1:number_of_people, weights=rep(1, number_of_people))
set.objfn(model, rep(1, length(people)))
lp.control(model, sense='min')
write.lp(model,'model.lp',type='lp')
solve(model)
get.variables(model)