Bonjour à Stackoverflow personnes,algorithme pour trouver la combinaison optimale des produits et des magasins pour minimiser les coûts
Je gère un site qui trouve ses utilisateurs le moins cher d'acheter des livres. C'est facile pour un seul livre, mais pour plusieurs livres, il peut parfois être moins cher d'acheter un livre dans un magasin et un autre livre dans un autre magasin.
Je trouve actuellement le magasin qui vend moins cher tous les livres dans la liste de l'utilisateur, mais je veux avoir un système plus intelligent. Voici quelques informations supplémentaires:
- Le prix d'un livre est constant pour un magasin.
- Le prix de la livraison peut varier en fonction du nombre de livres ou de la valeur totale des livres.
- Chaque objet de la boutique peut prendre une série de livres et renvoyer les frais de port.
- Souvent, tous les magasins ne vendent pas tous les livres.
Vous ne savez pas si c'est cool de créer un lien vers mon site ici, mais il est répertorié dans mon profil utilisateur. Je voudrais être en mesure de trouver la combinaison la moins chère de magasins et de livres.
Je crains qu'il exige une approche de la force brutale - et avec 35 magasins, le nombre de combinaisons seront énormes pour un petit nombre de livres. Je sens le nombre de combinaisons est (#shops)^(livres de #) - mais pas à 100%
La question est, quelle approche devrais-je utiliser? Ce problème correspond-il à une catégorie de problèmes bien connue? Si la force brute est requise, quelle est la meilleure façon de le faire dans Ruby et puis-je donner la priorité aux boutiques pour essayer en premier?
Salut - merci pour la réponse. 1-3 sont déjà en place. Une méthode par magasin est utilisée pour déterminer le coût d'expédition. Une des difficultés est que la valeur d'expédition peut être déterminée par le nombre de livres, ou le prix total de la commande - ce qui rend la vie un peu complexe. Il est facile de déterminer quel magasin unique livre tous les livres pour le coût le plus bas, c'est-à-dire que l'un des livres doit être acheté à l'atelier A, tandis que le reste provient de l'atelier B. – dkam