幸運なことにTopCoderで賞金を頂くことができました。しかも$650も!
チーム戦のMarathon Matchということで,チーム分けに恵まれたのがラッキーでした。
そんなわけで受取の必要書類を揃えるため,Affidavit(宣誓供述書)の公証を受けにアメリカ大使館に行ってきました。この辺のところをメモしておきます。
・アメリカ大使館で公証を受けるためには予約が必要となります。アメリカ大使館のページから行います。私が行ったときには3日後以降しか空いていませんでした。わりと混んでいるようです。
・大使館では敷地入り口にセキュリティチェックの部屋があります。部屋の前に警察官がいて,公証だと告げると予約表のチェックを受けました。
・アメリカ大使館では,アメリカ市民サービス(公証はこっち)とVISAのサービスが行われていて,並ぶ列や入り口が分かれるような形になっていました。混んでいるときは,案内板に注意した方が良さそうです。(VISAの方は混むことがあるそうです)
・セキュリティチェックでは,携帯・その他電子機器を預けます。
・中庭を進んで大使館の入り口を入ると,案内の方がいて窓口を教えてくれます。
・20分程待って,窓口に呼ばれました。パスポートとAffidavitを提出すると,会計用紙をもらうので会計窓口で$30払います。領収書をもらうので,それを窓口へ置いておきます。
・しばらく待つと,公証人(?)から呼ばれます。窓口越しに,右手を上げて宣誓しサインをします。向こうもサインをしてエンボスの判が押されて返されます。以上で完了です。
このAffidavitとW-8BEN(免税書類)をTopCoderへ郵送すれば良いようです。ちなみに,航空便で¥110でした。
「The Incredible Machine」が販売されていることを知ったので,早速購入してみました。
gog.comでダウンロード販売されています。
The Incredible Machine MEGA PACKとして,次の4作が入って$9.99とお買い得です。
- The Even More Incredible Machine
- The Incredible Machine 3
- Return of the Incredible Machine Contraptions
- The Incredible Machine - Even More Contraptions
gog.comが初めて名前を聞くサイトでしたが,ググってみるとOld Gameを専門に販売するわりとメジャーなサイトでした。
インストールすると,DOSBox(一番上のEven More用)も合わせてインストールされます。Windows Vistaでも問題なく動作しています。
十数年前のゲームですが,今でも十分に楽しめます。おすすめです。
昨年11月,NHKスペシャルでリーマン予想をテーマとした番組がOAされました。
その中でオイラー積が紹介されていて。素数を公式化した式があることを知り,いたく感銘しました。
規則性のない素数から上式のような関係を見出せる発想が凄すぎます。
このような番組を視て,少しオイラー周りを調べたいなと思って行き着いたのが題記の本です。 探すきっかけは,何となくこんなタイトルの本があったなぁというおぼろげな記憶からで,ググッてみるとかなり評判がいいようです。
しかし,残念ながら絶版ということでいくつかの本屋をまわってみましたが入手できませんでした。
こんな中で丸善の在庫検索で,在庫切れですが新装版なるものがあることに気付きました。しかしながら他の書店にはなく,出版元のHPにも情報がなかったため諦めていたのですが,このほど新刊として発売になることが分かりました。(丸善の情報は早すぎだったようです)
評判の良い本なので購入しようかなと思い,色々調べていると本の目次を目にしました。
目次を見てみると,何となく見覚えのある章タイトルが並んでいます・・・。もしかしたらと本棚を探ると,見つけてしまいました「ちくま学芸文庫」版。どうやら,かなり昔に買っていたようです。(それでおぼろげに記憶に残っていたのかもしれません)
時を隔てても買ってしまおうとするぐらい良い本なんだよなぁと思いながら,読み直してみようと思います。
CUDA Superhero Challenge 2 に参加しました。
CUDAには前々から興味があったのですが,なかなか触れる機会もなく,そんな中でASCII.technologiesの先月号でGPGPU特集があり,TopCoderでもタイミング良くCUDAのコンテストが行われるということで,今回チャレンジしてみました。ちなみに,ASCII.Technologiesの記事はHack The Cellでお馴染みの(株)フィックスターズさんによるものでした。
今回の問題は,N台の飛行機のメンテナンスを行う問題で,1日に1台,飛行機は1日ごとにいる位置が異なるという条件でメンテナンスする人の移動距離をより少なくする順番を求めよというものでした。巡回セールスマン問題で,訪問する度に都市がシャッフルされるような問題です。
今回はCUDAのコンテストということで,如何に多くの経路を評価することができるかがポイントなのだろうと考えました。全通りはN!(30<=N<=100)なので,CUDAと言えども現実的ではないように思います。
色々考えたのち,動的計画法的なアプローチで行くことにしました。完全な動的計画法を実行すると,最大で100C50個の中間値を管理しなければならないため,かなり端折って各ステップでTop-Mのケースのみを拾っていくような方法を考えてみました。Tesla(C1060)の性能が未知なため,Mを計算時間の調整項目として残せる点も良いかと考えました。(最終的には,このMをどう決めるかで悩むことになるのですが・・・)
結果としては最後にスコアが伸びず,暫定20位で終えました。 本業が忙しい中では頑張ったのではないかと思います。おかげで土日を丸々つぶしてしまいましたが・・・
今回,Teslaの計算パワーのすごさを体感しました。ローカルPC(CUDA DeviceEmulationですが)では実行が完了するのを待てないぐらいものが,10数秒で終わります。コードを書き始めてから知ったのですが,C1060というのは演算コアが240個もあるんですね。これは先に知っておくべきだったと後悔しています。結局,半分も使い切れないコードとなってしまいました。たかだか十数個程度だろうと甘く見てました。
Superhero Challenge 3があれば,またチャレンジしたいと思います。
NASA-TopCoder Challengeに参加してました。
いつものMarathon Matchとは異なり,20人で1グループとなって,グループ内で競うというものでした。しかも,1グループに$1,000の賞金が設定されるという大判振る舞い。参加人数は480人までということで抽選となりましたが,幸運なことに参加資格を頂きました。
Group Aは個人戦,Grooup Bは5人1チームのチーム戦(4チーム対抗)という形で,私はGroup Bでした。割り当てられたグループが良かったため,スコアはほどほど(576.83 : トップ集団は700点台)ですがグループトップの位置に付けています。Final Testの結果が楽しみです。
チーム毎にPrivate Forumが設定されているので,拙い英語でいろいろ書いてみたのですが,他のメンバは誰も書き込んでこない状況で残念でした。チーム戦であることを楽しみたかったのですが・・・
最終日に「LP-relaxation法で試してるけど(動いていないので)何か良いアイデアはないか」的な書き込みがあったのですが,最終日は自分のコードで手一杯で返信する余裕がありませんでした。もう少し早く書いてくれれば,良い議論のネタになったと思うのですが。この方は最後までsubmitしなかったので,完成しなかったようです。
今回のコードでは,(以前のMarathon Matchでも経験した記憶があることですが)VC++とG++で計算結果が異なる問題に行き当たりました。 いつもであれば細かい部分は気にしないのですが,今回はちょっとモチベーションも高いため,追跡してみました。手元にCDがあったUbuntuを入れてG++環境を急遽構築してみました。(最近のLinuxは何の苦労もなくセットアップ可能なんですね)
分かってしまえば単純なことだったのですが,STLのsortの実装が異なっていて同点のときの並び順が異なるというだけでした。知っていたことですが,机上では見抜けませんでした。
今回の参加者はT-シャツが貰えるそうで,こちらも楽しみです。