プログラミング
大熱戦!コンピュータ数当てバトル
コンピュータ数当てバトルが3月23日(土)、若葉台教室で行われた。阿部先生が制作したAI「数あてくん」と、Kidsプログラミングラボに在籍するMくんが制作したAI「数当てキャット」(記事掲載当初の名称)が数当てゲームで対決し、引き分けとなった。
【写真1】数あてくんと数当てキャットが激突したコンピュータ数当てバトル
今回の数当てゲームは、コンピュータがランダムに抽出した1から100の中の数を当てるというものだ。もし、予想した数字が正解の数値よりも小さければ「もっと大きいです」と表示され、予想した数字が正解の数値よりも大きければ「もっと小さいです」と表示される。数を当てるまでにかかった回数が少ない方が勝ちとなる。
数あてくんは、2015年にプロの囲碁棋士に勝利を収め、大きな話題を呼んだ囲碁AI「Alpha Go」にも一部活用されたモンテカルロ法を採り入れており、終盤の正確さが特長の一つだ。開発者の阿部先生は「数当てくんは、すべての数値に対し2万回自己対局を行い、最善数、次善数、次々善手数を示すAIです。僕もこのAIと3回勝負しましたが、2敗1分けを喫しました(笑)。相当強いAIだと思います」と語った。
【写真2】数あてくんの操作画面 左の数字は上から最善数、次善数、次々善数を示す
右の数字は数を当てるまでにかかる手数の目安
一方、数当てキャットは、数値の範囲を示すとランダムな値を返してくれるAIである。制作にはScratchを使用した。数あてくんの約数十倍~数百倍の速さで最善手を導出すること、人間の感覚では示せない、独創的な一手を示すことが多いことが主な特徴だ。開発者のMくんは、なるべく運気が上がるように、数当てキャットの操作画面に意匠を凝らしたそうだ。
【写真3】数当てキャットの操作画面
試合は手に汗握る大熱戦となった。先攻は数当てキャット。初手70、2手目14と、人間が普段示さない、人智を超えた手を次々とたたき出す。そして、迎えた5手目。探索範囲は15から51と非常に広く、単純計算で数値が当たる確率が37分の1(約2.7%)と非常に難しい局面である。そんな中、数当てキャットは神の一手、「40」をたたき出し、見事数値を当てた。Mくんは思わず「やった!」と大きな声で叫んだ。
後攻の数あてくん。阿部先生の表情は硬かった。数字を探すのに最も効率が良いとされる二分探索法を使った場合、1から100の中の数を当てるには平均6~7手かかると言われているからだ。数当てくんは、4手以内で当てなければ勝つことができない、厳しい状況に追いやられた。
数当てくんは初手47、2手目77と、おおむね2分探索法に従って数値を探ろうとした。勝利を目指す4手目、数当てくんは83を示したが、外してしまった。後がない5手目。ここで当てなければ数当てキャットの勝利が確定する。探索範囲は84から88で、単純計算で数値が当たる確率が5分の1(20%)と、人間の感覚でもまだまだ難しい局面。ここで数当てくんが示した運命の一手が「86」であった。「あくまで二分探索法の方針を変えない」という、そんな強い決意が感じられる1手だった。ただ、数当てくんが示した、数を当てるまでにかかる手数の目安は「2.1928」(つまりこの手を含め、あと約2手かかる)。阿部先生は不安を募らせた。そんな不安をよそに、数当てくんは見事数値を当てた。阿部先生は「よっしゃ!」と叫び、ガッツポーズを見せた。
【写真4】5回で数を当てた数当てキャット
【写真5】数あてくんが示した運命の5手目
【写真6】同じく5回で数を当てた数あてくん
【写真7】数当てキャットと数あてくんのそれぞれの数譜
それぞれ右側の挿絵はMくんが描いてくれた
終局後、Mくんは「やっぱり(数当てゲームは)運ですよ」と自信に満ち溢れた表情で振り返った。一方、阿部先生は「まさか引き分けになるとは思っていなかったです」と驚いた表情を見せたうえで、「ランダム要素を少し入れた方が勝ちやすかったかもしれない」「自己対局回数を増やせば勝てるはず」と冷静に振り返った。今後もコンピュータ数当てバトルは不定期開催される見通しである。今後も人智を超えた熱戦に目が離せない。
専門用語集
AIとは…人工知能(Artificial Intelligence)。学習・記憶・推理・判断など、人間の持つ知的機能を代行するコンピュータシステム(明鏡国語辞典より引用)
モンテカルロ法とは…確率論を応用し、乱数を用いておこなう数値計算法。コンピュータによる極めて大規模な計算で有効。(広辞苑より引用)
二分探索法とは…コンピュータのデータ探索法の一つ。ある順序に並んだデータの中間付近の要素を調べ、目的のデータがそれより前にあるか後ろにあるかを判定し、見つかるまで探索の範囲を順次縮小していく。(広辞苑より引用)
【写真8】モンテカルロ法の例
【写真9】二分探索法の例
数当てゲームに使ったサイト: https://web.sfc.keio.ac.jp/~maooon/kiso_pro/kazuate.html
(記事: 阿部龍之介,Kidsプログラミングラボ若葉台教室講師)
東進衛星予備校若葉台校 校舎長 石田康治
〒206-0824 東京都稲城市若葉台2-4-4若葉台駅前KMビル3F
[志學舎]TEL:042-350-2151 [東進]TEL:042-350-2283
instagram → https://www.instagram.com/toshin_wakabadai/
[公式]志學舎Youtubeチャンネルもよろしく!
[公式]志學舎東進Youtubeチャンネルもよろしく!