RMPSolveH {RMPSH} | R Documentation |
Recursive Modified Direct Search on Hyper-rectangle
Description
'RMPSolveH' can be Used to Minimize any Non-Convex Blackbox Function where Each Parameter has an Upper Bound and Lower Bound.
Usage
RMPSolveH(
x0,
func,
lb,
ub,
rho_1 = 2,
rho_2 = 2,
phi = 1e-06,
no_runs = 1000,
max_iter = 10000,
s_init = 2,
tol_fun = 1e-06,
tol_fun_2 = 1e-20,
max_time = 36000,
print_output = FALSE
)
Arguments
x0 |
Vector of Initial Guess provided by User. |
func |
The Function to be Optimized, should be provided by the User. |
lb |
Vector of Lower Bounds, of same Dimension as 'x0'. |
ub |
Vector of Upper Bound, of same Dimension as 'x0' |
rho_1 |
'Step Decay Rate' for the First Run Only (Default is 2). |
rho_2 |
'Step Decay Rate' for Second Run Onwards (Default is 2). |
phi |
Lower Bound for 'Global Step Size'. Default value is |
no_runs |
Max Number of 'Runs'. Default Value is 1000. |
max_iter |
Max Number of Iterations in each 'Run'. Default Value is 10000. |
s_init |
Initial 'Global Step Size'. Default Value is 2. It must be set Less than or Equal to 2. |
tol_fun |
Termination Tolerance on when to decrease the 'Global Step Size'. Default Value is |
tol_fun_2 |
Termination Tolerance on the Difference of Norms of solution points in two Consecutive Runs. Default Value is |
max_time |
Time Alloted (In Seconds) for Execution of RMPSH. Default is 36000 secs (10 Hours). |
print_output |
Binary Command to Print Optimized Value of Objective Function after Each Iteration. Default is set as FALSE. |
Value
The Optimal Solution Point.
References
Das, Priyam
"Black-box optimization on hyper-rectangle using Recursive Modified Pattern Search and application to ROC-based Classification Problem"
(available at 'arXiv http://arxiv.org/abs/1604.08616).
Examples
g <- function(y)
return(-20 * exp(-0.2 * sqrt(0.5 * (y[1] ^ 2 + y[2] ^ 2))) -
exp(0.5 * (cos(2 * pi * y[1]) + cos(2 * pi * y[2]))) + exp(1) + 20)
starting_point <- rep(1, 10)
g(starting_point)
solution <- RMPSolveH(starting_point, g, rep(-33, 10), rep(33, 10))
g(solution)
RMPSolveH(c(2, 4, 6, 2, 1), g, rep(-3, 5), rep(23, 5), print_output = TRUE)
# Will Print the Updates after Each Iteration
g <- function(y)
return(sum(y ^ 2))
RMPSolveH(rep(2.3, 100),
g,
rep(-11, 100),
rep(13, 100),
max_time = 2,
print = 1)
# Will Exit and Return Result after 2 Seconds