Calcul d'une fermeture d'un graphe par un ensemble de règles. More...
#include "cogitant/operule.h"
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. | |
Graph * | getResult () 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 | |
Environment * | environment () 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... | |
PropertySet * | properties () |
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... | |
CogitantObject & | operator= (CogitantObject const &ob) |
Affectation. More... | |
Protected Attributes | |
Graph * | io_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. | |
OpeRuleApplications * | i_operuleapplications |
L'opération de recherche d'applications utilisée. | |
OpeRuleApply * | i_operuleapply |
L'opération d'application utilisée. | |
OpeRuleIrredundantProjection * | i_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 ObserverSet * | allocObservers () 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... | |
ObserverSet & | observers () |
Accès à l'ensemble des observateurs. More... | |
Protected Member Functions inherited from cogitant::CogitantObject | |
virtual PropertySet * | allocProperties () const |
Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More... | |
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.
cogitant::OpeRulesClosure::OpeRulesClosure | ( | Environment * | env | ) |
Constructeur.
cogitant::OpeRulesClosure::~OpeRulesClosure | ( | ) |
Destructeur.
|
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.
|
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.