Buying ingredients for a cake from many different stores and need to minimise the number of stores – algorithm name?


So let’s say I’m baking a cake and it has a few ingredients (including multiples):

ingredients = {sugar, sugar, baking powder, chocolate, flour, egg, egg} 

I can go to a bunch of different stores to buy the ingredients. Each store has a different collection of ingredients to offer:

store_1 = {sugar, vanilla extract, olive oil, chocolate} store_2 = {chocolate, chocolate, flour, egg} store_3 = {flour, baking powder, sugar, sugar, sugar, egg} 

Problem: I want to buy all the ingredients for the cake from the minimum number of stores

I’m sure this is a common problem with existing algorithms, but I can’t seem to find anything besides the bin packing problem. It is a similar problem but not quite the same.

Any ideas would be appreciated.