How to efficiently compute the maximum for this class of constrained polynomials?

19 Views Asked by At

\begin{align} (p_1, p_2, \dots, p_M) = \arg\max_{(q_1,\dots, q_M)} = \sum_{i=1}^M \left\{ \sum_{j=1}^M ( a(i, j) \cdot q_{j} ) \cdot q_i+ \sum_{k=1}^Nb(i,k) \cdot q_i \right\}, \end{align} subject to \begin{align} p_i&>0 \quad \text{ for all } i, \\ p_M &= 1 - \sum_{i=1}^{M-1} p_i. \end{align} Here, the $a(i,j), b(i,k)$ are known constants and could be forced to be positive if needed. Moreover, $a(i,j)$ and $a(j,i)$ need not take the same value. I am looking to compute this with a machine and as fast as possible. How can I go about this? Good references are also appreciated, but should ideally be very specific.

1

There are 1 best solutions below

1
On

This is a quadratic programming problem. I hope this link helps.
Your version can be written as $Q^tAQ+B^tQ$, subject to $Q\geq0$ and $1^tQ=1$.
Here, A is the matrix formed by $a(i,j)$, and $B$ is the vector formed by $B_i=\sum_{k=1}^N b(i,k)$