トップページ⇒tech
473コメント126KB

【思考】オセロのAIを作りたいのだが【難問】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/05/29(火) 18:29:29
オセロを作っているのだが、思考ルーチンとかが全くわからない。
C言語自体完全独学で、参考書とかもほとんど読んでない。
どしたら作れる?

どうやったらいいのか教えてくれ。
0153デフォルトの名無しさん2007/06/20(水) 12:31:17
>>152
で?
0154デフォルトの名無しさん2007/06/20(水) 12:34:52
通信対戦できるように改造
01551 ◆jG14jPoLic 2007/06/20(水) 13:10:46
>>152
QVGAサイズで作ってもいいと思うけど、ボードを220x220で作るとして
大体一目当たり28x28になる。 今そのサイズのウィンドウ作ってみた
けど、小さいと思うな。 そこをクリックするわけだし。
しかも自分の環境は12.1inch液晶の800x600でみて小さいと思ったから、
12.1インチのXGAなら、さらにちっさく感じるんでないかい。
余白も100もないから、そこにいろいろと情報載せるには狭すぎるし。

携帯電話のアプリケーションでオセロをダウンロードしてみたけど、
QVGAの自分の携帯電話の液晶のサイズだと、幅いっぱいいっぱいにオセロ
のボードを表示してる。 余白に現在の石の数を表示してるくらいで、
他の情報は無い。 携帯電話のアプリケーションだと、これくらいでいい
と思うけど。

0156デフォルトの名無しさん2007/06/20(水) 13:15:55
>>153
老眼?
0157デフォルトの名無しさん2007/06/20(水) 13:28:21
>>155
GUI設計って観点から行くとさ、
環境は千差万別だから、ユーザが自分に合わせてある程度改変できるってのがベターなんだよ

背景色とか画面色を固定したアプリがボロクソ言われるのはその辺
まだセンスがあれば許せる部分もあるが、
Windows上のGUI設計の観点からいけば、ダメな設計の代表みたいなもん

ぶっちゃけ、GUIで作るなら、サイズ変更可能で、
それに応じて盤面サイズや情報表示部分も自動で拡大・縮小されるくらいは出来る方が良い
そうすりゃ画面が小さいだのはみ出すだの文句言われる余地がなくなる
0158デフォルトの名無しさん2007/06/20(水) 13:50:33
>>155
仕事中に隠れてやるには 100x100 くらいがいいねw
0159デフォルトの名無しさん2007/06/20(水) 14:09:36
CUIで全角8×8で
0160デフォルトの名無しさん2007/06/20(水) 19:34:04
ここに書き込んでるアホよりは、>>1が有能だと分かるスレですね。
0161デフォルトの名無しさん2007/06/20(水) 20:06:36
2chにはあほしかいない
0162デフォルトの名無しさん2007/06/20(水) 23:33:16
>>1が有能なんじゃなくて、周りが低水準なだけかと
0163デフォルトの名無しさん2007/06/21(木) 11:25:29
低水準言語
0164デフォルトの名無しさん2007/06/21(木) 12:31:53
>>161
お前を基準にしないでくれ
俺のような超天才も稀にいるんだから
0165デフォルトの名無しさん2007/06/21(木) 12:47:20
>>160
>>1 乙。
0166デフォルトの名無しさん2007/06/21(木) 12:49:50
そりゃぁ、

乙。

