Mixed Integer Non Linear Programming (MINLP) is a challenging class of Mathematical Programming (MP) problems where decision variables might be continuous or integer and the objective function and constraints are expressed as non linear functions of such variables. Modern general-purpose MINLP solvers shown impressive computational performance improvements on special MINLPs, for example when g(x) are convex or quadratic. However, when one (or more) function "complex", the MINLP can easily become practically intractable. A standard approach is to replace the complex functions with a surrogate approximation. Several different approaches have been proposed in the literature. Some of them are specific for some kind of non linear functions, for example univariate or bivariate ones. However, these methods cannot easily generalize to more general non linear functions. More recently, machine learning methods, which model could be represented as a mixed integer linear program. However, it is difficult to impose some properties of the function, when expert knowledge on those is available. To overcome such limitations, we propose a new method, based on Mixed-integer Smoothing
Surrogate Optimization with Constraints (MiSSOC). Our approach is composed of two steps: 1) Surrogate approximations are found by fitting a function that is the sum of univariate B-splines. The fitting is performed by solving a MP model where B-spline basis functions are fixed and their weight are found; 2) The resulting surrogate MINLP, obtained by replacing the complex functions with their surrogate approximations, is solved with a tailored solver called Sequential Convex-MINLP (SC-MINLP). We present promising computational results on some instances of the MINLPLib and a real-world application, the hydro unit commitment problem.