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 : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    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 ?

  2. #2
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Chain of responsibility dans le bouquin du GoF.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    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.

  4. #4
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    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 296
    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
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 643
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 643
    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 : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    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

  7. #7
    Membre �m�rite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    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