Discuss Scratch
- hhayyatto
- Scratcher
1000+ posts
将棋のAI作成について話し合う!
age
状況に応じて囲いの形を変えなければいけませんね。
例えば、相振り飛車の場合は舟囲い
居飛車の場合は蟹囲いなど
状況に応じて囲いの形を変えなければいけませんね。
例えば、相振り飛車の場合は舟囲い
居飛車の場合は蟹囲いなど
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の教科書が買えない
- kakurenbo
- Scratcher
500+ posts
将棋のAI作成について話し合う!
皆さんゲーム木や駒の価値の判定を使った方法が多いようですが、
こんな方法はどうでしょうか(多分「遺伝的アルゴリズム」に分類されると思います)
1.ランダムに、それぞれ特徴を持った個体を生成させる。(例えば、「守りをがちがちに固める」や、「とにかく攻めまくる」など
2.それぞれを、実際対局させ、強いものを一つ生き残らせる。
3.生き残ったものを微妙に変化させたものをいくつか生成させる。(もし、「守りをがちがちに固める」が生き残ったとすると、「全部の駒を使って囲
う」や、「金銀三枚で守る(残りは、攻めに使う)」など)
4.その個体どうして更に戦わせ、また個体を一つ残す。
5.3‐4を数百世代目まで繰り返す。
6.最後まで生き残った個体を最終的にAIとして組み込む。
ただこれをSCRATCHで実行するのは、ほぼ不可能なので、javascriptなどでAIを生成・対局・選別させた後に最終的なAIの完成形をスクラッチに移植すると出来ると思います。
その他の問題点としては、とても時間がかかるということですかね。高スペックのパソコンを使っても1,2日はかかると思います。
序盤は、定跡をリストなどに棋譜として、用意しておき、それを使ってもよさそうですね。
こんな方法はどうでしょうか(多分「遺伝的アルゴリズム」に分類されると思います)
1.ランダムに、それぞれ特徴を持った個体を生成させる。(例えば、「守りをがちがちに固める」や、「とにかく攻めまくる」など
2.それぞれを、実際対局させ、強いものを一つ生き残らせる。
3.生き残ったものを微妙に変化させたものをいくつか生成させる。(もし、「守りをがちがちに固める」が生き残ったとすると、「全部の駒を使って囲
う」や、「金銀三枚で守る(残りは、攻めに使う)」など)
4.その個体どうして更に戦わせ、また個体を一つ残す。
5.3‐4を数百世代目まで繰り返す。
6.最後まで生き残った個体を最終的にAIとして組み込む。
ただこれをSCRATCHで実行するのは、ほぼ不可能なので、javascriptなどでAIを生成・対局・選別させた後に最終的なAIの完成形をスクラッチに移植すると出来ると思います。
その他の問題点としては、とても時間がかかるということですかね。高スペックのパソコンを使っても1,2日はかかると思います。
序盤は、定跡をリストなどに棋譜として、用意しておき、それを使ってもよさそうですね。
Last edited by kakurenbo (Jan. 25, 2020 07:28:18)
そう、私です。
- kakurenbo
- Scratcher
500+ posts
将棋のAI作成について話し合う!
削除
Last edited by kakurenbo (Jan. 25, 2020 07:28:05)
そう、私です。
- kakurenbo
- Scratcher
500+ posts
将棋のAI作成について話し合う!
削除
Last edited by kakurenbo (Jan. 25, 2020 07:28:29)
そう、私です。
- _R-T_6-8_
- Scratcher
74 posts
将棋のAI作成について話し合う!
ゲーム木や駒の価値の判定を使った方法が多いようですが、↑久しぶりなのでちゃんとできてるか心配 皆さん
こんな方法はどうでしょうか(多分「遺伝的アルゴリズム」に分類されると思います)(ry
なんかいきなり乱入しますが、(すいません)
AI同士を戦わせるのではなくてAI vs 強い人
とかでやってみればもしかしたらScratchとかでも出来る可能性があるかも。
プログラムはどうするかですが、少しだけ。
(僕は将棋が弱いので)
AIからしたら、相手(人間側)の手なども踏まえて考えると思うので、
3三金右(あくまで例です)とかじゃなくて
4433駒(指す前の位置→指した後の位置→駒に割り振った数字)
とかにしてAIに解析できやすいようにする必要がありそうです。
ローマ字で…をうとうとする時にとなりのやつ押してしまって//を打ってしまって照れる人いるか???????
例:え//どういうこと///
絶対いるよね
- matsushun05
- Scratcher
31 posts
将棋のAI作成について話し合う!
突然乱入すみません(ディスカッション初めて)
AIの読みを軽くする方法を少し考えてみました。
・横に並んだこの手に関してあんまり利きのない歩などを1つにする
・持ち駒に評価値をつけて低ければ合いごま、高ければ合いごまにしずに逃げるなど1つの区切りをつけておけば今みたいに2つで済みます
・囲いや戦法をあらかじめいくつか入れておくと序盤は迷わずに、終盤はAIなら読みやすいっぽいので序盤の思考を減らす
・逆に終盤(特に詰みを読むとき)は沢山読むようにしあまり関係のないところの思考を避ける。
何かディスカッションにふさわしくないことがあったら教えて下さい。
AIの読みを軽くする方法を少し考えてみました。
・横に並んだこの手に関してあんまり利きのない歩などを1つにする
・持ち駒に評価値をつけて低ければ合いごま、高ければ合いごまにしずに逃げるなど1つの区切りをつけておけば今みたいに2つで済みます
・囲いや戦法をあらかじめいくつか入れておくと序盤は迷わずに、終盤はAIなら読みやすいっぽいので序盤の思考を減らす
・逆に終盤(特に詰みを読むとき)は沢山読むようにしあまり関係のないところの思考を避ける。
何かディスカッションにふさわしくないことがあったら教えて下さい。
AIの作り方教えて下さい。
- kakurenbo
- Scratcher
500+ posts
将棋のAI作成について話し合う!
それはいいですね!ゲーム木や駒の価値の判定を使った方法が多いようですが、↑久しぶりなのでちゃんとできてるか心配 皆さん
こんな方法はどうでしょうか(多分「遺伝的アルゴリズム」に分類されると思います)(ry
なんかいきなり乱入しますが、(すいません)(ry
その発想はなかったです。
戦う度に強くなるのってなんかいいですよね。(*´▽`*)
そう、私です。
- MINECRAFT_NIHON
- Scratcher
6 posts
将棋のAI作成について話し合う!
おっ!いいアイデアですね!王(玉)の価値は∞(無限大)にすれば、どの駒よりも価値が高くなります!!というか、駒の価値の高いものを、優先的に無理のない程度に狙わせるようにしておいて、王の価値を馬や飛車よりもずっと高くすれば良いのでは?そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも) 序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
(その時点での獲る手間などを加味した上で点数化して、どの駒に狙いをつけるかを定める、みたいな)
(部外者だけど)
【駒を取る場合】
駒を取る時は、どこを見ても、狙われないなら、取る。自分の駒が取られても、相手の駒を取ってしまう場合も、取る。
(取られてしまう場合は、逃げるか、持ち駒を打って、守る。)
【一番初めに動かす駒】
二六歩・八四歩
【守り・囲い】
敵の駒が、自分の陣(じん)に入ってきたら、守り・囲い をする。
【守る駒】
狙われている場合は、持ち駒で守ります。守るのに適しているのは、「歩」です。打った時、禁じ手「二歩」になる場合は、香を使う。香が無い場合は、桂馬。桂馬が無い場合は、銀。銀が無い場合は、金。金が無い場合は、角。角が無い場合は、飛。飛が無い場合は、逃げる。
とりあえず、場合による動き方を書いておきました。使えるかどうかは分かりませんが、使えたら、伝えて下さい!!では、また!!(@_^⭐︎)/
僕の意見ですが自分も駒がとられてしまっても、相手の駒を取ってしまう場合もとるというのは、自分の価値が相手の価値より低いときのほうがいいと思います。わかっていたらごめんなさい。
- MINECRAFT_NIHON
- Scratcher
6 posts
将棋のAI作成について話し合う!
付け足しです。金 角 飛車は守るに適していないと思います。それと、そこに一手でいける駒も守るといいと。 最後に守り 囲いですが、囲いは最初からの方がいいと思います 穴熊等は作るのに数手使うので。 何度も失礼しました。m(._.)mおっ!いいアイデアですね!王(玉)の価値は∞(無限大)にすれば、どの駒よりも価値が高くなります!!というか、駒の価値の高いものを、優先的に無理のない程度に狙わせるようにしておいて、王の価値を馬や飛車よりもずっと高くすれば良いのでは?そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも) 序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
(その時点での獲る手間などを加味した上で点数化して、どの駒に狙いをつけるかを定める、みたいな)
(部外者だけど)
【駒を取る場合】
駒を取る時は、どこを見ても、狙われないなら、取る。自分の駒が取られても、相手の駒を取ってしまう場合も、取る。
(取られてしまう場合は、逃げるか、持ち駒を打って、守る。)
【一番初めに動かす駒】
二六歩・八四歩
【守り・囲い】
敵の駒が、自分の陣(じん)に入ってきたら、守り・囲い をする。
【守る駒】
狙われている場合は、持ち駒で守ります。守るのに適しているのは、「歩」です。打った時、禁じ手「二歩」になる場合は、香を使う。香が無い場合は、桂馬。桂馬が無い場合は、銀。銀が無い場合は、金。金が無い場合は、角。角が無い場合は、飛。飛が無い場合は、逃げる。
とりあえず、場合による動き方を書いておきました。使えるかどうかは分かりませんが、使えたら、伝えて下さい!!では、また!!(@_^⭐︎)/
僕の意見ですが自分も駒がとられてしまっても、相手の駒を取ってしまう場合もとるというのは、自分の価値が相手の価値より低いときのほうがいいと思います。わかっていたらごめんなさい。
- onj0923
- Scratcher
46 posts
将棋のAI作成について話し合う!
このフォーラムはもう一年近くコメントがありません
流れが停止したフォーラムに書き込むのは「ネクロポスト」という行為に当たり、活動のある他のフォーラムが目立たなくなってしまいます
一度ヘルプ:日本語フォーラムに関する注意書きを読んでみてください
流れが停止したフォーラムに書き込むのは「ネクロポスト」という行為に当たり、活動のある他のフォーラムが目立たなくなってしまいます
一度ヘルプ:日本語フォーラムに関する注意書きを読んでみてください
- inoking
- Scratcher
1000+ posts
将棋のAI作成について話し合う!
新しい情報がある場合はネクロポストに当たりません。
今回はアルゴリズムについての意見を述べているので問題ないと思います。
そのうえで特に意見がなければこのトピックは自然に下がるだけです。
To the Scratch Team:
I think this topic is not a dead topic.
今回はアルゴリズムについての意見を述べているので問題ないと思います。
そのうえで特に意見がなければこのトピックは自然に下がるだけです。
To the Scratch Team:
I think this topic is not a dead topic.
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」ではない
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- matunyan0930
- Scratcher
500+ posts
将棋のAI作成について話し合う!
どこまで本格的な作品を作るのかはわかりませんが
少なくとも強化学習は時間がかかりすぎます。
強化学習でやるのだとするなら基盤だけ作ってあとはクラウド変数でscratchサイト上で学習する形になるかと。
だとしてもそれでも時間がかかりすぎます。強化学習はやめた方がいいでしょう。
しがない将棋指しとして、戦術について。
AIですから、正直人間よりも盤面全体の把握力はあるでしょう。
全てのコマが、相手からの攻撃をいくつ受けるかもしれないかという状況も数字で判断できます。
例えば例として、この歩兵は被直接攻撃評価が3あるといえます。(図では自分のコマは最下段の歩兵一つのみとします)
桂
歩銀
歩←この歩兵
逆に、相手のコマ1つ1つにどれだけ攻撃できるかというのも判断できます。上の図で言えば最下段の歩兵に攻撃している側の話ですね。
これらの数字から、全てのコマにかかっている敵味方の睨みがどちらの方が評価が上回っているかを判断し、そのコマを援護するためのコマを動かすこともできるかと。
ちなみに、この評価をコマではなくマスに対して行うことで、より高度な推測ができるかと思います。最大40回で済む演算が81回に増えてしまいますが。
少なくとも強化学習は時間がかかりすぎます。
強化学習でやるのだとするなら基盤だけ作ってあとはクラウド変数でscratchサイト上で学習する形になるかと。
だとしてもそれでも時間がかかりすぎます。強化学習はやめた方がいいでしょう。
しがない将棋指しとして、戦術について。
AIですから、正直人間よりも盤面全体の把握力はあるでしょう。
全てのコマが、相手からの攻撃をいくつ受けるかもしれないかという状況も数字で判断できます。
例えば例として、この歩兵は被直接攻撃評価が3あるといえます。(図では自分のコマは最下段の歩兵一つのみとします)
桂
歩銀
歩←この歩兵
逆に、相手のコマ1つ1つにどれだけ攻撃できるかというのも判断できます。上の図で言えば最下段の歩兵に攻撃している側の話ですね。
これらの数字から、全てのコマにかかっている敵味方の睨みがどちらの方が評価が上回っているかを判断し、そのコマを援護するためのコマを動かすこともできるかと。
ちなみに、この評価をコマではなくマスに対して行うことで、より高度な推測ができるかと思います。最大40回で済む演算が81回に増えてしまいますが。
- IRON-OWL
- Scratcher
100+ posts
将棋のAI作成について話し合う!
とりあえず基本の三手読みはやらせるべきかな。あと、モンテカルロ法使って最適囲いをあらかじめ見つけてそれ目指して指すとか
- zoukunn
- Scratcher
13 posts
将棋のAI作成について話し合う!
王手を、ひたすらかけても、詰まさないと意味がなくなってしまいます。詰将棋を、500個ほどプログラムすればよいのではないでしょうか。そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも) 序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
- ryuta_2007
- Scratcher
76 posts
将棋のAI作成について話し合う!
難しいですね
このスプライトがクリックされたとき[難しい問題だね] と言う
Last edited by ryuta_2007 (Jan. 25, 2020 06:48:46)
SCRATCH,PC&SCRATCHゲームセンター
これらを見てください‼‼ ここは作品のナンバーワンを決める、SCRATCH選手権開催中!
僕の自信作です!!★と♥つけてくれれば、フォローします!
春休み超えたら中学1年生のryuta_2007です!一応休みの日はSCRATCHやってます。
これは署名とゆうものであり、毎回書いてるわけじゃあありません。(卒業式どうなるの⁉) 作品を拡散して‼‼‼
- ryuta_2007
- Scratcher
76 posts
将棋のAI作成について話し合う!
方法は3つあります。
1つは現在のgoogleなどのように大量なデータ(方法)をプログラムする方法です。手間はかかりますが、難易度設定などもできます。
2つ目はリストを使ってランダムに操作する方法です。ですがこれだと、自滅や、難易度設定ができにくいなどの問題点もあります。
3つ目は2つを混ぜることです。そうすれば難易度設定もできるかつ、1つ目より時間がかかりません。ですが将棋の攻略方法がわからないと、
2つ目のようになる可能性が出てきます。AIは難しいんです。
オッと、もう一つありました。それは、自分で考える、本物のAIを作ることは無理だけど作ることです。誰も作れたことはありませんので。
そうすれば将棋どころじゃなくいろいろ賞をもらい超有名人になることでしょう(賞)。すいませんダジャレ入りました。
1つは現在のgoogleなどのように大量なデータ(方法)をプログラムする方法です。手間はかかりますが、難易度設定などもできます。
2つ目はリストを使ってランダムに操作する方法です。ですがこれだと、自滅や、難易度設定ができにくいなどの問題点もあります。
3つ目は2つを混ぜることです。そうすれば難易度設定もできるかつ、1つ目より時間がかかりません。ですが将棋の攻略方法がわからないと、
2つ目のようになる可能性が出てきます。AIは難しいんです。
オッと、もう一つありました。それは、自分で考える、本物のAIを作ることは無理だけど作ることです。誰も作れたことはありませんので。
そうすれば将棋どころじゃなくいろいろ賞をもらい超有名人になることでしょう(賞)。すいませんダジャレ入りました。
このトピックが一目でも見られたとき
ずっと
もし << <(ユーザー名) = [ryuta_2007]> > ではない>なら
ryuta_2007の [フォローボタン v] を押す
end
フォーローしてくれたユーザーの [フォーローボタン v] を押す
end
Last edited by ryuta_2007 (Jan. 25, 2020 06:47:23)
SCRATCH,PC&SCRATCHゲームセンター
これらを見てください‼‼ ここは作品のナンバーワンを決める、SCRATCH選手権開催中!
僕の自信作です!!★と♥つけてくれれば、フォローします!
春休み超えたら中学1年生のryuta_2007です!一応休みの日はSCRATCHやってます。
これは署名とゆうものであり、毎回書いてるわけじゃあありません。(卒業式どうなるの⁉) 作品を拡散して‼‼‼