Rechercher plusieurs annonces / site d'occasion

Ockham -  
 Ockham -
Bonjour,
Sur un site de vente d'objets manufacturés (donc avec code-barres et multiples exemplaires).
Souhaitant proposer aux acheteurs de chercher des vendeurs proposant plusieurs des produits qu'ils recherchent, afin de minimiser les frais de port.

1) l'acheteur indique sa liste et identifie les objets.
2) L'algo pouvant être gourmand, il me semble qu'il faut des raccourcis.
3) Je pense prioriser les produits qui ont peu de vendeurs (>0!) pour rechercher s'ils en proposent d'autres. En effet, pour tout acheter, il faut nécessairement passer par eux.

Des pistes d'algorithme?

Merci d'avance.
A voir également:

4 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
cela dépend un peu dans quel contexte tu fais ce travail, et avec quels outils (et quelles connaissances).

si tu conçois ton propre algorithme, cela semble une bonne idée de prioritiser les produits avec peu de vendeurs, et les vendeurs avec beaucoup de produits.
en prioritisant ainsi, tu peux, au minimum, accélérer la recherche de la meilleure solution.

par ailleurs, il existe très probablement des algorithmes qui peuvent très rapidement trouver la meilleure solution. dans ce cas-là, ton travail consistera à exprimer ton problème pour pouvoir utiliser ces algorithmes.
0
Ockham
 
Ça revient, à partir du tableau de
  • mes produits recherchés $mylist
  • des annonces de vendeurs $sell


à obtenir la liste des vendeurs par nombre décroissant de produits recherchés $best_sellers.

$sell = [ // sellers => products
  1 => [ 1 , 5 , 8 , 11],
  2 => [ 17 , 20 ], 
  3 => [ 2 , 12 ], 
  4 => [ 2 , 3 ],
  5 => [ 7 ]
  ] ;
  
  
$mylist = [ 1 , 2 , 3 , 4 , 5 ] ;

$best_sellers = [
  1 => [ 1 , 5 ],
  4 => [ 2 , 3 ]
  3 => [ 2 ]
  ]

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Ockham
 
merci de nous informer de tes réflexions.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Ockham
 
tu as choisi d'écrire ton algorithme en PHP?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
à la réflexion, je pense que le mieux est d'écrire l'algorithme toi-même.
l'optimisation rend l'algorithme plus complexe. à ta place, je commencerais pas écrire l'algorithme sans optimisation.
quand il fonctionnera parfaitement, je commencerais à l'opimiser.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Ockham
 
Bonjour,

J'ose croire que ta liste de vendeurs, et les produits qu'ils vendent, se trouvent dans une base de données ...
Dans ce cas, avec un peu de SQL et des fonctions du genre GROUP BY, COUNT, ORDER BY .... je pense qu'il serait assez simple de déterminer les vendeurs qui vendent le plus de produits de la liste désirée...

par ce que... si tu le traites en PHP comme tu sembles parti ..... il faudra espérer que tu n'aies pas trop de vendeurs ni de produits si tu ne veux pas que ton script rame à mort ...
0
Ockham
 
"il existe très probablement des algorithmes qui peuvent très rapidement trouver la meilleure solution"

Ma question est: quels sont ces algorithmes ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
cela demande un peu de recherche et d'analyse, peut-être l'algorithme de Kuhn-Munkres, ou quelque-chose de proche.
0
Ockham
 
Merci pour la piste.
Je regarde ça.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
tu écris que l'algoritme peut être gourmand. combien aurais-tu de vendeurs possibles pour une liste?
0