2012年2月13日月曜日

事故の力学法則(5):NASAの文化とGIGO

ワシントンDCに到着したファインマンは、道に迷いながらもNASAの事務局にたどり着く。会議の時間に遅れたのは彼だけだったそうだ。

そこで気がついたのは、NASAの文章は略語ばかりで読み難く、文章がブレットポイント(銃弾点、すなわち銃弾で穴が空いたような点によって、要点が細切れにされている文章)に分割されていて、関連が薄い内容に見える項目がずらずらと羅列される傾向があるということだった。例えば、ブレットポイントというのはこんな感じ。

  • The lack of a good secondary seal in the field joint is most critical and ways to reduce joint rotation should be incorporated as soon as possible to reduce criticality.
  • などなど
  • などなど
  • ........
  • Analysis of existing data indicates that it is safe to continue flying existing design as long as all joints are leak checked with a 200 psig stabilization....
  • などなど
こういう文章(あるいは報告書)というのは、読みやすいようで、非常に読み難い。長く読んでいると疲れてくるのだ。だから、最後のブレットポイントを読んでいるときには、最初に何が書いてあったかなぞ忘れてしまうのだ。実は、この長ったらしいブレットポイント文書こそが、NASAの問題の核心だった。つまり、読み手のみならず、書き手までが、最初と最後のブレットポイントの内容が矛盾しているようなことを書いても、平気になってしまうのだ。

実際ファインマンが読んだレポートも、最初のブレットポイントと2番目のブレットポイントの間には、たくさんのブレットポイントが挟まれていて、あたかもThe lack of a good ...で始まるブレットポイントと、Analysis of existing data ...で始まるブレットポイントはまったく無関係のように見えたという。しかし、この二つは切っても切れない関係にあると同時に、まったく矛盾した内容を語っていることにファインマンは気付いたのだった。

"joint rotation"について説明しておく。ロケット壁の結合部一カ所につき、Oリングは2個(ペアで)装着されていた。したがって、一本目のOリングが駄目になっても、二本目で食い止めれば問題はない。しかし、ロケットが燃焼を始めると莫大な圧力がかかって、タンクが外側に膨張してしまう。ロケットのつなぎ目が外れないように結合を強くすればするほど、膨張は中間部分でしなるように大きくなり、つなぎ目の端の部分にトルクがかかって、燃料壁を浮き上がらせてしまうという問題があった。つまり、Oリングが封印すべきタンク壁の間の隙間が拡大してしまうのだった。この問題をNASAの技術者はjoint rotationという専門用語で呼んでいた。実は、joint rotationの問題はかなり早い段階で発見されていて、それはシャトルを飛ばすずっと前からの懸案事項だったと技術者はファインマンに語ったのだった。

以上の点を踏まえて、上のブレットポイントを訳してみよう。

  • (ロケット壁の)結合部にある燃料封入のための予備Oリングが機能しない場合、それはもっとも危険な状況を生みだす。したがって、この危険を減ずるためには、可及的速やかに、ジョイントローテーションを避ける方法を考え、対処する必要がある。
  • ....延々とつづく無関係のブレットポイント...
  • 得られたデータを分析した結果、圧力200psigをかけた状況で全ての結合部のガス漏れチェックをやりさえすれば、従来の設計のままシャトルを打ち上げることは安全であることが示された...
ファインマンは「このままいったら危ないと指摘しているブレットポイントのはるか下の部分に、それと真っ向から矛盾した『設計は無修正のまま飛ばし続けても安全』と書いてあるのは、論理が破綻している」と感じた。

どうしてこんなことになったかというと、NASAの頭にあるのは「シャトルを飛ばし続ける」ことであり、その「偏見」をもちながら、長い文章を細切れに作っていくからこういうことになった。もちろん、問題が指摘されればそれを「隠蔽する」ほど、NASAは腐ってはいなかった。だから、上の方にあるブレットポイントには問題点をちゃんと書いておいたのだろう。しかし、長いことブレットポイントをたくさん書いているうちに、問題のことなどすっかり忘れてしまって、最後に思わず本音を書いてしまったんだろう。

Oリングを製造した技術者は、joint rotationのせいで燃料がタンクの外に漏れ出してしまうことを知っていた。この漏れ出しの問題のことをblow-byと名付けてさえいた。さらにまずいことに、blow-byは実際のシャトル打ち上げの時、何度も発生していることを写真にとって危険だとNASAに報告していたのだった。報告を受けたNASAが対処法を検討し、その結果をまとめたのが、上のブレットポイント集(正式にはflight readiness reviews、すなわち「打上安全報告書」)だったわけだ。

