2011年2月11日金曜日

コードを例外安全なものにしよう

例外(exception)安全な関数とは、例外が投げられても、リソース漏れを起こさず、データを有効に保つ関数のこと。そのような関数には、基本保証をするもの、強い保証をするもの、投げ(throw)ない保証をするものがある。
強い保証は、しばしば、「コピーと交換」で実装できる。しかし、強い保証が、すべての関数で実際的であるわけではない。
ある関数内で別の関数を呼び出す場合、「呼び出される関数」より良い保証を「呼び出す関数」ですることは、通常、とても困難である。

あから2010、将棋ソフト

あから2010は、清水戦では4つのソフトにそれぞれ1台のコンピュータが与えられ、169台のコンピュータをつないだクラスタ用に書き直された4つのソフトとの合議制だったが、テスト不足を理由にクラスタの発言力は低く抑えられていて、合議の重要な部分はクラスタでないコンピュータが担っていた。
コンピュータも刺激される! 将棋ソフトは関数の集合体だから刺激的な手が入力されれば、それに対する出力(次の指し手)は必ず影響される。それが刺激には刺激で返すのか、刺激されたから慎重になるのかは、そのソフトの演算手法と係数調整による。
「あから」はなんとしても、穴熊をけん制したかった。現代将棋は玉の堅さを尊重する。自動学習機能を持つソフトウェアがその思想に影響されるのは当然のことである。
ある局面を見たくないから、悪手や疑問手になるかもしれない手を選ぶ、ある局面を見ずにすむ手を高く評価する、これこそ棋風というものであろう。棋士もソフトウェアも、勝とうが負けようが、その棋風に殉ずるのだ。
ソフトウェアは「詰みのありそうな局面」かどうかを判断することが非常に苦手。そのかわり、最終盤に至ると通常の思考ルーチンに加えて、詰み検索ルーチンを起動する。これは詰み筋の読みに特化したルーチン。詰みを見逃すことはまずない。
羽生名人は若かりし日に、将棋ソフトが名人に勝つ日を2015年と予想した。将棋ソフトが非常に弱く、アマチュアの中級者と互角に戦うことも難しかった時代の言である。

効率的なC++での開発を目指して


ビックカメラで将棋ソフトの「世界最強銀星将棋9 風雲龍虎雷伝(ボナンザ)」と「激指」を見つけてしまった。すごく欲しい。。。でも今買ってもやる暇はない。どうせ圧倒的に負けるのは目に見えているし。
代わりに本屋で「ボナンザvs勝負脳」と「Effective C++」を買って帰る。C++は、これまでは自分で使うだけだったので動けばいいというスタンスだったが、これからは共同開発を念頭に、理解しやすく、保守しやすく、移植性があり、拡張しやすく、効率的なプログラムにする。
「C++は単一のルールを持った1つの言語というより、C、OOP、テンプレート、STLという、それぞれ独自のコンベンションを持つ4つの「サブセット言語」の連合と考えたほうがよい。C++で効率よくプログラミングするためのルールはC++のどの部分を使うかで変わってくる。
#defineより、const、enum、inlineを使おう。プリプロセッサよりコンパイラを使おう。#defineにはスコープという考え方がない。
クラスで使う定数のスコープを限定するため、その定数をクラスのメンバにすることがある。その場合、その定数が実際に1つだけ存在するように、staticにしなければならない。
オブジェクト内部のデータへのハンドルを戻す関数は避ける。そのハンドル自体より、ハンドルが指し示すオブジェクトが先に破棄される危険があるから。」
最近、仕事上の最大のボトルネックがコーディングになってきていると感じる。真剣に、効率的な開発を探求しないとやばいです。
職業は、限りなくプログラマに近い、ポートフォリオ・マネージャー兼クオンツ・アナリストです!
私のまわりでインドに行った人は、100%の確率で全員、帰国時に体調を崩した状態で成田に着いている。インドに行かれる方は、みなさん気をつけて。

