Budget assistant which plans the optimal list of items to buy with a given budget