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

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

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

参照用 記事

「アルゴリズム」って? 「プログラマ」って?

メモ編に対してですが、id:sumiiさんから、「アルゴリズム」という言葉の意味と使い方に関して、以下のコメントをいただきました:

通常の定義では、「アルゴリズム」といったら(特に断らなければ)任意の有効な入力について停止せねばならず、停止しない(かもしれない)場合は「セミアルゴリズム」といいます。もしそれ以外の理解をしている「プログラマ」がいるとしたら、単なる誤りか、少なくとも通常の定義とは異なるかと。

とまー、「プログラマ/技術者」ならば、「アルゴリズム」という言葉を、上記のごとく理解している(べき)だろう、ということです。

僕は週に何回か、プログラマ/技術者の方々と打ち合わせをします。そのときよく、「そこのロジックはどうなっているの?」とか「アルゴリズムはもう決まっています。」なんて会話になります。そんな打ち合わせの出席メンバーのような人々が「プログラマ/技術者」であり、今のような会話に出現する「ロジック」「アルゴリズム」がプログラマ的な意味での「ロジック」「アルゴリズム」だと僕は認識していました。

「任意の有効な入力について停止せねばならず」だとすると、処理手順とは別に、停止性の保証(暗黙でも明示的にでも)が必要ですね。それを含めてアルゴリズムと呼ぶとすると、日常会話での「アルゴリズム」(という用語)の使用の相当部分は誤りだったと思います(僕自身と周辺の使用例)。

統計的データは何もないし、アンケートをとる気もありませんが、「アルゴリズム」と口にする(あるいは書く)とき停止性を意識し、かつ停止する保証がないときは「セミアルゴリズム」と呼ぶプログラマ/技術者はむしろ少数派な気がするんですが --- あれあれ、待てよ、「アルゴリズム」って言葉の前に、どうも「プログラマ/技術者」って言葉で既に食い違い/認識の相違があるような気がしてきました。

この対偶をとると… あなたはプログラマ