[過去ログ] 【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
400: 2016/02/15(月)00:14 ID:2rfyeFpJ(1) AAS
高速化については一旦棚上げ。何やっても速度が上がらない。
ひたすらノード数カウントの速度低下を抑えて、カウントのバグ取りして。
色々発見はあったけど、結局ソースを綺麗にしただけだった。
後は、いずれゆっくり時間をかけて、評価関数を作り直すかな。
MPCを組みました。一応動作している模様。
これからしばらく、GUI作りに入ります。
MFCよくわからん。
401: 310 2016/02/20(土)13:43 ID:ZGi2V8ih(1/2) AAS
GUIできた。昔作った序盤定石部分と合体。
中盤探索を反復深化にして、3秒を超えて新しい深さに入らないあたりで調整。
MPCで25手くらいまで読めるように調整。
終盤完全読みは38手から。36手からMPC付で完全読み(つまり完全ではない)。
こんな感じでできたので、早速プレイ。自分だと軽く全滅負けしてしまうので、zebra先生
にお越しいただきました。が、滅茶苦茶弱い。
良く見ると、定石が効いている段階で+16だったのが、中盤読みになった瞬間に一気に
−14くらいまで落ちて、そのまま挽回できない感じ。zebra先生は、その前に定石から外れ
て、既にzebraから見て+14程度の評価値を算出している。つまり、定石部分がおかしい。
それ以外は、評価値もzebraとは大きく違わないし、終盤探索もちゃんと機能している感じ。
402: 310 2016/02/20(土)23:06 ID:ZGi2V8ih(2/2) AAS
zebra先生にならって定石の評価を表示するオプションをつけてみました。
ロジック的には間違いなさそうですが、定石DBがおかしいというか、定石に登録がない
手順に正しい変化があって、それを無視しているため、間違った判断をしているみたい。
一応、完全読みという触れ込みの棋譜を元にしているはずなので、使い方をどこかで
勘違いしているんだと思います。しばらく悩むしかなさそうです。
403: 310 2016/02/21(日)01:04 ID:nPWuqcvw(1) AAS
試しに定石部分を外して、中盤探索で開始してみたら、zebraの20手読みに対して
2戦して1勝1分となりました。読みの深さは、こちらが上なので、こんな感じでしょうか。
序盤20手分は評価値が無いので、20手近い探索を反復無しで探索するため、MPCを
使っても最初の数手は1手あたり5分以上掛かってしまいます。
定石については、以前にウェブで見つけてテキストに起こした定石データがあるので、
それを評価0で登録してみようかなぁと思っています。
定石の自己学習とか、評価付けとか、どうやるんだろ。
404: 310 2016/02/25(木)21:06 ID:fXRsnvrs(1) AAS
定石データを、上記の手打ちデータで作り直しました。
当初は並び取りとかの極端な進行以外は評価0.0にしたため、mobility関数のビット列
の下から定石に従って着手する形となり、zebra先生のBookに誘導されるように、少しずつ
不利な定石に乗り換えていき、負けるという展開に(汗
悔しかったので別のソフトを拾い、戦ってみると、そちらには圧勝。決して弱くはないと思う。
また、zebraとの対戦時にBookで評価値がついているものは、それを参考に修正したところ、
時々勝てるような感じになりました。
EDAX先生+UnifiedBookなるものを拾って、そちらと戦ってみたところ、軽く惨敗。
fjt定石とかだと終盤近くまでBookがあるみたいで、Bookが続く限り紛れが無い。
こちらが中盤探索などでミスるたびに−2づつ落としていき、お話にならないレベル差を感じました。
しばし熟考の上、定石の拡張、評価付けを考えてみようかと思います。
あと、評価値が近い時には、何らかの確率で手を選択するようにもしてみたいと思います。
405: 310 2016/02/28(日)01:10 ID:hQzoi2Tz(1) AAS
縦取り系は白番黒番試して、定石の評価値を修正してみました。
あと、AIの進行ごとのパラメータを試行錯誤して、なるべく負けないようにしてみました。
これにより、AIの読み時間が結構伸びて、1ゲームワーストケースで1手2分、トータル
5分くらい思考してしまいます。これは、反復深化などで、タイムアップをせずに、次の
ステップに入る制限時間だけ決めているためです。
EDAX+Unified Book先生はレベル21で、黒番白番ともに引き分けになります。
こちらは20手前に定石が切れていますが、その後も最善手が打てているという事になり
ます。こちらは何局打っても手を変えないので、EDAX先生のBookの進行に合わせた
だけですが。一方zebra先生は比較的手をいろいろ変えてくるので、勝ち負けが発生します
(もちろん、各アプリの設定次第ですが)。
序盤定石の評価値をそれなりにしたら、後は引き分け進行をひたすら登録していって、
相手が最善しか着手しないと信用すると負けないプログラムができちゃうのではないか
と、ふと思いましたが・・・。トップ同士の対局が引き分けばかりになるのは、こういう事
なんでしょうね。というか、完全解析ってこれが完成した状態なのか。
EDAX先生のUnified Bookは、いくつかの引き分け進行棋譜の集合体のようですが、
元データが幸い既知のWthor形式なので、それをもらってしまうと、トップレベルになる
のかなぁ。トップな人がBook構築に主眼を移したり、開発が止まったりする訳だと。
そろそろ、混とんとしているプログラムを綺麗に直して、パクリBook作って開発終了しちゃ
おうかと思い始めています。速度的には、まだまだ改善の余地はありそうですが。
406(27): じょげなら ◆kXDiHQuNQ2 2016/02/29(月)19:18 ID:etqtABZA(1/3) AAS
ライフゲーム囲碁というゲームのネット対局場を作りたいです。
囲碁でいうKGSみたいなのが理想です。
プログラムはある程度わかりますが、ネット関連の知識が乏しいです。
何から始めればいいですか?
407: 2016/02/29(月)19:21 ID:etqtABZA(2/3) AAS
URLがNGワードに引っかかる…
408: 2016/02/29(月)19:34 ID:etqtABZA(3/3) AAS
好きな言語
C++
C#
Ruby
嫌いな言語
Java
Python
Perl
409: 406 2016/03/01(火)20:52 ID:6wFQeZGp(1) AAS
とりあえずHTML5の本買ってきた
410(1): 406 2016/03/03(木)19:44 ID:Hi4nZgiL(1) AAS
外部リンク:fast-uploader.com
碁石をぽちぽち置けるところまで作った
411(1): 310 2016/03/04(金)10:15 ID:Q4DtXsqP(1) AAS
>>410
一晩考えてみた。
通信回りに興味を持って遊んだのは15年くらい前だし、Javaとかイメージしかないし。
あまり助言できる事はありませんが、一つ言えるのは、UIに凝ったりサービス内容を
考えたりするのは最後で良いと思います。
Rubyが好きなら、まずはCGIベースで、テキスト表示で対戦を実現する仕掛けを作る事
だと思います。次に複数のユーザーが接続するのであれば、身元確認のためのID/パス
ワード管理が必要になりますし、個々の対戦を区別するにはセッション管理が必要になり
ます。この辺は、スタンドアロンのアプリには無い、独特の世界なので、結構新しい技術、
テクニックの習得が必要になるかと思います。いまどきあるのかわかりませんが、チャット
のスクリプトとかあれば、参考になるかも。
その辺から入り込んで、いろいろ調べていくと、だんだんと必要な技術、知識が増えてくる
んじゃないかと思います。
412: 406 2016/03/04(金)18:58 ID:w3YPuhPg(1) AAS
>>411
レスありがとうございます。
確かにセッション管理とか知らないです。
チャット調べてみます。
413: 406 2016/03/07(月)21:05 ID:NI+TTWmM(1) AAS
RoRの本買ってきた。
チャットはまだ調べてない。
414: 2016/03/09(水)19:45 ID:Cf1/SDqU(1) AAS
うおおおおセドルがああああぁぁぁ
415: 310 2016/03/10(木)02:00 ID:hvbQwbFh(1) AAS
うむむ。
これにて、オセロができたら次は囲碁という目標が雲散霧消してしまいました。
どうしよう。
416: 310 2016/03/10(木)18:05 ID:b1SmaPOg(1) AAS
AlphaGO強すぎ・・・orz
今夜は、囲碁関係者だけじゃなく、AI周りの人も、Google以外全員お通夜ですね。
417: 2016/03/10(木)19:38 ID:SphVvbk5(1) AAS
310氏もalpha碁注目してたか。
セドル一発入れてほしいなぁ
418: 2016/03/11(金)09:04 ID:HTdTU0Fi(1) AAS
浮上
419: 2016/03/12(土)12:19 ID:k2nAbsiz(1) AAS
おお、このスレ生きてたんだ
なんで RoR なんか見てるのよスレ間違えたかと思った
420: 2016/03/13(日)18:01 ID:X9umXTnK(1) AAS
せどるううううッよくやったあああああぁっ
人類の勝利やあああぁぁっ
421: 2016/03/13(日)19:02 ID:Gv0++KTh(1) AAS
お、第四局はセドル勝ったか
422: 310 2016/03/13(日)20:47 ID:50OeMIN8(1) AAS
うむ。なんか期待を裏切られっぱなしw
この負けっぷりを見ると、囲碁もトライしたくなってくる希ガス。
423: 406 2016/03/15(火)20:44 ID:NF77F+OG(1) AAS
RoRとjavascriptの連携がよくわからん。
でもちょっとづつだけど進んでる。
424: 310 2016/03/16(水)23:06 ID:YEZK1fac(1) AAS
アルファ碁ロスまっただ中ですw
オセロ作ったおかげで、一連の勝負をいままでとは違う視点で見れたかなぁ。
とりあえず、囲碁のモンテカルロ解説した本と、ディープラーニングの入門書を
買ってきた。さらっと読んだけど、ディープラーニングは理解に時間がかかりそうorz
オセロで3層パーセプトロンを試したときは、結局うまく動かなかった。
実装が悪いのもあるけど、学習にもすごく時間がかかった。
あれをディープにしたら、どうなっちゃうんだろうかは不安ではある。
こちとら、SurfacePro3しかないし(汗
425: 406 2016/03/19(土)20:06 ID:Ik15FlWh(1) AAS
railsでdeviseとかいうgemをつかってユーザー認証機能実装したけど、
複数ユーザーがログインして対局させる方法がサッパリわからん。
426: 406 2016/03/24(木)20:20 ID:C08ak5N3(1) AAS
ブラウザ閉じたときに自動ログアウトのやり方がわからん
427: 2016/03/25(金)13:51 ID:9Ea9sx62(1/2) AAS
ブラウザは通信があった時にしかクライアントの消息が確認できない。
n分アクセスが無かったらサーバー側で勝手にログアウトさせちゃう
タイムアウト方式が普通かなと。その時間経過後にアクセスがあっても
ログインからやり直し。
このログインからタイムアウト(ログアウト)までの間をセッションと呼ぶ。
428: 2016/03/25(金)14:16 ID:9Ea9sx62(2/2) AAS
1行目おかしかった。
>WEBサーバ、ブラウザという仕組みは、ブラウザから通信があった時にしか、
>サーバーはブラウザの消息を確認できない。
に修正。
1.初画面からログインする
2.サーバが、HTMLにセッションNoを埋め込んで、ブラウザに表示。
サーバでは、セッションIDを配列などで管理して、IDと最終アクセス時間をとっておく。
3.ブラウザ側からのCGIリクエストには、必ずセッションNoを入れて送信。
セッションNoで、相手がだれか(ID)を特定して、処理を行う。
つまり、個々の処理はセッションNoで管理されている。
4.ブラウザからCGIリクエストが来た時に、タイムアウトしていたら、ログアウト処理へ
あと、ゴミ掃除で1日1回くらいタイムアウトしているものを削除。
この辺が基本。対局型の場合。
5.2つのセッションが対局している事になるので、対局管理する配列を用意。
6.相手の着手待ちの時に、どうするのか?その辺が肝。
HTMLに細工して、1秒ごとにリロードさせる。リロードにより、着手が行われたか
それとも秒読み時間切れになったか?判断をサーバーに依頼する。
などなど。やり方は色々あるかと思う。
とにかく、肝は、情報がブツ切れで、あちこちにある事。これにより、サーバーで簡単に判断
ができない事があるので、いくつかの機能をブラウザスクリプトに依頼しなきゃならん。
それでも、相手が放置して逃げた時、ブラウザを閉じて逃げた時(回線切断やPCダウン)、
などなどの例外が起きるので、それらをタイムアウト検出などで拾わにゃならん。
どうするのかなどの、例外処理をリストアップして、一つずつ対応を決めていく事。
プログラムテクニックはどうとでもなるけど、例外事象の拾い上げの方が大変。
429(1): 406 2016/03/25(金)17:43 ID:/V6G/Eic(1) AAS
丁寧にありがとうございます。
javascriptのwindow.oncloseからなんとかならないかといろいろ調べていましたが、無理筋なんでしょうか。
タイムアウト検討してみます。
上下前次1-新書関写板覧索設栞歴
あと 573 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.012s