Giter Site home page Giter Site logo

shi-raida / up-lpg Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aiplan4eu/up-lpg

0.0 0.0 0.0 11.25 MB

LPG is a automated planner supporting classical and numeric state variables, and supports durative actions too. It computes plans using one-shoot and anytime operation mode.

License: Apache License 2.0

Python 26.97% Jupyter Notebook 44.54% PDDL 28.49%

up-lpg's Introduction

LPG Unified Planning integrator

LPG Logo

The aim of this project is to make the LPG planning engine available in the unified_planning library by the AIPlan4EU project. LPG is one of the most successful planning systems for classical, numerical and temporal planning.

Installation

We recommend the installation from PyPi because it has pre-built wheels for all common operating systems.

Installation from Python Package Index PyPi

To automatically get a version that works with your version of the unified planning framework, you can list it as a solver in the pip installation of unified_planning:

pip install unified-planning[lpg]

If you need several solvers, you can list them all within the brackets.

You can also install the LPG integration separately (in case the current version of unified_planning does not include LPG or you want to add it later to your unified planning installation). After cloning this repository run

pip install up-lpg

you get the latest version.

This repository incudes the LPG binaries compiled for Linux and Windows. The installation has been tested in Ubuntu 20.04.3 LTS and Windows 10 version 22H2.

If you need an older version, you can install it with:

pip install up-lpg==<version number>

You can test it using:

python up_test_cases/report.py lpg lpg-anytime lpg-repairer 

Usage

Solving a planning problem

You can for example call it as follows:

from unified_planning.shortcuts import *
from unified_planning.engines import PlanGenerationResultStatus

problem = Problem('myproblem')
# specify the problem (e.g. fluents, initial state, actions, goal)
...

planner = OneshotPlanner(name="lpg")
result = planner.solve(problem)
if result.status == PlanGenerationResultStatus.SOLVED_SATISFICING:
    print(f'{Found a plan.\nThe plan is: {result.plan}')
else:
    print("No plan found.")

See also the following notebook

Features:

  • One shot planning
  • Anytime planning
  • Plan Repairer

LPG Team

Current members: Alfonso E. Gerevini , Alessandro Saetti and Ivan Serina

Planning group coordinator: Alfonso E. Gerevini

PhD students: Mauro Vallati, Alberto Rovetta, Valerio Borelli.

Undergraduate students (now graduated) previously involved: Marco Lazzaroni, Stefano Orlandi, Valerio Lorini, Fabrizio Morbini, Sergio Spinoni, Alberto Bettini, Paolo Toninelli, Fabrizio Bonfadini.

Programmer previously involved: Maurizio Vitale (for InLPG)

up-lpg's People

Contributors

stoppini avatar ivanserina avatar serivan avatar alvalentini avatar framba-luca avatar afkvalerik avatar giorgiobonardi avatar lbonassi95 avatar ale-gaudenzi avatar hstairs 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.