人気ブログランキング |

設計とはどういう行為か、AIで設計を自動化できるか?

2月の中旬、まだ大勢の人の集まる会合が可能だった頃(なんだか遠い昔のようだが)、「日本学術振興会 プロセスシステム工学第143委員会」(通称「PSE143委員会」)という場に招かれ、講演をさせていただいた。会合全体のテーマは「新しい設計手法・視点」で、わたしは『システム設計は果たして工学たりうるか?』と題するお話をした。

設計とは何か、という問題について、最近あれこれの角度から考えてみている。わたし自身はエンジニアリング会社でずっと働いており、とくに駆け出しの頃は、設計部門でキャリアを積んだ。今は設計の現場から離れてしまったが、今でも設計の良し悪しこそ、その後の仕事の質や利益を、大きく左右すると信じている。そして、プロジェクト・マネジメントの分野に設計論が欠けていることが問題だ、とは以前も書いたとおりだ。

では、ひるがえって、設計とはどういう行為なのか、設計の質とは何が決めるのか、そして昨今皆が注目しているAI(人工知能)という道具は、設計において役立つのかどうか。こうした議論は、あまり十分されていないように感じる。そこで、上記の講演の内容を一部再録する形で、読者諸賢の検討の俎上に差し出そうという次第である。

ちなみに委員会の名称にある「プロセスシステム工学」とは、簡単に言うと化学プラントの全体設計及び制御に関する工学、というほどの意味である。プラントというのは、外観を見た方はご存知の通り、装置や機器を多数の配管が網の目のように縦横無尽につないだ形をしている。あれ自体が、非常に複雑なハードウェア・システムなのである(もちろん制御ソフトウェアもその上で動く)。だから、わたしの講演タイトルにある『システム設計』は、ITソフトウェアの設計というよりも、もっと広い意味でとらえていただきたい。

さて。そもそも、設計とはどういう行為なのか。設計という仕事を、真っ向から研究対象としてとらえた学問は存在するのか。すなわち、『設計論』の系譜とは、どうなっているのか?

不思議なことに、ここがまず、出発点として曖昧なのである。読者の中には理工学系の教育を受けた方も少なくないと思う。では、一般的に設計とはなにか、どういう原理で考え、どう進めるものなのか、教わった方は多いだろうか? わたし自身の記憶は、あいまいだ。工学部では、それぞれの専門領域の手法論は細かに教わる。だが、分野を横断した、一般的な設計論というのを、あまり聞いた覚えがない。

じつは早くも1960年代に、この点を問題視した人がいた。後に東大総長となる故・向坊隆である。彼は応用化学系の研究者だったが、戦後日本における工学教育の見直しの必要を説き、エンジニアが共通に学ぶべき『基礎工学』の21の科目を提案した。その第10科目が「設計論」で、第21科目は「システム工学」だった。

設計論を担当した渡辺茂は、後に著書「設計論」(岩波書店、1975)をまとめる。彼の「設計の定義」は、こうだ:

「設計とは思いついた“あるもの”に具体的な形を与え、その着想の正しさを確認することであって、次の三つの行動からなりたっている。
1. “あるもの”を作りたいときめる
2. それに形を与え、使用する素材をきめる  
3. その作り方をきめる」
設計とはどういう行為か、AIで設計を自動化できるか?_e0058447_19543325.jpg
・・感心しましたか?

率直に言うと、「何それ?」というのが、読んだ時のわたしの感想だ。渡辺茂は機械工学の人だった。だから形と素材に、主要な関心がある。しかし、電子回路の設計や、プラントの制御方式に悩んでいる設計者にとって、<形を与え、素材を決める>と言われて、心に響くとは、とても思えない。ソフトウェア設計者には、いうに及ばずだろう。

もう少し時代が下って、1979年。東大の精密機械工学科の吉川弘之は、設計についての公理的理論として『一般設計学』を提案する。一般設計学では、基本的な概念として「実体」,「実体概念」,「属性概念」が定義され、位相空間論の方法が用いられる。たとえば、「公理1(認識公理):実体は属性(あるいは機能,形態などの抽象概念)によって認識あるいは記述することが可能である」、といった具合だ。

