人工知能 オセロ。 強いAIと弱いAI

強いAIと弱いAI

人工知能 オセロ

目次:• ガラス張りのオシャレなロビーです。 会場のニチガス本社の会議室内には参加者がずらり。 保護者と子どもたちで大まかに座席が分けられています。 講師の田中先生が自己紹介やワークショップの趣旨を説明していきます。 オセロを強くなるためには、単に練習を重ねるだけではなく、技術を使って自分の試合を解析する方法もあるそうです。 テーブルゲームのオセロですが、コンピュータを使ってアプローチしていくこともできます。 自分だけのオセロAIを作って会場のみんなで戦わせてみるとのこと。 燃えますね…! 東大のオセロサークル「GORO」のメンバー 授業のアシスタントの 東大オセロサークル「GORO」のメンバーです。 ワークショップ中に詰まったり悩んだりしたときにアドバイスをしてくれます。 なんと、オセロの世界ランク上位の方もいるとのこと。 参加者は約10名の子どもたちとその保護者の方たち。 皆さん、先生の説明に真剣な眼差しを向けてます。 強いオセロAIを作るには…? 強いオセロAIを作るためには、どのようなAIを作ると良いかを考えていきます。 はじめに実際に先生が目の前でオセロを実演します。 「角をとればいい!」などの子どもたちの声があがっていました。 その後、実際に先生が準備してくださったAIで対戦してみたり、お隣の参加者とペアで対戦してみたりして、どのようなAIだと試合で有利になりそうかを考えていきます。 コンピュータで自分たちの試合を振り返りながら、作戦を立てていきます。 保護者の方も真剣です。 実はこのワークショップでは、保護者の方もオセロAIを作って子どもたちと対戦します。 大人も子どもも全力です! ここまでオセロにじっくりと向き合うのは初めてなのではないでしょうか…! どの子も最強のAIを作るためにメモをたくさん残していました。 オセロAIを作ろう 今回のワークショップでは、コンピュータに入力されているJavaScriptのコード上の数値を書き換えて、オセロAIの強さ調整をしていきます。 各碁盤のマス目に数値が割り振られており、その数値の強弱によってどの目を優先的に打つかどうかかAIによって判断される仕組みです。 碁盤の場所の点数と 返す石の数の優先度を調整していきます。 ワークショップの時間をめいっぱい使って学生さんに相談したり悩んだりしている子どもたちの姿が印象的でした。 オセロゲームを論理的に戦略を立てようとするなんてなかなかないですよね…! 結果発表! 自分たちで作ったオセロAIでトーナメントということでしたが、AIということで試合は自動で行われます。 指定した回数勝負させた際の勝率をコンピュータで割り出していきます。 上位のチームに拍手!! じっくりと試合を解析した結果を見てみると、AI同士で相性があるようでした。 なので、勝率の面では上位ではなくとも優勝チームには高確率で勝てるAIを作ったチームがいたり、AIにもユニークな個性があるということが先生によって解説されました。 ワークショップの中で、コンピュータでできることが増えているが、あるデータを素敵であったり面白いと感じられるのは人間のみであるという話が合ったのが印象的でした。 自分が好きだなと思うものをもっと探求するためにテクノロジーを活用すると、もっと興味の幅が広がりそうです。 また、保護者の方も子どもと同じ内容を体験できるのがユニークなワークショップだなと感じました。 子どもたちが何を学んでいるのかを実際に知ることができるのは良い情報収集の場にもなります。 2020年にプログラミング教育が必修化する前にイベントやワークショップに足を運んでみるのも良いのではないでしょうか。 公開日:2019. 12 コエテコ [coeteco] とは コエテコは「子どものプログラミング教育」をテーマに、プログラミングスクール・教室、ロボット教室・スクールについて講座の内容を中心にわかりやすく紹介しているポータルサイトです。 住所や駅名などからお近くのスクールを探すことも可能です。 また、コエテコ編集部では、「プログラミング教育の今」をわかりやすく伝えることをミッションに独自の調査や有識者、専門家への取材を実施、インタビュー、コラム記事を配信しています。 プログラミング教育 とは 文部科学省は、プログラミング的思考を育成することを目的に『2020年に日本の小学校でプログラミング教育を必修化する』と発表しました。 プログラミング的思考とは、自分が意図する一連の活動を実現するために、どのような動きの組合せが必要かを論理的に考えていく力です。 日本では、人口現象や少子化が問題となる中で飛躍的に進化しているAI 人工知能 などのIT技術の活用が期待されている一方で、人間らしい感性を働かせながら、目的に応じた創造的な問題解決を行うことができる人材が社会に求められています。 将来どんな職業に就いても、普遍的に求められる力としての「プログラミング的思考」身につけることができる、幼児・小学生向けプログラミングスクール・ロボット教室を選択肢に考えてみてはいかがでしょうか? プログラミングスクール・教室 とは 各スクール独自の教材や、子ども向けのプログラミング教材「Scratch スクラッチ 」 というプログラミング言語学習環境などの教材を使って、パソコンやタブレットを操作して、 授業を行います。 主にプログラミング的思考やプレゼンテーション能力などを身につけていきます。 全国的に増えてきており、各スクールが授業見学や個別体験を受付しています。 ロボット教室・スクール とは 各スクールのオリジナルロボット教材を使って、楽しみながら個性や想像力を伸ばし、同時にプログラミング的思考や問題解決能力も身につけることが可能です。 教室数が増えてきているため自宅の近くの教室に通うことも可能になってきており、新しい学びの機会を得ることができます。 All Rights Reserved.

