68

ぷよぷよAIを作ろうとして挫折した話と今後の展望 #ぷよらーアドカレ2024並走部

by
machine322
machine322
この投稿は、#ぷよらーアドカレ2024並走部 の企画によって生まれたものです。
私は#ぷよらーアドカレ2024 の最終日担当なのですが、並走し足りないので再度書いてみることにしました。


昨今ではamaAIという激強AIが登場し、界隈を揺るがしました。そこで、自分もAIを作ってみようと思いました。


はじめに
自分自身にはそこまでのプログラミング能力は無いので、ChatGPTの力を借りることにしました。
作るにあたってイメージしたのは、最善手を探すAIです。ここで言う最善手とは相手を考慮した手ではなく、とこぷよで最も良い手を置くという意味です。
人間よりも良い手を置けるようになることを期待して、教師なしの深層強化学習でやることにしました。


どこで挫折したか
はじめに2連鎖を組むAIを作りました。この時、降ってくる色は2種類のみにしました。これはとてもうまくいって、必ず2連鎖をしてくれるようになりました。
しかし、色を増やすと2連鎖すらおぼつかなくなりました。これは、AIと人間の色の捉え方の違いによるものです。

この二つのGTR、人間からしたら全く同じ連鎖ですが、AIからすると全く別の形になってしまうのです。これを同じと認識させる手法が、自分やChatGPT o1では見つけることがついぞできませんでした。


挫折その2
深層強化学習は無理だったので、モンテカルロ木探索を用いて達成できないか考えました。しかし、これもダメでした。
必要な探索深度が深すぎるのです。2連鎖なら極論ゾロが4つ連続出来たら探索深度は4手で済みますが、5連鎖を撃つには当然それだけでは足りません。
また、5連鎖テンパイの形をどのように用意するかも問題です。1連鎖を伸ばして2連鎖にするという、いわゆる連鎖を伸ばすことが必要になってくるのですが、1連鎖テンパイの形に報酬を与えるプログラミングの実装方法が自分には分かりませんでした。niinaやmayahを作った人って本当にすごい。


今後の展望
mayahさんの第1回アーケード版ぷよぷよ通 人類 vs AI 実装方法とアルゴリズム(https://mayah.booth.pm/items/1042933)を購入して読んでみたところ、3.4.2 detectIterativelyのところで連鎖テンパイの判定方法がめちゃわかりやすく書いてありました。



頭のいい人はすごいなって改めて思いました。これなら確かにテンパイの検出が可能です。
やる気が出たら実装に挑戦してみようと思います。
作成日時:2024/12/21 12:55
コメント( 0 )
コメントするにはログインが必要です
シェア