コンピュータチェス

提供: Yourpedia
移動: 案内検索

コンピュータチェスとは、コンピュータが指すチェスのことである。

コンピュータの黎明期からコンピュータにチェスをさせるという試みは行なわれ、コンピュータの歴史と、コンピュータチェスの歴史は並行して歩んできた。 黎明期には、人間を相手にチェスのゲームを行うことを念頭に置いて開発されていたが、近年は最高レベルのものは世界チャンピオンと互角になるまで強くなり、コンピュータ同士の対戦も盛んに行われるようになっている。

歴史

チャールズ・バベッジは、1840年代に機械にゲームを行わせることに興味を持ち、解析エンジン(コンピュータ)を考えた。ただし、チェスの場合は組合せが膨大になり現実的でないことに気づいている。

コンピュータでチェスプログラムを作ることの可能性に初めて言及したのは、ドイツのコンラート・ツーゼ(1945年)であるといわれている。

ベル研究所クロード・シャノンは、1949年に「チェスをするコンピュータのプログラミング」という論文を発表し、評価関数の特徴・探索木の作り方の戦略について考察している。

アラン・チューリングは、1951年に解析のアルゴリズムを考案し(ただし計算は手作業)、実際にシミュレーションによる試合を試みている。

記録に残っている最初の動作するプログラムは、1956年のロスアラモス研究所のプログラムである。ただし、これは6×6のミニチュアボードによるものであった。

最初にコンピュータが人間のチェスの選手権に参加したのは1967年のボストンの競技会の Mac Hack VI(マックハック) である。この時のコンピュータのレーティングは1670といわれ、ちょっと強いアマチュアのレベルに達している。

コンピュータ同士の最初のチェス選手権は1970年にニューヨークで開催され、その時は当時の コントロール・データ・コーポレーション(CDC) のスーパーコンピュータ上で動作する CHESS 3.0 というプログラムが優勝している。その後、北アメリカでのコンピュータチェス選手権は毎年開催され、1984年には当時最速のコンピュータであった Cray で動作する CRAY BLITZ が優勝、1988年にはディープ・ブルーの前身であるディープ・ソートが優勝するなどの記録が残っている。

1988年、ディープ・ソートはLong BeachでのトーナメントでGMのLarsenに勝利。GMに勝った史上初のプログラムとなる。

1989年にディープ・ソートは世界チャンピオンガルリ・カスパロフと対戦し、接戦の末に破れる。1990年には、アナトリー・カルポフにも敗北。しかし、これらの試合は、人間のチャンピオンがやがてコンピュータに敗れることを十分に予感させるものであった。

1996年IBMのコンピュータであるディープ・ブルーがガルリ・カスパロフと対戦し、1つのゲームとしては、初めて世界チャンピオンに勝利を収めた。ただし、これは6戦中の1勝に過ぎず、全体ではカスパロフの3勝1敗2引き分けであった。しかし、翌1997年に、ディープ・ブルーは、2勝1敗3引き分けとカスパロフ相手に雪辱を果たした。現実的には、これだけの試合数で実力は評価できないが、世界チャンピオンと互角に戦えるだけの能力になったことは確かである。

その後も人間の名人対コンピュータの対戦は行なわれ、2002年の10月に行われたウラジーミル・クラムニクとコンピュータソフトディープ・フリッツとのマッチでは、両者引き分け。2003年1月26日から2月7日までニューヨークで行なわれた、カスパロフとディープ・ジュニアとのマッチも1勝1敗4引き分けで両者引き分けに終わっている。2003年11月11日から11月18日に行なわれたカスパロフとX3D Fritz (英語)のマッチは1勝1敗2引き分けで両者引き分けに終わった。

ディープ・ブルーの後は、技術革新に伴いPC上で動くコンピュータソフトが主力となるが、ハードウェアを含めて最強のチェス・コンピュータを作る試みがヒドラプロジェクトで行われている。これは、64ノードの Xeon プロセッサからなる。

2005年11月には、人間とコンピュータのチームによる対戦がスペインのピルバオで行われた。人間のチームは元世界チャンピオンの、カシムジャノフ、カリフマン、ポノマリョフの3人、コンピュータのチームは、ヒドラ、フリッツ(Fritz)、Junior の3種。結果は8-4でコンピュータの勝利となり、人間が次第に劣勢に持ち込まれコンピュータに勝つことは難しくなってきた。

