(57)【要約】  コンピュータ（Ｃ）は、シミュレーションするシステムを表す活動オブジェクトによりマルチタスク・モードにおいてプログラミングを可能にし、実世界をシミュレーションするデバイス（Ｄ）を備える。デバイスは、活動オブジェクトの少なくともいくつかの組み合わせ展開についてのオブジェクト・シミュレーション・プログラムを有し、ｉ）現行状態を定義する空間データおよび／または時間データおよび／または特性データの少なくとも１つの項目をそれぞれが含む状態オブジェクト、ｉｉ）状態オブジェクトの少なくとも１つの定義と、前記状態オブジェクトの少なくとも１つに適用可能である少なくとも１つの関数とをそれぞれ含むとともに、シミュレーションされたシステム・トポロジを各時間点において定義する対話オブジェクト、およびｉｉｉ）対話オブジェクトを選択する際にシーケンスによって動作することが可能であり、指定された各状態オブジェクトの実際の状態に関数のそれぞれを適用して状態を新しい状態に向けて展開させるようにシーケンスごとに少なくとも部分的に無作為に変化する順序に従って、各シーケンスについて１回のみ各対話オブジェクトを起動するシミュレーション・マネジャを備えている。【選択図】図１
2007524162.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションされるシステムを表す起動オブジェクトによって、マルチタスク・モードにおいてプログラミングをサポートするように考案されたコンピュータ（Ｃ）に埋め込み可能な、実世界をシミュレーションするデバイス（Ｄ）であって、
前記起動オブジェクトの少なくともいくつかの共有展開をオブジェクトによってシミュレーションするソフトウエアを備え、
前記ソフトウエアが、少なくとも１つの空間および／または時間データ項目および／または少なくとも１つの特性データ項目を有し現行状態を定義する状態オブジェクトと、
前記状態オブジェクトの少なくとも１つの指定と、これらの状態オブジェクトの少なくとも１つに適用可能な少なくとも１つの関数の指定とをそれぞれ含みシミュレーションされたシステムのトポロジを各瞬間において定義する対話オブジェクトと、
対話オブジェクトを選択する際にシーケンスによって動作可能であるとともに、定義する各状態オブジェクトの現行状態に関数のそれぞれを適用してその状態を新しい現行状態に展開させるためにシーケンスごとに少なくとも部分的に無作為に変化する順序に従って、各シーケンスについて１回のみ各対話オブジェクトを起動可能であるシミュレーション・マネジャとを備えるデバイス。
【請求項２】
前記シミュレーション・ソフトウエアが、単一の状態オブジェクトの指定とこの状態オブジェクトに適用可能な少なくとも１つの関数とをそれぞれが含むことが可能な内部対話オブジェクトと、少なくとも２つの状態オブジェクトの指定とこれらの指定状態オブジェクトの特性データに適用可能な少なくとも１つの関数とをそれぞれが含むことが可能な相互対話オブジェクトとを備える、請求項１に記載のデバイス。
【請求項３】
前記シミュレーショ・ソフトウエアが、少なくとも１つの関連付けられた状態オブジェクトのうち少なくとも１つの特性データ項目に従って、前記関数の少なくともいくつかを修正するように考案されている、請求項１または２に記載のデバイス。
【請求項４】
前記シミュレーション・ソフトウエアが、少なくとも１つの関連付けられた状態オブジェクトのうち少なくとも１つの特性データ項目に従って、前記関数の少なくともいくつかを選択するように考案されることを特徴とする、請求項１〜３のいずれか一項に記載のデバイス。
【請求項５】
前記状態オブジェクトの少なくともいくつかが、示強変数を表す特性データ項目を備える、請求項１〜４のいずれか一項に記載のデバイス。
【請求項６】
前記対話オブジェクトの少なくともいくつかが、示量変数または示強変数を生じる関数を有する、請求項１〜５のいずれか一項に記載のデバイス。
【請求項７】
前記状態オブジェクトの少なくともいくつかが、状態サブオブジェクトを備える、請求項１〜６のいずれか一項に記載のデバイス。
【請求項８】
前記状態オブジェクトの少なくともいくつかが、前記状態サブオブジェクトについて動作する対話サブオブジェクトを備える、請求項７に記載のデバイス。
【請求項９】
前記シミュレーション・ソフトウエアが、状態オブジェクトおよび対話オブジェクトの構造を定義するオブジェクトのクラスを備え、前記状態オブジェクトおよび前記対話オブジェクトが、インスタンス化によってこれらのクラスから導出されている、請求項１〜８のいずれか一項に記載のデバイス。
【請求項１０】
前記シミュレーション・ソフトウエアが、選択周波数に従って動作する実時間モードと、周期的であるが周期ごとに変化する持続時間の間に動作する仮想時間モードとから選択された２つのモードの一方に従って動作可能なスケジュラを備える、請求項１〜９のいずれか一項に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実世界のコンピュータ・シミュレーションに関し、具体的には、物理的および／または化学的および／または生物学的現象のオブジェクトである媒体の時間的展開に関する。
【背景技術】
【０００２】
当業者なら認識しているように、多くのオブジェクト（有生もしくは無生）または物質が、それらが位置する媒体と相互作用する。たとえばボートなどの新しいオブジェクトを考案するとき、またはたとえばガンの発生などの反応機構を理解しようとするとき、特にモデルを使用した場合にはすべての相互作用または少なくとも主な相互作用を考慮に入れることは一般的に不可能である。その結果、最終的なオブジェクトが、予期される結果を達成しない、または、事前に行われた説明が、実世界に存在する複雑さおよび／または反応の組合わせのために現実に対応しないということがしばしば起きる。したがって、ボートが、乾ドックにおいて実施された試験を含めて、以前に実施された研究の主題であるときでも、海においてある条件に耐えることができないと判明することがある。
【０００３】
オブジェクトまたは産物の最終的な振舞いをより良好に予見するために、あるいは、反応機構をより良好に理解するために、多くの企業および研究者が、実世界をコンピュータ・シミュレーションするデバイスを使用している。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これらのシミュレーション・デバイスは、一般に、微分方程式の形態において物理的および／または化学的および／または生物学的現象をモデリングすることに基づいている。分析解が存在しない場合、コンピュータ・シミュレーションは、考慮されているシステムの現行状態からこのシステムのその後の状態に移行する反復方法に依拠しなくてはならない。各システムは、一般に、それぞれの展開が同期的に並行して計算されるサブシステムまたはループに分割される。その結果、瞬間Ｔ＋１におけるシステムの状態は、瞬間Ｔにおける各ループの状態で選択された現象を並行して適用することにより導出され、これがループ間において生じる可能性がある結果には注目していない。さらに、このシミュレーション技法は、動作中のシミュレーション・パラメータの修正も、異なるタイプのモデルの組合わせも好まず、これにより適用の範囲が狭まる。
【０００５】
したがって、本発明の目的は、この状況を改善することである。
【課題を解決するための手段】
【０００６】
実際には、実世界をシミュレーションするデバイスを提案し、そのデバイスは、シミュレーションされるシステムを表す起動オブジェクトによってマルチタスク・モードでプログラミングを支援可能であるコンピュータに埋め込むことができるものである。
【０００７】
このデバイスは、起動オブジェクトの少なくともいくつかの組合わせ展開をオブジェクトによってシミュレーションするソフトウエアを備えることを特徴とし、
空間および／または時間に関するデータの少なくとも１つの項目、および／または特性データの少なくとも１つの項目をそれぞれ含み、現行状態を定義する状態オブジェクトと、
状態オブジェクトの少なくとも１つの指定と、これらの状態オブジェクトの少なくとも１つに適用可能な少なくとも１つの関数とをそれぞれ含み、シミュレーションされているシステムのトポロジを各瞬間で定義する対話オブジェクトと、
対話オブジェクトを選択する際にシーケンスによって動作することができ、１つのシーケンスから次のシーケンスへ少なくとも部分的に無作為に変えた順番にしたがって各シーケンスで一度だけ各対話オブジェクトを起動することができ、その状態を新しい現行状態に向けて展開させるために指定する各状態オブジェクトの現行状態に関数のそれぞれを適用するようにしたシミュレーション・マネジャとを備える。
【０００８】
すなわち、本発明によるデバイスは、起動されたオブジェクトのそれぞれの状態が、他の起動オブジェクトのそれぞれの状態を考慮に入れて、各シーケンス内において次々に変化するために非同期的であるモードに従って、かつ、各起動オブジェクトを処理する順序が、シーケンスごとに無作為に変化するためにカオス的であるモードに従って動作する。シミュレーションを全体として再開することを必要とせずに、動作条件および／またはシミュレーションされるシステムを修正するために、任意の瞬間において（すなわち実時間において）、１つまたは複数のオブジェクトを起動または削除することが可能であり、これにより、真の対話特性がデバイスに与えられる。
【０００９】
シミュレーション・ソフトウエアは、単一状態オブジェクトの指定とこの状態オブジェクトに適用可能な少なくとも１つの関数とを含む内部対話オブジェクトと、少なくとも２つの状態オブジェクトの指定とこれらの指定された状態オブジェクトの特性データに適用可能な少なくとも１つの関数とを含む相互対話オブジェクトとをさらに備えることが可能である。
【００１０】
さらに、状態オブジェクトの少なくともいくつかは、示強変数を表す特性データ項目を備えることが可能であり、および／または、対話オブジェクトの少なくともいくつかは、示量変数もしくは示強変数を生じさせる関数を備えることが可能である。
【００１１】
少なくともいくつかが、状態サブオブジェクト、ならびにこれらの状態サブオブジェクトに対して動作する任意の対話サブオブジェクトを備える状態オブジェクトを使用することも可能である。
【００１２】
さらに、シミュレーション・ソフトウエアは、状態オブジェクトおよび対話オブジェクトの構造を定義するオブジェクトのクラスを備えることが可能である。それから、状態オブジェクトおよび対話オブジェクトは、インスタンス化（例証すること）によってこれらのクラスから導出される。
【００１３】
さらに、シミュレーション・ソフトウエアは、選択周波数に従って動作する実時間モードにより、または、周期的であるが周期ごとに変化する持続時間の間に動作する仮想時間モードにより動作することができるスケジュラを備えることが可能である。
【００１４】
本発明のさらなる特徴および利点は、以下の詳細な記述および添付の図面を考察することから明らかになるであろう。
【発明を実施するための最良の形態】
【００１５】
添付の図面は、本発明を補足するだけでなく、必要であればその定義に寄与することも可能である。
【００１６】
本発明は、実世界をシミュレーションするための対話式デバイスに関する。
【００１７】
図１において概略的かつ機能的に示されるように、本発明によるシミュレーション・デバイスＤは、具体的には文献「Ｓｙｓｔｅｍｅｓ  ｍｕｌｔｉ−ａｇｅｎｔｓ」（Ｍｕｌｔｉ−ａｇｅｎｔ  Ｓｙｓｔｍｓ）、４９９から５２４ページ、ＲＳＴＩ−ＴＳＩ、２１／２００２において記載されている環境ｏＲｉｓによって提供されるようなマルチタスク・モードにおいて機能するように適合されたオペレーティング・システムＯＳ、ならびに処理および計算手段ＣＰＵを備えるコンピュータＣに取り付け可能である。そのようなマルチタスク環境は、たとえばＣ＋＋言語またはジャバ言語において、起動オブジェクトによってプログラムするのに特によく適合されている。マルチタスク環境ｏＲｉｓは、図示されたデバイスＤのように、コンパイラ（本明細書では「オブジェクト・プログラミング・コンパイラ」と呼ばれる）に結合される。さらに、ｏＲｉｓ環境は、コンパイルによって効率を向上させるために、図示されたデバイスＤのように、Ｃ＋＋言語へのトランスレータ（本明細書では「オブジェクト・プログラミング・インタプリタ」と呼ばれる）に結合される。このインタプリタは、オンライン・コンパイラを形成するように適合することさえ可能であり、この場合、実行されるコードは、オンラインでコンパイルされ、かつ動的な方法で修正可能なコードである。ｏＲｉｓの展開を形成するそのようなマルチタスク環境は、ＡＲｅＶｉの名前で知られている。
【００１８】
デバイスＤは、起動オブジェクトの組合わせ展開をシミュレーションするソフトウエア（本明細書では「汎用シミュレータ」と呼ばれる）を備える。より具体的には、このシミュレーション・ソフトウエア（または汎用シミュレータ）は、２つのグループに分割することができるオブジェクトを備える。
【００１９】
第１グループ（「状態オブジェクト・グループ」と呼ばれる）は、「状態」として知られるオブジェクトを備え、それぞれが、１つまたは複数の空間データ（Ｘ，Ｙ，Ｚ）、および／または時間データ（Ｔ）、および／または１つまたは複数の特性データ（またはパラメータ、あるいはさらには属性）を含み、これらは、関連される状態オブジェクトの現行状態を定義する。
【００２０】
たった一つの起動状態オブジェクトが存在する最も簡単な場合には、対話オブジェクトは状態オブジェクトを指定しないかもしれず、その時に、それは意図的に指定される。
【００２１】
さらに、この最も簡単な場合では、状態オブジェクトの時空データ項目は、時間のみに対して低減可能である。
【００２２】
状態オブジェクトの少なくともいくつかは、示強変数を表す特性データ項目を備える。
【００２３】
化学反応装置に関する第１例では、状態オブジェクトは、非局在化したボリュームであってもよいし、特性データ項目は、化学物質の濃度であってもよい。
【００２４】
血管に関する第２例では、状態オブジェクトは、空間について局在化されたボリュームループとすることが可能であり、空間データ項目は、選択された基準点内の幾何形状の局在化とすることが可能であり、特性データ項目は、ループ内の化学濃度または温度とすることが可能である。
【００２５】
第２グループ（「対話オブジェクト・グループ」と名称付けられる）は、状態オブジェクトの少なくとも１つの指定と、これらの指定された状態オブジェクトの少なくとも１つに適用可能な少なくとも１つの関数とをそれぞれが含む「対話」（または活動）として知られるオブジェクトを備える。「関数」という用語は、結果を出すために関数が依拠してあること（定義されたあらゆること）に従ってコンピュータと共に取り入れられているがその数学的定義を取り上げられる必要はない。したがって、関数は、適用される方法、またはプロセス、または振舞いを指定することが可能である。
【００２６】
関数は、状態オブジェクトの特性データに依拠することがあることに留意することが重要である。
【００２７】
対話オブジェクトの少なくともいくつかは、示強変数または示量変数を表す特性データ項目を備える。
【００２８】
化学反応装置に関して上述された第１例では、対話オブジェクトは、状態オブジェクト「ボリューム」の特性データ「濃度」を扱う化学反応とすることが可能であり、化学反応は、特性データ「濃度」に依拠することがある「反応速度」パラメータによって特徴付けることが可能である。
【００２９】
血管に関して上述された第２例では、対話オブジェクトは、２つの隣接ループ間の温度の特性データを均衡させる「熱拡散装置」とすることが可能であり、熱拡散装置は、パラメータ「熱伝導率」によって特徴付けることが可能である。
【００３０】
したがって、各対話オブジェクト（または活動）は、関数によって少なくとも１つの状態オブジェクトに関連付けられ、状態オブジェクトは、複数の対話オブジェクト（または活動）に関連付けられることが可能である。関数は、他の状態オブジェクトおよび対話オブジェクトのパラメータを修正せずに、関数が関連付けられる状態オブジェクトのパラメータのみを修正する。さらに、状態オブジェクトの特徴により、対話オブジェクトに関連付けられた関数を選択する、またはその特徴を修正することが可能になることがある。さらに、関数は、関連付けられた状態オブジェクトのパラメータに従って、一時的または永続的に修正することが可能である。
【００３１】
以下からわかるように、対話オブジェクトは、状態オブジェクトを形成する「ソース」および「ターゲット」（おそらくは併合される）として知られる２つの媒体間での配向と一般的に明瞭にインタフェースを形成することが可能である。次いで、インタフェースは、２つの媒体間にリンクを作成し、２つの媒体は、所与の瞬間に連結され（強い同期性の概念）、それぞれのパラメータを修正する（たとえば、インタフェースは、ある率において分子拡散を生じさせる２つの媒体間の密度差とすることが可能である）。
【００３２】
任意のタイプのインタフェースが考慮可能であり、具体的には（たとえば、分子、熱、電流などの）輸送インタフェース、および（たとえば、化学反応または核反応の）緩和インタフェースがある。その結果、媒体は、空間的な広がりを有することができず、これは、任意の速度と同様に１つまたは複数のインタフェースによって誘起される。しかしながら、媒体に加えられる活動が、たとえば緩和現象として、媒体を修正することができ、これは、媒体における内部自己起動に対応する。
【００３３】
シミュレーション・ソフトウエア（または汎用シミュレータ）は、シミュレーション・マネジャをも備え、これは、状態オブジェクトおよび対話オブジェクトのグループに結合され、対話オブジェクトの前記グループのうち対話オブジェクトを選択する際に順次動作するために自分自身のシーケンサまたはスケジュラを創出するように考案される。より具体的には、シミュレーション・マネジャは、それが指定する各状態オブジェクトの現行状態にその関数のそれぞれを適用してその状態を新しい現行状態に展開させるために、シーケンスごとに少なくとも部分的に無作為に変化する順序に従って選択された各対話オブジェクトを、シミュレーション・ソフトウエアがその時のために創出したシーケンサまたはスケジュラの制御下において、各シーケンスに基づいて１回のみ起動する役割を担う。
【００３４】
すなわち、図２のフロー・チャートにおいて例として示されるように、デイバスＤが、選択されたオブジェクトによって表されるシステムの時空間的展開をシミュレーションするために、使用者は、まずステージ１０において、オブジェクトの第１グループおよび第２グループから、１つまたは複数の状態オブジェクトと、これまたはこれらの選択された状態オブジェクトに関係する１つまたは複数の対話オブジェクトとを選択する。これにより、シミュレーション・ソフトウエア内において各選択対話オブジェクトが「事前起動」される。
【００３５】
次いで、ステージ２０において、シミュレーション・マネジャは、カウンタの値ｎを１にすることによってシーケンス・カウンタを初期化し、状態オブジェクトおよび対話オブジェクトのリストを創出する。第１シーケンス（ｎ＝１）は、ステージ３０で開始され、シミュレーション・マネジャは、対話オブジェクトのリスト内から選択対話オブジェクトの１つを無作為に選択し、それを直ちに起動させる。次いで、選択され起動された対話オブジェクトの各関数は、それが関係付けられる状態オブジェクトのリストの各状態オブジェクトの現行状態に適用され、これにより、現行状態を修正することが可能である。選択された各状態オブジェクトにおける各関数の起動および適用（または実行）は、ステージ４０を形成する。
【００３６】
次いで、ステージ５０において、シミュレーション・マネジャは、現行シーケンスの対話オブジェクトのリストから、適用したばかりの対話オブジェクトを削除する。
【００３７】
次いで、ステージ６０において、シミュレーション・マネジャは、適用すべきあらゆる他の対話オブジェクトが現行シーケンスの対話オブジェクトのリストに残っているか否かを判定することを意図した試験を実施する。
【００３８】
現行シーケンスの対話オブジェクトのリストが空ではない場合、シミュレーション・マネジャは、残りの対話オブジェクトを無作為に選択することに進むために、ステージ３０に戻る。上記で指摘されたように、次いで、シミュレーション・マネジャは、この選択された新しい対話オブジェクトを起動し、先行対話オブジェクト（現行シーケンスにおいてもはや使用することはできない）の起動によっておそらくは修正されている各状態オブジェクトの現行状態にその関数のそれぞれを適用する。シミュレーション・マネジャは、これらの動作（選択起動、適用、および更新）を、選択対話オブジェクトが対話オブジェクトのリストに存在する数と同じ回数再現し、それにより、各対話オブジェクトの各関数は、それが関連付けられる起動状態オブジェクトに１回のみ適用される。これが完了した後、瞬間Ｔ＝０に対応する第１シーケンス（ｎ＝１）は終了する。
【００３９】
現行シーケンスの対話オブジェクトのリストが空であるとき、シミュレーション・マネジャは、ステージ７０において、シーケンス・カウンタの現行値ｎを１単位だけ増大させる。明らかに、このステージ７０は、実施されるシーケンスの数の試験を備える。実施されるシーケンスの数が提供される最大数に等しい場合、シミュレーション・マネジャは、シミュレーションを終了させる。一方、実施される少なくとも１つのシーケンスが依然として存在する場合、シミュレーション・マネジャは、瞬間Ｔ＋１、Ｔ＋２、・・・、Ｔ＋ｎに対応する新しいシーケンスを実施するために、ステージ２０に戻る。次いで、各新しいシーケンスについて上述された動作を反復する。
【００４０】
シミュレーションの持続時間、したがってシミュレーション・マネジャによって実施されるシーケンスの最大数は、該当する適用、または適用を考慮する使用者によって選択されるパラメータ化に依拠する。しかし、シミュレーションは、コンピュータＣのマン／マシンインタフェースによってシミュレーション・ソフトウエアに送信された停止コマンドにより、使用者によって任意の瞬間に中断することが可能である。使用者の要求時に中断されたシミュレーションは、その後再開できることに留意することが重要である。
【００４１】
シミュレーション・ソフトウエアの動作のこのような順次カオス・モードにより、使用者は、自分自身と媒体などのシミュレーション・オブジェクトとを対話させるために、あるいは、１つまたは複数の状態オブジェクトならびに／あるいは１つまたは複数の対話オブジェクトを自分の選択に追加するために、もしくは自分の選択から削除するために、「アバター」の形態で任意の瞬間にシミュレーションに介入することが可能である。使用者は、１つまたは複数の状態オブジェクトあるいは対話オブジェクトの定義（または構造）を少なくとも一部修正すると決定することも可能である。これにより、シミュレーション・ソフトウエアに高度な対話性が与えられる。
【００４２】
状態オブジェクトおよび対話オブジェクトが何を表すかを理解することを補助する３つの例が、以下において与えられる。記述を不必要に煩雑にすることを避けるために、例は、本発明をどのように適用することができるかを当業者が理解することを可能にするのに必要な程度に簡略化され低減される。
【００４３】
第１例は、化学反応装置内の反応速度のシミュレーションに関する。化学反応装置は、化学物質を備える媒体を表す状態オブジェクトであり、化学反応装置の内部においてＮ個の化学反応を行い、同数の対話オブジェクトを形成することができる。
【００４４】
化学反応装置の状態オブジェクトは、たとえば、反応装置に当初存在するｎ個の化学物質の瞬間Ｔにおける濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））を表す特性データに関連付けられる。この場合、これらの濃度は、化学反応装置の状態オブジェクトの状態（瞬間Ｔにおける）を定義し、その時間的展開をシミュレーションすることが望ましい。
【００４５】
各化学反応の対話オブジェクトは、たとえば、第１に反応速度Ｖ＝ｆ（Ｃ１，Ｃ２，・・・，Ｃｎ）、第２に反応に含まれる反応物質（Ｒ１，Ｒ２，・・・，Ｒｎ）、第３に反応の結果生じた反応産物（Ｐ１，Ｐ２，・・・，Ｐｍ）、第４にＴ＝０における反応物質の初期割合を定義する化学量論係数を表す特性データによって特徴付けられる。さらに、各化学反応の対話オブジェクトは、たとえば、反応作用を表す関数に関連付けられ、第１に、現行濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））が瞬間Ｔにおいて化学反応装置に存在する反応物質について読み取られ、第２に、化学反応装置に存在する反応物質の濃度に依拠する反応速度Ｖが計算され、第３に、反応物質および生成物の濃度が、反応速度Ｖにおける時間ｄＴ後に修正される。
【００４６】
この場合、各対話オブジェクトは、単一の状態オブジェクトに対してのみ作用し、それにより内部対話オブジェクトが形成される。
【００４７】
したがって、第１例では、使用者は、自分の状態オブジェクト（すなわち、自分の化学反応装置の初期組成）、および自分のＮ個の対話オブジェクト（すなわち、選択された組成によって暗示されるＮ個の化学反応）を選択する。したがって、シミュレーション・マネジャは、順次処理を開始することができる。
【００４８】
上記で指摘されたように、使用者は、Ｎ個の選択された対話オブジェクトのうち１つを無作為に選択することによって、第１シーケンスを開始する。この対話オブジェクトは、反応物質（第１シーケンスＴ＝０）の現行濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））によってここで定義される唯一の状態オブジェクトの現行状態にその関数（反応作用）を適用するために起動される。マネジャは、反応物質の濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））を更新する。次いで、マネジャは、Ｎ−１個の残りの対話オブジェクトのうち１つを無作為に選択して、それを起動し唯一の状態オブジェクトの新しい現行状態に関数を適用する。マネジャは、各対話オブジェクトの各関数が状態オブジェクトに対して１回のみ適用されるように、これらの動作をＮ回再現する。次いで、第１シーケンスは終了する。
【００４９】
次いで、マネジャは、必要であると判明する場合、上述された動作を反復することによって、瞬間Ｔ＋１に対応する新しいシーケンスを開始する。シミュレーションは、産物を生成する反応物質がもはや存在しないとき、または使用者がシミュレーション・ソフトウエアに対し停止コマンドをアドレス指定するとき、終了する。
【００５０】
第２例は、Ｋ個のループに分割された空間内におけるＭ個の拡散装置の分子拡散のシミュレーションに関する。
【００５１】
Ｋ個のループのそれぞれは、たとえば、位置データ項目（または３Ｄ基準点における幾何学的または地理学的位置）によって、および各ループ内に存在するｎ個の化学物質（Ｓ１，Ｓ２，・・・，Ｓｎ）の瞬間Ｔにおける濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））を表す特性データによって特徴付けられる。この場合、これらの濃度は、ループの状態（瞬間Ｔにおける）を定義する。
【００５２】
Ｍ個の拡散装置のそれぞれは、たとえば、第１に拡散された物質Ｓｉ、第２に物質Ｓｉの３次元拡散速度Ｖ＝（Ｖｘ，Ｖｙ，Ｖｚ）、第３にループ間で拡散が行われている２つのループを表す特性データ（またはパラメータ）によって特徴付けられる。さらに、各拡散装置（対話オブジェクト）は、たとえば、その作用を表す関数に関連付けられる。第１に、拡散される物質Ｓｉの濃度Ｃｉ（Ｔ）が２つのループのそれぞれについて読み取られ、第２に、拡散される量が読み取られ（たとえば、一般化されたフィックの法則を使用することによって）、第３に、拡散装置の濃度Ｓｉが、拡散速度Ｖにおける時間ｄＴ後に２つのループのそれぞれにおいて修正される。この場合、特性データは、関数（拡散装置の反応）の属性（またはパラメータ）を表す。
【００５３】
この場合、各対話オブジェクトは、２つの状態オブジェクトに対して作用し、それにより、相互対話オブジェクトを形成する。さらに、この場合、各対話オブジェクトは、少なくとも１つの状態オブジェクトを指定する少なくとも１つの関数に基づく従来の構造（または定義）、ならびに可能であれば、その関数に相互に関連付けられ特性データを形成するパラメータまたは規則またはさらには法則を有する。しかしながら、たとえば、構造が１つまたは複数の対話サブオブジェクトを備えるとき、構造は、より複雑になってもよい。さらに、この場合、ループは、３次元（３Ｄ）タイプであるが、ある応用分野では、２次元（２Ｄ）またはさらには１次元（１Ｄ）とすることが可能である。
【００５４】
したがって、この第２例では、使用者は、自分のＫ個の状態オブジェクト（すなわちＫ個の拡散ループ）、および自分のＭ個の対話オブジェクト（すなわちＭ個の拡散装置）を選択する。したがって、シミュレーション・マネジャは、順次処理を開始することができる。
【００５５】
シミュレーション・マネジャは、Ｍ個の選択対話オブジェクトのうち１つを無作為に選択することによって、第１シーケンスを開始する。この対話オブジェクトは、それ自自身の属性を考慮に入れて、（第１シーケンスの時間Ｔ＝０において）異なるループ内の化学物質（Ｓ１，Ｓ２，・・・，Ｓｎ）の現行濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））によってこの場合は定義されるＫ個の状態オブジェクト（ループ）の現行状態に関数（拡散装置の反応）を適用するために起動される。マネジャは、Ｋ個のループのそれぞれにおいて物質（Ｓ１，Ｓ２，・・・，Ｓｎ）の濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））を更新する。次いで、マネジャは、Ｎ−１個の残りの対話オブジェクトのうち１つを無作為に選択して、それを起動し、各状態オブジェクトの新しい現行状態にその関数を適用する。マネジャは、各対話オブジェクトの各関数が各状態オブジェクトに１回のみ適用されるように、これらの動作をＮ回再現する。次いで、第1シーケンスは終了する。
【００５６】
次いで、マネジャは、必要であると判明する場合、上述された動作を反復することによって、瞬間Ｔ＋１に対応する新しいシーケンスを開始する。化学物質（Ｓ１，Ｓ２，・・・，Ｓｎ）の濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））がＫ個のループのそれぞれにおいてそれぞれ同一であるとき、または使用者がシミュレーション・ソフトウエアに停止コマンドをアドレス指定する場合、シミュレーションは終了する。
【００５７】
第３例では、１つの血管内の反応速度および分子拡散の展開をシミュレーションするように、２つの先行例を組み合わせることができる。
【００５８】
たとえば、３Ｄ空間に位置するＮ個の化学反応装置を形成するＫ個の状態オブジェクトが選択される。各化学反応装置は、たとえば、位置データ項目（または３Ｄ基準点における地理学的位置）、およびループ内に存在するｎ個の化学物質（Ｓ１，Ｓ２，・・・，Ｓｎ）の瞬間Ｔにおける濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））を表す特性データに関連付けられる。この場合、これらの濃度は、ループの状態（瞬間Ｔにおける）を定義する。
【００５９】
さらに、Ｎ個の化学反応およびＭ個の拡散装置を形成するＮ＋Ｍ個の対話オブジェクトが選択される。
【００６０】
各化学反応は、たとえば、第１に反応速度Ｖ＝ｆ（Ｃ１，Ｃ２，・・・，Ｃｎ）、第２にＴ＝０における反応（Ｒ１，Ｒ２，・・・，Ｒｎ）に含まれる反応物質、第３に反応の結果生じる反応産物（Ｐ１，Ｐ２，・・・，Ｐｍ）、第４にＴ＝０における反応物質の初期割合を定義する化学量論係数を表す特性データに関連付けられる。各化学反応は、たとえば、反応作用を表す関数にも関連付けられる。第１に、瞬間Ｔにおいて化学反応装置に存在する反応物質の現行濃度（Ｃ１（Ｔ），Ｃ２（Ｔ），・・・，Ｃｎ（Ｔ））が読み取られ、第２に、化学反応装置に存在する反応物質の濃度に依拠する反応速度Ｖが計算され、第３に、反応物質および産物の濃度が、反応速度Ｖにおける時間ｄＴ後に修正される。
【００６１】
各拡散装置は、たとえば、第１に拡散された物質Ｓｉ、第２に物質Ｓｉの３次元拡散速度Ｖ＝（Ｖｘ，Ｖｙ，Ｖｚ）、第３にループ間において拡散が行われている２つのループを表す特性データに関連付けられる。各拡散装置は、たとえば、その反応を表す関数にも関連付けられる。第１に、２つのループのそれぞれにおいて拡散される物質Ｓｉの濃度Ｃｉ（Ｔ）が読み取られ、第２に、拡散される量が計算され（たとえば、一般化されたフィックの法則を使用することによって）、第３に、２つのループのそれぞれにおける拡散装置Ｓｉの濃度が、拡散速度Ｖにおける時間ｄＴ後に修正される。この場合、特性データは、関数（拡散装置の反応）の属性（またはパラメータ）を表す。
【００６２】
したがって、デバイスの関数は、先行例において呈示された関数と同一であるが、今回は、異なる物質の濃度は、化学反応に従うだけでなく、化学反応が行われるループにも従って展開する。その結果、各シーケンスは、Ｎ＋Ｍ個の無作為抽出を備え、それによってＮ＋Ｍ個の対話オブジェクトの関数をＫ個の化学反応装置に連続的に適用することが可能になる。
【００６３】
明らかに、本発明は、例示として上記において呈示された応用例よりはるかに複雑な応用例に適用することができる。また、ソフトウエアが単一の内部対話オブジェクトによって単一の起動状態オブジェクトにのみ適用されるより簡単な応用例にも適用することができる。さらに、ある応用例では、状態オブジェクトの少なくとも１つが、１つまたは複数の対話サブオブジェクト（対話オブジェクトの従来の構造を有する）におそらくは関連付けられた１つまたは複数の状態サブオブジェクト（状態オブジェクトの従来の構造を有する）に基づく複雑な構造（または定義）を有することが可能である。
【００６４】
ここで、コードに関して、「媒体」より具体的には「媒体クラス」として知られる状態オブジェクトと、「インタフェース」より具体的には「インタフェース・クラス」として知られる対話オブジェクトとを使用する本発明の応用例の一例を記述するために、付録Ｘ１の表を参照する。この応用例の目的は、色表示を媒体内の密度表示に割り付けることである。
【００６５】
コードは、表の第２列においてのみ出現し、表の第１列は、コードの一部を形成しない英数字基準点のみを備える。
【００６６】
付録Ｘ１は、Ａにおいて、「＃含む（＃ｉｎｃｌｕｄｅ）」の宣言で開始され、これは、当業者には周知であるので詳細に説明する必要はない。次いで、Ｂにおいて、インタフェース（ｉｎｔｅｒｆａｃｅ）・クラスが宣言され、Ｃにおいて詳細に処理される媒体（ｍｅｄｉｕｍ）クラスに関連付けられる。クラス見出しＣ１の後、媒体（ｍｅｄｉｕｍ）クラスは、特定の方法Ｃ２０からＣ３０の宣言を理解し、次いでＣ４において関数（または方法）「起動（ａｃｔｉｖａｔｅ）」を理解し、最後に、Ｃ５において述べられる保護変数を理解する。付録Ｘ１において、方法（または関数）の宣言は、タイプ／パラメータの定義を取り除くことによって低減されるが、その理由は、当業者なら各方法の詳細なステートメントにおいてこれらを見つけるからである。
【００６７】
Ｃ５において示される保護変数の中で、
Ｓｔｌベクトル（標準的なＣ＋＋クラス）として知られる特定のタイプの表内においてアセンブルされる「インタフェース（ｉｎｔｅｒｆａｃｅ）」と、
ＡｒＲｅｆタイプ（ＡＲｅＶｉ環境に属するクラス）である変数「＿ｉｔ」とに留意することが可能である。
【００６８】
次いで、インタフェース・クラスの詳細が来る（一様性のために、依然としてＢと指定されている）。これは、定義方法および構築方法を備え、特定の方法Ｂ２０からＢ３１の宣言および方法起動（ａｃｔｉｖａｔｅ）Ｂ４が続く。最後に、保護変数Ｂ５が定義され、再び、
媒体のタイプである「＿ｓｏｕｒｃｅ」と、
やはり媒体のタイプである「＿ｔａｒｇｅｔ」とに特に留意することが可能である。
【００６９】
次いで、媒体（ｍｅｄｉｕｍ）クラスの方法の定義が、より詳細に出現する（Ｃ１１〜Ｃ１４およびＣ２０〜Ｃ３０において）。見出しＣ１１からＣ１３は、媒体（ｍｅｄｉｕｍ）クラスのコンストラクタを定義する。Ｃ１１において、媒体（ｍｅｄｉｕｍ）クラスの保護変数は初期化される。
【００７０】
Ｃ１２において、「Ｖｒｍｌ」として知られる３Ｄ形状の定義が出現する。Ｖｒｍｌコードにより、オンラインでの３Ｄ表示が可能になる。この形態は、たとえばサイトｈｔｔｐ：／／ｗｗｗ．ｖｒｍｌ．ｏｒｇ．において記載されているＶｒｍｌシンタックスによる文字鎖によって定義される。次いで、この形状は表示され、色を付けられる。
【００７１】
見出しＣ１３は、見出しＣ１４の方法起動（ａｃｔｉｖａｔｅ）をトリガすることを意図した活動を媒体（ｍｅｄｉｕｍ）に関連付ける。
【００７２】
見出しＣ１４は、媒体（ｍｅｄｉｕｍ）の状態オブジェクトのデストロイヤである。
【００７３】
見出しＣ２２からＣ３０は包括的に、媒体（ｍｅｄｉｕｍ）クラスについて同じ識別下においてすでに述べられている特定の方法を構築する詳細を与える。
【００７４】
媒体（ｍｅｄｉｕｍ）に適用される起動（ａｃｉｔｖａｔｅ）方法は、Ｃ４において定義される。これにより、色表示を密度表示に相互に関連付けること、より具体的には無作為描画によって色を変化させることが可能になる。すなわち、媒体（ｍｅｄｉｕｍ）の属の性赤、緑、および青は、起動（ａｃｉｔｖａｔｅ）が適用される（または起動される）たびに修正される。
【００７５】
次いで、Ｂ１０〜Ｂ１１においてコンストラクタの定義を有するインタフェース（ｉｎｔｅｒｆａｃｅ）・クラスの定義が来る。より具体的には、Ｂ１０において、インタフェース・クラスの保護変数は初期化され、一方、Ｂ１１において、インタフェースは、Ｂ４において定義された起動方法を適用することを意図した活動と関連付けられる。
【００７６】
見出しＢ１２は、インタフェース（ｉｎｔｅｒｆａｃｅ）の対話オブジェクトのデストロイヤである。
【００７７】
次いで、すでに述べられている特定の方法Ｂ２０からＢ３１の詳細が来る。
【００７８】
インタフェース（ｉｎｔｅｒｆａｃｅ）の起動（ａｃｔｉｖａｔｅ）方法は、Ｂ４において定義される。これは、２つの密度間の距離を伝播するために、少なくともこの距離が顕著な場合、ソース（ｓｏｕｒｃｅ）媒体（ｍｅｄｉｕｍ）密度およびターゲット（ｔａｒｇｅｔ）媒体（ｍｅｄｉｕｍ）密度に従って拡散率を計算することを含む。「デルタ」と呼ばれる距離は、ターゲット（ｔａｒｇｅｔ）媒体（ｍｅｄｉｕｍ）ｒｈｏｔの密度により減少されたソース媒体ｒｈｏｓの密度に対しての拡散率関数の適用として計算される。このために、ソース（ｓｏｕｒｃｅ）媒体（ｍｅｄｉｕｍ）およびターゲット（ｔａｒｇｅｔ）媒体（ｍｅｄｉｕｍ）にそれぞれの密度の値が何であるかをまず要求する。次いで、色の差の絶対値が計算される。この絶対値が選択値（この場合は０．０１に等しい）より大きい場合、最低密度は増大され、最も強い密度は減少される。次いで、それらの値は、選択された割合で更新される。
【００７９】
見出しＢ６０〜Ｂ６３により、この応用例によって使用される３Ｄ表示ウィンドウのタイプを定義することが可能になる。
【００８０】
次いで、スケジュラまたはシーケンサである本発明の重要なエレメントが来る。見出しＳ１０、Ｓ２０、Ｓ２１、Ｓ２２、Ｓ３０、Ｓ３１、およびＳ４１により、シミュレーションを初期化することが可能になる。
【００８１】
実際には、見出しＳ１０は、スケジュラを仮想時間において初期化する。すなわち、その動作は、実時間に従うことを強制されないが、反復のそれぞれは、論理的にではあるが物理的にではなく、１ミリ秒（１ｍｓ）の持続時間を表す。明らかに、スケジュラは、実時間において動作することもできる。この場合、反復のそれぞれは、選択された期間の間で物理的に続く。
【００８２】
見出しＳ２０により、コマンド・ラインの引数によって媒体の次元を初期化することが可能になる。見出しＳ２１により、媒体を初期化することが可能になる。見出しＳ２２により、インタフェースを創出して初期化することが可能になる。
【００８３】
見出しＳ３１およびＳ３２は、補助表示を実施する。この場合、これは、「誤差ストリーム」として知られるスクリーンを有する特別な通信経路によって実施される。
【００８４】
見出しＳ４１は、選択された透視条件において、処理されるシーンを表示する。
【００８５】
最後に、見出しＳ５０は、主要プログラム・メイン(ｍａｉｎ)であり、システムの動作を初期化する。より具体的には、このプログラムは、まず３Ｄシステムを創出し、次いで３Ｄシステムを呼び出して見出しＳ１０において与えられた方法を起動し、これにより、スケジュラ（またはシーケンサ）、媒体、およびインタフェースを創出する。
【００８６】
明らかに、上記において呈示されたクラスの構造は、付録Ｘ２において概略的に示される方式で再開することができる。
【００８７】
付録Ｘ２の表示と付録Ｘ１の詳細なコードとの間の移行は、一例が与えられているので、当業者なら到達可能であると考えられる。
【００８８】
本発明は、多くの技術分野と、具体的には化学、薬学、物理学、航空学、アーキテクチャ、特に海軍の応用（たとえば、乾ドックの代替としてまたはその補足として、ボートまたは沖合プラットフォームの振舞いの研究について）、医学、特にある病気（たとえば、ガン）または反応機構（たとえば、インシュリンの活性化）の進展および処置の研究の範囲内にある医学、人間工学、特に身体障害者に特別に適合された装置を実現するための人間工学、および、道路交通の分野とにおいて、多くの応用を有する。
【００８９】
本発明は、例示としてのみ上述されたシミュレーション・デバイスの実施形態に限定されるものではなく、当業者なら以下の請求項の範囲内において考慮することができるあらゆる変更を含むものである。
【付録１】
【００９０】
2007524162.tif 000003
【００９１】
2007524162.tif 000004
【００９２】
2007524162.tif 000005
【００９３】
2007524162.tif 000006
【００９４】
2007524162.tif 000007
【００９５】
2007524162.tif 000008
【００９６】
2007524162.tif 000009
【００９７】
2007524162.tif 000010
【００９８】
2007524162.tif 000011
【００９９】
2007524162.tif 000012
【０１００】
2007524162.tif 000013
【０１０１】
2007524162.tif 000014
【０１０２】
2007524162.tif 000015
【付録２】
【０１０３】
2007524162.tif 000016
【図面の簡単な説明】
【０１０４】
【図１】本発明によるシミュレーション・デバイスの一実施形態を装備したコンピュータを機能ブロックの形態で非常に概略的に示す図である。
【図２】本発明によるデバイスの動作の一例を詳述するフロー・チャートである。
【図１】
2007524162.tif 000017
【図２】
2007524162.tif 000018
【国際調査報告】
2007524162.tif 000019
2007524162.tif 000020
2007524162.tif 000021
2007524162.tif 000022
2007524162.tif 000023
2007524162.tif 000024