とか普通にいってるようなところに、マトモな人間はいないだろ
0167デフォルトの名無しさん2007/06/21(木) 17:23:11
自作自演、お疲れ様でございます。
お忙しいところ、本当に申し訳ありませんでした。
今後とも宜しくお願い申し上げます。
0168デフォルトの名無しさん2007/06/22(金) 18:05:10
びくもおしろちくりたいのだすがどすればいいだすか?
0169デフォルトの名無しさん2007/06/22(金) 18:06:13
あがとけまし
0170デフォルトの名無しさん2007/06/22(金) 18:09:21
暴れてんなあ、>>1。
0171デフォルトの名無しさん2007/06/22(金) 18:36:05
>>1です。
私が御迷惑をお掛けしました
0172デフォルトの名無しさん2007/06/23(土) 13:51:01
強化学習でなんとかしる!>>1
017312007/06/23(土) 16:55:12
謝ってるんだから許してくれよ
0174デフォルトの名無しさん2007/06/24(日) 05:56:59
ここなに? 雑談スレッド?
0175デフォルトの名無しさん2007/06/24(日) 14:45:01
>>1を崇拝するスレッド
0176デフォルトの名無しさん2007/06/24(日) 17:53:29
ほす
0177デフォルトの名無しさん2007/06/24(日) 23:21:44
>>1を干す
0178デフォルトの名無しさん2007/06/26(火) 22:08:11
1はどこ行った?
01791 ◆jG14jPoLic 2007/06/29(金) 15:19:26
仕事が忙しくて家に変えれないのでここ2週間位何も進んでない。
多分来週の頭には変えれて、夜は暇を取ったからちょっとづつ
できると思う。

0180デフォルトの名無しさん2007/06/29(金) 17:21:50
あと5年はかかりそうだなw
01811 ◆jG14jPoLic 2007/07/01(日) 21:16:13
>>180
どういう計算だ?
GUIにするだけならコーディングに3時間もかからないだろ。
見た目とかマニュアル読むのも含めたら10時間程度かかると
思うが。 うまく行けば来週中にはできるかもな。
0182デフォルトの名無しさん2007/07/02(月) 16:36:26
>>180が作ると5年かかる。自己紹介乙。
0183デフォルトの名無しさん2007/07/02(月) 18:04:45
>>181
ゲームのロジックは出来てるの?
0184デフォルトの名無しさん2007/07/02(月) 20:07:32
>>183
できてるんじゃないの?
>>120に思考だけができてないって書いてるし
0185デフォルトの名無しさん2007/07/02(月) 21:24:27
それはロジックが出来てるっていうのか?
0186デフォルトの名無しさん2007/07/02(月) 21:51:07
簡単なロジックはできてるらしいから、GUIも作ってから
思考アルゴリズム考えてもいいんでない
01871802007/07/03(火) 15:38:31
>>182
20年前に1ヶ月で作ったわけだが。
0188デフォルトの名無しさん2007/07/04(水) 18:04:25
で?
20年前にGUIって、システムは何使ったの?
具体的に教えてくれ。
0189デフォルトの名無しさん2007/07/04(水) 21:35:20
でっていう
0190デフォルトの名無しさん2007/07/04(水) 23:31:40
>>188
30年前にGUIって言ったら驚くが、
20年前なら国産パソコンがゴロゴロしてた。
GUIなんてふつーにあった。
0191デフォルトの名無しさん2007/07/05(木) 00:44:01
だからシステムは?
0192デフォルトの名無しさん2007/07/05(木) 06:21:21
>>191
自作じゃないのかな。つーか、GUIとシステムは、直接の関係はないですよ。
0193デフォルトの名無しさん2007/07/05(木) 07:18:36
20年前だと丁度漏れがbasicで逆ルールオセロを作った頃かな。
当時GUIなんてふつーにあったかもしれんが誰もそんなこと言わなかったな。
0194デフォルトの名無しさん2007/07/05(木) 07:46:22
自身よりも強いプログラムを作った事がある人居る?
とりあえずPentium4の3GHzで1手当たり10秒以内の思考を目安に
0195デフォルトの名無しさん2007/07/05(木) 11:46:57
どんなプログラム書けば1手10秒もかかるんだよw
0196デフォルトの名無しさん2007/07/05(木) 14:32:52
ど素人発見
0197デフォルトの名無しさん2007/07/05(木) 18:05:29
>>195
>>1 並みの知能だな。
0198デフォルトの名無しさん2007/07/06(金) 23:00:01
1手10秒だと30手で300秒=5分だから普通くらい?
0199デフォルトの名無しさん2007/07/06(金) 23:24:53
トッププログラムなら1手2秒以内の条件で人間の世界チャンピオンくらいの強さじゃないかな。
(人間側は1試合30分持ちくらいで)
0200デフォルトの名無しさん2007/07/07(土) 00:18:11
人間チャンプカワイソス
0201デフォルトの名無しさん2007/07/07(土) 07:25:39
CPU並べりゃほぼ定数割できるんだから2秒でも10秒でも変わらん気がするが。
0202デフォルトの名無しさん2007/07/07(土) 13:17:19
うん
で、作った人居ないの?
0203デフォルトの名無しさん2007/07/07(土) 15:06:46
>>122のやってみたけど思考時間長いわりに弱い
ゼブラは思考時間短いのに超強い
0204デフォルトの名無しさん2007/07/07(土) 15:50:47
>>122
まぁまぁ強いけどHard相手に1手5秒くらいで打ってても勝ってしまった
ヤフーレートで言えば1800くらい?
序盤で定石打ってきたけど積んでるのかな?
0205デフォルトの名無しさん2007/07/08(日) 17:22:52
>>193
システムは?
02061932007/07/08(日) 18:05:12
>>205
なんの?
0207デフォルトの名無しさん2007/07/08(日) 18:25:02
>>205
昔話がしたいのか?
スレ違いになるからやめとけよ
0208デフォルトの名無しさん2007/07/26(木) 22:32:11
人の心を読み取る装置は実在する!!

