class CSProblem

Classe che rappresenta un Problema di Soddisfacimento di Vincoli (Constraint Statisfaction Problem)

Public Methods

[more] CSProblem ()
Costruttore di default
[more] CSProblem (const CSProblem& csp)
Costruttore per copia
[more] ~CSProblem ()
Distruttore
[more]CSProblem& operator= (const CSProblem& csp)
Operatore di assegnamento
[more]void readProgram (const std::string& program) throw(ParserException)
Inizializza il CSProblem leggendo il programma da una stringa
[more]std::string toString () const
Restituisce una stringa contenente il listato del programma
[more]void addVariable (Variable *v)
Aggiunge una nuova variabile
[more]void delVariable (Variable *v)
Elimina una variabile e tutti i vincoli in cui è coinvolta
[more]void addVariable (const std::string& v) throw(ParserException)
Aggiunge una nuova variabile di nome v
[more]void delVariable (const std::string& v) throw(VarException)
Elimina una variabile e tutti i vincoli in cui è coinvolta dato il suo nome v
[more]bool isDeclared (const std::string& v) const
Dice se una variabile e' stata dichiarata dato il suo nome
[more]Variable* getVariable (const std::string& v) const throw(VarException)
Restituisce una variabile dato il suo nome (se esiste)
[more]VarVector* getVariables () const
Restituisce la lista di tutte le variabili
[more]void addConstraint (Constraint *c) throw(VarException)
Aggiunge un vincolo al problema
[more]void delConstraint (Constraint *c)
Elimina un vincolo del problema
[more]void addConstraint (const std::string &v) throw(VarException, ParserException)
Aggiunge un vincolo al problema data una stringa che ne rappresenta l'espressione
[more]ConstraintVector* getConstraints () const
Restituisce la lista dei vincoli
[more]Variable* getCurrentVariable () const
Restituisce la variabile appena istanziata
[more]VarVector* getFutureVariables () const
Restituisce la lista delle variabili non ancora istanziate
[more]VarVector* getIstantiatedVariables () const
Restituisce la lista delle variabili già istanziate
[more]VarVector* getInvolvedVariables (Constraint *c) const throw(VarException)
Restituisce la lista delle variabili coinvolte in un vincolo
[more]VarVector* getInvolvedVariables (ConstraintVector *c) const throw(VarException)
Restituisce la lista delle variabili coinvolte in almeno uno dei vincoli
[more]ConstraintVector* getConstraints (Variable *v) const
Restituisce la lista dei vincoli che contengono la variabile specificata
[more]ConstraintVector* getConstraints (VarVector *v) const
Restituisce la lista dei vincoli che contengono ognuno tutte le variabili specificate
[more]void setPropagationAlgorithm (PropagationAlgorithm *p)
Imposta l'algoritmo di propagazione
[more]void setVariableHeuristic (VariableHeuristic *v)
Imposta l'euristica di scelta della variabile
[more]void setValueHeuristic (ValueHeuristic *v)
Imposta l'euristica di scelta del valore
[more]void setNumSolutions (int n)
Imposta il numero di soluzioni richieste
[more]void setAllSolutions ()
Imposta la richiesta di avere in uscita tutte le soluzioni
[more]PropagationAlgorithm* getPropagationAlgorithm () const
Restituisce l'algoritmo di propagazione
[more]VariableHeuristic* getVariableHeuristic () const
Restituisce l'euristica di scelta della variabile
[more]ValueHeuristic* getValueHeuristic () const
Restituisce l'euristica di scelta del valore
[more]int getNumSolutions () const
Restituisce il numero di soluzioni richieste
[more]CSProblem* applyArcConsistency ()
Crea un nuovo problema applicando l'arc-consistenza
[more]SolutionVector* solve () throw(VarException)
Risolve il problema utilizzando l'algoritmo di propagazione specificato in precedenza
[more]SolutionVector* solveSB () throw(VarException)
Risolve il problema utilizzando lo Standard Backtracking

Private Fields

[more]int numSolutions
Indica quante soluzioni sono richieste
[more]Variable* curVar
Puntatore alla variabile corrente
[more]VarVector* vv
Contiene le variabili del problema
[more]ConstraintVector* cv
Contiene i vincoli del problema
[more]PropagationAlgorithm* propAlgorithm
Algoritmo di propagazione
[more]VariableHeuristic* varHeuristic
Euristica di scelta della variabile
[more]ValueHeuristic* valHeuristic
Euristica di scelta del valore
[more] varStack
Stack per il salvataggio dello stato delle variabili

Private Methods

