GithubHelp home page GithubHelp logo

mokhtarivahid / ebpd Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 38.32 MB

Experience-Based Planning Domains (EBPDs)

Prolog 97.64% C++ 0.08% Shell 1.09% Python 1.20%
classical-planning experience-based-planning learning prolog

ebpd's Introduction

Experience-Based Planning Domains (EBPDs)

Main references:

Definition 1.

An EBPD is a tuple,

∆ = (Da, Dc, R, E, M),

where Da is an abstract planning domain, Dc is a concrete planning domain, R is a set of abstraction hierarchies (i.e., inference rules) f : Dc → Da to translate the concrete space in Dc into the abstract space in Da , E is a set of experiences, and M is a set of methods in the form of activity schemata for solving problems.

Definition 1.

A planning domain D in general is a tuple,

D = (L, Σ, S, O),

where L is a first-order logic language that has finitely many predicate and constant symbols, Σ is a set of ground atoms of L that are always true (i.e., static world information), S is a set of states in which every state s ∈ S is a set of ground atoms of L which may become false (i.e., transient world information), and O is a set of planning operators.

Definition 2.

A planning operator o ∈ O is a tuple,

o = (h, S, P, E),

where h is the abstract operator's head, S is the static world information, P is the precondition, and E is the effect of a. A head takes a form n(x1 , ..., xk≥0), in which n is the name, and x1 , ..., xk are the arguments, e.g., pick(?object, ?table).

Definition 3.

An experience e ∈ E is a triple of ground structures,

e = (t, K, π),

where t is the head of a task, taught by a human user to a robot, e.g., clear(table1), K is a set of key propositions, and π is a plan solution to achieve t. K is a subset of world description of an experience. Every key proposition in K is in the form τ (P ), which τ is a timestamp and P is a predicate. The timestamps specify the temporal extent of the predicates in an experience. Three types of timestamps are used to represent key propositions, init (true at the initial state, e.g., (init(on cup table1)), static (always true during an experience, e.g., (static(arm canreach arm1 table1))), and goal (true at the goal state, e.g., (goal(on cup tray1))).

Definition 4.

An activity schema m ∈ M is a triple,

m = (h, S, Ω),

where h is a head of a target task (e.g., clear(?table)), S is the scope of applicability of m, and Ω is an abstract plan to achieve the h, i.e., a sequence or loops of abstract operators enriched with features.

Every enriched abstract operator ω is in the form: ω = (a, F), where a ∈ A is an abstract operator head, and F is a set of features, i.e., a set of key propositions (see Definition 3), that describes the arguments of a.

Definition 5.

A task planning problem is a tuple of ground structures,

P = (t, σ, s0, g),

where t is the head of a target task to be planned (e.g., clear(table1)), σ ⊆ Σ is the static world information (i.e., state invariant information), s0 ∈ S is the initial state (i.e., transient world information), and g is the goal, i.e., a set of propositions to be satisfied in a goal state sg ∈ S.

Repository content

This repository contains the materials for the experience-based planning and learning system. It includes the following files and folders for the 'robotic arm' application domain:

  1. source code implemented in swi-prolog ('ebpd-system') containing the learning and planning system.
  2. test domains:
    2.1. the planning operators domain ('domain.ebpd')
    2.2. the abstract operators domain ('domain-abs.ebpd')
    2.3. the abstraction hierarchies ('abstraction-hierarchies.ebpd')
    2.4. a set of experiences ('experience.ebpd')
    2.5. a set of activity schemata, i.e., task models ('schema.ebpd')
    2.6. a set of problems represented in both ebpd and pddl (\problems)
    2.7. the obtained results from SBP and Mp planners (\results)

ebpd's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.