/lomap_learning_representation

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

LTL Optimal Multi-Agent Planner (LOMAP)

LTL Optimal Multi-Agent Planner (LOMAP) is a python package for automatic planning of optimal paths for multi-agent systems. See the directory 'examples' (either in the source archive or in the installation directory) for examples.

Copyright (C) 2012-2015, Alphan Ulusoy (alphan@bu.edu)

Copyright (C) 2013-2020, Cristian-Ioan Vasile (cvasile@lehigh.edu, cristian.ioan.vasile@gmail.com)

Installation Instructions

Linux (Ubuntu)

  1. Clone the lomap repository
  • Navigate to desired location
  • Run the following line in shell:
git clone https://github.com/wasserfeder/lomap.git
  1. Install Spot using Debian Packages (https://spot.lrde.epita.fr/install.html)
  • Run the following lines in shell:

    wget -q -O - https://www.lrde.epita.fr/repo/debian.gpg | sudo apt-key add -
    sudo sh -c "echo 'deb http://www.lrde.epita.fr/repo/debian/ stable/' >> /etc/apt/sources.list"
    sudo apt update
    sudo apt install spot libspot-dev spot-doc
    sudo apt install python3-spot # For python3 support
  1. Install necessary dependencies:
  • Run the following lines in shell:

    sudo apt install python-pip
    pip install six
    pip install matplotlib
    pip install numpy
    sudo apt install python-tk
    pip install networkx==1.11
    pip install pyyaml
    pip install pp # Optional
    apt install cmake
  • Note: Ensure that Python 2.7 is installed.

  • Note: If Python3, install matplotlib==2.2.3 in order to maintain compatibility with network 1.11

  • Note: If Python3, there is not easy way to install pp package.

  1. Download and unpack ltl2dstar
  • Download from: https://www.ltl2dstar.de/

  • Unpack ltl2dstar

  • Navigate to the ltl2dstar folder

  • Run the following lines in shell:

    mkdir build
    cd build/
    cmake -DCMAKE_BUILD_TYPE=Release ../src
    make
  • Optionally add the binary to folder in PATH

    • For example:

      mkdir ~/bin
      cp ltl2dstar ~/bin/
      echo 'export PATH="$PATH:$HOME/bin"' >> ~/.bashrc
  1. Set $PYTHONPATH to include the location of the lomap library:
  • Run the following line in shell:

    export PYTHONPATH="${PYTHONPATH}:/path/to/lomap"
  • Optionally make this setting persistent:

    echo 'export PYTHONPATH="${PYTHONPATH}:/path/to/lomap"' >> ~/.bashrc
  1. Test if the setup worked properly:
  • Navigate to /lomap/lomap/tests
  • Run any of the Python test files
    • Ex. python test_automata.py

Common Issues:

  1.    ImportError: No module named lomap.classes
  • Problem: The lomap library is not in the path variable PYTHONPATH
  • Possible Solution: Manually add lomap to your Python directory
    cd <lomap_directory>
    export PYTHONPATH="$PYTHONPATH:$PWD"
  1.    File "/usr/bin/pip", line 9, in <module>
       from pip import main
       ImportError: cannot import name main
  • Problem: Wrong version of pip (are using Python 3 pip)
  • Solution: Run commands with pip2
  1. AttributeError: 'Graph' object has no attribute 'nodes_iter' (or other graph issues)
  • Problem: Wrong version of networkx installed
  • Solution: Uninstall networkx and install networkx1.11 (see above)

Todo List:

  • Port to networkx 2.x
  • Add support for Python 3.x
  • Remove old Ts/Markov file format system, use yaml
  • Revise developer instructions, add more tests
  • Create more testing examples with instructions (docs)
  • Improve visualization
  • Add support for DFSCAs
  • Implement dfsa and dfsca minimization
  • Integrate logic minimization
  • Add Buchi/Rabin games
  • Sync with twtl, reactive-ltl, lvrmod, pvrp, gdtl-firm
  • Integrate GDTL and predicate system
  • Add more examples
  • Add RH/MPC framework
  • General clean-up of code
  • Test for functions and continuous integration system
  • BDDs for guards

Copyright and Warranty Information

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

A copy of the GNU General Public License is included in this distribution, in a file called 'license.txt'.