France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 511 membres enregistrés - 2 069 318 posts - 122 026 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages
                Sortir des listing en comparant des DB... suite
131 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
Sortir des listing en comparant des DB... suite

machintruc
Coordinateur
In Tartiflette we trust

Messages : 805
Inscrit le 24/05/05
Non connecté
  Posté le 07 May 2009 - 15 h 18 m 06 s
Bonjour,

Dans la continuité de cette demande:
http://forums.france-hardware.com/discussion/programmation/sujet-110078_Sortir-des-listing-en-comparant-des-DB-langage-a-utiliser-avec-MySQL.html


J'ai trois bases de données:
- Db1: liste de composants et leur nombre en stock pour chacun ainsi que le prix
Ex:
composant A = 100pce à 1€pièce
composant B = 120pce à 1€pièce
composant C = 100pce à 1€pièce

- Db2: nomenclature du produit 1 avec la liste de composants (ainsi que le nombre nécessaire pour chacun)
Ex: 1composant A + 1 composant B

- Db3: nomenclature du produit 2 avec la liste de composants (ainsi que le nombre nécessaire pour chacun)
Ex: 1composant B + 1 composant C

Je lance la moulinette et j'obtiens:
100 produits 1 pour un cout de 200€
20 produits 2 pour un cout de 40€
reste 80 composant C soit valeur égal à 80€

Le but c'est que le programme test toutes les combinaisons possible pour que le reste (en terme de valeur) soit le plus petit possible
En gros Il va tester:
100 produits 1 pour un cout de 200€
20 produits 2 pour un cout de 40€
et
20 produits 1 pour un cout de 40€
100 produits 2 pour un cout de 100€
... bon ici le reste est le même: reste 80 composant C soit valeur égal à 80€

Ou toute combinaison possible (je pensais comme le solveur Excell) et comparer le "reste". Il gardera la solution ou le reste est le plus petit.
Mais je ne sais pas trop quoi faire comme algo (pour l'instant je n'en suis pas à la prog), même si l'exemple donné est super simpliste.

Car je risque d'avoir des dizaines de composants et des dizaines de nomenclatures à croiser.
Une petite idée ou une piste?
D'avance merci


Message édité 1 fois, la dernière par machintruc le 07 May 2009 - 15 h 19.


Woofy
Totalement inutile, complètement indispensable

Messages : 31 539
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 07 May 2009 - 15 h 21 m 58 s
Heu, là je sais pas, je suis pas sur d'avoir tout compris, mais va y avoir de la récursivité !
Si j'ai un instant de temps de cerveau à allouer, je regarde ça.




machintruc
Coordinateur
In Tartiflette we trust

Messages : 805
Inscrit le 24/05/05
Non connecté
  Posté le 07 May 2009 - 16 h 18 m 24 s
c'est peut être pas très clair non plus :)




Woofy
Totalement inutile, complètement indispensable

Messages : 31 539
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 07 May 2009 - 16 h 34 m 15 s
En gros, ton programme doit composer X produit A, et Y produits B, de sorte à ce que la valeur totale des pièces restante soit le plus bas possible.
Bon, j'suis peut-être pas beaucoup plus clair, mais j'ai compris ! :D
C'est jouable de tester toutes les combinaisons une par une (en terme de puissance de la base de donnée, nombre de pièces / produits, possibilité de temps d'exécution, ...).


Message édité 1 fois, la dernière par Woofy le 07 May 2009 - 16 h 34.


machintruc
Coordinateur
In Tartiflette we trust

Messages : 805
Inscrit le 24/05/05
Non connecté
  Posté le 07 May 2009 - 17 h 06 m 43 s
c'est peut être pas clair, mais au moins on s'est compris... c'est l'essentiel :-)
Le sgbd n'est pas un problème, le temps d'attente (pour l'utilisateur) n'est pas un problème non plus donc on peut tester ce qu'on veut et ça prendra le temps qu'il faut


Message édité 1 fois, la dernière par machintruc le 07 May 2009 - 17 h 08.


defrance
PI-nary rules

Messages : 813
Inscrit le 05/09/03
Ville : Lyon
Non connecté
  Posté le 11 May 2009 - 22 h 23 m 25 s
dans le cas d'école que tu présentes, avec les montants tous égaux, il y a au moins 3 combinaisons possible avec le meme résultat.
pour moi, c'est plus de la formulation que de la base de données
La récursivité n'est nécessaire que si il peu y avoir un produit 3 composé de 1 et de C. dans les autres cas, ce n'est pas la peine



La connerie c'est la décontraction de l'esprit, c'est pour cela que je m'autorise à faire le con.
Serge Gainsbourg


machintruc
Coordinateur
In Tartiflette we trust

Messages : 805
Inscrit le 24/05/05
Non connecté
  Posté le 12 May 2009 - 17 h 32 m 38 s
Pour sortir du cas d'école et être plus précis:

J'ai une liste au format csv (à la limite ce n'est pas important):
- Plusieurs champs: ref composant/ref produit auquel appartient le composant/ nombre en stock / prix unitaire /...
- Nombre de ligne: ça dépend (ça peut être des milliers). Il peut y avoir plusieurs lignes avec la même ref produit si il y a plusieurs composants differents.

A partir de ce fichier, je vais alimenter une DB (une seule peut être contrairement à mon ex)
Ensuite il faut:
Faire ce que je demande dans le cas d'école c'est à dire écouler le stock au mieux. En sachant que certains composants sont utilisés par plusieurs produits

Donc au final tester toutes les combinaisons possible pour que le total stock soit le plus bas possible (ça c'est dans un premier temps, dans un 2eme temps j'entre en ligne de compte les réappro).

Tester toutes les combinaisons, pourquoi?
Si j'ai un composant A utilisé dans plusieurs produits et que j'affecte tout le stock au même produit X, je peux me retrouver avec un stock de composant B sur les bras.
Tout simplement parce que ce composant B, associé au composant A, peut permettre de faire un autre produit Y, seul produit utilisant le composant B.
Encore une fois, ce cas est simple, mais lorsqu'il y a des millers de composants et des centaines de produit... ça donne mal au crâne!

J'ai voulu faire simple dans mon 1er post


Message édité 1 fois, la dernière par machintruc le 12 May 2009 - 17 h 35.


Page genérée en 0.1192 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory