I have a cost function: $f(x,y,z) \rightarrow \mathbb{R}$
- it is very expensive to evaluate
- $x,y,z \in \mathbb{Z}$
- 0 < x < 10
- 0 < y < 30
- 0 < z < 100
- I thought it was convex, not sure now based on @Brian's commentary.
- $f$ can only be evaluated at integers ( I pondered trying to evaluate at real's but it would be fairly insanely difficult to try & the result would be totally bogus).
- $f$ is smooth but only at the integer values. So the gradient could only be computed using re-evaluating $f$ at intervals - but again that's really expensive.
I'm looking for suggestions on algorithms, and libraries ( C++ preferred, C acceptable ).
I've spent a couple of days trying to brush up on the topics, but its pretty dense. I've been looking at COIN-OR, specifically OSI, but I can't seem to figure out how to formulate my problem into the API. I've also looked at EasyLocal++, but haven't really dug in yet.