コンパイラ

試験勉強。 最適化とかその辺は、 「なるほどー」 と思えて、勉強しようという気が少しはするが、LLだとかLALRだとかその辺は、 「それよりyaccの使い方を勉強した方が実用的じゃん・・・」 とか考えて、やる気が出ない。

オセロ学習ルーチンの手法調整

今朝発見した学習ルーチンのバグを家に帰ってから直した。 内部で 石の表現ベクトル->整数 の変換を多用しているが 整数->石の表現ベクトル の変換順序を間違えているところが1か所あり、その結果石3つから成るパターンというものができてしまい、そこに重みづけがされているために惨澹たる評価関数になっていた。 で、その後バグがなくなった(と現在信じられている)学習ルーチンの学習手法をちょっとずつ変えてみて試したところ、ある方法が異様に良い結果をだす事が判明。(というよりは、他の手法が悲惨だった気もする) 30分程度の学習で、64石埋まった場合における平均近似誤差が2石程度。うん。これならチューニングして使っていけそう。 いままでのだと、64石埋まった時点での平均近似誤差が10石とかだったからどうしようかと思っていたが、これでやっとvsOthaとの戦いのスタートラインまでのハードルを1つ越えた感じ。・・・ってまだまだ遠いが; まぁ、そもそも石の数を数えれば誤差0にできるので、この結果が決していいというわけではない。が、今までの悲惨さよりは大分マシ。そういう低レベルな状況ではある。 いま考えると、とても当たり前の方法に思える。普通に考えたらこうする。というような気もしてくる。が・・・なんでいままでこうしなかったんだろう? うーん。実は日記に書くほどの事でもない気がしてきた。

Easy to program OS

OSの試験中に、プログラミングがしやすいOSというものについて考えてみた。こんなのはどうだろう。 パフォーマンスは無視。パフォーマンスを考えるといろいろな最適化やらオプションの指定やらが必要になってくる。ので、プログラミングはめんどい。低速でも問題ないもの(たとえば、通常のパソコンで1ミリ秒かかる計算が1秒かかったとしても問題ないだろう)も多い。それより、その処理をするプログラムを一瞬で書けることが望まれる場合もあるだろう。 エラー処理機構は全てOS側。エラー処理を書くのはめんどくさい。ので、エラーが起きたらそのプログラムは停止し、OSによってエラーメッセージが表示される。ただし、プログラムの動作はAtomic(すなわちAll or Nothing)で、プログラムの途中で停止したらプログラム実行前の環境が完全に再現される。 これらによって、非常に簡単な仕様で、やりたい作業のみをプログラムとしてかくだけで動作する。というOSが実現できるのではなかろうか? もちろん、汎用ではない。が、決してだれも望んでいないものではないと思うが。

OS試験

前日のKの情報通り、半分は去年の問題と同じだった。さすがにそこは大丈夫だと思う。他の部分も、特に変な事を聞いているものはなくて、問題になるようなところはなかったっぽい。 1問、システムコールを定義(要は、OSの一部分を設計)するのがあって面白かった。詳細は別項で。

39.5℃!

今日は暑すぎた。 なんか、東京では観測史上最高気温だそうです。 祖母も「こんなに暑いのは、生まれて初めて。」と言ってた。そんなの本当に分かるものなのか!? 昼から学校に行ったけど、外に出たら皮膚がひりひりするほどの日差しだったし、明らかに異質だった。 携帯に届いているメールを見たら「昨日と同じ」。うそばっかり。 ま、とにかく、死ぬほど暑かった。 たった今、オセロの統計処理をやらせているデスクトップマシンが落ちました。暑さのせい?まぁここ数日ずっと計算させては結果を破棄する事をくりかえしているからなぁ。 普通に使っていて落ちるのは初めて。安定性にはかなり気を使っていたのに。リモート接続で使っているから、本体の場所まで電源入れ直しにいくのめんどくさいなぁ。

事務のおばちゃん

昨日の夜(午前3時過ぎ)に今日提出の課題をやりはじめ、朝6時すぎに提出。 このため、授業は全て自主休講となりました。 で、明日試験のOSの授業プリントが1つ2つ欠けているので学校の事務室にもらいに行ったけどなかった。で、後で友達と一緒に行った時に予備からコピーさせてもらった。 事務のおばちゃん(Yさん)との会話。 Yさん:まだ取りにくる人がいるかもしれないから7部くらい刷っておいてくれる? ぼく:いえ、もう明日試験なので、そんなに取りにくる人はいないかと・・・ Yさん:そういえばそうね。 ぼく:前日に取りにくるような人はそういないかと。 Yさん:ほんととんでもないわね(笑) 厳しいお言葉です・・・。

Subversion 特集

先週からオセロのために自宅サーバに導入したSubversionだが、今日書店でみつけたLinux Worldで30ページ弱に渡って特集が組まれていた。3ヶ月連続で特集するらしい。すごい気合いの入れ様だ。 Subversionはオンラインマニュアルがちゃんと日本語化されているので、わざわざこれを読むメリットがあるかといえば微妙だが。 いままで、自宅サーバといえば家中で最も(by far the worst)安定性の低いパソコンだったから、そのコンピュータでバージョン管理などありえないわけだったが、今月はじめの入れ替えでまともに動作するようになったので、導入。Windows用のExplorerに統合されたソフトを併用すると更新されたファイルとかがアイコンで見えたりしてすごい便利。 そもそも、時々ファイルが破損したりするCVSをバージョン管理に用いるのは恐くてしょうがない。使い方が悪いといわれればそれまでだが、多少荒っぽく使っても耐えてくれた方が安心なのは確か。Subversionは、Atomic Transactionで安心。 Subversion推奨派として、ちょっと宣伝してみた。