Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

Public Member Functions | Protected Attributes | List of all members
cogitant::OpeRulesClosure Class Reference

Calcul d'une fermeture d'un graphe par un ensemble de règles. More...

#include "cogitant/operule.h"

Inheritance diagram for cogitant::OpeRulesClosure:
cogitant::Operation cogitant::OperationBase cogitant::ObservableObject cogitant::CogitantObject

Public Member Functions

Error check ()
 Vérification des paramètres. More...
 
void run ()
 Lancement de l'opération. More...
 
Constructeurs - destructeur.
 OpeRulesClosure (Environment *env)
 Constructeur. More...
 
 ~OpeRulesClosure ()
 Destructeur. More...
 
Entrée des paramètres.
void setParamGraph (Graph *g)
 Graphe sur lequel une fermeture sera calculée. More...
 
void setParamRules (Set< Rule * > const *r)
 Ensemble des règles (du même environnement que le graphe et que l'opération) à appliquer. More...
 
void setParamMaxApplications (unsigned long ma)
 Nombre maximum d'opérations à tenter pour calculer une fermeture. More...
 
void setParamMaxPasses (unsigned long mp)
 Nombre maximum de passes à exécuter. More...
 
void setParamOpeRuleApplications (OpeRuleApplications *operuleapplications)
 Opération de calcul des applications possibles d'une règle sur un graphe. More...
 
void setParamOpeRuleApply (OpeRuleApply *operuleapply)
 Opération d'application d'une règle sur un graphe selon une projection. More...
 
void setParamOpeRuleIrredundantProjection (OpeRuleIrredundantProjection *operuleirr)
 Opération de sélection des applications non redondantes. More...
 
Accès aux résultats.
GraphgetResult () const
 Accès au graphe modifié. More...
 
unsigned long getResultApplications () const
 Accès au nombre d'applications qui ont été effectuées. More...
 
- Public Member Functions inherited from cogitant::Operation
Environmentenvironment () const
 Environnement. More...
 
void setEnvironment (Environment *env)
 Modification de l'environnement sur lequel est défini l'opération. More...
 
 Operation (Environment *env)
 Constructeur. More...
 
 Operation (Operation const &o)
 Constructeur par recopie. More...
 
 ~Operation ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::OperationBase
void stop ()
 Stopper l'opération dès que possible. More...
 
bool isStopped () const
 Est-ce que l'opération a été stoppée. More...
 
 OperationBase ()
 Constructeur. More...
 
 OperationBase (OperationBase const &o)
 Constructeur par recopie. More...
 
 ~OperationBase ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::ObservableObject
 ObservableObject ()
 Constructeur. More...
 
 ObservableObject (ObservableObject const &o)
 Constructeur par recopie. More...
 
 ~ObservableObject ()
 Destructeur. More...
 
ObserverSet const & observers () const
 Accès à l'ensemble des observateurs. More...
 
bool hasObservers () const
 Existence d'observateurs. More...
 
bool hasObservers (ObserverMessage::Type mt) const
 Existence d'observateurs qui écoutent le type de message passé. More...
 
void attachObserver (Observer *obs)
 Ajoute un nouvel observateur à l'objet. More...
 
void detachObserver (Observer *obs)
 Supprime le lien entre l'observateur et l'objet. More...
 
void notifyObservers (ObserverMessage const *msg)
 Envoie le message de modification à tous les observateurs. More...
 
- Public Member Functions inherited from cogitant::CogitantObject
 CogitantObject ()
 Constructeur. More...
 
 CogitantObject (CogitantObject const &o)
 Constructeur par recopie. More...
 
virtual ~CogitantObject ()
 Destructeur. More...
 
PropertySetproperties ()
 Accès à l'ensemble des propriétés. More...
 
virtual std::string toString () const
 Transformation en chaîne de caractères. More...
 
std::string className () const
 Nom de la classe. More...
 
PropertySet const * properties () const
 Accès en lecture seule à l'ensemble des propriétés. More...
 
bool hasProperties () const
 Existence de propriétés. More...
 
CogitantObjectoperator= (CogitantObject const &ob)
 Affectation. More...
 

Protected Attributes

Graphio_graph
 Le gaphe qui est modifié par l'opération.
 
Set< Rule * > const * i_rules
 Les règles à prendre en compte. Si égal à NULL, toutes les règles de l'environnement sont prises en compte.
 
unsigned long i_maxapplications
 Le nombre maximum d'applications à calculer.
 
unsigned long i_maxpasses
 Le nombre maximum de passes.
 
unsigned long o_applications
 Le nombre effectif d'applications calculées.
 
OpeRuleApplicationsi_operuleapplications
 L'opération de recherche d'applications utilisée.
 
OpeRuleApplyi_operuleapply
 L'opération d'application utilisée.
 
OpeRuleIrredundantProjectioni_operuleirr
 L'opération de filtre des applications non redondantes.
 
- Protected Attributes inherited from cogitant::OperationBase
bool m_stop
 Arrêt de l'exécution de l'opération demandé. More...
 

Additional Inherited Members

- Public Types inherited from cogitant::OperationBase
typedef unsigned int Error
 Résultat de la vérification des arguments d'une opération. More...
 
- Static Public Attributes inherited from cogitant::Operation
static const Error PROJBACKTRACKCHOICE_EMPTYLIST
 Impossible d'enlever un élément à une liste vide. More...
 
static const Error OBJECTTYPE
 Un (identifiant d') objet parmi les paramètres n'est pas du bon type. More...
 
static const Error WRONGEDGES
 Un graphe parmi les paramètres de l'opération possède des arêtes pendantes. More...
 
- Static Public Attributes inherited from cogitant::OperationBase
static const Error CHECKOK
 Pas d'erreur. More...
 
static const Error ARGUMENTS
 Certains paramètres de l'opération n'ont pas été fixés. More...
 
static const Error UNUSED
 Symbole d'erreur inutilisé. More...
 
- Protected Member Functions inherited from cogitant::Operation
void setProgress (unsigned int current, unsigned int max)
 Progression actuelle de l'opération. More...
 
- Protected Member Functions inherited from cogitant::ObservableObject
virtual ObserverSetallocObservers () const
 Fonction créant l'instance d'une sous classe de ObserverSet pour la représentation de l'ensemble des observateurs de l'objet. More...
 
ObserverSetobservers ()
 Accès à l'ensemble des observateurs. More...
 
- Protected Member Functions inherited from cogitant::CogitantObject
virtual PropertySetallocProperties () const
 Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More...
 

Detailed Description

Calcul d'une fermeture d'un graphe par un ensemble de règles.

Cette opération calcule toutes les applications non redondantes de règles qui peuvent être appliquées sur un graphe, et les applique, tant que des applications non redondantes existent.
Habituellement, il n'est pas nécessaire d'utiliser directement cette classe, car il est plus simple de passer par la méthode Environment::rulesClosure(), qui utilise en interne cette classe.

Warning
Selon la forme des règles il est possible que la fermeture soit infinie, c'est à dire qu'il soit toujours possible d'appliquer une règle de façon non redondante. C'est pourquoi il est possible de fixer le nombre maximum d'applications de règles qui peuvent être appliquées. Evidemment, si ce nombre est atteint, le graphe obtenu peut ne pas être une fermeture du graphe initial par l'ensemble de règles, puisque des graphes infinis ne peuvent être manipulés dans la version actuelle de Cogitant.

Constructor & Destructor Documentation

cogitant::OpeRulesClosure::OpeRulesClosure ( Environment env)

Constructeur.

cogitant::OpeRulesClosure::~OpeRulesClosure ( )

Destructeur.

Member Function Documentation

Error cogitant::OpeRulesClosure::check ( )
virtual

Vérification des paramètres.

Retourne Operation::CHECKOK si l'opération peut être exécutée (méthode run()) ou un code d'erreur dans le cas contraire.

Implements cogitant::OperationBase.

Graph* cogitant::OpeRulesClosure::getResult ( ) const

Accès au graphe modifié.

unsigned long cogitant::OpeRulesClosure::getResultApplications ( ) const

Accès au nombre d'applications qui ont été effectuées.

void cogitant::OpeRulesClosure::run ( )
virtual

Lancement de l'opération.

Cette méthode ne retourne rien mais le résultat de l'opération peut être récupéré avec les méthodes getResultxxx() (différentes selon les sous classes de Operation).

Implements cogitant::OperationBase.

void cogitant::OpeRulesClosure::setParamGraph ( Graph g)

Graphe sur lequel une fermeture sera calculée.

void cogitant::OpeRulesClosure::setParamMaxApplications ( unsigned long  ma)

Nombre maximum d'opérations à tenter pour calculer une fermeture.

Dès que ce nombre est atteint, la méthode run() se termine, même si de nouvelles applications non redondantes sont possibles. Si 0 est passé comme paramètre, aucune limite n'est posée, et la méthode run() peut potentiellement partir dans une boucle sans fin (ce qui est normal).

void cogitant::OpeRulesClosure::setParamMaxPasses ( unsigned long  mp)

Nombre maximum de passes à exécuter.

Une passe consiste en la recherche et l'application de toutes les règles sur le graphe. Dès que ce nombre est atteine, la méthode run() se termine, même si de nouvelles applications sont possibles. Si 0 est passé comme paramètre, aucune limite n'est posée, et la méthode run() peut potentiellement partir dans une boucle sans fin (ce qui est normal).

void cogitant::OpeRulesClosure::setParamOpeRuleApplications ( OpeRuleApplications operuleapplications)

Opération de calcul des applications possibles d'une règle sur un graphe.

void cogitant::OpeRulesClosure::setParamOpeRuleApply ( OpeRuleApply operuleapply)

Opération d'application d'une règle sur un graphe selon une projection.

void cogitant::OpeRulesClosure::setParamOpeRuleIrredundantProjection ( OpeRuleIrredundantProjection operuleirr)

Opération de sélection des applications non redondantes.

void cogitant::OpeRulesClosure::setParamRules ( Set< Rule * > const *  r)

Ensemble des règles (du même environnement que le graphe et que l'opération) à appliquer.

Parameters
rensemble des règles. Si NULL, toutes les règles de l'environnement de l'opération sont prises en compte.