[more]bool solve1 (SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione
[more]bool solve2 (SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione
[more]bool solveSB1 (SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione per lo Standard BackTracking
[more]bool solveSB2 (SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione per lo Standard BackTracking
[more]bool noEmptyDomains () const
Verifica che non ci siano variabili con dominio vuoto
[more]bool checkConstraints () const throw(VarException)
Verifica se ci sono vincoli violati dalle variabili istanziate
[more]bool allIstantiatedVariables () const
Verifica se tutte le variabili sono istanziate
[more]void storeVariables ()
Salva lo stato attuale delle variabili nello stack
[more]void restoreVariables ()
Ripristina lo stato precedente delle variabili dallo stack

Documentation

Classe che rappresenta un Problema di Soddisfacimento di Vincoli (Constraint Statisfaction Problem)
o CSProblem()
Costruttore di default

o CSProblem(const CSProblem& csp)
Costruttore per copia

o ~CSProblem()
Distruttore

oCSProblem& operator=(const CSProblem& csp)
Operatore di assegnamento

ovoid readProgram(const std::string& program) throw(ParserException)
Inizializza il CSProblem leggendo il programma da una stringa

ostd::string toString() const
Restituisce una stringa contenente il listato del programma

ovoid addVariable(Variable *v)
Aggiunge una nuova variabile

ovoid delVariable(Variable *v)
Elimina una variabile e tutti i vincoli in cui è coinvolta

ovoid addVariable(const std::string& v) throw(ParserException)
Aggiunge una nuova variabile di nome v

ovoid delVariable(const std::string& v) throw(VarException)
Elimina una variabile e tutti i vincoli in cui è coinvolta dato il suo nome v

obool isDeclared(const std::string& v) const
Dice se una variabile e' stata dichiarata dato il suo nome

oVariable* getVariable(const std::string& v) const throw(VarException)
Restituisce una variabile dato il suo nome (se esiste)

oVarVector* getVariables() const
Restituisce la lista di tutte le variabili

ovoid addConstraint(Constraint *c) throw(VarException)
Aggiunge un vincolo al problema

ovoid delConstraint(Constraint *c)
Elimina un vincolo del problema

ovoid addConstraint(const std::string &v) throw(VarException, ParserException)
Aggiunge un vincolo al problema data una stringa che ne rappresenta l'espressione

oConstraintVector* getConstraints() const
Restituisce la lista dei vincoli

oVariable* getCurrentVariable() const
Restituisce la variabile appena istanziata

oVarVector* getFutureVariables() const
Restituisce la lista delle variabili non ancora istanziate

oVarVector* getIstantiatedVariables() const
Restituisce la lista delle variabili già istanziate

oVarVector* getInvolvedVariables(Constraint *c) const throw(VarException)
Restituisce la lista delle variabili coinvolte in un vincolo

oVarVector* getInvolvedVariables(ConstraintVector *c) const throw(VarException)
Restituisce la lista delle variabili coinvolte in almeno uno dei vincoli

oConstraintVector* getConstraints(Variable *v) const
Restituisce la lista dei vincoli che contengono la variabile specificata

oConstraintVector* getConstraints(VarVector *v) const
Restituisce la lista dei vincoli che contengono ognuno tutte le variabili specificate

ovoid setPropagationAlgorithm(PropagationAlgorithm *p)
Imposta l'algoritmo di propagazione

ovoid setVariableHeuristic(VariableHeuristic *v)
Imposta l'euristica di scelta della variabile

ovoid setValueHeuristic(ValueHeuristic *v)
Imposta l'euristica di scelta del valore

ovoid setNumSolutions(int n)
Imposta il numero di soluzioni richieste

ovoid setAllSolutions()
Imposta la richiesta di avere in uscita tutte le soluzioni

oPropagationAlgorithm* getPropagationAlgorithm() const
Restituisce l'algoritmo di propagazione

oVariableHeuristic* getVariableHeuristic() const
Restituisce l'euristica di scelta della variabile

oValueHeuristic* getValueHeuristic() const
Restituisce l'euristica di scelta del valore

oint getNumSolutions() const
Restituisce il numero di soluzioni richieste

oCSProblem* applyArcConsistency()
Crea un nuovo problema applicando l'arc-consistenza

oSolutionVector* solve() throw(VarException)
Risolve il problema utilizzando l'algoritmo di propagazione specificato in precedenza

oSolutionVector* solveSB() throw(VarException)
Risolve il problema utilizzando lo Standard Backtracking

obool solve1(SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione

obool solve2(SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione

obool solveSB1(SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione per lo Standard BackTracking

obool solveSB2(SolutionVector *sv) throw(VarException)
Funzione ausiliaria di risoluzione per lo Standard BackTracking

obool noEmptyDomains() const
Verifica che non ci siano variabili con dominio vuoto

obool checkConstraints() const throw(VarException)
Verifica se ci sono vincoli violati dalle variabili istanziate

obool allIstantiatedVariables() const
Verifica se tutte le variabili sono istanziate

ovoid storeVariables()
Salva lo stato attuale delle variabili nello stack

ovoid restoreVariables()
Ripristina lo stato precedente delle variabili dallo stack

oint numSolutions
Indica quante soluzioni sono richieste

oVariable* curVar
Puntatore alla variabile corrente

oVarVector* vv
Contiene le variabili del problema

oConstraintVector* cv
Contiene i vincoli del problema

oPropagationAlgorithm* propAlgorithm
Algoritmo di propagazione

oVariableHeuristic* varHeuristic
Euristica di scelta della variabile

oValueHeuristic* valHeuristic
Euristica di scelta del valore

o varStack
Stack per il salvataggio dello stato delle variabili


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.