Hi,

Gecode doesn’t do a lot of preprocessing of the model. In particular, it 
doesn’t do any aliasing analysis or common subexpression elimination.  You 
could try a modelling language like MiniZinc, or implement your own 
preprocessing, if you need this stronger behaviour.

Cheers,
Guido

-- 
Guido Tack
http://www.csse.monash.edu/~guidot/



> On 22 Sep 2015, at 7:49 am, Neill Clift <neillcl...@live.com> wrote:
> 
> Hi,
> I am having a blast with Gecode! I have this small system to demonstrate 
> something I want to improve in my code:
> 
> e[0] == v[0]
> e[2] == v[1]
> e[4] == v[2]
> v[0] >= 1
> v[1] + v[0] >= 2
> v[2] + v[1] >= 1
> v[2] >= 1
> v[0] + v[1] + v[2] == 5
> e[4] + e[2] + e[0] == b[0]
> e[5] + e[2] + e[0] == b[3]
> 
> This gives me:
> b{[2..5], [1..5], [1..5], [1..5], [0..5], [0..5]} v{[1..4], [0..3], [1..4]}
> 
> So the code doesn't see that
> e[4] + e[2] + e[0] == b[0]
> e[0] == v[0]
> e[2] == v[1]
> e[4] == v[2]
> v[0] + v[1] + v[2] == 5
> 
> means that b[0] == 5.
> 
> A more complicated case is b[3] must be >= 2.
> Is the level of indirection (v -> e -> b) the problem or recognizing an 
> inequality is common to two expressions? I am guessing it's the second case.
> Is there a way to do this differently to get the better result?
> Thanks.
> Neill.
> 
> _______________________________________________
> Gecode users mailing list
> users@gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users

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

Reply via email to