I am newbie with machine learning. In order to learn more I decided to try solving a specific problem/game that I have in mind. The problem is the following:
I have a list of $N$ items which are auctioned in a random sequence. There are $n$ participants to the auction. They have a fixed budget and $M$ items to buy. Each agent will decide whether to make a bid and how much to bid each time a new item is auctioned; bids have to be integer numbers and the agent with the highest bid gets the item; correspondingly its budget is decreased of the amount of the bid. Items, once bought, cannot be released, so if an agent has already bought $M$ items, it cannot participate to other auctions. If nobody places a bid, the item is discarded and the auction continues with the next one. Thus, an agent ends its auction if it has bought $M$ items or the available budget has reached $0$.
At the end, the value of the final set $I$ of items items bought by each agent is evaluated by an external oracle function $f(I)$. The function is not explicitly known and will in general be more complicated that the sum of values of each item, e.g. two items may be essential parts of a single object and are worthless one without the other. However, it is known that $$ f(I \cup J) \geq f(I) + f(J).$$ Each agent is free to evaluate the function $f$ on any set of items. Each agent's goal is to maximize the value of $f(I)$, where $I$ is the set of items successfully bought by that agent.
Which strategy would you suggest to approach this problem? At each time, the agent has information about the list of items that have been auctioned, which participant has bought each of them and the costs, so that it knows the number of available slots and budget of each participant. According to these data, it must decide if and how much to bid for each item. Note that the list of items is fixed and the function $f$ are fixed. I suppose this is a reinforcement learning question but I don't have a clear understanding of how the input would be structured in this case.