2006年11月25日から12月5日にかけてディープ・フリッツはクラムニクと再戦し、1戦も失うことなく2勝4引き分けの勝利を収めている。

2007年3月には、GMのJaan EhlvestがRybkaと対戦。Rybka側は常にポーンを1つ落とす(8ゲーム行い、1ゲームごとに落とすポーンを変えていく)というハンデキャップマッチだったが、Rybkaが4勝1敗3分で勝利している。

人間が機械に負けたことを受け、チェスとほぼ同じ駒を使ってできるアリマアという新しいボードゲームが考案された。これは、1手あたりの可能な着手数がチェスに比べて遙かに多いため、当面の間は人間がコンピュータに負けることはないと考えられている。

コンピュータチェスのプログラミング技術・課題

コンピュータチェスのプログラミングは、以下の3つのフェーズに分割して考えることができる。

序盤
チェスの定跡は、昔から研究されているが、様々なバリエーションがある。通常のチェスソフトでは、序盤ではデータベースを参照しながら、現在の手順がデータベースにあるものかを検索する。データベースにあるもので、次の手が複数の候補を持てば、その最良の(最初の)手を選択するか、ランダムに1つを選んで指すようにする。
データベースとしては、様々なものが作成されており、コンパクトなものから巨大なものまである。かならずしも巨大であれば良いというものでもない。
中盤
定跡のデータベースをはずれた時点から、評価関数をもとに探索を行いながら、最良の手順を探っていく。この時の、評価関数の与え方、探索時における無駄の排除がプログラミングの中心となる。探索の重複を避けるために、ハッシュテーブルを用いるのが普通である。
終盤
双方の残りの駒がある程度少なくなった場合をエンドゲームと呼び、研究はかなり進んでいる。
1980年代初めには、残りが5駒以下の場合について、終盤がどうなるかの解析が終了している。
残り駒数が3・4・5の場合についてのデータベースが、ロシアのナリモフによりまとめられ、無償で公開されている。後述のチェスソフトウェアには、これを含んでいるものや利用可能なものがある。[1]

世界コンピュータチェス選手権

1974年頃の参加プログラムは、専用の大規模なハードウェアを用いるものがほとんどであった。ディープ・ブルーは、1995年の香港での大会に出場し3位になっている。(参加24プログラムに対して5ゲームしか行われておらず、余り客観的な順位ではない。)

1999年は、「世界コンピュータチェス選手権」と「世界マイクロコンピュータチェス選手権」は一体となって開催されている。近年は、ほとんどのプログラムがマイクロコンピュータ上で動作するプログラムになってしまったため、両者を区別する意味は失われた。

世界コンピュータチェス選手権の優勝プログラム(ハードウェア)

開催年開催地優勝プログラムプログラマー
2007アムステルダムRybkaRajlich
2006トリノDeep JuniorBan/Bushinsky
2005レイキャヴィークZappaCozzie
2004ラマトガンDeep JuniorBan/Bushinsky
2003グラーツShredderMeyer-Kahlen
2002マーストリヒトDeep JuniorBan/Bushinsky
1999パダーボーンShredderMeyer-Kahlen
1995香港FritzMorsch/de Gorter/Feist
1992マドリードChessmachineSchroeder
1989エドモントンDeep ThoughtHsu
1986ケルンCray Blitz (tiebreak)Hyatt
1983ニューヨークCray BlitzHyatt
1980リンツBelleThompson
1977トロントChess 4.6Slate/Atkins
1974ストックホルムKaissaDonskoy

2005年に開催された第13回大会では、Shredder と Deep Junior の争いなるかと思われたが、優勝したのはアンソニー・コジィーによる Zappa、 2位には前評判の高かった Fruits、Shredder は Deep Sjeng と3位タイであった。


世界マイクロコンピュータチェス選手権の優勝プログラム

開催年開催地優勝プログラムプログラマー
2001マーストリヒトDeep JuniorBan/Bushinsky
2000ロンドンShredderMeyer-Kahlen
1999パダーボーンShredderMeyer-Kahlen
1995香港FritzMorsch/de Gorter/Feist
1993ミュンヘンHiarcsUniacke
1991バンクーバーGideonSchroeder
1990リヨンMephistoLang
1989ポルトロスMephistoLang
1988アルメリアMephistoLang
1987ローマMephistoLang
1986ダラスMephistoLang
1985アムステルダムMephistoLang
1984グラスゴーElite XSpracklen
1983ブダペストElite A/SSpracklen
1981トラベミュンデFidelity XSpracklen
1980ロンドンChess ChallengerSpracklen