2つ目のブレットポイントにあった「得られたデータ」が、どのように得られたかを確認するためファインマンは分厚い報告書の前の方を探し、対応する箇所を探し出す。すると、そのデータは単なる数値シミュレーションだったことが判明する。実際に、燃焼実験して得たデータではなかったのだった!

現在、計算機科学の最先端分野に「量子コンピュータ」というのがあるが、その最初の理論を編み出したのがファインマンだ(つまり量子コンピュータの父だ)。また最初の並列計算機thinking machinesの開発に関わったのもファインマンだ。さらには、マンハッタン計画で原爆爆発のシミュレーションをコンピュータで行ったのもファインマンだ。つまり、ファインマンはコンピュータ科学の神様みたいな人だ。その人が、「コンピュータの別名は何か知ってるか?GIGOっていうんだよ。つまり"Garbage In, Garbage Out"(「ゴミを入れてゴミが出る」)って意味さ」と言っている。計算シミュレーションというのは、使い方によってはゴミしか出て来ないという、計算機科学の専門家による深い洞察だ。(うまく使えば、とても「おもしろい」ことは、ファインマンがこれだけ計算機で「遊んでいる」ことを見ればよくわかる。)この辺りの文章は面白いので、見てみよう。
We went back through the report and found the analysis. It was some kind of computer model with various assumptions that were not necessarily right. You know the danger of computers, it's called GIGO: garbabe in, garbage out! The analysis concluded that a little unpredictable leakage here and there could be tolerated, even though it wasn't part of the original design.
私たち(ファインマンとOリング開発の担当技術者)はレポートの前の方まで戻り、この「解析」とやらの説明が書いてある場所を探した。そこに書いてあったのは、この「解析」が、いろいろな仮定(しかも、必ずしも正しいとは限らない仮定)に基づいた、コンピュータモデルらしきもの、ということだった。コンピュータの結果というのは危険なものであることは、読者の皆さんはよく知っているはずだ。コンピュータの別名は何かご存知だろうか?それはGIGO(ギゴ)と呼ばれている。つまり、「ゴミ入(い)りてゴミ押出(い)ずる」という意味だ!(GIGOと呼ばれているのが伊達でないことがわかるのは、)このNASAの分析の結論は「ロケットのあっちこっちで想定外のちょっとしたガス漏れが起きても、ロケットはなんとか持ちこたえることができるであろう。たとえ、この問題が最初の設計では想定されていなかったとしても大丈夫だろう。」となっていた(からだ)。
日本の原発のほとんどが点検のために今は止まっているが、「ストレステスト」と呼ばれる、要は「コンピュータモデルらしきもの」を走らせて、分析を行ったあと安全性が確認されれば再稼働されることになっている。ファインマンがいたら「それはGIGOだ!」と断じるのは間違いない!

さて、ファイマンの追及はさらに進む。
If all the seals had leaked, it would have been obvious even to NASA that the problem was serious. But only a few of the seals leaked on only some of the flights. So NASA had developed a peculiar kind of attitude: if one of the seals leaks a little and the flight is successful, the problem isn't so serious. Try playing Russian roulette that way: you pull the trigger and the gun doesn't go off, so it must be safe to pull the rigger again...

もし、ロケットに取り付けられた全てのOリングからガス漏れが起きてしまったら、いくらNASA(のおばかさん)でも 、それがかなり深刻な問題となることは明らかにわかるだろう。しかし、わずか数回程度のフライトにおいて、たった2、3箇所でガス漏れが生じたに過ぎない。そこで、NASAはこの問題に対し、とても奇妙な解釈(言い訳?)を編み出すのである。すなわち、「もし漏れがわずかであり、そのときのフライトが成功裏に終われば、この問題はたいしたことはない」と。この解釈がおかしいことは、ロシアンルーレットを想像してみればすぐにわかる:あなたは引き金を引いた。しかし銃弾は飛んで来なかった。ということは、もう一度引き金をひいても、きっと安全なはずだ...
ファインマンが生きていれば、日本にある55基の原発はロシアンルーレットみたいなものだと、きっと言うことだろう。結局、弾丸は2011年3月11日にぶっ放されてしまったのだが、このロシアンルーレットのゲームを、脳みそを半分吹き飛ばしながら、まだ日本人がやり続けているのは凄いことだ!日本人が興じる、このロシアンルーレットがさらに凄いのは、まだまだ弾はたくさん装填されていて(日本には大地震が多い)、次の「銃声」は結構近いかもしれないのに、依然として平気でやり続けているという点だ。(原発の安全性を信じているみなさんは、ディアハンターのクライマックスを見るべき。)


Richard P. Feynman,
"What do you care what other people think?"
 (Bantam Book, 1988)

0 件のコメント: