Is there some efficient method to solve the following optimization problem? If $x_i$ is in a continuous set, is there some efficient method? Thanks.
$\min$ $x_1+x_2+\dots+x_n$
subject to:
$a_1\log x_1 +a_2\log x_2 + \dots +a_n\log x_n \geq c$;
$x_i \in \{b_1,b_2,\dots, b_m\}$, where $b_i\in \mathbb{R}^+$
I think this can be formulated as a linear MIP model. Not sure if that counts as efficient.
First we introduce binary variables
$$ y_{i,j} = \begin{cases} 1 & \text{if $x_i=b_j$}\\ 0 & \text{otherwise}\end{cases}$$
Then we can formulate:
$$\begin{align} \min & \sum_i x_i \\ & x_i = \sum_j y_{i,j} b_j\\ & \mathit{logx}_i = \sum_j y_{i,j} \log(b_j)\\ & \sum_j y_{i,j} = 1 && \forall i\\ & \sum_i a_i \mathit{logx}_i \ge c \\ & y_{i,j} \in \{0,1\} \\ & x_i, \mathit{logx}_i \in \mathbb{R} \end{align}$$
If you want to save a few variables and constraints, you can substitute out the variable $\mathit{logx}$. (I am usually not so stingy in that respect). The more compact model would look like:
$$\begin{align} \min & \sum_i x_i \\ & x_i = \sum_j y_{i,j} b_j\\ & \sum_j y_{i,j} = 1 && \forall i\\ & \sum_{i,j} a_i \log(b_j)\> y_{i,j} \ge c \\ & y_{i,j} \in \{0,1\} \\ & x_i \in \mathbb{R} \end{align}$$
We can even substitute out $x_i$, but you would need to recover them afterwards from the optimal values $y_{i,j}^*$
I am quite sure this will do much better than complete enumeration. Throw this at a high-performance MIP solver on a parallel machine and you can solve large models hopefully quickly. On my laptop with random data: for a problem with $n=m=100$ just a few seconds (of course different data may give different timings).