プロセスは未定義と定義するのがよい。仮説・検証(67)
からの派生記事です。
C言語国際規格では、C言語標準が、CPUの発展を妨げないように、処理を定義しないことを定義する未定義、どの規定のうちの一つを採用しなければいけないかを定義しないことを定義する未規定、処理の内容によって最適な定義を可能にする処理系定義の三つと、言語・通貨単位・日時表示など地域依存の定義の合計四つを区分している。
人が行う作業と、計算機が行う処理を合わせたものも、改善を妨げないように、作業方法・処理手順を定義しないことを定義する未定義、作業・処理の方法・手順の候補をいくつか事前に仕様として定義していおいて実際にどれを採用するかは事前に定義しないことを定義する未規定と、作業・処理の最適な定義を可能にする処理系定義の三つと、言語・通貨単位・日時表示など地域依存定義の四つを区分してみる。
未定義(undefined)
例えば、作業・処理の最終的な目的、目標が決まっていない段階では、やるべき大事なことのうち、具体的な内容は、未定義として定義しておくとよい。
定義するだろう(to be defined)ではなく、未定義(undefined)がよい。
いつ定義しなければいけないかが分かっていない段階で、定義したことは、経験上半分から8割くらいが無駄な作業だったりする。
いくつかの作業・処理模型を作って、事前にいろいろ模擬試験を行い、どういう作業・処理分担だと、どういう危険性があるかを検討するのはよいことだ。
この検討がないと、未規定と定義することは困難だから。
未規定(unspecified)
複数の作業・処理模型と、多数の作業・処理分担境界を、事前に模擬試験を行い、どういう作業・処理分担であると、どういう危険性があるかを検討して、評価関数をいくつか設定しておいて、どの評価関数が重要であれば、どの作業・処理模型のどの分担境界にするかの候補をいくつか用意しておくことがある。
用意した候補を、選択する可能性が例えば、90-99%以上になる場合には、それらの候補から選ぶことを事前に定義してもよい。これを未規定という。
例えば、いくつかの候補を考えてみる。
時間に厳しい系では、C言語またはC言語を生成する言語で記述するか、HDLを生成する言語で記述し、場合によってはC言語・C++を生成できるような言語で記述するという候補を出し、簡単な系、少し複雑な系、いくつかの有用な枠組みを生成できる系などを用意し、比較試験を行っておく。
空間に厳しい系でも、言語またはC言語を生成する言語で記述するか、HDLを生成する言語で記述し、場合によってはC言語・C++を生成できるような言語で記述するという候補を出し、簡単な系、少し複雑な系、いくつかの有用な枠組みを生成できる系などを用意し、比較試験を行っておく。
時間・空間は余裕があり、論理的正しさ、影響の公平性など、時間・空間とは異なる評価関数では、その評価関数を計算しやすい論理回路、プログラミング言語の候補をいくつか用意し、簡単な系、少し複雑な系、いくつかの有用な枠組みを生成できる系などを用意し、比較試験を行っておく。
処理系定義(operation defined)
どういう作業・処理を行う必要があるかが、明確な系では、その作業・処理が決まった状態で、具体的な作業・処理の順番、手順などを定める。
いくつかの必要かもしれない作業・処理を仮定し、どの作業、処理をどの順番で行うと、どの評価関数が最適化できるかの模型をいくつか作っておくとよい。
局所定義(locale)
自然言語(natural language)
自然言語は一つでなければいけないことはない。ただし、複数の自然言語を用いる場合は、中間言語として、英語、中国語、スペイン語、アラビア語のどの言語を用いるか、複数の処理系があるとよい。系が、いつ英語文化圏を排除したり、中国語文化圏を排除したり、あるいは複数の言語圏の間で戦争が始まった場合には、それ以外の言語を中間言語として用いた方がよいかもしれない。
通貨単位(currency)
通貨単位は一つでなければいけないことはない。ただし、複数の通貨単位を用いる場合には、その複数の通貨単位の変換の仕組みを、実際に利用できる銀行、為替業などの仕組みを模擬できるとよい。あるいは、仮想通貨を定義し、内部的にはすべて仮想通貨で計算し、必要に応じて、個別の通過に変換する仕組みを働かせることでもよい。
運営主体が、仮想通貨と個別の通過の変換の仕組みに対する支配力がどのように変化する可能性があるかのいくつかの筋書きを用意し、どういう危険性があるかを事前に評価しているとよい。
日時表示(time and date)
時刻起点を、グリニッジ時とするか、それ以外のどこかの地点とするかの選択がある。
また、時刻表示を、どの国の標準にあわせるかの選択がある。
起点・表示のどちらも、複数の設定が可能にしておいて実行時に選択するか、複数の設定を入力可能にしておいてコンパイル時に決定するかなどの方式もいくつか考案可能である。
実行時に選択可能な場合には、どういうデータのいつの記録は、どの方式で記録したものかがわかるようになっていて、それらの変換方式の試験を行っているとよいかもしれない。
時間・空間以外の評価関数の要素
時間・空間以外の評価関数の要素の候補を列記する。
消費エネルギー
消費エネルギーは、固定的な上限を規定するのか、上記の評価関数群のうちのどれかと連動するようにするかなどを検討しているとよい。
電源(power)
どれだけの消費エネルギーを想定するかで、準備する電源の種類と場所と、配電方式などを検討しているとよい。電池駆動の部分は、どういう電池を使うのか。発電する場合には、どういう発電方法を、どのように分布させるかなど。
通信手段(communication method)
有線・無線の通信手段をどのように配置するか。
計算資源(computer resource)
どういう種類のどういう計算機を、地理的にどの場所に、どういうふうに配置するか。
人手(human power)
どういう能力の人を、どの拠点に配置するか。あるいは、どの拠点の所属にして、実際の場所は分散させるかなど。
対応できる自然言語の種類、ウログラミング言語の種類、HDLなどそれ以外の言語の種類と程度をはじめ、実績の横顔(profile)があるとよい。
資金(fund)
手元資金と、資金を集める仕組と、資金を移動させる仕組みを、複数用意し、いくつかの筋書きに基づいて、危険性を計算しているとよい。
保守(maintenance)
計算機資源および通信資源の保守をどのようにするか、いくつかの候補を用意し、多数の筋書きに基づいて、危険性を計算しているとよい。
保守には、物の交換による場合の物の生産と配送の仕組み、人手による場合に人の担当替えの仕組みと移動手段の確保など、データの分散管理などに伴うデータの予備の作成と移動など、ここまでの各要素に対して、必要十分な模擬試験を行っているとよい。
方向性(direction)
人の作業の模型は、これまでに、社会学、経営学、経済学、人口論、行動論など、幅広い分野で試作、検討してきている。これらの模型のほとんどが、技術予測において、現在の主要項目と、この先10年の技術変化に対応できるような項目の設計に必ずしも成功しているとは限らない。
未公表の組織内部の模型では、自組織がかかわりそうな項目については、最善の場合から、最悪の場合まで、いろいろな組み合わせで模擬試験を行なっているかもしれない。
これらの模型で、最先端にいるから成功する場合、市場を支配しているから成功する場合、二番手であることに甘んじるから成功する場合、市場の支配力を二割以内にするから成功する場合などの方向性がある。
指示命令系統または合意形成
方向性を変更する場合に、指示命令系統または合意形成の仕組みが、どれくらいの時間を要するかは、競合相手がいる場合には、致命的になるかもしれない。
あるいは、慌てすぎたために、失速する可能性もあるかもしれない。
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
文書履歴(document history)
ver. 0.01 初稿 20220116
ver. 0.02 ありがとう追記 20230818
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.