Hi,
  I am just wondering how gecode works. What I think is the following

1. We create the variables and domains
2. Then we post constraints
3. Then we define the branching
4. We start searching. ( I am here referring to the DFS search)
       1. the search will do the propagation, if any inconsistency found 
then fail immediately
       2. then branching will produce a variable-value pair through the 
description() method
       3. then commit() will produce a binary branching
             a. variable = value , left
             b. variable != value. right
       4. the search will continue picking up the left branch and call 
the propagation method, if failed, it will try the right branch.

Is this correct ?

My questions are
1. When we post constraints, for example  
    rel <cid:[email protected]>(Space 
<cid:[email protected]>* home, IntVar 
<cid:[email protected]> x0, IntRelType 
<cid:[email protected]> r 
<cid:[email protected]>, int n 
<cid:[email protected]>, IntConLevel 
<cid:[email protected]>, PropKind 
<cid:[email protected]>)
    Does gecode create any propagator for this ? I have looked at the 
rel.cc file the implementation, but it seems like it doesn't create any 
propagator. How does it get called from space->status() ??

2. When I execute the following code      
    x.eq <cid:[email protected]>(home,n) ==> x is 
IntView and n is an Integer.
    is the variable ( IntVar ) that the x refers to, is assigned to 'n' 
immediately ? or it will be assigned when space->status() method is called ?

I am sorry if these questions are too basic. I am trying to understand 
how gecode works a bit more thoroughly.

With regards
Debdeep

-- 
Debdeep Banerjee
PhD Candidate
CSL/RSISE/NICTA
Australian National University
Email: [EMAIL PROTECTED]
Web:http://rsise.anu.edu.au/~banerjed



_______________________________________________
Gecode users mailing list
[EMAIL PROTECTED]
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to