<< 過去の記事 未来の記事 >>

タイトル通り2048AI の進捗状況です。

現在のソースコード

  • 高速化 grid を今まではstd::array<std::array<int,4>,4> でもっていたが、uint64_t で持つようにした。 それだけで大分速くなった気がする。

  • 世界と分離 koyone は思考をし、世界は盤面の状態を持つだけにきちんと分離できた。他の思考用class を用意して差し替えることが簡単にできるようになった。

  • 探索面 一手後の世界を予想する時に、ナイーブにするなら動かした後に開いてるマスに2 か4 を入れるが、開いてるマスすべてに2 を入れて読めば若干良くなるという話を聞いたので試してみた。それがKoyoneNext だ。

思考クラスたち

Koyone

単純にある程度の深さまで全探索を試みる。 評価関数はグリッド上の数字について、その数字にその数字のlog2 をとったものを掛けてたものの和。 それが一番大きくなるものの存在する方向に動かす。 前回 の時の思考はこれだった。

KoyoneNext

基本的にはKoyone と同じ。nextPossibleWorld だけを上記のように変更してある。 ちょっと以前のより強くなった。

Kihime

モンテカルロによる探索を実装しようとしてまだ中身は空だ。

<< 過去の記事 未来の記事 >>