定式化の結晶

・問題とは、何が問題なのかが分からないことが問題なのである。
・明確な質問の形にできたとき、問題は8割以上解けている。
・数学とは、解法の寄せ集めではなく、言語である。
        -- 詠み人知らず。

学生の頃、先生からこんな話を聞いたことがあります。

『分析化学の仕事は、良いサンプルを準備するところまで。あとは分析機器が答を出す。』

それまで私は分析化学というものに、試薬の色が変わったとか、沈殿したとか、そんなイメージを思い描いていました。
ところがこのイメージは、現代の分析化学には当てはまりません。
分析の主役は、高度に発達した分析機器 〜 X線回折、NMR、クロマトグラフィーといった一群の機械装置なのです。
もちろん試薬の色や沈殿が無くなったわけではないのですが、それらはすでに現在の主流ではありません。
数ある分析機器の中でも、私が特に驚いたのは「X線回折装置」でした。
これを使うと、タンパク質の構造はもちろん、ウィルスの構造までもが3D-CGとなってモニターに描き出されるという、まるで魔法のような機械です。
もはや“試薬の色が変わった”レベルの話ではありません。
※こんな装置です:タンパク質X線結晶構造解析
    >> http://www.spring8.or.jp/ja/news_publications/research_highlights/no_05_2k/

『結晶になりさえすれば、特定できたも同然。』

確かそのようなことを、先生は口にしていたと思います。
ただ、その「結晶にする」ことがとても難しい。
難しい物質と易しい物質があるのですが、本当に知りたい物質はたいてい難しい。
簡単には結晶化しない物質もありますし、生物の中でヌルヌル動いているタンパク質を結晶化したら“死んでしまう”かもしれません。
Wikipediaには、こうありました。>> wikipedia:X線回折
『単結晶X線回折技術は三段階の基本操作から成る。
 第一段階(しばしばこれが最も難しいのだが)は測定対象物質の適切な結晶を得ることである。』

ここに至って「良いサンプルを準備する」の意味が分かってきます。
本質を損なわずに、未知なる物質を結晶として切り出すのが至難の業なのです。
なので、どんなにすごい分析機器が開発されても、分析化学の仕事は無くならないし、難しさも結局は変わりません。
ただ、分析機器が登場する以前と以後では「分析すること」の意味は大きく変わりました。

・・・あれから十数年・・・

私は分析化学に携わることはなく、代わりにソフトウェアの開発に携わってきました。
それで分析化学などもう縁が無いものと思っていたのですが、ここ最近になって、
分析化学と同じ変化が十数年のタイムラグを経て、ソフト開発の現場にやってきたように感じます。
どういうことかというと、

『SEの仕事は、良い定式化を行うところまで。あとは機械が自動的に答を出す。』
『定式化さえできれば、解けたも同然。』

つまり、「結晶 -> 定式化」 ということです。



これまで私はプログラマーという仕事に、自前のアルゴリズムを工夫するとか、実装するとか、そんなイメージを抱いてきました。
ところがこのイメージは、どうやら近未来のプログラマーには当てはまらなくなりつつあります。
実際、私はSEという仕事に就きながら、ここ何年も自前のアルゴリズムとか、フルスクラッチ実装を(少なくとも大きな業務で)行ったことはありません。
それに代わって「定式化」の比重が圧倒的に増えました。
ソフトウェアのパッケージ化,自動化,AI化がとことん進んだ結果、システムの良否はほとんど「定式化」が負うことになったのです。
定式化とは、「現実問題を、コンピュータが扱える形に切り出すこと」です。
うまい形に切り出せれば、システムの8割は成功したも同然。
裏を返せば、難航、失敗したプロジェクトの8割は定式化が不十分だったということです。

さらに付け加えると、私の携わっている統計分析業務は、とりわけ定式化の比重が大きい分野です。
統計分析の計算そのものは、気の利いた統計解析パッケージが全自動で処理してくれます。
仕事のほとんどは、質の良い、きれいなデータを揃えることと、そもそもどんなデータを集めればよいかを考えることです。
今日の、とことん高度化した統計解析パッケージを動かすたびに、私は“X線回折装置”のことを思い起こしています。

分析化学、ソフト開発だけに限らず、「定式化」へのシフトはいずれどの分野にも押し寄せてきます。
(あるいは、もう押し寄せている。)
そしてその「定式化」の中心にあるものは、文字通り「式」なのです。
それは「解くための式」というより、まず「表現するための式」です。
ちなみに数式は英語で「Mathematical expression」、直訳すれば「数学的表現」となります。
現実問題のエッセンスを結晶化すること。
それが数式の持つパワーであり、実は数学が強烈に役立つ場面だったのです。

これは「ORの4段階」として紹介されていた図です。-- 続・発想法(中公新書)より.
このように並べたとき、3つ目の「解く」は極端に言えばコンピュータが全部やってくれます。
電卓があれば筆算を行う必要はありませんが、それでも電卓のどのボタンを押すべきか、式の立て方だけは知っておく必要があります。
そうなると大事なのはむしろ「問題の定式化」「数式化」のステップなのですが、
どうも私(たち)は数学というものを「解く」ことを中心に考えるきらいがあるように思うのです。
数学とは、いかに解くか、いかにエレガントな解答を導き出すかであって、定式化、数式化のステップは、前座かオマケ程度。
たとえば学校で教わる数学の中で、文章題が占める割合はどの程度でしょうか。
たまたま私が目にした高校の教科書には、文章題はほとんどありませんでした。
ゼロかと思って尋ねてみたところ、「ここに1題あるよ」とのことだったので、1題だけ確認できました。
実際、小->中->高と進むにつれて、文章題は無くなる傾向にあります。
それだけ見ても、いかに「解く」以外がオマケ扱いか分かるでしょう。
(とってつけたような文章題が本当に「定式化」なのか、という疑問はひとまず置いておきましょう。)
それでも今後の実践を見据えるなら、いずれ「定式化」の方が「解く」以上のボトルネックになることでしょう。
そうなると「数学=解く」のイメージがだいぶ変わってくるはずです。

イメージが変わると、何が変わるのか。
数学を必要とする人、使いこなせる人の範囲が変わります。
「解く数学」は、一握りの天才だけが必要とし、一握りの天才がいれば事足ります。
一方、「定式化の数学」は意思伝達ツールとしての性格が強く、チームメンバー全員が共有しないと意味がありません。
あるいは、共有できるような機械にINPUTしないと意味がありません。
また、天才だけでなく、凡人が使えないことには広がりがありません。
凡人で構わない、中身まで知る必要は無く、電卓のボタンが押せれば十分です。
ここはきれい事を並べるよりも、逆に、チームの中に1人だけ「定式化の数学」が通用しないメンバーが混じっている状況を想像してみて下さい。
その1人がどれだけ足を引っ張ることか。
特に、その1人が“無能な上司”だったりした場合には、悲惨なことになります。。。

さて、「式」が分析やシステム化に役立つのは、ある意味当然なのかもしれませんが、
これが意外な分野に役立つという話を最近耳にしました。
その意外な分野とは、「カウンセリング」です。
カウンセリングには「カウンセラーが自ら解決してはならない」という鉄則があるのだそうです。
では、カウンセラーは何をするのかというと、「ひたすら問題を整理して示す」だけです。
問題を解くのは、相談を持ちかけた本人でなければならない。
本人が解く力を身につけないことには、本当に解決したことにはならない、ということです。
新人カウンセラーがやりたくてウズウズするのだけれど、やってはいけないことは、指図すること。
つい口を突いて、ああしなさい、こうしなさいと言いたくなるのだけれど、それをグッと我慢するところが肝要なのです。
カウンセラーに相談に来る人は、ずばり解決策が聞きたくてやってくるのだけれど、
良いカウンセラーは決して直接的な解決方法を教えません。
(逆に言えば、「原因はずばり○○です」と言い切るカウンセラーは、あまり信頼できない。)
ただ、相談者がもってくる悩みを順序立てて整理し、明確な形で示すことに努める。
相談者が自ら解決できるような道筋を、ひたすらお膳立てするのだそうです。

このカウンセラーの話を聞いたとき、私は、これこそが定式化の威力だと思いました。
分析機器とコンピュータとカウンセリング。
この3つは全く別物に見えますが、定式化という側面からすれば、同じ心構えを有しています。
それは、「解く主体を全面的に信じてお任せする」ということ。
下手な自作や小細工を労するよりも、問題整理に全力を注ぎ、解くことはいっそ枯れた主体に一任する。
この定式化の方法こそが、システム化がとことん発展した現代に最もマッチしているように思えます。