HI, we don't have a planner per se in OpenCog right now, what we have
is a probabilistic logic backward chainer...

https://wiki.opencog.org/w/PLN_Backward_Chaining

here are some simple example scripts using the backward chainer

https://github.com/opencog/opencog/tree/master/examples/pln/sumo

Using the backward chainer as a planner would not be hard and could be
done via using special control heuristics and/or explicitly
representing temporal knowledge in the ATomspace...

ben

On Tue, Jan 2, 2018 at 1:32 PM, Ramin Barati <[email protected]> wrote:
> Hi Ben,
>
> Thank you for your timely response. Are there any documentation, tutorials
> or examples available on wiki for the planner? If we could show some proof
> of concept,  we may be able to persuade the biz side to let us help Nil on
> completing the planner.
>
> On Mon, Jan 1, 2018 at 4:57 PM Ben Goertzel <[email protected]> wrote:
>>
>> PLN backward chainer can solve that in principle, but it may be quite
>> slow at doing so currently... Nil is working on fancy methods to speed
>> it up...
>>
>> On Mon, Jan 1, 2018 at 9:02 PM, Ramin Barati <[email protected]> wrote:
>> > Hi Ben, Linas, etc
>> >
>> > I am trying to solve a resource allocation problem; assigning planes to
>> > flights.
>> >
>> > Here is the domain definition in PDDL:
>> >
>> >
>> > -------------------------------------------------------------------------------------
>> > (define (domain flight-plan)
>> > (:requirements :strips :typing :action-costs)
>> > (:types
>> > location localable leg - object
>> > airport - location
>> > register - localable
>> > )
>> > (:predicates
>> > (at ?o - localable ?l - location)
>> > (assigned ?l - leg)
>> > (assigned-to ?l - leg ?r - register)
>> > (source ?l - leg ?a - airport)
>> > (destination ?l - leg ?a - airport)
>> > )
>> > (:functions
>> > (start ?l - leg) - number
>> > (duration ?l - leg ?r - register) - number
>> > (pax ?l - leg) - number
>> > (capacity ?r - register) - number
>> > (assignement-cost ?l - leg ?r - register) - number
>> > (timeline ?r - register) - number
>> > (total-cost) - number
>> > )
>> > (:action asgn
>> > :parameters (?l - leg ?r - register ?src ?dest - airport)
>> > :precondition (and
>> > (> (start ?l) (timeline ?r))
>> > (source ?l ?src)
>> > (destination ?l ?dest)
>> > (at ?r ?src)
>> > (not (assigned ?l))
>> > (> (capacity ?r) (pax ?l))
>> > )
>> > :effect (and
>> > (decrease (timeline ?r) (timeline ?r))
>> > (increase (timeline ?r) (+ (start ?l) (duration ?l ?r)))
>> > (not (at ?r ?src))
>> > (at ?r ?dest)
>> > (assigned ?l)
>> > (assigned-to ?l ?r)
>> > (increase (total-cost) (assignement-cost ?l ?r))
>> > )
>> > )
>> > (:action shift-left-sixty
>> > :parameters (?l - leg)
>> > :precondition (and
>> > (not (assigned ?l))
>> > (> (start ?l) 60)
>> > )
>> > :effect (and
>> > (decrease (start ?l) 60)
>> > )
>> > )
>> > (:action shift-right-sixty
>> > :parameters (?l - leg)
>> > :precondition (and
>> > (not (assigned ?l))
>> > (< (start ?l) 1380)
>> > )
>> > :effect (and
>> > (increase (start ?l) 60)
>> > )
>> > )
>> > )
>> >
>> > -------------------------------------------------------------------------------------
>> >
>> > and here is a sample problem:
>> >
>> >
>> > -------------------------------------------------------------------------------------
>> >  (define (problem assignment)
>> > (:domain flight-plan)
>> > (:objects
>> > THR-SRY SRY-THR THR-ISF ISF-THR - leg
>> > MOC JHH MNT - register
>> > thr sry isf - airport
>> > )
>> > (:init
>> > (= (total-cost) 0)
>> > (at MOC thr)
>> > (at JHH thr)
>> > (at MNT thr)
>> > (= (capacity MOC) 100)
>> > (= (timeline MOC) 0)
>> > (= (capacity JHH) 200)
>> > (= (timeline JHH) 0)
>> > (= (capacity MNT) 280)
>> > (= (timeline MNT) 0)
>> > (source THR-SRY thr)
>> > (destination THR-SRY sry)
>> > (= (start THR-SRY) 600)
>> > (= (pax THR-SRY) 90)
>> > (source SRY-THR sry)
>> > (destination SRY-THR thr)
>> > (= (start SRY-THR) 720)
>> > (= (pax SRY-THR) 150)
>> > (source THR-ISF thr)
>> > (destination THR-ISF isf)
>> > (= (start THR-ISF) 720)
>> > (= (pax THR-ISF) 220)
>> > (source ISF-THR isf)
>> > (destination ISF-THR thr)
>> > (= (start ISF-THR) 900)
>> > (= (pax ISF-THR) 190)
>> > (= (assignement-cost THR-SRY MOC) 1)
>> > (= (assignement-cost SRY-THR MOC) 1)
>> > (= (assignement-cost THR-ISF MOC) 1)
>> > (= (assignement-cost ISF-THR MOC) 1)
>> > (= (assignement-cost THR-SRY JHH) 1)
>> > (= (assignement-cost SRY-THR JHH) 1)
>> > (= (assignement-cost THR-ISF JHH) 1)
>> > (= (assignement-cost ISF-THR JHH) 1)
>> > (= (assignement-cost THR-SRY MNT) 1)
>> > (= (assignement-cost SRY-THR MNT) 1)
>> > (= (assignement-cost THR-ISF MNT) 1)
>> > (= (assignement-cost ISF-THR MNT) 1)
>> > (= (duration THR-SRY MOC) 180)
>> > (= (duration SRY-THR MOC) 180)
>> > (= (duration THR-ISF MOC) 120)
>> > (= (duration ISF-THR MOC) 120)
>> > (= (duration THR-SRY JHH) 180)
>> > (= (duration SRY-THR JHH) 180)
>> > (= (duration THR-ISF JHH) 120)
>> > (= (duration ISF-THR JHH) 120)
>> > (= (duration THR-SRY MNT) 180)
>> > (= (duration SRY-THR MNT) 180)
>> > (= (duration THR-ISF MNT) 120)
>> > (= (duration ISF-THR MNT) 120)
>> > )
>> > (:goal (and
>> > (at MOC thr)
>> > (at JHH thr)
>> > (at MNT thr)
>> > (assigned THR-SRY)
>> > (assigned SRY-THR)
>> > (assigned THR-ISF)
>> > (assigned ISF-THR)
>> > ))
>> > (:metric minimize (total-cost))
>> > )
>> >
>> > -------------------------------------------------------------------------------------
>> >
>> > Is it possible to use OpenCog planner and Atomese to solve this problem?
>> >
>> > Regards,
>> > Ramin
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "opencog" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to [email protected].
>> > To post to this group, send email to [email protected].
>> > Visit this group at https://groups.google.com/group/opencog.
>> > To view this discussion on the web visit
>> >
>> > https://groups.google.com/d/msgid/opencog/CAHmauB6Wh6DEJcF_2KoCSD%2BapWaeJtkKSPCT7%2Bd5K96c_tuRnA%40mail.gmail.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> Ben Goertzel, PhD
>> http://goertzel.org
>>
>> "In the province of the mind, what one believes to be true is true or
>> becomes true, within certain limits to be found experientially and
>> experimentally. These limits are further beliefs to be transcended. In
>> the mind, there are no limits.... In the province of connected minds,
>> what the network believes to be true, either is true or becomes true
>> within certain limits to be found experientially and experimentally.
>> These limits are further beliefs to be transcended. In the network's
>> mind there are no limits." -- John Lilly
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "opencog" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/opencog.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/opencog/CACYTDBc-p%2B6aiM31inno12QBNahTKQmu1fmFrNL4NV9BZ2UMmQ%40mail.gmail.com.
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/CAHmauB4Lp-SyBwTOgfXvX0VKJ6QBxKHFenLqR-2%3DOKwJwW%2BBdQ%40mail.gmail.com.
>
> For more options, visit https://groups.google.com/d/optout.



-- 
Ben Goertzel, PhD
http://goertzel.org

"In the province of the mind, what one believes to be true is true or
becomes true, within certain limits to be found experientially and
experimentally. These limits are further beliefs to be transcended. In
the mind, there are no limits.... In the province of connected minds,
what the network believes to be true, either is true or becomes true
within certain limits to be found experientially and experimentally.
These limits are further beliefs to be transcended. In the network's
mind there are no limits." -- John Lilly

-- 
You received this message because you are subscribed to the Google Groups 
"opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/opencog/CACYTDBfd59QPVZUEVtMjSNzRjcTEGU8A1bWYRaM0-0aHxAHxSg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to