# Maximising the utility when I have a large number of discrete decisions mixed with continuous decisions

I have an optimisation problem which is potentially quite tricky.

Consider the problem of allocating a discrete number of resources (in my case, they are spare mechanical components for a large engineering project).

Suppose all my resources are stored in warehouse. My warehouse can only store so many components so I need to pick how I divide my warehouse up: I need to pick the maximum number of each component to store in the warehouse ($$9$$ discrete numbers), call these $$s_i \in \mathbb{N}$$, $$i = 1, 2, \ldots, 9$$.

Over time, the spare components deplete. I can buy in more components, but I need to pick when to order more spares. I do this when the number of spares of type $$i$$ reaches $$d_is_i$$, (or $$100d_i \%$$ of $$s_i$$) $$0. Here I need to pick the continuous parameters $$d_i$$.

I have a stochastic simulation which predicts the performance of the project given $$(s, d)$$. The stochastic simulation is quite expensive to compute, approx $$5$$ mins for $$1$$ run. The results of this stochastic simulation feed into a utility function which I need to optimise (or rather maximise the expected utility $$U(\cdot)$$ w.r.t. $$(s,d)$$)

The problem here is that I need to maximise $$U$$ with respect to a mixture of continuous and discrete parameters, there is also the problem that the simnulator is expensive but I plan on using a Gaussian Process surrogate to get around that issue. There are around $$10^{34}$$ combinations for the discrete set of parameters so brute force will not work here!

My question is: What methods are there for 'mixed' optimisation problems? What are the pros and cons of each?

• Have you already looked into mixed integer programming? TO me it reads like a fine fit for a LP/IP model. – emiru Nov 26 '20 at 14:15
• Never heard of mixed integer programming so I will look into it - thanks! – jcken Nov 26 '20 at 17:16
• @emiru I've had a look at MIP and I'm not entirely sure if it will work? My objective function isn't necessarily quadratic or linear – jcken Nov 27 '20 at 8:47
• try to make it linear but transforming your objective function. If you cannot then that's where "separable programming" comes in: model you non linear function as piecewise linear – emiru Nov 27 '20 at 13:55