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

C++ Discussion :

Design Pattern pour module de raisonnement


Sujet :

C++

  1. #1
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Points : 833
    Points
    833
    Par défaut Design Pattern pour module de raisonnement
    Bonjour,

    Pour faire simple disons que je souhaite créer en c++ (même s'il s'agit avant tout d'une problèmatique de conception) un module de raisonnement.
    Désolé si pour l'instant le terme est un peu flou (ça l'ai pour moi également) car j'ignore encore dans leur intégralités les fonctions et les limites que je veut apporter à un tel module.

    Ce module de raisonnement doit permettre à travers l'évaluation d'un critère de qualité par exemple, de choisir quelle(s) stratégie(s) à adopter (== méthode à exécuter) dans le cadrre d'un problème précis.

    Pour résumer, je disposerai donc de plusieurs méthodes pour déterminer une certaine particularité d'un modele 3d (par exemple savoir si le modèle passé en paramètre est un animal, si c'est le cas compter le nombre de pattes, etc pour déterminer s'il s'agit d'un chien ou d'un chat, ...). En cas d'échec sur une méthode, le module choisirai une autre option. Le résultat ne serai validé que si plusieurs stratégies on répondu favorablement au critère.
    Et je veux faire ceci en C++ et en laissant la porte ouverte à l'implémentation de nouvelles stratégies d'ou mon soucis de posé des bases souples mais robustes.
    Quelqu'un connait-il un Design Pattern ou quelque chose approchant susceptible de m'aider ?
    Linux > *

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Chain of responsibility dans le bouquin du GoF.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Points : 833
    Points
    833
    Par défaut
    Ok merci.
    Je vais regarder ça. L'implémentation dans le reste de mon projet va me prendre un peu de temps, mais je vous tiens au courant de mes avancées.
    Linux > *

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Je ne suis pas sûr de la pertinence des DPs traditionnels dans le monde de l'IA/du décisionnel.
    Les arbres de décision me paraissent être une technique suffisament classique pour pouvoir être tout aussi respectables que n'importe quel design pattern.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    De prime abord, comme cela, j'aurais préféré m'orienter vers un partern... strategy, vu qu'il s'agit de metre une stratégie au point...

    Mais, effectivement, un simple arbre de décison pourrais tres bien aussi faire l'affaire.

    Il faut bien rester conscient du fait que les différents DP ne sont, en définitive, que des "canevas" qui permettent de résoudre des problèmes précis dans un contexte précis (parce que la personne qui l'a mis au point s'est rendu compte que ca revenrait régulièrement), mais qu'il n'y a, malgré tout, aucune obligation de l'utiliser si, d'aventure, on n'arrive pas à caller ce que l'on veut faire sur l'un de DP existant

    Allez, au passage, un peu de lecture sur les arbres de décision
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Points : 833
    Points
    833
    Par défaut
    Merci de vos réponses. Excellent site sur les DPs de koala01.

    Sinon j'avais déjà envisager les arbres de décisions mais je ne voyais pas comment l'appliquer à mon scope. En plus, si j'ai bien compris, il faut un ou plusieurs critères discirmants pour construire l'arbre et j'ai du mal à trouver de tels critères. Je pense qu'il conviennent mieux aux applications type AI. Et dernier point, dans mon cas si tout les tests échouent je dois pouvoir en dernier recours demander l'aide de l'utilisateur.

    Bref, c'est pourquoi je me suis plutôt orienté sur une solution de type DP mais je peux encore changer d'avis

    Je pense que le Chain of Responsability combiné à Strategy pourrait sans doute faire l'affaire.

    Ps: déplacer moi sur le forum conception si besoin
    Linux > *

  7. #7
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Perso, moi le pattern Strategy c'est un terme que je trouve vraiment un peu trop pédant, la POO poussé à l'extrême.

    Tout ça pour désigner une simple fonction/procédure (dépendant ou non d'un contexte).

    On a en C++ a la chance de disposer d'une bonne implémentation de fonctions "first-class citizen" ; un simple boost::function (et bientôt std::function) muni de la bonne signature suffira, implémenté en terme de fonction partielle si nécessaire (closures).
    Plus besoin d'héritage ou de classe à écrire.

    Sauf si cas particulier...

Discussions similaires

  1. Les design pattern pour créer des jeux
    Par alex6891 dans le forum Design Patterns
    Réponses: 4
    Dernier message: 26/11/2018, 19h59
  2. [Couplage] Bon design pattern pour synchroniser deux modules (Adapter, Observer ?)
    Par Steph0 dans le forum Design Patterns
    Réponses: 2
    Dernier message: 21/06/2013, 14h16
  3. Réponses: 5
    Dernier message: 21/06/2006, 14h47
  4. Quel design pattern pour réaliser une synthèse
    Par jbwan dans le forum Design Patterns
    Réponses: 3
    Dernier message: 21/04/2006, 12h39
  5. Design Patterns pour l'Evolutivité ?
    Par TrollMaster dans le forum Design Patterns
    Réponses: 7
    Dernier message: 20/01/2005, 12h47

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