思考盗聴ってマジ話しなの?−2
http://society6.2ch.net/test/read.cgi/police/1165027345/

僕、実は思考盗聴されているんですけど!その3
http://life8.2ch.net/test/read.cgi/jinsei/1179663175/
0209デフォルトの名無しさん2007/09/08(土) 02:40:08
オセロのAIを
0210デフォルトの名無しさん2007/09/08(土) 04:50:25
>>194
居るよん
基本程度の定石搭載の序盤
相手の手詰まり狙いの中盤
MIN-MAX, αーβ枝狩の完全読みきりの終盤

これで初段レベル位いけるので
1級程度の俺より強くなっちまっただ
自分のレベルを超えると改良になったのか改悪になったのかわかんなくて
改良が進まなくなっちまったよ
強い人に対局してもらっってどんな感じ?って聞いたら
「筋が悪いのに妙に強くて変!」だってw


0211デフォルトの名無しさん2007/09/08(土) 05:01:18
>>210
自分より強くなったらソフト同士で対局させるのがいいだろうね
ベンチマーク用のソフトとしてのZebraやNtestやEdaxなどと
何局も自動対局する仕組みを用意するといいかも
強さが一定だから勝率に信頼性もあるし
ところでそれはどこかで公開してるの?
対戦してみたい
0212デフォルトの名無しさん2007/09/08(土) 20:19:39
俺もオセロ一回作ったけど自分より全然頭よくならなかったな
Min-Max法の実装部分が怪しいのか評価関数が悪いのかさえ分からない
自分が強くないと評価できないよねぇ
0213 ◆Mizar2to32 2007/09/08(土) 20:52:43
ttp://rvs.mzr.jp/070908chkteach.png
最近またやり始めたけどこんな状態だわ。
いい加減中盤評価関数に着手しないと間抜けだなぁ。
0214デフォルトの名無しさん2007/09/08(土) 21:35:20
>>212
min-maxなら探索木を表示するだけで動作確認できそうだけどね。
0215デフォルトの名無しさん2007/09/08(土) 22:56:42
>>214
評価関数がよしとする手を正しく選択してることは確認できても
その評価自体が前よりいいのかどうかが判定不能です

てか枝狩しても何十何百万手もある探索木をどうやって表示しろと
0216デフォルトの名無しさん2007/09/08(土) 23:14:25
>>211
んと、以前はIOSにつないどいたんだが、GGSAにシステム変わってから対応させてないんだわ
なんかね〜特別強かったわけでもないし気が抜けてしまったというかそんな感じで今は公開してないです

当時のロジステロの最弱レベル(1手読み)に
最初は勝てるが繰り返し対局すると学習されて勝てなくなるというレベルでした
ゼブラにも勝てなかったような気がする
要するに自分より強いけど強豪ソフトには歯が立たずという非常に中途半端なレベルで進化停滞です


