Как разорвать петлю в R после определенного времени? - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь оптимизировать функцию Шаффера с помощью методов имитации отжига и наискорейшего спуска. Я хотел бы добавить критерий завершения в цикл, который разорвал бы цикл, скажем, через 5 секунд. К сожалению, я заблудился, если предположить поместить такое условие в более сложный цикл, подобный следующему:

currIter <- 0
finished <- FALSE
x_old <- x

while(finished == FALSE){
StartT <- Sys.time()
x_new <- lineSearch(f, x_old, x_old - a*numGradient(f, x_old, 10^-6), 10)
if(currIter <= maxIter & abs(f(x_new)-f(x_old))>e & f(x_new)<f(x_old)){
  x_old <- x_new
  result$x_opt  <- x_new
  result$f_opt  <- f(x_new)
  result$x_hist <- rbind(result$x_hist, x_new)
  result$f_hist <- rbind(result$f_hist, f(x_new))
  result$iter   <- currIter
  result$tEval   <- rbind(result$tEval, Sys.time() - StartT)
}else{
  finished <- TRUE
}
currIter <- currIter + 1
}
return(result)
}

Так я могу просто поставить такое условие?

while(sys.time() < 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...