seigot / tetris

A Tetris Game for programming education in Japanese
MIT License
30 stars 107 forks source link

テトリスAI『Cold Clear』の分析 #51

Open seigot opened 2 years ago

seigot commented 2 years ago

テトリスAI『Cold Clear』の思考部を眺める https://komorinfo.com/blog/cold-clear-search-algorithm/#toc_id_1_1

特に以下のあたり

Cold Clearの評価器は人の目で厳選した特徴量で構成されている。30以上の特徴を確認し、それぞれの加点・減点を足し合わせることで評価を数値化している。加点・減点のパラメータは遺伝的アルゴリズムにより学習している8

ホールドまたはネクストの1ミノの置き方をすべて列挙し、置き方それぞれに対する評価値を計算する。ここで、ミノの置き方に対する評価値 𝐸+𝑖 は、ドロップ自体の報酬 𝑅𝑖 と子局面の評価値 𝐸𝑖 の和 𝐸𝑖+𝑅𝑖で計算する。 この評価値から重み付けを計算し、重みに従い次の手を確率的に選択する。具体的には、ある盤面で 𝑛 通りの置き方があり、評価値が降順で 𝐸+1,𝐸+2,…,𝐸+𝑛 であるとき、𝑖 番目の手が選ばれる確率は 𝑃(𝑖)∝(𝐸+𝑖–min𝑗𝐸+𝑗)2+10(𝑖−1)2+1(1) である9。分母に順位の2乗の項( 𝑖2 )があるため、評価値が高い置き方ほど選ばれる確率が高い。

「テトリスの基礎知識」で述べた通り、テトリスでは開幕Perfect Clearが取れるかどうかによって火力に大きな差が生じる。Cold Clearでは、盤面が空の時に限り、ネクスト10個+ホールドの計11ミノ以内でPerfect Clearが可能かどうかを探索する専用のルーチン

gitauto-ai[bot] commented 2 weeks ago

Hey, I'm a bit lost here! Not sure which file I should be fixing. Could you give me a bit more to go on? Maybe add some details to the issue or drop a comment with some extra hints? Thanks!

Have feedback or need help? Feel free to email info@gitauto.ai.