レイティング・リスト

Swedish Chess Computer Associationのレイティング・リスト(2007年11月)のトップ3は、1位がRybka 2.3.1(2935)、2位がHIARCS 11.1(2869)で、3位がJunior 10.1(2861)である。また、Chess Engines Grand Tournamentのレイティング・リスト(2007年11月)のトップ3は、1位がRybka 2.3.2a x64 4CPU (3100)、2位がZappa Mexico x64 4CPU(3009)、3位がDeep Shredder 11 x64 4CPU(2984)である。その他の6つのレイティング・リスト(CCRL, CSS, Per Elbaek Jorgensen, Frank Quisinsky, Sedat Canbaz, Kurt Utzinger)のどれにおいてもRybkaはトップとなっている。なお、2006年に世界チャンピオンのクラムニクをマッチで破ったDeep Fritzは、8つのリストのどれにおいても3位以内に入っていない。

代表的なソフトウェア

日本語で動作するソフトウェア

騎士道 1.1
フリーソフト、Windows用。[2]
バリューチェス(マグノリア)
ダウンロード可能。[3]
Standard 1500 The チェス(サクセス)
ダウンロード可能。[4]
チェス チャンピオンシップトーナメント(アンバランス)
市販品。ネットワーク通信対局が可能。フェアリーチェスを何種類か指すことができるのが特徴。 [5]
最強銀星チェス(シルバースタージャパン)
Windows用パッケージ版、ダウンロード版があり。体験版もある。 [6]


海外ソフトウェア

ChessMaster
もと The Software Toolworks社、現在は UBI Soft社が発売している老舗チェスソフト。他のチェスプログラムと違って、単に強いだけではなく、学習機能・子供向け機能・定跡編集・データベース機能などの付加機能が充実している。また、いち早く三次元的なチェス盤の表示を取り入れる、英語によるアドバイス機能など、常に他のソフトより先行している。思考エンジンは The King という名称を持ち、トップレベルにある。
Chessmaster 2000 (1986年)
最初の PC-DOS 用ソフトウェア。
Chessmaster 2100 (1988年)
上記の改良版。
Chessmaster 3000 (1991年)
Windows 3.1用。表示が格段に美しくなり、英語によるアドバイス機能を搭載。
Chessmaster 4000 Turbo (1993年)
32ビット思考エンジンの搭載。
Chessmaster 5000 (1996年)
Mindscape社より発売。Windows 95に対応。
Chessmaster 6000 (1998年)
Macintosh用あり。
Chessmaster 7000 (1999年)
子供用の Kids room 機能。
Chessmaster 8000 (2001年)
UBI soft社より発売。Windows XP用。
Chessmaster 9000 (2002年)
Windows用、Macintosh用あり。
Chessmaster 10th Edition (2004年)
最新版。 [7]
Fritz
最近ではチェスソフトの代名詞のように使われることもある。最初の16ビット版(Ver.1.2)は1991年にオランダのフランス・モルシュ(Frans Morsch)によって書かれた。1995年には、開発中のディープ・ブルーに勝利したことで一躍有名になった。
Deep Fritz
現在でも世界のトップを争っているソフト。毎秒600万手を読むことができる。(ディープ・ブルーの毎秒2億手に比べると少ないが、アルゴリズムが違うため強さに遜色ない。)マルチプロセッサの Windows で動作する。市販されている。2006年に世界チャンピオンのクラムニクに4-2のスコアで勝利した。[8]
Fritz
こちらは通常のシングルプロセッサの PC で動作する。Deep Fritz に比べれば弱いが、一般には十分な強さ。市販されている。現在のバージョンは11。[9]
X3D Fritz
Fritz にバーチャル・リアリティのプログラムを組み合わせ、現実のチェス盤や駒を用いずに対戦する仕組みを作り、2003年11月にカスパロフと対戦し、引き分けた。これは非商用。
Junior
イスラエルのプログラマー Amir Ban, Shay Bushinsky によるプログラム。1997年には世界マイクロコンピュータ選手権で優勝。この時は16ビット版(Ver.4.6)であった。2002年と2004年の世界コンピュータチェス選手権を制した。
Deep Junior
Fritz 同様に、マルチプロセッサー対応のものを Deep を付して販売している。現在のバージョンは7。[10]
Junior
シングルプロセッサ版。こちらも市販されている。[11]
Shredder
ドイツのプログラマー、ステファン・メイヤー=カーレン(Stefan Meyer-Kahlen)により、1992年より開発されている。1996年の世界マイクロコンピュータチェス選手権 で優勝。1999年、2000年、2003年にも世界選手権で優勝し、その実力はトップレベル。
Deep Shredder 9 UCI
マルチプロセッサー対応の最新版。その強さに対する評価は高い。
Shredder 9 UCI
上記の通常版。どちらもオンラインで購入できる。[12]
Shredder 8
2003年の世界コンピュータチェス選手権での優勝プログラム。
Shredder Classic
1996年の選手権での優勝プログラム(Ver.6)。こちらは、評価版がダウンロードでき、購入もできる。[13]
Crafty
1986年の大会で優勝した Cray Blitz のプログラマー Robert Hyatt 教授によるチェスプログラムで今でもかなり強い。フリーでソースコードも公開されている。思考エンジンのみなので、実行には後述の Arena などの GUI プログラムが必要。
Arasan
Jon Dart によって開発されたプログラム。1994年から Windows用に開発されており、強さはトップレベルではないがフリーで使い勝手が良いため普及している。GUI とエンジンは分離しているが、他のエンジンを読み込むことはできない。Linux版もある。現在のバージョンは8.3。[14]
GNU Chess
フリーのチェス。これもかなり強い。もともとはテキスト入出力の見栄えの悪いプログラムだったが、Winboard の開発によって使いかってが良くなった。最新版は、5.07。[15]
The ChessBrain Network
分散コンピューティングによる対戦プログラム。世界順のネットワークにつながったコンピュータにさまざまな手を先読みさせ、その中で最もいいものを選び、使うというシステムである。理論上は究極のスーパーコンピュータチェスとなる。といっても一般の人は対戦できず、ギネス記録更新のためにプロが対戦したりする。結果はホームページにて閲覧可能。

