Bonanzaのソースを表示
←
Bonanza
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Otheruses|将棋のフリーウェア|その他の用法|ボナンザ (曖昧さ回避)}} {{Infobox Software | 名称 = Bonanza | ロゴ = | スクリーンショット = | 説明文 = | 開発者 = [[保木邦仁]] | 開発元 = | 最新版 = The Final | 最新版発表日 = {{release date|2013|7|22}} | 最新評価版 = | 最新評価版発表日 = | プログラミング言語 = [[C言語]]、[[Perl]]<ref>{{Cite web|和書|url=http://www.computer-shogi.org/wcsc22/ |title=第22回世界コンピュータ将棋選手権|accessdate=2013-05-08}}</ref> | 対応OS = [[Microsoft Windows|Windows]] | エンジン = | 対応プラットフォーム = | サイズ = | 対応言語 = [[英語]] | サポート状況 = | 種別 = [[コンピュータ将棋]] | ライセンス = }} '''Bonanza'''(ボナンザ)は、[[コンピュータ将棋]]の[[プログラム (コンピュータ)|プログラム]]。[[Microsoft Windows|Windows]]用の[[フリーウェア]]として公開されており、誰でも無償でダウンロードして利用できた。[[ソースコード]]も公開されている。 == 概要 == 作者は公開当時[[カナダ]]在住だった日本人の化学者[[保木邦仁]]。作成当時は将棋についてはほとんど知らないことも話題となった<ref>コンピュータ将棋の開発者の中には、アマ強豪クラスも珍しくない。[[Ponanza]]開発者の[[山本一成]]は東大将棋部のOBでアマ五段である。</ref>。2007年に刊行した著書では、自らの[[棋力]]を「11級」と評した<ref>2007年当時、将棋には11級という段級位の公式の認定はなく(アマ11級から15級は2017年に新設)、当時の最低級位であった10級にも満たない実力という意味だった。ただし『ボナンザ VS 勝負脳』の53ページでは、[[渡辺明 (棋士)|渡辺明]]は保木の棋力を「アマ5級程度」と評した。</ref>。 [[2005年]]6月にver.1.0が公開。その棋力の高さは公開直後から[[渡辺明 (棋士)|渡辺明]]が自身のブログで「プロが平手で餌食になった」「[[奨励会]]有段者クラスがコロコロ負けているらしい」とたびたび話題にし<ref>{{Cite web|和書|url=https://blog.goo.ne.jp/kishi-akira/e/0ec4e61968eb148e2b7059a83f953ea0|title=ボナンザとか。|date=2005-10-03|author=渡辺 明|work~渡辺明ブログ|accessdate=2013-05-08}}</ref>、渡辺自身も「10秒将棋<ref>持ち時間を1手10秒に制限する。渡辺によれば、10秒将棋では思考・読みを行う余裕が全くないため、人間であれば直感・第一感で指すしかなく、その時間でもそれなりに読めるコンピュータが圧倒的に有利な条件であるという。</ref>だと10回に1、2回はやられる」と述べた<ref>{{cite journal|和書|title=渡辺明竜王×[[保木邦仁]](Bonanza開発者) 竜王vsボナンザ 歴史的一戦にのぞむ |journal=将棋世界|year=2007|month=4}}</ref>。また、コンピュータらしくない自然な手を指すとの評が確立した。棋力の指標となる[[将棋倶楽部24]]での[[レイティング]]は2006年当時で2400以上(アマチュア五段相当=主要アマチュア棋戦の県代表争いレベル)に達した。<!--2011年10月、Bonanza を6台クラスタリングした[[Puella α|ボンクラーズ]]はレーティング3300を超え、将棋倶楽部24の最高記録を作った<ref>[http://entcog.c.ooco.jp/WCSC22/22shiryo.pdf 第22回世界コンピュータ選手権 資料]</ref>。--> メジャーアップデートされたver.2.0は[[2006年]]5月に行われた[[世界コンピュータ将棋選手権|第16回世界コンピュータ将棋選手権]]大会にBonanzaとして初出場し、歴戦の将棋ソフトが居並ぶ中で初優勝した<ref>{{Cite web|和書|url=http://www.magnolia.co.jp/bona.html |title=第16回世界コンピュータ将棋選手権 (2006年5月3日~5日開催)にて、Bonanzaが優勝|author=広沢一郎|work=マグノリア|date=2006-05-06|accessdate=2013-05-08}}</ref><ref>{{Cite web|和書|url=https://news.mynavi.jp/articles/2006/05/08/shogi/ |author=佐藤 晃洋|title=【レポート】フリーソフト「Bonanza」が初出場で優勝 - 第16回コンピュータ将棋選手権|work= マイコミジャーナル|date=2006-05-08|accessdate=2013-05-08}}</ref><ref>{{Cite web|和書|url=https://forest.watch.impress.co.jp/article/2006/05/17/bonanza.html|title= 【NEWS】世界コンピュータ将棋選手権で優勝したフリーの将棋ソフト「Bonanza」|work=窓の杜|date=2006-05-17|author=石川 敬峰|accessdate=2013-05-08}}</ref>。高性能な[[ワークステーション]]で参加する者も多い中、Bonanzaは一般向けのノートパソコン ([[VAIO]] SZ-90S)、筐体を冷却するのは小型[[USB扇風機]]と、低スペックの環境での優勝であった。この赤い扇風機は、後に市販された初回限定版に同梱されるなどBonanzaの象徴となり、後述する渡辺との対局でも、Bonanzaのシンボルマークとして筐体の上に設置された(風は送っていない)。既に草創期を脱し強豪ソフトが固定化されてきた中、初出場での優勝、ノートパソコンでの優勝、フリーウェアの優勝という三重の「初づくし」は、コンピュータ将棋界に巨大な衝撃を与えた。 === ソースコード公開後 === 2006年11月11日の第11回 ゲーム・プログラミングワークショップ2006にて、アルゴリズムの詳細が発表された<ref>{{Cite web|和書|url=http://minerva.cs.uec.ac.jp/~ta-ito/GPW06/top.htm |title=第11回 ゲーム・プログラミングワークショップ 2006 プログラム|accessdate=2013-05-08}}</ref>。 2009年1月、保木はBonanza Version 4.0.3の思考ルーチンのソースプログラムを公開し、他の開発者の利用を認めた。これにより、Bonanzaの思考ルーチンの詳細が明らかになった。これを利用し、2009年5月の第19回世界コンピュータ将棋選手権には[[電気通信大学]]の開発チームが、乱数によって異なる思考を行う複数のBonanzaライブラリの合議制アルゴリズムによって指し手を決定する「文殊」を開発して初出場し、本家Bonanzaに直接対決では敗れたものの、総合成績ではBonanzaの5位を上回る3位となった。 2010年5月の第20回世界コンピュータ将棋選手権では、保木と文殊チームが連合し合議制アルゴリズムを採用した「'''Bonanza Feliz'''」(Ver.5.0に相当)を擁して出場し5位となったほか、3チームがBonanza4.0.3ライブラリ採用のソフトで出場し、「ボンクラーズ」が本家を上回る4位、[[芝浦工業大学]]の「芝浦将棋」が初出場ながら決勝に進出して7位となった。 2011年5月の第21回世界コンピュータ将棋選手権では、電気通信大学の特任助教に就任した保木が単独名義において、ver.6.0でエントリーし2位となる。この大会では、総計17台132コアのコンピュータによる並列処理を行い、うち1台はこれまで搭載していなかった長手数の詰将棋専用のルーチンを搭載して即詰みに対応した。また、保木以外に3チームがBonanzaライブラリ採用のソフトで参加した<ref>前年度にBonanzaライブラリを採用した「ボンクラーズ」は独自のライブラリを開発して出場し、Bonanzaを抑えて優勝している。</ref>。 2012年5月の第22回世界コンピュータ将棋選手権では、保木は前年を上回る総計26台288コアのコンピュータを用意し、前年から取り組んでいる「合議法、クラスター並列探索、詰将棋専用マシンによる疎結合並列化」を推し進めたが、二次予選で9位となり、Bonanzaは初めて大会の決勝に残ることができなかった。この大会では6チームがBonanza6.0のライブラリを採用し、ボンクラーズから名称を変更した「[[Puella α]]」が2位に入った。 2013年5月の第23回世界コンピュータ将棋選手権では、保木は31台388コアのクラスタ構成<ref>{{Cite web|和書|url=http://computer-shogi-live.cocolog-nifty.com/blog/2013/05/post-ec7f.html |work=コンピュータ将棋選手権ネット中継|title= ついに決勝最終戦|date=2013-05-05|accessdate=2013-05-08}}</ref>で大会に臨み、前年は通過できなかった二次予選を4位で通過した。8チームの総当りで行われる決勝では6回戦を終えて4勝2敗となり、最終7回戦は5勝1敗の首位で前年の優勝チームであり、直前に行われた「電王戦」で[[三浦弘行]]八段を破った[[GPS将棋]]との対局となった。対局は途中でBonanzaに即詰みが発生する必敗の局面となったが、25分の持ち時間を使い切ると即敗退となる制限時間のルールにより、GPS将棋が詰みを逃し持ち時間を使い切ったことでBonanzaが逆転で勝利。7回戦を終了して5勝2敗でBonanza、[[ponanza]]、GPS将棋の3チームが並んだが大会の順位決定規定によりBonanzaが2006年の初優勝以来7年ぶり2度目の優勝を果たした。この大会ではBonanza以外に9チームがBonanza6.0のライブラリを採用し、NineDayFeverが大会初出場ながら決勝に進出し、2位ponanzaと4位激指に勝つ健闘を見せて5位となった。 2014年に開催される第3回将棋電王戦の出場ソフトを決める、2013年11月の第1回将棋電王トーナメントでは、ハードウェアが主催者によってゲーミングパソコン1台に限定された中、予選を参加18チーム中3位で通過したが、準々決勝でYSSに、5位決定戦1回戦でAperyに敗れ、7位に終わった。 2014年5月の第24回コンピュータ将棋選手権では、保木は35台400コアのクラスタ構成で出場し、2次予選を6勝3敗の4位で通過し、決勝は3勝4敗の6位となった。この大会でもBonanza以外に9チームがBonanza6.0のライブラリを使用し、NineDayFeverが前年の自己順位と本年のBonanzaの順位を上回る4位となった。 2015年5月の第25回コンピュータ選手権にはBonanzaは出場せず、初出場からの連続出場が途切れた。Bonanza6.0のライブラリを使用して出場したチームは、一部のみの使用、実験で使用したものの本番では使用しなかったソフトも含めると10チームとなり、NineDayFeverが自己最高の成績となる2位となった。 == プロ棋士との対局 == === 渡辺明竜王との対局 === {{Shogi diagram|tright |Bonanza vs. 渡辺明 大和証券杯<br>89手目 Bonanza ▲2四歩<br>後手 渡辺明 竜王 持駒:歩 |hs|ng| | | | | |ng|kg | | | | | | |gg|gg|lg |pg| | |ts| |pg|bg|sg| | | |pg| |pg| |pg|psl|pg | | | | | | | |ss|gg | | |ps| |ps| |ps|rs| |ps| |ns| | | | | |ps | | | | | | | |ss|ls |dg| | | | | |gs|ns|ks |先手 Bonanza 持駒:歩四 香二 銀 }} [[2007年]][[3月21日]]、[[大和証券杯ネット将棋・最強戦]]の創設を記念して、[[渡辺明 (棋士)|渡辺明]][[竜王戦|竜王]]との平手一番特別対局が組まれた。結果は渡辺が勝利した。対局は品川[[プリンスホテル]]での[[公開対局 (将棋)|公開対局]]となりBonanzaの先手、[[持ち時間]]はそれぞれ2時間とされた。Bonanza側には、駒を動かすアシスタントとして当時奨励会三段の[[田中悠一]]がつき、保木は初手と終局以外は、Bonanzaの監視を行った。公の場で、コンピュータ将棋がタイトル保持者と平手で対局するのは初めてのことであったが、渡辺は「私は嫌でしたが、頼まれたので引き受けました、と公表すること」を条件として、これを引き受けた<ref>米長邦雄「名勝負今昔物語 - 人間 v.s コンピューター」週刊現代 2010年10月30日号</ref>。 この対局に用いられたBonanzaは、当時公開されていたver.2.1と比較しても、探索手数を大幅に増やし、戦法の選択を改善するなどチューニングをほどこしたものであった。またハードウェアもリアルコンピューティングの「RC Server Calm2000」(CPU:Intel Xeon X5355 2.66GHz×8cores、メモリ:8GB)と、市販のPCよりは高性能のものを使用した。これにより将棋倶楽部24でのレーティングは2800相当(アマチュア最強レベル)に達したという。 対局は先手のBonanzaの四間飛車穴熊に対し、渡辺が銀冠穴熊という相穴熊模様になった。開発者の保木はインタビューに対し、「優秀とされる穴熊という作戦を(Bonanzaが)選んでくれて、とりあえず一安心。」と語った。中盤までBonanzaが優位に進め、対局を観戦していた棋士、アシスタントの田中も互角もしくはBonanza優勢との見解を示していた。対局した渡辺は89手目にBonanzaが▲2四歩と指した段階で自身の勝利を確信したが、この時Bonanzaが▲2四歩ではなく▲2七香と指していたら自身の敗北を予測していたという。Bonanzaの指した▲2四歩は渡辺の玉の囲いを一気に攻め込む積極的な手であり、一方▲2七香は飛車取りを防ぎつつ一旦受けに回る手だった。▲2七香を指されると数手先でBonanzaの玉に馬が張り付き、渡辺の攻めが続かず、負けに至ると読んだと渡辺本人が対局後に語っている<ref>NHK衛星第2テレビ 『運命の一手 渡辺竜王VS.人工知能・ボナンザ』</ref>。保木はその時、席を外していたが廊下でBonanzaが▲2四歩と指したのを聞き「(Bonanzaが)そろそろ悪手を指している頃ではないか」と取材陣に語っていた。ちなみに後のインタビューで[[米長邦雄]]はこの手に対し、「終盤の斬り合いは本来ソフトが得意とする分野で、間違えることは非常に珍しい。あの▲2四歩にはBonanzaの負けてたまるかという感情のようなものを感じた。」と語った。 結果は112手<ref>保木は渡辺の110手目終了後での投了を意図したが、投了の手続きを田中に確認している間にBonanzaが手を指し進めたため、なお2手進行ののち改めて投了した。</ref>で渡辺の勝ちとなったが、対局した渡辺が「奨励会初段~三段」<ref>{{Cite web|和書|url=https://blog.goo.ne.jp/kishi-akira/e/988d26811dfd08023a490e2d3ed5e23d|title= コンピュータ戦迫る。|work=渡辺明ブログ |author=渡辺 明|date=2010-09-15|accessdate=2013-05-08}}</ref>、[[勝又清和]]六段が「奨励会三段レベル」とBonanzaの実力を評価するなど、将棋ソフトの実力がプロに迫ってきていることを示す結果にもなった。渡辺はこの対局をブログで振り返り、「人間では発想できない良手を指した中盤での意外な強さ」と「コンピュータが絶対的な強さを持つと思われていた終盤での意外な見落とし」を指摘している。一方、開発者の保木は、「美しい棋譜を残すことができた」、すなわち第一人者相手に頓珍漢ではない自然な将棋を指せたことをもって評価とした。 この対局の模様は2007年4月21日に[[NHK衛星第2テレビジョン|NHK衛星第2テレビ]]で『運命の一手 渡辺竜王VS.人工知能・ボナンザ』というタイトルで90分間のドキュメントとして放送された。番組では、プロ棋士の[[村山慈明]]や当時奨励会三段だった[[戸辺誠]]らと共にボナンザ対策<ref>保木が対策をしていたため失敗はしたが、ボナンザの癖であった大駒と小駒の交換が偶然ではないことを確信しているなど、熟知している様子が見て取れる</ref>を練る真剣な表情の渡辺や、対局中の「いやぁ、強すぎるなこりゃ、ほんとに」の嘆息を捉えている。 === 清水市代女流王将との対局 === 次にプロ棋士との公式対局が行われたのは3年後の[[2010年]][[10月11日]]であり、[[激指]]、[[GPS将棋]]、Bonanza、[[AI将棋#YSS|YSS]]による合議制で作られた「あから2010」が[[清水市代]]女流王将と対戦し、あから2010が勝利した<ref>{{Cite web|和書|title=若き天才棋士が見せた"戦いの理想形"とコンピュータの悪手|publisher=マイナビニュース|date=2013-03-27|accessdate=2015-04-24|url=https://news.mynavi.jp/article/20130327-denousen/}}</ref>。 <!-- === 米長邦雄永世棋聖との対局 === {{See also|Puella α}} [[2012年]][[1月14日]]、Bonanza を6台クラスタリングした[[Puella α|ボンクラーズ]]が[[米長邦雄]]永世棋聖と対局し、ボンクラーズが勝利した。--> == 思考ルーチン == === Bonanzaの新規性 === Bonanzaの思考ルーチンは、以前のコンピュータ将棋ソフトでは採用されていなかった独自のアイデアが用いられている。 ;コンピュータチェスの思考を応用 :保木は当初コンピュータ将棋ではなく、[[コンピュータチェス]]の論文をベースとして思考ルーチンの基本部分を作成した。ベースとなるデータは、インターネットなどで入手できた6万局<ref>『ボナンザ VS 勝負脳』の27ページによる。CD-ROMで販売されているものも含め、プロの公式戦の対局3万局と[[将棋倶楽部24]]の3万局を利用している。玉が敵陣近くにあるときのデータを利用するため、後者は[[入玉]]の状態になったものを主に採用したという。</ref>に及ぶ将棋の[[棋譜]]データを元にしている。 ;[[全幅探索]] :Bonanza登場以前のコンピュータ将棋では、その局面で可能なすべての指し手を評価する(全幅探索)のではなく、自然な指し手を重視して探索(選択探索)していた。全幅探索では全ての指し手を評価すると選択肢が膨大になり、現実的ではないと考えられていたからである。しかしBonanzaはその常識を覆し、全幅探索を採用することで、これまでの他のソフトが見落としていた(あるいは開発者が軽視していた)指し手に高い評価を与えることが可能となった。現在では後述のように全幅探索と選択探索のハイブリッドである。 :開発当時の保木は将棋に対する造詣は深くなく、チェスと同じようなものであると考えていた。そのためコンピュータチェスで一般的な全幅探索を採用したが、保木によると「選択的探索は選択を行う処理が複雑になるため、全幅探索よりも負荷がかかる」としている<ref>保木、渡辺 2007, p.33.</ref>。 ;評価関数のパラメータの自動生成 :これは保木の本業である[[化学反応]]の[[制御理論]]を応用したものである<ref>保木、渡辺 2007, p.26.</ref>。保木自身の棋力ではコンピュータを強くする設定を行うことができず、既存の機械学習で成果を上げたプログラムがなかったため、制御理論をもとに自作することにしたという。 :Bonanzaは元にした6万局の棋譜データから、[[評価関数]]のパラメータを自動生成している。他のソフトは開発者がパラメータを定めた評価関数を用いているため、開発者の固定観念や棋力の影響を受けることがあった。ただし、パラメータは自動生成だが、何を評価するかは保木自身が決めている。棋譜からパラメータを自動生成することで、開発者の主観を排除した評価関数は強みでもあるが、同時に弱みでもある。当初、Bonanzaは序盤で[[大駒]]を切る<ref>大駒と小駒と交換する</ref>ことが多かったが、これは大駒の点数が他のソフトに比べて低く設定されている<ref>『[[将棋世界]]』2007年7月号「特集 第17回世界コンピュータ将棋選手権」より。</ref>ためであり、人間の感覚に反するこの設定は、自動生成に由来するものであった。後述の渡辺との対局でも、この特性を利用した角銀交換を迫られたが、その時には既に極端な大駒切りに関しては対策されていたため、交換はしなかった。 :保木は後に、Bonanzaがコンピュータ将棋界に与えた影響について「目的関数の最小化を、状態遷移の拘束条件(化学では[[シュレーディンガー方程式]]、将棋では[[ミニマックス原理]])と適切な[[正則化]]条件の下で真面目に行なうという点が、思考ゲームの分野にもたらしたブレイクスルーだったのではないか」と振り返った<ref>{{Cite journal |和書 |author=保木邦仁 |title=化学とゲーム情報学の意外な接点 |journal=Molecular Science |date=2012 |volume=6 |issue=1 |page=A0050 |publisher=分子科学会 |doi=10.3175/molsci.6.A0050}}</ref>。 ;詰将棋 :チェスがベースであるため<ref>[[コンピュータチェス]]では、駒数が少ない場合の解析結果が公開されており、そのファイルを利用するのが一般的である</ref>、開発当初は終盤の[[詰将棋]]のルーチンが搭載されておらず、詰める状況でも相手の駒をとり続けていた。2007年の世界コンピュータ将棋選手権からは、3手詰めのルーチンが搭載された。他のソフトでは最初から詰将棋専用のルーチンを用意しており、後で組み込んだBonanzaが特殊である。これについて保木は、終盤において王手以外の指し手を考慮することは、力の向上につながるともしている<ref>保木、渡辺 2007, p.130.</ref>。もっとも、詰将棋非対応のため、詰将棋ルーチンを搭載したコンピュータソフトとの対局においては、長手数の即詰みを見落として頓死することがままあり、2011年の世界選手権では詰将棋専用マシンを一台用意して構成に加えた。また、ボナンザを利用した市販のソフトでは、詰め将棋ルーチンを別途搭載することで補っているものもある。 ;アルゴリズムとソースコード公開 :上述のように2006年にアルゴリズムを、2009年にソースコードを無料公開した。 既存のソフトとは全く異なるアプローチをとったため、世界コンピュータ将棋選手権に初出場した際は、保木はBonanzaが極端に強いか、弱いかのどちらかだと考えており、結果として優勝こそしたものの既存の強豪ソフトとほぼ同じ棋力であったことに愕然としたと記している<ref>保木、渡辺 2007, p.32.</ref>。これらの特徴はコンピュータ将棋の過去の蓄積を知らなかったために実現したことであって、日本にいて情報が入ってくる環境であれば、個人が1年で完成させることは不可能であったと述べている<ref>保木、渡辺 2007, p.29.</ref>。 以上のように、既存の常識に反する要素が多かったが、保木の試みはコンピュータ将棋の一大革新として、他の開発者が一斉に追随することになった。特に「評価関数のパラメータの自動生成」に関しては、ソースコード公開後のコンピュータ将棋界で「'''ボナンザ・メソッド'''」と呼ばれ<ref>第18回世界コンピュータ将棋選手権に参加した[[奈良将棋]]開発者の[http://www2.odn.ne.jp/~aao62090/WCSC18/index.html レポート]によると保木が開発者向けの発表で使った表現だったが、現在では[https://cir.nii.ac.jp/crid/1520009409524653184 論文]などにも使用されているなど、用語として定着しつつある。</ref>、2010年には[[世界コンピュータ将棋選手権]]の上位ソフト全てがこの方法を導入するようになった。 ===数式=== 以下、第11回 ゲーム・プログラミングワークショップ 2006にて発表されたVer. 2時点でのアルゴリズムに基づく。 各盤面の判断となる評価関数が、強い棋士が実際に指した手と同じになるようなパラメータを探索する。以下の誤差関数Jを最小にするパラメータvを[[最適化問題]]として探す。 :<math>J(P_0, \ldots, \mathbf{v}) = \sum^{N-1}_{i = 0} \sum^{M}_{m=1}T[\zeta(p_m, \mathbf{v}) - \zeta(p_{m=0},\mathbf{v})] + \lambda M_1(\mathbf{v}) + \omega M_2(\mathbf{v})</math> 右辺2項は[[過学習]]を防ぐための正則化項。N は学習データの局面数(対局数×手数)、<math>P_i</math>は局面、M はその局面の合法手の数。T は T(0) 近辺で傾きが最大になる適当な関数([[シグモイド関数]]など)。<math>p_m</math> は一手先の次の局面で、<math>p_{m=0}</math> は実際に強い棋士が指した手の局面。<math>\zeta</math> は局面の評価関数。<math>\lambda</math>, <math>\omega</math> は過学習防止の定数値の正則化係数。<math>M_1</math> は各駒の価値(駒割り)の総和(一次正則化)。<math>M_2</math> は駒の位置関係に対するパラメータの2乗(二次正則化)に勾配ベクトルへの寄与度をかけた値の総和。vの各値は16ビット整数値に限定。 Jをvで偏微分をとり、勾配ベクトルに沿って[[確率的勾配降下法]]で下っていく。勾配ベクトルを求める際、<math>\zeta(p_m, \mathbf{v}) - \zeta(p_{m=0},\mathbf{v})</math> の部分は、このまま使わずに、評価関数の考える最善手と強い棋士が実際に指した手が一致した場合は、食い違うところまで手をたどっていき、食い違ったところの評価関数の差を使う。勾配を下る学習率パラメータは学習が進むにつれ徐々に小さくしていく。この探索は1カ月以上計算させ続けている。 評価関数は、以下の項目の総和(線形モデル)。2つ目以降は、駒の位置関係に対するパラメータ。 *各駒の価値(駒割り) *王、他の駒2つの位置 *王、隣接した味方の駒、他の味方の駒3つの位置 *隣接しあった駒2つの位置関係 *竜馬飛角桂香の利き上にいる駒の種類 *竜馬飛角香が動けるマスの数 *ピンされている駒の種類、方向、王との距離 *角と同じ色のマスにいる味方の歩の数 *歩桂銀が前進できるか *竜飛香の前・後の歩 *王の周囲25マスの利きの配置 ただし、これは、Ver. 4以降、Ver. 6現在は単純化しており、以下の3項目だけになっている。4つ以上の駒の関係も3つの駒の関係から近似的に合成できるとしている。この変更によりパラメータ数は大きく増え、パラメータを保存しているfv.binは177 MBになった。下記の駒の位置738通りにおいて、[[持ち駒]]も含まれるが、[[成金]]と金の区別はしない。 *各駒の価値(駒割り) - 13通り *王1つ、他の駒2つの位置(自分と相手の駒の区別あり) - 81 * (1 〜 738 * 2 までの和) = 88,292,106通り *王2つ、他の駒1つの位置 - 81 * 81 * 738 = 4,842,018通り Ver. 6のfv.binにおいては、2八玉・4九金の状況において、3八銀 = 357、4八銀 = -852、5八銀 = 442 となっており、[[美濃囲い]]や銀美濃を正しく学習している。そして、4八銀という駒の利きの悪い配置を大駒を失う並の悪い配置と見なしている。同じ4九金・4八銀でも、[[壁囲い]]の3八玉 = 31 であり、まだましであると評価している。 T(x) の |x| が大きい手、つまり、最善手から大きく離れた手は、計算量を減らすため省略する。盤面の表現は[[ビットボード]]を使い、高速化する。 将棋に関係ない部分の基本的なモデルは、機械学習の基本的なモデル<ref>{{Cite book|和書|author=C.M.ビショップ|title=パターン認識と機械学習 上|isbn= 978-4621061220|chapter=第3章『線形回帰モデル』|year=2012|publisher=丸善出版}}</ref>に基づいており、そこに独自の工夫を加えている。 ===駒の価値=== Ver. 6現在、src/client/param.hに駒割りの値<ref>[[保木邦仁]]によれば、2006年現在、「駒割り」または「交換値」が、この数値の名称であるようだ。 - {{Cite book |和書| author=保木邦仁|authorlink=保木邦仁 | year = 2006 | title = 局面評価の学習を目指した探索結果の最適制御 | page=8 | data = pdf |url = https://web.archive.org/web/20071108052919/http://www.geocities.jp/bonanza_shogi/gpw2006.pdf }}</ref>が記載されている。それ以外のパラメータは177 MBのwinbin/fv.binに保存されている。 {| class="wikitable" |+ 駒の価値 ! 駒 ! Ver. 2 ! Ver. 4.0.4 ! Feliz ! Ver. 6 |- ! 歩 | 106 | 101 | 87 | 87 |- ! 香車 | 272 | 254 | 235 | 232 |- ! 桂馬 | 304 | 267 | 254 | 257 |- ! 銀 | 428 | 385 | 371 | 369 |- ! と金 | 279 | 424 | 530 | 534 |- ! 成香 | 323 | 424 | 482 | 489 |- ! 成桂 | 363 | 462 | 500 | 510 |- ! 成銀 | 415 | 477 | 489 | 495 |- ! 金 | 527 | 466 | 447 | 444 |- ! 角 | 617 | 567 | 571 | 569 |- ! 飛車 | 700 | 661 | 647 | 642 |- ! 馬 | 698 | 831 | 832 | 827 |- ! 竜 | 854 | 1002 | 955 | 945 |} Ver. 2からVer. 6までの価値の変遷を見ると、次のようなことがわかる。 * と金の価値が2倍近くに高騰しており、成香・成桂の価値も約1.5倍に上昇している。 * 飛車や角を成るより歩を成った方が価値が高く、Feliz以降では歩を成ることにより銀1枚分以上の価値が発生する。 * 相対的に生駒の価値は減少傾向にあり、バージョンが進むにつれて、Ver. 2では銀を下回っていた成銀も含めて、成駒を重要視する傾向にある。 == 更新履歴 == *2005年6月2日 Ver.1.0公開 *2005年7月21日 Ver.1.1公開 *2005年8月23日 Ver.1.2公開 *2006年5月19日 Ver.2.0公開(同日、不具合を修正したVer.2.1公開) *2008年10月12日 Ver.3.0公開 *2009年2月2日 Ver.4.0.4公開 *2010年1月25日 Ver.4.1.3公開 *2010年5月11日 Bonanza Feliz公開 *2011年5月9日 Ver.6.0公開 *2015年9月10日 Bonanza 6.0 にあてるパッチ公開(1)内容:ソースコードのエラー修正。 *2015年11月16日 Bonanza 6.0 にあてるパッチ公開(2)内容:最近の Floodgate への対応を追加。 *2019年3月31日 [[Yahoo!ジオシティーズ|ジオシティーズ]]サービス終了に伴いBonanzaのWebサイト閉鎖。無料公開版の実行ファイルがダウンロード不能となる。 == パッケージ製品 == 作者の意向によりBonanzaは過去から現在までの全てのバージョンが無償で提供され続けていた(Bonanza Version 4.0.3より[[マルチコア]][[CPU]]の[[並列コンピューティング|並列処理]]に対応)。一方、Bonanzaのエンジンを搭載したコンピュータ将棋ソフトも市販されている。 *2006年11月17日 「Bonanza 2.1 Commercial Edition」マグノリアから発売。 *2007年6月15日 「Bonanza Classic」マグノリアから発売。2005年に発表された当時のBonanzaを搭載。 *2008年3月14日 「Bonanza 3.0 Commercial Edition」マグノリアから発売。USB扇風機が付属。「4コアまで対応」と書かれているが、実際には8コアまで対応する。 *2008年12月18日 「最強将棋 BONANZA」株式会社サクセスから[[PlayStation Portable]]版が発売。 *2009年3月13日 「世界最強銀星将棋8」[[シルバースタージャパン]]から発売。 *2011年4月29日 「Bonanza5.1 Commercial Edition」マグノリアから発売。2010年10月10日に行われた、あから2010対[[清水市代]]の対局に参加したバージョン。 *2013年7月22日 「BONANZA THE FINAL 優勝記念版」マグノリアから発売。2013年の第23回世界コンピュータ将棋選手権で優勝した思考エンジンを搭載。ソフトの実力が上がりすぎたため市場が縮小した<ref>{{Cite web|和書|url=https://forest.watch.impress.co.jp/docs/news/608574.html|title= マグノリア、強すぎる故に最後の製品となる将棋ソフト「BONANZA THE FINAL」|work=窓の杜|date=2013-07-22|author=長谷川 正太郎|accessdate=2014-04-08}}</ref>ことを理由とし、これ以後マグノリアからBonanzaの製品版は発売されないことが発表された。 == ソースコードのライセンス == [[ソースコード]]は公開されている。営利目的での利用の禁止などの制限により、[[Open Source Initiative]]による「[[オープンソースの定義]]」には合致しない。 == ボナンザ囲い == BonanzaはVer.2当時、「ボナンザ囲い」と呼ばれる、他に例を見ない「[[矢倉囲い|片矢倉]]」の変形版を多用していた。これはボナンザの数式の結果として現れたものである。例えば2006年第1回週刊将棋アマCOM平手戦、加部康晴-Bonanza戦で、後手のBonanzaがボナンザ囲いを採用<ref>週刊将棋30年史 〜アマプロ平手戦・対コンピュータ将棋編〜 週刊将棋 編集 </ref>。[[棋戦 (将棋)|棋戦]]では例として、2023年3月第36期[[竜王戦]]ランキング戦1組本戦出場者決定戦・[[森内俊之]]-[[阿部健治郎]]戦で、後手阿部陣がボナンザ囲いを組んでいる。 [[渡辺明 (棋士)|渡辺明]]によれば、一見すると素人臭い筋悪な形のようでいて、実際に攻略するとなると厄介であるという<ref>『ボナンザVS勝負脳』ISBN 978-4-04-710107-4</ref>。角交換が前提となる上、ボナンザ自体が機械学習の結果この形を使わなくなった結果あまり見られなくなった。 {| | {{Shogi diagram|tright | <br /> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ps | | ps | | | | | | | | ps | ss | ps | ps | | | | | | | ks | gs | gs | | | | | ls | ns | | | | | | | |<br />ボナンザ囲い<br /> <br /> }} | {{Shogi diagram|tright |△ 阿部 持ち駒 角歩 | lg | ng | | | | | | ng | lg | | rg | | | gg | gg | kg | | | pg | | | pg | | | sg | pg | pg | | | | sg | pg | pg | pg | | | | pg | ps | | | | | ps | | ps | | ss | ps | | ps | | | | | ps | ss | | ps | | ps | | ps | | | gs | ks | | | gs | rs | | ls | ns | | | | | | ns | ls |▲ 森内 持ち駒 角<br />森内-阿部戦(後手がボナンザ囲い) }} | {{Shogi diagram|tright |△ bonanza 持ち駒 歩4 | lg | | | | | | | ng | lg | | | | sg | gg | gg | kg | bg | | pg | | ng | pg | | pg | sg | | pg | | | pg | | | | psl| pg | | | | | | | | pg | | | | rg | ps | | | ss | | | | ps | | | ps | | ps | | | ps | | bs | gs | ss | | | | rs | | ls | ns | | ks | | gs | | ns | ls |▲ 加部 持ち駒 歩<br />加部- bonanza戦(後手がボナンザ囲い) }} |} == 競技会成績 == {| class="wikitable" style="text-align:center" |- ! 大会/年 ! 2006 ! 2007 ! 2008 ! 2009 ! 2010 ! 2011 ! 2012 ! 2013 ! 2014 |- | style="text-align:left" | [[世界コンピュータ将棋選手権]] | style="background-color:#ffd700" | 1 | style="background-color:#00ff00" | 4 | style="background-color:#cc9966" | 3 | style="background-color:#00ff00" | 5 | style="background-color:#00ff00" | 5 | style="background-color:#c0c0c0" | 2 | 9 | style="background-color:#ffd700" | 1 | style="background-color:#00ff00" | 6 |- | style="text-align:left" | [[将棋電王トーナメント]] | | | | | | | | style="background-color:#00ff00" | F | |- | style="text-align:left" | [[コンピュータオリンピアード]] | style="background-color:#c0c0c0" | 2 | | | | 4 | style="background-color:#c0c0c0" | 2 | | | |} == 脚注・出典 == {{脚注ヘルプ}} {{reflist}} == 参考文献 == * {{Cite book|和書|title=ボナンザ VS 勝負脳――最強将棋ソフトは人間を超えるか|author1=保木邦仁|authorlink1=保木邦仁|author2=渡辺明共著|authorlink2=渡辺明 (棋士)|publisher=角川書店|year=2007||isbn=978-4-04-710107-4}} == 関連項目 == * [[コンピュータ将棋]] **[[激指]]・[[GPS将棋]]・[[AI将棋#YSS|YSS]] - Bonanzaと[[あから2010]]を構成 ** [[ボナンザ・チルドレン]] ** [[Puella α|ボンクラーズ]] ** [[Ponanza]] * [[将棋棋士とコンピュータの対局一覧]] * [[天下一将棋会]] == 外部リンク == * {{Wayback|url=http://www.geocities.jp/bonanza_shogi/ |title=Bonanza - The Computer Shogi Program |date=20190101000000}} * [http://www.vector.co.jp/vpack/browse/person/an042077.html Vector Kunihito Hoki] - BonanzaのVer.1から4、Felizまでの歴代プログラムがすべて無料でダウンロードできる。 * [http://www.magnolia.co.jp/products/game/bonanza/6/index.htm BONANZA THE FINAL 優勝記念版] (マグノリアの製品ページ) * {{Wayback|url=http://www.geocities.jp/problem_extra/matome/index.html |title=第1ステージを終えて |date=20190101000000}} アマ高段者(Masato SHINODA氏)がBonanza3.0と対局した記録。 {{デフォルトソート:ほなんさ}} [[Category:コンピュータ将棋]] [[Category:フリーウェア]] [[Category:Windows用ゲームソフト]]
このページで使用されているテンプレート:
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Cite journal
(
ソースを閲覧
)
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Infobox Software
(
ソースを閲覧
)
テンプレート:Otheruses
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:Shogi diagram
(
ソースを閲覧
)
テンプレート:Wayback
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
Bonanza
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報