このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

停止しないアルゴリズム、停止してはいけないアルゴリズム

前のエントリーの続きのようなもの。

世の中には、無限に走行してサービスを提供し続けるタイプのプログラムがありますよね(リアクティブシステムとか呼ぶらしい)。例えば:


/* 門番さんのお仕事 */

while (true) {
while (客が来ている) {
門を(それが閉じていれば)開けて客を1人通す;
}
門が開いていれば閉じる;
10秒休む;
}

これがオモチャの例だとか、ひどい擬似コードとかだってハナシは置いといて、上のような記述は「アルゴリズム」と呼んじゃいけないのでしょうか。停止性の(暗黙または明示的)保証が必要なら、アルゴリズムのはずはありません。だって、これは停止しません、むしろ、停止したらマズイのですから。

リアクティブシステムは分野が違うから、「アルゴリズム」の解釈も変わるんだ、てな所に落ち着くような気がしますが、そうなると結局、「分野/集団/文化圏ごとに解釈いろいろ人生いろいろ」って、ほぼ反論不可能な結論になってしまうなぁ。

前のエントリーでは「アンケートをとる気もありません」と書いたけど、ちょっと興味が出てきた。「アルゴリズム」って何でしょうか、停止しないといけないのでしょうか。ご意見聞かせてください。