おまいら最強の将棋プログラムしてみろよ part2

このエントリーをはてなブックマークに追加
できたら北朝鮮と金豚セットでプレゼント

前スレ
http://pc3.2ch.net/test/read.cgi/tech/1004395614/
Part2なのか・・・
31:03/01/22 23:40
part2なんです!
Part2なんて必要なし!
ということで>>1は削除依頼しる
>>10
次スレよろ
>>943
もう次スレは立てるなよ。
せめて >>1 にリンクくらい張ったらどうなの?
前スレだけじゃなくてさぁ、、、
8デフォルトの名無しさん:03/01/23 00:21
もはや2chにはアルゴリズムを語る力は残されてません。
これからはプログラミング言語FAQでやって行く予定です。
9にんにん:03/01/23 00:36
                 新モーニング娘でーーす!!!
        ノノヽヽヽ                            /| | | |ヽ
       从0^〜^) .(ノ~\\         ノ ノノ人ヽ  ノノノノヽヽ |( ゚〜゚ 川
 @ノハ@. (    ). ( `.∀´) 〃ノハヽ  (●´ー`●)从^▽^从 |(   )|oノハヽo∈
. ( ‘д‘)  |  i |   (   ) 从 ^◇^)  (     )  (   )  | i ,| (´D` )
. (   ).   | | .|    | | |  (   )   |  |   |    | .| |   |. | |  (   )
. (_)_)   (_)_)   (_)__)   (_)_)   (_(__)   (__(_)  (_(_)  (__.(_)
  加護    吉澤    保田   矢口    安倍    石川   飯田  辻
 ▓▓▓▓   ▓▓▓▓   ノノノノヽヽ  ノノハヽ ノノノハヽ  ノノハヽ        ▓▓▓▓
 ▓▓▓▓    ▓▓▓▓  ∬ ´▽`∬ 川o・-・) 川VvV从 川 ’ー’川 §ノヽ§ ▓▓▓▓
 (   )  (   )   (   )   (   )  (    )   (   )  (・e・ )  (   )
  | | |   | | |    | | |    | | |   |  | |    | | |   (   )   | | |
  (_)_)   (__(_)    (_)__).   (_)__)  (__ (_)   (__(_)   (__(_)   (__(_)
 田中    道重   小川     紺野    藤本    高橋   新垣   亀井
10にんにん:03/01/23 00:37
                 新モーニング娘でーーす!!!
        ノノヽヽヽ                            /| | | |ヽ
       从0^〜^) .(ノ~\\         ノ ノノ人ヽ  ノノノノヽヽ |( ゚〜゚ 川
 @ノハ@. (    ). ( `.∀´) 〃ノハヽ  (●´ー`●)从^▽^从 |(   )|oノハヽo∈
. ( ‘д‘)  |  i |   (   ) 从 ^◇^)  (     )  (   )  | i ,| (´D` )
. (   ).   | | .|    | | |  (   )   |  |   |    | .| |   |. | |  (   )
. (_)_)   (_)_)   (_)__)   (_)_)   (_(__)   (__(_)  (_(_)  (__.(_)
  加護    吉澤    保田   矢口    安倍    石川   飯田  辻
 ▓▓▓▓    ▓▓▓▓   ノノノノヽヽ  ノノハヽ ノノノハヽ  ノノハヽ        ▓▓▓▓
 ▓▓▓▓    ▓▓▓▓  ∬ ´▽`∬ 川o・-・) 川VvV从 川 ’ー’川 §ノヽ§ ▓▓▓▓
 (   )  (   )   (   )    (   )  (    )   (   )  (・e・ )  (   )
  | | |   | | |     | | |    | | |   |  | |    | | |   (   )   | | |
  (_)_)   (__(_)    (_)__).   (_)__)  (__ (_)   (__(_)   (__(_)   (__(_)
 田中    道重   小川     紺野    藤本    高橋   新垣   亀井
人間が将棋やるとき、次の一手を出発点に先読みするんじゃなくて、
目標から逆算して次の手段を考えるよね。たとえば、「敵玉は金をはがさないと
寄せにくい」→「大ゴマ成りこむよりト金攻めがいい」→「ト金を作るには
この辺を薄くさせないといけない」→「よし、そこに戦力結集だ」→「ただし、
こちらからいくと自玉が薄くなる」→「とするとこっちからだ」というように。
そういう発想は将棋プログラム開発にすでに入ってるの?
12山崎渉:03/01/23 20:01
(^^)
>>11
入っていると言えば言える。
11の例で言うなら「と金攻めがいい」あたりまでは評価関数に入っている。
それ以後は探索アルゴリズムが例示されたような流れを勝手に選び出してくれるので、
特に考える必要もない。

もし、ルールベースのような考え方を期待してるんだとしたら、
それはコンピュータが生まれたころにすでに試されて、破綻した考え方だ。
前スレ>>1の投げやりな感じが好きだったんだがなあ。
今回はいかにもウケようとして外してる感じ。
15デフォルトの名無しさん:03/01/28 00:01
理論上、一手当たりに指せる手の種類って最大どれくらいっすか?
東大将棋とかの将棋ソフトはそのうち何手くらい抽出してるんでしょうか?
全部読んでいたらとてつもない手になってしまいそうです
言語は何を使うのが妥当なのですか?
17デフォルトの名無しさん:03/01/28 02:47
>>16
何でもいい

>>15
自分の駒の数*1.5くらいでしょ。
抽出はしてないかも。

>>14
11が言ってることは目的指向みたいなものだと思うけど。
>>11
そういう意味では入っていない。
ただし、定石という形で実装されているので、序盤、中盤あたりは
そんな感じにさせると思う。
ただ、「敵玉は金をはがさないと寄せにくい」
こんなのを盤面から認識するのは、今のところ無理。
>>17
定石とか書き込んでいる段階でおまえのレベルがバレバレ。
知ったかするなよ。
>18
確かに囲碁を意識して書き分ける奴が多いけど、別に間違いではないらしいよ。
煽りだけのレスじゃレベルもたかが知れてるよね
2113:03/01/28 11:36
>>17,11
ゲーム木探索って「現在局面から、次に可能な手をどんどん探していく」っていう「手続き」を行なうから、
それをその言葉のまま受けとると11のような質問が出ちゃうと思うんだけど、
よーく考えてみると探索で求められているのは11の言う「目的」への経路になってるわけ。
だから、目的指向という考え方は「あると言えば言える」と答えてみた。

一般に探索にはトップダウンとボトムアップの方向性があって、ゲームでやられているのは普通トップダウン。
11が書いた手続きをそのまま実現すればボトムアップ手法になるけど、概念的には求めているものが大きく変わるわけではないよ。
もちろん、トップダウンとボトムアップには利点欠点があって、実際のプログラムでは解けるものが変わってきちゃうけどね。
ゲームで言うなら、ボトムアップにやるのは探索に必要な時間もメモリも爆発するので普通はできない。

例では、「敵玉は金をはがさないと」という目的は、「金が敵玉の周りにいないほうが良い局面である」という評価で与えられている。
「と金攻め」もまあ評価関数に入ってるでしょ。
で、それより前に起きること(こっちから攻め合う)とかは探索でカバーしている範囲だ、ということ。
22デフォルトの名無しさん:03/01/28 22:11
>だから、目的指向という考え方は「あると言えば言える」と答えてみた。
いいたい事はわかるけど、プラニングとは違う。

評価関数とはなんなのか?
評価関数:V(s(t))
t手目の局面:s(t)
t手目を打ったときの利得:r(t)
V(s(t))=V(s(t+1))+r(t)
となる事はわかるだろうか。
言葉で書けば、
局面s(t)の評価は
自分と相手が最善手を打った時、次の局面s(t+1)の評価を
s(t)の時に打った着手の評価で修正したもの。
要するに、評価関数が決まると、どういう風に攻めるかも
どういう風に守るかも、どのタイミングで守るかも決まっている。

プラニングとは何かというと、
現在棒銀で攻めているとすれば、おのずと次に打つ手は限定されてくる。
つまり、探索の効率をあげる役割を果たす。
守っている時に、攻める手を考える事も必要だが
まずは重点的にどうすれば守れるかを考えると思う。
プラニングは着手決定ではなく、候補手生成の方の概念で
探索空間を小さくする。
ただし、具体的なアルゴリズムは今のところ提案されていない。

23デフォルトの名無しさん:03/01/28 22:11
トップダウン、ボトムアップが具体的に何を指しているのかはよくわか
らなかったんだけど、上に書いたような事かな?

もう少し書けば、
現在の将棋は、探索とデータベースに頼っている面が大きい。
裏を返せば、評価関数はかなり使い物にならない。
評価関数だけでまともに将棋をさせるプログラムが作れたら
それはすごい事だよ。
そういうわけで、評価関数に目的が・・・
というのはそういう意味でも、非現実的かも。
24デフォルトの名無しさん:03/01/28 22:14
誤解を招くといけないので、
補足しておけば
プラニングは直交する概念だから
実装すればそのまま性能アップにつながる。

もちろん、評価関数+探索が
結果的にそういう意図を持つ事は確かだし、
評価関数が理想とする盤面を目指すという意味では
目的があるわけだ。
でも、プラニングという概念がある事を主張してるわけですわ。

異論があれば、是非聞かせて。
2513:03/01/28 22:47
評価関数をどのように定義するかというのはきわめて重要かつ難しい問題なので、ここでは踏み込まないことにしまつ。

で、プランニングという考えがあるという話ですが、それは了解。
この考え方は、将棋ソフトには「部分的には」入っていて効果を出している。
手筋という考え方を取り入れて、ある意図に従った手だけを深く読む、という手法はこの例に当たるかな。
また、やや無理を承知で言えば、局面の遷移確率に従って深く読む、という手法もこのカテゴリをカバーしていると言えると思われ(以前の手の選択が現在局面の候補手に影響を与える)
ただし、「部分的には」と言ったのは、これらの手法はあくまで探索アルゴリズムの中で、ごくごく簡単な「目的」、
例えばこのこまを攻めるから「歩でたたいてたたいて打って」だな、とかいう小さな目的を与えているにすぎず、
より大局的な目的感覚はきれいに体系化されていないと思う。
2613:03/01/28 22:51
まとめて言うなら、戦術レベルのプランニングはある程度入っているが、
戦略レベルのプランニングはまだまだという感じだろうか。
感覚としては、「棒銀だからこの手」とか「金をはがさなくちゃ」とかいうあたりはすでに「戦術レベル」のプランニングで既に事足りてる気がするな。

もちろん、戦略レベルのプランニングはそれぞれの将棋ソフトが必死こいて実現しようと努力してると思うよ。
2713:03/01/28 22:58
あと、現在の将棋はデータベースにはほとんど頼ってないでしょ。
探索と評価関数が命だと思うなあ。
本当の序盤、例えば第一手に26歩を探索によって指させることはまず無理だから、
その辺だけはデータベースに頼るけど。

市販ソフトの100万手定跡とかは飾りです。偉い人にはそれがわからんのです。
28デフォルトの名無しさん:03/01/29 20:27
>>27
本当か?
序盤戦は定跡がある程度記憶されてるんじゃないの?
その方が効率が良い。
29デフォルトの名無しさん:03/01/29 21:34
>評価関数をどのように定義するかというのはきわめて重要かつ難しい問題なので、ここでは踏み込まないことにしまつ。
評価関数にはちゃんと意味があるよ。
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=%8B%AD%89%BB%8Aw%8FK%81@%95%FB%8D%F4%81@%8F%F3%91%D4%89%BF%92l%8A%D6%90%94&btnG=Google+%8C%9F%8D%F5&lr=
一番上のPDFの解説はよさげ。
別になんも難しくないよ。

>手筋という考え方を取り入れて、ある意図に従った手だけを深く読む、という手法はこの例に当たるかな
こんなのが実装された例を、俺はよく知らないんだけど

>また、やや無理を承知で言えば、局面の遷移確率に従って深く読む、という手法もこのカテゴリをカバーしていると言える
これはHMMでやったのかな?
明らかに無理だと思うけど、実装して効果を実証した論文があれば
教えてください。

>まとめて言うなら、戦術レベルのプランニングはある程度入っているが、
ある程度入っているプラニングとは、具体的になんですか?

>27
コンパクトな評価関数だけで、定石を再現すること自体が難しいので。
if(局面=A)then...
if(局面=B)then...
という評価関数は全部データベースと等価です。
3013:03/01/29 22:36
>>28
もちろん効率の問題から序盤は定跡データベースに頼る。だけど、
たとえ100万手入れようが、1000万手入れようが、序盤の10数手で簡単に定跡から外れるよ。
そういう意味で、あまり定跡なんて信用してないと思うなぁ。

あと、将棋の世界では、今の定跡には「26歩、84歩」というシーケンスは入っているけれど、
いきなり角頭の歩をついたとき、それをとがめる手は入れてない。
(あ、これはあくまでわかりやすい説明で、実際のソフトでは角頭歩はいれてあるかも。
要は「すべての可能な手」の中にある「悪手」に対して「とがめる手」が入ってないってこと。)
チェスなんかで序盤データベースを整備してコンピュータが強くなった、
というのはこういったとがめる手も含めた序盤の研究なんだよね。
それをきちんと整備して強くする、というアプローチはありなんだけど、
まだ「将棋に関しては」やってない、という現状だと思われ。
3113:03/01/29 22:49
>>29
評価関数の意味を29が言うようにとらえるのは、あくまで機械学習の枠組みでゲームのシーケンスを捉えるとすると、という話なんだよね。
で、そのように評価関数を定義すると、TD(lambda)が使える。
そのことにはべつに文句はないのよ。ただ、その捉え方だけがゲーム研究の立場ではないのよ。
どのようにゲームを定式化するか、これが評価関数と探索手法を決める。
評価関数も探索手法もそれ単体では意味をもてないよ。
有名どころでは、そうだなぁ、bayesian approachなんかはまた違った評価値の定義をするよ。

あと、具体名はあまり出したくなかったんだけど…
「手筋」は東大将棋、「遷移確率」は激指だね。HMMではありません。
論文は情報処理学会とか「コンピュータ将棋の進歩」シリーズあたりでしょ。
ちょっとぐぐったけどWebで取れる形では落ちてないみたい。
3213:03/01/29 22:53
ついで。
> if(局面=A)then...
> if(局面=B)then...
> という評価関数
こいつはまた豪儀だなぁ。さすがにそんな評価関数は使ってないでしょ。
もう少し局面を抽象化した形でifを使ってる。
そういう意味を意図してたんならスマソ。
33デフォルトの名無しさん:03/01/29 23:55
>たとえ100万手入れようが、1000万手入れようが、序盤の10数手で簡単に定跡から外れるよ。
定石を使わないプロはいないんです。
つまり、強いから定石なわけ。
相手が定石を使ってこない場合は、
定石を使ってきたときに比べて弱いのはわかるよね?
定石に対して、評価関数で攻めたり守ったりしていては
歯が立たないという事を理解してくれればいいかと。

>で、そのように評価関数を定義すると、TD(lambda)が使える。
違うって。
TD学習を数学的に解析するときに
状態価値関数(評価関数)が何かを考えると、
そうなるだけだよ。
強化学習の枠組みに限った話ではないよ。

>評価関数も探索手法もそれ単体では意味をもてないよ。
意味って何だろう?
探索手法はゲームと切り離して考えられるし、
評価関数も状態価値関数という一般的な考え方でいいのでは?
ゲームの評価関数は
V(わかっている情報)=その局面における勝率or得点
という風に一般化しても問題ないと思うけど。

34デフォルトの名無しさん:03/01/29 23:57
ベイジアンアプローチってどういう意味かな?
ベイジアンネット?ベイズ推定?

>「手筋」は東大将棋、「遷移確率」は激指だね。HMMではありません。
なるほど、HMMじゃないんだ。
具体的にどんなアルゴリズムなのか知ってたら教えてください。
序盤、中盤、終盤という概念を
盤面遷移から決定するという話なら知ってるけど。
それは確率じゃあないよなぁ。

>もう少し局面を抽象化した形でifを使ってる。
まあ、俺はゲーム専門じゃないので、どういう評価関数を作ってるかは
知らないけど
局面を抽象化してるのではなくて、
局面の特徴を抽出して評価してるんじゃなくて?
パターンマッチングで評価を決めてる部分はデータベースと
たいしてかわらないよといいたかったわけ。
たとえば、一手目なんかは評価関数を使って探索する必要なんか
ないんだから。
評価(盤面、着手)=if(初期盤面 && 着手)return 5
みたいになるわけだ。
これはデータベースだよね。
35デフォルトの名無しさん:03/01/30 00:04
遷移確率ってこれか・・・
http://www.logos.t.u-tokyo.ac.jp/~gekisashi/algorithm/abstract.html

なかなか面白いね。
>実現確率打ち切りによる探索アルゴリズム
って書いてくれた方がよかったな
3613:03/01/30 01:28
まず、
> 定石に対して、評価関数で攻めたり守ったりしていては
> 歯が立たないという事を理解してくれればいいかと。
そうかなぁ。それはいまだに定跡は新たに見つかっているっていう事実に反するよね。
最近定跡になった「かまぼこ囲い」とかね。

なんとなく見えにくくなってるみたいだからまとめておくけど、
序盤の定跡データベースは現在の将棋ソフトの評価関数よりは有効なことが多くて、
実際に将棋ソフトの序盤で便利に使われてます。
ただ、それを将棋ソフトが重視しているか、というとそれは違うのではないかと。
重視しない理由は、ごく単純に「定跡が使える局面がゲーム全体に占める割合が小さすぎる」から。

でも、もっと究極的な話をするなら、定跡は所詮人間というモデルプレイヤーが作ったものであって、
それは決して「神が指す手」ではない、ということもあるかな。
人間よりはるかに強いプレイヤにとっては現在の定跡は誤りかもしれない。
だから今の知識を必死になって教えるのは、ソフトの正しい発展を妨げるかもしれない、と。
…まあ神の手云々を追求できるのは30年後くらいだとは思うけどね。

あと、ごくごく短期的な見地からは定跡の選択をチューニングするのは非常に効果があります。
今年のコンピュータ選手権にぜひ勝ちたい、とかいう時ね。
そういうときに限っては定跡が重視されまつ。
3713:03/01/30 01:54
次に、評価関数の意味とか言っているのは、
例えば「評価関数をその局面からの勝率」であると位置づける、というモデル化のことね。
これだけでも(漏れにはまともに見えるけど)議論の余地はあると思う。
で、そもそも勝率とは何なのか、どんなプレイヤが、どんなプレイヤを相手にしたときの勝率なのか、
というあたりでもまたさまざまな立場が取り得る。
で、勝率ベースの評価値と定義すると、探索は「勝率を最大にする手を選択する手法」とモデル化される。
そのあたりの話がしたかったわけ。

TD学習に従った評価値にしようと思うと、
・(最終局面で)この局面では先手勝ちだった。
・その前の局面では、先手勝ちに移行できる手(利得xxx)がある、yyyという評価値。
・(これを繰り返して…)
・最初の局面では、評価値ゼロ
という立場だと思うのよ。これは必ずしも前に挙げたような
「この局面からこういうプレイや達で戦ったときの勝率」という評価値を求めようとはしてないよね。
そゆうことが伝えたかった。
3813:03/01/30 02:03
ベイジアンアプローチはベイズ推定の方に関係があるよ。
"bayesian approach game"くらいで英語でぐぐってみて。
39デフォルトの名無しさん:03/01/31 00:25
>そうかなぁ。それはいまだに定跡は新たに見つかっているっていう事実に反するよね。
コンピューターがある局面の最善手を高確率で見つけ出すようになってからであれば、
あるいは、ある局面の最善手を高確率で見つけ出せる評価関数ができあがれば
定石データベースはいりません。
今のところ人間>コンピューターなので
ある局面に関して、人間が研究分析した結果としての最善手を保存しておく事には
大きな意味があるわけです。
そうじゃなければ、棋士は定石の研究をしないわけです。
序盤から定石破りをする人は、序盤に関しては弱いんです。
序盤が弱い人に対して、定石データベースが使えない事は、
序盤が強い人に対して、定石データベースが使えない事より、
はるかに問題にならないのです。

もう一つ視点を挙げておくと
(将棋プログラムの人間が作りこむ)評価関数というのには2つの方向性があって
一つは
プログラマーがある局面に対してつけた得点をなるべく反映するように作るもの。
理想的には、ある局面が提示された時、評価関数が算出する得点と
プログラマーが算出する得点が等しい。
もう一つは、ある局面からの特徴量(持ち駒の数など)を抽出し
それをプログラマーの観点である計算式を作り
それを評価関数とする。
プログラマーが想像していた得点と、評価関数が算出する得点が
違う事がある。
もし、前者の評価関数を目指しているなら
全ての局面に関して、羽生名人の評価を入力したデータベースこそが
最高のものになる。
40デフォルトの名無しさん:03/01/31 00:40
>例えば「評価関数をその局面からの勝率」であると位置づける、というモデル化のことね。
勝率は強化学習で言えば、方策が確率的に着手を選択するときだね。
ある局面に対して、毎回同じ手を指すものであれば勝率はあてにならないね。

>で、勝率ベースの評価値と定義すると、探索は「勝率を最大にする手を選択する手法」とモデル化される。
ミニマックスでの探索なら、常に評価関数の値を最大にする・・・
なんだけどね。

TD学習の解釈は間違ってると思うよ。
状態価値関数(将棋で言えば評価関数)Vがあったとき、
強化学習というVの推定方法の一つにTD学習があるわけだ。
V(ある局面)=V(ある局面の次の局面)+利得
という関係は常に成り立つので、この関係式を利用して学習をすすめるし
この関係式を満たせば学習が終了。
つまり、正答率100%の評価関数ができあがる。

確かに、将棋の場合
評価関数は、相手がどんな手を打ってくるかという事を仮定して
成り立っている。
最高の評価関数を作るのが目的であれば
最善手を打たれたと仮定している。
強化学習でも同じ。
学習する時、誰かの作った将棋プログラムで学習させれば
そのプログラムに対する評価関数ができあがる。
でも、学習者どうしで学習させれば
収束する方向は、両者が真の意味で最善手を打つという方向になる。
もちろん、学習時間がすさまじいので使えないけど。
41デフォルトの名無しさん:03/01/31 00:50
ベイジアンに関しては
また今度調べとくよ。
でも、ベイズ推定なの?
まったく予想できない。

評価関数に関しては
V(s(t))=V(s(t+1))+r(s(t),s(t+1))
V(s(t))=Σp(s(t),s(t+1))*V(s(t+1))+r(s(t),s(t+1))
という風に一般化できるよね?
言葉で書けば
自分の着手と相手の着手の確率によって
s(t)からs(t+1)へある確立で変化する。
(s(t+1)の状態の価値+s(t+1)へ遷移した時の利得)をその確率で平均した
物が状態s(t)の価値となる。

強化学習の本を読んでみるとわかりやすいかも。
評価関数自体はそれ程複雑ではないし、
議論の余地はあまりないと思う。
4213:03/01/31 01:09
>>39
定跡に関して。
とにかく現在の将棋プログラムは定跡データベースを使ってます。それは確か。
で、それにどれくらい力点を置いているかというと、それは本質的な強さを求めると言う点ではほとんど効果を発揮していない。
短期的視点に立った強さを求めるために使われている、というまとめでいいかな。
これはまぁ現役でその辺りに居るやつの感覚ということで。
4313:03/01/31 01:18
で、強化学習は魅力的なのでそのあたりを研究してはいるんだけど、
「勝率を最大化する」というシンプルな目的と、ある対戦モデルに従った強化学習手法との「目的」との間に、
どうしても大きな隔たりを感じてしまうわけ。
その間をつなぐようなモデルが欲しいわけ。

だいたい、
> V(s(t))=Σp(s(t),s(t+1))*V(s(t+1))+r(s(t),s(t+1))
のp(x)は相手の指し手モデルを考慮しているよね。で、そのモデルって一体何よ?あるいは自分の指し手モデルって?
と考えていくとそんなに簡単な話じゃないと思うわけ。
それにはそれぞれの研究者の立場があると思う。
両者が真の意味で最善手を選択するなんてのは、ごく限られた見方でしかないよ。
もちろん現状ではそれくらいしかきれいに解析できないんだけど。

学習という枠組みで一般化するのは確かに魅力的だけど、
その一般化にたどり着くまでの考察がいい加減だととたんに説得力を失いまつ。
4413:03/01/31 01:39
そもそも将棋なんかは、初期局面が「先手勝ち」「後手勝ち」「引き分け」のいずれかに決まっていて、
パーフェクトプレイヤは初期局面から評価値も指し手も一意に定まっているんだよね。
それを、あるモデルに従ったパーフェクトでないプレイヤが戦ったときの勝率、という対戦のモデル化を行うからさまざまな立場が出てくる。
どうしても「どういうプレイヤと対戦するときにこのソフトは強い」という視点が入ってくるからね。
一般的な学習の枠組みに落とし込むのは可能だけど、そのあたりの仮定が常に付きまとう、ってのは確かでしょ。
で、今のところどんな仮定がより「もっともらしい」かを議論してるわけ。
それを評価する方法も難しくて、まぁ今は「対戦してみてより強いほう」を「よいモデル化」としてるけど、
それだって(まあ納得はできるけど)微妙な話だよね…。
45 :03/01/31 05:53
ところで人間の話だけど、人間でもやっぱし、トッププレーヤと次点プレーヤ
の違いは評価関数の違いかな。
このスレたまたま覗いて一読してみた感想。
 
 
 
定石とか将棋を打つとか羽生名人とか書くのやめれ、初心者どもめ
上級者を装う初心者キタ━━━━━(゚∀゚)━━━━━!!!!!
48デフォルトの名無しさん:03/01/31 18:51
>評価関数の違いかな
羽生の強さは、研究に裏打ちされた卓越した定跡の選択(+研究力)と
手を評価して決定する能力(構想、読み、終盤力、勝負術)の
尋常でない正確さと強さ
だと俺は思ってる。

先まで局面を進めてみないと評価を得られない評価関数は
(どんなに局面を正確に数値化できたとしても)
時間内ではすべて探索できないので
局所的な真の解の可能性はなくせない。

つーことで
いい加減な評価関数でも勝てるぐらい、
強い定跡(+補完)のデータベース作ればいいということになる。
(定跡を選択する上で結論(定説)(独自の判断)がかなり重要)
(定跡外でも十分対応できるものは必要だと思うが...)

(( 羽生名人は -> 現在の名人は森内だ。
定石は   -> 定跡。))
完全な評価関数があれば読みは1手で済むし
完全な読みがあれば評価関数は必要ないですよね。

実際はこのどちらも実現不可能なわけだけど
どっちを強化するのが効果的なんですかね。
50デフォルトの名無しさん:03/01/31 19:34
局所的な手筋、終盤データベースは前提条件として。
大局的な手([例]:逆王手ゼットとか、詰めろ逃れの詰めろ)を高速に探すことが
できるとかなり強いと思う。

完全な読みと完全な評価は本質的には同じだと思うが、
負けにくい手を選び、
読んで負ける手、直感的に負ける手は絶対に指さないことかな。
(持久戦で玉を固められて、ジリ貧とかはもっての他、
負けても勝負に行くべし)

評価は駒を進めていく過程での、道しるべみたいなものじゃないかな?
51デフォルトの名無しさん:03/01/31 19:38
将棋には終盤データベースはないよ。

定跡=定石だよ。

局所的な手筋=プロの手筋の統計的なデータだよ。
定石は囲碁。将棋は定跡
完全な評価関数とはある局面を与えると、先読みなしで
その局面が勝ちか負けか引き分けかを返してくるもの

完全な読みとはゲーム木を終局まで読み進めること

の意味で書いたんですけど
55デフォルトの名無しさん:03/02/01 09:57
>>48
>卓越した定跡の選択(+研究力)
プログラムで実現するのは無理。選択するためのいい評価関数があればいいけど、数学的に考えてなさそう。結局、一つ一つのパターンを
プロも覚えてってんだから関連性がなく、プログラムにするのは無理。そのまま入れればいいんですけど、それじゃプロ以上に勉強しなくちゃいけない。

>手を評価して決定する能力
結局これって先を読んで決めることだから読みの力に帰結されると思うんですが。

そう考えると、結局プログラミングで実現できるのは読みの速さとそこそこまともな局面の評価関数。
この2つしかできないような気がする。で、特に重要なのは、読みの速さ。これに、そこそこまともな局面の評価関数が入ってくればそれがコンピュータで実現できる最強の強さ
になるような気がして、プログラミングよりハードウェアの性能が重要になってきて、プログラミングをある程度やってその両者がほぼ限界まで達成できてしまったらプログラミング的な面白さはないような気がする。

結局Deepblueみたいな方法じゃないと無理だと思うんですがどうでしょう?
ところで、アルゴリズム的にはここ数年「明らかに」強くなってるんですか?同じハードウエア条件で対戦させた時の本質的な強さって意味で。つまり、いろいろなチューニングを除いたって意味で。
5655:03/02/01 09:59
>>55
>「明らかに」強くなってるんですか?
なってませんよね?
57デフォルトの名無しさん:03/02/01 10:50
>>55,56
「明らかに」強くなってます。

例えば、「激指」の開発チームの論文では、
「実現確率打ち切りによる探索アルゴリズム」は「固定深さ打ち切りによる探索アルゴリズム」に
対して、1/5程度の思考時間で同等の棋力となるとのことです。
同じハードウェア条件なら「明らかに」強くなってますよね?

それとも、こういうのも含めて「チューニング」って呼ぶんですか?

それから、DeepBlueがハードウェア的にすごいのは良く知られてますけど、
アルゴリズム的にも、SingularExtensionなどの手法を編み出していることも
知っておいて欲しいな。

ハードだけじゃ勝てないのです。
58デフォルトの名無しさん:03/02/01 13:42
>短期的視点に立った強さを求めるために使われている、というまとめでいいかな。
いいよ。
ただ、現時点では、定石データベース無しで上手くやれる
将棋のプログラムはないので。

>のp(x)は相手の指し手モデルを考慮しているよね。で、そのモデルって一体何よ?あるいは自分の指し手モデルって?
一般的な形で書けるという事は
任意のモデルで評価関数が作れる事。
将棋の評価関数を作るなら、自分相手ともに最善手を打つモデルを
目指せばいい。
強化学習では、εグリーディーと呼ばれる方策(数回に一回ランダムな行動をとり、あとは最適行動)
を使ったりするから、普通はそれを考慮する。
方策(pの確率構造)は学習とともに変化していくってのもわかるよね?

言いたい事を推測すると、距離が定義できないといいたいんだと思う。
つまり、評価関数の良さを測る尺度がないという意味だと思う。
例えば、あるプログラムの強さとの比較だと
a<b,b<c→a<c
が成り立たない。
でも、それは人間の強さを測るにしても、同じ問題が起こるわけだ。
それは往々にして「相性」という単語で片付けられているけど。
だからといって、目指す評価関数がなんなのかがわからなくなる
というわけではない。
もちろん、ある評価関数がどのくらいかを厳密に評価する基準は
今のところないと思う。

>「勝率を最大化する」というシンプルな目的と、
勝率ではなくて、利得を最大化する・・・
利得の設定の仕方は、開発者によって様々。
一番シンプルなのは、勝ったら1、負けたら-1
こう設定すれば勝率になる。
59デフォルトの名無しさん:03/02/01 13:49
>数学的に考えてなさそう
卓越した定石の選択がなんなのかはよくわからないけど、
数学的に考えてって何を考えたんだろう・・・

>この2つしかできないような気がする。で、特に重要なのは、読みの速さ。
探索空間とハードウェアの性能の比較を数学的にしてみるといいと思うんだけど。
オーダーが全然違うよ。

>ところで、アルゴリズム的にはここ数年「明らかに」強くなってるんですか?
ここ30年間はゲームプログラミング=チェスプログラミング
であって
チェスプログラミング=探索アルゴリズムだった。
大方、片付いたと思われるので
探索アルゴリズム研究は終焉を向かえ
ゲームプログラミング=将棋、囲碁
の時代に入ってきた。
・・・らしい。
6055:03/02/01 18:04
>>57
>固定深さ打ち切りによる探索アルゴリズム
これだと、時間が余ったらほんとにありえないような(たとえば関係ないところでいきなり18香とか)そういったのも読むから、そういったのは読まない
実現確率打ち切りによる探索アルゴリズムのほうが明らかに強いでしょう。でも、このアルゴリズムって最近出てきたんですか?

実現確率打ち切りによる探索アルゴリズムもやりすぎると、指されるんだけど読めないような手が出てきて、結局読みの深さと幅のバランスをより最適にすると言うアルゴリズムであってそのアルゴリズム内ではたくさん読んだほうが強い。
あたりまえか?

>それから、DeepBlueがハードウェア的にすごいのは良く知られてますけど、
>アルゴリズム的にも、SingularExtensionなどの手法を編み出していることも
>知っておいて欲しいな。
>ハードだけじゃ勝てないのです。
そりゃそうですけど、ソフトのほうでやれることはそんなに多くないと思うのです。Deepblueのころはまだ研究段階としては始めのほうだったからその多くないアルゴリズムを編み出すことが出来ましたが
どんどんなくなってきて、そのうち尽きてくると思うのです。まあ、ある意味あたりまえですが。

6155:03/02/01 18:04
>>59
将棋をですね、思いっきり簡単なモデルにするんですよ。金1枚と王のみで5*5マスとかね。そうすると、その時の定石の選択って結局あらかじめ知ってるか
先を読むかによってしか正しい選択は出来ないでしょ?そのゲーム木は、それ以外の要素ではランダムです。そのランダムなゲーム木の中でこちょこちょパラメータをいじってるようにしか見えないんですよね。

>探索空間とハードウェアの性能の比較を数学的にしてみるといいと思うんだけど。
オーダーが全然違うよ。

そういえばそうですね。となると、評価関数もかなり大事ですね。そうすると58さんたちの議論とかぶってくるんですが、評価関数で評価した値だって、先を読んでみないとほんとにそうかはわからない。ゲーム木の分岐はランダムなんだからね。
だから、58さんは、もちろん、ある評価関数がどのくらいかを厳密に評価する基準は 今のところないと思う。 といってるけど、これからもないと思う。
>>58
>ただ、現時点では、定石データベース無しで上手くやれる
>将棋のプログラムはないので。
人間だって、定石の知識なしでうまくさせる人はいませんよね?そういった意味では人間もコンピュータも同じです。
6255:03/02/01 18:06
>そのランダムなゲーム木の中でこちょこちょパラメータをいじってるようにしか見えないんですよね。
今のプログラムというかたぶん、これからのプログラムも↑こう思うってことね。
6355:03/02/01 18:16
>ゲーム木の分岐はランダムなんだからね。
駒の可能な動き以外ではランダムってことです。
で、その駒の動きから判断するのが、先を読むってことです。つまり、先を読むということによるか、あらかじめこの局面はこう指す(それだって、先を読んで得られた結論)と教えること、
あとは、たくさん指してきた経験から得られる評価関数(それは絶対的なものではない)、はさみうちにするとかいう簡単な構想(それも経験)それぐらいしか強くする方法はないと思う。
あとは、それぞれの分野の中でのアイディアとバランスかな?
ある局面から読まずに評価する評価関数には限界がある、その限界に少しでも近いパラメータをこちょこちょ探すっていうのがプログラムなんだと思う。
64デフォルトの名無しさん:03/02/01 18:30
>そりゃそうですけど、ソフトのほうでやれることはそんなに多くないと思うのです。
ここ数年は探索アルゴリズムの進化も止まったね。
チェスに特化した探索アルゴリズムは
どうなってるのか知らないけど。
でも、ハードウェアでどうにかなる事は何もないと思うんだけど。
BLUEからJuniorになって何が変わったのかをチェックしてみては?
まあ、汎用的な計算に使える量子コンピューターを作るというなら
話は別なんだけど
今のコンピューターを一生懸命改良していっても
性能はあがらないというのが、一般的な見解。
深さ20で平均分岐が10の探索木を作れているとして
その木の深さを一段深くするには
10^20のノードに対して10個の展開を行う必要がある。
許容時間をT秒、比例定数(ノードの展開時間)をKとすれば
K*(10*(10^20)/T)Hz分だけCPUが速くならなくてはならない。
もっとわかりやすく書けば
一手深く読むには1GHzのCPUを10GHzにする必要がある。
これはちょっとゲームを複雑にすれば
10GHzのCPUも1GHz程度の価値に簡単にできる事を意味する。
(探索における話)
>>64
約3倍で済むんじゃないの?
66デフォルトの名無しさん:03/02/01 21:29
64は間違ってるね。
平均分岐数をAとおけば
n段の深さまで探索を行うのに必要な時間は
(A^(n+1)-1)/(A-1)

さらに一段掘り進めるには
A^(n+1)展開しなくてはいけない。

A^(n+1)-1をA^(n+1)とみなせば
1段深く探索するには
CPUの能力をA倍しなくてはいけないという風に計算する。
Aが10だとすると
10倍か・・・値はあってるね
2段深く探索するには100倍
3段深くするには1000倍となる。
パーソナルなコンピューターが3段深く探索するようになると
ハードディスクの容量は50Tとかになるのか。
67デフォルトの名無しさん:03/02/01 21:48
>実現確率打ち切りによる探索アルゴリズムのほうが明らかに強いでしょう。
実現確率の計算ってどうやるの?
もしかして、着手統計による遷移確率の計算とやら?

>先を読むかによってしか正しい選択は出来ないでしょ?
>そのゲーム木は、それ以外の要素ではランダムです。そのランダムなゲーム木の中でこちょこちょパラメータをいじってるようにしか見えないんですよね。
言いたい事が全然わからないんだけど。
正しい選択って何?

>だから、58さんは、もちろん、ある評価関数がどのくらいかを厳密に評価する基準は
>今のところないと思う。 といってるけど、これからもないと思う。
ないと思うことの根拠は何?
一側面だけ見て比較する事自体に意味がないことはわかるよね?
最高の評価関数とどのくらい離れているか(距離の定義を満たす)が
定義できて、その近似計算法が確立すればいいだけなんだけどね。
もし、強化学習の進化版がでてきて
最適な評価関数が作れてしまえば簡単かも、と俺は思うけど。

68デフォルトの名無しさん:03/02/01 21:50
>人間だって、定石の知識なしでうまくさせる人はいませんよね?
定石がなくてもプロは強いんだけどね。
というか、5*5の将棋もどきを想定する理由は何?

>そのランダムなゲーム木の中でこちょこちょパラメータをいじってるようにしか見えないんですよね。
パラメータって何のパラメータ?

>強くする方法はないと思う。
そう思う理由は?

>ある局面から読まずに評価する評価関数には限界がある、
なぜ?

ちょっと自分用語が多くないですか?
あと、自分の考えを主張するだけじゃなくて、
理由を付け加えてくれるといいかも。
多数決じゃないので。
改善よろしく。
6965:03/02/01 21:50
>>66
探索は何もミニマックス使ったりする物好きはいないわけだから
10の平方根の3倍かかるんじゃないかってこと
70デフォルトの名無しさん:03/02/01 21:57
探索に関しては
計算機>>人
だと思うんですよ。
あと限界があるのもコッチなんですよ。多分。
既存のアルゴリズムで精度をある程度保った場合の探査速度
って、O(k・n・log(jn)) とかでしょ?多分。
今後いくら研究進んでも定数のjとかkが変るだけなんだと思うんですよ。
後は計算機の性能が上がるのを待つだけ。それと並列化なのかな?

というわけで、面白みがあるのは、評価関数(?)なような気がするんですが。
どうでそうか。
探索の斬捨てとかだって、評価関数次第だし。
71デフォルトの名無しさん:03/02/01 21:59
評価関数のほうが、「ヒラメキ」がありそうじゃないですか。
ここは人がイッパイ集まる2chだし。

探査アルゴリズムはその道の人には中々勝てないと思いますよ。
勝ったとしても既存のものとソウは変らないと思うし。

72デフォルトの名無しさん:03/02/01 22:05
>>70
オーダーの中に定数入れませんね普通。(´Д` ;
まあ、言いたいのはどんなに頑張ってもO(n)にはなんねーだろ?
ということです。そんなのつまんねーじゃんみたいな。

73デフォルトの名無しさん:03/02/01 22:07
だれかMPI用の将棋プログラムとか組みませんか?w
将棋…空しいな。
75デフォルトの名無しさん:03/02/01 23:33
>10の平方根の3倍かかるんじゃないかってこと
だから、平均分岐数をAでおいて計算式立ててみたんだけど、
間違ってるところがあったらおしえて。

>計算機>>人
チェスの事例から、それは明らかかもね。

>既存のアルゴリズムで精度をある程度保った場合の探査速度
>って、O(k・n・log(jn)) とかでしょ?多分。
違うと思うよ。根拠があれば教えて。
「ある程度の精度」の定義にもよると思うけど
精度をあげれば計算量は上がるね。
で、俺はそれを平均分岐数としてみたんだけど
それがO(A^n)
この計算式から、探索幅を絞る事はそれなりに効果があるけれど
絞った分だけ深く読めるという事にはならない
という風に解釈できる。
探索幅と探索深度を解釈すると何になるんだろう?

k・n・l
顔文字っぽいね

>というわけで、面白みがあるのは、評価関数(?)なような気がするんですが。
探索アルゴリズムをこれ以上研究しても、あまり面白くない事は確か。

ただ、人間はO(n)の探索を試みているような気がする。
つまり、一直線に降下していって、ある程度行ったら戻ってくるという事を
数回行う。
一直線に降下していくのは、おそらく人間が一つの事しか考えられないからだと思うけど。
なんであんなに探索の幅が狭いんだろうか。
76デフォルトの名無しさん:03/02/01 23:54
既存の将棋ソフトで最も強いのって何ですか?
77デフォルトの名無しさん:03/02/02 00:04
それは将棋板で聞きましょう
>>75
O(√(A^n))です
alpha beta game tree search
こんな感じので検索してみてください
79デフォルトの名無しさん:03/02/02 00:28
アルファベータプルーニングって評価関数に依存するのはOKですか?
アルファベータプルーニングの計算量はモデルを仮定した上で
計算機実験をして求めるんだっけな。

で、(A^n)^(1/2)ってのは
A^(n/2)と同じですか?


8055:03/02/02 00:40
>>64
>ハードウェアでどうにかなる事は何もないと思うんだけど
そうですね。ハードウエアが早くなってもほとんど変わらないですね。

>>67
>着手統計による遷移確率の計算とやら?

そんな感じなんじゃないでしょうか?

正しい選択とは厳密に言えば将棋を、初手からすべて探索した場合、先手必勝か、後手必勝か、引き分けになるっていうのは知ってますよね?
そのときの、必勝法への経路を取る手ですね。

>一側面だけ見て比較する事自体に意味がないことはわかるよね?
ある局面の時に、この評価関数が正しいかどうかですか?それはわかります。
そもそも、評価関数とはその後の手が自分に不利になるか有利になるかを判断する関数なんで、結局後を読んでみないとほんとに正しいかはわからない。
すべての場合を考えて、とりあえずは最適な評価関数と言うのは存在することは認めますが、それが、局面によっては最適じゃなかったりするのです。
で、すべての局面に対して最適な評価関数があるのかと考えた時変化の仕方がランダムなんだからないと言うことです。
言ってみれば、じゃんけんで、何を出すのが最適か?というのに答えがないようなものです。
たとえば、グーを良く出す人に対しては最適な評価関数はあります。しかし、将棋で、すべての場合に対して最適な評価関数はないと言うことです。

8155:03/02/02 00:40
>>68
>定石がなくてもプロは強いんだけどね。
そうですね。プロは読みが圧倒的に早いですからね。だから、定石をはずすことによって不利になった分を読み合いで圧勝することでカバーできる。
>5*5の将棋もどきを想定する理由は何?
まあ、考えてることをモデル化によって単純にして本質的なことを考えやすくしてるのです。

>パラメータって何のパラメータ?
評価関数のパラメータ、どの定石をどうやって選ぶかのパラメータ。

>そう思う理由は?
>>強くする方法はないと思う。
ここだけ抜かれちゃうとごへいがあるのですが、画期的に強くする方法があるはずだって考えてる人がいるじゃないですか?自分もそうでしたけど。
でもよく考えたら、そういう方法はないって言う結論に達してしまったのです。


>ある局面から読まずに評価する評価関数には限界がある、
なぜ?
67への回答を読んでください。

最近将棋プログラム作ろう、プロに勝つのを作ろう、って意気込んでやってたんですが、よくよくかんがえたら、ハードウエアによるか(けた違いに早くなる)、プロと同じぐらい勉強して、それ以上の手間をかけて
コンピュータに覚えこませるって言う方法しかないって言う結論になってしまったんです。そうすると、なんか急に面白みがなくなってきてしまって・・・。
>>76
激指らしいですよ。
>>79
依存するといっても大抵は1番目の手でカットオフが起きると思いますよ
それと同じかどうかって違うんですか?
8355:03/02/02 01:09
>よくよくかんがえたら、ハードウエアによるか(けた違いに早くなる)、プロと同じぐらい勉強して、それ以上の手間をかけて
コンピュータに覚えこませるって言う方法しかないって言う結論になってしまったんです。そうすると、なんか急に面白みがなくなってきてしまって・・・。

あ、デモさらによく考えたら、プロだって将棋の神様じゃないんだから、プロよりたくさん読めるようになって(もうなってるか)、評価関数がプロより良ければかてますね。
たとえプロが定石を研究してても、その研究はプロよりいい評価関数のコンピュータに自動でやらせればいいんですから。

今まで言ってたのは、将棋のあらゆる局面を初手からよんだ場合に勝つことができる評価関数はないってことです。よく考えたらあたりまえでした。
8455:03/02/02 01:12
>>83
よっしゃ、作るやる気が出てきたぞ。
内藤九段将棋秘伝は10回謝ると一手戻してくれるんだぜ
86デフォルトの名無しさん:03/02/02 01:23
>先を読むかによってしか正しい選択は出来ないでしょ?
過去の統計データを活かす事はできるけど。
定石ってのは統計データの集大成でしょ。
いい定石が残り、悪い定石は使われなくなる。
逆にいえば、定石として残ったものは勝率が高い。
そして、そういうものは出現確率が高い。

87デフォルトの名無しさん:03/02/02 01:23
>すべての局面に対して最適な評価関数があるのかと考えた時変化の仕方がランダムなんだからないと言うことです。
例えば、オセロなんかはどうかな?
どんな局面からも、自分のコマの数を最大にする手は存在するよね?
将棋だと、こんなのはどう?
任意の局面を与えると、相手がどんな着手をとっても勝てる場合は1
引き分けに持ち込める場合は0
勝てない場合は-1を返す評価関数。
この評価関数があれば、最強の将棋が作れるよ。
そして、最適な手とは
次の局面において評価関数が1を返す着手全部。
もしなければ0を返す着手全部。
それでも無ければ-1を返す着手全部。
言いたい事を推測してみると、
相手がミスして、こっちが勝つかもしれない。
だとすれば勝てる見込みがなくても、相手がミスしやすい着手を打てばいい。
という事かな?
相手がミスしやすいとは、どういうことか?
相手とは何?
ここまできた時初めてモデル化という概念がでてくる。
対人間であれば、対人間のモデルを作らないと意味が無いし
対コンピューターならば対コンピューターのモデルを作らなくてはいけない。
そうなると、ここでの強さの定義は**に対して強いという意味になり
純粋な強さじゃなくなる。
そのアルゴリズムは
対戦相手のデータがある時、そのデータをどう使うかのアルゴリズムなわけで
評価関数とは直交していると思う。

方法が見つからないから、方法がないと結論付けるのはどうかと。
88デフォルトの名無しさん:03/02/02 01:29
探索の意味と評価関数の意味が同じか違うかは
微妙すぎてわからん。

評価関数はおおよそ正しいけど、
とんでもないところで抜けてたりするから
探索が必要なんじゃない?

>先手必勝か、後手必勝か、引き分けになるっていうのは知ってますよね?
自分でこう書いてるのに・・・・
任意の局面をこの3つに結びつける写像が存在してるんだから
将棋のあらゆる局面を初手からよんだ場合に勝ちか、負けか、引き分けかを
判定する評価関数は作れるじゃん。
89デフォルトの名無しさん:03/02/02 03:52
将棋のプログラムを組んでも将棋のプログラマしか見向きもしないというオチ
90デフォルトの名無しさん:03/02/02 15:13
1手目は何%の確率で7六歩ですか?
つうか定石、定石って・・・プログラマーって日本語力がないんですね。
92デフォルトの名無しさん:03/02/02 15:31
定跡、データベースに重きを置いた話が多いですが、
終盤や定跡形以外でもプロが強いことはPC将棋的にはどう捉えているのですか?
93デフォルトの名無しさん:03/02/02 15:32
92ですが、プロは、適応範囲の広い「抽象化されたデータベース」というのがあるのかな。
 1手で相手の玉にぶつけられる駒の数×9
+2手で相手の玉にぶつけられる駒の数×8
+3手で相手の玉にぶつけられる駒の数×7
+・・・

ポイント計算で形勢判断できれば簡単なんだが
激指2のアルゴリズムは絶対におかしい。
従来の将棋ソフトに比べて明らかにおかしな手を指す。
形勢が有利な場面なのに、相手の無意味な手に反応して、
前に出られたら下がるみたいな…。
また、SOFT側の定跡が整う前に、
こちらから定跡を崩して攻めだすと、
数手、わけのわからない手を指した挙句に、
こちらが攻めるまで行ったり来たり、
さらにPC側は何も布陣が変わらないわけだけど、
こちらは徐々に前に押していくので明らかにこちらが有利になる。
そこになってようやく反撃しようとするけれど、
余裕でこちらが勝てる。
わけわからん。これが現時点で最強のソフトなのか?

時間だけは確かに早かったです。序盤は数秒もいらない感じ。
中盤も十数秒で返してくる。何度か制限時間まで使ったくらいで、
基本的には一手10秒が守られていた。
>>93
「抽象化されたデータベース」=格言?
「金底の歩」「玉の腹に銀」「金銀形」
駒組みの基本を守れば、各駒の動きを最大限に引き出すことができる・・・みたいな
じょうせき ぢやう― 【定石・定跡】


(1)囲碁・将棋で、ある局面において双方にとって最善とされる一定の打ち方・指し方。長年の研究によって確立されたもので、
それに双方が従えばある局面の結果は互角になる場合が多い。〔囲碁では「定石」、将棋では「定跡」と書く
98デフォルトの名無しさん:03/02/02 17:15
ってか、将棋強い人じゃないとダメだな。
99デフォルトの名無しさん:03/02/02 23:14
>>97
(2)はないの?
100デフォルトの名無しさん:03/02/03 00:25
>終盤や定跡形以外でもプロが強いことはPC将棋的にはどう捉えているのですか?
そんなのはわかってるんだよね。
オセロの場合
データベースを使った結果序盤が
全探索を使った結果終盤が
人間を超えている。
コンピューターオセロと戦う時は、中盤の10数手の間に
コンピューターを凌駕する着手をしなくてはいけない。

チェスも同じ。
終盤はデータベースといっているが、
全探索の結果をデータベースにして持っているだけで
終盤にデータベースが存在するのは、全探索を行った結果として
人間と同じか、それ以上の能力を獲得した。

それなのに、クソ弱いのは
中盤とかデータベース、全探索が使えない時の
優れたアルゴリズムがないから。
101デフォルトの名無しさん:03/02/03 01:17
オセロとかチェスは単純だからね。
問題は将棋だよ
102デフォルトの名無しさん:03/02/03 01:20
チェスと将棋の本質的な違いって何?
分岐数が増えただけでは?
103デフォルトの名無しさん:03/02/03 01:23
分岐数が莫大に増えた
駒使えるからね
104デフォルトの名無しさん:03/02/03 04:30
分岐の膨大に人間の頭はどう対処してるのか?
>>102
「分岐が広い」だけならPCのスペック次第で何とでもなりそうだが
とりあえずプログラム的には終盤がデータベース化できないのが最大の違いかと
106デフォルトの名無しさん:03/02/03 08:27
>>104
やりたい手順に駒が足りるかどうか。
将棋で最強のプログラムより、麻雀で最強のプログラムの方が余地がある
将棋では人間が勝てないのに対し、麻雀ではCOMが人間に勝てないのが現状
麻雀はイカサマしなけりゃ勝敗はランダムだし、
イカサマしてりゃCOMが勝つに決まってるだろ。
おれも将棋よりも麻雀のプログラムのほうが絶対ニーズがあると思う。
麻雀のプログラムはだれでも作れるよ。
112デフォルトの名無しさん:03/02/03 09:33
>>108
「将棋では人間が勝てない」
逆でしょう。
人間に及ばないから将棋のプログラムは魅力がある。
>>108
勝敗がランダムって、麻雀知らない奴の発言だろう
麻雀って、配牌からただ普通に打っても勝てないの
好牌先打だのベタ降りだの、山読みとかなんとかって色々あってだな(ry
状況判断(特に点数)の面でCOMが人間より明らかに劣っていると感じた
俺は毎回コンピュータ麻雀最強とか謳ってるAI麻雀シリーズとか沢山やってきた
でも、自分じゃそんな難しいプログラムできましぇ〜〜ん

>>112
それもそうだね。あなたは正しい
>>108
将棋は馬鹿な頭じゃ難しいからコンピュータに勝てなくて
麻雀は運次第で勝てるから勘違いしているのかい?(w
>>113
> 麻雀って、配牌からただ普通に打っても勝てないの
> 好牌先打だのベタ降りだの、山読みとかなんとかって色々あってだな(ry
> 状況判断(特に点数)の面でCOMが人間より明らかに劣っていると感じた
所詮全部確立だけで決まる問題だよ。相手の牌も次の牌も確率以外じゃわからないしね。
116現代の一般世間的なニーズ:03/02/03 09:58
麻雀>碁>将棋
117デフォルトの名無しさん:03/02/03 10:03
確率だけでやると手の内読まれて、上級者とやるとなかなか勝てませんよ
たとえば、ドラポンされた相手に対して、どう向かっていくか
自分が安上がりで、相手の高い手を消すか、当たったら危険なので守りに徹するか
こういう微妙な判断が上級者と違う
しかも、麻雀は捨て牌からある程度、相手の手の情報が読み取れる
初心者は何も考えずに突っ込んでくるだけ
捨て牌から読めるって言ってもやっぱり確立で決まるじゃん。
将棋や囲碁みたいに最善手があるわけじゃない。
その手がいいかどうかは運しだい。
119デフォルトの名無しさん:03/02/03 10:10
あと、頭の固い職には嫌われそうだが、
麻雀のトッププロは、殆ど確率だけでやってない。
これはデジタル的な考えがオカルト的な考えに負けてしまっていることを意味する。
おまえらは、ありえないと思うだろう?

このスレには牌を握ったことも無い人が多いようなので麻雀のことは無かったことに・・・
120デフォルトの名無しさん:03/02/03 10:16
期待値的な最善手はあるよ。
どれを切れば、最終的にあがりやすい形に持っていけるかとか
毎回14枚の牌で同じ価値のものは一個も無いからね
つーか、将棋しか知らんだろ?麻雀もやって味噌
> 麻雀のトッププロは、殆ど確率だけでやってない。
確立だけでやってないって証拠を示して無いのに熱く語られてもなぁ。

ようは勘って言いたいんだろ。確立とランダムを合わせた言葉ね。
麻雀のトッププロとそれなりに考えているコンピュータと勝負させて
トッププロが必ず勝つなら、運や確立で決まるもんじゃないと認めてあげるよ。
>>120
> 期待値的な最善手はあるよ。
だから今までの流れから確立が高い奴を選べって事でしょ。
あとは面白くするためにハッタリの要素を入れるくらい。
それだけで麻雀は簡単に作れるよ。
123デフォルトの名無しさん:03/02/03 10:31
今の最強のコンピュータは3位と15000点差で、しかもあと1局で終わるのに1000点で上がるような馬鹿だから困ったもんだ
おまえは次の局で14000点以上で上がれるのかと問い詰めたいって感じでな
詰まらないんだよ、馬鹿すぎて。
だから、将来有望な君たちに麻雀のAIプログラムを薦めてみた訳だが
これじゃ、麻雀のAIプログラムが強くならないな。
しかもプログラマーは麻雀をやらないらしい(w
いま、若い奴(オヤジ含む)の間で、麻雀流行りかけてるしね(時代を先取り)
定跡/定石もそうだけど、確立/確率もちゃんと区別して欲しいね。
2ch とはいえ。
必ず勝つって、もちろん1試合じゃないよな?
運の要素が全く無く、一発で差が出る将棋じゃないんだからな・・・
でも、麻雀も試合数が多ければ多いほど差が見えてくる。
ネット麻雀の東風荘なら他人との差が数値で分かる
あ、先手後手どっちから始めるかだけが運かな?
>>123
> 今の最強のコンピュータは3位と15000点差で、しかもあと1局で終わるのに1000点で上がるような馬鹿だから困ったもんだ
それはそのコンピュータがそういう情報を考慮してないだけ。
考慮するだけで改善される。AIなんて高度なもんじゃない。

まだ分からないかなぁ。将棋や囲碁は必ず勝利するという手がある。
ただ、その量が半端じゃないからデータベースに出来ず短い時間で
もっともよい手を検索しなければならない。

対して麻雀には必ず勝利する手というものは無い。すべては運しだい。

分かりやすく言えば○×ゲーム(囲碁・将棋)とじゃんけん(麻雀)みたいなもの。
じゃんけんでいくらAIを良くしようがやれることといったら相手の出す手の
特徴を分析するくらい。それでやっと互角。そして限界。
将棋って、ゲームというより仕事っていう感じだな
100%の正解が必ずどこかにある
それを必死で探す
プログラマ受けがいいのも無理ないな
最強の将棋プログラム「全部の手を最後まで読めるプログラム」は、
バーゲン会場にあるお買い得品のようなもんだから、
急がないと先こされちゃうよ
>>127
全てが運って、それは1回切りだったらな
何百試合もやれば、差が出るんだってば
たとえば、今、俺とおまえさんが打ったら100試合中80試合はおれが勝てる自身はある

じゃんけんは一切情報が無いから、何百試合やっても同じ
>>128
なにをあたりまえのことを言っているんだ?
将棋は人間より強いものを作れる。そしてまだ実現できない。
麻雀は人間より強いものは作れない。そしてその程度のものは実現できる。
そういう話だろ。

>>129
> たとえば、今、俺とおまえさんが打ったら100試合中80試合はおれが勝てる自身はある
その根拠は? なぜ俺が負ける? 説明してみ。
今から消えなきゃならんので先にレスだけしとく。

俺は勝つルールを知らない。だから負ける。

だから勝つルールを片方が知っていれば十分のじゃんけんとは違うな。
例が不適切だったのは認める。

じゃんけんよりも、どこでも好きなルートを選べるすごろくと言った方が適切だな。
勝つルールを知っていれば最短ルートを選ぶ。だから勝つ確率も高くなる。
もし勝つルールを知らなければ最短ルートを選ばないだから負ける確率が高くなる。
麻雀で俺が負ける理由と同じだ。

そして双方が同じルールを知っていれば、勝つ確率は同じになる。
麻雀もそういうことだ。それでやっと互角。そして限界。
>>127
麻雀のルールが難しすぎて君のイタイ頭では理解できてないだけでしょうね
麻雀の方が膨大ですよ
たとえば、牌は一種類に付き4枚、自分の手に2枚あるってことは、他のひとはこの2枚を持ってない
この2枚を持って無いってことは、あの役は作れない、あの待ちはない
場の捨て牌にあの牌が何枚出ているから、あの形が相手の手に入っていることは無い
あの牌が、あの牌が、あの牌があの牌があのあさいんhがおあいdさg
しかも、毎回、自分に何の牌が来るかも分からない
(将棋だと、盤面じっくり見たら、分かるよね?)
これらを毎回全部考えることがどれだけ大変なことか・・・
ま、これらを抜いて考えるAIを作るのが簡単だって言ってんなら、程度の知れたプログラマだわ
AIが人間に勝てない一つに、人間にはブラフ(脅し)という技術があります
高い手を作っているような捨て牌をしておいて、流局すると実は手の中はバラバラという技術です
AIはそのブラフの捨て牌を見てあの上がりをされたら危ないなと思って自分の上がりを放棄してでも危ないのは出さずにその局を終えようとしたりする(間違いではない)

ところが、AIにはブラフの概念が無い、第一打から上がりを放棄するようなことは意味の無いことだから
AIは素直に確率に基づく方法でしか打たない。それだけ分かってるだけでも人間が随分有利になってしまう

見て考えれば分かる将棋には無い、見えない駆け引きってのが麻雀の魅力であり難しさ
デリケートな部分を含む麻雀は将棋好きには理解されないのは分かってました
将棋だと人間(常人)相手に一度も負けないCOMになれるけど、麻雀ではそれが出来ない
全部の牌の情報を逐一把握していけば人間に対して(人間よりも)どこまで勝率が高いCOMを作ることができるかということに興味がありました
>AIは素直に確率に基づく方法でしか打たない。
それって本当にAIか?
それだったら挌闘ゲームのAIの方がよっぽど優秀だぞ。w
#なんせあっちは無意味な挑発してくる。

麻雀に関しては、極力負けないAIを作るのは比較的簡単だろうけど、
それが対戦相手として詰まらないと言う点には同意。
張ったりや引っ掛けもしてくるAIなら、キャラが立っていれば対戦してて
面白いんでないかい?
#そしてそれは実現不可能ではない。
これ以上はスレ違いなのでお控え下さい。
独自にスレを作る事をお勧めします。
で、将棋AIだけど、ここの主題とはちょっと離れるけど
対戦相手として面白い将棋AIってどんなんだと思う?
必死だな
麻雀の話もちょっと関係してくるんだけど、将棋ソフトとして面白い、あるいは非常に強いものを作るためには、
相手のモデルを考慮したソフトを作るってことが必要になってくる気がする。
最後まで読みきっちゃうと相手もくそもないから、その前の段階、限られたCPU資源でどこまでいけるかって話ね。
将棋では人間が「勝負手」を指すけど、それって「相手が受け間違ったら大変な局面、間違いそうな局面」に誘導してるわけだよね。
今のコンピュータは自分が読みが鬼強だから、相手も同じくらい読めると思って探索してる。
だから終盤で「30手詰めです。私が負けました」って平気で言っちゃうわけね。

麻雀は不確定性が高いから、読みよりは「相手がこう読んで、こう打ってくるに違いない」というモデルを推察することのほうが効果が高いんだと思うよ。
あるいは、「自分はこんな高い手を狙ってるんだぞ」と相手に誤ったモデルを植えつけるようなはったりとかが重要になるんだろうね。
139デフォルトの名無しさん:03/02/03 23:29
はっきり言って麻雀はコンピュータと対戦しても
おもしろくない。
対人だからおもしろいんだよ。

>>138
>だから終盤で「30手詰めです。私が負けました」って平気で言っちゃうわけね。
それの何が問題なの?
普通じゃない??
140デフォルトの名無しさん:03/02/03 23:43
確かに麻雀は難しいと思うよ。
不完全情報で、複雑な確立のゲームだからね。
それに将棋みたいに明確な強さが現れてこないから、
作りづらい事は確か。

でも、やろうと思えば将棋よりは簡単という印象がある。
141デフォルトの名無しさん:03/02/03 23:45
明確な強さは現れるって…。
将棋に比べればって言うならわかるけどね♪
>>139
138で、その「コンピュータの麻雀は面白くない」理由を明確にしたつもりだったんだがなぁ。
将棋でも麻雀でも、コンピュータが苦手にしているところが「相手モデル」の考慮。
で、将棋はゲームの面白さの中で比較的その要素が小さく、麻雀はその要素が大きいというだけの違いしかないのではないかと。
だから、「より面白く」するためには、将棋でも麻雀でも避けて通れない問題だよね、と伝えたかったのだが…。

30手詰めの話は、相手が「常にパーフェクトに指してくる」と思っていることのわかりやすい例を出しただけだよ。
別にそれが悪いとは言ってない。

あと、将棋よりは麻雀のほうがずっと難しいでしょ。
不完全情報である点、長期的な戦略が必要な点(半荘単位で勝てばよい)、4人ゲームである点(3人に結託されるかも)等々、難しいよ。
ただ、誰かが言いたがってた「人間には勘があるからコンピュータより強い」っつーのには反対だが。
人間なんて頭ん中でたいした事してないって。もちろんコンピュータもたいした事してないけど。
お互いにたいしたことしてないからゲームが面白い。
143デフォルトの名無しさん:03/02/04 00:31
現実時間内で理論上の最善手が読めない(PCも)ということは実質的に
将棋は不完全情報ゲームだよね。とすると、人間に勝つには
相手モデルに基づく方略は必須だろうね。
144デフォルトの名無しさん:03/02/04 00:52
将棋の場合は良さそうな手が複数生まれる場合がある。
したがって、人間でも見落とすし、コンピュータも読みきれない。。
そこが難しいよね。

ちなみに麻雀は最善手を見つけやすい
145デフォルトの名無しさん:03/02/04 01:35
>あと、将棋よりは麻雀のほうがずっと難しいでしょ。

麻雀は切る牌は14枚の手の内から選ぶし、
進むごとに牌が減って行くので、
手はかなり限定されてる。

行ったり来たりできる将棋は駒の交換をしたりもできるので
変化が爆発的に増加する。

だから、変化を減らす努力が必要にあるが、ただミスをしないプログラム
になって、創造性を欠如したものは
やってておもしろくないと思う。
146デフォルトの名無しさん:03/02/04 01:40
>>145
創造性をだすにはどーするかがこのスレの目的の一つ


>>145
ディープブルー状態だね。

必勝手が存在するゲームでは遅かれ早かれそうなるよ。
でもそんなのはどうでもいい。必勝手が存在していながらそれを
見つけるのが困難な問題でいかに早く最善手を見つけるかというのが面白い。
そういう必勝手があるゲームじゃ人間は勝てない。今は無理でも。
そういうゲームで人間を楽しませるためにわざとミスをしたり最善手
じゃない手を指すようにプログラムをすることはあるだろうな。

本気のコンピュータ相手に人間がゲームを楽しみたいという目的なら
必勝手がないゲームをやるしかない。
麻雀なんかは最善手が必勝手じゃないからいいんじゃない。
ここが将棋スレだから「将棋のほうが難しい」って思いたい気持ちはわかるけど、
コンピュータにとっては麻雀のほうが難しいよ。
いわゆる読み切りをやるとして、麻雀はたとえ最後になっても相手3人×13枚+山に14枚の計53枚が伏せられた状態だよね。
ってことはオーダーとしては53!くらい牌の配置の可能性がありうるわけで、
しかもそのすべての可能性の、どんな場合でも失敗しない手を読み切りで選ぶ、なんてのはまず不可能でしょ。
人間が「最善手」と思ってるのは、相手はきっとこの辺を持ってるって、ごくあいまいに読んでるだけの「最善手」だろうよ。

ちなみに、現状のコンピュータは詰め将棋は解けるけどブリッジ(麻雀みたいに伏せられたカードがあるトランプゲーム)の問題は解けない。
まあ麻雀でもパズルみたいにきちんと解ける局面も作れるとは思うけどね。

だけど、くれぐれもゲームの優劣とかの話題に持っていかないように!
コンピュータにとって解きやすい、解きにくいという違いとゲームの面白さは全然関係ないよね。
149デフォルトの名無しさん :03/02/04 02:32
将棋はもうよい。碁だ。
面白いとか関係ないだろ?
最強にするんだろ?
商品として考えれば、人間に負けない将棋プログラムは詰まらんだろな。
人間が絶対勝てないゲームになっちまうし。
将棋の存在意義が薄くなってしまいそうだ。
>>148
ネタですか? どこから53!なんてのが出てきたんだか。
最後にやれる行動の数を考えてみろよ。
お前、テストで適当な数値に!マークをつけて答えにしてたろ。

> しかもそのすべての可能性の、どんな場合でも失敗しない手を読み切りで選ぶ、なんてのはまず不可能でしょ。
麻雀にはどんな場合でも失敗しない手なんて存在しない。いくらCPUが速くなっても
存在しない物が読みきれないのは当たり前。

いい加減、最善手が決まる問題と決まらない問題を
ごっちゃにするのはやめてほしいね。
わからん奴のために図解してあげよう

oが現在の最高のコンピュータの性能
*が現在の最高の人間の性能

オセロ
|-------*-o| ←最善手(必ず勝つ)
チェス
|--------*o-----| ←最善手(必ず勝つ)
将棋
|---------o----*---------| ←最善手(必ず勝つ)
囲碁
|---------o----*--------------------| ←最善手(必ず勝つ)

麻雀
|--------*o| ←最善手(必ず勝つとは限らない・必ず勝つ手は存在しない)
必ず勝てないから何?
試行回数を増やせば強弱が目に見えて分かるのでは?
一回で決める必要は無い
156デフォルトの名無しさん:03/02/04 09:14
オセロ
|-------*-o| ←最善手(必ず勝つ)
チェス
|--------*o-----| ←最善手(必ず勝つ)
将棋
|---------o----*---------| ←最善手(必ず勝つ)
囲碁(19路盤)
|--o-------*----------------------------------------------------------------------| ←最善手(必ず勝つ)
囲碁(9路盤)
|-----o--*-------|←最善手(必ず勝つ)
麻雀
|----------| ←不可能(運による要素が大きすぎるため)

て感じだと思うけど?
やっぱり盤の広さが一番大きいと思う
囲碁(9路盤)と将棋では囲碁の方が簡単だと思うけど
19路のほうの開発が主流で9路はあまり盛んじゃなかったから
9路と将棋だと人間がコンピューターに負けるのは将棋のほうが早いと思う
これは開発にかかわる人間の多さの違いであると思っている
19路は無理だと思う
157デフォルトの名無しさん:03/02/04 10:20
オセロ・チェス・将棋・囲碁・麻雀全てに精通してるわけでもないのに、無理して発言するなよ
見当違いも甚だしいぞ

一番、分かりやすいルールで馬鹿でも分かる将棋だけ極めればよろしい
また、このスレはそういうスレだ
158デフォルトの名無しさん:03/02/04 13:30
>AIが人間に勝てない一つに、人間にはブラフ(脅し)という技術があります
実際には、与えられた情報からブラフかどうかを判断する事は不可能。
(確率しか計算できなくて、決定は無理という事)
相手モデルが決定していれば、確率が計算でき期待値が得られる。
つまり、捨て牌の順番と、自分の配牌が同じシーンでは
期待値の高い作戦を常に取りつづける。
実は駆け引きがあるようで、駆け引きとは相手モデルの推測であって
相手モデルの推測が終わった時点では、期待値を最大にする作戦を
選択するのが最善手である事は、簡単にわかる。

相手モデルの違いは大きく影響するかというと
明確な計算方法はよくわからないけど、
それほど多くないと思う。

ただ、将棋と違って相手モデルの考慮が重要なのは、
麻雀が確率に大きく支配されるから。
将棋では最適戦略をとれば必ず勝てる。
麻雀は最適戦略でも負けるときもある。
つまり、麻雀では相手から搾り取れるときには、たくさん搾り取らなくてはいけない。
ただし、相手モデルの影響はそれほど大きくないと思う事は前に書いた。

麻雀で考えると難しいから、ほとんど同じゲームの
ブラックジャックで考えればいいんじゃ?
相手の戦略に合わせて、自分の戦略を変えるというのが
この種のゲームのキーポイントになりそうだね。
159人生金次第:03/02/04 13:34
運の要素が多いとか言ってる奴は麻雀歴2ヶ月未満だな。
麻雀ってのは情報戦なんだよ、単なる運合戦では無いぞ。
囲碁・将棋ソフトより麻雀ソフトの方が売れてるんだし(ファミコンなどの家庭用ゲーム・ゲーセンのゲーム・パソコンソフト全て合わせると発売自体に差がありすぎ)
金にならない将棋プログラムなんて糞
最善手だけを打てるAIを搭載なんて、結局は最初の興味だけ引いてお仕舞い
簡単だと思う奴は、最強のプログラム組んで金にしてみたらどうだ?
160人生金次第:03/02/04 13:49
将棋における最強は、1000回やって1000回勝つこと。
麻雀における最強は、1000回やって他人よりよりよい平均順位を叩き出すこと。
将棋は毎手最善手を見つけることが最強。
麻雀は毎巡最善手になりうる手を見つければ最終的な平均順位で勝てる。
だけど、麻雀の最善手は自分が上がる確率が高いのを選ぶだけじゃない(これが分かってない奴多いと思う)。
1局1局単位で考えるんじゃなくて最後にトップに近いところにいる可能性が高い1打を選ばなければならない。
たとえば、今、8000点の上がりを見逃して、少し苦労して12000に仕上げたほうが最後にトップにいる確率が高いだとかね
相手のとの点差も毎局変わってくるし、その場その場の期待値計算なら簡単だろうけど、それじゃ最強とは言えないんだよな
161人生金次第:03/02/04 14:17
っていうか、たぶん、ここには麻雀の経験者がいないから無理。
将棋は小学校のころにやったことがあるやつがいても麻雀はゲーセンのイカサマAIで遊んだことあるか無いかくらいだろうな。
たしかに、麻雀より将棋の方が触れたことのある人口が多いだろうしね。

ちなみに今は麻雀で人間の方が明らかに強いと思う。AI麻雀の最強面子とか弱すぎるし
インターネット麻雀で上級者相手の方が5000試合(局数にすれば40000局以上)以上での平均順位は悪くなった。
AI麻雀の最強という宣伝は誇大広告だったのか。人間にも勝てないなんて、絶対プログラムが甘すぎる。
シリーズ前作と強さ変わってない。ダマサレタ・・・。
そもそも、企業側がこのジャンルに力を入れてないような気がする。
というのも、稼げそうな理由。
ちなみに、平均順位は試合数が多いほど精度が増すからね。麻雀の場合500試合でも十分な数字です。
麻雀であまり強くするといかさまに見えちゃうの
相手の手が隠されてるから
誰だ? 麻雀に運はいらないとか言っている奴は。
同じ力同士だと最後に勝負を決めるのは運だよ。
えっ、麻雀ソフトが弱いって。高々数万円のコンピュータ上の数千円の
ソフトで言われてもなぁ。それなら将棋だってチェスだって弱いよ。
あれ、稼げる余地があるから麻雀の方が難しいとか思ってる奴いるの?
>>163
チェスは数万円のPC上でフリーのソフトに
勝てる人間はほとんどいないんじゃないの?
まぁ、今の数万円のコンピュータじゃ将棋・囲碁はおろか、
麻雀の最善手すら見つけるには性能不足って訳だ。
もう少しコンピュータの性能が上がれば最強になるんじゃない?
もっともそのときでも将棋・囲碁にとってはまだ性能不足だが。
>>164
あぁ。チェス省いて。囲碁にしといて。
167デフォルトの名無しさん:03/02/04 16:25
>相手のとの点差も毎局変わってくるし、その場その場の期待値計算なら簡単だろうけど、それじゃ最強とは言えないんだよな
アホですか?
確率構造の推定ができてるなら、
順位の期待値だって計算できるよ。

運の要素って何?
確率の複雑差?

>>152
>ネタですか? どこから53!なんてのが出てきたんだか。
>お前、テストで適当な数値に!マークをつけて答えにしてたろ。

ワラタ。まあでもちょっとは考えようや。
53枚の異なる牌を3人の手(13枚ずつ)+山の4つに分けるとき、その分け方の数は
53!/{13!13!13!14!}だね。実際は同じ牌があるから同じ牌の並べ替えの分2!や3!や4!で割ってやる必要があるけど、
オーダーとしては圧倒的に53!の方が効いてくるでしょ。

>最後にやれる行動の数を考えてみろよ。
これで誤解してることがわかるけど、53!ってのは「隠れている牌がどのようになっているか、その可能な世界の数」のこと。
で、牌がある配置になっているときという「ある世界」において、
自分が可能な行動、つまり手の14枚から1枚捨てるという1手の中で一番いい手を選ぶのが、将棋と同じように「読む」ということなわけ。

>麻雀にはどんな場合でも失敗しない手なんて存在しない。
これはその通り。「すべての世界を考慮して手を最適化する」って書くとさっぱりわからないと思ったから、
わかりやすく書いてみたつもりだったけど、間違った表現になっちゃったね。スマソ。
まあでもやりたいことはそういうことよ。
168訂正。
そういえばドラ表示牌は見えてるな。というわけで最後に残るのは52枚ですか(w
スパコンですが何か?
171デフォルトの名無しさん:03/02/05 02:35
物は試しに麻雀のプログラムを作ってみるのは
悪くはないかもね。

今度作ろうかな。
>>168
> これで誤解してることがわかるけど、53!ってのは「隠れている牌がどのようになっているか、その可能な世界の数」のこと。
> で、牌がある配置になっているときという「ある世界」において、
> 自分が可能な行動、つまり手の14枚から1枚捨てるという1手の中で一番いい手を選ぶのが、将棋と同じように「読む」ということなわけ。
完全に間違ってるじゃん。全部の牌の数は? 牌の種類は? 捨て牌は? 全部省略して何がわかる?
53なんてでかい数で考えるから間違いに気づかないんだよ。
一人1枚・計4枚の可能な世界の数は4!=24ですか? どういう組み合わせか知りたいですね。

> オーダーとしては圧倒的に53!の方が効いてくるでしょ。
オーダー? 「ある世界」の数じゃなかったのか?
だいたいオーダーって分かってるか?

> その分け方の数は53!/{13!13!13!14!}だね。
これと勝手に省略した53!ではそうとう開きがあるぞ。

確率得意そうですから将棋の場合の駒がある配置になっているときの
「ある世界」の数でも計算して見たら? 驚くこと間違いなし(w
これ以上麻雀の話ししたきゃ新しくスレ建ててくれ
174172:03/02/05 04:07
あぁ、馬鹿げた計算の中で一つ分かったことがあるよ。
一人が持っている牌の順番が入れ変わっただけでも違うものと数えてるね。
まぁ全体的に間違った計算の一部の間違いを指摘してもしょうがないんだけど。
つーか、相手の隠れた牌をいちいち全部考えてもしょうがないんだけどね。
重要なのは捨て牌。それに相手の持ち牌もある程度分かるし。
アンチ将棋がいるんだな。。。。
176デフォルトの名無しさん:03/02/05 12:46
将棋の状態の数の計算の仕方がよくわからんのですが
だいたい
Σ{36Cn * 64Cn*n!}
36は駒の数
64はマス目の数
まず駒を盤上の駒と、手駒に分けて
手駒を盤上に配置
あとは、手駒を2つに分けるんだけど
この計算はそれ程大きな値じゃないので、しなかった。

手持ちの本では
チェス100^120
将棋100^220
囲碁100^300
らしい。

誰か麻雀を計算してよ。
俺がやろうかな・・・
177デフォルトの名無しさん:03/02/05 12:54
麻雀をちょっと単純化して
駒の数を
9*4*4=144とする。
面倒なのでダブりがないと仮定して、ちょっと複雑にする。

まず、確立構造の複雑さを計算すると
自分の牌13と捨てられた駒n*4
n回目の確立の複雑さは
(144-13-n)!=(131-n)!
これは、あるプレイヤーが目にできない牌が
今後どのような順番で出現するかのパターンの数
これは、ゲームの最後には
(13*3)!=39!まで減少する。
他のプレイヤーの牌=13*3
(全部牌を配ってしまうと仮定してます
配られない牌が存在すれば存在するほど、確立に支配される部分が
指数オーダーで大きくなります)

178デフォルトの名無しさん:03/02/05 13:01
麻雀の何を状態数とすればいいのかよくわからなくなったので、
誰かわかる人計算してください
>>172
>一人1枚・計4枚の可能な世界の数は4!=24ですか? どういう組み合わせか知りたいですね。
(abcd)(abdc)(acbd)(acdb)(adbc)(adcb)
(bacd)(badc)(bcad)(bcda)(bdac)(bdca)
(cabd)(cadb)(cbad)(cbda)(cdab)(cdba)
(dabc)(dacb)(dbac)(dbca)(dcab)(dcba)
24通り
>>174
>一人が持っている牌の順番が入れ変わっただけでも違うものと数えてるね。
いいえ。
173 名前:デフォルトの名無しさん :03/02/05 03:47
これ以上麻雀の話ししたきゃ新しくスレ建ててくれ
182暫定 ◆EATzkCF5Wg :03/02/05 13:15
チェスvs将棋ツール(普通の将棋も出来る)のCSSGにネット対局機能を付加。
↓詳しくはここ
http://jbbs.shitaraba.com/game/bbs/read.cgi?BBS=3804&KEY=1044353350&LAST=100

が、本スレに人が来なくて未だに実験出来ず。果たしてほんとに対局出来るのか!?
とりあえず、麻雀の場合の数の数え方系は
http://pc2.2ch.net/test/read.cgi/tech/997150743/l50
プログラミングの為の数学と算数
を借りることにします。
関係ないけど麻雀はわいわい知り合いとやるのもいいけど、
賭けるとかなり燃えます。
人間味が出て面白いし。
心のない奴とやっても面白くない。
なんら技術とは関係ないっす。スマソ。
1851:03/02/05 16:15
以降このスレは

  「おまいら最強の麻雀プログラムしてみろよ」

になります。
おまいら最強の麻雀プログラムしてみろよ!!
http://pc2.2ch.net/test/read.cgi/tech/1044446158/
187デフォルトの名無しさん:03/02/05 21:00
>>177
>麻雀をちょっと単純化して
>駒の数を
>9*4*4=144とする。
>面倒なのでダブりがないと仮定して、ちょっと複雑にする。

もっと詳しく書いて下さい。意味が全くわかりません。
駒って何ですか?
わざと妨害してるね。麻雀が好きならこんなことしない。
190デフォルトの名無しさん:03/02/05 23:34
早く将棋の話ししよ!
191デフォルトの名無しさん:03/02/06 00:10
αβカット以上の画期的な探索についてでも語りますか。

色々あるけど結局αβが実用上は最強なのでは
効果的だと思われる攻める・守る戦略を選択してそれが実行可能か、
駒が不足しているのならそれを稼げるか、という考え方に基づいたアルゴリズム。
194デフォルトの名無しさん:03/02/06 00:30
>>193
>効果的だと思われる攻める・守る戦略を選択して

どーやって判定するの?
195デフォルトの名無しさん:03/02/06 02:01
αβを効果的にする為にも
差し手作成の順番がキーとなるわけかな。
よくあるのは前回探索での最善手をまず最初に生成するってやつ
おまいら最強のぬるぽプログラムしてみろよ
197デフォルトの名無しさん:03/02/06 13:03
つか、誰かプログラム組んでるの?
書きたいだけ書いて何もできないヘタレ多すぎない?
もう、最強の将棋をプログラムしちゃったけど、
まだ君らできてないみたいだから見せてあげるのはやめとこう
>>198
本当にできたのなら2ちゃんねるで発言してないで、
ソフトを販売したら、大会で東大や激指に余裕で勝ったら、
ユーザーも流れるだろうし。がんがれ。
>>199
釣られんなよ。
まあそういう俺も
最強将棋プログラムもう組んだんだが。
>>200
本当にできたのなら2ちゃんねるで発言してないで、
ソフトを販売したら、大会で東大や激指に余裕で勝ったら、
ユーザーも流れるだろうし。がんがれ。
>>201
釣られんなよ。
まあそういう俺も
最強将棋プログラムもう組んだんだが。
>>202
本当にできたのなら2ちゃんねるで発言してないで、
ソフトを販売したら、大会で東大や激指に余裕で勝ったら、
ユーザーも流れるだろうし。がんがれ。
break;
>>203
おいおいおい>>202は激指の作者さまであらせられるぞ。
206デフォルトの名無しさん:03/02/07 06:46
麻雀の話を持ち込んだ馬鹿のせいでスレがおかしくなってしまったな。
最善手をお互いが指し続ければ先手必勝・引き分け・後手必勝が決まっている
チェス、オセロ、将棋、囲碁等と比べて麻雀は違うゲームなんだが。
たった数レスでスレが崩壊するこの現状。
これが2ちゃんねる。
>>206
準物理的不可算理論
「状態数が全宇宙に存在する素粒子の個数を超えたとき、
 そのゲームは事実上決定不能になる」
209デフォルトの名無しさん:03/02/07 15:07
将棋も突き詰めれば運だけになる
同じ最強が勝負するポイントは先手か後手かのみ
210デフォルトの名無しさん:03/02/07 15:52
>>209
将棋のどこに運が入り込む余地があるのか教えてほしい。
常に最善手を指す者同士が戦えば、何度やっても先手必勝・引き分け・後手必勝の
どれかが続くことになる。例えば、6*6オセロでは白の4石勝ち、という風に。
先手になるか後手になるかは、それぞれ2分の1の確率
それは勝つか負けるかの確率(運)が2分の1であることを意味する
>>211
それはもはや、オセロや将棋やチェスではない。
さいころでも振って勝負を決めろや!
213デフォルトの名無しさん:03/02/07 23:28
将棋って先手有利だっけか?
先手の初手を見て、自分が詰まされるところまで読んで
参りましたと言って投了したっていう話あったな。タモリが
言ってたんだったかな。
215デフォルトの名無しさん:03/02/07 23:45
>>214
読みすぎ!!
216デフォルトの名無しさん:03/02/08 00:46
麻雀と将棋、囲碁のゲームの違いは
完全情報、不完全情報という言葉で区別される。

興味がある人は調べてください。

>現実時間内で理論上の最善手が読めない(PCも)ということは実質的に
>将棋は不完全情報ゲームだよね。とすると、人間に勝つには
>相手モデルに基づく方略は必須だろうね。
この言葉の使い方は間違ってます。

217デフォルトの名無しさん:03/02/08 01:20
>>216
>>208についてはどう思う?
219216:03/02/08 01:38
>「状態数が全宇宙に存在する素粒子の個数を超えたとき、
> そのゲームは事実上決定不能になる」
まず、決定不能という言葉の意味と
事実上という言葉の意味がよくわからない。

例えば、
任意の自然数Nに関して
N+1は自然数である
という定理は直感的に正しい事はわかると思う。
で、当然証明は数学の公理を使った、帰納法で行われる。
自然数の数は、当然宇宙に存在する粒子よりも多い。
しかし、計算(決定?)できる。

そういうわけで、素粒子の数が
特別な値だとは思わないし
その数を超えた何かが特別だとも思わない。
220デフォルトの名無しさん:03/02/08 01:40
将棋プログラムの話ししよ。
221デフォルトの名無しさん:03/02/08 01:43
>>220
自分で話を振らないと。
高度な話になると、結局は数学の話になってしまうのは
仕方ない。
>>219
よう分からんけど>>208
N+1(Nは素粒子の数)の話ではなく
M^N+1(Nは素粒子の数・Mは1つの素粒子が表せる状態の数)なのでは?
まぁ、将棋が、それを超える事はないと思うが…
223デフォルトの名無しさん:03/02/08 02:16
まともな議論する人消えちゃったな。
探索木の爆発にどう対処するのか、人間はそれをどう実現してるのか、
人間についての研究を取り入れるのが近道か、あるいはコンピュータ
的な別の方略が人間にかつための近道か。
そういったところ、よくわかってる人の議論が聞きたい。
素粒子の数を超えてても
演繹的に計算できればワンステップという意味だと思うが。

帰納法は加算無限集合なら計算できるのだから、
加算無限集合よりも規模の小さい、素粒子の数個の状態という集合が
計算できても何も不思議ではない。
225桃花:03/02/08 02:19
【追加情報】
「探し物とくとくページ」が http://sagatoku.fc2web.com/ に移転しました
探し物・欲しい物あったら開いて見てください 何でもあります
今探し物なくても取りあえず、お気に入りに入れておいて下さい 役にたちます
[yahoo] [infoseek] [google]などの検索サイトにて「探し物 とくとく」で検索
タイトル【探し物とくとくページ】を探してね あなたの探し物見つけて下さい
以前のURLにアクセスしても自動で新URLに移動します。
--------------------------------------------------------------------------
【イベント情報】
[ハッピーバレンタインコーナー]  http://sagatoku.fc2web.com/101event-01.htm
[花粉症対策グッズコーナー]  http://sagatoku.fc2web.com/101event-02.htm
[開業支援]  http://sagatoku.fc2web.com/101event-91.htm
------------------------------------------------------------------------
http://sagatoku.fc2web.com/030softwar-01.htm ソフト・周辺機器
デジカメ Fuji FinePixF401 \64,800⇒¥44,800
     Fuji FinePix F402 \50,000⇒¥37,800
------------------------------------------------------------------------
http://sagatoku.fc2web.com/012denwa.tsushin-01.htm
光ファイバーを使った超高速インターネット
最速100M!NTTBフレッツ ニューファミリータイプ ¥0
------------------------------------------------------------------------
http://sagatoku.fc2web.com/005kyoiku.school-01.htm
インターネット実務検定 IT人材紹介育成スクールなど
じゃ、サイコロも含めた将棋最強を作らなければならないのか
サイコロを全て計算し、0.1mmでも欠けていれば全部の目が同じ確率では無いんだろう
ロボ?!
228208:03/02/08 12:45
>>219
まず>>222ありがと。つまり次のようなこと

先手必勝・後手必勝・引き分けを見極めるためには、
可能な状態を列挙してそれに対する結果をすべて判定しなければならない
ということは可能な状態の個数だけ結果を記憶する必要がある
さて、その“結果”を書き込むスペースを考えたとき、
どんなに多く見積もっても、素粒子一個につき一つが限界だろう。
ということは、利用可能な記憶スペースは高々全宇宙の素粒子個しかない。

したがって何らかのゲームの状態数がそれを超えたとき、
全部の結末を同時に記憶するのは不可能になるので
先手必勝・後手必勝・引き分けといったゲームの“結論”を導くことが
「物理的に」不可能になる、ということ

(物理的に非実用的というよりもだいぶ複雑度が高い)
229名無し募集中。。。:03/02/08 12:56
>>228
読み切るために必要なスペースは読みの長さに比例する分だけで十分ですよ。
その考えを当てはめるなら読み切るのに必要な手の列の長さが
記憶のためのスペースを越えたときのみ読み切れなくなると思います。
230229:03/02/08 12:58
名無し募集中。。。とかで書いてるし
231デフォルトの名無しさん:03/02/08 13:05
>>229
(・∀・)ニヤニヤ
232208:03/02/08 13:05
>>229
えーとオセロとか囲碁とか「収束型」ならそうだけど
将棋はループすることがあるから状態数かと思ってた

でもそういわれると何か自信がなくなってきました…
233名無し募集中。。。:03/02/08 13:08
記念パピコ
234名無し募集中。。。:03/02/08 13:12
( ‘д‘)<プログラム板初パピコ
235デフォルトの名無しさん:03/02/08 13:18
>>232
ループしているか(同一局面か)をチェックすればイイだけでしょ。
236デフォルトの名無しさん:03/02/08 13:22
>>235
どうやってチェックするの?
スペースを使わずにできること?
237デフォルトの名無しさん:03/02/08 13:23
>>232
ループしてるかをチェックするために、過去の手を全部記憶しないといけない。
同じ局面にならずに手が進行していく長さの最大数は、状態数のオーダーであ
る可能性はある。
238デフォルトの名無しさん:03/02/08 14:09
いままで探索した手を全て対象としてループしているかをチェックしてもさしたる意味もない。
初手から現在のカレント局面までにおいてループしているかをチェックするだけで十分。
239名無し募集中。。。:03/02/08 14:13
記念パピコ
僕の脳の広さは無限大ですよ
241デフォルトの名無しさん:03/02/08 14:25
>先手必勝・後手必勝・引き分けを見極めるためには、
>可能な状態を列挙してそれに対する結果をすべて判定しなければならない
まあ、ここは偏見かな。

ループに関しては、そういう可能性もあるし、
幅優先探索や反復進化といった方法で
解が見つかってしまう事もある。
つまり、健全性が保証されていないと。

>240
それはきみの胃袋の広さの間違いだろ
243デフォルトの名無しさん:03/02/08 14:26
http://bbs.1oku.com/bbs/bbs.phtml?id=yasuko
★もうすぐ春ですよ★
この宇宙自体が僕の脳の中で、お前らは僕の想像物なんですよ?
毎日、2ちゃんをやってるクズだけど可愛い僕の想像物なんです
245デフォルトの名無しさん:03/02/08 15:05
粒子や宇宙が将棋と関係あるのか?
大きく捉えすぎてないか?
>245 アフォ
探索するには記憶領域が必要だ。
将棋の探索空間を全て記憶させるという場合には、例えば原子1個に1ビット記憶できたと仮定しても、
宇宙の原子の数よりも探索空間が大きければ、物理的に記憶できないことになる。
探索空間すべてを記憶することは「できない」という前提なんだからいいじゃん。
248774予測:03/02/08 15:45
ルール上合法かつ人間同士では絶対にありえない無意味な千日手を省けば
将棋も実質的には収束型であるといえるでしょ。
249デフォルトの名無しさん:03/02/08 15:59
収束までの手数が、ありうる局面数に近いオーダーの可能性があるわけだな。
そして、ありうる局面数は宇宙の素粒子を越えると。
んだから、時間がいくらあっても将棋の結論をPCでは計算できないと。
つーことやね、。
250249:03/02/08 16:01
んで、本当にそうかというと、杓子定規に全探索をするならそうだけど、
現実上考慮しなくていい分岐を削減する方法があれば、悲観することもなかろうと。
251デフォルトの名無しさん:03/02/08 16:03
考慮しなくてよいかどうかは、実際に探索してみないと判明しない。
252249:03/02/08 16:13
>>251
やっぱしそうかね。
76歩−84歩−44角−同歩
でも先手必敗であることの証明はできんわな。で実際予想つかんわな。
このスレの存在自体あってはならないのだよ
神の領域を侵すことになるやもしれん
>>251
形式だけみてれば全検索しかありえないけど
意味的に枝刈りできないことが証明されたわけではない。
とか抗弁してみたり。
255249:03/02/08 16:26
詰め碁だったか、数学的には解くことができない
(=全探索しか方法がない)という証明があって、
ある条件を満たすゲームはその定理が成り立つ、って話が
あったな。ちゃんと知ってる人いない?
最強は無理ってことでOK?

終了
>>256
話が理解できてないみたいだから失せてていいよ。
258デフォルトの名無しさん:03/02/08 16:45
>>252
皮肉のつもりだろうけど、その局面だって人間は経験的に負けだって知っているだけ。
つまりその局面の先を人間が探索した結果負けだって知ったということ。
多少局面が異なれば、その手順では負けの局面だってある。
将棋では、駒の配置が一カ所違うだけとか、持ち駒が一枚違うだけとかで、勝ちと負けが分かれる局面なんて珍しくもない。
その例でいうと、人間による知識の蓄積をデータベースとして登録しておくってことになるだろうが、
気が遠くなるような探索空間において、そんなことを行っても焼け石に水で無意味だろう。
259デフォルトの名無しさん:03/02/08 16:49
>多少局面が異なれば、その手順では負けの局面だってある。

多少局面が異なれば、その手順では勝ちの局面だってある。
いきなり将棋でやるから駄目なんだよ。
とりあえずオセロ調べて次は5x5将棋にしとけ。
>>256
誰も作っちゃいないんだから無理にきまってる。
ここは口だけスレですから。
口先だけが集まると楽しいね。
何も考えずに発言できるから。
じゃ、○×ゲームの最強プログラムから始めましょうか
>>263
#include <stdio.h>
int e=5,t,m,r,b[2],a[]={7,56,73,84,146,273,292,448};w(int b){for(r=t=0;t<8;
t++)r+=(b&a[t])==a[t];return r;}s(int l,int p){int i=1,c=0,n=-1;for(;i<512;
i*=2)if(!(i&(*b|b[1]))){c=1;if((w(b[p]|i)?r:(b[p]|=i,r=-s(1,!p),b[p]^=i,r))
>n){m=l?m:i;n=r;}}return c*n;}main(){while(!r){s(0,1);b[1]|=m;for(t=0;t<9;t
++)putchar(*b&1<<t?'X':b[1]&1<<t?'O':'-'),t%3&2?puts(""):0;if(!(r=w(b[1])?4
:--e?0:9)){scanf("%d",&t);*b|=1<<t;}}puts("win\0lose\0draw"+r);return 0;}
七行スレのを少し変えたも
じゃ、終わりでいいね?

終了
266デフォルトの名無しさん:03/02/08 21:23
>考慮しなくてよいかどうかは、実際に探索してみないと判明しない。
まあ、それを証明しないと事実はわからない。

>詰め碁だったか、数学的には解くことができない
>(=全探索しか方法がない)という証明があって、
そんなのはなかったと思うけど。
ヨセは数学的にやる方法が確立してるみたいだけど。
無条件生きのアルゴリズムなんかもあるみたいだしね。
一番簡単なのは2眼のチェックだけどさ。

将棋でも、それが必勝なのかどうかを探索しなくても
必勝であると言える局面が存在する。
それは次の手で王を取ることができる局面。
この局面に持っていけば、必勝である。
次に、相手がどんな手をとってもこの局面に移行するのであれば
それも必勝局面である。
まあ、探索を反対からたどっているわけだけどさ。

あとは、確率的に必勝戦略を発見するアルゴリズムがあると仮定すると
必勝戦略と思われるものがあったとき、それを必勝かどうか
判定するアルゴリズムがあれば、必勝か必負けかを判定できる。
もちろん、引き分けは無理だけど
ループを禁止すれば引き分けは起こらない。
従って、先手必勝か後手必勝になる。
よって、全探索をしなくても必勝戦略は見つかる。
プログラムが組める=将棋がヘタレ
将棋で先が読める=PCオンチ

バリバリのプログラマーが、アマチュアの有段者である例は少ないと思う。
仮にそういう人がいても、優秀なアルゴリズムを発案できるかどうか。
268デフォルトの名無しさん:03/02/08 21:52
ま、協力すればいいだけ。
269デフォルトの名無しさん:03/02/08 22:40
>>266
まあ必勝戦略を発見するアルゴリズムの存在を仮定しちゃったんだから
必勝戦略が見つからないと困るわな
270デフォルトの名無しさん:03/02/08 23:00
>>238
いや、初手から現在までの局面というが、状態数の数だけ同じ局面にならず
に手が進行する可能性がないとはいえないでしょ?ってこと。
深さ優先で読むとしても、深さの最大値が状態数でしか制限できないから。
がんばれば数学的に証明できるのかもしれないけど。
まあ、どうでもいい話。
…(´・ω・`)
272デフォルトの名無しさん:03/02/08 23:26
>>228
8bitで、256通りあらわせるよ。
273デフォルトの名無しさん:03/02/08 23:30
将棋で必勝戦略ってあるのか?
274デフォルトの名無しさん:03/02/08 23:40
そして堂々巡り
275デフォルトの名無しさん:03/02/09 01:03
やっぱ"最強"は無理か…
最強の将棋のプログラム同士で戦わせたら千日手で終わる予感
277デフォルトの名無しさん:03/02/09 01:34
最強同士を戦わせたら、振り駒の結果だけで一方が投了する。
278デフォルトの名無しさん:03/02/09 01:34
>>276
先手が避けようとする
最強のCPUは初手から格の違いを見せつける
280デフォルトの名無しさん:03/02/09 02:07
>>277
何手詰めですか?
281デフォルトの名無しさん:03/02/09 02:21
連続王手では無いのだから、XXX手詰めっていうことは無いと思うがいかかかな。
282デフォルトの名無しさん:03/02/09 02:31
272 :デフォルトの名無しさん :03/02/08 23:26
>>228
8bitで、256通りあらわせるよ。

そういえば、そうだったな。
この事実に誰も気づかなかった・・・

>まあ必勝戦略を発見するアルゴリズムの存在を仮定しちゃったんだから
確率的な発見でしょ。
要するにヒューリスティックな評価関数に従って
探索をしてみると、どうも必勝戦略っぽい
という事。
何だ?
272==282なのか?
新手の釣りなのか?
まぁ取り敢えず>>222読め
284デフォルトの名無しさん:03/02/09 02:58
将棋で引き分けってどういうときに起こるの?
>>284 待将棋
286デフォルトの名無しさん:03/02/09 03:03
つか、メモリスペースに関して
素粒子の数がとか言ってるけど、
関数にしてしまえばいいだけでしょ。
平たく言えば、圧縮して保存。
(局面、{-1,0,1})
というデータがあったとき
(局面、1)となっている
局面に関して特長を抽出して保存するでしょ?

あとは動的プログラミングすればいいだけ。
287デフォルトの名無しさん:03/02/09 03:17
>284
持将棋または千日手

>>286
プログラム実行中に、out of memory
288デフォルトの名無しさん:03/02/09 03:19
>>287
千日手は引き分けって言うのか??
289デフォルトの名無しさん:03/02/09 03:21
>>288
きみはルールも知らないでここに参加しているのか
290デフォルトの名無しさん:03/02/09 03:21
>プログラム実行中に、out of memory
何でメモリが関係あるんだ?
必要なメモリスペースはスイープする時と
関数近似のみだけど。
291デフォルトの名無しさん:03/02/09 03:28
>>289
先手と後手が入れ替わるんだろ?
292デフォルトの名無しさん:03/02/09 03:31
>>291
プロの公式戦では、持将棋、千日手両方とも指し直しだろが。アフォ。
293デフォルトの名無しさん:03/02/09 03:37
>>292
指し直しなんだろ?
将棋の勝敗で2勝3敗1引き分けってあり得るの??
294デフォルトの名無しさん:03/02/09 03:39
>>293
お子様はここでも読んで勉強しなさい。
http://www.shogidojo.com/dojo/faq/draw.htm
295デフォルトの名無しさん:03/02/09 03:40
>293
おまえこの前の竜王戦も知らないのか。馬鹿すぎ。
296デフォルトの名無しさん:03/02/09 03:53
>>295
この前の竜王戦って15期でしょ?
ネットで調べたら4-3で羽生って書いてたよ!
まぁ、千日手は2回(だっけ?)あったらしいけど…。
千日手は対局数にカウントされないけど、持将棋はカウントされるんじゃなかったっけ
298デフォルトの名無しさん:03/02/09 04:09
要するに持将棋も千日手もどちらも引き分け。
これに異論がある香具師はいるかい。
>>298
千日手は直感的に引き分けと言うのも納得出来ますが
持将棋は何で引き分けなんでしょうか?
互いに入玉しても、詰むまで続ければ良いと思うのですが
何か合理的な理由でもあるのでしょうか?
このルールが決まった詳細キボンヌ
>>299
と金とかで、だらだら長くなるからだろ。
301デフォルトの名無しさん:03/02/09 04:44
持将棋がカウントだとすると、
7番勝負で最初に2連続持将棋なら3勝でタイトルゲット?
7番勝負とは勝ち負けが7番なのだから引き分けは関係ない
303デフォルトの名無しさん:03/02/09 05:12
>>299 は釣りだろ。
>>303が釣り
>>299
君の直感は正しい。
持将棋も残った持ち駒の種類によって勝敗は決まる。
龍と馬を4枚持っているならば特定の手順を繰り返し、敵のと金を作る
空間を減らして最終的に制圧することが出来る。

将棋のルールは変わるよ。
306デフォルトの名無しさん:03/02/09 06:59
>>305
あああああああああああああほ。
大駒4枚持っているってことは、それだけで20点だぞ。
最強同士で戦わせたら毎回どっちかが1手で投了するんだろ?
308デフォルトの名無しさん:03/02/09 07:27
>>307
引き分けの可能性もあるというてるやろ。
309デフォルトの名無しさん:03/02/09 07:44
とりあえず糞ゲーだな
310デフォルトの名無しさん:03/02/09 13:04
千日手は引き分けではありません。

http://www.shogi.or.jp/kisenhyo/ryuuou.html
をご覧下さい。

持将棋の際には、勝敗に4(1持)3と表記されていますが、
千日手が起きた場合にはそのような表記はございません。
つまりこれは、千日手は引き分け扱いされていないことを意味します。

要するに、
持将棋→次の対局へ(指し直しではない)
千日手→先手と後手を入れ替えて指し直し。
ということです。
311デフォルトの名無しさん:03/02/09 13:47
実は
>>266 >>272 >>282 >>286 >>290
あたりが何を言いたいのかよくわからない解説キボンヌ
312デフォルトの名無しさん:03/02/09 15:38
8bitで256通りがわからない奴は
ム板に来る資格がないと思うよ。

確立的っていうのは、高卒には無理ぽ
313デフォルトの名無しさん:03/02/09 20:10
>>312
8bitで256通り表せても、8bitで256個の状態を表せるわけじゃないでしょ?
314デフォルトの名無しさん:03/02/09 20:13
>313
意味不明。
言葉遊びはやめよう。
315デフォルトの名無しさん:03/02/09 20:17
>>314
>>272>>228に対してのレスだってこと踏まえれば意味はわかると思うが。

だからさ、8bitで256通り表すことはできる。
でもさ、8bitで256個の局面について勝ちか負けかってことを記憶できる
わけではないってこと。引き分けないとしても、2^256の場合があるわけ
だから256bit必要だよね。
316311:03/02/09 20:29
>>312
さすがにそれはわかりますヨ!
あと2ch用語だったら自分の方が恥ずかしいけど「確率」だと思います。

>>313 >>315
おお!一つ解決。bit の意味を誤解していただけか…
真面目に考えて損しました。ありがとさん。

ということは >>266=282 は…
317デフォルトの名無しさん:03/02/09 20:36
>>315
勝ち局面だけ記憶すると、かなり減りそうだね。


318デフォルトの名無しさん:03/02/09 20:41
>>315
なるほどね、そういう意味で書いたのなら了解。ただ定義が微妙だが・・・
たとえば進行する各局面(フェーズ)を勝ち負けの1ビットで表現するなら、
負け以降を表記する必要があるのか?無ければ積み上げ(カウント)で
いいことにならないか? その場合、256順目までを8ビットでカウントできる。
意味があるかは別として。
深さ優先で読んでいる最中は(速度を考慮しないなら)
局面の勝ち負けではなくて、その局面のバウンドとどの手まで読んだか
を記憶しておく必要があると思うのだけど。
320デフォルトの名無しさん:03/02/09 20:53
>その場合、256順目までを8ビットでカウントできる。
>意味があるかは別として。
俺も一瞬そう思ったけど、
それは情報圧縮をした時、そういう意味に近づいていく。


>バウンドとどの手まで読んだか
バウンドって何?
どこの用語?
>>320
αとβの値のことだけど。
322320:03/02/09 21:00
なるほど。
あんがと。
でも、なぜにバウンドなんだろ。
境界値の意味で使ったわけだけどおかしかったのかも知れない。
324デフォルトの名無しさん:03/02/09 21:10
境界値ならボーダーだと思われ
大抵upper bound、lower boundって使われてたから
これが標準なのかなと思ってた。
326デフォルトの名無しさん:03/02/09 21:18
upper boundは上界だね。
数学の世界ではよく使うよ。
327デフォルトの名無しさん :03/02/09 21:21
どーでもいいことだが
「最強である」ことを証明するにはどうすれば良いのか?
>>327
全ての対局に勝てば良い。
とりあえずは現行のソフトと対戦して全勝し、
プロと対戦して全勝することでしょうね。
329デフォルトの名無しさん:03/02/09 22:22
またキチガイの>>310が暴れているね。
馬鹿は氏になさい。
330デフォルトの名無しさん:03/02/09 22:31
>>310は下記を9999999回読みなさい。
読み終えたらここで報告しなさい。

http://www.shogi.or.jp/osirase/qa.html
質問
連続王手の千日手というのは反則なのですか?
お答え
連続王手で同一局面が三回生じた場合は、王手をかけているほうが、手を変えなくてはなりません。
王手をかけつづけて、同一局面が四回生じた場合は、王手をかけ続けたほうの負けとなります。
全部の手が王手でない場合は、
通常の千日手と同様に引き分け
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
となります。 
331デフォルトの名無しさん:03/02/10 01:40
千日手成立が3回は少ない。千日繰り返さないと。
332デフォルトの名無しさん:03/02/10 04:01
チェス名人、コンピュータと引き分け
http://www.zdnet.co.jp/news/0302/08/nebt_16.html
千日手と持将棋周辺のルールについて補足させて下さい。
「プロ棋戦では、千日手は引き分け指し直し、持将棋は一局と見なす。」
となっていますが、これはあくまでプロの都合による一種のローカルルールです。

記録の上だけ見れば、実際には千日手と持将棋は殆ど扱いは代わりません。
先後を入れ替えて指し直すだけです。
ただし、タイトル戦等で旅館・ホテルで行われている場合は深夜に即日指し直しは
難しいため、「仕方なく」持将棋を一局と見なす訳です。

つまり千日手だと序盤の数十手で引き分け、となる場合もあるのに対し、
持将棋は200手を超える事もざらで、これだけ指せば棋戦の主要スポンサーである
新聞社が棋譜を紙面に掲載するに足る、と考えられるからです。

ちなみにアマの大会の場合は千日手は指し直すが2連続千日手は抽選(つまりクジ)、
持将棋は27点法を使って必ず決着を付けるようになっている事が多いと思います。

さらに蛇足ですが持将棋ルールって本当は必要ありませんよね。
将棋の盤面は有限なのでお互いの玉が詰まないまま指し続ければ必ずいつか
千日手ルールに引っかかりますw
要は人間の体力や時間を無駄にしないための便宜ルールで、
遠い未来ののコンピュータ将棋選手権においては持将棋ルールはきっと不要でしょう。
>抽選(つまりクジ)、
つまり「抽籤」だろ?
335デフォルトの名無しさん:03/02/10 23:00
せいぜい深さ100手程度の探索木を作成すれば人間なんて絶対に勝てないだろう。
簡単だろ。
336デフォルトの名無しさん:03/02/10 23:48
100手なら、悉皆探索空間はpow(100,100)か。
非常にうまく枝かってpow(10、100)か。
けっこう大変ぽい。
トライルールってのが在るらしい
持将棋より良さそうだけど、どうだろう…
338デフォルトの名無しさん:03/02/11 01:08
正直、先ちゃんの考えることは浅はかだと思う。
339デフォルトの名無しさん:03/02/11 04:14
MTD(F)とか共謀数の良さが今ひとつ分からんなー
340デフォルトの名無しさん:03/02/11 04:38
>>339
それは相当頭悪いからだろ。
共謀数の意味をちゃんと理解しているのか。
MTD(f)って究極のウインドウ探索みたいなやつだけど
実際に使ってる人っているのかね?
初期値が正確ならばかなり有効っぽいけど、
再探索しまくるので、手の生成に時間がかかるプログラムだと
逆効果の気がしないでもない。
http://www.cs.vu.nl/~aske/mtdf.html
342デフォルトの名無しさん:03/02/11 12:21
ちょっと理解できなかった。
なかなかいいページだと思うので、今度じっくり読んでみます。

>>341
グッジョブ
343デフォルトの名無しさん:03/02/11 14:22
じゃー、MTD(F)とか共謀数について
良い資料とかページUPするかい

【共謀数】
・「コンピュータ将棋の進歩2」

【MTD(f)】
http://www.cs.vu.nl/~aske/mtdf.html
一応簡単に説明してみると、
共謀数は基本的に詰め将棋用に使われてる。
証明数と反証数とかいう名前で使われてるけど。
http://www.ipsj.or.jp/members/SIGNotes/Jpn/16/2000/075/article002.html
会員にならないと読めないのがけち臭い情報処理学会。図書館で探してくれ。

MTD(f)は、NULLウィンドウサーチをかけて、最終的に返ってくる評価値が、
そのウィンドウ値より上か下かを判断するっていう手法だね。
基本的に将棋プログラムで使われた例はないはず。
MTD(f)説明不足だな・・・。
上か下かで絞り込んで、どんどん正解の評価値を絞り込んでいく。
で、ぴったりとあたっていたNULLウィンドウサーチ(幅1の窓での探索)をかけた
ときの最善手が、最善手だという手法。多分。
346デフォルトの名無しさん:03/02/11 15:47
http://tt.sakura.ne.jp/~suzu/search_problem/index.html
このページはMTDを説明する予定みたい(日本語)
347デフォルトの名無しさん:03/02/11 16:09
共謀数は詰将棋に良く使われるけど、
通常の探索では使えないもんかね?
348デフォルトの名無しさん:03/02/11 16:22
共謀数を用いた探索は
最良優先探索と反復深化の良いところを組み合わせた探索とある

ってことで、
最良優先探索と
反復深化が分かってれば実装できそうな気がするなー。

反復深化
http://tt.sakura.ne.jp/~suzu/search_problem/i_deepening.html

最良優先探索
http://kyu.pobox.ne.jp/softcomputing/ai/ai3.html

ってとこかな。
最良優先探索はメモリ使いまくりそうだねー
349デフォルトの名無しさん:03/02/11 16:35
普通に反復深化でやるときもメモリは使えるだけ使った方が
速くなると思います。
前回探索した局面の最善手を覚えておかないと
反復深化のメリットの半分が失われてしまいそうですからね。
350デフォルトの名無しさん:03/02/11 16:53
前回探索した局面の最善手覚えてこそ反復深化が生きてくる訳なんすけど、
結局のところハッシュテーブルの登録&検索方法が肝になってきそうっすね。
共謀数ってのは、その評価値がどの程度安定しているか、
ということを示した数字で、簡単なイメージでは1手だけ突出した手が存在する
場合に、それをどんどん深く読んでいく、という感じになると思う。
もっと簡単に言うと「変化の少ない手を深く読む」といえるのかな?

それが詰将棋探索の場合には「王が逃げる手の数」を評価値に使っているので、
結果的にAND/OR木の「証明数」という概念と同じになっているんじゃないかな。
実際は合駒処理などで逃げる手の数を誤魔化して処理しているのでまったく等価
とは思えないけど。
352デフォルトの名無しさん:03/02/11 17:55
結果的に同一というのは正しいかもね。
詰め将棋は「詰む」「詰まない」「詰むか詰まないかわからない」の3種類しか
状態が考えられないから共謀数的な発想でも上手くいくけど。評価値は離散的だし。

共謀数で、ABC searchっていう共謀深さっていう概念使った手法あったと思うけど
この論文真面目に読んで理解した人っている?
今ひとつ、よさがわからなかった。
>「詰む」「詰まない」「詰むか詰まないかわからない」の3種類

これって評価値に直すと
0,1,2,3, ... +∞
「詰む」=0,「詰むか詰まないかわからない」,1〜,「詰まない」+∞
になるわけで「詰む」「分からない」の間が0,1,2で表されるに対して
「分からない」「詰まない」の間はいきなり+∞になるのでいびつな気もするね。

んーそれを補正するために「王手の数」を利用したPDSが有効なのかも。
詰め将棋の場合は、詰むか詰まないかさえわかればいいと考えるから、
いびつになるとかいう事にはならないわけで。
「詰む」=+∞ ,「詰むか詰まないかわからない」0,「詰まない」-∞
と考えてる事になる。
355デフォルトの名無しさん:03/02/11 21:31
おまえら、共謀数を正確に理解している香具師が一人もいねえじゃねえかよ。
おまえら、ここでうだうだ言う暇あったら、コンピュータ将棋の進歩の全巻ちゃんと嫁よ。
そして正確に理解すれ。
でないとレベルが低すぎて話にならん。
356デフォルトの名無しさん:03/02/11 22:42
>>335
解説してくれー

情報処理学会に入れば、オンラインで論文読めるんだっけ?
電気電子情報学会じゃだめなんだっけ?
357デフォルトの名無しさん:03/02/11 22:48
>>335
私も解説してほしっす
どうやったらあの何百手もある詰め将棋が解けるのが
分からんです。

358デフォルトの名無しさん:03/02/11 22:49
この情報は変ですよね?

http://sagisou.sakura.ne.jp/~deai2/cgi/rank.cgi?fdeai
359デフォルトの名無しさん:03/02/11 22:57
>>358
この電話番号にかけるとどこへつながるのやら
360デフォルトの名無しさん:03/02/12 04:26
バージョンの違う自分のソフトを連続対戦させて
60戦40敗とかでて「勝率上がった」ってよく聞くんですけど、
同じ局面の場合同じ手打ちそうな気がするんですけど、
どうやってランダム的に打たせるんですかね?

>>360
人間の対戦の棋譜ひっぱってきて、15手くらいから対戦開始とか。
評価値に乱数いれてもあんまり打つ手変わらないし。
将棋は指してください
>>362
ごめんなさい。定石とかいったらやっぱダメですか。
プログラミングする以前の問題だなw
365Y3 ◆ncKvmqq0Bs :03/02/12 22:38
おいおまえら、なんで共謀数を使うと長手数の詰め将棋が解けるのか
解説でける家具師はいるのかよ。
えらそうなこと書いてきた君はどうなんだね。
おれか、おれはもちろんそんなの簡単さ。
366デフォルトの名無しさん:03/02/12 23:09
>>365のために説明してみる。
詰め将棋で共謀数を使ったときは、「この局面を詰みだと証明するにはあと、最低でも何局面を詰みだと証明しなければいけない」っていう数(証明数)になるのね。
攻めて手番の局面のときは、可能な手の中で一番証明数が小さい局面を証明すればいいんだから、子ノードの一番少ない証明数が証明数になる(日本語ムズイ)
玉方の手番の局面のときは、可能な手すべてを詰みだと証明しなければいけないから、子ノードの証明数の和になる。

で、結局何してるかっていうと、詰むと証明できそうなところから順に読んでいってる。深さ優先で最良優先探索ができるようになるのね。
だから長手数の詰め将棋もとける。
#図を使わないで説明するのは無謀だと思った。
367デフォルトの名無しさん:03/02/12 23:14
で、結局証明数の使い方が何も書いてなかったことにきづいたので補足すると。
攻め方の手番において、どれを先に読んでいくかを考えたいとする。
このとき、証明数が一番小さいものから読んでいく。
子ノードの探索を続けると証明数が増えることがある。
で、増えた結果親ノードの兄弟ノードの方が証明数が小さくなることがある。
こういう場合は、そこまで戻るわけ。
で、このときに重要なのは深さ優先で探索を続けているときに、「今探索しているノードの証明数が
何以上になったら親のノードの証明数が兄弟ノードより大きくなるか」っていうのがわかってるのね。
だから、その数を超えるまで深さ優先っぽく探索を続けていけるというわけ。

で、「詰まないと証明するために、詰まないと示さなければいけない局面の数」っていうのが反証数って
いうんだけど、これは玉方の手番のときにどれを先に読むかを決定するのに同じように使う。

何か誤解してるところあったらフォローよろ。
368Y3 ◆ncKvmqq0Bs :03/02/12 23:45
>>366-367
は書籍・論文の要約の域を出ておらんな。
もちっと庶民でも理解できるように、要点を的確に述べることができる家具師はおらんのかな。

一般市民町民は>>366-367の説明で理解でけたか?
庶民に理解って・・・無理だろ。
強いて要約すれば、

この場合共謀数っていうのは、「ある局面を詰みだと証明するために、詰みだと証明しなければいけない局面の数」になる。
で、攻めるときにどの手から読むのかを決めたいってときに共謀数が少ない手から読んでいく。
で、どれくらい頑張って諦めるかっていうのも、探索した結果、上の方の共謀数がどれくらいになったかで判断。

説明になってないな(笑)。
370デフォルトの名無しさん:03/02/13 00:28
>>366-367
めちゃくちゃわかりやすかったよ。
まあ、将棋に関してはあまりよく知らないから
証明数とか反証数とか知らなかったけど、
読んだらわかったよ。

かなり感謝。

要するに、詰みを証明するには
証明しなきゃいけない手筋が減っていかなきゃならない。
なのに、収束せずに発散に向かっていくならば
それは証明できない。
従って、他の手筋を考えなくてはいけない。
って事だね。

もっと直感的に書けば
勝っている将棋で難しい局面に自分から持っていかないという事
でいいかな?
将棋は素人なのでよくわからんけど。
371デフォルトの名無しさん:03/02/13 00:31
これは完全に詰めるための探索方法だけど

もし、探索して詰める手順が見つからなかったとき
どうするんですか?
評価関数に基づく探索?
そもそも、どういう局面で詰めの探索を行うのかな?
判定を行うアルゴリズムがあるのかな・・・

現実的なアルゴリズムがあれば教えてください。

妄想のアルゴリズムを紹介してくれる人がいれば
妄想だという事を事前に教えてね。
372Y3 ◆ncKvmqq0Bs :03/02/13 00:34
>>370
残念だが、まったく違っている。
373Y3 ◆ncKvmqq0Bs :03/02/13 00:37
やはり、一般庶民には理解できていない模様だね。
374デフォルトの名無しさん:03/02/13 00:49
ネット上で転がっている証明数の説明の中で
一番分かりやすかったっす。

私的にはかなり感謝っす
375デフォルトの名無しさん:03/02/13 01:04
>>372
どこが違うのか指摘しないと、説得力ないですよ
Y3◆ncKvmqq0Bsは口だけですねw
>>371
評価関数による探索が基本。
でも、王手がかかる場合は詰むか詰まないかで大違いだから。
読んでいる局面において王手がかかれば詰み探索をかける。
でも、実際問題として全部詰みを読みきれないので、簡単に読めなければ諦めることも多々。
378Y3 ◆ncKvmqq0Bs :03/02/13 02:42
それでは釣り氏に釣られてみるか。
ではおいらが説明をすることにしよう。

その1
詰め将棋ってのは、王手をし、その王手を回避しての繰り返しだ。
攻め方は、複数の王手可能な手から有力そうな手を選択して王手する。
玉方は、一番詰められなさそうな回避手を選択する。

ある局面において、詰むことを証明するには、
攻め方は、詰みになる1手を示せばよい。
例えばその局面で、5手の王手可能な手があったとしても、他の4通りの王手が詰みであるか不詰み
であるかを示す必要はない。
そして、玉方の可能手全てにおいて、詰みであることを示さなければならない。
従って、玉方の手生成は、基本的に全検索となり工夫の余地がない。

つまり、詰め将棋を速く効率良く解くためには、攻め方がいかにしてより詰みそうな手から検索するか
に依るということができる。
効率的な、詰みの可能性の高い手を先に生成する関数を作ることができれば、共謀数による検索よりも
ずっと優れたプログラムとなる。
379Y3 ◆ncKvmqq0Bs :03/02/13 02:58
その2
しかしながら、詰将棋において、どの王手が詰み易いのかをどのようにして判断するのであろうか。
そう、判断のしようが無いのである。
別の言い方をすれば、どの手で詰むかわからないから、コンピュータで詰手順を探索しているのである。

悪いが、もう寝ないと起きられなくなるので、
この続きは明日って・・もう今日か、・・・の夜に書き込むからね。
もう3時だったのね。やば!
折角だからちょっとつっこんでみよう

>そして、玉方の可能手全てにおいて、詰みであることを示さなければならない。
>従って、玉方の手生成は、基本的に全検索となり工夫の余地がない。

それでも、詰まないってことが早めにわかる価値はあります。
だから、玉方でも、反証数を使って詰まない可能性が高いところから読んでいきます。
実際に反証数使うことでパフォーマンス向上することは確かめられてます。

>効率的な、詰みの可能性の高い手を先に生成する関数を作ることができれば、共謀数による検索よりも
>ずっと優れたプログラムとなる。

詰みの可能性が高いってだけじゃ十分じゃないかと。
詰む確率は高い。でもたくさん計算しないと詰むと証明できない、ってこともありえる。
共謀数のいいところは、この詰むと証明するのにかかるコストっていうのを評価している点。
>>379
将棋ソフトによっては、「詰み易い」っていうヒューリスティックを使って共謀数を使った
探索を効率化することもしてます。「玉頭に利きがあって金を打つのはいい手だとか」。
結局ヒューリスティックに頼ることになるのですが、それなりに効果はあるようです。
>>379
判断のしようがないと言う事はありませんよ。
例えば「玉方の選択肢が少ない王手は詰みやすい」なんてのがあります。
言い換えると、玉を狭い方に追いつめる変化は詰む可能性が高く、
玉が大海に逃げ出す場合は詰ましにくい。

人間が詰め将棋を解くときの方法と近い手法ですね。「この王手は
玉の逃げ方がたくさんあるから読むのは後回しにしよう」というヤツです。
もちろん、これの裏をかいた詰め将棋もある訳ですが。
383デフォルトの名無しさん:03/02/13 06:40
お前らこれをプログラムして下さい
http://game.2ch.net/test/read.cgi/bgame/1044848739/
>>330
>だから、玉方でも、反証数を使って詰まない可能性が高いところから読んでいきます。
>実際に反証数使うことでパフォーマンス向上することは確かめられてます。
たしか、ちょっと前に『df-pnアルゴリズム』の解説で見た気がするなぁ。
有名な『脊尾詰』より高速に殆どの問題を解いたとか書いてあった。
今は、みんな反証数を使ってるのかな?

玉の8近傍における相手の利きを調べる事で、「詰みの難易度」は
多少解ると思われ。
もう、最強の将棋をプログラムしちゃったけど、
まだ君らできてないみたいだから見せてあげるのはやめとこう
正直、最強のプログラム作ったんだけど
先手と後手で戦わせてまだ決着ついてないから見せられない
今のところ先手が優勢っぽいけど何ともいえない
387デフォルトの名無しさん:03/02/13 21:30
>残念だが、まったく違っている。

結局どこが違うのかわからないままだなw

>そう、判断のしようが無いのである。
あるけど、わからないだけだね。

探索をする理由は、
関数が100%の精度で答えを出さないからでしょ。
詰むなら1、詰まないなら0を返す、評価関数があれば
その通りに打てば詰む。

つーか、偉そうにその1その2とか言って書いてるけどさ、
その程度の事はみんな知ってるんでない?
あるいは、ちょっと考えれば素人でもわかりそうだけど。

というか、逃げた??
388デフォルトの名無しさん:03/02/13 23:39
まあまあ、そんなに熱くなりなさんな。
>>385
見せなくて良いから(見せられてもどうせわからんしw)、
さっさとソフトを開発してるところに持ってくなり、
自分で発表するなりしてくれ。買うから。
>>389
つられんなよ。
そういう俺も最強将棋プログラム、もうつくったわけだが。
激指の作者は2ちゃんねらーではないのか、という疑惑があったな。
(2ちゃんで人気のばんかなを読み上げに使ったところから)

つまり2ちゃん出身の最強将棋プログラムはもうできている。
よって1は北朝鮮を激指の作者にあげること。
2ちゃんねるを1度でも見たことある、というだけなら
ネット人口の9割以上が2ちゃんねらーと思われ。
プログラマの2ちゃんねらー率は高いだろうな
…(((;゚Д゚)))…>>392は真性ですか?
>>391
人間にも勝てないと最強ではないだろ
396デフォルトの名無しさん:03/02/16 02:15
この人は、自分のミスに気づいたみたいだねw

379 名前:Y3 ◆ncKvmqq0Bs 投稿日:03/02/13 02:58
その2
しかしながら、詰将棋において、どの王手が詰み易いのかをどのようにして判断するのであろうか。
そう、判断のしようが無いのである。
別の言い方をすれば、どの手で詰むかわからないから、コンピュータで詰手順を探索しているのである。

悪いが、もう寝ないと起きられなくなるので、
この続きは明日って・・もう今日か、・・・の夜に書き込むからね。
もう3時だったのね。やば!

397デフォルトの名無しさん:03/02/17 01:17
もうすぐはーるですねー

って事で、厨房が来ちゃったのか。
398デフォルトの名無しさん:03/02/17 02:30
そんなに突っかかってくるということは
よほど頭にきたみたいだね

まー、ちょっと落ちつきな
お、再登場でつか?
400デフォルトの名無しさん:03/02/17 10:51
>>278
避けようとすると、先手が負けるから、千日手になるんじゃねーの?最後まで読んでるんだろ?
401272:03/02/17 10:55
>>283
わたしは、282ではありません。

で、
>>228は、
>どんなに多く見積もっても、素粒子一個につき一つが限界だろう。
といってるけど、ここが間違ってるんだね。つまり、わかってないってこと。そのくせして222にありがととかいってる。222は、わかってるね。
402272:03/02/17 11:04
>>315
でもだね、bitが増えてきたら1bitで、一つの局面をあらわせるようになるよ。
たとえば、はじめから8bitまでが、駒の種類をあらわし、次の8bitがその駒の場所を表し、つぎの8bitが別の駒の種類をあらわし、さらにその次の8bitが、その駒の場所を表しってね。
1000bitもあれば全部の局面あらわせるんじゃないの?つまり、宇宙の素粒子のかずも要らないってこと。
>>402
素粒子どうこうは全ての将棋の局面を同時に
保存できるかという話。
しかし、そもそもそんな必要はないのだが。
404272:03/02/17 11:17
>>402
すまん、これは、1つの局面を表すときの話で、この局面の数自体が、爆発するんだから、315は、あってるね。
228もわかってたね。ちゃんと、結果ってところを強調してるから、わかってるって事がわかった。わかってないのは俺だった。すまん。
405272:03/02/17 11:20
>>403
なんで、そんな必要はないんですか?すべての場合を探索しないと、絶対負けない最強なプログラムって作れないじゃないですか。
まあ、必勝の法則を見つけてしまえば、確かにその必要はないですが。でも、それはなさそうですよ。
ありえないような局面を省いたってこと?それでも、相当な数になると思うけど。
>>405
なるべく速く終局に向かうように読みを進めれば
何億手とかそれ以上読み進める必要はないんじゃないかということ。
最悪の場合には局面の数だけ手が続く可能性があるかも知れないけど。
407272:03/02/17 12:11
>>406
すでに、チェスの、スーパーコンピュータ(Deep juniorとか)は、1秒間に、数億手読んでますけど、それでもそれ以外の局面が出てきます。
将棋も同じです。なるべく速く終局に向かうように読み進めても、その通りに進むように期待できるためには相当な数読まなくてはだめです。数億とかそういう次元じゃなく、10^30とかね。
>>407
何手読んだかではなく直線的に何手続くかということ。
これ以上は答えません。
自分で書くなり調べるなりここのログを読むなりしてください。
>>407
かわいそうだと思ったので漏れからもキーワードだけ。
「深さ優先探索」
410デフォルトの名無しさん:03/02/17 14:37
えと、議論がかみあってない点が。

まず、「勝ちか負けか判定する」だけなら深さ優先でいい。
この場合必要な記憶量は、最大深さのオーダー。
でも、この最大深さが素粒子の数を超えないって保障はない。

次に、「最強のプログラムを作る」ためには、最善の手を覚えないといけない。
これに関しては>>272の言ってる話になる。
>>410
あ、わかった。「最強のプログラム」ってのは、
何か適当な局面が与えられた時に必ず最善手を指せるようなプログラムってことね?

そういうプログラムを「超巨大なデータベース」として実現するには確かに将棋のすべて(のオーダー)の局面を保存する必要があるね。
ただ、その超巨大なデータベースが作れる、ってことは、
実用的な時間の間で初手から読み切りができる、ってことだよね。
ということはどのような与えられた局面からでも実用的な時間の間で最後まで読み切れるってことで、
データベースをわざわざ作る必要はないってことにならない?

まあどちらにせよ夢物語的な計算空間or計算時間なのであまり実のある議論にはならんが…
将棋の全状態の数っていくつになるんだろう。
囲碁>将棋>チェス>オセロ
>>413
盤面の大きさ。
>>408-409
囲碁やオセロは「収束型」であり手が進むほど選択肢が限られてきます
また基本的にはオセロは最大60手、囲碁は最大400手(たぶんもっと少ない)
で終局するので深さ優先検索にしても長さの保証ができています

対して将棋はそうでなく(駒の数も減らないし盤面も狭くならない)
手を戻すことでループのような状態に陥ることもあり
また何手で終局するかの予測が全くつかないわけで
結果として幅優先検索と比べてスペース的な節約できるという保証がありません

そういう意味で「状態数」的オーダーみたいな考え方をしなければならない
(かもしれない)という話だと思います

まあ既に過去ログで話題にのぼっていますけどね
そして>>411の言うように実はない話だけどね
>>415
囲碁は400手なんかじゃ終わらないよ。
石を全部取られて、その跡地にまた石を打って、今度は反対側が全部取られて
とかやれば1万手とかは軽く超える。
417デフォルトの名無しさん:03/02/18 21:40
とりあえず、素粒子の数とかはもうどうでもいいよ。
素粒子の数の半分の量であっても、探索なんてできないよ。

探索には限界がある事はあきらかなんで、
そんな事をいちいち主張するな。
で、最強かどうかを示す方法は探索だけじゃない。
N以下の素数の個数を示すのに、Nまでの数字を全部チェックする
バカはいないだろ。
(ルートNまでという意味ではない)

>そういうプログラムを「超巨大なデータベース」として実現するには確かに将棋のすべて(のオーダー)の局面を保存する必要があるね。
これもあやまり。
関数化すればいい。
関数化の意味がわからない奴は、大学で勉強してくれ。
>>416
まともに打てば収束すると思うが。取られない形になれば取られないし。
>>417
バカなのでさっぱりわかりまつぇん。
N以下の素数の個数はエラトステネスのふるいで求めるくらいしか思いつかないし、
その例がどう「最強かどうかを示す方法は探索だけじゃない」に結びつくのかがわかりまへん。
具体的には何を示して最強かどうかを判断しようと?

関数化もわからんなぁ。λ計算の話だよね?
ゲーム木そのものを関数化するのは探索となんら変わらんし。
411の人は「データベースとして実現するには局面全部を保存する必要あり。
ただし、探索するのならその必要なし」
って言ってるんじゃないの?
>>418
完全探索をしようとしてるときに「まともに打てば」はないんじゃないかなぁ。
勝ち負けの完全探索の時にはゲーム木はAND-OR-Treeになるけど、そのANDノードでまともに打たないのも含めて探索しなくちゃいけないわけで。

ところで、素朴な質問だけど、碁石がなくなっちゃったら対局ではどうしてるの?
421デフォルトの名無しさん:03/02/18 23:18
>>417
>>そういうプログラムを「超巨大なデータベース」として実現するには確かに将棋のすべて(のオーダー)の局面を保存する必要があるね。
>これもあやまり。

データベース化するなら、あやまりでないんでない?
そりゃ、例えば回転して一緒になるものとかそういったものを同一とみなすようなハッシュ関数
考えるっていうのはありだろうけど。
そういった事をいろいろしていったとしてもオーダーは変わらないと思う。
必勝手打てるプログラム書くためにはデータベース化は必須ではないのは確かだろうけど。

いずれいしろ現実的な話でないというのは同意。
422デフォルトの名無しさん:03/02/19 00:05
>N以下の素数の個数はエラトステネスのふるいで求めるくらいしか思いつかないし
それは君の知識不足

>具体的には何を示して最強かどうかを判断しようと?
ある局面において、相手がどんな戦略をとっても
勝てるかどうかがわかれば、最強

>関数化もわからんなぁ。λ計算の話だよね?
違う

>データベース化するなら、あやまりでないんでない?
1,2,4,8,16....
という数列をデータベースにして記憶する意味はありますか?
という事。
y=2^x
という関数で書けばいい。

未知の関数はどう書けばいいか
という研究分野があるんで、もっと知りたい人は自分でどうぞ。
423419:03/02/19 00:44
>>422
あーなるほど、そういう関数化なら納得。
もっとも、具体的に将棋の盤面を関数化するにはやはり実用的な定数で押さえられた関数の複雑さでは表現できないような気もするが。
完全な判定器を作る話につながっているとすると、難しそうだなぁ。

あと、「ある局面において、相手がどんな戦略をとっても勝てるかどうかがわかる」ためには、その局面から探索してるんじゃないの?
途中まで作った「完全勝ち負け判定器」を使うかどうかはどうでも良くて、
概念的には探索してるんだよね?

素数が知識不足なのはすまんかった。
424デフォルトの名無しさん:03/02/19 01:06
>もっとも、具体的に将棋の盤面を関数化するにはやはり実用的な定数で押さえられた関数の複雑さでは表現できないような気もするが。
荒削りでいいんじゃないかな?
荒削りな物と、探索を組み合わせればいい。

>探索してるんじゃないの?
それは、Nまでの値を素数かどうか判定しているのでは?
といってるのと同じ。
素数に関しては、違う。
将棋に関しては、有効なアルゴリズムが今のところ
見つかっていない。
>N以下の素数の個数を示すのに、Nまでの数字を全部チェックする
>バカはいないだろ。
>(ルートNまでという意味ではない)
自然数Nが素数であるかチェックするのに
Nまでの自然数を全部チェックする香具師はバカであるが
N以下の素数の個数を示すのに、√N未満の素数を使って
N以下の自然数を全部チェックするのは基本でありバカではない

つーか、素数列挙の話はこっちで
http://pc2.2ch.net/test/read.cgi/tech/1018657457/
426デフォルトの名無しさん:03/02/19 01:30
>N以下の自然数を全部チェックするのは基本でありバカではない
バカではないけど、N以下の自然数の個数を調べるだけなら
もっといいアルゴリズムがあるんで。

http://www.mcc.pref.miyagi.jp/people/ikuro/koramu/prime.htm
まあ、まだ証明がまだないから
絶対にそうだとはいえないけどね。
まあ、違うというなら反例をあげてください、って事で。

ただ、書いてて思ったのは
なぜ準最適解を求める話をしないで
最適解を求める話をしてるんだろう?

準最適解を求めてから、最適解を求める話をしてみては?
427421:03/02/19 01:35
>>422
いや、いいたいことはわかる。
しかし、それをデータベースというかという話。
428421:03/02/19 01:38
もうちょっというと、そういう関数を求める行為自体が探索してることになると思う、
そういった関数を作るっていうのは、データベースを作るんじゃなくて、一種のアルゴリズムを
見つける問題と同値な話でしょ、っていうか、そんな感じ
429デフォルトの名無しさん:03/02/19 01:40
>もうちょっというと、そういう関数を求める行為自体が探索してることになると思う、
なぜ?
ここを説明してくれないと、俺にはよくわからないかも。

>一種のアルゴリズムを ,見つける問題と同値な話でし
将棋を数式で表し、
可能な限りのあらゆる式変形を行い
もっとも計算量の少ない物を利用する
というのが理想だね。
430デフォルトの名無しさん:03/02/20 00:03
おまえら知識をひけらかすのはそれくらいでいいから、はやくコーディングしてくれ。
>422
で、その関数が正しいかどうかはどうやって判断するんでしょうか?
>>19
間違いだろ
将棋を「打つ」みたいなもんだ
>>81 定石をはずすことによって不利になった分

現時点での「定跡」をはずすと不利になる、という前提自体が間違ってるぞ。
先手優勢とされてた局面に新手が出て後手優勢に評価が変わる、なんてことはしょっちゅう起こっている。
この「創造性」の部分があるからこそプロは尊敬されるわけで。
>>266 ループを禁止すれば引き分けは起こらない

持将棋、というのもありまつが・・・
ここ最近の急な遅レスの嵐は何なんだ?
436デフォルトの名無しさん:03/02/22 00:04
>で、その関数が正しいかどうかはどうやって判断するんでしょうか?
関数が正しい事を、証明する必要はあるんでしょうか?
証明できない物は使えないという考えは間違いでは?

>現時点での「定跡」をはずすと不利になる、という前提自体が間違ってるぞ。
定跡をはずすと不利になる確率が高いと思うのですが。
そう思わないのであれば、定跡を使うメリットはないと思うのですが。
定跡を外しても不利にはなりませんよ。
最後の一手まで定跡通り指せば良いってものではないのですから。
だからまずその定跡が正しいという証明を(ry

まじれすすると、最近の市販将棋ソフトが定跡沢山詰め込んでいるのは、
営業的な意味が大きいかと。
あ、もちろん「矢倉囲いの組み方」みたいなレベルの定跡はまた別ね。
438デフォルトの名無しさん:03/02/22 11:43
>>437
不利にならないなら、これからは定石を使うのをやめるのがいいと思う。

>最後の一手まで定跡通り指せば良いってものではないのですから。
どこにもそんな事は書いてないけどな。

>まじれすすると、最近の市販将棋ソフトが定跡沢山詰め込んでいるのは、
>営業的な意味が大きいかと。
過去ログを読んでみて。
あなたが定石を勉強する事で勝率が上がると思えるなら
定石には意味があります。
あながた定石を勉強しても勝率が上がると思えないなら
定石には意味がありません。(認めます)
ただ、将棋の世界では定石の本が売られていることから
定石には意味があると一般的には認知されています。

定石が正しいと思われるのは、統計的にですね。
定跡通りにしか指せない人は弱い
定跡を知らない人はもっと弱い
定跡不要なのは初手から全局面読みきれる奴だけだろ。
441デフォルトの名無しさん:03/02/22 18:28
柿木将棋VI レベル4倒したー

このレベルだと選手権だとどれくらいのところまで
行けそうですか?
>>438
「定石」とかいってると説得力ゼロ。
ただの誤植をわざわざ指摘する奴はアフォだろ。
ただの誤字をわざわざ指摘する奴はアフォだろ。
>436
探索もせずに、しかも項数も指数でないなら証明は必須でしょ。
NP完全の問題に対しても、”使える”プログラムはあっても、
”解ける”とは言わない。
>>441
多分、一次予選で4勝3敗で勝ち越しできるぐらい。
一次予選突破できるかどうかは難しい。
447446:03/02/22 23:16
>>441
後で思ったけど、レベル4にたまに勝てるくらいのレベルだと、
一次予選突破はムリ。
ふと思いついて検索してみたらやっぱりあったよ。GNU shogi
これってどうよ?
http://www.cs.caltech.edu/~mvanier/hacking/gnushogi/gnushogi.html
449441:03/02/23 02:26
その後レベル5に挑んで、
ころっと負けたから
ハッシュ関数おかしいところ直したら
勝てたよ。
どう?一次予選ぐらいできそう?

次はレベル6の挑戦です
450441:03/02/23 02:33
相手の待ち時間中に手を読む処理をまだ
組み込んでないんですけど、
どれくらいの効果ありますかね・
451446:03/02/23 16:27
>>449
レベル5に5割以上勝てるなら、一次予選突破できるレベルと思う。

多分、来年の一次予選突破レベルは、
Athlon 2000+くらいのCPU(Pentium4なら2.6GHzくらい)で、
・「うさぴょん」に一手40秒考えさせても勝てる
・「礒部将棋」の最強レベルに勝てる
くらいで、8割〜9割突破できるレベルでしょう。

452446:03/02/23 16:31
>>450
時間切れ負け、または残り時間の切迫により、思考レベルが下がってしまったことによる負けが一つ減るくらいでは。
決勝までいくつもりならいれとけ。
453441:03/02/23 17:47
今、うさぴょんの最新バージョンと対戦中
向こうは穴熊
こっちはすでに入王。
なんだか勝てそうな雰囲気
454デフォルトの名無しさん:03/02/23 17:54
455446:03/02/23 18:02
>>448
かなり弱い。
456446:03/02/23 18:03
>>453
おめ。
次は礒部将棋。
その前に、うさぴょんと10対局くらいしておいた方がいいか?
457453:03/02/23 18:10
と。思ったらお互い入王。
駄目だーつめが甘すぎる。

鬱だ。。。期待させてスマソ

逝ってくる。。
458446:03/02/23 18:17
>>457
…がんがれ。

ところで、最新のうさぴょんもCSA将棋とくっつけて使えば通信対戦OKのようだ。
GNU将棋の改造でもやる?
460デフォルトの名無しさん:03/03/02 23:51
あげてみる
461デフォルトの名無しさん:03/03/03 04:47
なんかこのスレの勢い無くなったな
462デフォルトの名無しさん:03/03/07 16:39
麻雀スレのほうが先に形になったモヨン
463デフォルトの名無しさん:03/03/07 16:40
http://www.pink-angel.jp/betu/index.html
★いらっしゃいませ!!ようこそココへ★
保守
>461

日本なら欲しいけど、北とブタキムなんていらないからな
466デフォルトの名無しさん:03/03/17 01:36
キラームーブとヌルムーブって有効なのか?
467デフォルトの名無しさん:03/03/17 22:10
http://game.2ch.net/test/read.cgi/bgame/1047055184/l50
誰かこの将棋のプログラム作ってくれる方いますか?
私の力じゃ出来ないです・・・
>>467
それは完全解を見つけて欲しい、ということ?
盤面が小さいから解けそうだけど。
解けたら逆に面白くないかもよ。
>468
はい、完全解を知りたいという意味です
リンク先に貼り付けたら感じ悪いかもしれませんけど、
私は知りたいです
1段目で成るというのが例外的なので既存のルーチンは流用しにくい・・・。
ルールを考える方は簡単だけど作るのは面倒だわ。ごめん。
先手勝ちとなったけど、今書き終ったばかりだから怪しいかも。
>471
プログラムのソースきぼんぬ
>>472
300行あるけど書いてもいいの?
>>473
ここに書くのはまずいですね・・・
テキスト形式でどこかにupしてくれるとうれしいです
ttp://kari.to/upload/
アップローダ、ここなんてどうでしょうか?
まあ、どこでもいいんですが・・・
今上げてみたけど、ものすごいやっつけだし
たった今バグ見付けたからなぁ。
多分このままでは読み切れないと思う。
と思ったけど直したらやっぱり読み切れたのかな?
上げたやつは少なくともgen_moveが間違えてます。
ありがとうございます!
明日読む、と言う事で今日は寝ます。
きれいで速そうなソースやね。
勉強になりまふ。
選手権の常連さんと見た。
>>480
いえ、今まで将棋のプログラムを書いたことはなかったです。
そのためか終局判定の部分がでたらめだったので、
直したものをアップロードしておきました。

プログラムを動かすとまずコンピュータが先手で読み始めるので、
(ペンティアム3の1GHzで25秒かかります。)
後手の番になったら、2 5 0 のように手を入力してください。
多分まだ間違いはあると思います。
>>481
乙でした。
将棋のプログラム初めてで、さくっと作れるのはすごいっす。

結果は21手で解けた、ということでいいのかな。
手順を適当に作ってみました。
▲22銀△12玉▲32玉△13銀▲同銀△同玉▲22銀△12玉▲23歩△13銀
▲21銀成△11歩▲同銀△11玉▲21成銀△12玉▲22歩△同銀▲同成銀△13玉▲23成銀
だと21手で先手の勝ち。
483467:03/03/19 22:32
わざわざソース作ってくださってありがとうございます。
見てみましたが、私の力では読むのに大分時間が掛かりそうです・・・
時間かけてじっくり読んでみます。

私の勘違いでなければ
▲2二銀△1二玉▲3ニ玉△2三銀▲3一玉△3ニ歩▲1三歩
となって、打ち歩詰に成ってしまうみたいです。
>>483
ありがとうございます。自分では見付けられなかったと思います。
check_tumiの最初のif文を削除して
int ew = kiki[ktype][ksq];

for (i = 0; i < 5; i++)
if ((km = km_list[o][i]) && km->sq >= 0 && ((1 << km->sq) & ew))
ew ^= (1 << km->sq);
をそこに追加すればこれは直ったかもしれません。
ただこれで動かすと25手読んでも終らないので
ハッシュテーブルと繰り返しチェックを入れないと解けないかも知れません。
1行追加し忘れ。最後にこれを。
if ((mk & ew) == ew) {

今27手で先手勝ちになりましたけど
時間があればまたチェックお願いします。
自分はあまり将棋読めないので。
15分弱かかりました。
やっぱりまだバグがありました。
それとハッシュテーブルを組み込んだら初手から数秒で解けました。
一応直したのをアップしておきました。
488467:03/03/21 03:11
483の打ち歩詰は回避されるようになりました!

先手勝てそうにないですね
489467:03/03/21 03:12
間違えた・・・

× 先手
〇 後手
まだまだバグがあったので直したものをアップしておきました。
ところでこれは一段目の銀が戻るときにも成れるようにしてありますけど
これでいいんでしょうか?

もしそうでないのならプログラムにある2箇所のコメント部分を有効にして
それぞれ下2行をコメントアウトするとそうできます。

しかし今回このプログラムを書いてみて
本当の将棋プログラムを書くのはかなり大変そうだと思いました。
491467:03/03/21 22:44
UPお疲れ様です。

>一段目の銀が戻るときにも成れるようにしてありますけど
>これでいいんでしょうか?

はい、OKです。
相手の陣地内にいて、そこから外に出るときも成る事が出来ます。

本当の将棋のプログラムはソース見るだけでも発狂しそうですね・・・
492デフォルトの名無しさん:03/03/25 11:56
kage
493デフォルトの名無しさん:03/03/27 23:34
http://esper.lab.nig.ac.jp/chess/super-mini-shogi.html

外国の人がプログラムとウェブページを作ってくれてますよ。
みてくれはチェス風だけどルールはまぎれもなく今議論になっている
超ミニ将棋。

左からabc列、下から123行(左下がa1, 右上がc3)
K玉、S銀、G成銀、 F歩、Tと金、大文字は下手、小文字は上手

またwinning in 14というのは将棋流にいうと14x2-1=27手詰
losing in 13というのは将棋流にいうと13x2=26手目に詰まされるという意味。
Sb2(2二銀) kc3 - c2(1二玉) Ka1 - a2(3二玉)sb1(2三銀) 
Ka2 - a3(3一玉) fa2(3二歩) Sb2 - b3(2一銀) kc2 - c1(1三玉)
Sb3 x a2G(玉3二銀成) sb1 x a2(同銀、成っても同じ) Ka3 x a2 (同玉)までが
必然でその後後手のsb2(2二銀)、sb1(2三銀)のどちらの応手でもそのあと15手で詰み。

また" the longest direct mate position"からは双方最善手で25x2-1=49手で詰む配置からの
あらゆる手を追うことができる。正直これを解くのは羽生、谷川でも無理じゃないか。



この超ミニ将棋は意外と有名だったんだ。ビクーリ
495デフォルトの名無しさん:03/03/28 19:54
作成日付から見てこのスレを見てから作ったのではないのか?
super-mini-shogi
もそのまんまの名称だし。
こうしてアイデア・コード・ノウハウが海外に流出するわけか・・・
このアイデアは新しいものではない。チェスではずっと前から8x8盤上で5駒すべての組み合わせに
ついて解が得られているし、ポーンを除く6駒もすべて分かっている。

A tablebase is a file containing the perfect result information about all positions of a particular
material setup, such as King and Rook versus King and Pawn. Tablebases for all material situations
up to five men (including the Kings) have been generated, and some simple 6-men tablebases are
also available.
http://scid.sourceforge.net/help/TB.html

最長は500手をこえる。人間が解くことは絶対無理。
http://www.xs4all.nl/~timkr/chess2/diary_3.htm
3x3
今気がついたけど2歩のチェック忘れてた。
結果は変わらなかったけど。
499山崎渉:03/04/17 15:48
(^^)
500デフォルトの名無しさん:03/04/27 18:31
今年観戦しにいくやつおる?
友達と超ミニ将棋やってみた。
うち歩詰め禁止がものすごく痛かった。


そんだけ。
ミニ将棋で打ち歩詰めになんかまずならないはずだが。
503デフォルトの名無しさん:03/04/28 12:02
こんど将棋するプログラム書いてみようか。

504デフォルトの名無しさん:03/04/28 12:41
 ┃ ┃ ┃ ┃ ┃ ┃
┣━╋━╋━╋━╋━╋━╋━╋━┫
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━╋━╋━╋━╋━╋━╋━╋━┫
505デフォルトの名無しさん:03/05/05 17:33
優勝 IS将棋、準優勝 YSS、3位 激指
金沢将棋、柿木将棋予選落ち

506デフォルトの名無しさん:03/05/17 10:57
数学って計算とか探索とかアルゴリズムとか
そんなに狭いものに限定されるものじゃない。
将棋という世界と相性のいい数学概念を
探すなり見つけるなりすれば、大きな
ブレイクスルーになると思いますよ。

なにもどこにもない誰も到達していないものを
いちから作り上げるほどの数学の天才は必要ないです。
直観の形でプロの一部が持っているものを
数学的概念におろしてきてやればいいだけですから、
少し気の利いた数学者が何人かいればできると思います。
>>506
要するに人工知能をコンピュータで作ればいいって言っているんだろ?
言うは易く行なうは難しって知ってる?
508デフォルトの名無しさん:03/05/17 11:00
>>506
数学について何も知らないみたいですねw
509デフォルトの名無しさん:03/05/17 11:04
> 直観の形でプロの一部が持っているものを
> 数学的概念におろしてきてやればいいだけですから、

それが難しいんじゃないの?
どんなに素晴らしく下ろしてこれたとしても、その計算コストが大きければダメ。
良い数学的概念を下ろしてこれた上に、計算コストと正確性のトレードオフを
うまく達成するってのは、そんなに簡単に出来ることなの?
510デフォルトの名無しさん:03/05/17 11:11
>>507
そんな汎用的なだいそれたものは必要ありません。

将棋というものの認識を、我々の脳に頼らず
外部に抽出して整頓しましょうと言いたいだけです。

現在の将棋のように人間の結論をあらかじめ得て、
それを形の上だけでなぞるような手法は、そろそろ
限界が近いように思います。

>>508
数学ってなんでしょう?
511bloom:03/05/17 11:11
512デフォルトの名無しさん:03/05/17 11:15
>>509
いずれ誰かがやることですから、コストは別にして
考える準備はしておいてください>プログラマの皆さん

では逆に聞いてみたいのですが、そもそも一体何の
ために将棋のプログラム研究はなされているのでしょうか。
研究理由:
かつて、フェルマーの最終定理を数学者たちは解こうと躍起になった。
それと同じ理由でそ。

では逆に聞いてみたいのですが、マでも無ければ、数学者でもない。ましてや、将棋の研究してるわけでは
決して無い>>512はナンなんだ?
 えっと、直感的概念を数学に・・・というが、数学というものをどう捉えている
のかわかりませんが、かなり難しいことには間違いありません。
 直感をコンピュータに持たせるとして期待されていたのが、ニューラルネット
とかですが、なかなか十分な成果は出ていません。
 将棋等のゲームにおいては、入力が多くなりすぎてしまいます。

 しかし、囲碁のプログラムにおいては、将棋のように単純に全幅探索でやって
られないので、まだまだコンピュータは弱いです。そのためニューラルネットを主
に使ったソフトが世界選手権で上位に食い込んできたりもしてます。
 ですからニューラルネットによるアプローチも否定されたものではないでしょう。

 で、何のために将棋のプログラム研究がされてるかって話しですが、基本的には
コンピュータをもっと頭よくしたいってことだと思います。
 もともとチェスなどのゲーム思考用に考案されたアルゴリズムは他の分野でも応
用がされています。人間の方が得意な分野っていうのは、そこに新たな発見がある
と思われるので、研究する価値があると考えられます。
 逆にいえば、将棋の秘密を解き明かすことが、研究の主な目的というわけではない
でしょう。将棋でしか使えないようなアルゴリズムっていうのは、相対的に研究として
の価値は低いと思います。
515デフォルトの名無しさん:03/05/17 12:23
>>514
直観と数学とは別です。
数学とコンピュータも別です。
でも関係があるでしょ。

直観といっても人間の持つ直観をそのまま実現するのは無理です。
人間は合理的な存在ではありませんからまま真似してはいけません。
あるものを対象にして発揮される場合の人間の直観のごく一部を
都合良く数学概念に仕立て上げればいいんじゃないですか。

駒というものの多様性にとおりのいい解釈がつけば、囲碁より早く
ブレイクスルーを迎えられるかも知れませんね。

にらみ合い
角筋を活かして・・
濃淡
制圧

そういうものをコンピュータに理解させるのではなくて
もとからそれ(ら)を含んだ概念を用意しておけばいいんです。
概念化するまでもなければそのまま載せればいいんですが、
無理なら遠回りでも概念化を試みるべきだと思います。

プログラマさんは数学が得意でしょうから、将棋を見て
自分の頭の中を掘り下げて、数学の概念として外に出してから、
それをアルゴリズムなりなんなりの形で取り崩して載せていけば
強さは別にして、相当おもしろいものができると思うんですが。
ただ単に、ブレイクスルーって言いたいだけちゃんかと。
>>515
だから、直感をモデル化したものが、ニューラルネットだと
>>515
内容無いくせに長い、堕レスの手本だな。
ニューラルネットとかよりも全件検索の方が強いんだよな。
時間はかかるだろうが。
520デフォルトの名無しさん:03/05/17 12:58
>>514
>将棋でしか使えないようなアルゴリズムっていうのは、相対的に研究として
の価値は低いと思います。

そうは思いません。
将棋は駒と配置とルールだけが所与の条件ととらえられがちですが、実はそれらと人間の関係が将棋というものの実体です。
所与の条件のみで解明できたゲームはゲームの一部です。(これを「閉じたゲーム」と呼びたいです)
多くのゲームは人間の認知を条件に入れないと、アプローチすらできないものが多いです。(これは「開いたゲーム」と呼びます)

開いたゲームに解明は存在しません。
しかし、高度に訓練された人間が関わる開いたゲームには解明はなくとも解釈が存在します。
その解釈を(別の形で)実現することがゲームプログラムの研究の使命です。
ところが、プログラマの勘と一足飛びの実装にたよる手法では、限界が近づきつつあると見受けられますので、
勘の部分を対象化してきっちり概念化したほうがいいのではないかと考えました。

将棋の強さに特化されたプロの脳の中で起きていることは、その一部でも概念として外に出せれば、価値は高いと思います。
プロの脳内に個人的に死蔵されるか、一部のプロのあいだでだけ共有されてきた「なにか」を、
別の形になってしまうとはいえ数学的に共有し様々な操作や展開ができるようになるのですから。

そのなかには初歩的な数学として記述できるものもあるでしょうし、(それはすでにオセロ、チェスなどでも実現されていると思いますが、)
まったくあたらしい概念を準備されるべきものもあるのではないかとおもいます。
そしてそれこそがゲームプログラムの目指してきた目標だったはずです。

いち将棋プログラムファンとしては、勝ち負けや報酬だけではなくそういう理念が研究者を突き動かす衝動だと信じています。
小手先の調整で勝ちを拾うのは便宜的な手法だと信じてますので、
海外の研究者にこういったプランを整理した形で示される前に、
国内のプログラマさんたちで考えてみて欲しいところです。
521デフォルトの名無しさん:03/05/17 13:02
>>517
ハードよりの部分を人間の脳に近づけて、その上に研究を積み上げれば直観が実現できるなら苦労しません。
>>521
直感を数学的に表現できるならば苦労しません。
できないから、こういった人間の脳の構造にヒントを求めた手法が研究されているのです。
>>520
例えば、将棋の探索アルゴリズムであるミニマックス探索。
 これなんかは、人間の頭の中の思考をモデル化(数学として記述というより、モデル化といったほう
が誤解がないかと思いますが)したものです。
 その上あるα-β探索などは、探索の効率化の手法ですが、ゲーム以外の分野においても指針を
与えたといえるでしょう。
 人間の頭でやってる「何か」をモデル化する事は価値があることとは思います。しかも、それはでき
るだけ、汎用性があるモデル化が好ましいということです。
 激指で採用している、プロの棋譜情報を使って深く読む手を決定しているという手法というのは、い
い例でしょう。確かに、将棋特有の知識を使って、手というものを分類してはいます。しかし、逆にいえ
ば手さえ分類できれば、あとは汎用的に他の同種のゲームに応用できます。
 あくまで、汎用性がある綺麗なモデル化を、っていうのはプログラマにとっては、理想かと思います。
524デフォルトの名無しさん:03/05/17 13:46
>>523
なるほど。
モデル化しやすいものは既にモデル化できてるんですね。
早く将棋プログラム研究から、効果的なモデルが生まれるといいですね。
チェスの流用だけじゃなくて。
525デフォルトの名無しさん:03/05/17 20:15
バカが一人いるみたいだけど・・・
数式に落とせても、コンピューターで解けない問題はたくさんある。
「NP問題」でググレ
526デフォルトの名無しさん:03/05/17 20:33
>>525
数式だって(プ
アフォか?
527デフォルトの名無しさん:03/05/17 20:49
プログラマの考える数学は高校数学かな?
528デフォルトの名無しさん:03/05/17 21:01
アイデア:
1.神の一手を打ってくる敵と対戦できる
2.敵はすべてランダムで駒を動かす
3.将棋崩しができる
4.将棋ドミノができる
5.ネットプレイ可
6.150手まで詰め将棋を収録
7.囲碁、オセロもできる
ここまでできれば、世界一の
将棋プログラム
>>528
流石に7はいらんだろw
530デフォルトの名無しさん:03/05/18 11:37
定式化という言葉を知らないと思って
数式化という言葉にしたんだけど、
さらに低いレベルの人がいるとはw
531デフォルトの名無しさん:03/05/18 11:40
☆★☆★♪大人の玩具激安販売店♪ ☆★☆★
ピンクローター190円から〜
オリジナル商品や新商品をどこの店よりも早く発売いたします!!
イスラエル軍も使用している本物ガスマスク!!
バイブ、ローター何でも大安売り!! 下着やコスプレなども大安売り!!
個人データも秘密厳守!!偽名で購入OK!
郵便局止め、営業所止めOK!
http://www.king-one.com/
532527:03/05/18 11:52
四則法則で、十分。
しかし、処理(グラフを描くなど)によって、
必要な時もある。
中学生でも、プログラミングができますから。
533デフォルトの名無しさん:03/05/18 12:55
>>532
いや、nand演算で十分。
nandなら幼稚園でもできますから。
534デフォルトの名無しさん:03/05/18 12:59
saiをプログラムに召喚すれば解決だろ?
535528:03/05/18 13:01
>>534
それは、囲碁だろ。
多分、将棋は加賀を召喚。
536デフォルトの名無しさん:03/05/18 17:28
>>530
貧困なイメージだね。
数学ってもっと広いよ。
537デフォルトの名無しさん:03/05/18 18:54
>>536
口だけは達者ですなw
538デフォルトの名無しさん:03/05/18 20:21
>>537
数学者のなり損ないにはいわれたかないな。
数学より英語ペラペーラになりたいよ。
540デフォルトの名無しさん:03/05/18 22:11
>>539
自分のよく使うプログラミング言語を
ぺラぺーラにする方が先。
Cが一番読み易...
いや、TTSかひまわりかのどっちかだな。日本語だし。
英語の勉強にプログラミング?
しかもひまわり?
わけわからんな。
>>541
文脈嫁
543デフォルトの名無しさん:03/05/18 23:01
必死だなw
544デフォルトの名無しさん:03/05/19 02:31
結局は、自分でやったことない人orやれない人が適当に書いてるだけだろ…
もちろん、漏れもそうだが(w
545デフォルトの名無しさん:03/05/25 20:52
例えば、チェスでは人間を打ち負かすことができて
将棋ではそれが無理ってことの理由をもう少し深く考えて
みませんか?
そりゃ、コマの再利用ができるとかいうのはわかるんですけど
それ以外の部分でなにかあるのなら、そこに何かヒントが
隠されているかもしれないと思いまして。
>>545
コマの再利用ができる

それに尽きる。
基本的に、コマの再利用ができる点以外は、チェスの方が複雑だからね。
>>547
駒の数自体も将棋の方が多いと思うけど
>>548
そうか、コマが多くて盤面も広いか。すまぬ。
まあ、本質はコマの再利用ができるために、可能な手が多い。ってとこだよね。
550デフォルトの名無しさん:03/05/25 22:15
>>547
チェスの方が、どう複雑なの?
もちろん、人間にとってではなく、コンピュータにとってね。
>>550
コマの動きが
552デフォルトの名無しさん:03/05/25 22:46
>>545
チェス=
盤が狭くて駒が強力で王が死んだら終わりのゲーム。
コンピュータには将棋よりは楽。

将棋=
相対的にチェスより戦略や感覚の比重が高い。

分析=
ひとつのものをいろいろな見方で見ること。

プログラマー=>546,551
金魚鉢馬鹿。センスゼロ。

結論=
プログラマーだけでプロより強い将棋プログラムをつくるのは無理。

t?
>>552
??
とりあえず、将棋も王が死んだら終わりだけど・・・
それにコマが強力な方が、コンピュータにとっては扱いにくいよ。
盤が狭いのはコンピュータにとってはいいことだね。

あと、結論への論理的飛躍がみられます。
555デフォルトの名無しさん:03/05/25 23:37
読解力もないのか。
将棋というもののとらえ方が浅すぎる。
プログラマーというのは代筆屋のことか?
自分で考え、自分で問題を設定して解け。

チェス=
盤が狭くて駒が強力で、王が死んだら終わりのゲーム。

将棋=
盤が広くて駒が弱くて、王が死んだら終わりのゲーム。
>>555
現在のプログラム戦略は局面に対する評価値を基本としている。
だから手数(=分岐の局面数)の広がりが難しさに直結する。
駒が強力なら次に動かせる選択肢が増えるので問題が難しくなるが、
将棋の手数は駒の再利用が可能なことで決定的に増える。
そういうお話です。
>>555
まず聞きたいが、君は将棋指し?
で、チェスについても熟知してるの?
ついでに、将棋において人間がプロに勝てない要因。
チェスにおいても同じことは言えるけど、チェスは可能な手が少ない分、力押しでなんとかなってる。
でも、将棋においては現状においてはそうはいってない。
計算能力が更に増したら、どうなるかはわからないけど。

●その1 盤面のパット見の判断
 手を深く読んでいって、読んだ先が「あー、先手悪いな」と思えばその手は避ける。
こういったことをするため、評価関数というものを作るのね。
これは、盤面をぱっと見て形勢判断するもの。
現在は、コマ得とか相手玉への相対位置等で判断してる。
でも、やっぱこれがプロと比べて全然ダメ。

●その2 読む手の取捨選択
プロは、無駄な手は深くよまない。
でも、将棋ソフトだと深く読んでしまう。
この辺の対策は色々考えられているけど、やっぱり無駄は多い。
ここが、プロだと数十手読めるのに、ソフトだと10手程度しか読めなかったりする理由。
終盤の詰むか詰まないかの判断は話は別ね。
終盤は、近い将来プロを超えるんじゃないかな。
559デフォルトの名無しさん:03/05/26 00:00
>>556
そんなに単純かな。

駒が強力ということは終盤が早いということ。
チェスで再利用ありだった場合、必勝法がある可能性が高く
たとえ必勝法がなくともコンピュータの絶対的圧勝になるのでは?

将棋が複雑なのは、駒に異なった機能があり、それがまた場と状況で
同一機能の駒であっても役割が異なることによると思う。
これはチェスでも同じだ。しかし、将棋の場合は再利用があり
再利用ありで必勝法なしのゲームが成り立つようにバランスが
取られている。この再利用ありを前提につくられたことが
将棋の複雑さに寄与している。

いいかえれば将棋は、相対的に広い盤で弱い駒という、
再利用ありを前提としたゲーム設定だからこそ複雑になる。
>>558
あのさー「プログラム」を「プロ」って略しちゃいけないよ
誤解を生むから。いや、わかるけどね。
 で、チェスとの比較の問題だけど、将棋においては「再利用可能」ってルールのため、チェス以上
にその2が効いてくるわけ。

 ついでに囲碁なんかだと、盤面評価も難しいし、可能な手も圧倒的に多いから、コンピュータは
今のところ全然ダメ。
562560:03/05/26 00:02
あ、ごめん。一行目の人間がソフトの書き間違いなだけだった
>>560
まてまて、プログラムをプロとは略してない。
プロって書いてあるのは、人間の将棋のプロね。
>>562
とんでもない書き間違いすまぬです
565556:03/05/26 00:09
>>559
将棋系ゲームの難しさは次の2点にあると思う。
(1) 局面判断
(2) 分岐数の多さ
で、ゲーム設定は主として(1)に効くと考えられるが、
実用的な処理時間に落とすときには(2)の作用が決定的に問題になる。
チェスと将棋の優劣を論じるつもりはないけど、
特にプログラム化するときの難しさは(2)なのではないだろうか、
と思っての書き込みです。

(2)の枝を切るためには>>558のように、
結局は局面判断と組み合わせる必要があるのかもしれないけど……。
チェスだと終盤の駒数が少なくなるとコンピュータが読み切れる、
というのが大きい。オセロなんかもそうだけど。
もっとも、将棋の終盤にも大抵の場合「解」はあるはずなので、
ソフトがプロを超えるのは不可能ではないと思うけどね・・。

ちょっと関係ない豆知識だけど、チェスの駒が強力なのは引き分けを回避するため。
大昔のチェスはクイーンもビショップも一歩ずつしか動けない、小将棋のような
まったりしたゲームだったそうな。
ところが引き分けがあまりに多いので動きを強力にしたらすぃ。
567デフォルトの名無しさん:03/05/26 00:18
>>558
だから擬似的な直観を実装してください。
万能な人工知能は必要ありません。
特定状況下で発揮される直観を近似するだけ、でいいです。

●その1 盤面のパット見の判断
同一局面でも有利不利が常に決定されるわけではない。
どのようなタイプがどういう構想をもってみるかによる
相対的な形勢判断によるしかない局面も多い。

●その2 読む手の取捨選択
それを直観という。指しては「手が見える」という。
これには、明らかにだめそうな手を排除するという消極的選択と
なんだかわからんが光って見えるというような直観でわかるという
積極的選択という二重の意味がある。

論理とは、論理的で逐次的で自覚的なフィードバックや分解が可能な処理。
直観とは、論理的でプロセスを圧縮高効率化した無自覚な処理。
直観もまた論理的なんだよ。どういう構造をとっていて、
何が省略されてなにが組み替えられているのか
それが少しでもつかめれば、と将棋プログラムに期待してみる。

将棋プログラム開発に社会的意義があるとするなら、
それは直観の近似だろう。
いまのままでは無理だが。
 チェスの終盤は、コマが何個か(5個だったかな)に絞られた状態全ての局面について、
どっちが勝ちか予め調べておいて、それを記憶しておくなんてことしているみたい。
 将棋は再利用が出来る分、そういったことをするのは難しい。
>>567
実装して下さいっていって、実装できたら苦労せんて。
色々考えられてはいますよ。
直感に対するアプローチとして言えるかはしらないが、統計的な手法というものがある。
プロは過去に色々将棋を打ってきて、そこから、何か直感的なものを取得したんだろうな、という考え方。

単純に統計を使う場合もあれば、ニューラルネットに放り込んで処理する場合もある。

直感を論理的に説明できるのなら、、プロに説明して欲しいなと思います。
プロが自分の直感を論理的に説明してくれれば、将棋ソフトへのフィードバックは可能でしょう。
でも、そういったことができるプロは・・・
571デフォルトの名無しさん:03/05/26 00:28
>>565
従来のボードゲーム・プログラムの延長で解決しようとすると、
処理時間の増大度合いからしてプロには勝てないのでしょ?
その増大度合いには処理速度の向上は追いつかないんでしょ?
1000年後に期待、とかではなんのためのゲームプログラム開発
なんですか。

だったら、なんでもいいから新しい方法を考えないと打開できない。
プロでも各分野の数学者でも誰でもいいからつれてきて相談しないと、
プログラマーだけではもう限界が近いんじゃないですか?

ここは謙虚かつ貪欲になって、片っ端から使えそうなのを
持ってきてやってみるべきだと思います。
>>567
「盤面ぱっと見」の判断には異議あり。
人間がそんな1局面だけを見て局面の優劣を判断することはないよ。
駒の損得バランスが大きく崩れてるならともかく。

人間の高段者が「ぱっと見」という言葉を使うときは少なくとも具体的に数手先、
場合によっては直線で10数手以上読んでる。
それに本当に難解な局面ならプロでも意見が分かれたり、間違えたりする。
573デフォルトの名無しさん:03/05/26 00:37
>>570
例えいたとしても全盛期のトッププロ。
そんな暇ないだろう・・・

とはいっても、最近のプロは自分の能力について
昔の棋士よりは自覚的であろうとはしてるから、
暇と金さえつくってあげれるなら期待できるかも。

難しいのは、彼らのように直観を持ちながら、それに
自覚的であろうとするプロであっても、自覚的でない
もの(直観)を別のたとえ話で表現するだろうということ。
そのままでは役に立たない・・・

それを分析して実現可能な形に置き換えれるような
他の分野の人々の連携体制が必要だと思う。
574デフォルトの名無しさん:03/05/26 00:37
チェスの話題を振った者ですが、
チェスの場合なら、今盤上にあるコマの数と、それぞれのコマが動ける場所のマス数
でのシグマ計算になるけど、
将棋の場合は、取った駒を再利用できるから、全ての駒と、それぞれの・・・
の計算が膨大になりますね(取りごまがかぶってる場合は短縮できますが)

なります・・って行って思い出したけど、将棋は成れるからさらに複雑ですね。

やっぱりそんなことにつきてしまうんですかね。ちなみに、チェスは引き分け
があって、負けそうなら引き分けに持ち込もうとするし、逆に向こうが引き分けに
持ち込もうとしてるときに果たして自分の勝利は確定してるのか、それとも
実は分が悪いのか(だったら引き分けさせちゃおう)なんてことを考える
から、そこは将棋より複雑ですね。ただ、そんときはもう駒がほとんどなく
なってるから、実は簡単なアルゴリズムかもしれないですけど。

 なんか他に決定的な違いってやっぱりないですかね。
575デフォルトの名無しさん:03/05/26 00:43
もしもコンピューターだけで勝てないならば
例えば、プロ棋士VS(プロ棋士+コンピュータ)というのは
どうなるんでしょうか。
持ち時間などの全てのルールは通常と同じで
隣にコンピュータをおいて、好きなときにそれを見れる。
そのコンピュータには今までの全ての棋譜のDBが置いてある。
コンピュータ技術者は、その閲覧ソフトを使うプロ棋士にとって
いかに使いやすくするかということにのみ注力する。

これを導入した棋士は今までより強くなるのか、それとも変わらない
のか、むしろ弱くなるのか。

これって興味ありませんか?
>>574
将棋にも引き分けはある訳だが。
しかも千日手引き分けの他、持将棋引き分けまである。
>>575
終盤はソフトに頼った方が強いという説があります。
しかも現状のルールでは禁止されてません。
でも、みんなプライドがあるらしく、実際にプロで実行に移した人はいないようです。
>>571
量子コンピュータが実用化されれば革命的に変わるかも
579デフォルトの名無しさん:03/05/26 00:50
>>570
コメントになってなかった。

統計は、プロセスは置いて、結果そのものからたどるという発想で
すよね。それはそれで優れていると思います。

読む手を絞り込むという手法としては充分ありです。
プロも、膨大な経験から着手候補の感覚を築くという面もあるでしょうから。

そんな発想がもっともっと欲しいですね。
580デフォルトの名無しさん:03/05/26 00:53
>>572
直観か読みかはともかく

ある局面で、
解がひとつある
解が複数ある
解が特定できない
このどれかである。

そういう考えについてはどう?
まー、お互いに最善の手を打つと仮定すれば、
解は複数ある
んだけど、実際に常に最善の手なんか打てるわけはないわけであって。

いかに、相手が間違いやすい局面に持ち込むかという
事を考えると、解は特定できないというか、ないわな。
>>575
チェスではすでにそういうルールがadvanced chessという名前で確立してるな。
で、人間+コンピュータの方が強くなるそうな。普通に考えれば将棋も同じだろ。
583デフォルトの名無しさん:03/05/26 00:59
>>574
再利用による分岐数の増大にだけ目がいってるようですが、
再利用によってゲーム性がまったくことなるという点については
スルーですか。

分岐数の増大を何とか工夫して実現可能な分岐数におさえる。
そういうアプローチは当然だと思いますが、そちらの方向から
だけでは限界が見えてくるんじゃないですか。

囲碁は盤の大きさで、将棋は再利用ありによって
ゲームの構造が複層かつ多重になっているという
考えをしてみたらどうですか。
>>583
チェスだって駒が取られなければ・・・多重になるわけでして

ただ、終盤に行けばいくほど可能な手が増えてくるっていうのは将棋の特徴になるかと。
その点、>>568のような手法は使えない。
ただ、終盤よりも、中盤が現状では問題。
585デフォルトの名無しさん:03/05/26 01:09
>>575
チェスでは既にやってる。
結果は強くなる。

将棋はそこまでプログラムが強くないから、
あまり効果はないでしょうが、詰手順の解析だけでも
有用ではあるから強くはなるでしょう。

棋譜DBは、意味づけが重要だからあまり効果ないと思う。

>>577
終盤は全体的にはまだ弱い。
必死もいまいちで、速度計算はおかしい。
詰手順の解析だけは異常に速く正確。

>>576
引き分けを減らすために、
チェスでは駒を強力に
将棋では駒の再使用をありに
した。

昔の将棋は、盤の大型化と駒の強力化を試みているが、
結局それらは捨てている。平行して、再利用ありを採用して、
それからかなりかけてゲームバランスを取った。
>>583
「ゲーム構造が複層かつ多重」というのの意図がつかみにくいが…

再利用がゲームにもたらすのは、「駒得より形勢重視」という視点じゃないか?
チェスの場合、駒損は取り返しがつかないから。
で、これがゲーム性の違いとして人間には感じられて、
コンピュータにとっては「評価関数を作るときの難しさ」の違いになると。
実際、チェスの場合は評価値はほぼ駒の価値によって決まってるが、
将棋だともう少し凝ったことを考えないと今のパワーでは強くならない。
>>583
>>565も言ってるけど局面判断の難しさより分岐の多さの方が効くと思われ。
「囲碁は盤の大きさで、将棋は再利用ありによって」
って結局は手数が多くなるということが最大の問題だと思うし。
思考時間=(1局の判断時間)×(考える局面)
だから。
1局の判断時間がゲーム性によって100倍になったとしても、
全体の思考時間は100倍にしかならない。
しかし1手ごとの可能な選択肢が2倍になると10手読みするだけで、
全体の思考時間は約1000倍になる。
>>586
別に将棋と張り合うつもりはないし、たぶん将棋の方が難しいけど、
それでもチェスは駒得だけじゃないよ。
むしろクイーンなどに成れるという意味合いなどからポーンの配置が重要。
「ポーンを制するものはチェスを制する」とか言うらしい。
589デフォルトの名無しさん:03/05/26 01:15
>>581
そもそも、最善の手が存在しない場合がある。

それは俺の考えだが、あなたは対人間を想定しているようだ。

対人用にチューンされた将棋プログラムはまだ存在していない。
例えば、詰んでいる局面で、もっともまぎれの多いところへ
玉を逃がすという機能はまだもっていない。

詰みが判明すると投了したり、自滅したり、短手数の詰へ
わざわざ誘導したりする。
41手詰を短時間で読み切る人間がいるのか?
>>588
 ボーンのフォーメーションなどはチェスの評価関数に組み込むのは
一般的ですよね。そういったゲームごとの特徴を評価関数に落とし込んで
しまおうっていう発想はあります。
 その考え方を変えろっていうのは一理あって、読む手の絞込みにも利用
すべきでしょうが、なかなか効果的な方法が編み出せないでいるようです。
>>589
>例えば、詰んでいる局面で、もっともまぎれの多いところへ
>玉を逃がすという機能はまだもっていない。

現状のアルゴリズムでもこういう機能は実装可能です。
勝敗の評価値の他に“紛らわしさ”を評価しておくとか、
必敗が決定したら少しでも“生き”の可能性がある枝を選んだり……

例えば、今では人間よりも遙かに強いチェッカーのソフトは、
できるだけ人間が混乱しそうな手を選ぶそうです。
592_:03/05/26 01:22
>>588
あ、いやこちらもわりと極端に言っているだけ。
あくまで「傾向として」という話で読んで。
tactical play vs positional playの話として、チェスの方がtactical playの占める比率が大きいと思う、ということ。
長文が多いからまともなのかと思ったら
知識のすり合わせを行ってるだけで、議論になってないじゃん。

595デフォルトの名無しさん:03/05/26 01:28
>>586
「ゲーム構造が複層かつ多重」

○複層
俺もひとに説明できるほどにはわかっていない。

単純なゲームに戦略は必要ない。
複雑なゲームには戦略が必要だ。
それはゲームそのものに戦略が存在するのではない。
そのゲームに効率よく勝つために、戦略という
認識の層を人間がつくっただけだ。

だとしたら、プログラムもルールとは別の認識層を
人間の認識とは違った形であってもひとつもしくは
複数もつ必要がある。

○多重
同じ局面でも、異なった戦略下では違う評価と候補手を持つ。
局面自体に解はない(場合が多い)。
その局面でこれからなにをどうしたいのかによって、
その局面は初めて意味を持ち、候補手があげられ、
結果としての着手が決められる。

○役割
駒は動き方が決められている。
しかし、それだけでは駒を知ったことにはならない。
駒は存在する場所によって働きが異なる。
駒は状況によって期待される役割が異なる。
これらに従って、同一の駒であっても重要度が異なる。
いや、提示されてる問題が、色々すでに議論されてる事だと、
やはり先人達の考えを紹介する必要があるわけで
>>595
認識に関しては評価関数で頑張ろうしています。
戦略って面では定跡の利用。

解がないという話は、評価関数をどう設計するかに正解がない
って話になると思う。

 役割は、駒がどの位置にあるかで評価関数を変えてるけど、
人間の手で直感的にふっているので結構いい加減。その分
先読みすることでまかなってはいる。
>>595
そういう視点を入れてみたらうまくいくかもしれない、という意見には「どんどんやったらいい」という感想だが、
そういう視点を入れなきゃダメだ、と言い切っちゃうのには反対。
認識の層はあくまで人間の脳みそと言うハードウェアが全体を一度に処理できないから生み出してるもので、
コンピュータにとってはそんなこと必要ないかもしれない。

ただ、人間がソフトを作るうえで、人間がわかりやすい形をとったほうがプログラムを適切に作りやすい、
という観点はありえる。
また、多層化は限られたリソースでやりくりするための方法だから、
それをコンピュータでもうまく使えるようになると強くなるかもしれない。
どうやってそれをやったらいいかはまだ知られてないけど。
このスレ、たまに思い出したかのように激しく伸びるなー
600デフォルトの名無しさん:03/05/26 05:11
>>597
評価関数
ひとくちに評価関数と言ってもその構造は様々では?
どのような評価値を設定するかだけではなく、評価関数の
構造そのものによって、駒の役割や複層的認識を
近似できる可能性はある。

定跡
定跡は、日本の将棋プロ棋士の怠慢によって、定跡体系
の整理が出来ていない。ところが、突き詰めて考えると
定跡体系は個人的なものである可能性が高い。
なぜならその人間の棋風が定跡体系における各手の
価値や選択頻度を変えているからだ。そして、整頓されていない
のは確かだが、究極の定跡体系は存在しないともいえる。
しかし、それならそれで将棋プログラムにはそれにあった
定跡体系が用意されるべきだともいえる。これには個別の
プログラムの癖に対応するという意味と、プログラム総体の
特性を加味するという二つの意味がある。

そういう考えをとるかとらないかは別にして、それが問題に
なるほどには定跡が整理されていないことが現在の問題だ。
まずは定跡のデータベースをきちんとつくること。
そのためにきちんとしたフォーマットを決めて、閲覧性・操作性を
向上させ、定跡DBの実現には誰をどう利用すればいいか考えること。
601デフォルトの名無しさん:03/05/26 05:12
局面の解
局面そのものに絶対的な解がないとしても、プログラムの
全体的特性と固有的癖を加味すれば相対的な解は存在する。

駒の役割
役割は数年前からある程度意識されているようですね。

ポジションやシチュエーションで価値と機能を変えて評価する。
ポジションとは盤上の絶対位置と駒の種類のことで
シチュエーションとは他の駒との配置のことです。

うまく整理されればこれだけでまだかなり強くなる。
602デフォルトの名無しさん:03/05/26 05:21
>>598
直観にはローカルな側面と汎用的な側面の両面がある。
人間の脳という処理機構の事情からとりあえずそうなっているだけで
コンピュータでは実現できないか実現する必要がないものもある。
しかし実現できてかつ有用なものもあると思う。

そういう視点を入れなきゃダメだ、と言い切っちゃうのは言い過ぎかも
しれない。しかし、ボードゲームのチェスから将棋にかけてのどこかで
直観的認識の取り込みを必要とするような分水嶺があると思うから
言い切った。

複層化については、その層の扱い方が肝だと思う。
>>602
こういうことを将棋で考えるにはここ2〜3年が勝負じゃないかなぁ。
5年もしたら、計算機の高速化と今の技術の延長的な地道な改良で十分プロレベルだったりしない?
で、難しいことを考えなくても力押しで何とかなったりして。

そういう意味で、>>602の言う「分水嶺」はすごい勢いで動いてると思うんだな。

で、結局何が言いたいかと言うと、今すぐがんばろうということで。
604山崎渉:03/05/28 12:43
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
>>603
将棋はおいといて、囲碁に流れとか。
今、将棋のプログラムを書き始めてるんですけど(まだ完成からはかなり程遠いですが…)、α-β探索について質問です。
探索部分は簡単に書くと下のプログラムみたいになると思いますが、
読んだ中で双方の最善手順はどのように得られるのでしょうか?

Move AlphaBetaPlayer::GetNextMove()
{
  m_MaxDepth = 3;
  AlphaBetaSearch(-1000000, +1000000, 0, m_teban);
  return m_BestMove;
}

int AlphaBetaPlayer::AlphaBetaSearch(int alpha, int beta, int depth, int teban)
{
  if (depth == m_MaxDepth)
    return m_pBoard->Evaluation(teban);

  vector< Move > movelist;
  m_pBoard->GetMoves(&movelist);
  int best_score = alpha;
  for(int i=0; i < movelist.size(); i++){
    m_pBoard->ApplyMove(movelist[i]);
    int score = - AlphaBetaSearch( -beta, -best_score, depth + 1, teban^1);
    if (score > best_score){
      best_score = score;
      if (depth == 0) m_BestMove = movelist[i];
    }
    m_pBoard->UndoMove(movelist[i]);
    if (best_score >= beta) break;
  }
  return best_score;
}
>>606
評価値と一緒に最善手もリターンするか、
参照渡しの引数で最善手を得るかすれば良いよ。
608607:03/05/30 14:29
おっと双方の最善手順でしたか。間違えた。(上のは一手だけ)
各ノードでそこから下の最善手順のリストを
末端まで記憶するようにすれば良いんだけど、ちょっとめんどくさいかも。
>>606
末端の深さがバラバラになるだろうから、手順が入る配列だけでなく、
手順の長さ、を示す変数が余計にいります。
こことか見るといいかも。
http://www.seanet.com/~brucemo/topics/pv.htm
>>606
んなもんlist<Move>を使って、下から返ってきたbest_move_listにpush_front()して上に返しゃいいでしょ。

ちょっとは考えた?さすがに甘えすぎじゃない?
と少し厳しめに言ってみる。
視覚的な面をどうするのかがポイントだろうなあ。駒の働き具合を見るには盤面を見るのが一番手っ取り早い。
盤面をぱっと見て優勢だと思えば無難な手でいくだろうし劣勢だと思えば無理筋でも指す。
絵画だっていくらコンピュータで構図を分析しても最後の良し悪しは人間が判断する。
こういう視覚的なものを組み込むのは難しいんだろうけどサ。
612デフォルトの名無しさん:03/05/31 06:50
>こういう視覚的なものを組み込むのは難しいんだろうけどサ。

そんな処理が今のコンピュータに出来てたら、変な手法を使わなくても勝てるレベルに
技術が進歩してるに決まってる。
その程度の判断もできないのか? 理系じゃない?
613直リン:03/05/31 07:13
このままPCの性能がUPして力押しで先読みするのと
新しいアルゴリズムが発明されるのとでは
どっちがさきに人間に勝つのだろう
615 :03/05/31 14:02
>>614
いくらがんがって先読みしても
勝てないだろうから、後者の方が速そう
前スレが読めるようになったでつ。
http://pc2.2ch.net/tech/kako/1004/10043/1004395614.html
617デフォルトの名無しさん:03/06/01 00:28
将棋差しの実力はスポーツのように時代と共に進化していると思われがちだが
実はそういうわけでもなく、あまり変わっていないみたいなことを
読んだことありますね。本当なのでしょうか。
>>617
「実力」の定義は難しいですが、定跡の研究により将棋は明らかに進歩しています。
江戸時代のベスト10 vs 現代のベスト10で対抗戦をやれば、現代の圧勝がほぼ定説。
天野宗歩や大山や羽生が、それぞれの最盛期で戦ったら? だとちょっと謎。
トップの中終盤力は、時代にはよらないでしょう。
将棋板にこの手のスレが定期的に立つんだが、今はちょっと見当たらなかった。
>>617
知識がものを言う世界だから、ノウハウの蓄積がある現代の方が
格段に強いのは間違いない。

ただ、それを純粋な実力かと言うと・・・

才能で言えば、昔の強い人の方が上かもな。
ちなみに、現代の棋士による、昔の棋士の評価は
かなり高いらしい。
この場合の評価とは、「知識が無いにしては強い」
とか、そういう類の評価だろうが。
http://www.kabushiki.co.jp/nami/
>升田9段も「天野君は13段」と、その飛び抜けた実力を認めている。
>ある現役一流棋士は、自身の修行時代は「宗歩は今でも通用しそう」、
>4〜5段時代は「5〜6段かな」、タイトルを取ったころは「A級8段は
>固い」と評価が変わり、「オレが宗歩を測っているようで、
>実はオレが宗歩に測られている」と気味悪がった。
>>621
2行目以降にあるように、宗歩は「常に一段上に思える」と言われていた。
そこで升田が13段と言った。つまり、自分は12段だと。
本当に、升田が13段と評価していたわけではない。
いや、本当に升田は12段級の実力であり、
本当に13段だと評価したのだろう。
平均的に考えると、定跡や戦い方の常識の分、
今の方が断然上なんだろうけど、
頂点だけを見ると、
どこが勝つかわからなくなるよな。
625デフォルトの名無しさん:03/06/01 16:39
頂点を見ても、定跡の分、今が断然上だろ。
でもそれは単純に勝ち負けで見た場合の話であって、
13段とかA級だとかの評価は、単なる勝ち負け至上主義の
評価じゃないだろう。
素質での評価とか、今の定跡を覚えたならという条件での
評価だろ。
626618:03/06/01 19:22
まだ、この話題続いてたか。将棋板の過去スレを拾ってきたんで、参考まで。

江戸時代の名人てどのくらい強いの?
http://game.2ch.net/bgame/kako/1014/10148/1014892893.html
627デフォルトの名無しさん:03/06/02 00:15
>>620
一部の棋士が知識に頼りすぎ。
628デフォルトの名無しさん:03/06/02 00:17
>>625
知識とノウハウ以外の、感覚とか地力の評価でしょ。
629デフォルトの名無しさん:03/06/02 01:44
某囲碁漫画を思い起こしたのは俺だけ?
「現代の定石を学んだ……」
本因坊秀作
神の一手
632606:03/06/03 00:26
>>607-609
ありがとうございました。大体わかりました。がんばってみます。

>>610
すんません。考えたけど効率のよさげな方法が思いつかなかったので・・・
>>632
この場合効率は考えるところじゃないと思うよ。
最初はいかにわかりやすく正しいプログラムを書くかに注意した方がいい。
その後でプロファイルとって最適化して頂戴。
ま、実行時間はどうせEvaluationとGetMovesがほとんどでしょ。
だから最善手の返し方なんかは誤差みたいな違いしか出さないと思う。

んじゃがんがれ。
知識ってのは序盤だけではないよ。終盤の技術も進歩してる。
終盤が進歩したからこそ、序盤で差を付けようとして研究しているのだから。
でも、序盤の進歩に比べれば、終盤の進歩は少し劣るかな。
終盤はパターンが多すぎて、いくら進歩しても序盤が変われば
すぐ役立たずになるからね。
でも、理論が必要な序盤に比べて、
逆に終盤は時間があればなんとでもなりかけてる。
詰みから逆に辿りデータを残せば良いのだから。
対局中にはプログラムで詰みを探して、
データに該当すれば良し、しなくても経験はどんどん生きる。
短期間では進まないけど、
今のPCの性能と、専用プログラムを組めば、
難しくはないし。
序盤は、時間をかければ確実に上にあがると言うわけではないが、
終盤は確実にあがっていく。
もっとも、ソフト会社はそれは好まないだろうけど。
売り物の将棋ソフトとしては、終盤は十分過ぎるほど強いな。
アマのレベルは超えてる。
638ハブ夫:03/06/09 08:22
ふう、過去ログを全部読み終わった、、。
記念カキコ。
639デフォルトの名無しさん:03/06/09 10:50
214 名前:名無し名人 本日のレス 投稿日:03/06/09 00:58 /aUInTYp
ttp://d.hatena.ne.jp/mozuyama/
6月7日の日記に「将棋と認知科学」のレポートあります。
(羽生善治4冠と松原仁氏の対談)
640ハブ夫:03/06/09 12:28
初記念カキコは良いが、
もう、このスレ終わっちゃったのかな?
将棋ソフトのソースコードがほしいな
>>641
うさぴょんというフリーソフトが公開してる。
名前がアレだけど結構強い。
>>642
ソースが汚くて読みにくい(^^;;
いつか直そうと思ってもう3年…(;_;)
>>641
デーモン将棋とWinShogiも公開されてるみたい。
645デフォルトの名無しさん:03/06/11 17:26
【科学】将棋 羽生善治名人の強さを日本認知科学会が分析
http://news2.2ch.net/test/read.cgi/newsplus/1055307421/l50
646ハブ夫:03/06/23 19:44
保守しておこう。
記念パピコ
648デフォルトの名無しさん:03/07/07 05:10
保守上げ
649_:03/07/07 05:15
650名無し@沢村:03/07/07 09:31
強い将棋ソフトをつくるには、プログラミングと将棋の両方で上級者である必要がある。
プログラミングは上級者でも将棋が初級者では、強い将棋ソフトはつくれないし、
将棋は上級者でもプログラミングが初級者では、強い将棋ソフトはつくれない。
ま、どちらかといえば、プログラミングよりも将棋のほうが上級者になるのは難しいので、
プログラミングの上級者すらほとんどいない2chのスレでは、将棋の上級者なんて一人もいない。
よっておまいらに、将棋ソフトを語る資格なし。
651:03/07/07 17:15
ふっ、そうかな?
652ハブ夫:03/07/07 18:46
あれ?HNが、、、?
> プログラミングよりも将棋のほうが上級者になるのは難しいので、
> プログラミングの上級者すらほとんどいない2chのスレでは、
> 将棋の上級者なんて一人もいない。

なかなか暴走した論理展開ですね。
>>650
論理展開にも飛躍があるが、そもそも前提が「偽」だからなぁ。
最近の将棋プログラムは作者たちよりずっと強いんだろ?
まぁどこまでを「上級者」と呼ぶかにもよるが…。

必要なのは、将棋を一般的な枠組みで捉える力だろ。
本当の意味で一流なプログラマにはそういう力が必須だから、「一流プログラマ」であることは十分条件になるが必要条件じゃないな。
「強い」のレベルが、二段〜三段程度でいいのであれば、「永世名人」の作者の
吉村さんは相当将棋が弱いらしい。

もしも初段程度で良いのであれば、「うさぴょん」の作者は今、24で13級でつ。
もしかすると、将棋プログラマの中で一番将棋が弱いんじゃないかと…(泣)
age
657デフォルトの名無しさん:03/07/09 00:49
王将取った場合の得点が極大になるようにすれば
将棋弱くても最適解出せると思うけど。
>>657
局面を収束させられるかねぇ。

損得のウエイトが駒の損得から寄せの速さにシフトしていく
過程は非常に難しいと思うよ…
659デフォルトの名無しさん:03/07/13 09:52
>>650
もっとも大切な資質が抜けてる。

天才と客観性。

>>654
自分の棋力がそのままソフトの壁ではないだろうが、
自分より強いソフトを作れても、自分の棋力を基点として
そのやや上にソフトの強さの壁がある。

そしてそれは思ったより低い。
つまりプログラマーだけではソフトは羽生に勝てない。

>>657
最終盤ならな。

>>658
シフトしたり戻ったり混ざったり。
どうしろとw
660アボーン:03/07/13 12:11
/ ∧∧ ヽ    / ̄ ̄ ̄ ̄ ̄
  | ( ゚Д゚) |  < 逝ってよし!!
  | |つ¶つ¶|   \_____
  (二二二二)
  .| ◎  ◎|
  ヽ____/
     ||
     ||          ____
    ゚.・∴ー=≡三.∴・.゚| アボーン >
661デフォルトの名無しさん:03/07/13 14:21
662山崎 渉:03/07/15 09:50

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
保守
664デフォルトの名無しさん:03/07/21 09:58
対局が始まってある局面から読んでも、ほぼ手遅れ。(上級者の場合)
ある程度採算を持って定跡、駒組みを選択しないとね。
後、読み切れないような先の予測に対する危機回避、感知も行わないとだめだろうね。
665デフォルトの名無しさん:03/07/21 15:46
>>655
本物???
>>665
うん。
今は12級に復帰したけどね(^^;;
667デフォルトの名無しさん:03/07/21 19:24
>>665
それだけ弱くてあれだけ強いソフトを作れることは
ある意味称賛に値する。

ところで、週刊将棋でコンピュータ将棋の特集が始まってますね。

今週の車輪はいただけませんが。
その程度は車輪とは呼ばないだろうと。
あくまで方向の話なんでしょうけど。
6681000GET:03/07/23 15:48
Javaで最強のコンピュータ将棋作った人いますか?
いたらソースを公開してやってください。
>>668
うさぴょんを移植すればいいんじゃないの?




最強じゃないけど……
>>668
exec()で東大5呼び出せば簡単
671デフォルトの名無しさん:03/07/26 16:16
最強の将棋ソフト作っても大して金にならんでしょうが。
ボランティアみたいでむなしいな。自己満足程度にしかならん。
出来ないくせに愚痴るなよ。
673デフォルトの名無しさん:03/07/27 00:07
年収数千万くらいいくらしいが。
昔どっかに書いてあったが。
674デフォルトの名無しさん:03/07/27 13:04
負けた後に、何処の手で明暗が分かれたかを逆探索させて
何故負けたかを計算させて学習させる様に汁

その局面の評価関数を出し直してプレイ再開、
んでソコの局面から始めてまた負けたら繰り返して、
勝つまで評価関数を変えるか、もうイッチョづつ局面を戻る、勝ったら確定

まぁ、感想戦だな
誰か評価関数作ってくれ。
>>673
多分売上げと間違えてるぞ。

>>674
"TD learning 将棋"くらいでググッてみろ。
677デフォルトの名無しさん:03/07/27 17:42
いや、年収。
別にそれくらいいくでしょう。
個人ベースで開発されているのに、メジャーなソフトだとどこの店でも
置いてあるんだから。

678デフォルトの名無しさん:03/07/27 19:29
俺余裕で作ってるけど
5行のプログラムだけど
10段のコンピュータにも勝ったよ
>>678の5行のプログラムより「10段のコンピュータ」の方が欲しい
680デフォルトの名無しさん:03/07/27 20:04
include一行。
残り四行が改行が無しと。
>>680
改行がないのに何で四行になるんですか?
682_:03/07/27 20:31
負けそうになったら星一徹って言う仕様はどうだい?
ひっくり返してもそのまま続けるヤシはいると思うが…
684デフォルトの名無しさん:03/07/27 22:28
CSA将棋+自前のDLLで作ってみた
先手ながら40手台で【うさぴょん】に負けてしまう
>>677
うーん、パソコンのゲーム市場ってかなり狭いんだよな。
割と売れてるエロゲーと同じくらいだと思うと、まぁ数千本だよな。
一本一万円のソフトは卸値が5000円だから、売上げが数千万ならわかる。
見えないように駒を移動させるとかすれば強くなるよ。
687デフォルトの名無しさん:03/07/28 10:09
>>685
読売に東大将棋は通算25万本売れたと書いてあったから、もっと売れてるんでしょ。
まだ出てから5年くらいだし。
>>687
そいつはすごいな。プレステ入れずに?
パソコンだけで年間5万本なら割といい商売だな。

あ、だけど東大って廉価版いろいろ出してるのか…平均卸し単価1500円くらいか?
その計算だと収入は1〜2000万ってとこか?

プレステ入れてなら5万本はまぁそんなもんか、って気もする。
プレステはロイヤリティもあるし、単価が低いんだよな…
689デフォルトの名無しさん:03/07/28 16:27
>>1
ってか根本的にしてみろよって??

日本語勉強しようね(;´Д`)
え?何?
真性に30スーパーハカー
692デフォルトの名無しさん:03/07/28 19:00
>>688
廉価版といってもLight版が確か定価3800円ですね。
Light版よりもメインの12800円のソフトの方がたくさん置いてある感じです。
年収数千万円というのは妥当なところでしょう。

そもそも収入に差がつくタイプの職業では、ホストでも保険のおばちゃんでも、
トップクラスは普通のサラリーマンよりもかなり稼ぐものですし、専業の
将棋プログラマーが何人もいる中でのトップクラスがそれくらい稼ぐのは
ごく当たり前だと思います。
>>692
おかしいなぁ、確か将棋プログラマで将棋だけで食ってける人はいない、
とかいうのをどこかで読んだ気がするんだが。
どこだったかなぁ。
>>693
柿木氏や山下氏は将棋プログラムしかやってないはず。
金沢氏は会社作ってルーチン売ってるが儲かってるのかどうかしらん。
東大将棋の棚瀬氏は暇すぎるのが嫌で就職したとかだが。
>>693
棚瀬さんが就職した時に、そういう情報がどこだったかでまことしやかに流されてました。
>>694-695
なるほど。認識を改めました。
697デフォルトの名無しさん:03/07/30 10:48
だいぶ前に柿木さんが近代将棋?のインタビューでサラリーマンやっていたよりも
収入が多いと答えていた。
ましてや柿木将棋よりもかなり売れてそうなクラスの作者はすごいもんだろう。
698デフォルトの名無しさん:03/07/30 11:18
柿木氏は富士通のPGだったかな。
柿木さんは研究所の研究員だったと思った。
山下さんはPG。
うさぴょんやってたら、com手番で「-3727em」って感じで
透明な駒みたいの打たれ(?)ますタ♪
♖♘♗♔♕♗♘♖
♙♙♙♙♙♙♙♙




♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖
>>701
がーん。見たことのないバグだ(泣)。
しかし、emっていったい…?
ありゃ、emptyのemとかじゃ・・・?
オイラが使ってるヤツが、ちと古い所為かな、今使ってるのは、

うさぴょん 思考部v1.1c UI v1.0 2002.8.31

ってヤツでした。

あと色々試したら透明な駒はドラッグしてる間だけ、×印に「だみー」って書いた駒(?)
が見えて、盤面の全ての場所へ移動出来ちゃいますね(味方の駒が居る場所以外は)。

だからどんなに離れてても王さんも取れちゃったり。

実際には王を取った場合は、取っても持ち駒に王は追加されなくて移動不能な透明な
王の機能を持つマスのヨウナものとして存在しているようですが。


「だみー」ってやっぱdummyって事?
育ての親さんが仕込んだ開発モードか何かの名残とか???
うーん、もしもありえないコマが盤上に出来れば、それを操作しようとしたら
確かにだみーって出るはずですね。
#例えば、金が成ったりすると、だみーになると思います(^^;

もしよろしければ、棋譜を見せてくださいませんか?
多分、今のバージョンにはないバグだと思うんですけど、心配なので。

思考部のバージョンなんですけど、一時期、ちゃんと日付を更新するのを
すっかり忘れてたことがあって(泣)、あんまり参考になりません(--;

sikou.dllっていうファイルの日付を見てもらえると助かります。
706山崎 渉:03/08/02 02:11
(^^)
707デフォルトの名無しさん:03/08/04 08:23
>>674
オセロソフトでは当たり前。
将棋ソフトある程度のものは必要。
でもおそらく将棋ではソフトの強化には
自動化できないという意味でいまのところ価値がない。

しかし、人間が使う棋譜解析ツールとしては意味がある。
序盤からたどって(激指、東大)、結果の勝敗から
逆算して解析結果を修正する。
楽しそう。
708デフォルトの名無しさん:03/08/04 08:30
年収とかモチベーションとか理論限界より、
根本的なソフト強化策言ってもいい?

25分切れ負けやめろ。

せめて決勝ではやめてくれ。
進歩を遅らせる足枷をはずせよ。

時間?資金?
そんなものは理論限界でもなんでもない。
やってないだけだ。
やれ。
脳を無駄遣いするな。
脳を使う前に、脳を有効に使える土俵をつくれ。
709ハブ夫:03/08/05 00:47
ところで、コンピュータvs人間の場合は
時間長いほうがコンピュータにとっては不利なのですか、それとも、有利なのですかね?
良くプロ棋士とやるときは早指しとか言って短い時間で指したりしますが、
それってコンピュータにとって不利だからそうしてるの?
それとも有利だからかな?
>>709
まぁ、適当で申し訳無いが、
長時間は人間に有利、
短時間はコンピューターに有利
だと思われる。

理由としては、
コンピューターは簡単なポカは犯さないので、
短時間でもミスをすることは無いということと、
長時間かけても長い手順を全部読み切れるかというと、
そういう訳でもないということなので。
711ハブ夫:03/08/05 01:36
なるほど。
ありがとうございました。
あと、一手深読みすると指数的に思考時間を増やさなければならないこと、
(ちょっと増えただけでは意味が薄い?)
また、思考時間が長いと、その割り振りを考えるアルゴリズムも必要であること、
何かも挙げられるかも。
713デフォルトの名無しさん:03/08/05 02:21
>708
確かに、25分切れ負けルールに対する過剰な最適化が進むと、進歩に影響が出るかもね。

とは言え、712も言ってるように、少々時間を延ばしたところで、わずかな棋力の上昇
しか得られないかも。
それに大会は会場を借りるのに金がかかるから、その辺りからの制約が…

加えて、商品化されてるソフトは、人間がストレスをそれ程感じない程度のスピードで
指す場合での最適化を要求されるだろうからなぁ…
>>708,713

コンピュータ将棋協会の中にも、決勝の持ち時間を延ばすべきだと主張している人もいる。
一方、持ち時間は同じで良いが、先後5局ずつくらいやりたいという人もいる。

どちらも実現しないのは、やはり会場や予算の都合もあるけど、
「そんなに問題だと思ってないから」だと思う。

だから、結局、
> 脳を無駄遣いするな。
> 脳を使う前に、脳を有効に使える土俵をつくれ。
と考える人が、コンピュータ将棋選手権に代わる、新しい土俵を作らないと変わらないよ。
715デフォルトの名無しさん:03/08/05 08:32
>>714
参加しているあなた達がやるべきことをなぜ俺がやらねばならんのだ。
当たり前の指摘をすると、解決されないところを見ると致命的ではない。
やれよと言うと「お前がやれ」
なにそれ?

君らは本気で将棋ソフト全体の進歩を考えていない。
「どういう状況をつくれば全体の進歩が速まるか。」
それが目標にも共通了解事項にもなっていない。

勝ちたい、儲けたい。
俺が。俺が。
今のルールなら金で勝てる。
それだけか。

名誉はどこに行った。
プログラマ伝統のボランティア精神はどこに消えた。
ボランティア精神は日本のプログラマには元からないがな(w
716_:03/08/05 09:07
>>715
本人達がそれでいいんだから別にいいんじゃないの?
将棋ソフトなんてあってもなくてもいいもんだし。
なにをそんなにムキになってるの?
本人達が必要性感じたら変わるんじゃないの?
718デフォルトの名無しさん:03/08/05 13:52
参加者ですが、25分切れ負けの何が問題で、代わりにどうしたらいいと
いうのか全く見えません。
15分ぐらいにして、それが切れたら1手30秒とかにすれば委員でないの?
確かに、1手30秒〜60秒+それをオーバーしたときの持ち時間制
が自然な気はするかもしれない。
持将棋模様で500手とか超えたときに、運営に差しつかえるから
1手30秒とかは無理と思われ。
だから、
「そんなに問題だと思ってないから」
って言ったでしょ。

「問題だ」と思う人が変えればいいのであって、問題を感じていない人が変える必要はない。

僕自身、25分切れ負けルールが本質的な問題を持っているとは思わない。

60分+切れたら1分とかの方が、「良い」棋譜が出来るのはたしかだと思うけど、
じゃぁ25分と比べて本質的に何か違うかと言われると、そんなに違いがあるとは思わない。

持ち時間8時間とか言われればそれはそれで魅力的だと思うけれど、
そんな大会に参加できる人間は非常に限られる。
>>722
>>715

さっきは、>>715って書き忘れた(^^;

コンピュータ将棋選手権のルールは、参加者が作っているんじゃなくて、
主催者が作っているもの。もっとも、参加者と主催者が重なっているところも
あるけれども、それは実際には全体の一部。

で、参加者には、ある決められたルールの大会に対して、参加する自由・参加しない自由がある。
今、コンピュータ将棋選手権に参加者がこれだけ集まるということは、
ルールに賛同する人が多いってことじゃないの?

参加者が沢山集まる=裾野が広いってことは、進歩に役立たないんですかね。
724デフォルトの名無しさん:03/08/05 15:59
718です。
補足。
25分切れ負けというのは意外と長くて、CSAから配布されている棋譜の
消費時間を見ると分かりますが、普通に1手30秒以上使っていっても
意外となくならないもんです。
また時に1手に2分以上考えたりするプログラムもあります。
勝負どころで時間を使って、普段節約したりとか、そういう人間的な判断を
させたりというのも面白い部分の一つです。
725デフォルトの名無しさん:03/08/05 21:58
>>715

>君らは本気で将棋ソフト全体の進歩を考えていない。
>「どういう状況をつくれば全体の進歩が速まるか。」

とりあえず、その状況とやらをもっと具体的に説明してくれ。
もちろん、なぜその状況が進歩に繋がるかについての根拠と、進歩に対する効果の
対コスト比にも言及してな。
とりあえず、チューリングテストに合格するような将棋プログラム作って欲しいな
意味がわからない
チューリングテストってのは、棋譜だけ見て、これは人間と指してるのか
コンと指してるのか判断することれす。

既に級位者には十分合格してると思うけどね。
>>724
> 勝負どころで時間を使って、普段節約したりとか、そういう人間的な判断を

勝負どころを判断させるのって難しそう・・・
730デフォルトの名無しさん:03/08/06 09:17
>>717
将棋ソフトに計算による計算ではない何かを期待するから。

>>718
アイデアや理論を盛り込むときに制限となっているから。
ゲーム理論開発というよりマシン勝負になっている。
より富める者はより多く盛り込み貧しい者は切れ負けを恐れ
少ない知恵をさらにけずる。きみたちはアホか、全体ではアホなのかと。

>>719-721
どんな持ち時間などの条件がソフトの進歩にとって好ましいのか。
参加者で洗い直してみればいいのに。
得意でしょ、そういうの。

>>723
25分切れ負け
決勝を総当たりにできる。
大会運営をなんとか毎年続けられる。
参加者の激増にも何とか対応可能。
時間配分の自由。
優れてたよね。

25分切れ負けは現実と理論の妥協としては優れていたわけだけど
それがソフトの進歩に対して壁になっていないしならない?
731デフォルトの名無しさん:03/08/06 09:17
>>725
それはお前らが考えろよw

「「どういう状況をつくれば全体の進歩が速まるか。」
を考えるようにしろ。」

「状況を教えてくれ。」


もしかしてアホなのか?

プログラム言語は書けても、俯瞰性やら論理性はないわけ?

全体として何を目指しているのか、それが自動的に早く達成できる
ルールを設定しよう、とか一歩引いて考えたこともないんだろ。
732デフォルトの名無しさん:03/08/06 10:36
参加者です。
だから、問題だと思ってないんだって。
あなたは最初からたいした根拠もなく、問題だと決め付けてるわけで。
大体現在、20万くらい出せば最高速級のパソコンが買えて、それが何百万もするワークステーションとかよりも
速い状況で、「富めるもの」とそうでないものの差なんか関係ないでしょうが。
>>731
少しわかる気がします。
例えば現在考えられ得る理想的なマシン環境をネット上に構築して
1年中対戦をえんえんと休みなく続けて、そしてプログラムも任意
のタイミングで更新したり。それだけでも今の大会形式よりいいか
も知れない。まぁ、他にもいろんな方法があるかも知れませんが、
マシン環境にしろ統一的な定跡研究にせよ、ちょっと想像した
だけでも時間と金が莫大にかかることが予想されます。
誰もがそこの解決を断念してるんだと思いますよ。それを解決しよ
うとしないお前等はアホというのなら、その通りだと思います。

今のところ実力をあげて、認知度を高め、企業の参入を待つという
のが精一杯という気がしますが。いいアイデアがあるんですか。
評論家は口はだしても責任を負わない。
責任を負わないから真剣に考えない。
てすと
736デフォルトの名無しさん:03/08/06 15:56
000のコールサイン♪
737デフォルトの名無しさん:03/08/06 16:27
ちょっと前の将棋ソフトだとこっちが振り飛車で受けに回ると
コンピュータがまったく攻めてこないんだけど、
それって最近は改善された?
>>737
本当にどっからも仕掛けられない形ってあるでしょ?
そのときは攻めてこないが、普通の形なら攻めてくる。
739白砂青松 ◆HakusaRWQc :03/08/06 18:00
>だから、結局、
>> 脳を無駄遣いするな。
>> 脳を使う前に、脳を有効に使える土俵をつくれ。
>と考える人が、コンピュータ将棋選手権に代わる、新しい土俵を作らないと変わらないよ。

 というのは少し言いすぎかなぁ。実際に参加している側の気持ちとしては判るけど。
その後の>>715もちょっと言いすぎだと思うし……。

 個人的には、切れ負けではなくて、30秒以上の秒読みがほしいと思います。
 もう、将棋ソフトはアマ有段者やプロを射程に捉えつつあります。やっぱり、
「対人間用持時間」で将棋ソフトがどう戦うかを見てみたい。もちろん、決勝だけで十分です。

 少ししかまともにならないかもしれないけど、でも、その「少し」を見てみたい。
 30秒はコンピュータにしてはなかなか長いでしょう? 終盤で、残り時間が少なくなって
乱れるより、ずっとちゃんとした戦いを続けるのを見てみたい。決勝くらい、300手超えの
熱戦があってもいいぢゃん、とか思うんですよね。無責任な観戦者の立場としては(笑)。

 もっとも、自分が東大将棋とかと指してる時って、大体お互いに15分くらいしか時間
使ってない気がするんで、そういう意味で「あんまり意味がない」ってのは説得力があるかな……
とも思いますが。
>>738
そんな形めったにない。

×普通の形なら攻めてくる。
○コンピュータにとって仕掛けがある形なら攻めてくる。
741デフォルトの名無しさん:03/08/06 18:32
>>739
選手権の棋譜を見てみると、終盤戦で時間に追われるという現象はほとんどありませんよ。
東大将棋5マスター相手にで振り飛車で受けてみたら
ぜんぜん攻めてこないどころか駒組みむちゃくちゃになってしまった。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/999294620_83/ts5.gif

ちょっとでも定石DBから外れると攻めてこないな。
>>742
人間でも、後手から仕掛けられんでしょう。
といって動かせるのは飛車、角、金ぐらい。
先手は形が良すぎ。それまでの手の流れは分からんが、うまく組んだな。
端攻めか、大ゴマの交換を狙うか。居飛車党だから感覚は違うと思うが。
まー、できればずっとこの良い形に浸って居たいな。
744デフォルトの名無しさん:03/08/06 20:17
>>732
それは十年前から現在までの特殊な状況に支えられてる幸運なだけ。
間糞と詐欺ンテルと台湾韓国中国に感謝しろよ。日本のメーカにもな。

いずれWindows独占体制が自壊したり、中進国ダンピング体勢が崩れるなど、
ハードの速度伸長ペースが鈍れば、持てるものと持たざる者の差は開く。
ある時点のハイスペックが待っていても手の届くところになかなか落ちてこないから。
それで、新規に個人が参加した場合、たとえアイデアや完成度が高くとも
勝てないような状態が来る。

>>733
そんな大仰なものは必要ない。
現在ちょこっとルールを変えれば、将来にわたるソフトの強化ペースがごろっと変わる(かも)

>>734
評論に一般論で返して何か意味があるのか。

>>739
ルールと強化ペースにはどのような相関関係があるのか。
現状で25分切れ負けルールが強化に及ぼす悪影響を抑えているのは何か。
本質的に制約を突き抜けたのか、特殊状況への依存か、プログラム限界が及ぼす
相対的効果か。
敵はライバルソフトでもあるが最後は人間。対プロを視野に入れたルールとは。

参加者も考えてるのかな。
政治的に無理だから諦めてるのか。
それができるぐらいならプログラマにはならんだろう。

それとも政治的に強化ペースを抑えているのか。
強豪は少なくとも不利ではないからねえ。
見くびっていたがプログラマは実はミニゲイツが多いのかw
生産性のかけらも無いスレですね。
746デフォルトの名無しさん:03/08/06 20:59
>>733
>時間と金が莫大にかかる
ルールいじりはそれを省くというか含む。
ルールを変えれば時間と参加者の欲が自動的に解決する。
だから目標に応じた最適なルールを考える価値がある。

>定跡研究
24と提携しろよ。
出現頻度管理は当然やるとして、対局者レーティング、最新性による重み付けをして、
勝負形のタイプなどの分類をして、各自いじりやすい規格のデータベースにすれば
いいように思うんだが。
24との連携は兎も角、そういう協力もそろそろはじめたら?

>企業の参入を待つ
いまさら・・
似たり寄ったりになって企業から値切られる前に
協賛金をぶんどって積み立てておけよ。
強豪からも集めてなんちゃら基金とかつくれば?
747デフォルトの名無しさん:03/08/06 21:09
>>746
値切られるも何も、そもそも現在企業から得られている協賛金なんて、
雀の涙程度なわけだが(w
748742:03/08/06 22:04
>>743
>人間でも、後手から仕掛けられんでしょう。
娯楽ソフトなんだから多少不利でも居飛車側は攻める義務があるでしょ(藁

>先手は形が良すぎ。それまでの手の流れは分からんが、うまく組んだな。
いや、教科書どおり囲ってたらまったく妨害されずにこうなったよ。
あの後何度か試してみたけど早い段階で居飛車側が仕掛けてくると
なし崩し的に戦いが始まってしまうけど、双方囲いに走ると大体膠着状態に陥る。
そしてCPUは囲いが完成してなおやることが無いと囲いを解体してしまう。

序盤の定跡と中盤の隙間の思考ルーチン(方針決め?)が弱いんじゃないかと思った。
25分切れ負けでもだいたい時間は足りているから大丈夫だし
しかも300手になると秒読みの場合に困るでしょう?

…というのは矛盾を含む論理だと思うが。その意見自体の是非はともかくとして。
>>746
どなた様かは存じませんが
ソフトを作ったこともない人間が偉そうに能書きたれても説得力も何にもないんだよ。
そんな絵空事は東大に勝つソフト作ってから言ってくれ。

って、オレモナー。
>娯楽ソフトなんだから多少不利でも居飛車側は攻める義務があるでしょ(藁
まーそーやな。

>序盤の定跡と中盤の隙間の思考ルーチン(方針決め?)が
>弱いんじゃないかと思った。
目の付け所が鋭いな。基本的に今の将棋ソフトの弱点は中盤で、
それを少しずつ改善しているが、その隙間が弱いと。
製作者じゃないから分からんが、そーかもしれないね。
>>748
>序盤の定跡と中盤の隙間の思考ルーチン(方針決め?)が弱いんじゃないかと思った。

まぁ、そんなことはずっと昔から言われ続けてることなんだが・・・。
753デフォルトの名無しさん:03/08/07 00:39
>>749
その2つは確かに矛盾しているようですが、ほとんどの場合は問題になっていなく、
しかし運営としては最悪のケースを想定しておかないといけないということです。
一つの試合が延々と何時間も続いてしまってということになっては困りますから。
うーん、多分ほとんどの人は25分切れ負けにそんなに特化したプログラミングはしてません。
つまり、それによって進歩の方向性を制限するような小手先の強化はしてません。
だから、特にルールが悪影響を与えているようには思えません。

あと、強いソフトがスペックの高さで勝っているという印象があるみたいだけど、
それはまぁ間違いでしょう。
やっぱり強いソフトが強いのは、ハードの差による違いとは次元が違います。
決勝の辺りで戦ってるソフトがほぼ最高スペックのハードをそろえるのは、
プログラマ自身の精神衛生上の問題な気がします。

あと、30秒将棋にすると
「どこが勝負どころなのか」「どこで時間を使うべきなのか」
を考える必要が無くなって、ルール改正が逆に進歩を妨げる方向に働きそうです。
基本的に、進歩を促すためにはより厳しいルールを設定しないと。

もちろん、今のソフトが8時間とか持ち時間を与えられたら持て余すのも事実で、
長い時間を有効に使う研究というのもありかもしれません。
が、プログラムを作るという観点からはちょっとつらいですね。
何度も対局させて、そこで出てきた問題点を潰して、また対局させる、
というのがプログラムを育てる普通の方法なので、一局16時間もかかっていてはたまりません。
755デフォルトの名無しさん:03/08/07 08:36
>>754
いや、もう25分切れ負けは現状では実害が小さいことは理解した。
運営上は切れ負け以外は弊害が大きく、かといって手数で制限
すると、より悪影響が大きそうなことも理解した。
切れ負け以外だと千日手、持将棋狙いになりそうなことも。
そしてなにより運営の継続が進歩にとって第一であることも。

しかしそれでも俺は思う。
最初から25分切れ負けを前提に 有 効 な アイデアを出してませんかと。
25分切れ負けだからと実装を諦めている理論はありませんかと。
強豪は資金によるハイスペックと、先行を活かした最適化で
同じ25分切れ負けでも相対的に持ち時間に余裕ができて、
小改良の面でも有利なのではありませんかと。
持たざる者はハードの長足の進歩と廉価化を当たり前だと思ってませんかと。
何が原因かは知らないが全体が壁に突き当たってませんかと。

本当にプロに勝つ気があるのかどうかと思ってしまった。
馴れ合いで流す高速な序盤、はなから諦めている中盤、
ソフトの癖にポカと大逆転が起きる終盤。

プロのゆっくりとした序盤は儀式だとでも思ってるの?
ソフトの究極は揚げ足取りの受け将棋になるの?
ソフトの終盤て実は運任せなの?
なんのためのゲーム研究なの。
将棋が人間にとっては完全でも、コンピュータにとっては
不完全なゲームであることを実証したいわけ?

長くみんなで使い回せる序盤データベースを整理しようとしない。
画期的な序盤解釈理論は影も形も見えそうにない。
中盤打開の新理論の模索も後回し。
理論的には手が届くところにある終盤をつめようともしない。
756デフォルトの名無しさん:03/08/07 08:36
25分切れ負けと勝たねば無意味という枠が大前提になって
名人になるという目的はお題目になってませんかと。
人工知能はただの夢物語だと思ってませんかと。
参加者同士は敵ではなく共同体なんですよと。

長い台詞を小さな声でいいたい・・
だだしこれだけは大きな声で言いたい。

「状況とルールは所与のもの。しかしそれを設定する主体は
意志と目標を持ったあなた方なんですよ。」
>>756
選手権の対戦相手は仲間でもあるけど、敵でもあると思う。
>>755-756
夏厨必死だな
序盤データベースの整理など昔から言われ続けている意見と
25分切れ負けの廃止というおまえのこだわりを同列に語られてもなー
あと、切れ負けがなくなったらこういう実装が可能になるんじゃないか
とかもっと具体的な話をしてくれ
抽象論だけでお茶を濁されても話は進まないから
理想の将棋ソフトができるまで、
ここで批難し続ける気か?
序盤データベースなんか作っても意味無いよ。
定跡なんかあっさりと覆される物だし、なにより変化するのなんか簡単だ。
だいたい、相手も同じデータベースを使ってたらどうする気なんだか。
(つか序盤データベース化にこだわる人って将棋初心者が多いような・・)

>>755は自分が納得できる大会を自分で主催したらどうなの?
参加費10万円くらい取って持ち時間5時間、秒読み60秒のリーグ戦で
1ヶ月に渡って繰り広げるという壮大なコンピュータ棋戦を作る。
参加者がいるかどうかは知らないけど。
解釈抜きの定跡って逆に有害だよ。
定跡から外れたとたんにデータベースからほっぽりだされてしまって
定跡の意図と思考ルーチンが食い違うと支離滅裂な手を指してしまうからね。
763デフォルトの名無しさん:03/08/07 13:23
プロと言っても元々趣味でやってたり、学生だったりして、実力があったから
プロになったわけで、その結果金持ちになって普通の人より有利な立場に
あったとしても、結局は本人の実力があったからなわけでしょ。
コンピュータ将棋は誰にでもチャンスのある公平な分野だと思う。
764白砂青松 ◆HakusaRWQc :03/08/07 14:58
 755が何を言いたいのかよく判らないんだけど、個人的に思っている話を進めちゃうと、

 人間の長考って、方針を決めたり勝ちを決定付けたりといろいろ理由はあるけど、
結局のところ手をいっぱい読んでるんですよね。それまでは読み切って指しているわけではなく、
大局観や経験に頼って指していたのが、長考では読み切ろうとする。
 でも、コンピュータの長考ってことを考えると、確かに長考の時にコンピュータは
手を読んでいるわけだけど、じゃあ長考していない時もそうかというと、やっぱり
手をいっぱい読んでるんですよね(笑)。
 何が言いたいかっつーと、長考の際の「読み方」の質が、コンピュータの場合は
人間ほどに変わらないってことです。
765白砂青松 ◆HakusaRWQc :03/08/07 15:09
 でね。
 コンピュータの場合、評価関数の不正確さのために、深く手を読んだって
正着が指せる確率が上がるかっつーとそういうわけではないですよね。
 なんで、長考という「作業」そのものが、実はコンピュータには向いてないのかなと。

 25分切れ負けに適したソフトを作ってるんじゃなくて、評価関数がヘタレだから、
25分切れ負けくらいの短い時間であっても、8時間の持時間があっても、たいして強さは
変わんないのかなぁ……と。

 で、755の話とつながるんだけど、前述の理由から、

>最初から25分切れ負けを前提に 有 効 な アイデアを出してませんかと。

 ということはないんだろうなと白砂は思ってます。
 ただ、現在の評価関数の作り方って、「スピードをさほど犠牲にしないで、
けど今まで以上の効果が出る」ものを目指しているような気がするんですよ。
うーん、言葉が悪いかな。要するに、仮にいいアイディアを思いついたとしても、
それを実装するとえらく長考派になってしまう。柿木も真っ青、みたいな(笑)。
その場合、きっと作者さんはその評価関数を実装しないと思うんですよ。
「そんなもん使えねーよ」って。
>25分切れ負けだからと実装を諦めている理論はありませんかと。
 と同じような意味ですけど。

 けど、そういう「時間的な制限」を取っ払った、とにかく正確な評価関数
というのができたら、長考という作業がコンピュータにとって「意味のある」
ものになるかもしれない。そしたら、もっと強いソフトが出るかもしれない。
 そういうのを、見てみたいなぁ……と思うわけです。

 755さんが言いたいのも、そういう意味のことなんじゃないのかなぁ(違ったらごめん)。
今、白砂タンが イイ! こと言った。







のか???
評価関数に、画像認識の技術を使ってるとこ無かったっけ?
768767:03/08/08 07:29
一定の駒の組み合わせを、記号みたいに定義しておいて、
盤面から記号群を読み取って、認識するみたいなやつ。

ずっと前にテレビで見た気がするんだけど。
勘違いかなぁ?

>>764-765 を読んで、なんか気になったんで。
>>765
うーん、あんまり評価関数に重い処理を実装しないのは、
「その分1手先、2手先まで読んだ方がいいや」
と考えているからなので、この辺は難しい問題です。

評価関数が多少不正確でも、1手先まで読めた方が結果として正確になるという考え方ですね。

もしも、私が
「100倍時間がかかるかわりに、現状のアルゴリズムで5手先まで読むよりも
正確な評価が返ってくる評価関数」
というようなものを開発できたら、喜んでそれを使います(^^;
>>739

>だから、結局、
>> 脳を無駄遣いするな。
>> 脳を使う前に、脳を有効に使える土俵をつくれ。
>と考える人が、コンピュータ将棋選手権に代わる、新しい土俵を作らないと変わらないよ。

これは私の考え方としては変えられないかなぁ。

大会自体は、誰が開催したって構わないわけで、実際、学生選手権みたいな形で
ボランティアベースで行われているわけです。賛同者をきちんと集められるルールを
設定して、ネット上で声をかければ、参加者も相当数集まるでしょう。

インターネット対局を許すような形にすれば、参加者の負担もかなり軽減できます。
(この方法は、インチキが可能なところが問題なんですが。)

そんなに敷居が高いわけではないので、「問題がある」と思う人が問題意識に沿って
動かないようだと、タダの煽りにしか見えないし、聞こえないかと。

冷たい言い方をしているように見えたかも知れませんけど、
新しい土俵を作る提案や、そのためのボランティアの募集であったら、
喜んで議論しますし、賛同できる提案であれば、ボランティアもします。

でも、>>708 >>715 だけの発言じゃ、「タダの煽り」にしかなっていないんですよ。
>>755

> ソフトの究極は揚げ足取りの受け将棋になるの?

うん。悪い言い方をすると、多分これはそうなる(笑)。

ただ、それを非常に高いレベルでやることが出来るようになると思っています。
大山名人の受け潰しのように。
あれを揚げ足取りとは、誰も言わないでしょ?

実際、自分から仕掛けることは、今のアルゴリズムは目指してないです。
もしも、ソフトが仕掛けたように見えたら、それは実は「揚げ足取り」で、
相手に仕掛けられるようなミスがあったから。

もっとも、うさぴょんみたいな弱いソフトは、相手に隙があると思い込んで
成立してない仕掛けをすることがあるけど(笑)。
772白砂青松 ◆HakusaRWQc :03/08/08 18:58
>>769
>>評価関数が多少不正確でも、1手先まで読めた方が結果として正確になるという考え方ですね。

 だからそこがどーなのかなぁと。
 現在の評価関数が、長手数の読みに堪えられるかどうかっていう話です。
 極端な話、今の100倍の時間がかかる関数であっても、今よりも倍くらい「正しい」
評価関数であれば、そいつを実装したソフトを見てみたいなと。
 今のまんまでも、人間のように長考すれば、読んだ分だけもの凄いいい手を返す、っていう
んであれば問題ないんですけど、今のまんまだと一定時間以上は読んでも無駄になってしまう
んじゃないかと。
 なので、もっと「読める」ソフトが出てきてくれたら嬉しい。けど、25分切れ負けっていう
ルールが邪魔しているんであれば、それを取っ払った大会なり勝負が見たい。

 そういうことなんです。
>>771
ちょうど出かけるところだったので、思い出したのにフォローし損なっちゃいました。
相手モデル探索(OM-Search)というアルゴリズムを、静岡大の飯田先生が
論文で発表されていましたが、こういうアルゴリズムが進化してけば、
おそらく「積極的に仕掛ける」プログラムもできると思います。
sikou.dllの更新日時は2003年1月27日、2:48:26でした

csaファイルも一応upしてみましたが、
最近PCの挙動がぁゃιぃので一応アンチウィルスソフトを起動させてからDLしてくらさい(汗、、、
ttp://cgi.2chan.net/up2/src/f20187.zip

102手目ですね
>>772
うーん、変な話なんですけど、長い手数を読めるようになればなるほど、
評価関数は変にひねっていない方がいいんじゃないかとも言われています。

倍くらい「正しい」評価関数っていうのも難しいですが、
ただ、今の評価関数で一番実装が不十分なのって、「速度計算」だと思うんですよね。
「速度計算」を評価にうまく加味できればいいんでしょうけど。

ところで、「人間のように長考すれば、読んだだけ物凄いいい手を返す」ために邪魔に
なっているのは、本当に評価関数なんでしょうか?

実は、今の「うさぴょん」に物凄い長考モードがあるのは、ある実験の名残です。
その実験こそ、長考すればするほど、本当に強くなるのか?

実際に実験してみると、メモリが足りないとか今のマシンだと熱暴走するとか、
いろんな知見が得られましたが(笑)、柿木将棋Vの最強レベルに統計的に
優位な差を付けて勝ち越すには、
・だいたい30倍くらい(笑)時間をかける
・読む幅を広げる
ことが必要であることが分かりました。

うさぴょんの場合には、邪魔になるのって、どちらかというと枝刈りのやり過ぎで、
評価関数はあまり関係ないのかも知れません。
>>774
ありがとう!
調べてみます。
>>774
ファイルの日付から言って、バージョンは、正月明けβ5ですね。
うーん、引っ張り出してやってみても、うまく再現しない(ーー;

ここで3七歩成ってやりたかったんだろうなー。
3七歩成は結構厳しい手ですよね。遠くの角が利いてるし。

こういうありえない手を指す時って、いくつかパターンがあって、
前の読みが変な風に残ってたりする時とかなんだけどなぁ。
もうちょっと調べてみて、再現するといいんだけどなぁ。

また何か「怪しい」動作があったら教えて下さいね。
評価関数は探索手法と密接に関係したものであることを忘れてはいけません。
読みが足りない部分を評価関数で修正したり、逆に評価関数が不正確な部分を深く読むことで補ったりするわけです。
なので、評価関数だけ変更しても望んだ結果が出るわけではありません。
与えられた時間の中で、評価関数と読みが絶妙にバランスする点を見つけることが、
その与えられた時間での勝負で「強い」ソフトの開発に必要なんですね。

そして、このバランス点は「与えられた時間」を変えれば変わってくるもので、
25分切れ負けと持ち時間8時間という違った条件では確かに異なるでしょう。
ただし、過去数年間の流れとしては、
「より長い時間を与えられたなら、読みの方をより重視して評価関数はよりシンプルにする」方が強くなっている傾向があるようです。
もちろん、この知見がそのまま外挿できるかどうかはわからないわけですが。

しかし、ソフトの開発にはどうしても試行錯誤が伴います。
一手30秒とかの手を大量に指させて、その試行錯誤を一年繰り返してやっと満足いく「バランス点」が得られるとすると、
一手30分の手を指させる時に同じ回数の試行錯誤を繰り返すと60年かかっちゃいます。
その頃にはハードが進化してもう得られた「バランス点」は使いものになりません。
そういう意味でも長時間考えるソフトを作るのは難しいわけですね。

もちろん、その開発の速度、進歩の速度自体を何とかする方法も色々考えられているわけで、
この先は段々、将棋ソフトだけに留まらない人工知能分野、
更に広くコンピュータ科学分野の研究内容の話につながっていきます。

779デフォルトの名無しさん:03/08/09 06:33
>>754
>基本的に、進歩を促すためにはより厳しいルールを設定しないと。
すごく引っ掛かったのでいう。

天国がある。
増えて多様化する。
地獄になる。
減って特殊化する。
住めば天国でまた増えて多様化する。
以下ループ

進歩というのは与えられた「厳しいルール」に特殊化することで
進んでいるかどうかはわからない。
なんせ君たちには長期目標がないんだから。
780デフォルトの名無しさん:03/08/09 07:48
>>764-765
だいたい同じ。

量の改良には枯れた土俵が有効で、
質の転換には新しい器が必要なのか。

>>768
画像そのものじゃないだろ。
画像認識の応用?
ちょっと考えてみた。
おもしろそうな予感。
調べてみる。

>>769
深く深く探索。
それだけじゃつまらん、
終盤に関してはもはや深さより広さ。
中盤に関しても深さではない何か。
そういうのは欲しくない?

>>771
週刊将棋の羽生の発言だろ。

>>775
速度計算、評価関数ではない何か
足枷になってるじゃねえかw

あとな速度計算いうなら必死とは言わんが
詰めろリストアップぐらいできるようになってくれ。

>>778
む、知的。異質なレスがw
781デフォルトの名無しさん:03/08/09 08:19
>>778
なるほど。
きちんと25分切れ負けの意味を考えている人も多いんですね。

では、商用化にささえられるソフト開発という視点から。


強い対局相手はもういらん。
すでに弱点を狙ってもなかなか勝てないw

対局ソフトとして強化するという前提は崩れているから
数秒〜数十秒で着手を返す機能をつめても意味なし。

なら、なにか。

プロの対局観戦なの。

だからね、着手生成の時間はたっぷしあんの。
でも今のソフトじゃ役に立たない。
考えさせてもどんどん臆病かやけっぱちになるだけだからw

商用としてそういう路線は考えてないわけですか。
手軽な(つまり速い)対局相手として強いというのは
そろそろソフトの売り文句にならなくなりますよ。

かといってプロ棋戦に参加するには遠い。
プロ棋戦を荒らしまくるwまでの時間稼ぎとして
タイトル戦を解説できる、もしくはプロの棋譜の
解釈に使えれば売り物になるわけです。

漏れが欲しいだけなんですがw
782デフォルトの名無しさん:03/08/09 08:25
>>778
>もちろん、その開発の速度、進歩の速度自体を何とかする方法も色々考えられているわけで、
この先は段々、将棋ソフトだけに留まらない人工知能分野、
更に広くコンピュータ科学分野の研究内容の話につながっていきます。

このあたり、さわりを書いてもらって
文献リストとかリンクをつけていただけません?

漏れには豚に真珠でも、他の人にはためになるかと。
もしかしてすでに常識wかもしれませんが
そこをなんとかお願いします。
783767:03/08/09 08:57
>>780
囲いや手筋の形や、その組み合わせなんかも記号としておいて、
ノイズがのったり、形がちょっと崩れたり、
伸びたり縮んだり?しても適当に認識して、
その後、なんか重要な事をして値を返す。

みたいな感じだった気が……。
やっぱり、勘違いかなぁ……。
>>780

すでに>>778ですごく良いフォローがついてしまったし、制限時間があること自体は
もう問題だと思ってないということなので、今更なんだけど。

読みの幅を広げることも含めて制限時間に対するバランスを取る行為でしかないです。

n手スキ=速度計算とか必死の探索も時間に対するバランスの問題。

マシンが遅いときには、通常の先読みの内部ノードで詰め将棋を呼ぶのは難しかった。
で、そのころは、必至をかけるための専用のルーチンがあって、探索開始する局面でだけ
必至がかけられるかどうかを探索していた。

今は、内部ノードでも「詰め将棋」を呼び出すことができるようになった。
その結果、詰めろの探索や詰みの探索は、通常の探索と一体化し、何手か先の局面で詰めろが
かかるとかも分かるようになってきた。

この先、マシンの速度があがっていけば、内部ノードで「詰めろの探索」を呼び出せるようになるだろう。
そうすると、今は1手スキくらいから急に強くなると言われているコンピュータが、2手スキくらいから
急に強くなるようになるはず。
>>780
羽生さんがどれだけ現在の探索アルゴリズムのことを知っていて、どんな発言をしたのかは
知りませんが…。
今のコンピュータ将棋の探索って(さんざん既出ですけど)目的をもって何かするんじゃなくて、
闇雲に全部探索したなかから有利になる手・不利になる手を探す処理なわけです。
その処理の中で見つけた、有利になる手順って、やはり悪い言い方をすれば
「揚げ足取り」にしかならないと思っています。「不利になる」手順を見つけちゃうと、
とたんにチキンになっちゃうしね。

「勝負手」をはなったりするような研究はまだ発展途上です。
で、この研究の完成度があがるより先に、「プロの誰かに勝つ」日は来てしまうんじゃ
ないかなーと。
あ、でも、ここの考え方は能天気すぎるかも知れません。
>>785の続き。

>>775でも言ったけど、今、強いソフトを作ろうとしたら、やはり評価関数に
「なんとなくこれくらい」というような速度計算をうまく入れてあげないといけないと思う。

たとえば、居飛車と振り飛車の対抗形で、居飛車が船囲い、振り飛車が美濃囲いの時に、
「なんとなく」速度計算が評価に入っていれば、振り飛車に捌かせたら居飛車良くない
(美濃囲いの方が崩すのに時間がかかるから)とか評価できるのではないかと。

でも、読みが深くなって、正確な速度計算ができるようになれば、この「なんとなく」は
邪魔になってくる。

すいません、さっきの>>786>>784の続きです m(。。)m
>>786の続き。

だから、>>780の期待しているような、まともな速度計算じゃない。期待させてごめん。

でも、「詰めろ」のリストアップくらいなら、今のプログラムでも十分できると
思うんだけどなぁ。
それをユーザに機能として提供するかどうか、使い物になるかどうかは別として。

うさぴょんのユーザインタフェースに入れてみようか?
うさぴょんじゃ、詰め将棋の性能が悪いので、絶対使い物にならないと思うけど(^^;

あ、最後に、肝心なことを書いてなかった。

『読みの幅を広げるとか、2手スキに対応するとかといった、バランスを取ること自体は、
25分切れ負けルールだから、というわけじゃなくて、どんな持ち時間のルールにしても
しなきゃならない。だから、それは「25分ルール」の足枷じゃない。』

と言いたかった。いろいろと余分な長文書いてスマン。
789白砂青松 ◆HakusaRWQc :03/08/09 10:33
なんだかむしろ囲碁将棋板でやってほしい展開になってきましたけど(笑)、
778さん、うさぴょんの育ての親さんの話に納得です。

ただ、今のところ業界最高の『激指2』を使っても、タイトル戦の観戦は役に立ってないし、
「4段(長考)」じゃなくて、「くさるほど考える(棋力不明)」でもいいから、そういうのを

  い じ っ て み た い

 というのはありますね。
 まぁ、そこまで言っちゃったら、それこそスレタイ通り自分で手を染めた方が
利口なのかもしれませんね(笑)。

 とりあえず、25分切れ負けというルールが「枷」になるかについては、「そんなことはないんだな」
ということで納得しました。
各評価関数と読みの深さをパラメータ可変にして、
次の一手100題の高得点を競わせたらどう?

つまり、思考エンジン
    評価関数や読み深度のパラメータ可変プログラム
    次の一手100題の自動計算プログラム
    をワンセットにしてフリーでバラまく。
    ハイエンドマシンが余っている有志によって、
    いつしか次の一手100題を完答する輩が現れるかもしれん。
    できないにしてもひとりでちまちま関数を微調整するより
    効果が大きいような気がするのだが、どうだろう。
彼が来てるみたいだね(´ー`)
792デフォルトの名無しさん:03/08/10 06:56
将棋・チェスのプログラムを作っているのですが。
http://pc2.2ch.net/test/read.cgi/tech/1006479051/l50
世界最強のオセロプログラム
http://pc2.2ch.net/test/read.cgi/tech/1002036290/l50
793デフォルトの名無しさん:03/08/11 17:33
羽生名人の「強さ」分析 日本認知科学会
http://www.asahi.com/shougi/topics/TKY200306120156.html
794ハブ夫:03/08/12 05:14
>>793
面白いですね。
>>「羽生さんの直観がどのように生まれているか、となると未解明だ。」
やはり、ここが鍵に成るのですかね。
人間の直感の解明は出来るのか?
795デフォルトの名無しさん:03/08/12 05:46
>>794
俺はかなり自分の直観モデルに自信があったんだが
羽生に打ち砕かれた。

もっと細かく聞いていくと、イメージ処理じゃないそうだ。
もっと内部化した超高速とも意識できないぐらい超高速の、
というより一歩間違うと電波系の

「結果が先に見えるんです」

ということらしい。週刊将棋で羽生タンが曰っていた。

他のトッププロの場合はイメージ並列処理と
経験による部分省略ぐらいだと思う。
これならなんとかわかる。稚拙ながら俺もできる。
コンピュータが何らかの形で同様なことをいつかは
できるようになって欲しいと思う。
できればかなり衝撃的だと思う。

しかし羽生は・・なに、それ?
道は遠いな・・
796ハブ夫:03/08/12 06:00
>>795
ほう、なるほど。

あなた自身がAI作者なのですか?
それとも一棋士としての感想なのですかね?

俺個人は将棋自体は激下手なので、
羽生どころか、このスレに参加する方々の
直感すら理解できないレベルですが、、、。
797デフォルトの名無しさん:03/08/12 06:49
>>796
>あなた自身がAI作者なのですか?
>それとも一棋士としての感想なのですかね?
んなわけないw
ただのヘボ将棋指しだよ。


しかし今週の週刊将棋王位戦第3局特集は
感想戦になってねーだろ(怒

そのぐらいはおれの激指ちゃんでも読んでんだよ!

△9九角成で羽生が詰めろから必死をねらえたのか。
谷川が上部から押さえ込もうとした場合、
羽生に逆転の目があって避けたのか。
▲5二歩は最善か?
そもそも続かないなら▲5四桂はだめだろ。
それじゃ△9九角成が絶妙の馬作りと受け駒仕入れになるじゃねえか。
馬がずれてからは2二に必死筋があったんじゃねえか?
馬を窮屈にさせる手があったんじゃねえか?

どん詰まりでの▲3四歩だって見えてたんだよ。
でもそれじゃはっきりしねーんだよ。

答えが見えねーんだよ。
なんべんみても背筋が寒くなるだけで
この棋譜はいったい何なのかわかんねーんだよ。

もしかしてそういうのが名局なのか?
感想戦でもなんだかはっきりしないのが名局なのか?

798デフォルトの名無しさん:03/08/12 06:58
ヒートしてしまいましたが、俺が言いたいのはこれだけです。

「激指2は中盤以降はいいところまでいっている。」

中盤の意味づけと意志を見た目上で実現できれば
アマ五段を軽く越えてます。

初段の俺がちょっくらちょっと考え方を指導してやるだけで
激指2はプロのタイトル戦観戦に使えます。

王位戦第3局は小便ちびりそうなぐらい楽しかった。
799_:03/08/12 07:09
800デフォルトの名無しさん:03/08/12 07:29
★☆ 夏休みは GETDVD で満喫・満喫!! ★☆★
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go・Go!!   
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
801_:03/08/12 07:32
将棋のアルゴリズムを考えるならRは2000以上はないと話にならないね
803ハブ夫:03/08/12 09:33
確かに、普通に考えたらそうかも、、、。
俺なんて、全然みんなの話が理解できないし、、、。
>>802
その考えが間違いであることをうさぴょんの作者が証明している。
将棋が弱くても強いソフトを作ることは可能。
805デフォルトの名無しさん:03/08/12 16:00
うさぴょんの育ての親さんは色っぽくてかわいいですね。
うさぴょんの育ての親さんは男性にモテモテな感じがします。
806デフォルトの名無しさん:03/08/12 20:53
将棋プログラム作成者に質問

I 序盤
1.オセロは手数と定跡局面が一対一対応をする単純分岐ツリーだが
将棋は循環構造を取ることを知っているか。
2.1を意識したデータベース形式を取っているか。
3.オセロ、チェス形式を真似するだけなら、人間側の定跡の整理を
あと100年待つことになることがわかっているか。

II 中盤
1.将棋では理論化されていないことをしっているか。
2.安定期と不安定期をブロック単位として扱えることを知っているか。
3.先手を引くべきかどうかを含め安定期に評価しているか。

III 終盤
1.いますぐにでもプロを圧倒できるのにやっていないだけだと分かるか。
2.駒得評価に対数などを使っているか。
3.玉と直接間接に連結している駒たちを単位として扱っているか。

IV 共有
1.UIとデータベースを共有し、ルーチンだけで勝負する気はないのか。
2.ルーチンを分解して単位として公開し、ゲームとして市販して、
並べ替えと重み付けが最適な評価値とバランスをマンパワーでさぐる気はないか。
3.勝ち負け、レーティング、日時、頻度、それらを最終評価する空欄をもった
序盤データベース形式をつくる気はあるか。

何を言っているか分からなければ答えなくてもいい。
おれも将棋指すけど、将棋のプログラミングってアルゴリズムよりも
データー量で決まるのでは?
過去のプロの棋譜を全てDB化すればプロとも互角に戦えると思われ。
未知の領域に入っても過去の棋譜を図形として捉え、同じようなものを
検索すれば勝てると思われ。(一手2日間位必要かも・・・)
将棋って「味」や「感覚」とか、今のコンピューターに出来ない要素が
必要なので、アルゴリズムでいくら考えても無駄じゃない?
まず「舌ベラ」とかを開発しなきゃダメだな。←「味」違いですか。oO
さっぱりなにを言ってるのかわからん
↑「気」違いですか。oO
・ガキの頃から叩き込まれた感性でプロになれる=時間が必要
・ガキの頃から棋譜の記憶力が優れているとBクラスになれる
・ガキの頃から鍛えた将棋心臓があればAクラスになれる=平常心で妙手も出る

よって今のエレクトロニクス技術でトッププロに勝つのは果てしなく無理
分かりました。

このスレは囲碁将棋版へ移転しますた。


            糸冬 了 し ま す。

812デフォルトの名無しさん:03/08/12 22:21
うさぴょんの育ての親さんは女性ですよね。
一度だけでいいから顔をみてみたいなぁ〜♪
>>806
有力ソフトのアルゴリズムはかなり公開されているので、調べてみるといいよ。
将棋プログラム作成者ではないが、答えてみるテスト。

I-1,2:○。普通は局面を検索している。
I-3:100年と言う根拠は? いずれにしてもオセロ・チェスを真似するだけで
   良いと思っている開発者はいないだろう。
II-1:○。それなのに既にアマ有段クラスという意味を考えてみよう。
II-2,3:意味不明。
III-1:×。しかし近い時期にそうなるだろう。
III-2,3:不明だが、評価関数については多種多様な試みがなされている途上。
IV-1:アルゴリズムによってデータベースの形式も変わるので、両者は不可分。
   UIを全部柿木に統一してくれると嬉しいけど、商品としては無理だよな。
IV-2:>>790の様な意味合いかな? 面白い発想とは思う。しかしライフゲームの
   ような方法は現在の将棋プログラムでは有効では無いだろう。
IV-3:意味不明瞭。IV-1と関連するが、様々な形式が考えられてはいる。
>>805 >>812

・・・???   ・・・まぁ、本人が出てくるだろう(笑)
>>806

>>813が積み残したところを。
II-2,3はquiescence searchの話だと理解したんですが。それならやってます。
III-2は「対数など」どころではないし、III-3もそれどころじゃないけど。
IVに関しては残念ながら開発者の関与できるところではないですね。

基本的に本当に入門的な資料を読んだようなので、
もう少し詳しい資料にステップアップされることを勧めます。
>>805 >>812
…まぁ、そもそも「うさぴょんの育ての親」って「チーム名」で
個人の名前じゃないしなぁ。

一番多くの人に顔を知られている「うさぴょんの育ての親」は、
コンピュータ将棋選手権で、
「かわいい人が作っていると聞いてたのに、会ってみたら格闘家のような人だ」
って言われてました(w

>>805
若いころ、一部の男性にモテモテだったのが、トラウマだそうです(w
あれ、もしかしてここや囲碁将棋板に書き込んでる「うさぴょんの育ての親」さんも、
一人じゃなかったのかな?それはしらんかった。
>>817
ここや囲碁将棋板に書き込んでいる時、実際に書き込みボタンを押すのは
基本的に一人しかいないけど、書き込む文章をいつも一人で作っているかというと
そうでもない(^^; 特に長文レスの時は。

長文と言えば、週間将棋の記事に載っている名前の人物が、一番広く顔を知られている
「うさぴょんの育ての親」ですけど、あれも厳密に言うと一人で書いた記事じゃない(^^;

あ、でも、こんな風に、深夜に走り書きのようなのを書き込みしているのは一人だけでつ。
>>804
うーん、うさぴょんの強さはあの程度なので、いまいち説得力がないかなーと
思って黙ってました(^^;

一応、将棋倶楽部24で13級(また350を切っちまったい)が、
うさぴょんの育ての親の中では一番将棋が強い(笑)です。

うさぴょんの詰め将棋ルーチンの元になった、鈴木詰め(って呼んでいいのか?)を
作成した「鈴木将棋」の作者は、ちゃんと将棋倶楽部24で初段くらいはあるんですが。
中の人も大変だなと。
821山崎 渉:03/08/15 15:38
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
822デフォルトの名無しさん:03/08/16 14:04
>>うさぴょんの育ての親

うさぴょんの育ての親さんはいままで女性だと思ってました。
男性だったのですね。
いままでウサギみたいなかわいい女の子だと勘違いしてました。
残念です。
>>822
一番有名なメンバーは、『会ってみたら格闘家のような人』ですが(^^;
女性も入っているチームなので、そういうメンバーもいるかも知れません(謎笑)
824デフォルトの名無しさん:03/08/16 17:55
評価関数に現れる係数を半自動で更新する手続きが出来たー!
>>824
おめでとう!

実際に更新をやらせてみると、ものすごい時間がかかるが、頑張れー。
826デフォルトの名無しさん:03/08/16 18:04
>>825
ありがとう!

局所最適解に陥って抜け出せない可能性は残るけど、地道にやっていきます。
ものすごい時間のかかる係数の更新は置いといて、CSA将棋のクローンをJavaで書きたくなってきた。
sikou.dllはやめて二つのUDPまたはシリアル通信を使って二つのプログラムが一手ずつ通信し合うやつ。
既出ですかね?
過去ログ見て来ます。
そう言えば、大会で使われてる通信機能ってやつ意味不明なんだけど、
あれはどうやってプログラミングすればいいの?
参考になる本とかページある?
とりあえず、大会で使われている通信手順をみると、COMポートを開いて文字列を送受信するだけのようだが。
検証にはCSA将棋と滞り無く通信できればええんちゃうか。
>>829
ああ、なるほど。そういうことか。
コーディングの方は検索すれば何とかなりそうだ。

しかし、それって、シリアルポートになにやらケーブルかなんかつないで、
二台のパソコンをつながないと検証できないよな?
LANとかいうやつか?
831デフォルトの名無しさん:03/08/18 23:12
本来のCOMドライバをCOM1とCOM2エミュレートするデバイスドライバに差し替える。
例えばCSA将棋をCOM1、自前のプログラムをCOM2につなぐ。
デバイスドライバ内でCOM1とCOM2をクロスで直結しているように振舞えば、
双方ともCOMポートに接続して通信しているのと変わらない…かな?
これなら1台のパソコンで検証できるのでは?
「仮想シリアルポート」でGoogle検索すると同様の考えのドライバが出てきますよ。

もっとエレガントな方法を求む!
CSA将棋の手順が素直にSocketなら楽なのに・・・
昔々、鈍間なCPUと狭い記憶領域と中古PCよりずっと高価なEthernetカードの時代にあっては、CSA将棋の手順はとても素直だった。
今の時代にそぐわないですね。
暇はあるけど金がない学生向けかね?
日本の学生は恵まれているのかねェ。
>832
詳細はまだ未決定だけど、近い将来(と言っても2年後くらい?)、そうなりそう。
>>833
その時代から通信対戦ものは作ってたからそれは承知している。
今や、Web上で将棋でも囲碁でもさせる時代なんだから、
急先鋒たるべきコンピュータ対戦が旧世代の通信に拘泥するのが不思議だったのだが。
>>834とこれまでの遣り取りを読む限り、単に変化を嫌っただけなのね。
836デフォルトの名無しさん:03/08/20 13:25
将棋は日本国内だけだからつまらんある。
囲碁は世界全国だからおもしろいある。

だれか最強の囲碁作ってくれある。
>世界全国
世界全国津々浦々でつか。広いようで狭いような・・・。
>>836
なぜ日本国内でしか通用しない日本語で語るのか?
839ハブ夫:03/08/20 18:43
でも、将棋の方がゲームとしての奥深さは上ですたい!
840ハブ夫:03/08/20 18:44
チェスチャンピヨンになるより、
将棋チャンピヨンになるほうが、
世界的にも価値は上ですたい!
神様はサウスポー、を思い出すじゃねぇか。
842白砂青松 ◆HakusaRWQc :03/08/20 21:08
懐かすぃ(笑)
843デフォルトの名無しさん:03/08/20 22:12
将棋は簡単に千日手にすることができるからそこが問題ですね。
かといって囲碁は終局の判定が困難。

結局ゲーム自体時間の無駄ということかもしれませんね。
囲碁>将棋>チェス>オセロ
とよく言われるし、その通りだと思う。
845デフォルトの名無しさん:03/08/20 23:06
千日手に持っていくプログラムなんかそー簡単には作れないだろー。
囲碁もオセロもどれも人間には極められないのだから、人間にとっては同じです。

コンピュータの強さには関係してくるけど。
847デフォルトの名無しさん:03/08/22 01:35
皆さんは複数の評価関数を滑らかに接続するのにどうやってますか?
私の案は「ある局面Tに対して
 評価関数(T):=α(T)・序盤の評価関数(T)+(1-α(T))・終盤の評価関数(T) (0≦α≦1)
っていう風に二つの評価関数を混合する。α(T)は例えば
 α(T):=(着手可能数の少ない方)/(着手可能数の多い方)
とすれば、開始局面ではどちらが先手でも着手可能数は30なので
 α=30/30=1
詰み局面ではどちらかの着手可能数が0だから
 α=0/XXX=0
途中では
 0<α<1
となって条件を満たす。」というものなんですが、こんな方法が有効かどうか試してみた方はいらっしゃいませんか。
>>847
昔、現在の形勢と着手可能数を比較して、
可能数が多い方が有利な場合が多かったらしい。

相関関係はあると思うけど直接使うのは例外が多そうで厄介かもね。
将棋つまらん
850デフォルトの名無しさん:03/08/22 23:29
「コンピュータ将棋」「将棋に勝つ考え方」等に例が載ってるけど微妙に違う。
最適な駒の価値はどうやって求めるの?
>>850

>>851
そうか、愛か。
うっかり見落としていたよ。
これも、駒の価値も評価関数に現れる係数として半自動で更新する手続きに入れてしまおう。
>>850
とりあえず玉は255に。
854デフォルトの名無しさん:03/08/23 21:30
将棋は愛です
>852

そのうち王より飛車を可愛がるようになるぞ
856850=852 ◆R/rLuLKeEI :03/08/25 02:09
最強(予定)の将棋プログラムしてみてるのですが、
>>853
>とりあえず玉は255に。
そのこころは?

>>855
そうなるにはすんごい時間かかりそう。
定数倍を除けば、王=2、飛=4、竜=5くらいが相場かな。

まだ、係数は収束していないが、先手後手とも同じ評価関数を用いて先手1手2秒以内、後手1手30秒以内で対戦させてみた。
結果:300手越えたので止めた。
どうやら、先手を取るとちゃんと最大最小戦略をとるのに、後手を取ると最小最大戦略をとるようだ。つまりバグ。
最強への道のりはまだまだ遠い。
俺はプログラムのことはよくわからんが、開発者の皆さんがんばってくださいな。
858 ◆R/rLuLKeEI :03/08/27 02:34
>>857
日曜プログラマやけど頑張ってますよぉ。
未だにうさぴょんβ4レベル0に1勝も出来ないくらいの最弱の将棋プログラムだけどね。
867のバグは取れて、先手1手1秒以内、後手1手2秒以内で後手の勝ちでした。
評価関数が馬鹿でも深く読むと少し強くなるようだ。

>>853
仮に玉と同じ動きをする駒を想定すると盤上では金より少し上、下段の香と同じくらいの価値しかないと思うのだが、どうだろうか?
ルール上、あり得ないが玉を持ち駒に出来たら玉を255のように大きな値にするのは意味がありそうだ。
盤上の駒の価値と持ち駒の価値を分けて調整すべきなのかな。
もっとあり得ない事だが、王以外の全ての駒を取られても玉を持ち駒に出来たら勝ちだから、
 王+玉>Σ他の駒
だな。
859デフォルトの名無しさん:03/08/27 07:12
【開発】「三目並べ」で人間を打ち負かすDNAプレイヤー【DNAコンピュータ】
http://book.2ch.net/test/read.cgi/bizplus/1061279375/l50
860デフォルトの名無しさん:03/08/27 08:56
1目並べとゆうのは、必ず先手の勝ち。
2目並べとゆうのも、必ず先手の勝ち。
3目並べとゆうのは、実際は勝負はつかない。
4目ならべとゆうゲームは、聞いたことがないけど、多分、先手が有利だと思う。
5目並べに関しては、日本には、連珠とゆうゲームがあるが、
先手の33、44、長連禁止、や、仮先ルールなどで、均衡を保っているため、
普通に指せば、多分先手有利なのだろう。

このようにして、6目並べ、7目並べとしていった場合、多分、先手後手の差はなくなると思われる。
またなぜか、先手より後手の方が有利になるとゆう、現象もないだろう。

しかし、これが、10目並べ、100目並べとなった場合には、逆に、
88や、89などの詰めろ状態を作るのが困難になり、これまた、勝負はつかないってことになりますねえ。
861デフォルトの名無しさん:03/08/27 10:02
ボトムアップとトップダウンとゆうのは、ようするに、演繹法か帰納法かとゆうことだよね。
でもこの2つは、にわとりと卵だと思うけどなあ。

ボトムアップとゆうのは、目標が非常に明確な状況でなければ、方向性の設定ができないし、
トップダウンとゆうのは、その時点で、はまってなければ、ハズレ。

ボトムアップにおける、目標アプローチ設定においては、トップダウンの構想が必要であり、
トップダウンにおける、初期最適行動選定においては、ボトムアップの思考が必要なわけで、

こう考えると、人間の思考とゆうものは、
自分のすべての知識や能力の範囲における、挟み撃ち思考ではないのだろうか?って感じだね。
挟み撃ちで思考していって、そこに解決君がいなかった場合、いやあわかんないなあ、ってつぶやくんだろうね。

むずかしいけど、将棋に限らず、ゲームの序盤においては、とりあえず、トップダウンの定跡でいいのではないかと思う。
人においても初期の状態、つまり幼児もしくは子供の状態においては、普通トップダウン思考だからね。
先人達の様子を見て、ああこうなるには、とりあえずこうしたほうがいいのかなあ、って感じで進んでゆく。

ただ、定跡状態で進んでいった場合だが、そこに、あきらかに明確な目標とゆうものが、認識されなかった場合は、むずかしいね。
>>860
一般的な三目並べなら先手の勝ちでしょ。升目が十分大きければと言うことだけど。
863デフォルトの名無しさん:03/08/27 12:12
そうですね。升目が十分大きければそうゆうことになります。
5手目で、22ができますから。
864デフォルトの名無しさん:03/08/27 12:16
ってか、3手目で、2ができちゃいますね。失礼しました。
>>860
>このようにして、6目並べ、7目並べとしていった場合、多分、先手後手の差はなくなると思われる。
これはどうだろう。
単純に比較はできないけど囲碁はあれだけ広大な盤面なのに
先手のたった一手がかなり有利に働くわけで。
将棋の初手がさほど有利にならないのは
囲碁どころか実はサッカーの並に複雑だから?
>>859
将棋で同じことしようと思ったらどんだけの分子ロジックゲート
が必要なんだろ
867デフォルトの名無しさん:03/08/27 14:21
>>865
ルールの方向性が違うものを単純に較べない方が良いと思う。

n目並べは一手打つごとに自分の有利さが確実に増える。
囲碁も不利になる手を打つくらいならパスすればいい。

将棋は盤面の駒を動かすゲームなので攻めに失敗すると手詰まりになる。
(原始棒銀に失敗した時とか)
それと、持ち駒が使えるので攻めに失敗したときの反撃が痛い。(振飛車全般)
パスが出来ないから、自分の不利になる手を指さざるをえないときがある。
(銀冠など、お互いに囲いきった時)
待った、パス
> 囲碁も不利になる手を打つくらいならパスすればいい。
不利になるのを避けるためにパスしたら、
相手もそれに応じてパスしちゃうかも。
そういえばけっこう多くのコンピュータ囲碁って
連続してパスしたら終了ということにしているよね
871デフォルトの名無しさん:03/08/28 01:39
そりゃあ、そうだ。
十分論理的なプレイヤー同士なら、お互いパスした時点で、次の手もパス以外
選択するわけがない。
872あの〜。:03/08/28 03:52
囲碁とか、連珠のルールで、パスってのあるんすか?
873ハブ夫:03/08/28 11:42
どうやら、遺伝子コンピュータはあまり強力ではないようですね。
>>873
まだまだこれから、の分野なので、*まだ*あまり強力でない、としておいて下さいな。
875ハブ夫:03/08/28 19:48
なるほど。
了解しましたです。
>>871
どうだろう。
その理屈でいうと千日手からの脱却は不可能になるが、
最善手と考えたある手に対する向こうの手が降着状況を導くとわかり、かつ、
それでも勝利の可能性を模索したいなら手を変更するかもしれない。
>>871
囲碁にはコウが存在するために3回連続パスで終局、という見方もあったりします。

http://igo.cc/about/
どうやって対局を終わらせますか?
これ以上打つべきところが無いと思ったら「パス」をします。
パスが3回連続すると終局処理に入ります。
878デフォルトの名無しさん:03/08/28 21:57
北朝鮮に負けるようじゃ日本はもうだめ。
それにしても最近の北朝鮮の上昇ぶりはすごい。
これからは中国、北朝鮮の時代ですね。
879 ◆R/rLuLKeEI :03/08/28 23:57
こんなん見つけた。
「TD法を用いた将棋の評価関数の学習」
ttp://shouchan.ei.tuat.ac.jp/~shougi/old_shougi/presentation/1999-10-07P.pdf
880デフォルトの名無しさん:03/08/29 02:21
>>876
それは「十分論理的な」プレイヤーとは言わない。
勝利の可能性を模索するなんて、解がわからない人間が行う非常に非論理的な方法。
千日手にしないと負けると"判断"すれば千日手にするし、勝てると"判断"すれば
千日手を回避するというだけであって、相手の着手がどうなるかというのは、
その"判断"の中で考慮されている話。

>>877
なるほど。直前でコウが発生した場合の1回目のパスってのは、見た目の局面は変化
してないようだけど、着手可能個所が変わってるから、状態は変化してるわけか。
で、その後のパス2回は本当に状態が変化しないから、そこで確定と判断できると。
>>880
相手モデルを考慮すると、「十分論理的」であっても着手が変わる可能性はあるよ。
例えば、「どう頑張っても相手の方が有利だからパスしたのに、相手もパスするってことはきっと相手はこの変化に気付いていないんだろう、
それならばそのように指すと仮定して勝てる可能性がある」とかね。
で、さらに「相手が相手モデルを考えている、と考える相手モデル」とかを作ると、
4回パスの次の着手が変わったりする?
882デフォルトの名無しさん:03/08/29 04:08
>>881
論文などの学術的な議論で「十分論理的」というのは、そういう意味ではないでしょう。
ぶっちゃけ、ある局面を与えられたらその最善手がわかるという仮定のことだと思うが。
つまり「前回と局面が同じなのだから、そこから導き出される結論が同じでないという
のは論理的でない」という至極単純な話。
そこに、相手が気づいてる/気づいてないなんてものを導入せにゃならないのは、
現在そういう理想的な状況には至っていないからであって、完全情報ゲームの性質
から"理論的に"導き出される答は変わらない。
…まあ、議論したい対象が異なっているだけとも言えるが(w

実際、現在のopponent modelの段階は、あくまで思考方法をmodel化して、自分用
と相手用を分けて持つという程度だろうから、所詮、自分が探索する際に、相手の
局面は相手の思考モデルで探索するというだけで、"相手の考えが分からない"わけ
じゃない。
つまり、自分と相手のモデルを分けたとしても、それを秘密にはしていないってこと。
まあ、秘密にするってことは、不完全情報ゲームになるってことなんだけどね(w
>>882
もちろん現状の、普通のゲームプレイヤの話なら言いたいことは分かります。
ただ、「opponent modelを一手毎に変化させ得るとしたら」パスパスの次の手は変わりうるよ、
ということが言いたかったわけです。
相手モデルを変えないで同じ局面が来たら同じ結論になるのは当然ですね。

完全情報ゲームとopponent modelの話はあまり関係がないと思います。
>>882の最後で言おうとしているのは、ごくまっとうな考え方、
「相手のモデルを(勝手に)仮定して、それが分かっているものと思って探索する」
という方法ですよね。

例えば読み切りが簡単にできるtic-tac-toe(マルペケ)を考えてみます。
普通は自分も相手もパーフェクトプレイヤだと仮定して探索するから、
初手からパスしてもいいわけです。どうせ引き分けるんだから。(ルール上パスはダメかもしれないけど、あくまで例です。)
しかし、相手は実はランダムプレイヤかもしれない。
そう(勝手に)仮定して探索することもできるわけですね。
そうすると「合理的な」着手は変わってくる。

相手のモデルがわからないのは不完全情報ゲームとは呼ばないでしょう。
完全/不完全情報の区別はあくまでゲームそのものの性質によって決まるもので、
プレイヤを作る時のポリシーを区別しているわけじゃありません。
884デフォルトの名無しさん:03/08/29 05:16
http://pc.2ch.net/test/read.cgi/mac/1060683134/l50


こっちの方がやりがいありそうだぜ。

885883:03/08/29 05:19
ん〜、と書いたけど「完全/不完全情報ゲーム」の定義について自信が無くなってきたなぁ。
どの辺の論文で定義してるかなぁ。

まぁ時間があれば調べます。
886デフォルトの名無しさん:03/08/29 09:29
【技術】ロボットに「意識」を持たせる研究開始へ…英国の研究者
http://news2.2ch.net/test/read.cgi/newsplus/1062013829/l50
「十分論理的」の意味が、
>ある局面を与えられたらその最善手がわかるという仮定
なら、現在、囲碁や将棋でそのようなプレイヤーは存在しない。
存在しないプレイヤーを仮定して、
>そりゃあ、そうだ。
というのは「論理的」とは言えない。
>>887
かなり誤解しているような・・・。
まあ「最善手がわかる」が「仮定」である以上、
「同じ局面ならば同じ手を打つ」のが合理的だとは証明できないだろうけど。
889デフォルトの名無しさん:03/08/30 15:10
うさぎさんは頭(・∀・)イイ気がします。
Cでプログラムできる人は天才。
ポインタはわけわからん。(・∀・)イイ!!
  _、_
( , ノ` )     まったくわかってない人間がいっぱいいるなこのスレ
  \,;  シュボッ
    (),
    |E|

なら、おばかな僕チンに教えてくださいよー。
892デフォルトの名無しさん:03/08/30 21:51
最近Javaで将棋作り始めたけど面倒臭いからやめた。
将棋ソフトはCじゃないと作れないわな。
893 ◆R/rLuLKeEI :03/08/30 22:44
>>892
>将棋ソフトはCじゃないと作れないわな。
そんなことはないと思って第13回世界コンピュータ将棋選手権◎参加チーム

ttp://www.computer-shogi.org/wcsc13/team.html

を見てみるとほんとにJavaは皆無ですな。
12回まではあったのに。
他の使用言語はC/C++、Ruby、PASCAL、Python、Visual BASIC、Delphi。
>最近Javaで将棋作り始めたけど面倒臭いからやめた。
>将棋ソフトはCじゃないと作れないわな。
んな事はない。言語のせいにしちゃいかん。
インタプリンタ型で速度の遅いVBでもプログラムが
作成されているんだから言語なんて関係ないよ。

面倒くさいのはしょうがないけどな。
895 ◆R/rLuLKeEI :03/08/31 00:07
目標をあまりに高く設定すると挫折しやすいわな
何かの調査で読んだけど、色々なプログラムをCとJavaで色々なプログラマに書かせたテストがあるってね。(他の言語もあったけど忘れた)
で、トップの成績を比べると、確かにCはJavaの数倍速かった。
この数倍を大きいと見るか構わないと見るかは、
メンテのしやすさ、バグの入りにくさを考慮して各人が決めることだわな。

で、それより重要なのは、CでもJavaでも、トップのプログラマとへぼのプログラマの書いたものは数1000倍〜数万倍くらいの違いがあったってこと。
要するに、言語の差より本人の能力の差の方が圧倒的に大きいってこと。
なので、まずはアルゴリズムやデータ構造を見直して、プログラムの質を見直すべきだと思うな。
897sage:03/08/31 01:18
Java遅いからね。こういうのに向いてない。
Javaで書かれたまともなデスクトップアプリケーションがないことがそれを証明している。
サーバかモバイルしか生きる道ないよ
>>897
本当に向かないか?
Javaが本当に遅いのは、I/Oとかみたいにsandboxを意識する操作だろ。
計算主体のソフトは、JITさえマトモなら1.5倍以内、
下手したら数%しか遅くならんぞ。

そういうわけでむしろ将棋とかの方がJavaに向いてると思うんだが。
899 ◆R/rLuLKeEI :03/08/31 02:18
Javaが遅いとほとんど同義だがJVMが遅い。
オセロ、チェス、将棋、囲碁の思考部分のように速度が絶対的に要求される用途には向いていない。
Javaで書かれたスタンドアロンのアプリケーションは見向きもされない。
思考部分は高速なサーバー上のC/C++で、UIはJavaでならわかる。
同じPC上ならUIのためだけにメモリを圧迫するJVMを使うよりC/C++で全部、ってことになる。

高々数倍の速度差でバイナリがどこででも動くというのは魅力だがね。
900デフォルトの名無しさん:03/08/31 02:40
このスレの人間は頭がよすぎる。
まるで神と対話しているかのようだ。
将棋なんてやってないでほかの分野で活躍して欲しい。
901 ◆R/rLuLKeEI :03/08/31 03:03
>>898
そうか、数%しか遅くならんか。
Javaに対する認識を改めるとともにJavaに関してまだまだ未熟であったことを反省する。
896さんの御指摘のように「まずはアルゴリズムやデータ構造を見直して、プログラムの質を見直すべき」だな。

>>900
りょ〜か〜い
将棋なんかのプログラムでJavaの速度のネックになるのは
GCによる不要オブジェクトの回収だと思う
目標を、
1番強い思考ルーチン、にするならば、
確かにc++以外の道はないといえるが、、、
モバイル、携帯電話上で動く将棋ソフトとかで、
簡単に遊べることを目的としてて強さとかはどうでも良いのであれば、、、
やはり話は変わってくると言える。
携帯で動く将棋ソフトってあるの?
サイズ的に厳しいような気がするけど。
905 ◆R/rLuLKeEI :03/08/31 05:02
>>902
これか。
ttp://www.is.s.u-tokyo.ac.jp/~vu/01/jugyo/processor/process/soft/compilerresume/gc/gc.html
不要オブジェクトの回収中はプログラムが完全に停止してしまうようだ。
しかし、プログラム上のどこからも間接的にも参照されていないオブジェクトを探し出すmarking phaseが最も時間を食うであろうから、
不要オブジェクトにnullを代入することでGCの負担を軽くすることが出来るかもしれない。

>>904
例えば、
ttp://www.rbbtoday.com/news/20030715/12445.html
森田将棋もあるね。
http://www.hudson.co.jp/mobile/faq/faq_mshogi.html
ただし、
>ネットワーク型のゲームとなりますので、ゲーム中は別途パケット通信料が発生します。

ネット経由での対戦で思考ルーチンはサーバがやるみたい。

>iモード版の場合、1手打つ毎(送受信共)に約20円のパケット通信料が発生します。
1手20円て高すぎ。
>ネット経由での対戦で思考ルーチンはサーバがやるみたい。

最近の流行?
某協会でもサーバ側で思考ルーチンを複数選択できるようにしてたみたい。
908 ◆R/rLuLKeEI :03/08/31 14:07
やっぱりサイズ的に厳しいんだ。
909デフォルトの名無しさん:03/08/31 17:10
将棋より囲碁を作って欲しい。
将棋人口は世界で1000万人だけど
囲碁人口は世界で3000万人。
ぜひとも囲碁を作って北朝鮮の囲碁ソフトを打ち負かしてください。
910デフォルトの名無しさん:03/08/31 17:16
910ゲット
将棋の思考ルーチンなんてとても無理だろ
とりあえずチェスから始めれ
チェスよりは午後将棋のほうがモチベーション上がりそうな気が
913デフォルトの名無しさん:03/08/31 18:39
うさぴょん生みの親さん、
囲碁ぴょんを作ってみてはどうですか?
>>913
うさぎのようにかわいい?おねーさんは今のところ将棋の方しかやってませんけど、
いかついおじさんの方は今、9路盤の囲碁プログラム作ってます(w
>>892-905
将棋プログラムって、メモリとか演算の構造にあわせてデータの構造を決めている
とこがある。例えば、CPUが一度にキャッシュに16バイト転送するから、データは
8バイト2組をまとめて扱おうとか、ハッシュの構造はどうたら、とか。
そういうことをしようとすると、C/C++と比べて、Javaは自由度で大きく劣る。

で、良く言えば、そういうことを考えなくていいのがJavaの世界。
将棋プログラマは、C/C++を高級アセンブラとして使っている感じ。

パソコンで動くJavaのプログラムでも、うさぴょんくらいの強さの
ものなら作れると思うよ。そこから先は相当厳しいと思うけど。
>>906
うさぴょんで作ったから、誰かパケット代調べてみない?

http://203.141.149.20/

誰かパケ代測定してくれ次第サービス中止(w
917ハブ夫:03/09/01 03:55
将棋ソフトは、
思考ルーチン以外の部分は実に簡単だと思う。他のゲームに比べて。
だ、思考ルーチン部分だけは本当にどうしようも無いんでしょうね。
918 ◆R/rLuLKeEI :03/09/01 05:16
>>914
うさぎのようにかわいいって奥さん?

それはさておき、正しく動いていないプログラムの最適化は無意味なので第1目標は正しく動くことに重点を置いている(昨日、香車の打てない位置の判定に誤りを見つけた)。
それでも、時間的、空間的計算量の改善に着手することを見越して設計しておくのは必要だと思う。
と言うわけで思考ルーチンをC言語で素朴版を作ってテストしている。
素朴版では前向き枝刈り無し、単純な評価関数、一度試してみたかった最良優先Min/Max探索、千日手と打ち歩詰めの検出は無し、係数の自動調整。
最初っから最強のプログラムなんて書けやしないんだから、出来るところから徐々に改善&拡張していけば何とかなる。
何とかなるが、ちょっと欠陥を見つけた…おやすみなさい。
919デフォルトの名無しさん:03/09/02 14:05
銀星囲碁に勝てる囲碁ソフトの降臨まだぁ〜〜〜〜〜〜??????

(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)
(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)
(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)
ここは将棋スレじゃ
>>916
誰もDoCoMoの携帯でアクセスしてくれないよー。
503i以降のiモード対応機種で頼みます。

http://203.141.149.20/

922 ◆R/rLuLKeEI :03/09/03 09:14
>>921
非常に混み合っていますね。
サービス中止の日も近い?!
>>922
相変わらずみんなIEで見に来ているみたいなので、
あきらめて中止する日も近そうです(^^;
924デフォルトの名無しさん:03/09/03 12:10
うさぴょんの育ての親ってチーム名なんだ〜〜。初めて知った。
どうせならみんなでウサギの格好して出場してくれたら面白いのに・・・
バニーガール(・∀・)イイ!!
925 ◆R/rLuLKeEI :03/09/03 12:27
>>923
DoCoMoの携帯で9月1日にアクセスした。
N502iなので諦めた。

>>924
いかついおじさんのバニーガールは見たくないな
>>925
説明不足でゴメソ。iアプリなの。

>>924
いかついおじさんのバニーガールとか30過ぎのも見せたくないな。
似合いそう?なのは二人しかいないな。

ノリはいいので着てくれるかもしれないが、木更津に来て貰うのは
極めて難しそうだ。アキラメテくれ。
927デフォルトの名無しさん:03/09/06 01:58
うさぴょんの育ての親さんは早速
アマ4段を超える―コンピュータ将棋の進歩〈4〉
を購入なさったのですね!!
>>927
っていうか、発売日以前に持ってました(^^;
いや、例の羽生さんの対談のあった、認知科学会の時に申し込みすると、
早く届くんですよ。
正直な感想を述べると実際のところは
将棋や囲碁などのプログラムなんかどうでもいい。
それよりもロボットのプログラムのほうが
面白いし将来のためにもなる。
1を見てるとあのなつかしの夕暮れを思い出すよ
931デフォルトの名無しさん:03/09/07 23:20
>929
探索ってのは、人工知能の基礎です。
ロボットのプログラムは、囲碁将棋のプログラムのずっと先に位置してることに
なるでしょう。
まあ、囲碁将棋に特化した知識は応用が効きにくいだろうけど、今は特化した知識
に見えていても、将来、体系化・一般化できるかもしれないしね。
932デフォルトの名無しさん:03/09/08 02:16
将棋なんて探索じゃあどうにもならないよ。
詰めの段階ならまだしもね。
将棋プログラムなんて定石がないと、勝負にもならないし。

将棋の難しさと、ロボットの難しさは
同程度だと思うよ。
んなわきゃない。
目的が勝てばいいだけの将棋・囲碁と、
目的が定まっていないロボットじゃ
難しさの程度は段違い。
934デフォルトの名無しさん:03/09/08 08:22
>>932
そうそう。

>>933
そういう低い志だから、将棋プログラマは馬鹿にされる。
ロボットプログラムを作ったことがない人が言ってるのかな?
ロボットにも将棋と同じ技術は使われてるよ。
手を動かす経路決定ですら探索がないとうまくいかない。
もちろん、モロに探索すると速度が足りないから、
手を動かすとか足を動かすとかは別の手法を使ってそれらしくごまかしたけど、
じゃぁ個々の動きを組み合わせると…とかいう世界になると探索だね。
チェスとか将棋とかの探索手法は参考にさせてもらってるよ。

まぁつまり、ある視点で見れば将棋もロボットも同じ世界に見えて、
それを同じ世界に見ることができない人は業界では「センスがない」とされるね。

目的云々は将棋もロボットも同じ。今のところ人間が与えるものだよ。
936 :03/09/09 01:29
将棋プログラミング始めたいんだが、一から自分で考えて組むのめんどくさい。
どっかにソース落ちてない?
http://www.amazon.co.jp/exec/obidos/ASIN/4320120744/qid=1063038439/br=3-1/br_lfncs_b_1/249-9560977-1302717
この本にソースは出てる?買った人いないかな?
937デフォルトの名無しさん:03/09/09 02:22
>>936
うさぴょんに聞けばいいのでは?

それにしてもうさぴょんの★四つ評価は厳しすぎる。。。
上のほうにも出てたけど、おまいらコレのプログラム作ってみてください。

大局将棋を指しましょう
http://game.2ch.net/test/read.cgi/bgame/1044848739/l50

参考
ttp://www.angelfire.com/sc3/taikyoku-shogi/taikyoku.html
>>936
そのまま使えるような形では載っていない。
比較的詳細まで載っているのは詰め将棋だが、アルゴリズムの説明の
ためのソース(の一部)の掲載だと思ったほうが。

うさぴょんは複雑怪奇なので、デーモン将棋のソースかGNU将棋のソースはどうよ?

>>937
今回は、ネット上で得られる情報が多いからねぇ。
★5はあげられなかった。
誰か、★5あげて★4.5にして下さい(^^;

>>938
ルール通りに駒が動くようにするだけで「面倒で死にそう」なので
勘弁して下さい m(。。)m
>>938の参考ページで既にルールどおり動くのができてるぞ。
作った香具師すごいわ。
遊んでみようとは思わんけど(w
941デフォルトの名無しさん:03/09/10 22:01
うさぴょんの育ての親さんの職業はプログラマーなのですか?
年収はどのくらいなのですか?
軽率な質問で大変申し訳ない次第です。
>>941
猛烈にスレ違い
943デフォルトの名無しさん:03/09/11 13:55
>>1
そもそも”将棋してみろよ”って意味がわからん(;´Д`)
944デフォルトの名無しさん:03/09/11 14:20
<丶`∀´>
945デフォルトの名無しさん:03/09/12 08:38
>> 943
"プログラムしてみろよ"だろ。と、マジレス。
946デフォルトの名無しさん:03/09/13 22:29
age
947デフォルトの名無しさん:03/09/14 01:57
948デフォルトの名無しさん:03/09/14 14:45
ひまわりで将棋プログラムしてください
949(+):03/09/14 15:36
無理です
950デフォルトの名無しさん:03/09/14 21:27
VBで最強はどうよ?
951ハブ夫:03/09/14 21:32
今までの既存の理論、アルゴリズムでは勿論到底太刀打ちできないと思う。
c++とかの方が当然、速いに決まってるから。
速い=強い、だし。
だが、今までにないアルゴリズムを考え出せば、vbでも勝てる可能性がある。

勿論、その今までにないアルゴリズムをvbでなくc++で組んだ方が更に早く、強いけど。
952 ◆R/rLuLKeEI :03/09/14 22:23
アマ4段を超える―コンピュータ将棋の進歩〈4〉を購入した。
最良優先探索ってコンピュータ将棋では廃れたとばかり思っていたけどそうとも言い切れないんだね。
ただ、メモリの大量消費はどうしようもないらしい。

私の将棋プログラムではメモリ不足になる程時間をかけたことがないんで、そこら辺の対策は実装していない。
もしメモリ不足になったらルート局面で最も有りそうにない手から先の部分木をfreeして、最後の一手になったら探索終了などと漠然と考えている。
それ以前にうさぴょんに全然勝てないんですけど。
係数も収束しない内から評価関数いじくってんのがダメなんかな。
953デフォルトの名無しさん:03/09/14 23:17
>>952
将棋プログラムがC言語で作れるだけでもすごい◎
954 ◆R/rLuLKeEI :03/09/15 00:24
>>953
ありがとう。でも挫折3回、4度目の挑戦です。
>>952
うさぴょんの40秒に楽々勝てるならそれはもう決勝レベル(w

それはおいておいて、うさぴょんの一番弱いレベルの『2手読み』も
純粋な2手読みじゃないので、全幅探索みたいなプログラムだったら
5手読めないと確実に勝つのは辛いはず。

ところで、メモリ不足の話だけど、うさぴょんはあんまり普通でないので…だけど、
全部の探索木を覚えておくような必要はないんじゃないの?

参考URL:
http://citeseer.nj.nec.com/cachedpage/23521/6

Aske Plaatの MTD(f)の論文のP.6
MemoryEnhanced αβの基本形。
956 ◆R/rLuLKeEI :03/09/15 03:05
\100将棋を相手に変えよかな。

うさぴょんが普通でないって、β4の場合、何度も対戦してるとリソースが減っていくという現象のことじゃないですよね。

う…、異国の言葉…。明日読みます。

>全部の探索木を覚えておくような必要はないんじゃないの?
もしや私は基礎的なところで誤解または混同しているのかも。
コンピュータ将棋の進歩<4>p.100「最良優先探索にはメモリを大量に消費し、メモリを使い尽くした後の一般的な解決方法は知られていないという大問題がある。」ってのは探索木の節点の数が問題だと思っていた。
自分の指した手以下を全部覚えておいて次の自分の手番で相手の指した手以外の手を除いた部分木から再探索をしたいなぁと思って今のところ全部覚えてます。
深さはバラバラですけど。
なにはともあれ論文読んでみてからです。
957中津繁人:03/09/15 03:20
松下システムソフトの中津と申します

先日、メールサーバテストのためにメールの募集をいたしましたが、
まだまだ足りませんでした(200通ぐらいしかきませんでしたので)

ですので、今回またメールの募集をいたします。

前回も書きましたが、送ってきていただいた方から抽選で
薄礼ですがしたいと思いますので、必ず連絡の取れるアドレスにて送信してください。

それではよろしくお願いします。

中津繁人
[email protected]
958デフォルトの名無しさん:03/09/16 19:40
ムーアの法則なんてあとづけの説明理論であって
原理などではないのだから当たり前。
プログラマは世間知らずの馬鹿が多くて困る。

ZDNN:ムーアの法則「経済的に持続不可能」とTSMC
http://www.zdnet.co.jp/news/0309/16/nebt_26.html
959デフォルトの名無しさん:03/09/16 22:00
>>958
(・∀・)へぇ〜そうなんだ。
960デフォルトの名無しさん:03/09/16 23:37
>>959
ちゃかしてる場合じゃない。
どんな理論も前提となる状況は限定されていることを
すっかり忘れている(知らない)プログラマは多い。
>>958
落ち目の TSMC の意見じゃん。
962デフォルトの名無しさん:03/09/17 00:43
>>961
そうね。

でも、ムーアの法則など社会現象に左右されるものであることに変わりはない。
>>958-
ねぇ、何にそんなにイライラしてるの?
このスレで何かムーアの法則に関する誤解あったっけ?
>>963
ないわな。
自作自演くらい
そっとしといてやれ
966デフォルトの名無しさん:03/09/17 06:16
>>965
なんにでも自作自演を疑うものは
自分の背中に傷があるのだろう。

俺は一度たりとも自作自演はしたことがない。
真っ向勝負馬鹿だからだ。
鈴木宗男も涙を流しながら言ってたな。
天地神明に誓って、何一つ悪いことなどしていないと。
968デフォルトの名無しさん:03/09/17 10:50
>>967
だからおまえと一緒にするなって。
悪口は己が鑑って知ってるか?
969 ◆R/rLuLKeEI :03/09/23 02:33
3秒読みの私の将棋プログラムの係数が収束しつつあった。
負けてはいるが、どうせ負けるならもっとましな負け方しろよと言う基準で教育して来たのに、何か変だ。
上の方で誰かが書いたように王より飛の価値が高くなったが王の価値がほとんど0になってしまった。
更にほとんど攻めない、ただで取れるはずなのに取らない。

評価関数のソースをぼんやり眺めていると、利いている先にある敵の駒の評価をするはずが、移動前の、つまり自分の駒の評価をしていた。
こりゃアカンわ。

で、直してみると激しく攻めるようになったが、読みが浅いので見掛けの駒得に邁進してしまう。
またうんざりする程の時間をかけて次の極大点に向かって係数空間を動き回らせようっと。
最近のプログラムはオブジェクト指向が流行ってますが、
将棋プログラマーのみなさんも、将棋プログラムはオブジェクト指向でやっているのですか?
将棋にはあまりオブジェクト指向は合ってない気がするのですが、、。
971 ◆R/rLuLKeEI :03/09/25 01:28
>>970
それは多分気のせい。いやわからんけど。
オブジェクト指向でないC言語で将棋プログラムやっていて気付いた点:
・リストやキュー、ツリーの追加/削除などでうっかりミスが相次いだ。
・駒の種類毎に動作を分けるためにswitch文を多用しているが関数が長く見通しが悪くなりがち。
・アルゴリズムの実験では本質的な部分に集中したいが、本質的でない部分のコーディングに時間が食われる。

まあ、無きに等しい設計といき当たりばったりなコーディングと適当なモジュールテストが諸悪の根源かもしれんが、
オブジェクト指向言語の支援があればもっと楽にすっきりとしたコードになりそうな気がする。

プロの将棋プログラマの皆さんはオブジェクト指向言語あるいはオブジェクト指向的な考えでやっているのでしょうか?
972デフォルトの名無しさん:03/09/25 04:18
こんちわ。
かの昔、このスレッドのPart1に投稿していろいろアドバイスを受け、
Part2の頃にうさぴょんさんとの通信対戦で、待ち将棋になった者です。

かれこれ半年ほど開発止めてるんですけど。。

ちなみに私はC++で作成しています。

クラス単位で役割(盤面評価用クラス・再起関数用クラス・利き関連計算クラス・等)を
分けやすかったんで、C++っす。
最強の2ちゃんねるブラウザを作るスレッド
http://game3.2ch.net/test/read.cgi/mmominor/1064443570/l50
974(*∠_*) ダカラドーシタ:03/09/27 17:45
■日本人プログラマーよGoogleを攻略せよ 2003年09月24日 CNET Japan - 梅田望夫・英語で読むITトレンド: http://blog.cnetnetworks.jp/umeda/archives/000697.html

Google Code Jamというプログラミングコンテスト(CNET Japan速報記事「米グーグル:「プログラミングコンテスト出場者を求む」」をご参照)が10月から11月にかけて開かれる。
参加資格は18歳以上(世界中の誰でも)。予選はオンラインで、決勝(トップ25人)はシリコンバレーのGoogle本社で行なわれる。
腕自慢の日本人プログラマーたちには、この機会にぜひその実力を発揮してほしい。

Google Code Jamのファイナリストといえば、これから腕一本でプロとして生きていきたい若い人にとっての大きな勲章になる(中途半端な学歴なんかよりうんと価値がある)。
ファイナリストに残る日本人がいれば、日本人プログラマーの実力が世界でもトップレベルにあるという事実を、広くアピールできるだろう。
さて、コンテストの仕組みとスケジュールであるが、

参加者全員から500人にふるい落とす「Qualification Rounds」、
500人を250人に絞る「Online Elimination Rounds 1」、
250人から25人に落とす「Online Elimination Rounds 2」。
ここまではすべてオンラインなので、自宅から参加できる。
そして、ファイナリスト25人はGoogle本社での「Onsite Championship Round」に進むことができる。

★google code jam 公式サイト(excite翻訳) http://www.excite.co.jp/world/url/body?wb_url=http%3A%2F%2Fwww.topcoder.com%2Fpl%2F%3F%26module%3DStatic%26d1%3Dgoogle%26d2%3Dgoogle_overview&wb_lp=ENJA&wb_dis=2

関連スレ
【IT】Google、人材採用兼ねたプログラミングコンテスト http://book.2ch.net/test/read.cgi/bizplus/1063972616/
Google、人材採用兼ねたプログラミングコンテスト    http://pc.2ch.net/test/read.cgi/prog/1063960893
975 ◆R/rLuLKeEI :03/09/28 04:35
今まで定時後の会社のリソースをこっそり使って作っていたのがバレてしまった。
他の社員の志気に関わるというので、仕方無く自宅の少し遅いLinux機に移した。
元々思考部分はLinux上で作っていたから全く問題ないが、それを駆動していたCSA将棋(のsikou.dll)のようなドライバが無いのでJavaで自作中。
ドライバとの通信プロトコルをCSA形式98年版(最新版)の(2)通信条件、(3)ケーブル、コネクタを除いた形式に書き直すのは面倒臭いのとCSA将棋用に作ったsikou.dllと互換性が無くなるので当分しないつもり。
また手間が増えたよ。
976 ◆R/rLuLKeEI :03/09/28 16:02
やろうとしていることが福将棋に似てきた
>>975
横領はまずいよ(笑)
978 ◆R/rLuLKeEI :03/09/29 03:19
>>977
まずいよな。
実はこんな時間に会社でサービス残業やってるので、nice値を最低にして動かしていたりする(恐々)。
明日の始業までに本業の方を治さないと!!
◆R/rLuLKeEIさん。
もう、AI作成止めてしまわれるのですか?
残念PO。
980 ◆R/rLuLKeEI :03/09/29 18:46
>>979
止めはしないよ。歩みがゆ〜っくりになるだけ。
書き込みペースが2.5倍以上遅くなると思う。
書き込みペースの件は大多数の人はどうでもいいことでしょうけど。
福将棋
http://touch-mi.hp.infoseek.co.jp/csa2001/prog.htm
最良優先でつか
982 ◆R/rLuLKeEI :03/10/01 08:59
最良優先です。多分。
次スレ立てますた。

おまいら最強の将棋プログラムしてみろよ Part3
http://pc2.2ch.net/test/read.cgi/tech/1064984089/l50
984 ◆R/rLuLKeEI :03/10/02 09:11
>>983
次スレ立てご苦労様です。

さて、王の価値がほとんど0なのは正しいような気がしてきた。
というのは、王手をかけた時相手が何もしなければ駒得するという評価をしたくて王の持ち駒としての価値を決めようと思っていた。
が、別の評価にその局面の着手可能数の差(係数1.0固定)があるので、王手をかけると相手の着手可能数がかなり減る。
このことが王の持ち駒としての価値を無にしているような気がする。
985。
でも普通王の価値で+9999とかにしない?
その方が便利そうだし。
987 ◆R/rLuLKeEI :03/10/03 22:05
>>986
ある本には「玉はどの駒とも比較できないので,非常に高い重みを与えておく.」として+9999を表に挙げていた。
まだ、収束していないのでどう転ぶかわからないが、係数の自動調節部が王の価値を十分大きな値に落ち着かせると思っていた。
可能性としては
1.他の評価値との兼ね合い。
2.局所最適解に落ち込んだ。
3.係数の自動調整部のアルゴリズム不良。
4.未知のバグ。
もうちょっと様子見。
係数の自動調整って、係数がちょっと違うAとBを戦わせて、Aが勝ったら
Aの係数を残して、それをちょっと乱数でずらしたCとまた戦わせる、
という感じなんでつか?
989 ◆R/rLuLKeEI :03/10/04 13:32
>>988
乱数は使わない。
 a(X):=XをAと戦わせた場合の評価(例えば勝率。千日手or持将棋は0.5勝0.5敗などとする)
とする。明らかに
 a(X)=0.5
さて、係数がちょっと違うAとBを戦わせて、Aが勝ったら
 a(B)<a(A)
である。ここで、BのAに対する鏡像をCとしてAと戦わせた場合次の3つの場合に分ける。
 1)a(C)≦a(B)<a(A)
 2)a(B)<a(C)≦a(A)
 3)a(B)<a(A)<a(C)
続く
990 ◆R/rLuLKeEI :03/10/04 14:08
1)a(C)≦a(B)<a(A)の場合
 Cは捨てる。AとBの間の点C'とAを戦わせて
  a(B)<a(C')≦a(A)
 C'を見つけてBを捨てる(係数の範囲縮小)。

2)a(B)<a(C)≦a(A)の場合
 Bを捨てる(係数の範囲変わらず)。

3)a(B)<a(A)<a(C)の場合
 Bを捨てる。AのCに対する鏡像をC'としてAと戦わせた時次の3つの場合がある。
 3-1)a(C)<a(C')⇒C'を取る(係数の範囲拡大)。
 3-2)a(C)>a(C')⇒Cを取る(係数の範囲そのまま)。
 3-3)a(C)=a(C')⇒どうしよう(汗)。

というような感じで最弱の係数Bを更新していって互角になったら終了。

係数空間が1次元の場合は上記のように2つの係数が必要であるが、14種の駒の価値を決めるのに15個の係数の組を使う。
最弱の組B、Bのそれ以外の組の重心Gに対する鏡像C、GのCに対する鏡像C'、最強の組Aの強さ比べをして最弱の組を更新していく。
あたかも係数空間の中を居心地の良い所を探して蠢くアメーバのように。

ポリトープ法の類です。
991。
992 ◆R/rLuLKeEI :03/10/05 14:28
>>989
全然明らかじゃなかった。
すんません。
993。
994デフォルトの名無しさん:03/10/06 15:39
だれかpart3立ててください。
995デフォルトの名無しさん:03/10/06 17:08
995
996デフォルトの名無しさん:03/10/06 17:52
うさぴょんの育ての親さん、part3立ててください
もうビンビンに立ってる。
http://pc2.2ch.net/test/read.cgi/tech/1064984089/l50
998デフォルトの名無しさん:03/10/06 18:27
>>997
本当だ。新スレがビンビンに勃ってた。申し訳ない。
999デフォルトの名無しさん:03/10/06 18:54
てすと
1000デフォルトの名無しさん:03/10/06 18:58
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。