IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Création de paniers de fruits et légumes, sélection automatique du stock en fonction de contraintes diverses


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Création de paniers de fruits et légumes, sélection automatique du stock en fonction de contraintes diverses
    Bonjour tout le monde,

    J'ai toujours voulu faire de la programmation un peu plus avancée (par rapport à mon niveau débutant - vb, vba, php ^^) mais je n'avais pas de projet pour aller de l'avant.
    J'ai désormais trouvé le projet, mais comme je ne suis pas habitué, je ne sais pas dans quelle direction partir. Mon cerveau part dans tous les sens et je n'avance pas :/

    Voici le projet sur lequel j'aimerais travailler. Il viendrait en aide à une association pour laquelle je suis bénévole.
    Nous avons mis en place un système d'achat groupé de fruits et légumes (commande des produits, stockage, création des paniers, distribution directe ou livraison).
    Cela fonctionne à l'inverse d'un marché habituel, i.e. en tant que bénéficiaire je n'y vais pas faire mes courses, mais j'obtiens un panier selon mes goûts (ou à l'inverse de mes dégoûts/allergies...) et du stock obtenu par l'association la semaine donnée.
    Le stock de produits est en effet variable d'une semaine à l'autre en quantité et en variété (prise en compte de la saisonnalité, de la provenance...) (la commande et la distribution de produit ne se fait qu'une fois par semaine, pas de gestion de flux a priori).

    Je souhaiterais donc faire un outil permettant la création automatique des paniers (quel produit en quelle quantité pour quel bénéficiaire) en fonction de différentes contraintes (liées au bénéficiaire) :
    • Valeur du panier désirée
    • Choix libre (pas de contrainte sur le choix des produits)
    • Davantage de légumes que de fruits
    • Davantage de fruits que de légumes
    • Seulement des légumes
    • Seulement des fruits
    • Allergies/Dégoûts (pas ces produits)
    • Produits désirés ponctuellement (cette semaine-ci) (choix avec ou sans quantité)
    • produits désirés en tout temps (modifiable au besoin)
    • Produits locaux en priorité
    • Les moins chers de la semaine

    Et des contraintes de stock disponible (mais une des problématique majeure est que le stock va évoluer au cours de la fabrication des paniers, en effet : si l'algorithme me demande de mettre 1,48 kg de pommes, mais qu'à la pesée j'ai 1,52 kg, je ne couperais pas la pomme pour correspondre, le calcul devra donc se refaire après chaque panier). J'ai pensé à 2 différentes solutions :
    • Prendre le stock réel et ajustement au fur et à mesure (advienne que pourra ^^)
    • Partir d'un stock minoré de 5% (arbitrairement)

    Tout en sachant aussi que le stock étant fait de produits périssables, je dois dans tous les cas minorer celui-ci (par variété de produit) pour prendre en compte les produits abîmés/pourris. Et permettre de mettre à jour le stock au fur et à mesure quand on jette des produits à la poubelle.
    Le stock doit aussi être daté (date d'arrivage du produit dans le stock - gestion des réassorts) car des produits peuvent rester d'une semaine à l'autre.
    Chaque produit nécessitera aussi d'être caractérisé par sa provenance, sa fragilité (utile pour savoir si on le met au fond du panier ou au dessus).

    Les produits seront commandés à différents fournisseurs, il faudra donc gérer les fournisseurs (produit, quantité, prix...). Les livraisons ne sont pas gérées.
    Les prix des produits, comme dit plus haut, sont hebdomadaires. La pomme sera toujours moins chère à l'automne qu'en juin par exemple

    Il faudra aussi prendre en compte les coûts fixes de l'association afin de les répercuter sur les produits.

    J'ai aussi pensé aux données d'entrée telles que :
    • Nombre de variétés minimum par panier
    • Quantité mini d'un produit dans le panier
    • Quantité maxi d'un produit dans le panier
    • % Prix d'un produit < 5% (arbitraire) Valeur du panier
    • Gestion des priorités (faire passer les produits de la semaine précédente en priorité)
    • Faire passer les produits livrés cette semaine à maturité avancée en priorité


    Enfin, il faudra gérer les bénéficiaires avec leurs choix cités plus haut, leur horaire de ramassage (devient une contrainte complémentaire pour l'ordre de fabrication des paniers) (peut changer chaque semaine) ou demande de livraison (adresse postale) (peut changer chaque semaine).

    Voilà pour l'état des lieux, je pense avoir fait le tour. Si vous avez des questions ou des pistes d'amélioration n'hésitez pas.

    Maintenant place à la programmation... Pensez-vous que c'est envisageable pour un almost newbie ?
    Vu que j'ai tout à apprendre (ou presque), que me conseillez-vous comme approche ? Quel langage semblerait le plus adapté ? Quelle base de donnée préconiseriez-vous sachant que l'asso n'a pas les moyens d'investir... L'utilisation de se fera sur un ou deux ordis qui seront sur le même WIFI. La BDD pourra être stockée sur un ordinateur toujours présent (celui du président de l'asso)...

    Voilà à vous les studios
    Merci beaucoup,

    A bientôt !

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Pour un débutant, c'est un très gros projet. Et même des développeurs moyennement expérimentés peuvent avoir des difficultés avec la partie 'optimisation'.

    Je te conseille de découper le projet en 2 moitiés. Dans un premier temps, tu fais l'impasse complète sur la partie optimisation. Tu fais donc une base de données avec un fichier client, un fichier livraisons, un fichier stock et plein d'autres choses, j'imagine... Comme on pourrait avoir pour un magasin normal, où les clients achètent ce qu'ils ont envie d'acheter, et non pas ce que la coopérative a envie de leur vendre. Tu peux peut-être trouver des ERP tout faits et customisables pour faire une bonne base de départ.
    Ainsi, tu auras des bases solides pour l'organisation des données.
    Ensuite, et seulement ensuite, tu pourras aborder l'aspect 'optimisation'.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    Au contraire, je conseil de commencer par la partie la plus difficile.

    Si tu arrives à modéliser ton problème et à trouver des algos pour le résoudre, le reste ne sera qu'une formalité.

  4. #4
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Je suis d'accord avec tbc92. Tu es d'un niveau apparemment trop faible pour porter ce genre de projet d'emblée. Tu sembles aussi très motivé ce qui peut compenser tes faiblesses, du moins te le faire compenser en apprenant.
    Là il ne s'agit pas d'un projet perso mais d'un projet concernant une assoc, il y aura donc plusieurs intervenants qui vont de facto participer à l'élaboration de plusieurs parties du projet, ce qui a terme va t'amener à devoir peindre un mur en rouge avec de la peinture verte
    Enfin bref, mis à part les relations humaines, je ne peux que te conseiller de commencer par créer une gestion simple mais fonctionnelle du stock, des fournisseurs et des clients. Tu vas déjà en baver pas mal et découvrir tout le cycle de l'idée de départ à la maintenance évolutive/curative en passant par la conception, la programmation, …
    Ensuite tu auras toutes les données pour t'essayer à la création automatique des paniers.

    Bon projet et bon courage

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Commencer la fin peut avoir un avantage.

    En commençant par le début, tu vas avancer, lentement mais sûrement. Puis un jour, il faudra s'attaquer aux chantiers plus difficiles. Et là, peut-être que tu vas réussir à les résoudre, mais peut-être pas. Et si tu échoues, tu seras déçu parce que tu auras passé pas mal de temps pour finalement rien de vraiment utile/opérationnel pour ton association.

    En commençant par la fin, c'est sûr que tu vas échouer. Mais tu t'en rendras compte beaucoup plus vite. Et donc tu auras passé moins de temps sur le projet.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Le premier message est, au mieux, un branstorming onanique.

    Mais il manque le principal. Quel est le but ? A quoi servira le "machin" que tu veux construire ? Car là, on ne voit qu'un fatras d'informations.

    Puis, il faudra concevoir l'outil pour arriver au but.
    Maintenant place à la programmation... Pensez-vous que c'est envisageable pour un almost newbie ?
    Tu n'as pas fait la conception et tu parles déjà de programmation. C'est là qu'on voit le "newbie", comme tu dis.

    On se résume: Tu ne sais pas ce que tu veux faire, comment le faire, et pourquoi le faire ... ça part mal.

    Contrairement aux autres, je pense que tu peux y arriver.

    J'ai quand même de lourdes interrogations sur le but.
    Qui a envie d'avoir des fruits et légumes sans les choisir ?
    Choisis par un ordinateur, qui plus est ?
    En quantité indéterminée ?
    Qui a envie qu'on fasse le marché à sa place ?
    Qui a envie de mal manger ?

    La nourriture n'est pas un "produit" comme une étagère ou une télé 16/9ème.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    on ne serait trop te conseillé de faire une petites analyse de tes besoins
    dans ton cas cela ressemble beaucoup a une gestion de stock avec des entre et des sortie de produit référencé

    une fois ta gestion de stock mis en place il faudra lui greffer une gestion de commande
    genre le client commande tel valeur de tel produit dans le stock

    un fois que ces deux éléments mis en place tu pourra enfin commencer ton programme de répartition
    car ta répartition n'est en fait rein de plus qu'un générateur de commande automatique

    je pense qu'avec Un pb de satisfaction de contraintes (CSP) il devrais pouvoir s'en sortir
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci
    Bonjour,

    Merci à tous pour vos réponses.

    Je vais essayer de me pencher sur le modèle de données avec le workbench. Je vous envoie ça au plus vite

    Merci pour votre soutien !

    A bientôt.

Discussions similaires

  1. [MySQL] question sur la création d'un moteur de recherche avec sélection
    Par senouss dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/12/2010, 19h26
  2. Réponses: 5
    Dernier message: 28/07/2009, 21h38
  3. Réponses: 10
    Dernier message: 09/07/2009, 09h09
  4. [eCommerce] Tutoriel création de panier
    Par ChambreClaire dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 28/11/2007, 10h20
  5. Sélection automatique de tous les checkbox d'un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/08/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo