パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

コンピュータが将棋で人に勝てるのはいつか?」記事へのコメント

  • マシンスペック (スコア:2, 参考になる)

    by Anonymous Coward on 2007年03月22日 9時23分 (#1129850)
    Xeon 2.66GHzの8コア [magnolia.co.jp]だったそうです。OSはWindows。
    チェスの時には専用スパコン [wikipedia.org]でしたから、だいぶ大人しいスペックですね。

    もしスパコンを使っていたら、勝負はどうなっていたんでしょうか。
    スパコン向けにアルゴリズムから組み直さなければいけないのかもしれませんけど。
    • by rykmsb (19545) on 2007年03月22日 11時39分 (#1129963)
      >だいぶ大人しい

      ディープブルー(IBM RS/6000 SP特別仕様)の性能はわかりませんが、
      カスパロフに1勝3敗2分だったのが1996年。当時の世界最速HPC、
      日立SR2201/1024プロセッサ(東京大学)が307GLOPS。

      浮動小数点演算速度でなにがわかると言われそうですが、それにしたって
      Clovertown Xeon2発のほうが速いんじゃあないでしょうか?そんなことない??
      親コメント
      • by Anonymous Coward on 2007年03月22日 11時55分 (#1129973)

        ディープブルーの実際の演算は専用に開発されたカスタムチップがやってるんで、RS/6000のCPUスペックはあまり関係ない。

        TOP500 [srad.jp]に載るようなマシンとGRAPE [srad.jp]を比較してるようなもの。
        親コメント
        • by superfox (31908) on 2007年03月22日 14時03分 (#1130070)
          > ディープブルーの実際の演算は専用に開発されたカスタムチップがやってる

          その通り。ディープブルーに関して言えば512個 [wikipedia.org]というパラレルプロセッシングに注目すべきだと思います。

          一方ボナンザの方は作者のプログラミング経歴も浅い上に将棋をほとんど知らない [wikipedia.org]っていうのが面白かったりするんですよね。
          親コメント
          • by SHNSK (10099) on 2007年03月22日 20時53分 (#1130302)
            > 一方ボナンザの方は作者のプログラミング経歴も浅い上
            これは誤解を招く表現ですねぇ.

            保木さんは将棋プログラムを書きはじめたのは最近ですが,もともと化学での数値計算とかのプログラムをバリバリ書いていた人だったはずです.
             「条件分岐を恐れないでコードを小さくした方が,
              キャッシュの関係で速くなる」
            等話されていました.
            親コメント
    • by Anonymous Coward
      AIのアルゴリズム変えないとスペックが上がっても思考時間が短くなるだけじゃね?
      • by Anonymous Coward
        思考時間が短くなれば、同じ制限時間内でもより多くの/先の手を読めるようになりますね。
        • by Anonymous Coward on 2007年03月22日 10時13分 (#1129890)
          どこかで読んだのですが、人間のような「直感」に恵まれていないコンピュータが先読みをする場合、
          限られたリソース(CPUやメモリ、時間)の中ではすべての手を読むことができない以上、どこかで先読みに見切りをつける必要があるわけですが、
          その際のアルゴリズムはもちろん、処理時間や利用可能なメモリ容量とのパラメータ調整が非常に難しいとのことです。

          後でログから分析すると、「あと数手先を読んでいれば、このような手は打たなかっただろう」ということがよくあるそうで。
          やはりスペックが良いだけでもそれなりにメリットはあるとのこと。
          親コメント
          • by Anonymous Coward
            それでも組み合わせの爆発の前にはスペックなど焼け石に水かも。スペック10倍にするのは結構大変だけど、1手先を読もうとしたらすぐに計算量が膨れ上がる。オセロのような単純なゲームなら色んな方法(ビットボードとかモンテカルロとか)を見ますが、将棋や囲碁では難しそうだし、アルゴリズムの改良で人間に勝つのが先か、マシンの性能向上が先か。
            • by Anonymous Coward
              囲碁でもモンテカルロ法は使われてますよ。以下参考リンク。
              モンテカルロ法で囲碁、将棋 [ocn.ne.jp]
            • by Anonymous Coward
              ボードゲームの先読みって、暗号の総当り解読と同様の、分割可能な問題ですよね?
              コンピュータのスペックアップやアルゴリズムの改善を待たずとも、たとえば今回使用したのと同じスペックのコンピュータを
              10台、100台、1000台用意して分散処理すれば、同じ時間でだいぶん強くなりそうな気がするのですが、どんなものでしょうか?
              • by SHNSK (10099) on 2007年03月22日 20時49分 (#1130298)
                将棋や囲碁などで使われてるゲーム木探索は並列化しづらい分野だと言われています.

                (単純な)暗号の総当り解読と一番違うのは,ある部分で探索された結果が他の部分の探索に影響を与えることだと思います.(直感的な説明をすると)ある手 A が良い手だとわかった場合には,他の手 B がそれ程良くないとわかった場合には B を読まなくて済むことが多くあります.一方で並列に A と B を読んでしまうと A での情報を B では使えないため,B での探索の効率が悪くなります.
                #A を読んだ後に B を読めば,時間が 1 + 0.5 で 1.5 となるところ
                #A と B を同時に読んでしまうと各 CPU がそれぞれ 1 読むことになる

                当然,1.5 より 1 の方が時間は短かいですから CPU を増やした方が良いことは良いのですが,増やせば増やす程効用は減って行きます.なので暗号の総当たりのようにはいでしょうねぇ.
                #当然,現在トップレベルのプログラムはほとんど並列化はしているようです
                親コメント
              • by Anonymous Coward
                1000台用意して解けるんなら暗号の意味なくない?
              • by Anonymous Coward
                チェスやオセロ、囲碁は手数が有限数なので
                先読みもそのための評価基準も作り易いけど、
                将棋は一旦取った駒を再利用することで無限数の手数になる。
                (数学的に有限か無限かは証明されてないと思うけど)
                並列処理により評価能力が上がったからといって、
                どこかで能力的には頭打ちになると思う。
                人間とコンピュータの限界、どちらが先かは別として、
                「直感」に勝るAIは今のシステムでは生まれないと思う。
              • by Anonymous Coward
                でも解く時間が1/1000になりますよね
              • by nsawa (497) on 2007年03月22日 17時01分 (#1130170)
                > 将棋は一旦取った駒を再利用することで無限数の手数になる。
                > (数学的に有限か無限かは証明されてないと思うけど)

                千日手のルールがあるから、無限にはなり得ないのではないでしょうか。
                親コメント
              • by Anonymous Coward
                wikiより
                『将棋においては駒の配置、両対局者の持ち駒の種類や数、手番が全く同じ状態が1局中に4回現れると千日手になる。』

                たとえ有限回数としても、この条件を満たすのはかなり無限に近い気がするね。
                むしろ「この局面なら千日手で流してしまったほうがいい」と判断できたら、人間と対等になれるかもしれない。
              • by Anonymous Coward
                盤面の広さも駒の数も有限である以上
                「駒の配置、両対局者の持ち駒の種類や数、手番」
                の組み合わせも有限であり、
                従って同一の局面を避けながら無限に打ち続けることはできません。

                現状想像し得る演算能力と比較して無限にも等しいという点には同意します。根拠はないけど。
          • by Anonymous Coward
            コンピュータオセロの本でちょっと、将棋は月刊マイコンの連載を読んだだけ、ですが。その後に新技術が開発されていたらすまんです。

            たしか序盤は定石、終盤は読み切れるので、問題はそれ以外の部分だったはず。手数が爆発的に増えるので、評価木を作るにも何十手かで探索を打ち切って、その場面を評価しなければいけません。

            「直感」というものは過去の経験の積み重ねによるものが多いと思われます。ということで、過去の棋譜と、その場面ごとの最善手(と思われる手)を記録させておき、パターンマッチを評価関数に含めれば、かなりいけそう。少なくとも同じ手では負けません。

            そんな妄想をした十数年前。
          • by Anonymous Coward
            >限られたリソース(CPUやメモリ、時間)の中ではすべての手を読むことができない以上、どこかで先読みに見切りをつける

            それこそ人間の「直感」なわけですが。
            何もないところに突然神の天啓があるとでも思ってんの?
          • by Anonymous Coward
            スペックを10倍にできてもう何手か読めたとしても、「後数手先を読んでいれば・・・」という事態はなくならないかと。

            結局この手の事態はコンピュータが読んだ最終局面そのものを評価することが難しいために起きています。
            簡単にいうと既存のアルゴリズムはある局面の評価を、「それまでにどれくらい駒が取れたか(取られたか)」によって評価しています。
            例えば、21手先までに飛車と角を取れる筋があったとすると、この21手先の局面は高評価なわけです。
            しかし、この21手先の局面の数手先で自分の王が取られてしまうならこの局面は明らかに駄目ですよね。

            ってなわけで、より強いアルゴリズムになるためには局面そのものを評価する必要が出てきます(この局面そのものの評価が人間で言うところの直感だと思います)。
            局面そのものが形によって評価出来るなら、コンピュータが読んだ最終手に限らず途中の読み筋の枝きりにも使えるわけです。
            しかし、コンピュータは「形」を認識することが不得意(というか計算負荷が高い)なため、現在色々と試行錯誤されている状況ですね。
          • by Anonymous Coward
            >人間のような「直感」に恵まれていないコンピュータが先読みをする場合、
            >限られたリソース(CPUやメモリ、時間)の中ではすべての手を読むことができない
            >以上、どこかで先読みに見切りをつける必要があるわけ

            羽生名人が以前「限られた時間で全ての手を読むことは不可能なのである程度
            の目星をつけて考える」なんてこと言ってましたので人間も同じですね。
    • by Anonymous Coward
      チェスでは去年 Deep Fritz (Dual Intel Core 2 Duo 5160 3GHz) が人間の世界チャンピオン相手に2勝4分0敗でした。http://www.rag.de/microsite_chess_com/ [www.rag.de]

ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家

処理中...