For a engineering design application we were offered a 4D lookup table that predicts
Of course rather than “lookup” it is often better to do interpolation, so values in between are accepted. This still looks pretty bad. Our model was a MIP and using SOS variables we can easily do 1D and with some effort do 2D. For more dimensions, things are really difficult.
Luckily it turned out that we know the values of x1,x2 and x3 before we start the optimization model. I.e. we can do a 3D Interpolation in GAMS, followed by a 1D interpolation with SOS2 variables in Cplex.
For the 3D interpolation we used a simple IDW (Inverse Distance Weighting) scheme (explained in: http://en.wikipedia.org/wiki/Inverse_distance_weighting). We do this a number of times so we can estimate a good set of control points for the remaining 1D interpolation. This was done by a piecewise linear function, as explained here: http://yetanothermathprogrammingconsultant.blogspot.com/2009/06/gams-piecewise-linear-functions-with.html.