Algorithm: maximize sum of increasing functions

Click For Summary
SUMMARY

The discussion centers on finding an algorithm to maximize the sum of increasing functions, specifically $\sum_{i=1}^m f_i(n_i)$, under the constraint $\sum_{i=1}^m n_i \le N$, where $N$ is typically around 500. David, the original poster, notes that while the problem can be solved quickly for two functions using exhaustive search, it becomes more complex for three or more functions. The Downhill Simplex method, also known as the Nelder-Mead or Amoeba method, is suggested as a potential solution for this optimization problem.

PREREQUISITES
  • Understanding of increasing functions and their properties
  • Familiarity with optimization algorithms, specifically the Downhill Simplex method
  • Knowledge of constraints in optimization problems
  • Basic mathematical skills for handling sums and inequalities
NEXT STEPS
  • Research the Downhill Simplex method (Nelder-Mead) for optimization
  • Explore heuristic methods for solving complex optimization problems
  • Study integer programming techniques for constrained optimization
  • Learn about other optimization algorithms suitable for multi-variable functions
USEFUL FOR

Mathematicians, data scientists, and software developers involved in optimization problems, particularly those working with increasing functions and constrained resources.

Pereskia
Messages
15
Reaction score
2
Hi!

(Not sure which forum to pick for this question. This looked like the best one. I apologies if it is not)

I have a number of functions (say m functions) with integer domain. All functions are increasing. (Increasing in the sense not decreasing, $f(n+1) \ge f(n)$.) I want an algorithm to find $n_i$ for $1 \le i \le m$ such that $\sum_i^m n_i \le N$ that maximizes $\sum_i^m f(n_i)$.

$m$ is usually small (2 or 3) but can be larger as well and $m$ = 2 can be solved reasonably fast by exhaustive search, $m\ge3$ takes more time. Typically $N\approx 500$.

Is there any known algorithm?

Regards
David
 
Mathematics news on Phys.org
Pereskia said:
Hi!

(Not sure which forum to pick for this question. This looked like the best one. I apologies if it is not)

I have a number of functions (say m functions) with integer domain. All functions are increasing. (Increasing in the sense not decreasing, $f(n+1) \ge f(n)$.) I want an algorithm to find $n_i$ for $1 \le i \le m$ such that $\sum_i^m n_i \le N$ that maximizes $\sum_i^m f(n_i)$.

$m$ is usually small (2 or 3) but can be larger as well and $m$ = 2 can be solved reasonably fast by exhaustive search, $m\ge3$ takes more time. Typically $N\approx 500$.

Is there any known algorithm?

Regards
David

Hi Pereskia! Welcome to MHB! (Wave)

How do the different functions tie in?
I only see the single $f$, so we seem to have $m$ numbers instead of $m$ functions.
 
Hi!

Sorry, I want to maximize $\sum_{i=1}^m f_i(n_i)$. I lost the index $i$.

Regards
David
 
I like Serena said:
Then I think you are looking for the Downhill Simplex method (Nelder-Mead), which is also called the Amoeba method.

Thank you. I will add this method to my tool box.

I will however need the optimum in this case. It will be one part of a larger optimization algorithm. I don't know how the other parts will work with heuristic solutions to the subproblems.

Regards
David
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 2 ·
Replies
2
Views
948
Replies
7
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
Replies
9
Views
3K
  • · Replies 125 ·
5
Replies
125
Views
20K
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 24 ·
Replies
24
Views
4K
  • · Replies 18 ·
Replies
18
Views
4K