I would like to integrate counting-based branching heuristics in Gecode. Like 
AFC we need to collect information from each constraint in which a given 
variable appears. But our information is more involved than a simple updated 
failure count --- we have dedicated algorithms computing "solution densities" 
for variable-value pairs. We saw that we can define a Brancher to make an 
integrated choice of both variable and value. But to host our solution counting 
code we see two options:

1) In objects of a class Counter which, like Propagator, would inherit from 
Actor and subscribe to variables. They would mainly implement a 
getSolutionDensity(var,val) method and possibly react to domain events by 
updating data structures (via Advisors?).

2) By inheriting directly from Propagator, say in a class CountablePropagator, 
which may allow us to share data structures used by the propagator: for example 
for the regular constraint the layered graph is augmented with counters of 
incoming and outgoing paths at nodes.

What's your opinion?

Thanks,
Gilles

_______________________________________________
Gecode users mailing list
users@gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to