わたしはここで、その内容を詳しく解説するつもりはない。あまりに抽象的で難解だからだ。もしご興味があれば、たとえば、下記の講義録などを参照されたい。

また、後に角田譲は、位相空間論ではなく「チャンネル理論」の数学的枠組みを用いて、「抽象設計論」を提案する(2001年)。その内容については、以下の文献も参考になる。
菊地誠(2003): 一般設計学と抽象設計論に関する考察. 京都大学数理解析研究所講究録 1318, 136-148,

ただ、エンジニアとして正直に言うと、上記のような公理論的な枠組みをいただいても、実際の設計の仕事にどう活かしたらいいか、さっぱり分かりません、との感想になってしまう。

という訳で、いつものことながら、自分で納得できる答えを自分で考えるしかない、という事になった。
設計とは、どういう行為か? わたしの答えは、こうである。

設計とは、『機能を形状・構造に落としこむ』作業である。
設計対象に可動部分があったり、対象が入力を出力に変換する仕組み(システム)である場合は、その構造に、制御機構を与える作業が続く。

これだと分かりにくいだろうから、具体的な例をあげてみよう。たとえば、椅子を設計することを考える。

椅子は、人がその上に一時的に腰掛けるためのものだ。すなわち、一定の高さに座面を提供することが、その機能である。そこで、座面の高さ、かかる体重(外力)などが、主要な設計パラメータになる。設計パラメータというのは、問題固有の特徴的な設計変数のことだ。
設計とはどういう行為か、AIで設計を自動化できるか?_e0058447_19565226.jpg
野良の切り株だって、座る役には立つ。だから、考えている椅子が、もし「切り株」のように、単一の材料からなる場合、形と材質だけを決めれば、事足りる(構造の概念は不要だ)。

だが、もちろん異なる形状と材質からなる、座面と、それを支持する脚部からなる「構造」を考えてもよい。そして普通の椅子は、そうなっている。この場合、座面の広さ・材質、座面を支える脚の形状と本数、地面との接し方、などの設計変数を決める。

その上で、手で持ち上げられる重さにおさめたい、とか、耐荷重は最大100kgとか、回転できるようにしたいとか、背もたれも必要だとか、さまざまな要求仕様や、製造上の制約条件を加味して、考えを進める必要がある。

最終的には、製造する人にとって必要な、製作図面と、部品表(BOM)と、製造仕様書とを設計のアウトプットとして出さなければならない。もし売り物にするならば、さらに「使用説明書」(ユーザマニュアル)もいるだろう。

ところで、椅子の設計において、形状や構造はたしかに分かる。だが、椅子の「制御」とは何だろうか? そんなものは必要なのか? どこかにマイコンをつけて、モータをサーボ制御するのか?

そう思うのは、制御ということを、現代制御理論の枠組みで捉えすぎるからである。制御の原義とは、「設計対象のふるまい方を、ユーザの意思や動きに合致させる仕組み」なのだ。それはユーザとの入出力操作により、性能(有用性)や安定性を変えるメカニズムである。

椅子の場合はどうか? たとえば、キャスターつきの脚部は、ある意味、椅子の位置を「制御」しやすくするための仕組みだ。また、そのキャスターにストッパーがついていたら、それは移動性のみならず、安定度を確保するための制御の仕組みでもある。また、座面の高さや、背もたれの角度の調節メカニズムだって、立派な制御機構である。

ちなみに、上に述べた「機能」と「構造」の概念についても、きちんと記しておいたほうがいいだろう。

機能とは、設計対象のふるまいや、対象がもたらす変化のうち、ユーザの期待に合致して(あるいは他の機能とつながって)有用なところを意味する。すなわち、製品の生み出すアウトプット(物・運動・情報)や、あるいは働きを「機能」と呼ぶのだ。椅子ならば、座面を提供して人の体重を支えることが、主たる機能である。ちなみに、アウトプットや変化を生むだけでなく、自然な変化を防ぐ事も、「働き」の一種である。だから、塗装は鉄のサビを防ぐ「機能」を持っている、という。