2011年2月6日日曜日

あから2010

阿加羅とは10の224乗のこと。
「あから2010」は情報処理学会が対清水戦に向けて用意したシステム。実績ある既存の将棋ソフト、激指、ボナンザ、YSS、GPS将棋がそれぞれの最善手を提案し、提案手が割れた場合は、多数決による合議で指し手を決定。
激指は鶴岡慶雅氏、横山大作氏が、GPS将棋は東京大学田中哲朗研究室が、ボナンザは保木邦仁氏が、YSSは山下宏氏が開発した将棋ソフトウェアで、いずれも世界コンピュータ将棋選手権で優勝経験のある錚々たるメンバーである。合議を統括する仕組み(合議マネージャ)は電気通信大学伊藤毅志研究室と保木邦仁氏が開発を担当している。

2011年2月5日土曜日

測度と積分、林のEconometrics


「測度と積分」と「Econometrics」をこれから定期的に精読することにする。
「測度と積分」は1章で、集合論、確率論でよく使われている数学記号や定義がまとめてあるので便利。
林の英語は読みやすい。モデルと推定手続きの違い。計量経済学では経済データは確率変数であると前提を置く。モデルとは経済データを生成しているであろう確率分布のある族。推定手続きとはモデルから、データを生成していると思われるある特別な分布を選ぶ、データに基づいたプロトコル。
計量経済学におけるほとんどの推定手続きはGMM推定原理の特殊化。例えばGMMを古典的線形回帰に適用すれば、結果的な推定手続きは計量経済学のも最も基礎的な推定手続きであるOLSである。

投信ネット販売、ギーク、エジプト

金曜の日経夕刊「投信、ネット購入広がる」。いいことだ。投信を買うのに証券、銀行に手数料払う必要ないよ。直販でいい。金融機関の手数料稼ぎのためにパフォーマンスの良い投信が売られて手数料の高い投信に乗り換えられていくという日本の悪癖がなくなればいい。パフォーマンスで売れる時代よ来い。
本の「フェイスブック」を読んでいるのだが、そのなかで「ギークたちは、プログラミングに熱中してくると、ある種の恍惚状態に陥る。音楽やテレビなら気にしないのだが、話しかけられて気を散らされるのは耐えられないのだった」とある。だから隣のやつともIMで会話するw。。。その気持ちが分かるオレもギークなのか?
アルジャジーラのWebサイト。エジプトの動向は注意が必要。
ところで、在日メキシコ大使館からの抗議を受けて、フジテレビの「外交官・黒田康作」の脚本の大幅な書き直しが必要なのではないかと、他人事ながら少し注目している。

2011年2月4日金曜日

ブルームバーグのリスクモデル・セミナー、ICSの科目履修申込

ブルームバーグのALPHA新リスク分析セミナーに行ってきた。
バーラとの違いは市場βファクターがないこと、全体に透明なこと。
独自のファクターの組み込みはDO IT YOURSELFでって言っていたので、やろうと思えばできるんだろうな。おまけとして竹のボールペン、アメリカンなでかいメモ用紙、マウスパッドをくれた。

帰りにICSに寄って「金融数理の基礎」の科目履修の申込をした。2年前に取ったときは離散時間モデルのみで、集合論、測度論などには触れられなかった。これを機会に測度論を勉強したい。秋学期までに「測度と積分」を精読する。
林先生の計量経済学は今年は断念して来年に回す。1年半かけてEconometricsを精読する。
ついでに図書館によって本を借りる。
Interest rates, Exchange rates and world monetary policy (Floyd)
Exchange rate under East Asian Dollar Standard (McKinnon)
Credit Risk: Modeling, Valuation and Hedging (Bielecki and Rutkowski)
Modern pticing of interest-rate derivatives (Rebonato)
微分方程式入門(高橋陽一郎)