I believe this would be an interesting problem.
I have a blackbox function which can take 2-60 input variables $(X_1,X_2,...X_n)$ which are to be optimized. I'm calling this objective function as a blackbox function because it's parameters consists of the input variables $(X_1,X_2,...X_n)$ and variables from a simulation output $(Y_1,Y_2,...Y_n)$.These simulation output variables $(Y_1,Y_2,...Y_n)$ takes the input variables $(X_1,X_2,...X_n)$ as inputs for their simulation. Each variable in $(Y_1,Y_2,...Y_n)$ can be represented as a function of all $X_i$'s.
i.e. $Y_i = N(X_1,X_2,...X_n)$.
Where N represents a network being simulated.
Both $Xi$'s and $Yi$'s have variable bounds.
My optimization problem can be formulated as :
Objective:
Minimize $\sum_{i=0}^n (A_iX_i+B_iX_iY_i)$
Constraints:
- $\sum_{i=0}^n X_i =Const$
- $X_{imin}<=X_i<=X_{imax}$
- $0<=Y_i<=Y_{imax}$
- $0<=X_iY_i<=(X_iY_i)_{max}$
$A_i$'s and $B_i$'s are constants.
Further information:
Each simulation might takes 3-20 sec depending of the complexity of the network and number of input variables $(X_i)$
The objective function is nonlinear for sure but other characteristics are unknown (Uni-modal or multi-modal, smooth or non-smooth, convex or non convex, noisy or non-noisy)
One good news is that I have an initial feasible point $X0=(X_1,X_2...X_n)$
- We can also treat the $X_i$'s as integers. This also means that the constant on the equality constraint $(X_1+X_2+...X_n=Const)$ can also be treated as an integer by rounding the decimal to the nearest integer.(I don't know if it helps). Whereas $A_i$'s and $B_i$'s are positive real numbers.
My need:
1.Choice of optimization algorithm?
2.A suitable open source solver in python that has strong computational power.
So far what I've come across:
With my search for a solution to my needs, I have most often come across SURROGATE MODELLING, BAYESIAN APPROACH; Derivative FREE METHODS, EVOLUTION ALGORITHMS
Solvers for Surrogate Modelling PYSOT; RBFOpt from COIN-OR ;
- Solvers for Bayesian approach BayesOpt,hyperopt;GPyOpt; fmfn
- Solvers for Derivative free blackbox optimization methods yabox
Most of the above methods don't accept equality constraints which is my main concern.
My question:
My question is basically to satisfy my needs.
- Is there a suitable algorithm to solve my problem? If yes, suggest some free python solvers.
Also welcome:
Any new ideas or suggestions to solve such a problem are also welcome. Various suggestions on how I could tailor my problem to place it in a suitable class of problems and then applying a suitable solver are also welcome.
I really appreciate your time. Thanks :-)