![](./assets/images/cover.png)

# Flai

**Flai**, pronounced as 'Fly!' ✈️ it is a toolkit for developing and comparing reinforcement learning algorithms. It is inspired by OpenAI Gym and has been modified for travel's needs. Flai comes with pre packaged games that are designed to play by reinforcement learning agents. We are continuously developing and adding new environments to Flai. If you wish to be a part of this beautiful development journey please either refer to [developer's guide](pages/devguide.md) or reach out to us 😊

See the [Quick start](pages/quickstart.md) guide to get started with Flai.

## Background
Flai is developed as a tool to gauge the capability of algorithms internally within [deepair solutions](https://www.deepair.io) with academic partners [Imperial College, London](https://www.imperial.ac.uk/) and [University of Illinois at Urbana Champaign](https://illinois.edu/). We have used its initial versions internally to do :

- **Testing and deployment**
- **Benchmarking performance**
- **Warming up agents**
- **Exploring Research Ideas**

> [!NOTE]
> We are in a process of preparing a detailed academic manuscript for reference. 

## Motivation
Simulators in travel industry 🏝️ are used regularly for revenue management, demand forecasting and operations management. Although, these simulators are proven to be widely successful in practice in markets with thin margins, they are not designed for reinforcement learning. Apart from that, there were some key components missing from already existing simulators. So we decided to list **Key ingredients for a travel simulator**:

- **Learnable environment**: Environment should be able to calibrate its parameters with the real world data. This makes the environment constantly evolving with real world 🌎 

- **Control on stochasticity**: Environment should be easily customizable with varying level of stochasticity 🎲 This includes hardness of game, complexity of decision making and dynamics of demand.

- **Pluggable architecture**: The structure of exposed API’s should be of reinforcement learning community standard (such as Open AI Gym) and schema should be similar to travel industry protocols

- **Open-source license**: Environment should be available with open source license 🔓 Travel community can inspect the code and modify the environment if required for any new ideas 💡




<!-- > [!NOTE]
> An alert of type 'note' using global style 'callout'.

> [!TIP]
> An alert of type 'tip' using global style 'callout'.

> [!WARNING]
> An alert of type 'warning' using global style 'callout'.

> [!ATTENTION]
> An alert of type 'attention' using global style 'callout'. -->
