Discuss Scratch
- inoking
- Scratcher
1000+ posts
将棋のAI作成について話し合う!
私もAIの知識はありませんが
ぱっと思いつくのは
1. 何手かシミュレーションしてみてそれぞれを点数化
2. 点数の高いものを次の手として採用
です。
ここで課題が出てきます。
・どのように点数化するのか?
・現実的な時間で処理が完了するのか?
すべての駒のすべての利きについてシミュレーションできたらいいのですが
何手先まで読むかによりますが非常に時間がかかると思います。
序盤だと読み手が多すぎるので、終盤から始めたらよいかと思います。
または、
全く別のアプローチとして学習させるというのもアリですね。
「機械学習」とかで調べてみたらよいかと思います。
以上、あくまで素人の考えです。
ぱっと思いつくのは
1. 何手かシミュレーションしてみてそれぞれを点数化
2. 点数の高いものを次の手として採用
です。
ここで課題が出てきます。
・どのように点数化するのか?
・現実的な時間で処理が完了するのか?
すべての駒のすべての利きについてシミュレーションできたらいいのですが
何手先まで読むかによりますが非常に時間がかかると思います。
序盤だと読み手が多すぎるので、終盤から始めたらよいかと思います。
または、
全く別のアプローチとして学習させるというのもアリですね。
「機械学習」とかで調べてみたらよいかと思います。
以上、あくまで素人の考えです。
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」ではない
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- taichi0802
- Scratcher
8 posts
将棋のAI作成について話し合う!
僕、AIの知識はあまり無いのですが、駒にそれぞれ価値(かち)を付ければいいのではないでしょうか・・。たとえば飛車は13点。桂馬が6点。歩は1点。などの価値を駒それぞれに付ければ、この後どうすればいいかを考えて、それをプログラムにすればいいのではないでしょうか・・。あと、こうすれば⬜︎⬜︎⬜︎になる などを考えて、無くなる駒の数値(さっき言った価値)の合計で、一番少ない数値だった動きをすれば、AIは、とっても強くなれます。
もし、レベルを自由に変えられるようにしたければ、プログラムを、乱数で、一番有利な動きと、二番目に有利な動きを、どちらかを、出番が来たら、実行すれば、AIは、少しレベルが落ちます。もっと弱くしたければ、三番目に有利な動きを、乱数に入れましょう。きっと、もっと弱くなるでしょう。
このプログラムを参考にしていただけば幸いです。では、またお会いしましょう(@_^⭐︎)/
もし、レベルを自由に変えられるようにしたければ、プログラムを、乱数で、一番有利な動きと、二番目に有利な動きを、どちらかを、出番が来たら、実行すれば、AIは、少しレベルが落ちます。もっと弱くしたければ、三番目に有利な動きを、乱数に入れましょう。きっと、もっと弱くなるでしょう。
このプログラムを参考にしていただけば幸いです。では、またお会いしましょう(@_^⭐︎)/
- taichi0802
- Scratcher
8 posts
将棋のAI作成について話し合う!
そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも) 序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
- hhayyatto
- Scratcher
1000+ posts
将棋のAI作成について話し合う!
まず盤面を見て、次にそのターンで起こり得うるすべての配置を考慮し、いい順から悪い順にならべ、一番いいやつを優先する(テトリスAIと同じ仕組み)とかは?
hha ha hhayy hayy hhay hh hhayya haya hhayyat hhayyatt hhayyatta hhayyattoカラーズCOLOR colour色קאליר こちらは思案(私語は慎むように
hyde::looks//8=72 3=12 5=30 12=何? その名も、⏯⚠️ウクライナ色⏯ウクラ███#1の注意事項は読みました Yoylecake!!!
⚠️イナ色███問:この字の読み方を答えなさい。「宇柳貝」
1+2+3+4+…=-1/12=それマジで言ってる? :) HSPの教科書が買えない
- watashida
- Scratcher
500+ posts
将棋のAI作成について話し合う!
将棋は駒の位置関係がかなり重要になるので、畳み込みニューラルネットワーク(CNN)のような評価関数を使うのはどうでしょうか?
例えば、フィルタなどを使い駒の位置関係で評価関数を作るとよいかと思います。(例えば王金と並んでいれば評価を+10するなどです。CNNの畳み込みのようにすればよいかと思います。)
これを使ってαβ法で探索すれば、かなり良いものとなると思います
このフィルタの値の決定にはプロが打った盤面を調べよく出てきた並びに高い評価値を与えるのがいいと思います。
この際序盤、中盤、終盤と分けて評価値を付けたほうが良い結果になると思います。
あと初期の配置(例えば歩歩など)にかなり高い評価値がつくと思いますので、この点は何らかの対策が必要だと思います。
私の考えとしてはこんな感じです
説明的な長文に書き慣れていないため幼い感じとなってしまいました、すいません。
あと機械学習経験者です。
例えば、フィルタなどを使い駒の位置関係で評価関数を作るとよいかと思います。(例えば王金と並んでいれば評価を+10するなどです。CNNの畳み込みのようにすればよいかと思います。)
これを使ってαβ法で探索すれば、かなり良いものとなると思います
このフィルタの値の決定にはプロが打った盤面を調べよく出てきた並びに高い評価値を与えるのがいいと思います。
この際序盤、中盤、終盤と分けて評価値を付けたほうが良い結果になると思います。
あと初期の配置(例えば歩歩など)にかなり高い評価値がつくと思いますので、この点は何らかの対策が必要だと思います。
私の考えとしてはこんな感じです
説明的な長文に書き慣れていないため幼い感じとなってしまいました、すいません。
あと機械学習経験者です。
Last edited by watashida (April 9, 2018 12:00:09)
機械学習たーのしー!わーい!
- hhayyatto
- Scratcher
1000+ posts
将棋のAI作成について話し合う!
約阿伽羅!!全ての配置を考慮、ということは単純にいうと不可能です。 まず盤面を見て、次にそのターンで起こり得うるすべての配置を考慮し、いい順から悪い順にならべ、一番いいやつを優先する(テトリスAIと同じ仕組み)とかは?
まあ本当に単純にいって、10の220乗ですから
hha ha hhayy hayy hhay hh hhayya haya hhayyat hhayyatt hhayyatta hhayyattoカラーズCOLOR colour色קאליר こちらは思案(私語は慎むように
hyde::looks//8=72 3=12 5=30 12=何? その名も、⏯⚠️ウクライナ色⏯ウクラ███#1の注意事項は読みました Yoylecake!!!
⚠️イナ色███問:この字の読み方を答えなさい。「宇柳貝」
1+2+3+4+…=-1/12=それマジで言ってる? :) HSPの教科書が買えない
- ko2222
- Scratcher
1000+ posts
将棋のAI作成について話し合う!
というか、駒の価値の高いものを、優先的に無理のない程度に狙わせるようにしておいて、王の価値を馬や飛車よりもずっと高くすれば良いのでは?そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも) 序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
(その時点での獲る手間などを加味した上で点数化して、どの駒に狙いをつけるかを定める、みたいな)
(部外者だけど)
PCを買い換えたので、たぶんこれからは改めて作品作りを行えるようになると思います。
自由配置型タワーディフェンスの試作品(結構人気)
https://scratch.mit.edu/projects/163391430/
- taichi0802
- Scratcher
8 posts
将棋のAI作成について話し合う!
おっ!いいアイデアですね!王(玉)の価値は∞(無限大)にすれば、どの駒よりも価値が高くなります!!というか、駒の価値の高いものを、優先的に無理のない程度に狙わせるようにしておいて、王の価値を馬や飛車よりもずっと高くすれば良いのでは?そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも) 序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
(その時点での獲る手間などを加味した上で点数化して、どの駒に狙いをつけるかを定める、みたいな)
(部外者だけど)
【駒を取る場合】
駒を取る時は、どこを見ても、狙われないなら、取る。自分の駒が取られても、相手の駒を取ってしまう場合も、取る。
(取られてしまう場合は、逃げるか、持ち駒を打って、守る。)
【一番初めに動かす駒】
二六歩・八四歩
【守り・囲い】
敵の駒が、自分の陣(じん)に入ってきたら、守り・囲い をする。
【守る駒】
狙われている場合は、持ち駒で守ります。守るのに適しているのは、「歩」です。打った時、禁じ手「二歩」になる場合は、香を使う。香が無い場合は、桂馬。桂馬が無い場合は、銀。銀が無い場合は、金。金が無い場合は、角。角が無い場合は、飛。飛が無い場合は、逃げる。
とりあえず、場合による動き方を書いておきました。使えるかどうかは分かりませんが、使えたら、伝えて下さい!!では、また!!(@_^⭐︎)/
- kepijirou
- Scratcher
4 posts
将棋のAI作成について話し合う!
おっ!いいアイデアですね!王(玉)の価値は∞(無限大)にすれば、どの駒よりも価値が高くなります!!というか、駒の価値の高いものを、優先的に無理のない程度に狙わせるようにしておいて、王の価値を馬や飛車よりもずっと高くすれば良いのでは?そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも) 序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
(その時点での獲る手間などを加味した上で点数化して、どの駒に狙いをつけるかを定める、みたいな)
(部外者だけど)
【駒を取る場合】
駒を取る時は、どこを見ても、狙われないなら、取る。自分の駒が取られても、相手の駒を取ってしまう場合も、取る。
(取られてしまう場合は、逃げるか、持ち駒を打って、守る。)
【一番初めに動かす駒】
二六歩・八四歩
【守り・囲い】
敵の駒が、自分の陣(じん)に入ってきたら、守り・囲い をする。
【守る駒】
狙われている場合は、持ち駒で守ります。守るのに適しているのは、「歩」です。打った時、禁じ手「二歩」になる場合は、香を使う。香が無い場合は、桂馬。桂馬が無い場合は、銀。銀が無い場合は、金。金が無い場合は、角。角が無い場合は、飛。飛が無い場合は、逃げる。
とりあえず、場合による動き方を書いておきました。使えるかどうかは分かりませんが、使えたら、伝えて下さい!!では、また!!(@_^⭐︎)/
突然すみません。 飛車は守りには使わないほうがいいかと思います とられた時のリスクなどお考えたらどうでしょう?