[gecode-users] Advisor on a ViewArray and index of assigned variable

Christian Schulte cschulte at kth.se
Mon Nov 9 20:20:51 CET 2015


Hi,

 

An advisor subscribes to a particular variable implementation through a view hence, the only information that is available by default is which advisor is executed and what is the delta. 

 

Additional information – such as the position of an advisor in a view array – must be explicitly stored in the advisor, there is no way around it.

 

Cheers

Christian

 

--

Christian Schulte,  <http://www.gecode.org/~schulte> www.gecode.org/~schulte 

Professor of Computer Science, KTH,  <mailto:cschulte at kth.se> cschulte at kth.se

Expert Researcher, SICS,  <mailto:cschulte at sics.se> cschulte at sics.se

 

From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf Of Valentin Lemière
Sent: Monday, November 9, 2015 04:56 PM
To: users at gecode.org
Subject: [gecode-users] Advisor on a ViewArray and index of assigned variable

 

Hello everyone,

 

I am a PhD. student and I am currently looking at Gecode to see if it'll fit my needs.

 

I need to implement a global constraint on a large number of boolean variables. So I have extended from NaryPropagator with a view of type BoolView.

When a variable is assigned, the propagator infers some knowledge and may assign other variable(s).

 

To get the required information, I added an Advisor to each variable, storing its index; so I can get it in the advise method and provide it to the propagator.

But this technique is too slow and creates too much advisors.

 

So I tried adding an Advisor directly to the ViewArray; the advise function is correctly called and I can still get whether the variable was assigned a zero or a one with the delta.

But I don't get the index information to find the actual assigned variable.

I looked for a static method of ViewArray to convert the delta to this information but couldn't find one.

 

Can an Advisor on a ViewArray get the index of the assigned variable?

Or is there another way to deal with a large number of variables other than an Advisor per variable?

 

Regards,

Valentin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20151109/48825b3f/attachment.html>


More information about the users mailing list