Algorithms for the item assortment problem: An application to vending machine products