1
여러 평등과 불평등에 선형 문제가 있습니다. 그것은 해결책이 부족합니다. 나는 유전 알고리즘의 초기 모집단을 개선하기 위해이 시스템의 무수한 해법을 찾고 싶다.CSP (Contraints Satisfaction Probes) R
누구나 R을 사용하는 방법에 대한 아이디어가 있습니까? 시간에 대한
들으,
찰스
여러 평등과 불평등에 선형 문제가 있습니다. 그것은 해결책이 부족합니다. 나는 유전 알고리즘의 초기 모집단을 개선하기 위해이 시스템의 무수한 해법을 찾고 싶다.CSP (Contraints Satisfaction Probes) R
누구나 R을 사용하는 방법에 대한 아이디어가 있습니까? 시간에 대한
들으,
찰스
이 최적화 기능 중 일부는 당신이 출발점 지정할 수 있습니다 : 임의의 시작 지점을 선택하여 을, 당신은 다른 솔루션이 있어야합니다.
또한 문제를 수정할 수도 있습니다. 목적 함수에서 임의의 지점까지 거리를 추가하십시오. 당신은 선형 문제 이 있고 유클리드 거리를 사용하는 경우, 문제가 차되고 해결 될 수있다 : 그것은 나를 함수로 제약 조건을 지정할 수 있기 때문에
library(Rsolnp)
get_one_point <- function(...) {
r <- NULL
while(is.null(r) || r$convergence != 0) {
x <- rnorm(2)
r <- solnp(
rnorm(2),
# Minimize the distance to some point
function(u) sum((u-x)^2),
# Constraints we want to satisfy
ineqfun = function(u) c(sum(u^2), u[2] - u[1]^2),
ineqLB = c(1,0),
ineqUB = c(2,5)
)
}
r$pars
}
# Plot the points and the constraints
library(parallel) # Very slow: run the optimizations in parallel
x <- mclapply(1:10, get_one_point, mc.cores=detectCores())
x <- do.call(rbind, x)
plot(x,
xlim=c(-2,2), ylim=c(0,2),
pch=15, cex=1.5, asp=1, las=1,
xlab="", ylab=""
)
curve(x^2, add=TRUE)
curve(sqrt(1-x^2), add=TRUE)
curve(2*sqrt(1-x^2/4), add=TRUE)
는 난 단지
Rsolnp
사용
quadprog
패키지의
solve.QP
입니다.
또한 L^1 표준 (즉, 절대 값)을 사용할 수도 있습니다. 그러면 문제는 선형 문제로 재 형성 될 수 있습니다.
사실 내 목표는 평등과 불평등 제약 조건이있는 비선형 및 비 convexe입니다. Rsolnp의 gosolnp()를 사용하여 문제를 해결했습니다. 그러나 나는 최적의 해결책 즉, 내 fonction의 로컬 미니 마를 발견하고 너무 많은 시간이 걸립니다 (10 분). 왜 지금 genoud()를 사용하고 있는가? 그러나 필요한 시간은 ....입니다. 그래서, 나는 초기 수용력을 향상 시키려고 노력하고 있습니다 ... – Charles
당신의 제약 조건이 비교적 단순하다면, 목적 함수를 임의의 지점까지의 거리로 대체 할 수 있습니다 : 그것은 실현 가능한 솔루션을 제공 할 것입니다. –