2024年11月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

tweet

  • tweets

« 2011年5月 | トップページ | 2011年7月 »

2011年6月

業務連絡:F2および関連会社の方々@首都圏

会社の広報誌が詰将棋メモに載ったりしちゃったのでこの際カミングアウトしますが、わたくしF2社の関連会社に勤めております。

で、F2および関連会社の方々限定のお知らせです。当該の社員の方のみ、「続きを読む」でお進みください。社員でない方、申し訳ありませんが本記事は見なかったことにしてください。

続きを読む "業務連絡:F2および関連会社の方々@首都圏" »

ライブラリ論つづき:楽ちんは正義

先週いくつかコメントをいただきまして。いろいろ伝わりきれてないというか説明が足りないところがありそうなので、コメントの質問に回答しつつ少し補足してみます。

> プログラムコンテンストを否定のような文脈を感じましたが、

いえいえ、そんなことはないですよ。「否定」するつもりは毛頭ないです。ただ個人の好みの問題で、「私は興味ない」というだけです。開発者の中にプログラミングコンテスト好きな人がいるというのも知ってますし、それについてどうこう言うつもりはないです。

ただ一つはっきりさせておきたいのは、「将棋の大会にプログラミングコンテストの流儀を持ち込まないでほしい」という、その一点だけです。ライブラリ使用制限というのは、将棋の大会という観点 ~盤上の強さのみを競う、という観点~ からは決して出てこないものです。「将棋の強さでなく、プログラミング能力を競いたい」という考えから出てくるものでしょう。しかし、WCSCが「将棋の大会」であるなら、将棋のルール以外のものを大会ルールに取り入れるべきではないです。

CSA理事会が「WCSCポリシー」なるものを定めています。曰く、

 0)WCSCは(snip)最強のコンピュータ将棋を決めるためのものである。

つまり、WCSCは「将棋の大会」である、プログラミングの大会ではない、と言ってるわけです。であるならば、大会ルールは将棋のそれであるべきで、将棋に関係ない余計な要素(ライブラリがどうとか)を取り入れるべきではありません。変なルールを入れてしまうと、「待ち駒禁止将棋の大会」とか「居飛穴禁止将棋の大会」とかと同じで、将棋でなくなってしまいます。将棋の大会ならば「盤上の強さのみを競う、その範囲で何でもあり」であるべきです。

もちろん、参加者の多数が望み、大会主催者(CSA理事会)も同意するというなら、WCSCを「プログラミングの大会」として定義しなおすことは可能でしょう。それならそれで、別に問題はありません(私は興味ないので出ないでしょうが)。ただその場合は、まず上記のWCSC「ポリシー」は変えるべきです。「WCSCは、将棋を題材としてプログラミング能力を競う大会である」とか何とか。また、将棋の大会でない以上、優勝ソフトに「最強の将棋ソフト」を名乗る資格はありません。

ただ、そういう「将棋か、プログラミングか」の二択でなく、両方同時にできないもんかねえ?というのが先週の提案でした。

> ライブラリ使用でオリジナルのエンジンに勝ったとして、それで楽しいでしょうか?

私はもちろん楽しいからやってるわけなんですが。この問いに答えるには「アイデア」と「実装」の区別が必要と思いますので、ちょっとそこをつっこんでみましょう。

ライブラリ制限というのは、「実装」をすべて自前でやるべき、という主張なわけですが、よく考えると「アイデア」の独自性に関しては何も言っていません。たとえばボナンザのアイデアを全部そのままパクって自分でコーディングしたら、それはライブラリルール上は自作扱いになって制限にはひっかりません。ですが、私から質問:そういうもの作って、それで楽しいですか?

私は昨年bonasseを公開しましたが、あれは9割方はボナンザのソースそのままです。1割程度は独自のアイデアが入っている。独自アイデアの部分は当然実装も独自です。さて、次の2つを比べたとき、どちらが価値があるか?やってて楽しいか?です。

                       新規アイデア比率   新規実装比率  (パクリ実装比率)
A)ボナのアイデアをパクって   0       100%       0%
 自分で実装

B)bonasse                     10%            10%             90%

私は、圧倒的にBが楽しいです。Aはまったく魅力を感じない。実装よりも、アイデアの方を重視します。

Aのソースが公開されても、私はおそらく見もしないでしょう。一方bonasseの方は、現実に多くの人がDLして研究しています。9割はコピーなんだけれども、1割の独自の部分をみなさん知りたがるわけです。

以上のような現実がある中で、今のライブラリルールはA)を推奨し、B)には不利な条件を強いる。これってどうなんでしょうかねぇ。

言っておきますが、私はA)が悪いと言ってるわけではないですよ。A)で大会出てきていただいてもちろん全然かまいません。ただ、A)がOKでB)がNGってのは、それはどう考えてもおかしいんじゃないの?と言いたいだけです。