次の

人工知能の限界と、人類に残される最後の仕事の話。

人工知能 オセロ

・片手でラクラク操作 操作性に徹底的にこだわり全ての操作を親指で行うことができます。 また、右利きでも左利きでもどちらでも扱いやすくなっています。 ・全国のユーザーと連勝記録が競える 勝ち抜きサバイバルの連勝記録は全国のユーザーと競い合うことができます。 1位を目指して何度も挑戦することができます。 ・超強力AI 勝てば勝つほど強力になるAI機能搭載。 本格的なリバーシ対決が可能です。 ・2人で遊べるゲーム ネットに繋げなくてもその場でリバーシ対戦ができます。 暇つぶしにその場で2人用ゲームとしてオフラインプレイが可能です。 もちろん1人で遊べるゲームとしても楽しめます。 ・ビギナーにも優しい 初心者でも楽しめる機能が搭載。 自動で次の手を置ける箇所に印がつくので、時間を掛けずに進められます。 ・人気定番ゲームを簡単に 難しい操作はありません。 とにかくリバーシ対戦を心置きなく楽しみたい方におすすめ定番アプリです。 久しぶりにダウンロードすると、80レベルで一度勝てなくなり、現在やっと86レベルまでクリアしました。 AIのプログラムが賢くなっているのか、とても楽しいです。 しかし、不自然な駒の置き方をAIがするようになり、例えばAIの駒が残り1つになっている状態にも関わらず、V字型に駒が広がったり 2駒なければ直線にしか伸ばせないはずですよね? 、間隔を開けて置いてあるはずの駒も含めて全部埋まってしまったり、レスポンスの速さと合わせてインチキされてる印象があります。 ストレスを溜めたくない人はインストールまたはサバイバルモードをしないことをオススメする。 このゲームはインチキだらけ。 少しは治せ! 長文すみませんでした。 デベロッパの回答 、 プレイヤーの置き場所が無い場合、ルール通りAIのターンに切り替わります。 「棋譜再生」で確認いただくか、設定画面で「パス表示」をONにしてください。 これからもリバーシZEROをよろしくお願いいたします。

次の

AIの実装/ミニマックス法

人工知能 オセロ

