에 OPTIM 난 (Optim을 파에 대한 시작 값)를 입력 값으로 정수 벡터세트 제약 - R
my.data.var <- c(10,0.25,0.25,0.25,0.25,0.25,
10,0.25,0.25,0.25,0.25,0.25,
10,0.25,0.25,0.25,0.25,0.25,
10,0.25,0.25,0.25,0.25,0.25)
최적화 문제는 분이다있다. 문제.
에러 함수 TWO 행렬 (계산치 매트릭스 VS 감안 값 매트릭스)
- 계산 된 매트릭스는 정수 벡터 위에 사용하는 하나 사이의 값에서 DIFF의 제곱근의 합을 산출한다.
그러므로, 에러 함수, I는my.data.var.mat <- matrix(my.data.var,nrow = 4,ncol = 6,byrow = TRUE)
으로 I는 colSum(my.data.var.mat) <=1
있다는 Optim을가
sols<-optim(my.data.var,Error.func,method="L-BFGS-B",upper=c(Inf,1,1,1,1,1,Inf,1,1,1,1,1,Inf,1,1,1,1,1,Inf,1,1,1,1,1),
lower=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))
로 정의된다 도입해야하는 제약 행렬로 정수 벡터 스택
오류 함수는 다음과 같이 정의됩니다.
Error.func <- function(my.data.var){
my.data.var.mat <- matrix(my.data.var,nrow = ncol(my.data.matrix.prod),ncol = ncol(my.data.matrix.inj)+1,byrow = TRUE)
Calc.Qjk.Value <- Qjk.Cal.func(my.data.timet0,my.data.qo,my.data.matrix.time,
my.data.matrix.inj, my.data.matrix.prod,my.data.var,my.data.var.mat)
diff.values <- my.data.matrix.prod-Calc.Qjk.Value #FIND DIFFERENCE BETWEEN CAL. MATRIX AND ORIGINAL MATRIX
Error <- ((colSums ((diff.values^2), na.rm = FALSE, dims = 1))/nrow(my.data.matrix.inj))^0.5 #sum of square root of the diff
Error_total <- sum(Error,na.rm=FALSE)/ncol(my.data.matrix.prod) # total avg error
Error_total
}
my.data.matrix.prod
, 내가 매트릭스 COL 합 제약을 도입해야하는 위치
my.data.timet0, my.data.qo, my.data.matrix.time, my.data.matrix.inj
그래서, 내 질문은 어떻게입니다 :
는 데이터 집합을 감안할 때? 또는 OPTIM이 행렬 열 합계 제약 조건에서 정수 벡터를 어떻게 다르게 할 것인가?
@ ZheyuanLi : thnks. 나는 약간의 조언을 얻을 희망! – Modi
@ ZheyuanLi : "nloptr"로 내 행운을 시험해 보았습니다. 보자! – Modi
@ ZheyuanLi : 해결했습니다. Optim을 사용하는 대신 nloptr solver를 사용했습니다. 불평등 제약 조건을 허용합니다. 여기 좀 봐 .http : //stackoverflow.com/questions/37951719/multiple-inequality-constraints-minimization-with-r-npt-package – Modi