既存のアイデアを実装するなら、ライブラリをそのまま使う方が、自前で作るより当然工数は少なくて済みます。ということは、そのぶんの時間を、独自アイデアを伸ばすことに使えるわけです。つまり、独自アイデアの出現を期待したいなら(みなさんここは同意するものと信じてますが)、ライブラリの使用は制約を課すどころかむしろ推奨すべきです。「流用は悪くない」ではなく、「流用すること*こそ*が正しい」、なのです。その意味で、今の分家制限の制度は、技術の発展を阻害している、本来クリエイティブな開発に充てられるべき貴重なリソースを無駄な作業に浪費させている、有害な制度である、と考えています。

ところでまさか、「アイデアも100%独自であるべきだ」などという人はいませんよね。そんなこと言い出したら大会出場資格者は1人もいないでしょう。あのボナンザですら、評価関数はもちろんオリジナルアイデアですが、探索の大部分はアイデア的にはCraftyをベースにしています。過去のアイデアを9割方流用しつつ、1割の独自アイデアを加えて改良する。そうするとまた別の人がそれに更にちょこっとの改良を加える、…というふうにして発展していくのが、科学技術の発展のあるべき姿です。「流用がいけない、すべきでない」という発想は、根本的な部分で考え方を間違っていると思います。もちろん、使用許諾条件を守る範囲で、の話ですが。

> 強ければなんでもいいのであれば、

> 究極の目的が「神の一手に近づく」ことなら

これも、どっちが正しい、ではなく個人の価値観の問題でしょう。強ければなんでもいいという人もいるだろうし、いや強さよりも、自分なりに納得できるものを作りたいんだ、だから自作するんだ、という人もいるでしょう。どっちもありだと思います。

ただ、強さ最優先で作った人と、強さ以外の何かを最優先で作った人がいるとしましょう。で対局して、強さ最優先の方が勝つ。(ある意味当たり前という気がしますが。)それに対して「これはおかしい。強さ最優先のチームは決勝進出数制限しろ」というのは…いや、それはどうなんでしょうか?「強さ以外を優先」という時点で、ある意味強さは捨ててるわけですよね。自分でそう選択したわけです。それで文句言うのはおかしいと思いますが。

くどいようですが、「強さ以外を優先」が悪いというつもりはないですよ。個人の自由です。ただ、自分でそう選択したのだから、その選択に責任を持つべきではないですか、その選択が引き起こした結果を受け入れるべきではないですか、というだけです。

使おうと思えば、誰でもライブラリは使える。使うも使わないも自由。その意味で公平です。公平であるかぎり、ライブラリ使用が「競技性」を損なうことはありません。

ご提案:ライブラリルール改正の件

ライブラリルールの件でまた議論するそうで。私は例会出れるかどうかわからないので、自分の思うところをブログに書いておきます。

このブログの読者さんならご存知のことと思いますがいちおう説明しときますと、コンピュータ将棋選手権では通称「分家制限」というルールがあります。ボナンザのような既存のライブラリを自分のソフトの一部として使用して大会に参加してもよいのですが、ライブラリを使用したチーム(「分家」)は、一定数までしか予選通過できない、というルールです。特に今年は、決勝への分家通過制限数が「1」と大変厳しいものでした。大会に注目していた方なら「ponanzaと芝浦将棋はどちらか片方しか決勝に行けない」という話を目にされたかと思いますが、その根拠がこのルールです。この2チームは両方かなりの強豪でありながら、ボナンザをライブラリとして使用していたからです。

まず私の個人的立場から書きますと、分家制限はとにかくやめてほしい。私は昨年はボナンザライブラリを使用して参加しましたが、今年は分家制限が厳しくなったので、これを回避するためにいろいろ作り直したりしたんですが、えらい手間がかかりました。私にとってはこれはまったく無駄な作業で、二度とこんなことはやりたくない。

私は、コンピュータ将棋選手権は「将棋の強さを競う場である」と捉えています。その立場からすると、ライブラリを使用してるかどうかなんて全く関係なくて、とにかく「盤上で強い者が勝つ」が正しい姿だと信じている。それ以外の将棋に関係ない部分で、強いのに決勝に行けない、なんてことがあるのは絶対おかしいと思ってます。神聖なる将棋に対する冒とくである、と正直怒りすら覚えています。

私にとって唯一の目的は、「盤上で、神の一手に近づく」こと。それのみであって、他のことは眼中にありません。その目的のために必要なことがあれば躊躇なく何でもします。ライブラリを使用した方が強くなるなら、当然使う。その当然のことを事もあろうにルールで禁止するとは何事か!というスタンスです。

