先週は形勢評価AIを作成する意義を将棋に例えて述べました。
将棋のAIでは最善手を指した場合の勝率が表示されます。
現代のプロ将棋では先手番が優位とされていて、最初から先手が51%と表示されています。
では、ダーツではどうなるでしょうか。ファットブル701で考えるとこうなるはずです。
先攻:残り701 勝率100%(推奨ターゲット:T20,T20,T20)
後攻:残り701 勝率0%
ダーツでは思い通りに投げられるとすれば先攻が必勝となります。
しかしふつうは、最初の1ラウンドでBullを狙うと思います。先攻が狙い通りハットトリックを決めたところでの形勢はこうなるはずです。
先攻:残り551 勝率0%
後攻:残り701 勝率100%(推奨ターゲット:T20,T20,T20)
先攻はもう最短で5R目にならないと上がれないので、後手が4Rで上がってしまえば勝つということです。0%か100%かしかありません。
これでは実用性は皆無です。ダーツのAIは、ある程度の確率で的をハズすことを念頭に入れてどこを狙うかを選択しなくてはなりません。
加えて、たとえ同じ局面であっても、狙い通りに投げられる確率によって形勢評価が変わるはずです。
例えば、先攻の手番、先攻残り150点、後攻残り50点の場面を考えてみます。
1.Bull率を90%とした場合
このラウンドで先攻がハットトリックを決めて上がる確率は(0.9)^3より72.9%はあると期待できます。
(実際には同じ的を狙っているのでもっとあると思いますが、この補正は当面扱わないものとします)ともかく、先手の勝率は70%以上と評価されます。
2.Bull率を50%とした場合
このラウンドで先攻が1本でも外せば後攻に手番が回ります。その確率は1-(0.5)^3より87.5%とします。
後攻が手番の1本目でBullに入れれば勝ちでその確率は87.5*0.5=43.75%あって、もし外しても残り2本で何とかすればよいので後手の勝率はもっと高いはずです。
後手の勝率が40%以上あるので、先手の勝率は60%以下の評価になります。
したがって、AIの評価を実用的なものにするためにはどのターゲットに当たるかの確率分布を設定することが重要です。
************************************************
AI制作の進捗…といってもまだプログラミングの初歩の域を出ませんが、
chatGPT(無料版)に教わりながら、想定の10倍以上の進捗で進んでいます。
というのも、何をしたいのかをchatGPTに投げるだけで、使うべき機能・関数を教えてくれるので、一通りのことを覚える手間も調べる手間も省けています。
具体的には、狙った的を入力すると、刺さった結果を出力するプログラムを作れました。一定の確率で外れます。(その確率は、とりあえず私のデータを基にしています。)
トリプルなどは、シングル外しや隣のナンバーに外すなどのパターンがあり、「隣のナンバー」をどう入力するかが難所と思いましたが、chatGPTに妙案があり難なく解決しました。

用語が適切かわかりませんが、狙った数字がBoardで定義した数列の何項目かをみて、それを±1してさらに20で割った余りの項を返しています。余りを使うのが巧妙で、右端と左端がつながるようです。
プログラムことはわかりませんが、数学は少々わかりますので、言い回しが情報というより数学寄りになるのでご容赦ください。
次の目標は、プログラムにゼロワンゲームをさせることです。
具体的な課題は、ラウンド数やバーストの概念を導入する点になると思います。
では。
コメントを残す