構造とは、モノとして存続性(安定性)があり、そのふるまいにおいて機能(有用性)がもたらされるような、要素の形と材質の組合せをいう。なお、これは設計対象が、物理的な実体を持つような場合の話である。ソフトウェアとか、あるいは「企業組織を設計する」際のように、実体がない設計対象の場合は、「構造」とは、要素的な機能のかたまり(モジュール)と、その連携関係のことを示す。

余談だが、宮崎駿の映画「風立ちぬ」で、主人公の堀越二郎が、食堂で出てきた魚の骨をつまみあげて、「なんて見事な形なんだ」と賛嘆するシーンがあった。堀越は航空機工学のエンジニアだから、部品の形状に、非常に興味がある。

機械・土木・建築など、物理的な形状に近い設計の分野では、『形状』は機能と、構造(力学的構造)を橋渡しする、重要な要素である。だから最初の定義に、『機能を形状・構造に落としこむ』と書いたのだ。ちなみに電子回路の設計や、化学プラントのプロセスシステム設計(=プラントの回路設計)では、機能的な要素の結合関係が重要であって、物理的な距離は、まあ副次的な役割にとどまる。そして無体物の設計では、形状は問題にならない。

少し長くなってきたので、これまでのところを簡単にまとめよう。

1.設計とは、『機能を形状・構造に落としこむ』作業である。必要な場合は、さらに制御機構を与える作業が続く。

2.機能とは、設計対象のふるまいや変化のうち、ユーザの期待に合致する(あるいは他の機能とつながる)ところを意味する。つまり「有用性」が評価基準となる(無用なものは設計する価値がない)

3.構造とは、設計対象を構成する要素の形と、つながり・組合せを意味する。機能として期待するふるまいをし、かつモノとしての「存続性」(力学的安定性)が評価基準となる

4.制御とは、設計対象のふるまい方を、ユーザの意思や動きに合致させる仕組みであり、ユーザとの入出力操作により、性能や方向性・安定性を変える。つまり「操作性」が評価基準となる

さて、わたし達が工学部で習うような実験手法とか、あるいは利用可能な計算ソフトなどがやってくれる仕事は、基本的に「形状・構造が与えられたときに、その性能・ふるまいを計測・予測する」道具である。有限要素法による構造力学計算も、空洞実験やCFDの流体力学計算も、電子回路シミュレータも、分子軌道法による計算化学も、そうした手法論である。

だが、設計という仕事において必要とされるのは、ちょうどその逆の動きだ。つまり、
「形状・構造 → 機能・性質」
ではななく、
「機能・性質 → 形状・構造」
を考えなければならない。

形状・構造から出発して、機能や性質を導出するプロセスは、手順は複雑かもしれないが、答えは一意に決まる。しかし機能から、それを実現する構造・形状を求める作業は、一意に決まるとは限らない。おそらく非常に広い可能性の領域から、適切な形状や組み合わせを求める必要がある。

つまり、設計とは典型的な逆問題なのである。『逆問題』とは、アウトプットからインプットを推測する(あるいはインプットの変換プロセスを推定する)タイプの問題だ。そして、逆問題の答は、一意に決まらない場合が多い。でも、設計においては、何か答えを出さなくてはならない。だから、ここに設計者の経験値や「センス」が介在する余地が生まれるのだ。

設計という仕事には、サイエンスだけでなく、アートの部分がある。「良い設計」と「ダメな設計」が分かれるのは、このためだ。答えが一つしかないなら、設計に良し悪しなど生じるはずがない。だが、現実には設計者のスキルが、重要な役割を果たすのだ。

こう考えてくると、「AIで設計を自動化できるか?」という問題も、アプローチの方向が見てくる。長くなってきたので、この続きは項を改めて、また書こう。


<関連エントリ>


by Tomoichi_Sato | 2020-05-07 20:07 | 考えるヒント | Comments(0)
<< AIで設計を自動化できるか? ... 書評(巣ごもり読書のための):... >>