関連ソフトウェア(海外)

ChessBase
棋譜の保存・管理・分析用として世界的に用いられているソフトウェア。ドイツ、ChessBase社製。 [16]
WinBoard/XBoard
思考エンジンと呼ばれるチェスプログラムを用いて、コンピュータと人間の対戦、あるいはコンピュータ同士の対戦を行うためのソフトウェア。グラフィカルインターフェースを持つ。もともと XBoard が UNIX系OSのために作られ、WinBoardは Windows系用に移植された。無料である。 [17]
Arena
WinBoard と同様の機能を有するが、後発である分使い勝手がよい。思考エンジンはWinBoard用のものに加えて、UCI仕様のものを用いることができる。無料である。 [18]
思考エンジン
Winboard, Arenaで使うことのできる200種類以上の思考エンジンが作られている。そのうち多くのものは無料でダウンロードできる。前述の Cheassmaster, Fritz, Shredder等のプログラムも、思考エンジン部分は独立しており、WinBoard上で対戦させたり、ChessMaster上で Crafty などのエンジンと対戦することが可能になっている。
思考エンジンには、WinBoard/XBoard 仕様のインターフェースと、UCIインターフェース、及び Fritz などの独自仕様のものがある。GUI によっては、いずれかのインターフェースしか扱えない。Winboard と UCI のインターフェースは、どちらもテキストベースの入出力であり、変換するプログラムも存在する。
思考エンジンのダウンロードは、[19][20],[21]などを参照。

関連文献

ディープ・ブルーの項目も参照のこと。

関連項目

Wikipedia-logo.svg このページはウィキペディア日本語版のコンテンツ・コンピュータチェスを利用して作成されています。変更履歴はこちらです。
da:Computerskak

de:Computerschaches:Ajedrez por computadora fi:Tietokoneshakki fr:Programme d'échecs he:תוכנת שחמט it:Videogioco di scacchi nl:Schaaksoftware pl:Szachy komputerowe pt:Xadrez por computador sl:Šahovski računalniški programi uk:Комп'ютерні шахи