Skip to content

Java and Python wrapper for the Julia language PDDL library (PDDL.jl)

Notifications You must be signed in to change notification settings

hurxan/jupyjava-planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JuPyJava PDDL Planner

Contributors Forks Stargazers Issues


JuPyJava Planner

Java and Python wrapper for a use case of the PDDL library of the Julia language (PDDL.jl)
Explore the PDDL.jl documentation »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. Acknowledgments

About The Project

The general behavior of the program is defined inside the Planner.jl file.
The Julia file contains the kernel of the project where you can choose which file you need to solve by changing the domain and problem files.
The Planner.py file is a simple wrapper to the Planner.jl file, it replicates the behaviour of the original planner and prints the results to the standard output.
The Planner.java file runs the python wrapper and measures the time of execution.

(back to top)

Built With

(back to top)

Getting Started

Important

This project has been tested on a Debian 11 distro.

Prerequisites

  • Julia
  • Python 3
  • JDK
  • python-jl

Download

  1. Clone the repo
    git clone https://github.com/hurxan/JuPyJava_Planner.git

(back to top)

Usage

The examples folder contains some domains and problems taken from PlanningDomains.jl.
Inside the Planner.jl file you can choose which domain and problem file to use and which algorithm and heuristic suits better for your usage.
As a result, at the end of the execution a txt file (ie. blocksworld_problem-9_greedyplanner_hmax.txt) for each solution will be placed inside the output folder.
The generated file contains the solution of the planning based on the algorithm and heuristics chosen.

(back to top)

Contributing

Contributions are highly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Acknowledgments