toulbar2
Public Member Functions | Public Attributes | List of all members
CSProblem Class Reference
Inheritance diagram for CSProblem:
Inheritance graph
[legend]
Collaboration diagram for CSProblem:
Collaboration graph
[legend]

Public Member Functions

 CSProblem (int nbvar, int nbconst)
 
 CSProblem (int nbvar, int nbconst, int lower)
 
virtual int variable_domainsize (int var)
 
virtual int random_variable (Configuration *configuration)
 
virtual int random_conflict_variable (Configuration *configuration)
 
virtual int random_value (int var, int val)
 
virtual int min_conflict_value (int var, int val, Configuration *configuration)
 
virtual void init_domains (int nbvar, int s)
 
virtual void init_tabdomains (int s)
 
void compute_var_conflict (Configuration *configuration)
 
virtual void set_domains_connections (int *dom, vector< int > *tabledom, vector< int > *connect)
 
virtual void init_domain_tabdomain ()
 
- Public Member Functions inherited from OpProblem
virtual void incr_update_conflicts (IncrCSPConfiguration *configuration, Move *move)
 
virtual void fullincr_update_conflicts (FullincrCSPConfiguration *configuration, Move *move)
 
virtual void allocate_moves ()
 
virtual void best_config_verification ()
 
virtual Long compute_conflict (Configuration *configuration, int var, int val)
 
virtual Long config_evaluation (Configuration *configuration)
 
virtual int index2value (int index, int var)
 
virtual int value2index (int value, int var)
 

Public Attributes

int nbconst
 
vector< int > * tabdomains
 
int * domains
 
vector< int > * connections
 
- Public Attributes inherited from OpProblem
Configurationbest_config
 
int nbvar
 
int domainsize
 
Long lower_bound
 
Movecurrentmove
 
Movefirstmove
 
Movebestmove
 

Detailed Description

Finite domain CSP class

Constructor & Destructor Documentation

◆ CSProblem() [1/2]

CSProblem::CSProblem ( int  nbvar,
int  nbconst 
)

constructor

◆ CSProblem() [2/2]

CSProblem::CSProblem ( int  nbvar,
int  nbconst,
int  lower 
)

constructor with lower bound (stopping condition when it is reached)

References Configuration::config.

Member Function Documentation

◆ compute_var_conflict()

void CSProblem::compute_var_conflict ( Configuration configuration)
virtual

compute the variables in conflict : rebuilding the vector of conflict variables of the configuration

Reimplemented from OpProblem.

References Configuration::config, Configuration::get_conflicts_problem(), and Configuration::var_conflict.

◆ init_domain_tabdomain()

void CSProblem::init_domain_tabdomain ( )
virtual

initialization of the domains : call init_domains and init_tabdomains

References Configuration::config.

◆ init_domains()

void CSProblem::init_domains ( int  nbvar,
int  s 
)
virtual

standard domain initialization : a unique domain number 0 for all variables

◆ init_tabdomains()

void CSProblem::init_tabdomains ( int  s)
virtual

standard unique domain : integers from 0 to s-1

◆ min_conflict_value()

int CSProblem::min_conflict_value ( int  var,
int  val,
Configuration configuration 
)
virtual

a value in the domain minimizing the conflict with the configuration (implementation of Minton min-conflict heuristics) returns the index of the value in the domain

References Configuration::config, Configuration::get_conflicts_problem(), NeighborhoodSearch::val_conflict, and NeighborhoodSearch::var_conflict.

◆ random_conflict_variable()

int CSProblem::random_conflict_variable ( Configuration configuration)
virtual

a variable taking part to a conflict in the configuration

References Configuration::var_conflict.

◆ random_value()

int CSProblem::random_value ( int  var,
int  val 
)
virtual

a value for variable var, randomly chosen in its domain, if possible distinct with val : returns the index of the value in the domain

◆ random_variable()

int CSProblem::random_variable ( Configuration configuration)
virtual

a variable randomly chosen

References Configuration::var_conflict.

◆ set_domains_connections()

void CSProblem::set_domains_connections ( int *  dom,
vector< int > *  tabledom,
vector< int > *  connect 
)
virtual

set the domains and connections of a problem

Referenced by INCOP::NaryCSProblem::create_configuration().

◆ variable_domainsize()

int CSProblem::variable_domainsize ( int  var)
virtual

the domain size of variable var

Member Data Documentation

◆ connections

vector<int>* CSProblem::connections

connections table : for each variable, vector of connected variables

◆ domains

int* CSProblem::domains

for each variable, domain number : index in tabdomains array

◆ nbconst

int CSProblem::nbconst

constraint number

◆ tabdomains

vector<int>* CSProblem::tabdomains

domain array : each domain is implemented by a vector of integers