Home

Awesome

HIVEMIND v.0.1

Document is Work-in-Progres!

HiveMind is a Java based stand-alone AI implementation for the board game Hive by John Yianni.

HiveMind currently consists of 3 seperate modules:

Current status

Alpha:

AI's

The current implementations focus on variants of Minimax and Monte Carlo Tree Search algorithms. For perfect information games, which Hive is, these kinds of AI's are the most prominent.

An AI is always time restricted, so the first and most important parameter is determining how much time the AI has to calculate its next move. This is a difficult trade-off when the AI is playing a real person as that person cannot do anything while the AI thinks (ie. boredom).

Minimax algorithms are restricted by their heuristic functions, while a Monte Carlo algorithm technically can play without one (although it becomes significantly better by using one).

The basic algorithms are fairly simple to implement for both Minimax and Monte Carlo Tree Search, however a lot of additions has been suggested for improving their performance. Constructing a good AI is thus mostly a question of incorporating those additions that makes most sense for the domain as well as fine tuning parameters.

MiniMax

Monte Carlo Tree Search

Other AI methods

Boardspace.net Statistics

22000+ games has been analyzed in order to make educated guesses for AI parameters. All data can be found in the /result folder.

The following metrics have been looked at:

The results are also discusses here: http://www.boardgamegeek.com/thread/1028923/boardspace-net-hive-statistics

Running Boardspace.net Statistics

First download all game files from boardspace.net:

$ ./tools > sh download_hivegames.sh

Then run the sorting to extract games and put them in the correct folders:

$ ./tools > bash sort_hivegames.sh

Then modify MainParseGames.java for your needs. No Jar + commandline interface currently exists, so you have to edit the java file manually. When done, run the following command:

$ > gradle run

All results are saved in the /results folder. To generate graphs after the analysis. Run the following:

$ ./tools > sh generate_plots.sh

TODO

Links

Hive: http://www.hivemania.com/

Boardspace.net: http://boardspace.net/english/about_hive.html

License

Copyright 2013 Christian Melchior

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.