Given a set of $N$ items, I would like to find an optimal subset of a maximum number of $k$ items that maximizes a blackbox reward function $f(subset)$.
I want to find a global maxima efficiently by making a minimum number of trials. Can you please let me know what would be the right method for that?
In other words, I would like to reach the best possible reward given a budget consisting of a limited number of trials for different combinations of items.
Is there any software packages available (preferably in Python)? What would be the right 'keyword' to search, read and learn more about this topic?
(I have tried combinatorial optimization as a keyword but that was a very broad). Thank you so much in advance for your time and consideration.
I have developed the following solution, I would still be happy to receive feedback on what can I improve from the experts in the domain.
https://github.com/kayuksel/combinatorial-bandit/blob/master/comb_bandit.py