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 :

Problème de minimisation de coût


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut Problème de minimisation de coût
    Bonjour et bonne année 2011 à tout le forum

    J'expose directement mon problème :

    Le but est de retourner le résultat le moins couteux pour un nombre de jour et une distance donnée

    J'ai 3 paramètres
    _le prix
    _un nombre de jours associé à une distance
    _et le prix au km supplémentaire

    Résumé avec exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Une personne veut louer pour 4 jours et parcourir 1200km
     
    Les tarifs sont:
    50e -> pour 1jour et 100km -> 1e km/sup
    80e -> pour 2jours et 150km -> 0,95 km/sup
    350e -> pour 5jours et 500km -> 0,90 km/sup
     
    Quel sera la combinaison la plus avantageuse pour le client?
    C'est juste un exemple je ne souhaite pas que l'on me le résolve mais juste savoir quel algo je dois utiliser

    J'avais pensé au "problème de sac à dos" mais le problème c'est que cet algo ne me donnera la combinaison égal (avec de la chance) ou strictement inférieur à la demande du client (on cherche à satisfaire totalement la demande du client au risque de lui proposer plus de jours ou de km mais toujours le plus compétitif)

    Merci pour votre aide

  2. #2
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Bonjour,
    si tu n'as qu'un faible nombre de "menus", le plus simple reste de calculer pour un client donné les différents tarifs pour chacun de ces "menus" et de lui facturé le plus avantageux.

    Cordialement,
    -- Yankel Scialom

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    si tu n'as qu'un faible nombre de "menus", le plus simple reste de calculer pour un client donné les différents tarifs pour chacun de ces "menus" et de lui facturé le plus avantageux.
    C'est la version exhaustive de la recherche des solutions. Comme c'est marqué, cela ne fonctionne que pour les "petits" problèmes.
    Sinon il faut se tourner vers algorithmes d'optimisation comme les méthodes Tabou et de Recuit Simulé.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    Merci pour vos réponses
    En effet c' est juste un exemple que j' ai cité et donc mon algo doit pouvoir fonctionner avec n tarif (n tendant vers l'infini )

    je sais pas si avec la méthode du simplex je pourrais m' en sortir?

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par kululu Voir le message
    je sais pas si avec la méthode du simplex je pourrais m' en sortir?
    Mmm... dans ce cas il me semble que les méthodes d'optimisation que j'ai cité sont spécialement adaptées.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Mmm... dans ce cas il me semble que les méthodes d'optimisation que j'ai cité sont spécialement adaptées.
    Je me suis renseigné un peu sur l'algo de recherche taboue et le recuit, le "grand défaut" pour mon utilisation, c'est la condition d'arrêt, je ne la connais pas en avance (forcément je la cherche :p ) et mon but est de proposer nécessairement au client l'offre la plus intéressante (pas celle qui s'en rapproche le plus )

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Citation Envoyé par kululu Voir le message
    le "grand défaut" pour mon utilisation, c'est la condition d'arrêt, je ne la connais pas en avance (forcément je la cherche :p ) et mon but est de proposer nécessairement au client l'offre la plus intéressante (pas celle qui s'en rapproche le plus )
    Ben tu peut au minimum, limiter à un nombre d'itérations et/ou une durée de calcul.

  8. #8
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Chaque calcul est tellement simple que tu peux en faire des millions sans constater de délai (en moins d'1sec). Pourquoi se compliquer la vie ?
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  9. #9
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    S'il te faut LA meilleure solution, alors tu dois tester toutes les combinaisons. Dans le meilleur des cas tu pourras en partie élaguer l'arbre de recherche en fonction des contraintes de ton problème.
    Sinon, c'est les méthodes que je propose.
    Il faut savoir que dans des problèmes très complexes, on donne souvent la meilleure des solutions trouvée, mais sans certitude que ce soit la meilleure.
    Donc on lance plusieurs fois l'algorithme si nécessaire et on règle les paramètres pour que la méthode cherche longtemps.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  10. #10
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    Merci à tous pour vos réponses ;D

    Donc je continue à cogiter en testant différents truc

    Pour l'énumération de toutes les solutions en effet c'est une des solution mais pas envisageable si on a une liste énorme de tarif (en plus mon algo doit être facilement évolutif...)

    Donc je m'étais dit :
    Je prends l'algo du sac à dos et pour les km manquants -si il y en a- je les ajoutes avec le meilleur tarif "km/sup" de tous les tarifs que le client aura choisi (je sais pas si je suis clair) j'aurais donc forcément la meilleure solution,
    Mon raisonnement est-il correct?

  11. #11
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Citation Envoyé par kululu Voir le message
    ... si on a une liste énorme de tarifs ...

    Comment les rentres-tu dans ton ordinateur ?
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  12. #12
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Nebulix Voir le message

    Comment les rentres-tu dans ton ordinateur ?
    C'est une bd alimentée depuis des années, je pense pas qu'il y en ai des milliards mais entre 1000~2000 tarifs c'est probable

  13. #13
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Citation Envoyé par kululu Voir le message
    C'est une bd alimentée depuis des années, je pense pas qu'il y en ai des milliards mais entre 1000~2000 tarifs c'est probable
    Donc un calcul bête devrait prendre environ 1 milliseconde. C'est grave ?
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  14. #14
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Précision : Je me suis toujours placé dans l'hypothèse que tu n'appliquais qu'un seul tarif pour toute la durée de la location.
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  15. #15
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut Conclusion : méthode russe !
    Citation Envoyé par Nebulix Voir le message
    Donc un calcul bête devrait prendre environ 1 milliseconde. C'est grave ?
    En fait, à partir d'une certaine précision voulue (qui est assez faible), la méthode russe est la meilleur. En effet, le calcul des tarifs pour chaque "menu" n'est que très peu plus lourd (2-3 fois) que le simple parcourt de tous les "menus".

    De plus, sauf si tu es dans un cas embarqué, le temps de calcul total sera négligeable par rapport à l'extraction dans la base de données. Mais si tu veux t'amuser un peu parce que tu en as marre de faire tout le temps la même chose avec <ton_langage_favori>, tu devrais pouvoir créer une fonction dans ton SGDB qui te retourne automatiquement le meilleur menu .

    Enjoy!
    -- Yankel Scialom

  16. #16
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    La méthode Russe? je connaissais l'algorithme Hongrois je vais me renseigner

    Mais ce que j'ai dit est erroné? Le fait de résoudre un problème de sac a dos avec l'addition des km sup stratégiquement

    @Nebulix : a priori le client aura le droit de combiner plusieurs tarifs, il peut prendre par exemple 3 fois le "tarif 1" et un "tarif3" les km manquant (si il y en a) seront additionnés avec le km/sup le plus compétitif entre le tarif 3 et 1

  17. #17
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Citation Envoyé par kululu Voir le message
    La méthode Russe? je connaissais l'algorithme Hongrois je vais me renseigner
    c'est un surnom pour la bruteforce / la solution bourine / ... en rapport avec la technologie russe qui est souvent la plus pragmatique (le crayon dans l'espace ou les moteurs des chars sovietiques étant les seuls à supporter le carburant russe lors de la seconde guerre mondiale, etc).

    Citation Envoyé par kululu Voir le message
    Mais ce que j'ai dit est erroné? Le fait de résoudre un problème de sac a dos avec l'addition des km sup stratégiquement

    @Nebulix : a priori le client aura le droit de combiner plusieurs tarifs, il peut prendre par exemple 3 fois le "tarif 1" et un "tarif3" les km manquant (si il y en a) seront additionnés avec le km/sup le plus compétitif entre le tarif 3 et 1
    Ha ! ça complique complètement le problème en effet. Et forcément, le sac à dos semble tout de suite plus justifié.
    -- Yankel Scialom

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de minimisation
    Par Nemerle dans le forum Algorithmes et structures de données
    Réponses: 22
    Dernier message: 19/01/2011, 15h28
  2. Problème déclaration f:attribute coté java
    Par midos_ab dans le forum JSF
    Réponses: 2
    Dernier message: 25/10/2010, 11h03
  3. Réponses: 3
    Dernier message: 26/03/2010, 15h36
  4. Problème de minimisation sous contrainte
    Par kitts dans le forum MATLAB
    Réponses: 2
    Dernier message: 24/01/2008, 17h40
  5. Problème : Afficher une fenetre à coté du lien cliquer
    Par Tyrael62 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/09/2006, 00h37

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