雑木帖

 ─ メディアウオッチ他 ─

「カイカク」とエントロピー

2007-01-02 05:32:30 | 政治/社会
 1961年の夏、NASAのプログラマがマーキュリー計画で使われるロケットの惑星軌道計算プログラムの一つをテストしていたときだった。
 だいたいは正しいのだが必要な精度が何故か得られないので、プログラムの論理構成やデータ、また膨大な計算結果などを検証した結果、プログラムのコードのある一行が次のようになっているのを発見した。

 DO 10 I = 1.10

 しかし実はこれは正しくは次のような一行でなければならないものだった。

 DO 10 I = 1, 10

 ピリオドとカンマの違いに“すぎない”のだが、計算機が実行する一行としてみれば、この二つは全く違う命令だった。(少し書いておくと、最初の一行の“.”は数字データの小数点として計算機に認識され、また後の一行の“,”は、プログラムの命令文の区切り記号として認識される。つまり、前者のピリオドはデータの数値を表すものとしてプログラムの中で使われ、後者のカンマはプログラムの命令文の一文字として扱われる。だからこの二つの行は当然ながら実行すると全く違う計算結果となってしまうのだ)

 一プログラマの慧眼により、マーキュリーはこのプログラムのバグで大きな被害を出すことは避けられた。
 しかし、翌年の1962年7月22日、今度はマリナー計画で、やはりプログラムのミスがあって、金星の探査衛星を載せて打ち上げられたマリナー1号は1200万ドルのそのロケットと探査機を、アトラスロケットが向きを変え始めて数分後に大破させた。
 この時はプログラマはちゃんと正しくプログラムのコードを記述していた。けれど、プログラマに渡されたプログラムのアルゴリズムを記した仕様書のほうにミスが存在した。

 アルゴリズムを記した仕様書というのは、具体的にどうプログラムするかを指示するもの、である。
 そのプログラマに渡された仕様書の追跡アルゴリズムの平均速度を計算する箇所の方程式は手書きだった。そして、数学の記法では平均すべき値の上には横棒を引いてそれを表すが、方程式のその箇所の横棒が何故か消えていた。
 プログラマはその仕様書通りにコードを書き、マリナー1号は平均速度の値を使うところでレーダーから得た実際の速度を適用して自らを破壊してしまったのだった。

 0.28倍。

 これは何の数字かわかるだろうか。
 スペース文字も含めた27文字のアルファベットをもっとも無駄なく使ったとき、英語の文章の0.28倍の量で、同じ情報量を持たせることができる、という数字だ。
 つまり、英語はその文章の0.72の部分が能率の点からいくと無駄なのだ(この無駄な比率を言語の「冗長度」と呼ぶ)。
 何故英語にそれだけ“無駄”があるのかというと、文法などの様々な規則から、アルファベットの27文字を自由に配置できないから。

 では、文法などの規則も全部なくし、能率的に、効率的にしよう。そうすれば英語もドイツ語も区別がなくなるし更に良いではないか?…

 最初に紹介したロケットの計算機のプログラムのコード自体は冗長度がとても小さい。実例で示したプログラムコードはFORTRANというプログラム言語だが、それを計算機(コンピュータ)に理解可能なものにするために更にコンパイルという作業を行い、最終的には数字の羅列に変換する。そうして変換された、コンピュータのCPUに理解可能なそれは人間から見たらただの数字の並びだ。
 プログラムコードの表記でよく使われる16進法で表記すると、
「DO 10 I = 1, 10」=「EF A0 10 BC AA 01 97」
 というような数字だけの並びになる。
 コンピュータはこの数値の連続した並びをメモリにロードして、その数値に対応する命令をCPUが黙々と実行することになる。その時点ではもはや、“.”も“,”もない。前後の文脈から「おかしい」と判断できるようなそんな材料もすでにない。
 いくら人から、また人が想定した目的から見て「おかしい」処理でも、コンピュータにとっては「おかしい」という数値=命令などはそもそもないのだから関知などしないのだ。もしその処理を「おかしい」とコンピュータに認識させたいのであれば、『こういう数値などがきたらそれは「おかしい」ので、こうこうこういう処理をその時にするように』というようなプログラムを新たに追加してやる必要がある。これもまたコンピュータは黙々と実行するだけだが。

 言葉の冗長度を小さくし、能率を高めようとすると、文字をこのコンピューターのようなただのユニークということだけが特徴の並びになる。
 しかしそれでは人間が他の人間とちゃんとコミュニケーションできるとは思えない。そもそも、その言語自体を習得することができないだろう。何の規則性も制限もなく、単にある文字列の並びに何かの意味を分配するだけのものに、人間が対応できるとは思えないからだ。

 文法などではなく、その冗長度を別の面から見てみよう。
 ある教授が授業に遅れて来てこう釈明した。
