コンピュータチェス
出典: フリー百科事典『ウィキペディア(Wikipedia)』
コンピュータチェスとは、コンピュータが指すチェスのことである。
コンピュータの黎明期からコンピュータにチェスをさせるという試みは行なわれ、コンピュータの歴史と、コンピュータチェスの歴史は並行して歩んできた。 黎明期には、人間を相手にチェスのゲームを行うことを念頭に置いて開発されていたが、近年は最高レベルのものは世界チャンピオンと互角になるまで強くなり、コンピュータ同士の対戦も盛んに行われるようになっている。
目次 |
[編集] 歴史
チャールズ・バベッジは、1840年代に機械にゲームを行わせることに興味を持ち、解析エンジン(コンピュータ)を考えた。ただし、チェスの場合は組合せが膨大になり現実的でないことに気づいている。
コンピュータでチェスプログラムを作ることの可能性に初めて言及したのは、ドイツのコンラット・ツーゼ(1945年)であるといわれている。
ベル研究所のクロード・シャノンは、1949年に「チェスをするコンピュータのプログラミング」という論文を発表し、評価関数の特徴・探索木の作り方の戦略について考察している。
アラン・チューリングは、1951年に解析のアルゴリズムを考案し(ただし計算は手作業)、実際にシミュレーションによる試合を試みている。
記録に残っている最初の動作するプログラムは、1956年のロスアラモス研究所のプログラムである。ただし、これは6×6のミニチュアボードによるものであった。
最初にコンピュータが人間のチェスの選手権に参加したのは1967年のボストンの競技会の MACHAC Ⅵ である。この時のコンピュータのレーティングは1670といわれ、ちょっと強いアマチュアのレベルに達している。
コンピュータ同士の最初のチェス選手権は1970年にニューヨークで開催され、その時は当時のスーパーコンピュータ CDC 上で動作する CHESS 3.0 というプログラムが優勝している。その後、北アメリカでのコンピュータチェス選手権は毎年開催され、1984年には当時最速のコンピュータであった Cray で動作する CRAY BLITZ が優勝、1988年にはディープ・ブルーの前身であるディープ・ソートが優勝するなどの記録が残っている。
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引き分けの勝利を収めている。
人間が機械に負けたことを受け、チェスとほぼ同じ駒を使ってできるアリマアという新しいボードゲームが考案された。これは、1手あたりの可能な着手数がチェスに比べて遙かに多いため、当面の間は人間がコンピュータに負けることはないと考えられている。
[編集] コンピュータチェスのプログラミング技術・課題
コンピュータチェスのプログラミングは、以下の3つのフェーズに分割して考えることができる。
- 序盤
- チェスの定跡は、昔から研究されているが、様々なバリエーションがある。通常のチェスソフトでは、序盤ではデータベースを参照しながら、現在の手順がデータベースにあるものかを検索する。データベースにあるもので、次の手が複数の候補を持てば、その最良の(最初の)手を選択するか、ランダムに1つを選んで指すようにする。
- データベースとしては、様々なものが作成されており、コンパクトなものから巨大なものまである。かならずしも巨大であれば良いというものでもない。
- 中盤
- 定跡のデータベースをはずれた時点から、評価関数をもとに探索を行いながら、最良の手順を探っていく。この時の、評価関数の与え方、探索時における無駄の排除がプログラミングの中心となる。探索の重複を避けるために、ハッシュテーブルを用いるのが普通である。
- 終盤
- 双方の残りの駒がある程度少なくなった場合をエンドゲームと呼び、研究はかなり進んでいる。
- 1980年代初めには、残りが5駒以下の場合について、終盤がどうなるかの解析が終了している。
- 残り駒数が3・4・5の場合についてのデータベースが、ロシアのナリモフによりまとめられ、無償で公開されている。後述のチェスソフトウェアには、これを含んでいるものや利用可能なものがある。[1]
[編集] 世界コンピュータチェス選手権
1974年頃の参加プログラムは、専用の大規模なハードウェアを用いるものがほとんどであった。ディープ・ブルーは、1995年の香港での大会に出場し3位になっている。(参加24プログラムに対して5ゲームしか行われておらず、余り客観的な順位ではない。)
1999年は、「世界コンピュータチェス選手権」と「世界マイクロコンピュータチェス選手権」は一体となって開催されている。近年は、ほとんどのプログラムがマイクロコンピュータ上で動作するプログラムになってしまったため、両者を区別する意味は失われた。
[編集] 世界コンピュータチェス選手権の優勝プログラム(ハードウェア)
開催年 | 開催地 | 優勝プログラム | プログラマー |
---|---|---|---|
2005 | レイキャヴィーク | Zappa | Cozzie |
2004 | ラマトガン | Deep Junior | Ban/Bushinsky |
2003 | グラーツ | Shredder | Meyer-Kahlen |
2002 | マーストリヒト | Deep Junior | Ban/Bushinsky |
1999 | パダーボーン | Shredder | Meyer-Kahlen |
1995 | 香港 | Fritz | Morsch/de Gorter/Feist |
1992 | マドリード | Chessmachine | Schroeder |
1989 | エドモントン | Deep Thought | Hsu |
1986 | ケルン | Cray Blitz (tiebreak) | Hyatt |
1983 | ニューヨーク | Cray Blitz | Hyatt |
1980 | リンツ | Belle | Thompson |
1977 | トロント | Chess 4.6 | Slate/Atkins |
1974 | ストックホルム | Kaissa | Donskoy |
2005年に開催された第13回大会では、Shredder と Deep Junior の争いなるかと思われたが、優勝したのはアンソニー・コジィーによる Zappa、 2位には前評判の高かった Fruits、Shredder は Deep Sjeng と3位タイであった。
[編集] 世界マイクロコンピュータチェス選手権の優勝プログラム
開催年 | 開催地 | 優勝プログラム | プログラマー |
---|---|---|---|
2001 | マーストリヒト | Deep Junior | Ban/Bushinsky |
2000 | ロンドン | Shredder | Meyer-Kahlen |
1999 | パダーボーン | Shredder | Meyer-Kahlen |
1995 | 香港 | Fritz | Morsch/de Gorter/Feist |
1993 | ミュンヘン | Hiarcs | Uniacke |
1991 | バンクーバー | Gideon | Schroeder |
1990 | リヨン | Mephisto | Lang |
1989 | ポルトロス | Mephisto | Lang |
1988 | アルメリア | Mephisto | Lang |
1987 | ローマ | Mephisto | Lang |
1986 | ダラス | Mephisto | Lang |
1985 | アムステルダム | Mephisto | Lang |
1984 | グラスゴー | Elite X | Spracklen |
1983 | ブダペスト | Elite A/S | Spracklen |
1981 | トラベミュンデ | Fidelity X | Spracklen |
1980 | ロンドン | Chess Challenger | Spracklen |
[編集] 代表的なソフトウェア
[編集] 日本語で動作するソフトウェア
- 騎士道 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 に比べれば弱いが、一般には十分な強さ。市販されている。現在のバージョンは10。[9]
- X3D Fritz - Fritz にバーチャル・リアリティのプログラムを組み合わせ、現実のチェス盤や駒を用いずに対戦する仕組みを作り、2003年11月にカスパロフと対戦し、引き分けた。これは非商用。
- Junior - イスラエルのプログラマー Amir Ban, Shay Bushinsky によるプログラム。1997年には世界マイクロコンピュータ選手権で優勝。この時は16ビット版(Ver.4.6)であった。2002年と2004年の世界コンピュータチェス選手権を制した。
- Shredder - ドイツのプログラマー、ステファン・メイヤー=カーレン(Stefan Meyer-Kahlen)により、1992年より開発されている。1996年の世界マイクロコンピュータチェス選手権 で優勝。1999年、2000年、2003年にも世界選手権で優勝し、その実力はトップレベル。
- 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 - 分散コンピューティングによる対戦プログラム。世界順のネットワークにつながったコンピュータにさまざまな手を先読みさせ、その中で最もいいものを選び、使うというシステムである。理論上は究極のスーパーコンピュータチェスとなる。といっても一般の人は対戦できず、ギネス記録更新のためにプロが対戦したりする。結果はホームページにて閲覧可能。
[編集] 関連ソフトウェア(海外)
- 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]などを参照。
[編集] 関連項目
カテゴリ: チェス | コンピュータボードゲーム