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

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

Cette opération calcule si l'ensemble des LIPs actuelles est acceptable. More...

#include "cogitant/opeprojection.h"

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

Public Types

enum  OpeProjectionStep { INITLIP, INITLIPEND, UPDATELIP, UPDATELIPBACKTRACK }
 Phase d'exécution de l'algorithme de backtrack. More...
 
- Public Types inherited from cogitant::OperationBase
typedef unsigned int Error
 Résultat de la vérification des arguments d'une opération. More...
 

Public Member Functions

Error check ()
 Vérification des paramètres. More...
 
void run ()
 Lancement de l'opération. More...
 
Constructeurs - destructeur.
 OpeProjAcceptableLIPs (Environment *env)
 Constructeur. More...
 
 ~OpeProjAcceptableLIPs ()
 Destructeur. More...
 
virtual OpeProjAcceptableLIPsclone () const
 Copie. More...
 
Entrée des paramètres.
void setParamG (Graph const *g)
 
void setParamH (Graph const *h)
 
void setParamO (iSet o)
 
void setParamLIPs (LIP const *lips)
 
void setParamStep (OpeProjectionStep step)
 
Accès aux résultats.
bool getResult () const
 
- 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

Graph const * i_g
 Le premier graphe.
 
Graph const * i_h
 Le second graphe.
 
iSet i_o
 Le sommet de i_g dont la LIP vient d'être modifiée (si i_step = 0 ou 2).
 
LIP const * i_lips
 Pointeur sur le tableau des LIPs.
 
OpeProjectionStep i_step
 La phase d'exécution de l'algorithme de projection. More...
 
bool o_result
 Résultat : les LIPs sont-elles acceptables ou pas.
 
- Protected Attributes inherited from cogitant::OperationBase
bool m_stop
 Arrêt de l'exécution de l'opération demandé. More...
 

Additional Inherited Members

- 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

Cette opération calcule si l'ensemble des LIPs actuelles est acceptable.

Cette opération ne représente aucune contrainte particulière lors du calcul de projections. Par défaut, l'opération de projection ne dispose même pas d'une telle opération (elle a un pointeur NULL sur une OpeProjAcceptableLIPs). Il est par contre possible de définir une sous-classe de cette classe pour redéfinir le comportement : si getResult() retourne false, la configuration actuelle des LIPs est jugée inacceptable et le calcul des projections ne va pas plus loin. Si un tel résultat est obtenu lors de l'initialisation des LIPs, avant le début de l'algorithme de projection, le calcul des projections d'arrête ici. Par contre, si ce résultat négatif est obtenu pendant l'exécution de l'algorithme, un backtrack est effectué pour revenir en arrière et se diriger, peut-être, vers des LIPs acceptables.
Lors du calcul des projections d'un graphe i_g dans i_h, avec les LIPs calculées dans i_lips, alors que la LIP du sommet i_o vient d'être mise à jour, et que le calcul de projections des dans sa phase d'initialisation (si i_step = INITLIP), fin d'initialisation (si i_step = INITLIPEND, toutes les LIPs calculées initialement viennent d'être calculées) ou de calcul (si i_step = UPDATELIP), est-ce que les LIPs actuellement calculées permettent d'aller à une projection "intéressante" ?. A noter que l'opération peut être appelée avec un état particulier UPDATELIPBACKTRACK quand l'algorithme de calcul de projections fait un backtrack : dans ce cas, le résultat de l'opération n'est pas pris en compte, car l'algo de projection revient à un état qui avait été accepté plus tôt, et que ça n'aurait aucun sens de "refuser" un backtrack. L'intérêt d'un appel à l'opération dans ce cas est la possibilité de mettre à jour des structures de données propres à l'opération, car la LIP d'un sommet change.

Member Enumeration Documentation

◆ OpeProjectionStep

Phase d'exécution de l'algorithme de backtrack.

Enumerator
INITLIP 

Initialisation des LIPs avant début de l'algorithme de backtrack, i_o contient l'iSet du sommet de i_g dont la LIP vient d'être calculée.

INITLIPEND 

Fin de la phase d'initialisation des LIPs, i_o ne contient rien de pertinent.

UPDATELIP 

Mise à jour d'une LIP pendant l'algorithme de backtrack.

UPDATELIPBACKTRACK 

Mise à jour d'une LIP pour revenir à un état précédent lors d'un backtrack .

Constructor & Destructor Documentation

◆ OpeProjAcceptableLIPs()

cogitant::OpeProjAcceptableLIPs::OpeProjAcceptableLIPs ( Environment env)

Constructeur.

◆ ~OpeProjAcceptableLIPs()

cogitant::OpeProjAcceptableLIPs::~OpeProjAcceptableLIPs ( )

Destructeur.

Member Function Documentation

◆ check()

Error cogitant::OpeProjAcceptableLIPs::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.

◆ clone()

virtual OpeProjAcceptableLIPs* cogitant::OpeProjAcceptableLIPs::clone ( ) const
virtual

Copie.

◆ run()

void cogitant::OpeProjAcceptableLIPs::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.

Member Data Documentation

◆ i_step

OpeProjectionStep cogitant::OpeProjAcceptableLIPs::i_step
protected

La phase d'exécution de l'algorithme de projection.