Skip to content

charlesmaussion/Halite-Python-RL

 
 

Repository files navigation

Build Status Coverage Status

Halite-Python-RL

Halite Challenge Overview


Description

Halite is an open source artificial intelligence programming challenge, created by Two Sigma, where players build bots using the coding language of their choice to battle on a two-dimensional virtual board. The last bot standing or the bot with all the territory wins. Victory will require micromanaging of the movement of pieces, optimizing a bot’s combat ability, and braving a branching factor billions of times higher than that of Go.

Objective

The objective of the project is to apply Reinforcement Learning strategies to teach the Bot to perform as well as possible. We teach an agent to learn the best actions to play at each turn. More precisely, given the game state, our untrained Bot initially performs random actions, but gets rewarded for the good one. Over time, the Bot automatically learns how to conquer efficiently the map.

Eventually, it is even possible to make multiple Bots fight against themselves and improve their responses to other Bots.

For now, we will only focus on one Bot, the objective being to conquer the map as fast as possible. With respect to Reinforcement Learning, the two main challenges to address are the following:

  • Finding a good Reward Function, and associate properly each action to a reward.

Indeed, unlike chess or go, in the Halite turn-based game, we can do multiple actions at each turn, for each of the square we possess. This implies that we have to identify the specific actions leading to the reward, which can in turn be complicated to compute.

  • Exploring the Best Learning Strategies.

In this repository, we will mainly explore the solutions based on Neural Networks, and will start by a very simple MLP. This is inspired from a tutorial on Reinforcement Learning agent.

Documentation & Articles

To get started, blog articles and documentation are available at this page.

About

A fork of the Halite Starting Kit, aimed at providing an interface and debugging tools and for RL strategies (reinforcement learning).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 83.8%
  • JavaScript 7.3%
  • Python 6.5%
  • Makefile 2.1%
  • HTML 0.2%
  • Shell 0.1%