Git Product home page Git Product logo

pbarde / iboat-pmcts Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 2.0 104.92 MB

A Parallel Monte-Carlo Tree Search using multiprocessing and real weather forecasts to address long-term optimal path planning under uncertainty for autonomous sailboat

Home Page: https://pbarde.github.io/IBoatPIE/

License: MIT License

Python 82.43% TeX 8.04% Jupyter Notebook 9.53%
uncertainty algorithm mcts reinforcement-learning boat-dynamics wind weather-scenarios parallel

iboat-pmcts's Introduction

Welcome to the
IBOAT - Parallel Monte-Carlo Tree Search Project
Markdownify

Routing an autonomous sailboat with Reinforcement Learning

ContextDocumentationUsageGetting startedToolsRelatedAcknowledgmentsGallery

Context

In this project we develop a reinforcement learning algorithm based on parallel Monte-Carlo tree search to tackle the problem of long-term path planning under uncertainty for offshore sailing. This domain of application is challenging as it combines unreliable and time varying wind conditions with complex and uncertain boat performances. Contrarily to state of the art approaches applied to the sailing problem, we build a generator that models state transitions considering these two types of uncertainty. The first one is on the boat dynamics : given a environment state the boat performances are not deterministic. And the second one is uncertain weather forecasts. In practice, the wind is estimated from multiple weather forecasts (each one of them being a weather scenario with a given probability of happening). The boat’s dynamics are evaluated with a noisy Velocity Prediction Program (VPP). Then, a Monte Carlo Tree Search (MCTS) algorithm is applied in parallel to all the weather scenarios to find the sequence of headings that minimizes the travel time between two points.

Prerequisites and code documentation

The documentation as well as the prerequisites can be found on the following webpage :

Usage

This repository is intended to be a tool for future work on the problem of long-term path planning under uncertainty for offshore sailing. The tools that are provided are the following :

  • Processing of real weather forecast data
  • A Parallel Monte-Carlo Tree Search algorithm
  • A Isochrones algorithm as reference and performance validation
  • Results visualisation and decision support

Getting started

Before doing anything you should have a look at the Jupyter notebook tutorial Tutorial.ipynb and its .py version Tutorial.py.

Built With

Related

This project falls under the IBOAT project and is related to the repo:

It tackles the problem of end-to-end control for stall avoidance using a Deep Q-Network.

Acknowledgments

This project has been carried out with the help of:

Authors

  • Paul Barde - Initiator of the project - Developement of the weather tools and simulators, proof of concept on non-parallel MCTS. Implementation of the parallel version of MCTS, results visualisation and documentation.
  • Fabien Brulport - Implementation of the parallel version of MCTS, results visualisation and documentation.
  • Jean-Michel Bellay - Implementation of the isochrones method.

Gallery

reward global reward scenario

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.