1 :
デフォルトの名無しさん :
2007/05/29(火) 18:29:29 オセロを作っているのだが、思考ルーチンとかが全くわからない。 C言語自体完全独学で、参考書とかもほとんど読んでない。 どしたら作れる? どうやったらいいのか教えてくれ。
とりあえず人間対人間のオセロは作れるのか?
>>2 半年くらい前に作ったことがある。
ちょっとバグはあったけど、そこそこ普通にゲームする分には動いた。
またオセロ作ろうと思ったんだけど、AIの基本とかを知ってから
作り始めたほうがいいと思って、まだ作り始めてない。
先に、人間対人間のオセロ作ったほうがいい?
作ったほうがいいなら、今日の夜にでも作ってみるよ。
あとトリップつけてみる。
どうぞよろすぃく
5 :
4 :2007/05/29(火) 18:40:24
このスレそのものというより 関連スレやこのスレの過去スレで挙げられていた参考サイトや資料を見れ
こういうの考えると面白そうなんだけど時間を食いまくるんだよなぁw AIの勉強するだけなら○×ゲームくらいから始めたらどうだw? これなら素手でも全パターン書き下せなくもないぞ?
>>1 いちいち糞スレ勃てる莫迦な君には一生かかっても無理。
なぜオセロがAIだと思うのだろうか?
>思考ルーチンとかが全くわからない。 からだろう。
俺も、
>>4 のスレに触発されて、人間対人間をRubyで作ったよ。
それだけだけど。
リバーシじゃないからだろ。
十数年前の厨房のころアセンブラで組んだ俺様参上。 今のマシンスペックなら全総当たりも可能じゃないか?
白いほうがボケて黒いほうがもー腹立つ〜っていうのが基本線
14 :
1 ◆jG14jPoLic :2007/05/30(水) 01:19:52
>>4 , 5
ありがとう。 適当に見てみたけど、ソースがもう手に入らないから参考にできなかった。
外部リンクはまだ見てない。
>>7 根拠は?
>>8 , 9
AIと思考ルーチンの違いもわかんねぇーよ すまんね
で、人間対人間は作ったほうがいいの?
>>1 釣りではないことを祈ってマジレス
とりあえず、ミニマックス法とアルファ・ベータ法くらいおさえとけ
>>6 にも出てるけど、○×ゲームみたいな小さなものから理解するのがお勧め
それができたら、あとはオセロの方でいかに良い評価関数を作れるかが、一番難しくて面白いとこだろうな
おれはやったことないけど、やる気あるならガンガレ
>>14 >根拠は?
1. 調べる事もせず
2. プログラミングのレベルも低そう
3. 単発質問スレを勃てて人に訊く
ひとことで言えば、莫迦だから。
>>16 その程度のことで, "一生できない"と考える思考回路は
どこで教育を受けたら形成されるんだ?
「バカは死ななきゃ治らない」って事じゃね?
「バカは死んでも治らない」って事じゃね?
20 :
デフォルトの名無しさん :2007/05/30(水) 18:33:17
>>12 おっ、御同輩かな?アスキーのマイクロオセロリーグ
をwktrして読んでた。Z80のアセンブラで小山オセロ
に勝てるくらいになってたが、モリタン登場で衝撃。
必死に逆アセンブルした。
全総当たりはまだ無理。6x6オセロなら少し前の
AI学会誌で解析されてた。後手2石勝ちだったような。
ちなみにこの手の二人ゼロサムゲームで後手有利
なのは珍しく、それが証明されたのは初めてだとか。
去年の日本AI学会では、プロ棋士を招いて将棋で
コンピュータが人間に勝てるのは何時頃に成るかを
予測してた。今年の学会ももうすぐじゃまいか?
21 :
デフォルトの名無しさん :2007/05/30(水) 18:39:42
min-max探索と、α-β枝刈りは基本だけど、 SSS*探索とか、あるいはもっとニューラル ネットやGAを用いた手法なんかも登場してる。 また専用チップなんかの開発もされてて ディープブルーなんかがそう。 将棋くらいまでならSSS*探索くらいで4段 レベルのものが作れると言われてるが、 囲碁となるとNNによるパターンマッチング やGAの世界に成るだろうと言われてる。 しかし作れば作る程、人間の脳って凄いね。
>>1 もし見れるなら、
>>4 のpart1から読んだほうがいいよ。
そのスレ主は限りなく頭でっかちの馬鹿。
別の意味で勉強になる。
こんな人間(馬鹿)にはなるな。
23 :
デフォルトの名無しさん :2007/05/30(水) 22:50:59
はさんだ時の判定ってどうやるんですか?? むずかしすぎるんですけど
な…何がどう難しいんだ・・・?
25 :
1 ◆jG14jPoLic :2007/05/31(木) 00:26:23
無視かよ 誰も相手してくれないから、人間対人間作ってみっぞ 半年ぶりくらいにコード書くから、どんくらいじかんかかるかわからんが
27 :
デフォルトの名無しさん :2007/06/03(日) 13:05:39
age
28 :
1 ◆jG14jPoLic :2007/06/03(日) 16:50:53
とりあえず、人間対人間のオセロはできたぜ。
最後はやっつけになって、適当にコード書いていったけどな。
まだ、パスの時は自分で"PASS"、勝敗がついたら自分で数える。
って手間があるが、ここを作ればいいのか?
見ためのことなんて考えてないから、ひどいけどよ。
とりあえず簡単な、"END"って入力されたら石の数を数えるようにしようかな。
それとどうじに、コードも整理するか。
7行で書ける奴もいるみたいだが、今のところ327行書いてるな。
100行位はコメントだが。
久しぶりにコード書いたから、こんなコードでも10時間くらいかかった。
>>23 と同じく、はさんでるかはさんでないかどう判断するかで時間がかかったぜ。
誰が自称でプログラマっていったんだ?
日記じゃねぇーからここに書くな
33 :
1 ◆jG14jPoLic :2007/06/08(金) 00:13:12
"END"で石の数を数えるようにしたぜ。 コードも適当に整理した。 次は何したらいいんだ? 1. PASSの自動判断 2. 終了の自動判断 こんなもんか? 両方とも根本的に前提になかったから、大幅にコード書きたさなきゃな。 今は446行。 確実に倍以上に増えると思う。
>>33 七行オセロが何をやっているか調べろ。
こまかいテクニックがいくつかある。
お前にとってはかなり有意義だと思う。
35 :
1 ◆jG14jPoLic :2007/06/08(金) 02:30:52
>>34 見てみたけど、何の参考にもならなかったが。
順番に調べてって、最初に置ける場所に置くのなら結構すぐに実装できる。
>次は何したらいいんだ? ソースをあげる。
>>1 序盤は置ける場所の中で一番とれる数の少ないところを取る
終盤は置ける場所の中で一番とれる数の多いところを取る
これだけでちっとは強くなるかもね
39 :
1 ◆jG14jPoLic :2007/06/12(火) 12:27:38
>>36 ソース汚いから読めないよ絶対
今なんか意味が分からない状態になって来てるし
>>38 やってみるよ
適当に左上のから検索して行って、一番数が取れるところに石を置いて行くようにしたら
1 2 3 4 5 6 7 8
a ●●●●●●●・
b ●●●●○・・・
c ●○○○・・・・
d ・・○○○・・・
e ・・・○○○・・
f ・・・・・・・・
g ・・・・・・・・
h ・・・・・・・・
これで終るぜ。 同数の石が取れる場合は、置く場所をランダムに決めた方がいいのか
40 :
1 ◆jG14jPoLic :2007/06/12(火) 13:53:09
左上から検索していって、最小の数取れるところに置くようにしても 1 2 3 4 5 6 7 8 a ●●●●●●●・ b ●●●●○・・・ c ●○○○・・・・ d ・・○○○・・・ e ・・・○○○・・ f ・・・・・・・・ g ・・・・・・・・ h ・・・・・・・・ これで終るんだな。 マスに優先度を付けたら解決できるかな
いや 違う終ってねぇ。 自動パス判断をやってないから、黒でループしてるだけだ。 すまん。 パス判断作るよ。
42 :
1 ◆jG14jPoLic :2007/06/12(火) 14:58:18
どっちのアルゴリズムでも、自動パスを付けても 1 2 3 4 5 6 7 8 a ●●●●●●●○ b ●●●●●●○○ c ●●●●●○●○ d ●●●●○●●○ e ●●●●●●●○ f ●●●○●●●○ g ●●●●○○●○ h ○○○○○○●● 同じ結果になった。 自動終了も付けようかな
頭が悪いと後手が有利って事か
じゃぁ、俺は後手やる
オセロって白が実質先手だよね?
なんで?
>>46 黒は最初、打つ手が一手しかないから。
だから実質、白から始めるゲームかなと思って。
頭悪い?
49 :
デフォルトの名無しさん :2007/06/12(火) 22:38:02
保守
汚くてもとりあえずソースあげたほうがいいんじゃないか? アドバイスのしやすさ変わってくるし。
51 :
デフォルトの名無しさん :2007/06/12(火) 23:40:46
俺にもオセーロ!
53 :
デフォルトの名無しさん :2007/06/13(水) 01:34:16
チェス作っといて チェーーース
2chにソースあげるのはお勧めできないな 基本的に叩かれるだけ
独学でやってたやつってスパゲッティソースしか書けないだろw
>>47 少なく見積もっても4箇所、最大で4箇所あるぜ!
どうでもいいけど、上の方で散々ヒント貰っときながら
まーだこんなレベルなんだな。
>>1
>>57 お前
>>1 より馬鹿?
その4箇所は回転重複x鏡面重複に過ぎん。
>>1 は、このスレ以外を見に行ってる雰囲気無いからな
>>58 お前
>>57 より馬鹿?
その4箇所の次は、何パターンしか無いと思ってんだよ。
>>60 ごめん、お前、馬鹿っていうより頭のかわいそうな子だったのね。
実質ある程度の思考が出て来るのは5手目からだぞ なんでそんなに必死なんだ?
63 :
デフォルトの名無しさん :2007/06/13(水) 13:10:51
このスレは、 煽り始めた奴が反論されただけで必死になるのは何故か? という思考ルーチンについて論じるスレになりました。
今一生懸命2手目で置ける箇所がなん箇所あるか数えてんのかな
早く報告してくれよ
66 :
1 :2007/06/13(水) 14:18:00
どこにあげればいいの? うちに帰ったらあげるよ。 ただ、マジでぐちゃぐちゃだよ。
オセロの一手目は確かに対称な4種類しかないが、 二手目はそれぞれに対して3種類あるね。
結局3種類だろ 実質1種類だが
70 :
デフォルトの名無しさん :2007/06/13(水) 18:08:59
◎とりあえず置けるところに完全ランダムで石を置くロジックを作る。
◎評価マップ(角が一番高い、とか)を作って優先順位を作ってみる。
◎
>>38 の言うように序盤は少なく終盤は沢山取らせてみる。
◎置いてひっくり返した後に相手にとって置ける箇所が少なくなるように打たせてみる。
◎逆に自分の打てる箇所が増えるように打たせてみる。
◎これらを考慮して数手先を評価する先読みロジックに挑戦
と、ここまで作ってみたことがある。EXCELで。
自分でテストプレイするんじゃなく、CPU同士でやらせて強くなっていくところを確認しながら遊んでた。
あと、定石のデータベースを作ったりいろいろやってみようとも思ったがもう止めた。
オセロって、ゲームやってると気づくけど角が必ずしも重要じゃないよな。 ロジックとしてうまく言えないけど、可能性のある近い将来、そこを 必要とするかしないか、もしくは埋めておく必要があるかないかが重要なのであって、 評価ポイントを決めておいて、評価の高いほうを選択する、というのは ちょっと違うような希ガス。 とりあえず携帯ケームか何かで、オセロゲームを数千ゲームやって、 コンピュータの挙動がいかなるものかを頭に焼き付けてみたらどうだろ。
73 :
デフォルトの名無しさん :2007/06/13(水) 18:46:41
おー、Linuxな人なんだな。
しかし人から流用するの大変なんだな。
人のソース読むのってめんどい。
オセロ自体の質問はオセロ板に行くのがいいかもね。
>>71 むしろ角を取らせて、とかいろいろあるっぽいね。
下手なオセロゲームだと置き方がパターン化するから、
せめてインターネットリバーシとかで人とやるのがいいかも。
ばぁーか
うーむ俺もリバーシ作ってるけどなかなか強くならん 盤面が変化するたびに合法手をすべて求めてるんだがこれがネックになってる気がしてならん なんかもっと効率の良い方法はないのだろうか
で、誰もうpローダを紹介しないと
78 :
デフォルトの名無しさん :2007/06/14(木) 02:48:01
合法手ってなんだ?
殺人とか以外じゃないか?
合法手ってのは、「ルール上、指すことができる手」ってことらしい。 説明もなしにこんな非一般的な言葉使うなよw
法関係ないじゃん
>盤面が変化するたびに合法手をすべて求めてるんだがこれがネックになってる気がしてならん いや、これは基本だろ。常識的に考えて・・・
計算結果をキャッシュしておけば毎回計算する必要はない
まず全局面を先読みしておいて、手が進むごとに枝刈りしていくのか。
最近のマシンだと本当に出来そうだから困る
どうでもいいがキャッシングは計画的にな
6×6オセロは後手必勝だけど あれって完全読みしたのかな?
>>88 君はその後手必勝をどうやって知ったのだ。
4x4はどっちが必勝?
・・・・ ・◯●・ ・●○・ ・・・・
・・・・ ・◯○○ ・●○・ ・・・・
____________ |_|_|_|●| |_|◯|●|○| |_|●|○|_| |_|_|_|_|
・●・● ・●●○ ・●○・ ・・・・
____________ |_|_|○|●| |_|◯|○|○| |_|●|○|_| |_|_|_|_|
その表組見にくい
□□○● □○○● □●●● □□□□
++++ +○●+ +●○+ ++++ これじゃ囲碁か
幅はそろえて欲しい
そろってるだろぉーが
お前の環境が他と違うんだと思う
>>102 言うとおもった。
「見にくい」つった時点で等幅フォントだろうなとは気づいたが。
ごめん 俺も等幅だ。
俺MS Pゴシックだけど、考えてみりゃ ム板だと等幅の方がいいかも試練。
つか、2ちゃん見るのに等幅だとAAが崩れるやん。
AA見るために2ch見てるのか?
>>108 あたりまえじゃん。何言ってんの? バカ?
>>109 AA以外に反応すんなよw
あと、AAで書き込めよっっw
>>110 AA以外も読み書きするに決まってんじゃん。何言ってんの? バカ?
AA見るために見てるんじゃないの?
ごめん
ちなみに4x4は白必勝で8目勝ち
うわぁ。 違う話になってっよ。 もう上げない方がいいのか?
アルファベータ使って終盤解析してるんだけど、がんばっても18手くらいまでしか無理(時間かかりすぎ) 24手とか読んでるやつはそうとう枝狩効率がいいのかねぇ、、、
枝狩じゃなくて枝刈りだ。
勇壮だな、枝狩 まあイチゴとかブドウも狩るけどなw
120 :
1 ◆jG14jPoLic :2007/06/17(日) 02:44:38
思考ルーチン難しいから、GUI版も作ってみるな。 GUIの場合、表示するのって . 板 . 現在の石の数 . 現在の石を置く色 . 今までに石を置いた履歴 こんなもん? オプションとして、石を置ける箇所の見た目を変える 見たいな感じでいいかな?
┏━━━━━━━━━━━━━━┓\ ┃┌────────┐ 黒 白 ┃^ ┃│ │ XX XX ┃^ ┃│ 板 │ ┃^ ┃│ │ ┌─┐ ┃ ┃│ 420 x 420 │ │履│ ┃450 ┃│ │ │歴│ ┃ ┃│ │ └─┘ ┃^ ┃│ │Options ┃^ ┃└────────┘ ┃^ ┃ ┃^ ┗━━━━━━━━━━━━━━┛^ \------------ 600 -------------\ レイアウトはこんな感じでいいか? まだ実際にサンプル画面を作ったわけじゃないから、 見やすさとか分からないけど。 とりあえずこれで画面サンプル作ればいいかな。 ちなみに、等幅で図書いてあるから。
>>122 まだ見てないけど、JavaApplet?
だとしたら、java入れてないから見れないかも。
とりあえずあとで見てみるよ。
>>123 作るよ。
何か問題あるの?
>>124 すごい面倒とおもうぜ
まあやってみれば
面倒も何もC以外Perlしかできないから、日頃から GUIもCで書いてるからね。 別に面倒臭くもないし。
127 :
デフォルトの名無しさん :2007/06/18(月) 01:56:16
便利になれたWindowsユーザはもう忘れてしまったんだろうよ、 自分で何かをするって事を。 限られた資源を大事に使う。これもできなくなったら終りだよ。 あり余ってるからって、無意味に使うことは無いじゃないか。 名無しさん 心の叫び
128 :
デフォルトの名無しさん :2007/06/18(月) 02:32:40
ごめんなさい
129 :
デフォルトの名無しさん :2007/06/18(月) 04:54:42
こうして
>>1 は改心してキャラクターインターフェースで作り直すことを決意した。
もちろんWindowsは捨てた。
これからはLinuxだ。
がんばれ
>>1 。
君の未来は明るい。
>>129 CUIではもう作ってるから、GUIで作ろうと思ったんだけど?
起動時にCUIで動くか、GUIで動くかオプションで指定したら
どっちでも使えるだろぉーに。
何がいいたいのか分からん。
>>122 画面の説明とか無いのね。
Javaが無いから見れなかった
>>110 便所にうんこしに入ったら屁もこくな、というのは少々酷かと。
便所にウンコしにいったのなら、ウンコ以外するなよ。 ヘも小便もしにいったのならまだしも。
134 :
デフォルトの名無しさん :2007/06/18(月) 21:51:40
うんこまんはうんこいがいしねぇーぜ
そーだ!そーだ! VT100を基準にしる!
>>145 XGAを基準にするのはアフォWindowsユーザーだけ
多少まともなWindowsユーザならVGAでやる。
せめてHerculesカードを基準で作ってくれ・・
Windowsユーザって何で無駄にGUIで作りたがるんだろう。 ファイルのリネームなんて、コマンドラインでできた方が 便利だろうに
Microsoftが一つのGUIアプリケーションで全てを まかなおうとする傾向にあるから、その傾向を ユーザも受け継いでるんじゃないの。 Microsoft Officeが代表でしょ
Officeは確かに異常。 2000の機能で十分。
144 :
デフォルトの名無しさん :2007/06/19(火) 21:20:48
今だ! 145げっとおぉぉ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ (´´ ∧_∧ ) (´⌒(´ ⊂(´∀`⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
>>137 そろそろXGA世代にもまともなWindowsユーザーが育ってきてるんジャマイカ?
146 :
デフォルトの名無しさん :2007/06/20(水) 00:32:12
XGAで作る奴って、自分の環境はみんなの環境 って思って作ってる奴だけじゃないの? VGAで表示するとはみ出すアプリ作ってる会社は、 基本的にアホ会社と思ってるんだが
つーかオセロとかQVGAで十分じゃね、、、
あほか? XGAとかSXGAのサイズのモニタでQVGAサイズのウインドウの内容が見えるか?
LinuxOnPS3のGnomeはVGAだとはみ出すダイアログばかりで泣ける。
150 :
デフォルトの名無しさん :2007/06/20(水) 06:19:07
>>147 ケータイ用のオセ口作りたいね。
いつでもどこでも誰とでも、オセ口。
もう有りそうな気も駿河。
MSのSDKのサンプルをコンパイルしてCEで遊んでるが
通信対戦できるように改造
>>152 QVGAサイズで作ってもいいと思うけど、ボードを220x220で作るとして
大体一目当たり28x28になる。 今そのサイズのウィンドウ作ってみた
けど、小さいと思うな。 そこをクリックするわけだし。
しかも自分の環境は12.1inch液晶の800x600でみて小さいと思ったから、
12.1インチのXGAなら、さらにちっさく感じるんでないかい。
余白も100もないから、そこにいろいろと情報載せるには狭すぎるし。
携帯電話のアプリケーションでオセロをダウンロードしてみたけど、
QVGAの自分の携帯電話の液晶のサイズだと、幅いっぱいいっぱいにオセロ
のボードを表示してる。 余白に現在の石の数を表示してるくらいで、
他の情報は無い。 携帯電話のアプリケーションだと、これくらいでいい
と思うけど。
>>155 GUI設計って観点から行くとさ、
環境は千差万別だから、ユーザが自分に合わせてある程度改変できるってのがベターなんだよ
背景色とか画面色を固定したアプリがボロクソ言われるのはその辺
まだセンスがあれば許せる部分もあるが、
Windows上のGUI設計の観点からいけば、ダメな設計の代表みたいなもん
ぶっちゃけ、GUIで作るなら、サイズ変更可能で、
それに応じて盤面サイズや情報表示部分も自動で拡大・縮小されるくらいは出来る方が良い
そうすりゃ画面が小さいだのはみ出すだの文句言われる余地がなくなる
>>155 仕事中に隠れてやるには 100x100 くらいがいいねw
CUIで全角8×8で
ここに書き込んでるアホよりは、
>>1 が有能だと分かるスレですね。
2chにはあほしかいない
>>1 が有能なんじゃなくて、周りが低水準なだけかと
163 :
デフォルトの名無しさん :2007/06/21(木) 11:25:29
低水準言語
>>161 お前を基準にしないでくれ
俺のような超天才も稀にいるんだから
166 :
デフォルトの名無しさん :2007/06/21(木) 12:49:50
そりゃぁ、 乙。 とか普通にいってるようなところに、マトモな人間はいないだろ
自作自演、お疲れ様でございます。 お忙しいところ、本当に申し訳ありませんでした。 今後とも宜しくお願い申し上げます。
びくもおしろちくりたいのだすがどすればいいだすか?
169 :
デフォルトの名無しさん :2007/06/22(金) 18:06:13
あがとけまし
171 :
デフォルトの名無しさん :2007/06/22(金) 18:36:05
173 :
1 :2007/06/23(土) 16:55:12
謝ってるんだから許してくれよ
ここなに? 雑談スレッド?
176 :
デフォルトの名無しさん :2007/06/24(日) 17:53:29
ほす
177 :
デフォルトの名無しさん :2007/06/24(日) 23:21:44
1はどこ行った?
仕事が忙しくて家に変えれないのでここ2週間位何も進んでない。 多分来週の頭には変えれて、夜は暇を取ったからちょっとづつ できると思う。
あと5年はかかりそうだなw
>>180 どういう計算だ?
GUIにするだけならコーディングに3時間もかからないだろ。
見た目とかマニュアル読むのも含めたら10時間程度かかると
思うが。 うまく行けば来週中にはできるかもな。
それはロジックが出来てるっていうのか?
簡単なロジックはできてるらしいから、GUIも作ってから 思考アルゴリズム考えてもいいんでない
187 :
180 :2007/07/03(火) 15:38:31
で? 20年前にGUIって、システムは何使ったの? 具体的に教えてくれ。
でっていう
>>188 30年前にGUIって言ったら驚くが、
20年前なら国産パソコンがゴロゴロしてた。
GUIなんてふつーにあった。
だからシステムは?
>>191 自作じゃないのかな。つーか、GUIとシステムは、直接の関係はないですよ。
20年前だと丁度漏れがbasicで逆ルールオセロを作った頃かな。 当時GUIなんてふつーにあったかもしれんが誰もそんなこと言わなかったな。
自身よりも強いプログラムを作った事がある人居る? とりあえずPentium4の3GHzで1手当たり10秒以内の思考を目安に
どんなプログラム書けば1手10秒もかかるんだよw
ど素人発見
1手10秒だと30手で300秒=5分だから普通くらい?
トッププログラムなら1手2秒以内の条件で人間の世界チャンピオンくらいの強さじゃないかな。 (人間側は1試合30分持ちくらいで)
人間チャンプカワイソス
CPU並べりゃほぼ定数割できるんだから2秒でも10秒でも変わらん気がするが。
うん で、作った人居ないの?
>>122 のやってみたけど思考時間長いわりに弱い
ゼブラは思考時間短いのに超強い
>>122 まぁまぁ強いけどHard相手に1手5秒くらいで打ってても勝ってしまった
ヤフーレートで言えば1800くらい?
序盤で定石打ってきたけど積んでるのかな?
206 :
193 :2007/07/08(日) 18:05:12
>>205 昔話がしたいのか?
スレ違いになるからやめとけよ
208 :
デフォルトの名無しさん :2007/07/26(木) 22:32:11
209 :
デフォルトの名無しさん :2007/09/08(土) 02:40:08
オセロのAIを
>>194 居るよん
基本程度の定石搭載の序盤
相手の手詰まり狙いの中盤
MIN-MAX, αーβ枝狩の完全読みきりの終盤
これで初段レベル位いけるので
1級程度の俺より強くなっちまっただ
自分のレベルを超えると改良になったのか改悪になったのかわかんなくて
改良が進まなくなっちまったよ
強い人に対局してもらっってどんな感じ?って聞いたら
「筋が悪いのに妙に強くて変!」だってw
>>210 自分より強くなったらソフト同士で対局させるのがいいだろうね
ベンチマーク用のソフトとしてのZebraやNtestやEdaxなどと
何局も自動対局する仕組みを用意するといいかも
強さが一定だから勝率に信頼性もあるし
ところでそれはどこかで公開してるの?
対戦してみたい
俺もオセロ一回作ったけど自分より全然頭よくならなかったな Min-Max法の実装部分が怪しいのか評価関数が悪いのかさえ分からない 自分が強くないと評価できないよねぇ
>>212 min-maxなら探索木を表示するだけで動作確認できそうだけどね。
>>214 評価関数がよしとする手を正しく選択してることは確認できても
その評価自体が前よりいいのかどうかが判定不能です
てか枝狩しても何十何百万手もある探索木をどうやって表示しろと
>>211 んと、以前はIOSにつないどいたんだが、GGSAにシステム変わってから対応させてないんだわ
なんかね〜特別強かったわけでもないし気が抜けてしまったというかそんな感じで今は公開してないです
当時のロジステロの最弱レベル(1手読み)に
最初は勝てるが繰り返し対局すると学習されて勝てなくなるというレベルでした
ゼブラにも勝てなかったような気がする
要するに自分より強いけど強豪ソフトには歯が立たずという非常に中途半端なレベルで進化停滞です
>>217 nomalに何とか勝てるといった感じだ。
>>217 Hardでも何とか勝ち越せるかな。
終盤はさすがに強いけど中盤で差をつければいける感じ。
対戦した感じでは種石を消してこちらの善手をを無くそうとする傾向が強い。
あと隅を重視しすぎてるためか、ストナーズトラップやウィング攻撃などの隅を取らせて辺を取るような戦略に弱い。
ちなみに自分は一応三段。
途中まで弱いじゃんと思っていたが、うっかり角を明け渡してしまい ボロ負けした。馬鹿だなぁ俺。
>>215 > てか枝狩しても何十何百万手もある探索木をどうやって表示しろと
小規模でテストして動けば問題ないだろう
よほど変なコーディングしない限り
>>215 >評価関数がよしとする手を正しく選択してることは確認できても
>その評価自体が前よりいいのかどうかが判定不能です
それは以前の評価関数や他のプログラムと対戦させたときの勝率で測る。
>>223 そう単純にはいかんのんよ
学習させないと同じ手には同じ手しか返さなくなって弱くなってるのに前のには勝っちゃうとか起きるしさ
ひとつ前のには勝つけど二つ前のにはまけるってこともあったなあw
学習させると比較対象の強さがつねに変動してるというわけで、なにを比べてんだか?ってw
>>224 普通はランダム局面を多数生成してそれぞれ白と黒持たせて勝率を出すんだけど
そういうのやってないの?
>>225 ん〜それはやったこと無いなあ
ランダムでやって意味があるのか?
考えても見なかった
ランダム局面からの強さが通常の対局時の強さとよく一致するっていう
結果がでてるんなら今度はそれでやってみるよ
ランダムが嫌なら初手から何手か進めた局面を千とか万とか用意して そこから両手番で打たせればいいんじゃない
>>227 それだと最初から対局させるのとあんまり違わないような気もするんだけどどうなんでしょ
まあそれはいいとして
それよりランダム局面多数からの強さと実際の強さがどれくらい一致するのか興味津々です
データーもってんならぜ公表を
GGSのランダム局面はどうやって生成してるんだろうな ランダムといっても中心2x2は必ず埋まってて全部の石が繋がってるくらいの制限はあるよね?
>>229 しらね〜w
英語得意ならブーロウ氏にメールしたらおしえてくれるんじゃない?
全然ダメじゃん
Buroやその他の論文・プログラムすら知らない素人が改善したつもりになってる論文
ところでみんなGGSにつないでんの?
たまに繋いでるよ
超〜〜〜〜〜〜久しぶりにつないで見た パスワードわすれていた orz w gestで入ってみたけどコンピュータープレイヤーしか居なかった たまたまなのかすでに廃れているのか・・・・・
20手でそんなにかかるの? 単純なアルファベータでも18手で1分切るが
20手の完全読みは今のとこ平均5秒くらいですかね。 ただ、無駄に欲張って210万局面ほど調べているので。
力技やるならJAVAとかやめてネイティブコード吐いてくれるやつに乗り換えたほうがいいんでない? 1桁くらい早くなるでしょう
>>241 まだですね。なのでMove-Orderingは単純に着手可能数でやっているだけです。
>>242 ネイティブで頑張れば2〜3倍くらいにはなれるかも知れませんが、1桁は無いと思っています。
>>244 Core2Quad 3.0GHz動作にて8000knode/s 2500kleaf/s程度です。前出スクリーンショット参照。
nodeの数え方は物によって違う事もあるかと思いますのでできればleafで比較を。
なるほど がんばって
評価関数の作成開始。下のような局面の評価値が-42辺りに収束する(正解は+64)とか、 滅茶苦茶なのが混じってるのを苦笑いしながら学習の経過を眺め中。 A B C D E F G H 1++++●+++ 手番: ● 2●++○●+++ 3●●●○●●++ 4●●●○●●●● 5●●●○●●●● 6●●●○●●++ C1: -62 7●●●●●●++ C2: -62 8+●●●●●●+ D1: +64
>>247 そういう特異な局面は教師信号から除外して学習させる方が強くなるよ
250 :
1 :2007/10/22(月) 13:58:56
お前らこんなスレにまだいたの?
あんた誰?
相変わらずちまちまと終盤探索処理してる様子を晒し。
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]
253 :
デフォルトの名無しさん :2007/11/27(火) 01:54:50
期待age
こっちに書くかどうか微妙なネタはBlogとかの方に載せようと思うので、 URL削って辿って応援とか助言とかしに来てくれれば励みになるかもしれない。
それ見て作れるのは人間チャンピオンレベルだな ってこのスレの趣旨は何だっけ
関連書籍 ・リバーシプログラムの作り方 リバーシプログラム作成の解説(ソースコード付属) ・リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装 (I・O BOOKS) (単行本)
a
260 :
デフォルトの名無しさん :2007/12/28(金) 22:11:57
i
あけおめ。24手読み棋譜訂正作業に入ってみています。 正直、55手目の局面データベース登録数が900万超とか馬鹿じゃないかと思うんだ。 でもまだ止めない。
>>262 どういうパターンを使うのかはもう考えてるの?
テーブルの大きさによっては無駄に多いだけかもしれないしそれでも足りないかもしれないよ
265 :
デフォルトの名無しさん :2008/01/18(金) 01:05:10
リバーシプログラムの作り方はなpkcrackと相性がいい
266 :
デフォルトの名無しさん :2008/01/18(金) 07:20:16
くだらん事はやめとけ
267 :
デフォルトの名無しさん :2008/01/18(金) 17:27:12
そうだな
268 :
デフォルトの名無しさん :2008/01/19(土) 15:21:13
MasterReversiは強いですね。 おそらく並列処理を搭載した初めてのソフトなのでは
>>268 やってみたが、素人が少し楽しもうってのには全く向かないな……
270 :
デフォルトの名無しさん :2008/01/19(土) 16:38:36
要らん機能多すぎ 評価関数の精度は多分こう SAIO,Edax,NTest>Herakles>MasterReversi>WZebra
272 :
デフォルトの名無しさん :2008/01/19(土) 18:30:41
その中で非公開ソフトってどれ?
>>268 それはどうかな
SAIOも並列処理してるし
274 :
デフォルトの名無しさん :2008/01/22(火) 23:44:30
275 :
1 :2008/01/22(火) 23:48:05
このスレッドまだ使われてるのか 建てて良かった
あんた誰?
>268 FM-7の将棋だったかチェスだったかオセロだったかのプログラムは 本来グラフィックを扱うサブCPUも使っていたと思うが。
それだったら、PC-8001のディスクドライブを下請けに使っていた漏れのプログラムの方が先だぜ。
279 :
デフォルトの名無しさん :2008/03/23(日) 01:47:16
あげ
GGSで対戦してきたけどSAIOすげーな・・・。 GGSアーカイブも見たけど間違いなく世界最強だわ。
思考ロジックだけを取っ替え引っ替えできるような GUIの盤ライブラリないの? あるはずないよな。 できれば色んな言語で思考ロジックを作れるような、、、 あるはずないよな。 wxあたりで作ってあって、Win, OSX, Linuxで使えるような、、、 あるはずないよな。
Win用のBearRevしかしらない。 まともに思考エンジン作る労力に比べたらGUIなんか屁みたいなもんだし みんなその程度は自作してるだろうね。
>>281 が作ってうpすればいい。需要あるのかは知らんが。
囲碁だとGTPでGUIプログラムと思考エンジンが通信するのがフリーな 実装の世界ではデファクトスタンダードだと思うけど、オセロはそうなってないの?
うん。 GUIと思考エンジンが独立してて通信するのはあんまり聞いた事が無い。 SAIOがやってたような気はするけど。 他のプログラムと対戦するならGGSっていうサーバを介すのがデファクトスタンダード。
286 :
デフォルトの名無しさん :2008/04/24(木) 00:14:53
masterreversiがグランドオセロに対応してくれればいいなと思った。 (8×8には飽きたので)
287 :
デフォルトの名無しさん :2008/04/24(木) 00:27:57
8*8にもまだやることはあるよ 世界最強のプログラムを作ることと、完全解析
局面を完全に読みきるまでの時間ってソフトの算出する評価値が同じでも 速かったり遅かったりするよね。 ・双方C打ちをしている ・辺の形が爆弾 ・X打ちをしてる 等の状態が絡んでくると読みきりに時間がかかることがわかった。 だから、結局のところ評価値が同じくらいの場所が数箇所あったとして 必勝読みを早く行いたい場合は特に上記条件を空きマスが多い時に 満たさないような進行を優先して探索すると能率的だと思う。 ゼブラではこの辺どうなってるんでしょうか。 ソースが何を書いてあるのかよくわからないので意見お願いします。
長文失礼。 あと、強豪ソフトに目立ったことだけど 例えば、辺の形が山(黒石)で中辺に白石があるが将来的に黒一色に することができ、それが必勝系だったとする。 ゼブラはこういう構想が苦手みたいで係数ファイルが悪さが原因なのかな? それとNtestはX打ちをすると評価精度が下がってよく石損する。 評価値が−4〜+4までのなら評価精度はかなり良いけど、 それ以外の範囲ではあまり良くない傾向がある。 *ただ、終盤完全読み自体はとても遅い反面、最善候補を絞り込む 速さはゼブラより速いし精度が良い。 ゼブラで難解な局面読むときはオプション>想定される手順を表示にして *を利用して完全読み&必勝読みを使い分けつつ最善らしき箇所を 予め読んでおくとかなり読みきりが速くなるからこの辺も改善したいかな それとゼブラはBookを十分使い切れてない気がする 最善箇所のうちの1箇所が100%完全に読まれていて、Drawだとして それ以外の手を読むときにこれ(この場合絶対Draw以下である)を 生かし切れてない。Ntestはこの辺がよくできている。 MasterReversiの作者が見ていたら是非これらを導入してほしい
>>288 違う手で評価値が全く同じなのはtranspositionになる場合が大部分だよね。
まあゼブラではそういう局面であっても他の局面よりも評価値がわずかでも良い方を選択する。
>>289 最善候補を絞り込むのは中盤評価関数の役目だからこれをすげ替える事になるんじゃないかな。
ブックの扱いに関しては賛成。
MasterReversiをやってみようとしたらruntime errorとやらが出て不正終了 起動すらできなくて、なんだこのヘボソフトって正直思った
292 :
デフォルトの名無しさん :2008/05/02(金) 00:28:31
>>291 だったら、黙ってアンインストールしとけ
MasterReversiって売れてんのかな
>>293 売れてないでしょ。と言うか、まだ、売る気は無いんじゃない?
売る気があれば、Standard版と同じようにProfessional版も
Vectorに登録してるでしょ。
今はそれでも買うっていうマニアだけを相手にして意見を聞きつつ、
バージョンアップを図ってるって段階なんでしょ。
もっとも、名誉のためにシェアウェアにしてるってソフトもあるから、
その口なのかも。そこら辺のフリーソフトとは物が違うぞって主張して
るだけなのかもしれない。あんなのがフリーだと他も迷惑するから。
いずれにしても、オセロのソフトを欲しがる人間なんてそんなにいないから、
どこかの会社がソースや技術を買い取るくらいでなきゃ
あれだけの物を作る労力に見合う収入が得られる見込みはないでしょ。
なので、やっかむ必要なし。
295 :
デフォルトの名無しさん :2008/05/08(木) 22:25:05
オセロはフリーやオープンソースの優秀なソフトがあふれてるしなー 評価関数、終盤解析、ブックのどれでもいいから頭一つ抜けていればよかったんだが
>>295 終盤解析は世界最高速でしょ? MasterReversiのことだけど。
>>297 それって、都市伝説って奴じゃない?
今日、「06-02-2008 Demo version」ってのを
ttp://www.romanobenedetto.it/Saio.htm からダウンロードして動かしてみたけど、やっぱり、MasterReversiの方が早かったよ?
デモバージョンだから終盤26手の完全読みしか比較できなかったけど、
何回か適当に対局させてSAIOが完全読みした局面をMasterReversiでも完全読みさせたら、
だいたい、MasterReversiの方が2倍近く早かったんだけど?
もっとも、俺のPCはCore2Quadだから並列演算するMasterReversiが有利なのは当然だけどね。
>>273 でSAIOも並列演算してるってあるけど、CPU使用率を見る限り、それは無いみたいだった。
念のため、MasterReversiをスレッド数2にしても数割は速かったし、1にしても数秒は速かった。
SAIOのキャッシュサイズが分からないからMasterReversi側は少なめの16MBにしといたけど、
SAIOは100MB以上メモリ使ってるみたいだから大きすぎるってことはないよね?
ところで、SAIOを立ち上げるとネットワークにアクセスに行くんだけど、何やろうとしてるの?
ちょっと怖いからネットワークを無効にして操作してたけど、結果には影響ないよね?
>>299 ちゃんとしたレスが来るとは思ってなかった。ありがとう。
俺もそれらのページは見てたけど、
MasterReversiの方はPentium4 640 (Prescott)ってあるけど、
SAIOのP4 3GHzは何も書いてないからNorthwoodかもしれないと思って。
PrescottってNorthwoodより遅かったらしいし。
で、ScrZebraの結果で補正しようとしたんだけど結果が全然違うから・・・
多分、時期的に見て、SAIO側はBoobyReversiの作者が改良する前の
バージョンと比較してて、MasterReversi側は改良後のバージョンと比較してるんだろうね。
BoobyReversiのホームページに「約10〜25%高速化しました」ってあったから。
Saioがどのくらいのスピードを出してるか知りたければ GGSにいって観戦すればリアルタイムでわかるよ。 自分はあんまり深入ったことはわからないけれども たしか2008年のランダム局面のトーナメントでSaioQuadが37箇所空きの 時点で37@97%ってなってるものがあったと思う。 10分持ちでまだ数分残ってる状態でこれは驚異的。 このとき解析スピードはほとんど25,000kn/sオーバーしてたよ
確かに終盤は空きが多いほどSaioが相対的に速くなりそうだな。
303 :
デフォルトの名無しさん :2008/05/11(日) 16:28:20
この調子でいくと あと20年もしたらオセロも完全に解析されるだろうね。
訂正。 確認したら37@97%でなくて37@98%でした。
305 :
デフォルトの名無しさん :2008/05/16(金) 00:32:47
Saioのデモプログラムで、GGSと接続して対戦したいのですが、サーバー設定変更やユーザーID、パスワードの入力がわかりません。 最近、GGSと接続した方教えてください。 本家のSaioと対戦も可能になるのですよね。
スレ違い
>Saioがどのくらいのスピードを出してるか知りたければ >GGSにいって観戦すればリアルタイムでわかるよ。 GGSに作者が常駐しているのだから、 FFO testがどの程度の速度なのか直接聞いた方が良いと思う。 FFO testに関しては、作者同士の話を聞くとEdaxやCyrano(マルチスレッド対応)も速そうだった。 一年ほど前のことだから内容はよく覚えていない。
>>307 >>301 はFFO testに関して言ったつもりじゃなかったんですが・・・。
確かに自分もFFO testでの速度は作者に直接聞いた方が良いと思う。
Cyranoは貧弱なPCで動かしてる割にはSaioQuadに勝ってる対局があるので
評価関数の精度はかなりものだと思う。
最近Edaxはトーナメントに出てないみたいだからよくわからない。
水面下でymatiounやjonesあたりががんばっているようで期待している。
309 :
デフォルトの名無しさん :2008/05/16(金) 21:21:45
オセロなんかで並列処理するときって、増やしたコアの数だけ処理時間に ちゃんと影響されるのかな 例えばコアを8コアにしたとき処理時間が8分の1になるとか 現状ではコア数が処理時間に反比例しないけど 理論的はつまり理想的な状態では反比例するのかな
しません。
>>309 並列化する際のタスク分割をいろいろ考える前に
手の並び替えを理想的な状態に近づけるほうがいいよ。
評価関数の精度ってどれくらい良くなるもんかねぇ。 自分が適当に作った関数とデータで17-20マス空きの局面 約2700万件を繰り返し学習させた例として、学習データが与えた スコア[-64,+64]の値に対する誤差(RMSE)は7.0程度で、 そのうち値が[-10,+10]な範囲の学習データ約1450万件に対する誤差は5.8程度。 面倒で手を付けてない交差検定とかやればもう少し悪い値になるかも。
もう初手から終局までの完全読みしかないでしょ
>>308 >Cyranoは貧弱なPCで動かしてる割にはSaioQuadに勝ってる対局があるので
その棋譜Plz
この棋譜だろうか?ランダム局面から先後入れ替えて行うゲームで、後手で10石勝ちのSaioQuadが先手だと12石負けになってる。 2 (;GM[Othello]PC[GGS/os]DT[2008.02.29_11:33:34.MST]PB[CyranoM]PW[SaioQuad]RB[2488.2]RW[2543.97]TI[10:00//02:00] TY[s8r20]RE[-10.000]BO[8 -------- -------- -*O**O-- --*O*O-- --OOO**- -OO*OO-- --*----- -------- *] B[D7/-11.07/135.01]W[b4/10.00/149.33]B[E7/-10.79/0.29]W[f2/10.00/29.31]B[A4/-12.00/63.11]W[d2/12.00/66.77] B[B5/-12.00/57.29]W[a6/10.00/72.25]B[G4/-10.00/76.24]W[a5/10.00/98.06]B[A3/-10.00/38.84]W[a2/10.00/58.39] B[F1/-10.00/57.43]W[c8/10.00/33.78]B[B8/-10.00/34.66]W[f8/10.00/41.25]B[F7/-10.00/77.61]W[d8/10.00/0.01] B[E8/-10.00/12.44]W[a8/10.00/0.01]B[E2/-10.00/1.49]W[g8/10.00/0.01]B[A7/-10.00]W[b7/10.00/0.01]B[E1/-10.00] W[h5/10.00/0.01]B[C2/-10.00/0.09]W[b2/10.00/0.01]B[H4/-10.00/0.01]W[h3/10.00/0.01]B[G3/-10.00/0.05]W[c1/10.00/0.01] B[A1/-10.00/0.01]W[h6/10.00/0.01]B[B1/-10.00/0.01]W[d1/10.00/0.01]B[G6/-10.00/0.01]W[h7/10.00/0.01]B[G7] W[h2/10.00/0.01]B[G2]W[h1/10.00/0.01]B[G1];) (;GM[Othello]PC[GGS/os]DT[2008.02.29_11:33:34.MST]PB[SaioQuad]PW[CyranoM]RB[2543.97]RW[2488.2]TI[10:00//02:00] TY[s8r20]RE[-12.000]BO[8 -------- -------- -*O**O-- --*O*O-- --OOO**- -OO*OO-- --*----- -------- *] B[d7/-10.19/79.41]W[B4/11.07/77.15]B[e7/-10.00/36.20]W[F2/12.00/69.56]B[a4/-10.00/32.53]W[D2/12.00/61.30] B[b5/-10.00/130.86]W[A3/10.00/0.02]B[a6/-10.00/104.56]W[G6/10.00/28.27]B[g4/-10.00/58.83]W[C8/10.00/110.44] B[d8/-12.00/44.83]W[A5/12.00/42.41]B[b8/-12.00/34.14]W[A7/12.00/36.50]B[e2/-12.00/15.72]W[H5/12.00/62.38] B[h4/-12.00/0.01]W[E1/12.00/10.43]B[h6/-12.00/0.01]W[G3/12.00]B[f1/-12.00/0.01]W[F7/12.00]B[e8/-12.00/0.01] W[H3/12.00]B[c1/-12.00/0.01]W[D1/12.00]B[b2/-12.00/0.01]W[G8/12.00/0.05]B[h2/-12.00/0.01]W[F8/12.00/0.01] B[h8/-12.00/0.01]W[H7/12.00/0.01]B[g7/-12.00/0.01]W[H1/12.00/0.01]B[c2/-12.00/0.01]W[G1/12.00/0.01] B[a2/-12.00/0.01]W[G2/12.00/0.06]B[a8/-12.00/0.01]W[B1/12.00/0.01]B[a1/-12.00/0.01]W[B7];)
GGSに居るDKRって何者? Yasutaka Mitaniって日本人のようなんだが
本名晒すのはよそう。
三谷恭隆?
DKRってGGSランキング10位なのか。 すごいな。
今5位か。 でもわりとSAIOに負けてるんだな。
323 :
デフォルトの名無しさん :2008/05/19(月) 13:24:33
DKRって? ダークキングリバーシ?
324 :
デフォルトの名無しさん :2008/05/21(水) 16:36:25
Diddy Kong Racing?
325 :
デフォルトの名無しさん :2008/05/22(木) 12:42:34
GGSへの接続ソフトはいろいろあるが
http://othellogateway.com/ntest/ のLionというソフトでGGSに接続可能。
bodo1.cs.ualberta.ca
をサーバの設定に設定して、ログイン名とパスワードは何でもかまわない。
GGSフォーマットの棋譜も取れて、saioの対戦も棋譜が取れる。
ブック作成に便利。
ほとんど最善手で、同点。
ブックのないところで、思考して相手のミスがあった時、勝ち負けがまれにでる。
DKRもよく対戦しているが、今日は、朝からtriple0がSaio3700と18回も対戦していた。
326 :
デフォルトの名無しさん :2008/05/22(木) 12:55:26
株式会社第一勧銀総合研究所の略がDKRなので、DKRに勤務しているのかも。
327 :
デフォルトの名無しさん :2008/08/02(土) 15:52:15
MasterReversiがバージョンアップしてた
リバーシのアルゴリズム C++&Java対応 こんな本もあるやん。オクとかなら安く手に入るんじゃね。
>>328 知らない事が無かったから立ち読みで十分だった
331 :
デフォルトの名無しさん :2008/10/11(土) 15:29:53
上げとくか
332 :
デフォルトの名無しさん :2008/12/18(木) 23:14:01
あげ
333 :
デフォルトの名無しさん :2009/04/18(土) 00:59:21
334 :
デフォルトの名無しさん :2009/06/08(月) 00:09:21
人工無能はここでいいの?
335 :
デフォルトの名無しさん :2009/07/15(水) 17:07:52
あげてみる
336 :
デフォルトの名無しさん :2009/10/26(月) 00:15:27
リバーシプログラムの作り方読んで作ったんだけど これには載ってないもので是非実装しろっていう技術ある? あれば教えてください
338 :
死ね :2009/10/27(火) 00:27:13
基地外にかまっちゃだめ
341 :
デフォルトの名無しさん :2009/11/23(月) 23:55:21
ゼブラのCPU使用率って50くらいなんだけどなんでこんな高いの? キャッシュ256Mから1Mに下げてもほとんどかわらないし多重起動でニコ動とか使ってたらカクカクしたりフリーズ連発
342 :
デフォルトの名無しさん :2009/11/24(火) 00:11:41
キャッシュ減らすのは逆効果
君のPCってデュアルコアだよね ゼブラの思考はシングルスレッドで一度探索を始めると終わるまではCPUを使えるだけ使おうとする 多重起動でもカクカクさせないためには起動後にタスクマネージャでゼブラの優先度を低に変えればいい キャッシュの設定はゼブラのメモリ使用量が変わる キャッシュは強さに影響がないけど多いほど思考が早く終了する可能性が高くなる
344 :
デフォルトの名無しさん :2009/11/24(火) 00:42:08
>>336 定石追加機能あったと思うけど対戦棋譜を自動で追加したりとかは?
346 :
デフォルトの名無しさん :2009/12/03(木) 12:00:33
東京の大学でゲーム情報学の研究室っていったらどこ?
東大 電通大
それだけじゃないだろ。 泣くぞ。
オセロなんかやってるとこまだあるのか?
351 :
デフォルトの名無しさん :2010/07/03(土) 00:08:32
あげ
sage
今のマシンスペックとメモリー容量なら、完全読み出来るんじゃね?
そうだね
厳密な完全読みは現実的でない。 プロブカットがあれば完全とは言えないし プロブカットありでも1年以上かかってたと記憶してる。
356 :
デフォルトの名無しさん :2010/07/20(火) 10:25:55
そうだね
357 :
デフォルトの名無しさん :2010/07/21(水) 23:07:19
この分野の研究者だけど 何か質問ある?
研究する意味は? 研究費とか国から出るの?
便秘ですか?
この分野、20年前から全く進歩してない気がするんだが なにか凄い発見、開発ってあったの?
361 :
デフォルトの名無しさん :2010/07/22(木) 14:00:49
成果はちゃんと将棋とか囲碁で役立ってるだろ
20年前ってBuroのいろんなブレイクスルーが登場する前じゃん
完全読みをして一度計算した結果は記録しといて 同じ盤面が出てきたら記録を使って置けばいいんじゃね?
何を言ってるんだか。 それはPCスペックが上がった分、 短時間で多くの計算ができるようになってマシンスペックの制約で使えなかったアルゴリズムが 動くようになっただけだろ。 新しいアルゴリズムってのは見たことも聞いたこともない。
そりゃ自分で調べようともしないやつのところに情報が転がり込むわけがない
>>363 ブックという形で広く行われてる
完全読みに限定しなければ置換表も当てはまる
>>364 PCが速いに越したことは無いけど、PCスペックの向上は関係ないよ。
Buroの手法は1990年当時一般的だったCPU数〜数十MHz、
RAM数百KB〜数MB程度のコンピュータでも実用的に動くよ。
君ら実際にAI作ったことあるの?
369 :
デフォルトの名無しさん :2010/07/22(木) 23:37:25
>>368 ないやつが圧倒的に多いようにしか見えないなw
まずはAIの定義から
AIといえば天才チンパン アイちゃんしかいないだろ常考
まぁ人間の世界チャンピオンより強ければ作ったうちに入れてやってもいいけどな。
375 :
デフォルトの名無しさん :2010/07/23(金) 23:13:48
↑作ったこと無い奴
むかーし作ったやつが出てきた 定石なし、一手目から長考(笑) 学習なし、というチープな仕様だがやってみたいやついる?
ノ
三目並べ(マルバツ)のAIなら超簡単。
>>379 初めてのウインドウズプログラム状態だったころの作でかなり変なとこがあったので
メインをvb.neに移植した
思考部はデルファイだが
読めるかい?
書けないけどなんとなくはわかる
oketaraokuとかローマ字使いまくりだね・・・ あとなぜか;の前にスペースが入ったりしてる インデント下げをあまりしてないので読みにくい kuroisi,siroisiを定数にしないのも変 tonari := tonari + 1 ; until ban[tonari] <>kuroisi; この書き方カコワルイ 上下左右の座標を決定するために座標tonariを +1 -1 +9 -9 で処理 してるけど、それなら4つの配列を作ってループすればいいよ あとBanには壁を設定したほうがいい。壁を-1とかって定義しておく 初めてのウインドウズプログラムとか言ってるけどUnixやDOSでの経験があるとも思えない ソースだなと思った・・・ 「リバーシのアルゴリズム」(Thell)のソースのほうが勉強になる
385 :
デフォルトの名無しさん :2010/07/26(月) 10:11:42
ほらな、迂闊にソース晒すと批判厨は湧くからな 晒すなら画像とか動画にしたほうがいいよ。 #カコワルイとかどうよ、口ばっかりの癖に・・・
ん〜、居ると思ったよ評論家w ループせず展開してあるのはわざとだし 盤外フラグが無いのもわざとだよ なぜなのかは、涙ぐましい高速化 そこに突込みが入るとは予想外だったよw
いわゆるマジックナンバー的な書き方が目立ったから、正直カコワルイと思った 確定石数えるところで +100とか足してたり n:=-3333; とか意味のわからない数字が多い せめてコメントで意味を書けばいいのに、こういう人は書かないし、結局本人でも読み解けない スパゲティソースとなってしまう罠 おれが見てきた中でも「最低のソース」だと思ったので批判した まともなものなら批判はしない
オセロ自体が、強ぇ〜とか、弱ぇ〜とか、まぬけ〜とか、そういうレスが無いことのほうが悲すぃw
つまり、オセロをろくに知らないから読んで学ぼうと思ったのにスパゲッティで指摘しないと気が済まなくなった、と。
>>388 アルゴリズムのレベルで批判する能力がないからだろ(笑)
>>386 甘い甘い。Thellだって盤外フラグ=壁を設定してるんだよ あれがベスト方法に決まってる
Muki とかいう配列を使ってるけど、ならば確定石を数えるときも使えばいいだろう
あと序盤.pas の kakutei3 で、
If k < 7 Then
ってあるのはバグだね、+100ずつ足しているのに5とか6になるわけはない
これちょっと見ただけで「高速化もしていない」「バグを放置している」ことがわかる下手糞な
ソースなんだよ 批判せずにいられない
392 :
デフォルトの名無しさん :2010/07/26(月) 10:36:44
01│49│13│14│15│16│50│02 −−−−−−−−−−−−−−− 51│57│41│42│43│44│58│52 −−−−−−−−−−−−−−− 05│33│21│22│23│24│45│17 −−−−−−−−−−−−−−− 06│34│25│○│●│30│46│18 −−−−−−−−−−−−−−− 07│35│26│●│○│31│47│19 −−−−−−−−−−−−−−− 08│36│27│28│29│32│48│20 −−−−−−−−−−−−−−− 53│59│37│38│39│40│60│54 −−−−−−−−−−−−−−− 03│55│09│10│11│12│56│04 マス目を数字の順に石が置けるか置けないかチェックして、 置けたら置く どう思う?昔、こうやって作ったことがあるのだが
>>If k < 7 Then >>ってあるのはバグだね お、ほんまやwさんきゅ 直したらもうちょっとだけは強くなりそうだな まあ、言い訳はせんw 環境が無いんで修正もできんし
>>391 が作ったこれより強いオセロに期待しよう
Thellって弱いのによくベストだと言い切れるなぁ
まあ、内容としては、たいしたことをやってないので 最近までに公開されてる論文の内容を実装してやるだけでこいつより強くなるのは間違いない 最近公開されてるフリーなやつは、たぶんそのへん実装してるだろうから、それなりに強くて いきなりの対局相手にはハードル高いだろうから、手ごろな腕試し相手にでも使ってくれればうれしいよ 勝ったぜの声を待ってるぜw
勝ったぜ
>>392 初めて作ったオセロの思考がまさにそれw
オセロ慣れしてた人間には弱すぎだったけど、それにすら勝てない奴は世の中に居たwww
>>395 仮に最強だったとしても、現時点で最強なだけでベストとは限らない
それなのにベストだと根拠なしに言い切るのは自分で考えることを放棄したアホでしかないよな
俺も初め作ったときは置ける場所で考えてたけど 実際は置いた後の盤面の形が重要なんだよな
401 :
デフォルトの名無しさん :2010/07/26(月) 17:44:28
置いた後の盤面の形かあ・・・。 俺自身がオセロ弱いから、 強いアルゴリズムが思いつかない>< 作者を超えられないよね。 当たり前だけど><
トップクラスのプログラムは作者は超えてるよ 人間の世界チャンピオンより強いんだから当然だけど
そんなことないよ。人間よりも、より深く探索できるんだから。
あ、ごめん、>403は>401宛てね。
405 :
デフォルトの名無しさん :2010/07/26(月) 18:01:55
まあ、人間と違って「抜け」がないわけだからそれはそうだけど、 どんなに時間がかかってもいいのなら 作者だって作ったアルゴリズムの通りに 全件なめて?(ごめん語彙が貧困で。適切な言葉じゃないかな) ミスなく探索すれば人間=機械じゃーん ※屁理屈ごめん
406 :
デフォルトの名無しさん :2010/07/26(月) 18:48:03
392だが、俺それ考え付いたの小学校4年生のときだったんだよね 俺はちょくちょく趣味でしょぼいゲームを作ってはいて、 人にやらせてみたけど、不評なものが多かった>< でも、オセロのゲームだけは、ゲームに興味のない、 いとこのお姉ちゃんがよく遊んでくれたんだ。
407 :
デフォルトの名無しさん :2010/07/26(月) 18:50:22
で、そのお姉ちゃんは、いつもそのオセロゲームをやるときに、 すっごい無防備な座り方をするので、いつもぱんつを見せてくれた。 俺は、この時ほど、プログラムが作れて良かったなあと思ったことはなかったよ。 いつも見せてくれるので、ちょっとだけ勘違いした俺は、 花火大会の夜に、さりげなくお姉ちゃんの内ももを触ってみた。 大声をあげられたよ・・・。 それ以上、お姉ちゃんを触ったりはしませんでした。 残念。 おしまい
408 :
デフォルトの名無しさん :2010/07/26(月) 18:53:40
ああごめん。アホな話をしてしまったのだがw
基本は
>>392 の考え方で、
石を置く前に、いくつか置ける場所の候補を配列に入れるようにして、
・角が取られている場合
・角の近くに石がある場合
・均衡しているときは、たくさん石がとれる場所を優先
みたいに拡張していったら、強くなんないかな。どだろ。
>>401 終盤読みきりだけで、たいがいのやつのレベルを超えてしまうので、作者より強くなるのは当たり前
作者が有段者だと、ちょっと大変かもな
>>408 どうだろうって言う前に作って試せよ
序盤中盤の答えが分かるやつなんて居ないんだから
強かったら正解に近いってだけだ
俺も作ってさらしてみるか
恥を?
うん
白黒方向に関係なくパターンを数値化するフィルタを通す (同じ盤面なら白と黒を入れ替えても同じ数字が出てくる関数) 最初はランダムで白と黒を戦わせる 履歴から各盤面の数値を計算して、勝った方のパターンとその置いた場所に+1 負けた方のパターンとその置いた場所-1する 人間と対戦させる時はもちろん上記のフィルタから得られた数値を計算して 一番ポイントの高い置き場所を選んで置く
>>414 ランダムに多数対局して勝率のいいとこを取る
というのを毎回やってるのが、最近、囲碁でブレークスルーがあった
話題のモンテカルロ方だ
オセロで上手く行ったというのはまだ聞かないからチャレンジしてみては?
417 :
デフォルトの名無しさん :2010/07/27(火) 01:18:00
どいつもこいつも抽象的なことしか言わないなあ
モンテカルロはオセロじゃうまくいかない そんなのしなくても先が読めるのに読むべき手を漏らすだけ
419 :
デフォルトの名無しさん :2010/07/27(火) 01:41:37
>>418 まあ、そういうなって
オセロじゃないけど
モンテカルロな思考ルーチンと対局すると
人間くさい手を出して来ておもしろかったぜ
人間みたいに好調、不調があっちたりとかな
最強を目指すスレってわけでもないんだから、
そういう方向性があってもいいんじゃね?
定石のDBってどこでダウンロード出来ますか?
バグつぶして動作を確認しみようと、デルファイからvb.netに再移植してみた 遅いだろうとは思ったが、終盤必勝読みで速度を見てみたら 0.3秒対4分44秒だと・・・・・ここまで遅いとは・・・・・orz
VB.NETでもそこまで遅いはずがない バグだろう
VB.Netは遅いC#はネイティブと大差ない
何か無駄にオブジェクトの生成破棄を繰り返してるんじゃないの
>>431 グローバルな配列をいじってるだけだかんね
意図的にやってるものは何も無い
vb.netが裏で勝手にやってるなら、どうしていいか分からん
速くなった Dim at = New Integer() {1,2,3,4・・・・・ みたいな配列宣言をしていた Dim at As Integer() = New Integer() {1,2,3,4・・・・・ こっちが正解、バリアントで動いてたというオチw 0.3秒対0.7秒 vb.netは配列が参照の配列になるとのことなので、半速で限界かな 値の配列が使えればいいのになあ
そんなことだろうと思った
で、みんな言語は何使ってる?
CとC++とC#とJava
C++,Delphi
誰かがスクリプトエンジン搭載したものを作ればいいだろ AI部分だけスクリプトで書いて動かすみたいな AI切り替えもボタン一発みたいなのをさ
>>434 >vb.netは配列が参照の配列になるとのこと
これはウソ
あ、配列への参照か、スマソ
どっちにしても、参照でワンクッション入るよね 中の人が最適化してたら知らんけど 半速程度になってしまったのは、そのせいかと思ったんだけど 違うのかな?
ぜんぜん盛り上がらないので、メモ書き C#.NETでやってみると、VB.NETの 1.35倍速くらいになった c#ならポインタ使えるからもっと速くなる余地ありと だれかがC#はネイティブ並みって言ってたのが本当なら VBも捨てたもんじゃないな
446 :
デフォルトの名無しさん :2010/07/31(土) 19:53:31
ヴァリアント型で処理していたというオチか
ドトネトは関数呼び出しと配列アクセスが遅いのが残念 これさえオフにできればほんとうにネイティブ並になりそうなんだが
速さを求めたらネイティブに叶うわけ無いだろ。 .Netはそもそも速さを追求した言語じゃないだろ。 利便性重視なんだから仕方ない。
C#のほうはポインタ使えるんだから、配列に関しては回避できるんじゃない?
C++ に移植したみた、DLLからリターンしてきたときに スタックが不安定になってる云々・・・つってエラーになる 正しい手は返ってるみたいなので、ちょっと怪しいがこの状態で速度比較 制御がIDEに返ってくる時間があるので時間がちょっと不正確だけど delphi →vb.net 半速 VB.net→C#.net 1.35倍速 C#.net→C++ 1.4倍速←エラーでIDEに戻ってくるので不正確 delphiとc++がネイティブ同士で近いとこに来ました ポインタ使ってどうなるか検証したいけど、C良くわかんないので あたしゃ、もう、力尽きました
原始モンテカルロなら簡単にコーディングできるだろうと思って始めてみたが 速度を意識するとけっこうややこしくなるな、めんどくさくなってきた
ファイルに経過を記録して好きな時にやれるようにすれば 速度なんかどうでもいいだろうに
試合ができない
何をぬかしてらっしゃいますのん?
速度がどうでもよければ試合の持ち時間内に打ち終えられないって事だろ
457 :
デフォルトの名無しさん :2010/10/07(木) 13:28:38
ー
これ ; デリミタっていうんだけどさ、よく打ち忘れるよね Rubyだとつけなくてよくなるんだけど ゴミに何を言われても
失せろゴミ
失せろゴミ
2011年になっても未だにJAVA使い続けてる奴ってさ 仕事で仕方なくならわかるけど 家でもJAVAやってるなら本当にバカだよね。哀れ はいゴミ死ね
465 :
デフォルトの名無しさん :2011/08/15(月) 02:57:50.29
>Screen is must be larger than Screen has to be larger than
懐かしかったので7行オセロでも張っておきますね。 #include <stdio.h> int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};void k(){if(m[p]==0) for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;if(c&&m[v]==t){a+=c;v= p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);}}}char*h="・○●\n";int main(){for(i= 1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++ p)k(),printf("%.2s",&h[m[p]*2]);if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d" ,&p,&i),p+=i*9):++p;else if(s)s=0,printf("pass");else break;t=3-t;}return 0;}
全数計算すればいいだろ、バカじゃね? 全て計算しない評価式での有利不利などを計算してもその時点での値でしかない 手数が進むと意味が反転するからこそ計算が困難になる。 つまり途中の最善手など判断せず全数計算すればいいだけ。
469 :
デフォルトの名無しさん :2011/10/19(水) 02:59:05.24
馬鹿晒しage
3目並べでもやってろ
まあ世の中には半年かけて円周率10兆桁計算しちゃう馬鹿もいる訳だし
6*6が解かれたのは'93 8*8もそろそろできてもよさそうな
473 :
デフォルトの名無しさん :
2012/02/25(土) 22:36:06.19 完全ランダム