[gecode-users] odering information for unary scheduling constraints

Guido Tack tack at gecode.org
Mon Aug 23 09:41:04 CEST 2010


Kish Shen wrote:
> I am looking at the unary scheduling constraints, as I have just added them to the ECLiPSe gecode interface. ECLiPSe has both unary and cumulative constraints, which were added some time ago (more than 10 years ago now, I think), and for the unary constraint, there is a version with ordering booleans, where each pair of task has a 0/1 domain variable (BoolVar for gecode) associated with it, which specify the order of the pair of task (if i is before j or j before i for pair i,j).
> This seems to be very useful, because it can used to specify ordering if required, or be used in search to try the different orderings.
> 
> I guess for gecode, you would need to post extra reified constraints specifying the ordering? Does it make sense to move this into the unary constraint?

It's the same information that is expressed in an STN (Simple Temporal Network), and I'm currently implementing that.  It won't be part of the unary constraint, because it's really not tied to any particular resource, but it's shared between all resources (tasks can be on more than one resource, but there's only one order among all tasks).

> I was also looking at the global constraint catalog, to see if they have a unary constraint with ordering. I found disj, which specify ordering in a different way: for each task, there is a set variable that gives/specify the tasks that happen earlier, and a variable position that gives the absolute order of the task. The description then mention that the algorithm for shaving the position attribute is implemented in gecode. Is this in the unary constraint? Is it used internally? I can't see any ordering information that can be accessed from the outside in the description of the unary constraint, or have I missed something?

The information in the global constraint catalog is not correct.  Gecode has disjunctive, but not disj.  I'll let them know.

Cheers,
	Guido

-- 
Guido Tack, http://people.cs.kuleuven.be/~guido.tack/




More information about the users mailing list