2022.08/23 シミュレーションスキル
9月に予定している「パーコレーションのシミュレーションプログラムを作成しながら学ぶPython入門」について少し説明する。参加希望者は申込ページから参加申し込みをしていただきたい。休日にも有料セミナーを入れたが、日程を調整してどこかでテスト用の無料セミナーを1回実施したいと考えている。
正しい問題が見出され、それを「考えるとき」にシミュレーションを用いると容易に答えが得られる場合がある。シミュレーションスキル(注1)は、情報化時代に技術者が身に着けておくべき重要な問題解決の武器となる。
プログラミングスキルもあれば、自分でシミュレーションプログラムを作成し費用をかけずに多くのデータを得ることが可能となる。ありがたいことにPython及びそのプログラム開発環境は無料で手に入る。
昔は、MS-DOSにCのプログラム開発環境を構築するために50万円ほどかける必要があった(注2)が、今や周辺ライブラリーも含めて無料である。また、ただPythonのプログラミング入門程度のセミナーならば、情報処理会社が開催している無料セミナーがある。
9月に行うセミナーでは、単なるPython入門を説明するつもりはない。簡単なパーコレーションのシミュレーションプログラムを作成し、それにより集められたデータを考察して問題解決した事例2題を用い、シミュレーションをどのように用いて問題解決したのか、その過程を公開する。
科学でシミュレーションは、仮説の検証手段として用いられたりする。そして本当にその現象が起きているかどうか、シミュレーション結果を再現する実験を行い、仮説の実証を行う。
技術開発では、機能が本当に動作するのか確認する目的と現象をうまく理解できない時にそのヒントとしてデータを集める目的で行われる。今回のセミナーでは、その両者の事例を示し、シミュレーションを用いてどのように問題解決したのか、考え方のノウハウを公開する。
科学の研究で用いられるシミュレーションと異なり、そのモデル設定の段階から実務の問題解決のヒントとなるセミナーとなるよう現在資料を作成中である。
簡単な数値シミュレーション程度ならばエクセルを用いてでもできるが、このような場合でもエクセルでプログラミングする時間と、Pythonでプログラミングする時間を比較すると、後者の方が短くなる。
カラムに数値を埋め込みながらプログラミングを行うエクセルは意外と面倒であり、VisualBasicを起動したくなるが、Pythonをデスクトップに常設しておれば手軽にプログラミングできる。
当方は最近VisualC#をほとんど起動しなくなった。ずぼらなプログラムでも簡単に動いてしまうPythonは、技術者の問題解決スタイルを変えるかもしれない。
ちなみにPythonはスクリプト言語であり、昔のPIPSの仲間でBASICよりも簡単である。使いこなせば先端のオブジェクト指向プログラミングも可能となる優れモノだ。
セミナーでは、同一プログラムをPythonで記述した時に、オブジェクト指向プログラミングの導入レベルを変更した場合についても説明するので入門の域を超えた内容となるが、実例によるセミナーの構成なので容易に理解できると思っている。
この点が、ソフトウェアー会社の無料セミナーとは異なる点である。Pythonは、これまでのプログラミング言語に備わっていた表現の自由度は無い、あるいは可読性をあげるようプログラム記述に制限をくわえている、そのため習得が易しい、と言われている。
制約のある自由度の中でも実は表現の自由を発揮可能である。規程など組織には様々な制約が存在する組織活動であるが、その中で自由に成果をあげてきたノウハウの公開でもある。
(注1)シミュレーションと聞くと、天気予報で示される雲の動きのような大掛かりな汎用性の高いソフトウェアーを想像する人がいるが、実務で問題に遭遇した時に手っ取り早く行うシミュレーションでは、そこまでの汎用性を備えたソフトウェアーは不要である。汎用性の高いソフトウェアーほど開発に時間がかかる。目の前の問題を解くためにヒューリスティックな解を得る方法の一つとしてシミュレーションを位置付けたときに、どのように考えたらよいのかは既存の書籍に公開されていない。また、既存のソフトウェアー会社は、そのようなシミュレーションに事業としての関心がない。技術者が九九を覚えるように身に着けておくべきスキルである。
(注2)Lattice社のCには豊富なライブラリーが用意されており、当方は120万円ほどかけて独身寮に開発環境を構築している。なぜ自腹を切る必要があったのかは、この欄の「花王のパソコン革命」に理由を書いているが、40年以上前アカデミアよりもアカデミックな研究所でもデータサイエンスは胡散臭い手法に見られていた。胡散臭い手法に見られていてもその技法に未来を感じ、率先して技術開発に用いてきた。パーコレーションのシミュレーションもゴム会社で独身時代に開発したプログラムである。正直にこのソフトウェアーの開発背景を白状するとスタウファーのクラスター理論が難しくてわかりにくかったので理解を進めるために簡単なモデルでプログラムを作成した。このプログラミングそのものはSiCのスタッキングシミュレーションよりは簡単であった。ちなみにSiCスタッキングシミュレーションは無機材研留学時代にBASICで開発している。当時苦労した思い出から現在の情報環境を眺めると天国である。現代の若い技術者は恵まれている。ちなみに業務とは無関係のクラスター理論を勉強していたのは、新入社員の時に指導社員から教えられたパーコレーション転移について研究していたからである。1950年代に数学者により開発されたクラスター理論はその後も発展し、今回のウィルス感染にも応用されている。コロナウィルスの感染シミュレーションに何やら先端の香りを感じていた人は勉強不足である。材料技術者にとってパーコレーションは40年以上前から常識である、と指導された。常識だと言われても身の回りでは複合則ばかりが跋扈しており、当方が日本化学会で発表しても新鮮な研究として受け取られたのでびっくりした。その時指導社員にからかわれたことに気がついたが、当方が学んだ時には、数学者が研究を初めてから20年経過していた。FDを壊され転職するきっかけとなった電気粘性流体はウィンズローがその現象を発見してから40年経っていたという。40年経過していても当方が開発したような傾斜組成の粉体や、微粒子分散型粒子、コンデンサー分散型粒子が新発明となったように、材料分野の進歩は遅い。MZ80Kが登場してMS-DOSが普及するまでに6年ほどである。その後ウィンドウズ95が登場し、今日に至るまでコンピューターの進歩には目を見張る。Pythonは登場して20年以上経つが、オブジェクト指向やジェネリック、リストなどC#のようなコンパイラーに実装された機能が簡単に利用できるようバージョンアップされ、たんなるインタープリターなスクリプト言語ではない。数値計算では用途によって、少し精度に気を配る必要があるが、すでにBASIC言語で体験したレベルなのでBASICを知っている人は、すぐに使えるようになる言語である。逆にCをはじめとしたプログラマーに自由が解放されている言語の達人は、制限された自由のためにイラつくかもしれない。当方は郷に入ったら郷に従う性格なのでPython文化にすぐに慣れた。
カテゴリー : 一般
pagetop