0217デフォルトの名無しさん2007/09/09(日) 01:03:00
俺が作ったのは>>122にあるぞ
考え方は>>210とほぼ同じ
0218デフォルトの名無しさん2007/09/09(日) 03:47:14
>>217
nomalに何とか勝てるといった感じだ。
0219デフォルトの名無しさん2007/09/09(日) 04:25:55
>>217
Hardでも何とか勝ち越せるかな。
終盤はさすがに強いけど中盤で差をつければいける感じ。
対戦した感じでは種石を消してこちらの善手をを無くそうとする傾向が強い。
あと隅を重視しすぎてるためか、ストナーズトラップやウィング攻撃などの隅を取らせて辺を取るような戦略に弱い。
ちなみに自分は一応三段。
0220デフォルトの名無しさん2007/09/09(日) 11:00:35
途中まで弱いじゃんと思っていたが、うっかり角を明け渡してしまい
ボロ負けした。馬鹿だなぁ俺。
0221デフォルトの名無しさん2007/09/09(日) 18:47:17
>>215
> てか枝狩しても何十何百万手もある探索木をどうやって表示しろと

小規模でテストして動けば問題ないだろう
よほど変なコーディングしない限り
0222デフォルトの名無しさん2007/09/09(日) 23:45:02
>>221
なんか話がかみ合ってないようで
0223デフォルトの名無しさん2007/09/09(日) 23:53:05
>>215
>評価関数がよしとする手を正しく選択してることは確認できても
>その評価自体が前よりいいのかどうかが判定不能です

それは以前の評価関数や他のプログラムと対戦させたときの勝率で測る。
0224デフォルトの名無しさん2007/09/10(月) 00:43:56
>>223
そう単純にはいかんのんよ

学習させないと同じ手には同じ手しか返さなくなって弱くなってるのに前のには勝っちゃうとか起きるしさ
ひとつ前のには勝つけど二つ前のにはまけるってこともあったなあw

学習させると比較対象の強さがつねに変動してるというわけで、なにを比べてんだか?ってw
0225デフォルトの名無しさん2007/09/10(月) 00:49:22
>>224
普通はランダム局面を多数生成してそれぞれ白と黒持たせて勝率を出すんだけど
そういうのやってないの?
0226デフォルトの名無しさん2007/09/10(月) 01:12:46
>>225
ん〜それはやったこと無いなあ
ランダムでやって意味があるのか?
考えても見なかった
ランダム局面からの強さが通常の対局時の強さとよく一致するっていう
結果がでてるんなら今度はそれでやってみるよ
0227デフォルトの名無しさん2007/09/10(月) 01:41:06
ランダムが嫌なら初手から何手か進めた局面を千とか万とか用意して
そこから両手番で打たせればいいんじゃない
0228デフォルトの名無しさん2007/09/10(月) 02:05:44
>>227
それだと最初から対局させるのとあんまり違わないような気もするんだけどどうなんでしょ
まあそれはいいとして

それよりランダム局面多数からの強さと実際の強さがどれくらい一致するのか興味津々です
データーもってんならぜ公表を



0229デフォルトの名無しさん2007/09/10(月) 02:17:52
GGSのランダム局面はどうやって生成してるんだろうな
ランダムといっても中心2x2は必ず埋まってて全部の石が繋がってるくらいの制限はあるよね?
0230デフォルトの名無しさん2007/09/10(月) 02:38:32
>>229
しらね〜w
英語得意ならブーロウ氏にメールしたらおしえてくれるんじゃない?
0231デフォルトの名無しさん2007/09/15(土) 07:05:56
http://fw8.bookpark.ne.jp/cm/ipsj/search.asp?from=&flag=6&keyword=IPSJ-GI03011004&page=&mode=PDF
こんなの見つけたんだが・・・
0232デフォルトの名無しさん2007/09/15(土) 11:54:02
全然ダメじゃん
0233デフォルトの名無しさん2007/09/15(土) 12:07:11
Buroやその他の論文・プログラムすら知らない素人が改善したつもりになってる論文
0234デフォルトの名無しさん2007/09/19(水) 02:59:20
>>1が逃亡してるじゃん、ヘッボーーーー
0235デフォルトの名無しさん2007/09/21(金) 01:58:40
ところでみんなGGSにつないでんの?
0236デフォルトの名無しさん2007/09/21(金) 02:20:26
たまに繋いでるよ
0237デフォルトの名無しさん2007/09/21(金) 04:01:35
超〜〜〜〜〜〜久しぶりにつないで見た
パスワードわすれていた orz w

