I need to determine the global optimum results of this objective function. I define the problem by minimizing the squared difference as represented in function $f(q_1,q_2,\alpha_1,\alpha_2)$
The objective function: $$f(q_1,q_2,\alpha_1,\alpha_2)= \frac{1}{5}\sum\limits_{i = 1}^{5} (b_{i} - b_{mod_{i}})^2$$
With bounds:
lower = c(1000, 1000, 0.8, 1.4) upper = c(1e10, 1e35, 1.5, 15.0)
where, $$b_{mod,i} = q_{1} \lambda_i^{-\alpha_1} + q_{2} \lambda_i^{-\alpha_2}$$
and $\lambda_i = c(375, 470, 528, 625, 880)$ are the wavelengths of 5 channels and $b_i = c(228,124,98,67,44)$ represents the light absorption measurement corresponding to each wavelength.
Here $b_i$ is a measured value from a device and $b_{mod,i}$ is the modelled value achieved by the optimization process.
Approach 1: Excel Solver
In the Excel solver, I used the non-linear solver function with the inbuilt "Evolutionary" algorithm. The optimized values $q_1,\alpha_1,q_2,\alpha_2$ seems reasonable.
Approach 2: in R using DEoptim
I found that the Evolutionary algorithm in Excel is based on the Differential Evolutionary algorithm and in R there is a package called DEoptim
(Link). Also, I need to run the optimization process for a large data set where each timestamp of data represents $b$. However, DEoptim
results were found to be very close to the upper bound and often are very sensitive to the bounds provided.
Queries
I am trying to use this technique in R to solve a physical problem.
- Is
DEoptim
a good choice for the defined problem? - Are there any other optimization techniques to solve the present problem?