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日はかかると思います。

序盤は、定跡をリストなどに棋譜として、用意しておき、それを使ってもよさそうですね。

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)


そう、私です。
_ryosuke_
Scratcher
89 posts

将棋のAI作成について話し合う!

なるほど、なんとなくイメージ湧きました。
あとはどうプログラムにするか、、

透明化3DPDTEを作りました!
透明化3DPTEを作りました!
将棋はこちらから!

ハックをしている場合はH、バグを使用いている場合はUB(バグの種類)で区別をつけています。
_R-T_6-8_
Scratcher
74 posts

将棋のAI作成について話し合う!

kakurenbo wrote:

皆さんゲーム木や駒の価値の判定を使った方法が多いようですが、
こんな方法はどうでしょうか(多分「遺伝的アルゴリズム」に分類されると思います)(ry
↑久しぶりなのでちゃんとできてるか心配

なんかいきなり乱入しますが、(すいません)
AI同士を戦わせるのではなくてAI vs 強い人
とかでやってみればもしかしたらScratchとかでも出来る可能性があるかも。

プログラムはどうするかですが、少しだけ。
(僕は将棋が弱いので)
AIからしたら、相手(人間側)の手なども踏まえて考えると思うので、
3三金右(あくまで例です)とかじゃなくて
4433駒(指す前の位置→指した後の位置→駒に割り振った数字)
とかにしてAIに解析できやすいようにする必要がありそうです。

ローマ字で…をうとうとする時にとなりのやつ押してしまって//を打ってしまって照れる人いるか???????
例:え//どういうこと///

絶対いるよね
_ryosuke_
Scratcher
89 posts

将棋のAI作成について話し合う!

とりあえずニューラルネットワークを活用するためのプログラムを考えないといけないのですが全くわかりません><
定跡を覚えさせるのはいいかもしれませんね.難しい.

透明化3DPDTEを作りました!
透明化3DPTEを作りました!
将棋はこちらから!

ハックをしている場合はH、バグを使用いている場合はUB(バグの種類)で区別をつけています。
matsushun05
Scratcher
31 posts

将棋のAI作成について話し合う!

突然乱入すみません(ディスカッション初めて)
AIの読みを軽くする方法を少し考えてみました。
・横に並んだこの手に関してあんまり利きのない歩などを1つにする
・持ち駒に評価値をつけて低ければ合いごま、高ければ合いごまにしずに逃げるなど1つの区切りをつけておけば今みたいに2つで済みます
・囲いや戦法をあらかじめいくつか入れておくと序盤は迷わずに、終盤はAIなら読みやすいっぽいので序盤の思考を減らす
・逆に終盤(特に詰みを読むとき)は沢山読むようにしあまり関係のないところの思考を避ける。

何かディスカッションにふさわしくないことがあったら教えて下さい。

AIの作り方教えて下さい。
kakurenbo
Scratcher
500+ posts

将棋のAI作成について話し合う!

_R-T_6-8_ wrote:

kakurenbo wrote:

皆さんゲーム木や駒の価値の判定を使った方法が多いようですが、
こんな方法はどうでしょうか(多分「遺伝的アルゴリズム」に分類されると思います)(ry
↑久しぶりなのでちゃんとできてるか心配

なんかいきなり乱入しますが、(すいません)(ry
それはいいですね!
その発想はなかったです。
戦う度に強くなるのってなんかいいですよね。(*´▽`*)

そう、私です。
MINECRAFT_NIHON
Scratcher
6 posts

将棋のAI作成について話し合う!

taichi0802 wrote:

ko2222 wrote:

taichi0802 wrote:

_ryosuke_ wrote:

序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも)

このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
というか、駒の価値の高いものを、優先的に無理のない程度に狙わせるようにしておいて、王の価値を馬や飛車よりもずっと高くすれば良いのでは?
(その時点での獲る手間などを加味した上で点数化して、どの駒に狙いをつけるかを定める、みたいな)
(部外者だけど)
おっ!いいアイデアですね!王(玉)の価値は∞(無限大)にすれば、どの駒よりも価値が高くなります!!
【駒を取る場合】
駒を取る時は、どこを見ても、狙われないなら、取る。自分の駒が取られても、相手の駒を取ってしまう場合も、取る。
(取られてしまう場合は、逃げるか、持ち駒を打って、守る。)
【一番初めに動かす駒】
二六歩・八四歩
【守り・囲い】
敵の駒が、自分の陣(じん)に入ってきたら、守り・囲い をする。
【守る駒】
狙われている場合は、持ち駒で守ります。守るのに適しているのは、「歩」です。打った時、禁じ手「二歩」になる場合は、香を使う。香が無い場合は、桂馬。桂馬が無い場合は、銀。銀が無い場合は、金。金が無い場合は、角。角が無い場合は、飛。飛が無い場合は、逃げる。

とりあえず、場合による動き方を書いておきました。使えるかどうかは分かりませんが、使えたら、伝えて下さい!!では、また!!(@_^⭐︎)/

僕の意見ですが自分も駒がとられてしまっても、相手の駒を取ってしまう場合もとるというのは、自分の価値が相手の価値より低いときのほうがいいと思います。わかっていたらごめんなさい。
MINECRAFT_NIHON
Scratcher
6 posts

将棋のAI作成について話し合う!

MINECRAFT_NIHON wrote:

taichi0802 wrote:

ko2222 wrote:

taichi0802 wrote:

_ryosuke_ wrote:

序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも)

このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
というか、駒の価値の高いものを、優先的に無理のない程度に狙わせるようにしておいて、王の価値を馬や飛車よりもずっと高くすれば良いのでは?
(その時点での獲る手間などを加味した上で点数化して、どの駒に狙いをつけるかを定める、みたいな)
(部外者だけど)
おっ!いいアイデアですね!王(玉)の価値は∞(無限大)にすれば、どの駒よりも価値が高くなります!!
【駒を取る場合】
駒を取る時は、どこを見ても、狙われないなら、取る。自分の駒が取られても、相手の駒を取ってしまう場合も、取る。
(取られてしまう場合は、逃げるか、持ち駒を打って、守る。)
【一番初めに動かす駒】
二六歩・八四歩
【守り・囲い】
敵の駒が、自分の陣(じん)に入ってきたら、守り・囲い をする。
【守る駒】
狙われている場合は、持ち駒で守ります。守るのに適しているのは、「歩」です。打った時、禁じ手「二歩」になる場合は、香を使う。香が無い場合は、桂馬。桂馬が無い場合は、銀。銀が無い場合は、金。金が無い場合は、角。角が無い場合は、飛。飛が無い場合は、逃げる。

とりあえず、場合による動き方を書いておきました。使えるかどうかは分かりませんが、使えたら、伝えて下さい!!では、また!!(@_^⭐︎)/

僕の意見ですが自分も駒がとられてしまっても、相手の駒を取ってしまう場合もとるというのは、自分の価値が相手の価値より低いときのほうがいいと思います。わかっていたらごめんなさい。
付け足しです。金 角 飛車は守るに適していないと思います。それと、そこに一手でいける駒も守るといいと。 最後に守り 囲いですが、囲いは最初からの方がいいと思います 穴熊等は作るのに数手使うので。 何度も失礼しました。m(._.)m
onj0923
Scratcher
46 posts

将棋のAI作成について話し合う!

このフォーラムはもう一年近くコメントがありません
流れが停止したフォーラムに書き込むのは「ネクロポスト」という行為に当たり、活動のある他のフォーラムが目立たなくなってしまいます
一度ヘルプ:日本語フォーラムに関する注意書きを読んでみてください
inoking
Scratcher
1000+ posts

将棋のAI作成について話し合う!

新しい情報がある場合はネクロポストに当たりません。
今回はアルゴリズムについての意見を述べているので問題ないと思います。

そのうえで特に意見がなければこのトピックは自然に下がるだけです。

To the Scratch Team:
I think this topic is not a dead topic.

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
onj0923
Scratcher
46 posts

将棋のAI作成について話し合う!

そうだったんですか
勘違いで指摘してしまい申し訳ありません
MINECRAFT_NIHON
Scratcher
6 posts

将棋のAI作成について話し合う!

onj0923 wrote:

そうだったんですか
勘違いで指摘してしまい申し訳ありません
教えてくださり有難うございました。
matunyan0930
Scratcher
500+ posts

将棋のAI作成について話し合う!

どこまで本格的な作品を作るのかはわかりませんが
少なくとも強化学習は時間がかかりすぎます。
強化学習でやるのだとするなら基盤だけ作ってあとはクラウド変数でscratchサイト上で学習する形になるかと。
だとしてもそれでも時間がかかりすぎます。強化学習はやめた方がいいでしょう。

しがない将棋指しとして、戦術について。
AIですから、正直人間よりも盤面全体の把握力はあるでしょう。
全てのコマが、相手からの攻撃をいくつ受けるかもしれないかという状況も数字で判断できます。
例えば例として、この歩兵は被直接攻撃評価が3あるといえます。(図では自分のコマは最下段の歩兵一つのみとします)

  桂
 歩銀
 歩←この歩兵

逆に、相手のコマ1つ1つにどれだけ攻撃できるかというのも判断できます。上の図で言えば最下段の歩兵に攻撃している側の話ですね。
これらの数字から、全てのコマにかかっている敵味方の睨みがどちらの方が評価が上回っているかを判断し、そのコマを援護するためのコマを動かすこともできるかと。
ちなみに、この評価をコマではなくマスに対して行うことで、より高度な推測ができるかと思います。最大40回で済む演算が81回に増えてしまいますが。

世界開拓  Arsenal Knights

活動はほぼ止まっていますが通知の確認くらいなら時々してます 連絡などあればお気軽にプロフィールにどうぞ
IRON-OWL
Scratcher
100+ posts

将棋のAI作成について話し合う!

とりあえず基本の三手読みはやらせるべきかな。あと、モンテカルロ法使って最適囲いをあらかじめ見つけてそれ目指して指すとか

Scratch Reversi Engine Competition(2017.8.1)優勝作品は@s00384206さんのAI@KAMESAN123AIでした!
zoukunn
Scratcher
13 posts

将棋のAI作成について話し合う!

taichi0802 wrote:

_ryosuke_ wrote:

序盤はそれでも構いませんが、終盤は駒の損得より速度って言いますからね。難しいです、、!
そうですか・・。では、終盤戦になったら、「王手」を優先するようにすればいいのではないでしょうか・・。でも、問題があります・・。どうやって終盤戦と分からせるのかです・・。ぼくの考えでは、駒が、敵陣に4つ入ったら、終盤戦となる としたらいいのではないでしょうか・・。(無理かも)

このプログラムも難しそうです・・。でも、成功したら、ぜひ伝えて下さい!では、またお会いしましょう(@_^⭐︎)/
王手を、ひたすらかけても、詰まさないと意味がなくなってしまいます。詰将棋を、500個ほどプログラムすればよいのではないでしょうか。
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を作ることは無理だけど作ることです。誰も作れたことはありませんので。
そうすれば将棋どころじゃなくいろいろ賞をもらい超有名人になることでしょう(賞)。すいませんダジャレ入りました。

このトピックが一目でも見られたとき
ずっと
もし << <(ユーザー名) = [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やってます。
これは署名とゆうものであり、毎回書いてるわけじゃあありません。卒業式どうなるの⁉ 作品を拡散して‼‼‼

Powered by DjangoBB