「ちょっと情事がありまして…」
 多分それを聞いた学生は顰蹙するのではなく、笑うだろう。なぜなら、前後の文脈などから「情事」は「事情」の言い間違えだとすぐにわかるからだ。
 けれど、それより冗長度が少ない話し方で、「情事があった…」と言えば、言い間違えだと気づく学生はかなり減るのではなかろうか。

 前後の文脈などから類推できる、ということは一種の束縛でもある。この束縛は経験や知識からくる思考の枠のようなもので、たとえば、上の教室の例だと、初めて行った見知らぬ国の学校で同じことを体験した場合、それが言い間違えなのかそれとも冗談なのか本気なのかよくわからない、ということにもなるだろう。それでも、「情事があった…」より、「ちょっと情事がありまして…」のほうが、言い間違えという事実に気づきやすい。「ちょっと」のあとに「情事が」とくるのは、文章的にもちょっとおかしいのだから。

 言葉の冗長度というのはこのように、人とのコミュニケーションでは緩衝材のような役目を果たし、余計なトラブルを起こしにくくするという意味では、かえって能率的だとさえ言えるような面もある。
 また、様々な言語、またその発音、またその表現の多様性など、言語の「冗長度」が人にもたらす恩恵はとても多い。数字からみて、能率が悪い、というのはそういう意味ではほとんど意味がないものとさえいえる。

 先月、教育基本法が改正され、国が教育の現場の価値観などに口出し、それを強制するような方向が強くなってきた。
 文字列や数列などの規則性を取り払い、それらの結び付きを自由にした、冗長度が小さい、従って単位あたりの情報量の大きい情報源は、他方では、その情報量の多さに比例した「でたらめさが大きい」情報源ということもできる。これは別の言い方では「エントロピーが大きい」ともいう。
 人とのコミュニケーションの道具である言葉では、そのエントロピーの大きさは逆に負に作用し、現実にはある程度の規則性が必要だというのは上記で述べたとおりだが、たとえば、その言葉を使う人間について見てみると、発想が自由で何かに縛られない人というのはとても有用で面白く、多くの場合世の中の役に立っている。
 比喩的にいえば、エントロピーの大きな人は、「でたらめさ」が意外性、多様性などといった良い意味でのわからなさで発揮される。
 しかし、それが世の中にとって、また人にとって有用なものとなるためには、その予想のし難さ、意外性、自由さが方向性を持っていることが必要である。僕はそれを「人生におけるその人の哲学」ととらえている。
 たとえば、近年の殺人を扱うテレビドラマを見てみよう。そこには犯人の「意外性」「予想外」な行動があるが、そこには人の人生を感じられるものがほとんどない。ただ「突飛」という印象が残るだけだ。そういう中身の薄っぺらさを補填するためか、観光地などを第二の見所にしているものも多い。
 しかし、現実にもそのような事件が起こっている(これは一部にはそういうテレビの影響がないとはいえないと思っている)。何かが喪失させられていると感じさせるが、その「でたらめさの大きさ」を政府の価値観の強制で方向性を見出させようとするのが、教育基本法の改正の一面だと僕は思う。しかし所詮それは外からの強制であり、また権力者にとっての都合のいい規範性にすぎないので、効果はほとんどないだろうというのが僕の所見だ。

 もう一つ、グローバルな大企業や富裕層の利益などを増やすことを第一義とし、それで国の力を保持していこうとする「カイカク」は、言葉の例での「能率」さを思い起こさせる。「能率」の追求のためには一部の富める者以外はまっとうな暮らしなどしなくてもいい、犠牲になるべきという考え方だ。
 そして、こういう「能率」オンリーな考え方、価値観、方向性は、今の社会の諸般に浸透してはいないだろうか。
 ピリオドとカンマを間違えただけでも大事に至る日常生活、そんな軋んだ世の中に今向かっているように思う。

最新の画像もっと見る