How to define Recurrent?

41 Views Asked by At

I am dealing with an optimization problem with a separable objective functions, as following $$ \max\limits_{{\bf x}}\sum_{i=1}^{N}H_i(x_i)\\ \text{s.t. } 0\le x_1\le x_2 \le ...\le x_N \\ x_i\in\{0,1,2,...,D\}$$

where $H_i(x)$ is not always concave.

Even though the problem is not a convex optimization problem, considering the special structure, is there any possible algorithm or method to solve is? Dynamic programming?

1

There are 1 best solutions below

0
On

You can solve it via dynamic programming, and you can also turn it into a shortest path problem. Let $K_i$ be the maximum value that $H_i()$ attains on $\{0,1,\dots,D\}$. Maximizing $\sum_{i=1}^N H_i(x_i)$ is then equivalent to minimizing $\sum_{i=1}^N \left(K_i - H_i(x_i)\right)$.

Now consider a layered (directed) graph with $N+2$ layers, index $0,\dots,N+1$ and $(D+1)$ nodes in each layer except layers $0$ and $N+1$, which have one node each. For $1\le i\le N$, node $k$ in layer $i$ represents setting $x_i=k$. For $1\le i\le N$, an arc with cost $K_i - H_i(k)$ exists from node $k$ in layer $i$ to node $j$ in layer $i+1$ if and only if $j\ge k$. Every node $k$ in layer $N$ has an arc to the lone node (the sink) in layer $N+1$, with cost $K_N - H_N(k)$. An arc with cost 0 exists from the lone node in layer 0 (the source) to every node $k$ in layer 1.

The shortest path from the source to the sink yields the optimal solution to the original problem.