SiGraph: sulcal graphs


sigraph::ModelFinder Class Referenceabstract

Chercheur de modèle (classe abstraite). More...

#include <si/finder/modelFinder.h>

Inheritance diagram for sigraph::ModelFinder:
Collaboration diagram for sigraph::ModelFinder:

Public Member Functions

virtual ~ModelFinder ()
 
const MGraphmGraph () const
 
virtual carto::AttributedObjectselectModel (const Clique *cl)=0
 Choisit le noeud modèle dans le MGraph en fonction de la clique.
 
virtual double potential (const Clique *cl)
 Donne le potentiel d'une clique.
 
virtual double potential (const Clique *cl, std::map< Vertex *, std::string > &changes)
 Donne le potentiel d'une clique, après une transformation de labels de noeuds, en ne le recalculant que si les labels ayant changé changent effectivement le potentiel.
 
virtual double update (const Clique *cl)
 Fait un update() sur le modèle sous-jacent.
 
virtual double update (const Clique *cl, std::map< Vertex *, std::string > &changes)
 Fait un update() sur le modèle sous-jacent.
 
virtual bool isAdaptive () const
 peut apprendre ?
 
virtual void clear ()
 nettoie les variables & caches éventuels
 
virtual double printDescription (Clique *cl, bool naming=false)
 Calcule le potentiel et garde le(s) vecteur(s) de description de la clique.
 
virtual void initCliques (CGraph &data, bool verbose=true, bool withCache=false, bool translateLabels=true, bool checkLabels=true, const aims::SelectionSet *sel=0)
 Initialize cliques of data graph using the current model.
 

Protected Member Functions

 ModelFinder (MGraph &rg)
 

Protected Attributes

MGraph_mgraph
 

Detailed Description

Chercheur de modèle (classe abstraite).

Interface entre MGraph / CGraph et Model.

Cet élément a pour fonction de trouver l'élément Model du graphe modèle en fonction de la clique. Cela consiste en:

  • choisir un modèle dans le graphe modèle en fonction de la clique: fonction ModelFinder::selectModel, à définir.
  • calculer le potentiel de la clique en utilisant le modèle: fonction ModelFinder::potential. Normalement on n'a pas besoin de redéfinir cette fonction, qui utilise makeVector(). C'est en principe cette fonction qui sera utilisée dans l'interface avec les graphes.
  • une variante de la fonction ModelFinder::potential prend en paramètre supplémentaire une liste (de type map, en fait) de noeuds avec chacun une étiquette associée. Cette liste contient les noeuds dont l'étiquette a changé depuis la dernière évaluation du potentiel de la clique, avec l'étiquette d'origine de chaque noeud. Cette fonction est utilisée en particulier au cours du recuit simulé, et est destinée à optimiser le calcul du potentiel dans le cas particulier d'évaluations successives avec des étiquettes différentes, soit en l'effectuant par différences si cela est possible, soit en ne le recalculant pas lorsque ce n'est pas nécessaire (si les changements n'influent pas sur le potentiel). Dans ce dernier cas, il suffit de renvoyer le potentiel précédent, qui est normalement stocké dans l'attribut "potential". Par défaut, cette fonction ne tient pas compte des changements qui lui sont précisés et appelle le calcul complet du potentiel.

Definition at line 63 of file modelFinder.h.

Constructor & Destructor Documentation

◆ ~ModelFinder()

virtual sigraph::ModelFinder::~ModelFinder ( )
virtual

◆ ModelFinder()

sigraph::ModelFinder::ModelFinder ( MGraph & rg)
protected

Member Function Documentation

◆ clear()

virtual void sigraph::ModelFinder::clear ( )
inlinevirtual

nettoie les variables & caches éventuels

Reimplemented in sigraph::FoldFinder.

Definition at line 97 of file modelFinder.h.

◆ initCliques()

virtual void sigraph::ModelFinder::initCliques ( CGraph & data,
bool verbose = true,
bool withCache = false,
bool translateLabels = true,
bool checkLabels = true,
const aims::SelectionSet * sel = 0 )
virtual

Initialize cliques of data graph using the current model.

The default implementation only makes cliques of nodes with the same label, regardless of the model (only useful for morphometry-like applications).

  • If a selection is provided, it is used to translate labels.
  • The translateLabels option is only used if no selection is provided. In this case it decides whether to make a selection "identity" (with no labels translation) or to use the model and a labels hierarchy (
    See also
    LabelsTranslator) to select/group labels. To make it usable, the model has to provide elements with labels so the default implementation doesn't take care of it, it will only be useful for specialized ModelFinders (
    FoldFinder)

Reimplemented in sigraph::ArnaudFinder, sigraph::FoldFinder, sigraph::FunctionalSketchFinder, sigraph::SulcalSketchFinder, and sigraph::SurfaceBasedFunctionalSketchFinder.

◆ isAdaptive()

bool sigraph::ModelFinder::isAdaptive ( ) const
inlinevirtual

peut apprendre ?

Reimplemented in sigraph::AdapFinder.

Definition at line 138 of file modelFinder.h.

◆ mGraph()

const MGraph & sigraph::ModelFinder::mGraph ( ) const
inline

Definition at line 68 of file modelFinder.h.

References _mgraph.

◆ potential() [1/2]

virtual double sigraph::ModelFinder::potential ( const Clique * cl)
virtual

Donne le potentiel d'une clique.

Parameters
clclique à décrire
Returns
potentiel de la clique

◆ potential() [2/2]

virtual double sigraph::ModelFinder::potential ( const Clique * cl,
std::map< Vertex *, std::string > & changes )
virtual

Donne le potentiel d'une clique, après une transformation de labels de noeuds, en ne le recalculant que si les labels ayant changé changent effectivement le potentiel.

Parameters
clclique à décrire
changesliste des noeuds dont le label a changé, avec pour chacun le label d'origine (avant changement), le changement doit déjà être effectué
Returns
potentiel

◆ printDescription()

virtual double sigraph::ModelFinder::printDescription ( Clique * cl,
bool naming = false )
virtual

Calcule le potentiel et garde le(s) vecteur(s) de description de la clique.

Les vecteurs sont mis en attribut dans la clique, sous les attributs "pot_vector" et "pot_vector_norm" (avant et après normalisation)

◆ selectModel()

virtual carto::AttributedObject * sigraph::ModelFinder::selectModel ( const Clique * cl)
pure virtual

◆ update() [1/2]

virtual double sigraph::ModelFinder::update ( const Clique * cl)
virtual

Fait un update() sur le modèle sous-jacent.

Returns
différence de potentiel

◆ update() [2/2]

virtual double sigraph::ModelFinder::update ( const Clique * cl,
std::map< Vertex *, std::string > & changes )
virtual

Fait un update() sur le modèle sous-jacent.

Returns
différence de potentiel

Member Data Documentation

◆ _mgraph

MGraph& sigraph::ModelFinder::_mgraph
protected

Definition at line 126 of file modelFinder.h.

Referenced by mGraph().


The documentation for this class was generated from the following file: