伝統的職人技に学ぶ、良いアルゴリズム--アルゴリズム戦記(3)
2006/09/04
伝統的職人技に学ぶ、良いアルゴリズム--アルゴリズム戦記(3)
1980年9月から1981年4月までの期間、私は「国立国文学研究資料館」で書籍の全自動編集システムの開発というお仕事の現場にいた。
マイコンブームの始まるころで、プラモデルと見まごう位の組み立てキットが売られ始めていた。当然画面はなく、せいぜい4桁の数字が並んで光るLEDが付いていただけである。楽しかったが実用にはまったくなるものではなかった。実用コンピュータといえば大型コンピュータしかなかった時代のことである。
日本で初めて(ということは、世界で初めて)漢字プリンタが世に登場するというニュースが新聞をにぎわしていた時代である。登場しかけていたのは、コンピュータ制御機能付き電動漢字タイプライタということになる。日本発の漢字プリンタ(日立製)が国の予算をいただいて実験段階からようやく実用にこぎつけようとしているとき、これを利用した画期的な応用事例を作ろうというプロジェクトが始まっていた。「国立国文学研究資料館」等が所蔵する日本の古文書の総カタログを自動編纂しようという試みであった。背後には手作業でやれば3年以上かかるものを数か月で完成させたいという悲願があったようである。ご予算は当時の文部省(現在の文部科学省)から出ていた。
10年ぶりに戻った東京大学の研究室のボス(國井利泰教授、当時)が私に行けと命じたのである。プロジェクトが行き詰まっているようだから、とにかく行け、という説明だった。現場に行くと5年プロジェクトですでに1年半が経過していた。会議は1週間に1度開かれていたが、まったく進捗していないように見えた。現場には、ラディックス(現存しない)という当時最先端のシステムハウスがいた(企業買収により現「全労災システムズ」となる)。困っていたのは、ここの安楽泰宏社長(故人)だった。「国立国文学研究資料館」には、二種類の研究者がいた。一方の研究者は日本の古文書(石文、木簡書、和綴本、、、) の専門家であり、他方の研究者はシステム科学者だった。古典的な和書の作り方は詳しいが現代書籍の作り方はわからないとおっしゃる方々と、座標位置の決め方さえ教えてくれたらプログラムの設計はできるというコンピュータの専門家たちがいつも合わせて5-6名集まって毎週会議を行っていたのである。お互いに説明していることが、たいへん高尚な内容であることは互いに認識していたことは間違いがないが、理解に努めても、現代書籍の編集手法の糸口が見つからなかった。
私は、まず、両者の通訳を勤めることになった。私はシステムが理解できて、和書の作り方もわかっていたので、通訳は難なくできた。私にとってそれはハマリ役だった。一方で和書の言葉を現代語に翻訳して見せた--システム科学者はようやく目を輝かせた。他方でシステム科学者のカタカナ語を和語にして説明した--和書の専門家はようやく納得がいった。システム技術者が「文字の座標を決定するルールを教えてくれ」と繰り返す意味もようやく理解された。和書の専門家は質問の意味が理解できたことには感激したが返答には窮した。2度通訳を務めた会議の後、私はラディックスの安楽社長を訪ねて、このままではこのプロジェクトは失敗すると申し上げた。会議に出席していたラディックスの別の社員さんも別の言い方で、現状はうまくないと重ねて説明していたことは、後で聞いた。私は、現代書籍の編集手法が関係者に理解されない限り、システムはできないと強く述べ、その一部をかいつまんで説明した。彼は目を丸くして聞いていた。「うん、直感的にその必要性はわかったが、私には詳細が理解できない、現場の連中に理解してもらうことにする。ちょっと待機していてほしい」と言った。彼のこの直感が、このプロジェクトを救うことになったのである。私は、安楽社長に説明しながら、あることに思い至っていた。システム技術者は文字を印字する座標をいかに計算するかに腐心していた。安楽社長はこの困難を聞いていてそれを懇切に説明してくれた。わかった! 私は、心の中で叫んだ。「小組み」だ、この概念は新聞編集(整理)にでしか言われていないが、書籍にだってあるということを解明すればよさそうだ。私は、グーテンベルク以来の発見を瞬時にしてしまった。もちろん細部をつめたのは帰宅してからのことであり、「小組み」だけではなく「合纂素」という概念も新たに必要であることも数日の間の七転八倒の中で考えた。必要は発明の母である。
かつて自費出版の活動に参加していたとき、組版所で職人さんたちに私は「ヒライ(拾い)」という作業を教えてもらった。職人たちは、いきなり版組みをしたりしない。版の枠組みを決めると本文に入る一連の活字(書体や大きさが同じものという基準を頼りにして)を手持ちの枡の中に拾い集めてゆく。これが「ヒライ(拾い)」である。文字は裏返しで、文字の並びは一見逆になる。枡の中の文字がまとまると、行間や空白を埋めて一カタマリにまとめて、版の枠組みの中においてゆく。いくつかのまとまりが1ページ分の版の枠に入り、これ以上入らなければ、隙間をバランスよくつめて1個の版にする。余剰の隙間をバランスよく詰めてゆくあたりには職人のウデが現れる。職人たちはこの作業に小組み概念があるなどとは思っていなかっただろうし、今も思ってはいないに違いない。しかし、私は、この作業を心の中でたどってみれば、まさしく「小組み」概念が隠されて生きている、ことに思い至ったのである。詳細は別の記事(その記事の後半)に書いたので、ここでは述べない。はっきりとしているのは、伝統的な職人の技に学べばよいアルゴリズムに到達することがあるということである。職人たちは、いかに少ない材料で、いかにすばやくきれいに仕事を仕上げてゆくかを日夜研鑽しているのである。自分の工夫だけではない、親方の時代の工夫も当代の職人には受け継がれている、先々代の職人の技も今の職人の手わざに生きている、・・・、良くないアルゴリズムなどあろうはずがないのである。"経験知に基づく手法"は今日"ヒューリスティックス"と呼ばれて自然アルゴリズムの一種としてその地位を認められるようになっているが、当時はまだ邪道であるかのような扱いがされた。しかし、アルゴリズムとは、とりもなおさず「段取り」のことなのだから、専門家(エキスパート、職人)の知恵が悪いはずがないのである。
1週間後、私はラディックスの会議室(社長室と兼ねていたと思う)に出向いた。会場には20名余の技術者が立ったままぎっしりと詰め掛けていた。私は、数枚のレジュメを用意して説明を始めた。私の説明は、会場からの質問でたびたび中断された。「先生は、"天下り"を"テンサガリ"と言いましたが、"アマクダリ"の間違いではないんですか?」(会場から、笑い)、「書籍のテッペンの平らな部分を"天(テン)"というんですよ。昔、本の"天(テン)"は鋭い刃物できれいに化粧断ち(ケショウダチ)しました。"天(テン)"は職人たちにとって重要な意味があったのです。この"天(テン)"の切り口から、本文が始まる位置までを"天(テン)"からの"下り(サガリ)"という意味で、"天下り(テンサガリ)"というんです。官僚の天下り(アマクダリ)とは意味が違うんです」(私、会場からはフーッというため息)、という具合である。予定の時刻を過ぎても話は終わらない。延々とレクチャは続いた。文字位置(座標)を決めるルールは合纂素ごとに存在し、ひとつの階層化された合纂素のそれぞれに属する合纂素の中にある「小組み」の階層構造によって決められるのである、ということがようやく理解された頃には、帰りの電車がなくなりかけた頃だった。
実は、一方で、システム科学者の一人がPascalですでに試作プログラムを作り始めていた。彼は飛び切り頭のよい人だったので、現代書籍を分析してアバウトな数式を導き出していた。一文字ごとに十数ページにわたる数式を多段階に座標計算をするもので、1ページを組み立てるのに最先端のコンピュータで半日以上の処理時間がかかっていた。500ページにもなりそうな総カタログの制作には実用的とはいえなかった。彼の数学力はたいしたものだったので、天動説の複雑な数式に似た数式の体系をあみだしていたのである。しかも、文字の位置は、誤差が累積して、人の目にはガタガタでそろって見えていない。読むに耐えない有様だった。処理スピードを上げるためには計算をを省略しなければならず、計算を省けば文字列の不ぞろいはもっとひどくなる。他方、現状以上に文字列の不ぞろいを減らそうとしても、そのアルゴリズムが思いつかないと、ややノイローゼ気味だった。
2-3日後、彼と会うと私は「小組み」の概念を語った。私が身を寄せた国井研究室出身のそのシステム科学者はたちどころに「理解」した。手を打って「これならばいける」と言った。小組みをページ内に入れてから、できた隙間を比例配分で調整するなどのアルゴリズムが特に気に入ったのである。近くに配置される文字の相対位置を重視する私のアルゴリズムでは、文字列がガタガタになるなどのことはありえそうでなかった。しかも、計算量は3桁以上は減るに違いないというという目論算は自明だった。地動説の数式が天動説に比べて単純明快であったように、私のアルゴリズムはきわめて単純で強力だった。
一気にシステム設計は進んだ。開発言語はPL/1と決まった。PL/1はCOBOLにもFORTRANにも近い言語である。COBOLのプログラマもFORTRANのプログラマも同時進行で仕事に取り掛かれることになった。FORTRANしか知らなかった私もPL/1で初めてプログラムを書くはめになった。こうして私のお約束の期間はハッピーにたちまち終わった。この期間が過ぎた初夏のころ、研究室にはアメリカ数学会会長のKnuthによるTEXのマニュアルの非公開版("Confidential Edition")が密かに持ち込まれて皆で検討会なども開いたが、タブ言語である点を除くと私のアイディアのごく一部がそこには重複して見られるに過ぎず、新しい知見はなかった。TEXはまだ"ゆりかごの中"にあったのである。仕事が進むにつれて、まったく新しい仕事にはつき物のつまずきはしょっちゅう発生した。しかし、私は期間後も持ち込まれる問題に次々と新しい概念で克服していった。ここでご一緒した研究者の皆さんが後に桐生や西陣のソフトハウスの皆さんと作成したのが日本語ワープロや日本語DTPシステムである。日本語ワープロや日本語DTPシステムの基本概念は、誰がなんと言おうと、私が元祖である、と私は思っているのである。ちなみに桐生や西陣では、ジャガード式幡織機を制御するシステム開発の会社とその技術者がうでを競っていたのである。和の絹糸の織物(アヤ)から和の字の文(アヤ)へ。歴史には必然性が貫かれているのである。
開発はそれから1.5年で終わり、テスト稼動と部分修正に半年ほど掛けた。そして、プロジェクトは1年間あまってしまった。予算も1年分あまったはずだが、どう処理されたのかはわからない。安楽社長からは事後、かしこまって私にとっては身に余る多額の謝金をいただいたように記憶している。私もかしこまってこれを押し頂いた。金額は覚えていないが、大きな立派な熨斗袋だったことは覚えている。
当時、プロジェクトのメンバーで「国立国文学研究資料館」の職員の方が、書籍における小組みと合纂素の概念は私の発案であることを後世に残しておきたいとおっしゃって、当時の「国立国文学研究資料館紀要」にことの次第を書いてくださった。そこには私の実名と仕事についての記載がされている。当時は一介の素浪人であった私の名誉を律儀に守ってくださった心温かい方々に心底から御礼を申し上げたい。
△次の記事: アルゴリズム戦記(4)
http://shyosei.cocolog-nifty.com/shyoseilog/2006/09/4_acbb.html
▽前の記事: アルゴリズム戦記(2)
http://shyosei.cocolog-nifty.com/shyoseilog/2006/08/2_d31f.html
琵琶
(補1)「鐘の声 ブログ」はリンクフリーです。ただし、「鐘の声 ブログ」の記事の一部または全部を引用または翻案して、公的に発言または発表される場合は、事前にメール等でお知らせください。[→連絡先]
(補2)ブログ「鐘の声」には、10個ほどのシリーズとシリーズ以外の一般記事があります。シリーズの全体構成やシリーズ別の記事一覧は下記(別サイト)にあります。
☆「鐘の声」の全体構成(「鐘の声 ブログ」記事マップ)☆ (GO!)
・独創力の創り方シリーズ
・心理、教育、社会性の発達シリーズ
・社長の条件シリーズ
・アルゴリズム戦記シリーズ
・情報デザイン研究ノートシリーズ
・「情報社会学、予見と戦略」シリーズ
・感性的研究生活シリーズ
・街に活力をシリーズ
・交友の記録シリーズ
・オヤジと家族のお料理ライフシリーズ
・我が家の愛犬様シリーズ
・妻が、車に撥ねられるシリーズ
・その他、シリーズ外
| 固定リンク
「日記・コラム・つぶやき」カテゴリの記事
- 組織のイノベーションを阻(はば)むもの、突破するもの 「イノベーションと独創力(4)」--独創力の創り方(23)(2009.09.01)
- 基調講演「心に悪い職場とその対策~教育の前に考えておきたい現場事情~」--感性的研究生活(58)(2011.02.03)
- 第19回SEA新春フォーラムで基調講演「心に悪い職場とその対策」--感性的研究生活(57)(2011.01.31)
- 伏見康治氏の思い出--交友の記録(31)(2008.05.31)
- 小澤宏氏のご逝去--交友の記録(47)(2009.04.15)


コメント