Giter Club home page Giter Club logo

pamela's Introduction

PAMELA

Probabalistic Advanced Modeling and Execution Learning Architecture (PAMELA).

The goal of PAMELA is to design and implement a new probabilistic modeling language that extends the current state of the art process modeling languages, such as RMPL by adding first class probability variables. The compiler will not only compile the model into an automata representation such as a "Probabilistic Hierarchical Constraint Automata" (PHCA), but it will also synthesize a learning algorithm to bind the probabilistic variables using machine learning algorithms, appropriate for the program. This approach reduces the need for the programmer to be an expert in machine learning algorithms freeing the programmer to write models that employ probability values.

One of our initial focuses has been on developing language constructs to support Temporal Planning Network (TPN) for consumption by a suitable TPN execution engine.

TPN Example

Consider a simple mission to be performed by a quadcopter equipped with video cameras and some processing power. The quadcopter's mission is to monitor, process and upload images of the recently discovered white elephant in a land far far away. Reconnaissance drones have already sent the location of the elephant. The purpose of this mission is to collect photos of the elephant from high above the ground so as to not interfere with the natural habitat of the elephant.

Our quadcopter(QC) is an autonomous QC that can plan and adapt its own actions to ensure that mission is successful. For example, it could choose to the take images at full resolution or high resolution, perform image analysis at high speed or low speed to conserve power. In addition to video sensors, our QC is also equipped with two additional sensors for self defensive maneuvering actions from other wild birds who mistake QC for prey.

This mission is described in ./src/test/pamela/tpn-demo.pamela

Example command line to visualize this TPN is below. Before trying out the command line, please ensure requirements outlined below are met.

./bin/pamela -v -v -i src/test/pamela/tpn-demo.pamela -o tpn-demo -f dot --visualize tpn

Now open tpn-demo.svg in your browser. It should appear as the following image

TPN

Requirements

PAMELA has been developed using the Clojure language which runs on the Java Virtual Machine.

Running PAMELA requires the following to be installed

Development status and Contributing

Please see CONTRIBUTING for details on how to make a contribution.

PAMELA is currently under heavy development and has not yet been tagged with official "release". In this pre-release state the PAMELA API and functionality is subject to change.

Currently there is no mailing list setup for PAMELA (but will be at some point soon)!

Further Documentation

Startup time

In order to speed up execution you can compile the PAMELA uberjar with lein prod or use the pamelad daemon as described in TPN's

Copyright and license

Copyright © 2016 Dynamic Object Language Labs Inc.

Licensed under the Apache License 2.0 LICENSE

Acknowledgement and Disclaimer

This material is based upon work supported by the Army Contracting and DARPA under contract No. W911NF-15-C-0005. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the Army Contracting Command and DARPA.

pamela's People

Contributors

paulratdollabs avatar pmdoll avatar tmarble 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.