Skip to content

angelworm/2048ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2048ai

遺伝的プログラミングによる評価関数の自動生成とその利用。

ぐろーんモードはA/B法の1.5手読み。シングルモードはもう少し深いはず。

いろいろ実装を試したのがいくつかのブランチに分かれている

  • masterブランチ: ヒューリスティックによる小さな評価関数と盤面の情報を遺伝子に利用。
  • gp-fullブランチ: 盤面の情報のみを遺伝子に利用する。
  • gp-all: Pythonで実装していた奴とかbaka AI(後述)とかまとめて捨ててある。

使い方

引数

  • -h: ヘルプを表示
  • -s: シングルモード(デフォルト: ぐろーんモード)
  • -r: 評価関数をランダム生成した上でのシングルモード
  • -e ev: 評価関数evを与える
  • -a serv:port: 2048 as a serviceのサーバーを指定(デフォルトではエミュレーション)
  • -d dir: ぐろーんモードのみ: 各世代をdirに出力
  • -i file: ぐろーんモードのみ: 最初の世代を指定

ぐろーんモードで起動

./gp -d log/

サマリーは標準出力に出る

シングルモード

./gp -a server:8080 -e "..." -s

がんばって予想した方向と盤面を表示しながらがんばってくれる。

ぐろーんモード?

http://angelworm.hatenablog.com/entry/2014/06/07/024027

遺伝的プログラミングによって評価関数をガンガン生成するモード。

パラメータ

  • 各世代の遺伝子: 1000
  • 交叉確率: 0.75
  • 突然変異確率: 0.05
  • 交叉アルゴリズム: デフォルト(ノードに対して均一)
  • 突然変異アルゴリズム: 枝のランダム木による置き換え

シングルモード?

本来はsupercalifragilisticexpialidociousという名前のAIになるはずだったもの。評価関数プレイヤー。

A/B法やめてもっと深読みすりゃいーじゃんと考えて手で実装したら死んだ。

baka AI

最初このプロジェクトは遺伝的アルゴリズムで実装するつもりだった。

手段は、200手分の「手」を遺伝子と呼んで、スコアを適応度とするもの。

最終的にランダムより強くはなったので満足している。

所在: gp-allブランチのbaka.py

ライセンス

良きに計らえ。俺を立てろ。

About

Genetic Proggraming 2048 AI Generator and 2048 AI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published