In theory, yes. In practice, it will not scale well. Here is why: optimal planning is, in general, a problem with at least exponential complexity. When you have complexity like this, you can choose between two approaches: 1) explore the whole search space, trying very hard to prune and discard as much of it as you can as early as you can. This way you will have an optimal (in a sense that you will need to define) solution when (if) the search will complete. This is called "exhaustive search". 2) find ANY solution (it's generally much easier than to find an optimal one) and try to improve it changing bits of it. Repeat a lot of times, just in case it wasn't the best solution that can be. This is called "local search". Second approach in general finds worse solutions, but scales better. Optaplanner is built around it. On the contrary, in core.logic you will need to perform an exhaustive search to find an optimal solution.
However, for a large and complex planning problems you may need to find *any* plan that satisfies all constrains, not necessarily an optimal one. In this setting, core.logic can be useful to implement planning algorithm such as Graphplan. On Wednesday, April 16, 2014 12:49:43 PM UTC+4, Josh Kamau wrote: > > Can core.logic be used to implement something like > http://www.optaplanner.org<http://www.google.com/url?q=http%3A%2F%2Fwww.optaplanner.org&sa=D&sntz=1&usg=AFQjCNEeuEd5d3AgwEpRnacr4QYQyuFHzA> > > ? > > Josh > > > On Wed, Apr 16, 2014 at 9:36 AM, utel <umesh...@gmail.com <javascript:>>wrote: > >> Thanks Mikera and Andrew for the ideas. Some interesting suggestions >> there. I'll discuss these with my fellow devs. Much appreciated. >> >> >> On Tuesday, April 15, 2014 1:14:11 AM UTC+1, Andrew Chambers wrote: >>> >>> Clojure logic programming with core.logic (something akin to a sudoku >>> solver https://gist.github.com/swannodette/3217582 is a good example) >>> or using datomic to have a database with a time machine and datalog for >>> queries might be cool (perhaps visualizing the data in the database at >>> arbitrary times in the past). Both don't really have equivalents in other >>> languages. Other things that are hard to achieve in other languages would >>> involve the immutable data structures, concurrency, and macros. >>> >>> >>> On Monday, April 14, 2014 9:15:31 AM UTC+12, utel wrote: >>>> >>>> A handful of developers at the organisation I work at, want to >>>> encourage interest in Clojure with the aim of using it in production >>>> amongst the organisation's wider developer community (hundreds of >>>> developers). We ourselves are Clojure hobbyists. >>>> >>>> We wanted to do this through a basic project (with few moving parts), >>>> so I wanted to get feedback on a couple of aspects: >>>> 1. Examples of basic project ideas that would be compelling to fellow >>>> developers not familiar with Clojure (e.g. something useful that you can >>>> do >>>> easily with Clojure that's harder to do in more established languages such >>>> as Java) >>>> 2. Particular libraries that again had a wow factor towards an >>>> objective not easily achievable in more established languages (perhaps >>>> related to data analysis, visualisation, or taking advantage of the >>>> benefit >>>> of lazy evaluation in a novel way as examples). >>>> >>>> I realise these questions are somewhat open-ended, but just wanted to >>>> spark off some ideas for us through bouncing these questions off the >>>> google >>>> group's members. >>>> >>>> Thanks for any leads! >>>> >>>> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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 unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.