I have what would be a straightforward mixed-integer linear programming problem, except for the fact that some of the constraints are of the form $f(x_1,x_2,x_3,\ldots,x_n) < c$, where $f$ is 'take the maximum of the largest coordinate and the sum of all the smaller ones'
(defn f [& l] (let [sl (reverse (sort l))] (max (first sl) (reduce + (rest sl))))) (f 1 2 3 4 5) -> 10
In three dimensions e.g. I think I can rephrase this for e.g. $f<10$ as
(defn constraint [x,y,z] (or (and (<= x 10) (<= (+ y z) 10)) (and (<= y 10) (<= (+ x z) 10)) (and (<= z 10) (<= (+ x y) 10))))
Which is clearly the union of $3$ (or $n$) convex objects (prisms).
Is there a name for this type of constraint? Are there techniques and packages for solving these kinds of problems?