Wow, thanks for the great information everyone. David – I don't know how we'll make it pluggable, I was thinking users could provide functions that return a set of constraints. And there would probably be a cost function that users could override as well.
On Oct 24, 3:26 pm, Jamie Brandon <ja...@scattered-thoughts.net> wrote: > Ok, clearly I've not been keeping up, sorry :) > > On 24 October 2012 18:17, David Nolen <dnolen.li...@gmail.com> wrote: > > > > > > > > > On Wed, Oct 24, 2012 at 6:07 PM, Jamie Brandon > > <ja...@scattered-thoughts.net> wrote: > > >> It sounds like something that would benefit from good constraint > >> propagation. If I remember correctly, core.logic only support > >> propagating equality/inequality constraints which can be pretty slow > >> for exploring large domains. Something like gecode > >> (http://www.gecode.org) might be a better fit if you want to use large > >> integer domains. > > >> Where core.logic lvars can only be assigned or fresh, gecode > >> explicitly represents the domain of each variable and can efficiently > >> propagate constraints across them. In your example, x and y would both > >> have domain [0,5]. If you added the constraint x >=3, after > >> propagation you would have x: [3,5] y:[0,2] > > > Not true anymore - we have interval propagation and we actually leverage it > > unlike the Scheme cKanren implementation. There's still plenty of room for > > improvement. > > >> Gecode also has support for custom search strategies which would allow > >> writing heuristics for minimisation. I'm not sure if gecode would ever > >> be as fast as a linear programming solution but it's certainly more > >> flexible. > > > Yes this what I was talking about when I referred to the Mozart/Oz > > distribute facility. This is pretty simple to add to core.logic as far as I > > can tell as I've stated earlier. > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clojure@googlegroups.com > > Note that posts from new members are moderated - please be patient with your > > first post. > > To unsubscribe from this group, send email to > > clojure+unsubscr...@googlegroups.com > > For more options, visit this group at > >http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en