We're starting to look into a problem at work that effectively boils down to the following problem:
Let's say I have red people and blue people arriving at a store. Red people are eligible to buy products A and B, and blue people are eligible to buy products B and C. Products A, B, and C have different prices associated with them (p_A
, p_B
, p_C
) and I have different inventories of each product (i_A
, i_B
, i_C
).
I'm trying to start looking into algorithms that can help me optimally decide, when a new red or blue person shows up, what product to show them. If the products that red people and blue people were eligible for were distinct (that is, they aren't eligible for any of the same products) then the problem would be simple, but the fact that they're both eligible for product B (in this very simplified example) complicates the setup a bit, and means that my likelihood to show a new person product B should depend on what consumers have previously come through the store and been shown.
I don't have much experience in any sort of operations research type algorithmic work. It may be that this problem is a variant of a multi-choice knapsack problem, but am hoping to get some input from folks more experienced with this kind of work on what a good approach might be. Thanks for any help.
Here's a picture of the setup for the more visually inclined.