[gecode-users] Iterating/filtering IntView in Gecode 3.x
Peter Vanhee
peter.vanhee at gmail.com
Fri Mar 19 16:34:23 CET 2010
Great! Looking forward to read the draft.
Best,
Peter
On 19 Mar 2010, at 15:55, Christian Schulte wrote:
> Peter,
>
> the changelog for the transitions from 1.* to 2.* and 2.* to 3.* actually
> tells you what and how to change.
>
> Then, we are currently in the process of writing "Modeling and Programming
> with Gecode". Please give me 30 minutes to send out an annoucement of a
> draft. The draft has a chapter that addresses your problem!
>
> Christian
>
> --
> Christian Schulte, www.ict.kth.se/~cschulte/
>
>
> -----Original Message-----
> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
> Of Peter Vanhee
> Sent: Friday, March 19, 2010 3:47 PM
> To: users at gecode.org
> Subject: [gecode-users] Iterating/filtering IntView in Gecode 3.x
>
> Hey all,
>
> I have more or less the same problem as mentioned here:
> http://thread.gmane.org/gmane.comp.lib.gecode.user/919,
> however the solution seems to be outdated for gecode 3.x: e.g.
> GECODE_AUTOARRAY is not existing anymore etc.
>
> Within the binary propagator, and when one variable is assigned (x0), I need
> to filter values in the other variable (x1).
> What I do right now is:
>
> // loop over all values of x1 and push to remove if necessary
> vector<int> remove;
> for (IntVarValues i(*x1); i(); ++i) {
> if (!predicate(home, x0->val(), i.val())) remove.push_back(i.val());
> }
>
> // remove values from domain
> for(vector<int>::iterator i=remove.begin(); i!=remove.end(); ++i) {
> GECODE_ME_CHECK(x1->nq(_home, r));
> }
>
>
> This is not at all efficient: 90% of the time is spent in
> Int::IntVarImp::nq_full, and 38% in Int::IntVarImp::RangeList::min().
> How can I change this?
>
> I have variables with big domains (into the millions of values) that have
> few continuous ranges.
>
> Thanks,
> Peter
>
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
More information about the users
mailing list