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 :

[Optimisation] Algorithme de réduction


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 245
    Par défaut [Optimisation] Algorithme de réduction
    Bonjour, j'espère tout d'abord être dans la bonne section. Mon problème se situe dans la conception d'un algorithme permettant de calculer la réduction maximale d'un panier d'articles selon un carnet de coupons de réduction.
    Pour cela j'ai essayé de découper le but recherché en règles simples :

    A savoir qu'un coupon ne peut être utilisé que pour un seul article.

    Un coupon peut avoir soit une valeur fixe soit une valeur dépendant du prix de l'article.

    Un article ne peut utiliser qu'un seul coupon.

    La réduction la plus importante doit être effectuée

    On doit consommer le moins de coupons possible pour atteindre la réduction la plus importante.


    Le soucis c'est que je ne vois pas du tout comment faire pour gérer les cas particulier du genre
    Article1 associé au coupon1 (10% de remise)

    Article2 associé au coupon1 (10% de remise) coupon2 1,5 €

    Si article1=10€ et article2<25€ alors remise maximale 2,5€ (2 coupons utilisés)
    Si article1=10€ et article2=25€ alors remise maximale 2,5€ (1 coupon utilisé)
    Si article1=10€ et article2>25€ alors remise maximale 10% de article2 (1 coupon utilisé)


    L'exemple est simple car il ne met en jeu que 2 coupons sur 2 articles mais je ne vois pas comment pousser ce raisonnement pour x articles et y coupons.

    Si quelqu'un avait une idée je suis preneur parce que pour le moment à part avoir exploser le mur de mon bureau à coups de tête et avoir une bonne migraine je ne vois pas comment commencer.

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 65
    Par défaut
    Tu peux tester toutes les combinaisons, c'est la méthode bourrin mais çà marche. Dans ce cas il te faut minimum autant de coupon que d'article (quitte à rajouter des 0€).
    Soit X le nombre d'article et Y le nombre de coupon, alors il y a N = Y!/(Y-X)! possibilités.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 245
    Par défaut
    Merci pour cette réponse mais le soucis c'est que de tester "à la bourrin" ça ne me convient pas vraiment car je dois utiliser un minimum de temps. Je suis sur que suivant la méthode employée il est possible de diminuer le nombre de tests et donc le temps (en gros c'est plus de l'optimisation que je cherche à faire).

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Tu as essayé de faire une recherche avec les mots clés "système réducteur" sur ce forum ?

    Les problèmes de systèmes réducteurs sont généralement NP (sauf cas particulier). Donc à part tester toutes les solutions, tu ne peut pas être sûr d'avoir trouvé la "meilleure" solution.

    Tu peux juste trouver des astuces pour stopper l'exploration de certaines branches pour lesquelles tu es 100% sûr de ne pas arriver a une meilleure solution (algo : branch & bound).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 245
    Par défaut
    Merci pour cette réponse, je vais me pencher sur ces mots clés pour une recherche approfondie.

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Par défaut
    Première chose: tu manques de méthodes dans la description de ton problème. Il faut que tu décrives tes variables, ce que tu cherches à optimiser, tes éventuelles contraintes.

    Deuxième chose: une fois que tu as formulé ton problème qualifie-le: les variables sont des entiers, des réels ou les deux , les contraintes sont linéaires ou quadratiques, etc. Et à partir de là cherchent des méthodes de résolution

    Les mots clés concernant ton problème sont plutôt "optimisation combinatoire sans contraintes" et "programmation linéaire entière/binaire"

Discussions similaires

  1. Optimiser algorithme C++
    Par CliffeCSTL dans le forum Débuter
    Réponses: 8
    Dernier message: 24/04/2014, 12h42
  2. Optimiser algorithme de kernel smoothing
    Par vampirella dans le forum MATLAB
    Réponses: 8
    Dernier message: 12/07/2010, 11h25
  3. Optimisation Algorithme ?
    Par Deva74 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 13/03/2010, 08h51
  4. Optimisation algorithme de programmation
    Par mp_moreau dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/07/2007, 19h24
  5. Algorithme de réduction de bruit appliqué a un contenue textuelle
    Par vodevil dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/11/2006, 08h31

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