1
$\begingroup$

What is the complexity of and how to go about solving the following task?

Given $a, b \in \mathbb{R}_+^n$ and $n \ge k\in\mathbb{N}$, find

$$ x_{\min} := \arg \min_{x \in \lbrace 0,1 \rbrace^n, x^T x = k} \frac{x^Ta}{x^Tb} $$

$\endgroup$
4
  • $\begingroup$ Isn't it just $\min \frac{a_i}{b_i}$, in view of the inequality $\frac{\sum a_i}{\sum b_i} \geq \min \frac{a_i}{b_i}$? $\endgroup$
    – WhatsUp
    May 27, 2019 at 11:54
  • $\begingroup$ After further looking at your question, I notice that $k$ is actually a fixed integer... Perhaps it'll be better to emphasize it in your statement? $\endgroup$
    – WhatsUp
    May 27, 2019 at 11:56
  • $\begingroup$ Question edited accordingly $\endgroup$ May 27, 2019 at 12:03
  • 1
    $\begingroup$ The naive algorithm is 1) put $z=(\sum_{i=1}^k a_i)/(\sum_{i=1}^kb_i)$; 2) sort the indices so that $a_i-zb_i$ is non-decreasing; 3) if the sorting didn't change anything, output $z$, else go to (1); That is guaranteed to terminate after $n^2$ cycles (so the total complexity is at most $n^3\log n$) but, probably, it stops much sooner for most data. Of course, there may be much better ideas. This is just to set the level of triviality. $\endgroup$
    – fedja
    May 27, 2019 at 13:59

1 Answer 1

1
$\begingroup$

Take a look at this question: Optimization algorithm sought, and its answer by David Eppstein.

This is the way I understand it. The first part in that comes from Dinkelbach's theorem on fractional optimization. The second part is just geometry of lines in 2D, followed by a golden section search.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.