Hi Tias,
it's slightly complicated (and it has changed in Gecode 4). The default search
is implemented in gecode/flatzinc/flatzinc.cpp in function createBranchers, and
the defaults in 4.0.0 are
branch(*this, iv_sol, INT_VAR_AFC_SIZE_MAX(0.99), INT_VAL_MIN());
branch(*this, bv_sol, INT_VAR_AFC_MAX(0.99), INT_VAL_MIN());
branch(*this, fv_sol, FLOAT_VAR_SIZE_MIN(), FLOAT_VAL_SPLIT_MIN());
branch(*this, sv_sol, SET_VAR_AFC_SIZE_MAX(0.99), SET_VAL_MIN_INC());
where iv_sol are the variables mentioned in the output statement and not
mentioned in an explicit search annotation, and
branch(fzs,fzs.iv_aux,INT_VAR_AFC_SIZE_MAX(),INT_VAL_MIN());
branch(fzs,fzs.bv_aux,INT_VAR_AFC_MAX(),INT_VAL_MIN());
branch(fzs,fzs.sv_aux,SET_VAR_AFC_SIZE_MAX(),SET_VAL_MIN_INC());
branch(fzs,fzs.fv_aux,FLOAT_VAR_AFC_SIZE_MAX(),FLOAT_VAL_SPLIT_MIN());
where iv_aux are variables introduced by mzn2fzn that are not functionally
defined.
I'm planning to introduce annotations default_{int,bool,set,float}_search that
you can stick on the solve item to change the default for the different
variable types - would that be useful?
Cheers,
Guido
On 16/04/2013, at 2:22 AM, Tias Guns <[email protected]> wrote:
> Hi Guido,
>
> What is the default search strategy of gecode's fz interpreter?
>
> Its default search works really well on one group of variables, but less on
> the other. I want to change it for the other, but whatever I do the search is
> a lot slower (because of worse choices on the variables I do not wish to
> change the order on)...
>
> I couldn't find it on http://www.gecode.org/flatzinc.html or MPG.
>
>
> Thanks,
> Tias
>
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
>
> _______________________________________________
> Gecode users mailing list
> [email protected]
> https://www.gecode.org/mailman/listinfo/gecode-users
_______________________________________________
Gecode users mailing list
[email protected]
https://www.gecode.org/mailman/listinfo/gecode-users