2023.08/02 コンピューターを用いる問題解決法(2)
何か問題を解決しようとするときに、「何が問題か」明確にする必要がある。問題が明確にされるとそこに含まれる課題を考えることになる。
オブジェクト指向では、求められるシステムに必要な機能をオブジェクトとして設計してゆく。そしてオブジェクトの振る舞いについてプロパティーを、と考えてゆく。
20世紀に流行したTRIZ及びその発展形USITでは、オブジェクト指向同様に厳密な科学の推論手順が形式化された。そして、科学的に当たり前の結果が得られるので、その虜になった技術者もいる。
一方で、当たり前の結果をヒューリスティックなアイデアとして得られる人は、TRIZやUSITを新しい知識の得られない方法として捨て去った。
・
もし、新しい知識を得たいと考えるならばTRIZやUSITではだめであるが、AIならば、と考え出されたのがマテリアルズインフォマティクスだが、それよりも40年以上前に登場した多変量解析でも新しい知を得ることは可能だった。
・
人文科学系は多変量解析でその研究方法が変化した。なぜか日本の理系の研究者や技術者の多くは多変量解析やコンピューターで新しい知を得ようとする努力を嫌っていたように感じる。
・
実際に30年前までゴム会社の研究所では、そのような考え方は全否定され、さらに当方は業務妨害まで受けたので転職している。情報系以外の理系の技術者研究者にデータサイエンスは20世紀には歓迎されていなかったように思う。
・
ところで、コンピューターのプログラミングでは科学の形式知に縛られる必要はない。ロジックで組み立てられるアルゴリズムは、必ずしも科学的な記述に限定する必要はない。
・
ここを誤解されている人がいる。風が吹けば桶屋が儲かる式のアルゴリズムでもコンピューターは答えを出してくれるのだ。そのようにオブジェクトを設計すればよいだけである。荒唐無稽なゲームをPLAYすれば理解していただけると思う。
すなわち、コンピューターを用いて問題解決するときに、科学にこだわる必要はなく、自由にプログラミングすればよい。但し、それを技術に応用したいときには、目の前の現象の振る舞いをコンピューターの中で再現できている必要がある。
すなわち、正しい問題を解くプログラムとなっている必要がある。このプログラムが科学に忠実な形式知で組み立てられたアルゴリズムなのか、現象を忠実に再現することにこだわったアルゴリズムなのかにより、プログラムの動作の結果が異なる。
科学に忠実なアルゴリズムであれば、プログラム実行後当たり前の結果となるが、現象を再現できることにだけに従ったアルゴリズムでは、科学の形式知から否定されるふるまいや、科学の形式知の論理的積み上げでは得られないふるまいの結果が得られたりする。
シミュレーションのプログラミングを行う時に、現象を科学の形式知の積み上げで記述するのか、科学の形式知にとらわれず現象をモデル化して(抽象化して、単純化して、現象の本質だけを取り出して)記述するのかにより、プログラムのふるまいが大きく異なることを知っておく必要がある。
前者からは常に当たり前の結果が得られるが、後者からは科学の形式知だけでは得られない結果も得られる。シミュレーションにはこのような二通りの方法があることを知っておく必要がある。
すなわち、後者のシミュレーションにより、科学で未解明な発見ができる可能性があるということだ。例えば、パーセプトロンのアルゴリズムを使うディープラーニングによりデータマイニングしようというマテリアルズインフォマティクスでは、後者の視点のアルゴリズムもプログラミング可能である。
アカデミアとは異なる技術を中心として活動する弊社のセミナーでは、アカデミアではできない両者の視点で問題を解決する手法を解説している。トランスサイエンスの時代に必要な知識の活用の仕方を提供している。
・
セミナーではもう少し具体的に科学と技術について説明し、コンピュータを使い問題を解くときのコツを解説している。
カテゴリー : 一般
pagetop