ところが一方、私とは異なる立場の人も大会参加者の中にけっこういる、というのも事実です。この件、2年前にさる掲示板で論争していました。スラッシュドットでも取り上げられたり 。残念ながらこの掲示板、なくなってしまって今は見えないんですが。

ある人たちは、コンピュータ将棋選手権を「将棋で競う場」でなく「プログラミング能力を競う場」と捉えているようです。プログラミングコンテストみたいなもの、というわけです。私自身はプログラミングコンテストには全く興味がないし、プログラミング能力を競うつもりもないので感覚がよくわからないのですが、たしかにそういう観点からすると、他人の書いたライブラリをそのまま流用するというのはルール違反と思えるのかもしれません。

この辺り2年前も大論争となったのですが、「将棋か、プログラミングか」でそもそも前提が異なるため、なかなか議論がまとまらなかった、という経緯があります。

じゃあ、というので「2種類別々の大会を開催したら?」という話もその時出ました。ですがこれも現実的には難しい。今の大会でも参加者は40チーム程度なので、これを2つに分けて各20チームずつ、とかでは寂しくなって大会が盛り上がらなくなってしまう。運営側の手間の問題もありますし。元々競技人口が多くないので、その中で仲間割れしてたりすると業界全体がジリ貧で共倒れになってしまうわけです。

そういうわけで、大会の形態としては今までと同じように「みんなが参加する、一つの大会」を維持しながらも、何とか異なる意見の人たちがそれぞれ納得して共存できるような形がないかなあ、ということを考えたいわけです。で一つ案を思いついたので、「こんな案はどうでしょうか」というのが今回の記事の主旨です。

アイデアとしては、「ライブラリ使用ありの場合となしの場合で、別々に表彰する」というものです。つまり、大会結果の表彰に「無差別部門」と「独自プログラム部門」を設ける。で、後者はライブラリを使用したチームは対象から除きます。言ってみれば、「2種類の大会を、別々に開催するのでなく、ワンシリーズの対局でまとめてやってしまう」というイメージです。

参加チームは大会エントリー時に、今と同じようにライブラリ使用の有無を申請します。ライブラリ使用有りのチームは、この時点で独自プログラム部門の対象からは外され、無差別部門にしか関わらなくなります。

分家の予選通過制限は、通過制限総枠数の半分、とします。決勝に8チーム進出するならば、計4チームまで、となります。形の上では分家制限が残ることになりますが、これは言い換えると、無差別部門・独自プロ部門それぞれの上位4チームは、必ず決勝に進める、ということです。決勝8チームが全部分家に独占されることもないし、分家の方が強いチームが多いのに1,2の分家チームしか進めない、ということもない。両部門共、決勝枠数は最低4は確保される、というわけです。ただ決勝戦は別々にやるのでなく、両部門合同でやってしまおう、という感じです。

なお今の制度では、使用しているライブラリの種類(ボナンザ/GPS/…)ごとにいくつまで、と決めていますが、そうではなくて使用しているライブラリの種類に関わらず計4チームまで、とします。なぜなら、ここで選びたいのは「無差別級の上位4チーム」だからです。

決勝戦は今と同じく8チーム総当たりで行う。ただ結果の順位をつける際に2通り行います。無差別級の方は今までどおり。独自プロ部門の方は、たとえば無差別級の1位がライブラリ使用のチームだったとするとそれは除いて、2位のチームを(それがライブラリ非使用なら)独自部門の1位とする、というわけです。

もう少し具体例を挙げましょうか。仮に来年の大会をこのルールでやったとします。で、決勝進出の8チームの顔ぶれも、対局結果も今年と同じだったとします。ただしボンクラーズはライブラリ使用だった、としましょう。

このとき、無差別級の順位は今年と同じで、以下となります:

1.ボンクラーズ
2.ボナンザ
3.習甦
4.激指
5.ponanza
6.GPS
 :

独自プロ部門の方は、ライブラリ使用チームを除きます。この例だとボンクラーズとponanzaが該当するので除くとして、順位は以下となります。なお当然、「本家」は除かないものとします。

1.ボナンザ
2.習甦
3.激指
4.GPS
5.Blunder
6.YSS
 :

で、この2通りを同時に表彰します。2つの間に優劣はつけない。いわば片方は将棋の順位、片方はプログラミングの順位で、別物ですから。

結局以上まとめると、今のルールとの変更点は2点のみ:

1)分家制限の枠数を「ライブラリの種類によらず、総枠数の半分」とする
2)表彰を2通り行う

で、他は変更なし、です。なので運営へのインパクトも最小限で済むと思います。

…という案なんですが、いかがでしょう?私がぱっと考えるに、どちらの考え方の人もそれなりに納得できるのでけっこういいかな、という気が一見するのですが。何か見落としとかあるかな?コメント等ありましたら遠慮なくどうぞ。

« 2011年5月 | トップページ | 2011年7月 »