画像クリックで遊べます。 みなさんは勝てましたか? 作り方を解説していきます。 方針 世の中には強いオセロ AI がたくさんあります。 ブラウザ js で動く強豪 AI も既にあります。 参考: 今回はゲーム AI の仕組みを理解することを目的として、以下の方針で作りました。 簡単に実装できる ゲーム AI として最小限のコンポーネントのみを備える• そこそこの強さ 人間初心者に負けないくらい、できれば自分より強くしたい 全体像 ゲーム AI は概ね以下の部品を持っています。 静的評価関数• 探索処理• ビットボード 軽量で高速に処理可能な局面データ構造 静的評価関数は、局面のスコアを計算する関数です。 膨大な回数実行されるため、スコアの正確性と処理の軽量さのトレードオフをうまくとる必要があります。 探索処理は文字通りゲーム木を辿る処理です。 ビットボードはオセロの局面を管理するデータ構造です。 局面をビット列とみなして 1 つか複数の int に押し込んでしまいます。 データサイズが軽くなるだけでなく、局面に対する演算 合法手列挙、着手、白黒反転など をプリミティブなビット演算で行えるようになり、高速処理可能となります。 それぞれの部品について説明します。 静的評価関数 静的評価関数はある局面が自分にとって有利な度合いを表す関数です。 一般に 0 点が形勢互角な状態、プラスなら自分が有利な状態、マイナスなら相手が有利な状態を表すように設計します。 ゲーム AI では一般に静的評価関数をゲーム木の末端に適用します。 つまり、次の 1 手を直接評価するのではなく、探索処理によってあらかじめ決めた深さ n 手先 まで潜り、その局面に対して静的評価関数を適用します。 強豪 AI は静的評価関数のパラメータを膨大な棋譜データからの機械学習や強化学習で調整しています。 盤面を様々な部分形に分割し、学習済みパラメータで部分形をスコアリングし、その累積和を最終的なスコアとしているようです。 今回は実装を簡単にするため、以下のようにシンプルなスコアリングとしました。 着手可能数は次の一手を指せる場所の数です。 四隅周辺の形の良さについて 角から 3 マスの石の有無について、スコアを割り振っていきます。 スコアは感覚で恣意的に決めます。 実際のスコア計算では、図のように各四隅の縦横斜めを切り取り、スコアを合計します。 探索処理 探索処理では n 手先に潜って静的評価関数を適用します。 n 手先のスコアを元に n - 1 手先のスコアを決め、n - 1 手先のスコアを元に n - 2 手先のスコアを決め…、という風に再帰的に処理を行い、最終的に次の 1 手のスコアを決めます。 この再帰処理では、自分も相手も常に最善手を指すことを仮定します。 つまり、自分の手番ではスコアが最も高い手を選び、相手の手番ではスコアが最も低い手 相手にとって最も高い手 を選びます。 n 手先が自分の手番だとすると、以下のようになります。 しかし最終的には石の数を最大化する必要があります。 今回は、ラスト 12 手 空きマスが 12 箇所になった状態 になった時点で評価関数・探索処理を切り替え、最終局面まで全探索し自石数を最大化するようにしています。 反復深化 探索深さを決めるのは難しい問題です。 同じ探索深さでも合法手が多い局面ではゲーム木が大きくなり、計算時間が長くなります。 実際のゲーム AI ではユーザー体験やルール上の制約のために、計算時間の上限を設ける必要があります。 これを実現するのが反復深化と呼ばれる手法です。 反復深化はとても単純です。 時間が無くなった時点で探索を打ち切り、最後に探索が完了した深さのスコアを結果とします。 今回は 500 ms で探索を打ち切るようにしました。 ほとんどの局面で深さ 6 程度まで探索できるようです。 move board , place. x , place. オセロでよく用いられるのは、2 つの 64 bit 整数で黒石・白石の 64 マスの有無を表現する手法です。 この方法だと 64 マス全てに対する着手可能性判定が数十回のビット演算で出来てしまうようです。 すごい…。 今回は実装が面倒くさかったため簡易な手法を選びました。 これを縦横斜めにそれぞれ保持します。 まとめ シンプルな構成でそこそこの強さの AI を作ることができました。 ただし評価関数がキモで、恣意的にパラメータを決めているため AI のクセが出やすいようです。 実際に自分が対局すると勝率 5 割程度ですが、勝った対局では四隅を取らせて辺を奪うような結果が多いです。 辺の形が評価関数に反映できていないためだと思います。 辺の形を反映するように評価関数を設計し直すと改善するはずですが、ここから先の職人芸的なチューニングのことを考えると、強豪 AI のように機械学習してしまった方が実は簡単なのかもしれません。 今回はオセロ AI の仕組みを扱いましたが、将棋やチェスの AI も基本的には同じ仕組みで動いているようです。 いつか時間を見つけてトライしたい。

次の