gestで入ってみたけどコンピュータープレイヤーしか居なかった
たまたまなのかすでに廃れているのか・・・・・
0238 ◆Mizar2to32 2007/09/23(日) 17:49:16
相変わらずJavaで終盤ばかりしてる人です。
http://rvs.mzr.jp/070923chkteach.png
終盤19-20手の棋譜訂正(というよりは局面評価値訂正)は、枝狩り性能が悪い現状だと
全て完全読みするには時間かかりすぎるので(推定40日コース)、とりあえずWLDが
間違っているもののみ訂正する方向で処理中(推定2-3日)。
0239デフォルトの名無しさん2007/09/23(日) 22:25:50
20手でそんなにかかるの?
単純なアルファベータでも18手で1分切るが
0240 ◆Mizar2to32 2007/09/23(日) 22:56:08
20手の完全読みは今のとこ平均5秒くらいですかね。
ただ、無駄に欲張って210万局面ほど調べているので。
0241デフォルトの名無しさん2007/09/23(日) 23:00:40
>>240
評価関数作ってみた?
0242デフォルトの名無しさん2007/09/23(日) 23:05:05
力技やるならJAVAとかやめてネイティブコード吐いてくれるやつに乗り換えたほうがいいんでない?
1桁くらい早くなるでしょう
0243 ◆Mizar2to32 2007/09/23(日) 23:12:52
>>241
まだですね。なのでMove-Orderingは単純に着手可能数でやっているだけです。
>>242
ネイティブで頑張れば2〜3倍くらいにはなれるかも知れませんが、1桁は無いと思っています。
0244デフォルトの名無しさん2007/09/23(日) 23:14:38
>>243
速度(kn/s)どれくらい?
0245 ◆Mizar2to32 2007/09/23(日) 23:23:09
>>244 Core2Quad 3.0GHz動作にて8000knode/s 2500kleaf/s程度です。前出スクリーンショット参照。
nodeの数え方は物によって違う事もあるかと思いますのでできればleafで比較を。
0246デフォルトの名無しさん2007/09/23(日) 23:35:06
なるほど
がんばって
0247 ◆Mizar2to32 2007/10/11(木) 01:38:36
評価関数の作成開始。下のような局面の評価値が-42辺りに収束する(正解は+64)とか、
滅茶苦茶なのが混じってるのを苦笑いしながら学習の経過を眺め中。
 A B C D E F G H
1++++●+++ 手番: ●
2●++○●+++
3●●●○●●++
4●●●○●●●●
5●●●○●●●●
6●●●○●●++ C1: -62
7●●●●●●++ C2: -62
8+●●●●●●+ D1: +64
0248デフォルトの名無しさん2007/10/11(木) 02:55:15
>>247
そういう特異な局面は教師信号から除外して学習させる方が強くなるよ
0249デフォルトの名無しさん2007/10/19(金) 07:14:52
関連スレ
http://game14.2ch.net/test/read.cgi/gamestones/1156019448/
025012007/10/22(月) 13:58:56
お前らこんなスレにまだいたの?
0251デフォルトの名無しさん2007/10/22(月) 14:31:13
あんた誰?
0252 ◆Mizar2to32 2007/11/27(火) 01:51:01
相変わらずちまちまと終盤探索処理してる様子を晒し。
http://rvs.mzr.jp/Screenshot071127.png
左上: vmstat 左下: jconsole 右下: だいぶ前に作って放置中の素材
右上: 局面評価値/棋譜訂正作業 表示内容は左から順に
1.入力キューサイズ 2.出力キューサイズ 3.手数 4.手番側の石配置 5.相手側の石配置
6.訂正前/訂正後の評価値[石] 7.静的評価関数の評価値[石] 8.探索所要時間[msec]
9.探索速度[knode/sec] 10.探索速度[kleaf/sec] 11.探索量[node] 12.探索量[leaf]
■ このスレッドは過去ログ倉庫に格納されています