If well understood, w1, w2, w3, and Z are some continuous variables in your mathematical model, while k is a constant. If the functions f1, f2, f3 involved in constraint #2 are continuous and nonlinear, then the only way to proceed to solve the problem by using MILP techniques and solvers is to use piecewise linear approximations of these functions. There is a lot of literature on this. For example, you can have a look at this webpage for a short introduction.
The main drawbacks in such an approach is that:
- Your model is only an approximation of your original problem.
- In many cases, piecewise linear approximations force you to introduce binary variables that make the resulting mixed-integer linear model much harder to solve than (purely continuous) linear models.
Roughly speaking, the stronger the nonlinearities, the more linear pieces you need for the approximation, the more you have additional binary variables to deal with the pieces, the harder is the resulting MILP model to solve.
There exist some techniques and solvers, like LocalSolver, that allow tackling directly the original nonlinear formulation. LocalSolver uses piecewise linear approximations under the hood, but also some nonlinear optimization methods. With LocalSolver, you can give your three nonlinear functions f1, f2, f3 directly as arrays in your optimization model, or even as external functions (for example, if they can be simulated by some codes).
Note: If your problem has only the 4 variables w1, w2, w3, Z to decide, then you can easily solve your problem by using a dedicated derivative-free heuristic as pointed out by prubin. For an example, check our answer to a similar post previously discussed on this forum.
Disclosure: LocalSolver is our commercial software product.