(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-29
(45)【発行日】2024-09-06
(54)【発明の名称】化学反応器のための制御設定の生成
(51)【国際特許分類】
G16C 20/70 20190101AFI20240830BHJP
【FI】
G16C20/70
(21)【出願番号】P 2021574212
(86)(22)【出願日】2020-05-07
(86)【国際出願番号】 IB2020054320
(87)【国際公開番号】W WO2020254884
(87)【国際公開日】2020-12-24
【審査請求日】2022-10-21
(32)【優先日】2019-06-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ズバレフ、ドミトリー
(72)【発明者】
【氏名】ピウノバ、ヴィクトリア
(72)【発明者】
【氏名】パーク、ナタニエル
(72)【発明者】
【氏名】ヘドリック、ジェームス
【審査官】橋沼 和樹
(56)【参考文献】
【文献】特開平09-128009(JP,A)
【文献】中国特許出願公開第101414158(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G16C 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
システムであって、
コンピュータ実行可能コンポーネントを記憶するメモリと、
前記メモリに動作可能に結合されたプロセッサであって、前記メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備え、
前記コンピュータ実行可能コンポーネントは、
過去の化学反応器動作に関するトレーニング・データに基づいて生成機械学習モデルを構築するモデル・コンポーネント
であって、前記生成機械学習モデル
により、
目標とする特性を備えたポリマーの実験的な発見のための推奨される化学反応器制御設定を生成する、
前記モデル・コンポーネントと、
前記推奨される化学反応器制御設定に従って、ポリマーを合成するように化学反応器を動作させる反応器制御コンポーネントと、
前記化学反応器によって合成された前記ポリマーの特性を測定する、測定コンポーネントと、
前記測定された特性が、前記目標とする特性の定義範囲内かどうかを判定する、検証コンポーネントと
前記検証コンポーネントによってなされた判定に基づいて、前記トレーニング・データを更新する、更新コンポーネントと
を含む、システム。
【請求項2】
前記生成機械学習モデルは、エンコーダとデコーダのパラメータについての損失関数を最適化する、勾配降下アルゴリズムを介してトレーニングされた、変分オートエンコーダ・モデルである、請求項1に記載のシステム。
【請求項3】
前記生成機械学習モデルは、潜在スペースから潜在変数をサンプリングして、前記デコーダを介して前記潜在変数をデコードすることによって、前記推奨される化学反応器制御設定を生成する、請求項2に記載のシステム。
【請求項4】
前記生成機械学習モデルは、生成ネットワークおよび識別ネットワークを備える、敵対的生成ネットワーク・モデルである、請求項1に記載のシステム。
【請求項5】
前記生成ネットワークは、ノイズのベクトルをアップサンプリングして新規のデータを生成し、前記識別ネットワークは、前記トレーニング・データおよび前記新規のデータを分析する二項分類器である、請求項4に記載のシステム。
【請求項6】
前記生成ネットワークは、前記識別ネットワークが前記トレーニング・データと前記新規のデータを見分けることができないことに基づいて、トレーニング済み状態を達成し、前記推奨される化学反応器制御設定は、前記生成ネットワークがトレーニング済みの状態にある間に、前記生成ネットワークによって生成される前記新規のデータ内部に含まれる、請求項5に記載のシステム。
【請求項7】
前記トレーニング・データは、前記過去の化学反応器動作中に化学反応器によって実装された制御設定を含む、請求項1ないし6のいずれか1項に記載のシステム。
【請求項8】
コンピュータに実装された方法であって、前記コンピュータ
のプロセッサに動作可能に結合されたシステムによって、
過去の化学反応器動作に関するトレーニング・データに基づいて生成機械学習モデルを生成し、前記生成機械学習モデルにより、目標とする特性を備えたポリマーの実験的発見のための推奨される化学反応器制御設定を生成することと、
前記推奨される化学反応器制御設定に従って合成されたポリマーの特性を測定することと、
前記測定された特性が、前記目標とする特性の定義範囲内であるかどうかを判定することと、
前記判定に基づき、前記トレーニング・データを更新することと
を含む、方法。
【請求項9】
前記生成機械学習モデルは変分オートエンコーダ・モデルであり、
前記方法は、
エンコーダとデコーダのパラメータについての損失関数を最適化する勾配降下アルゴリズムを使用して、前記生成機械学習モデルを前記システムによってトレーニングすることをさらに含む、請求項8に記載の方法。
【請求項10】
前記生成機械学習モデルは、潜在スペースから潜在変数をサンプリングして、前記デコーダを介して前記潜在変数をデコードすることによって、前記推奨される化学反応器制御設定を生成する、請求項9に記載の方法。
【請求項11】
前記生成機械学習モデルは、生成ネットワークおよび識別ネットワークを含む、敵対的生成ネットワーク・モデルである、請求項8に記載の方法。
【請求項12】
ノイズのベクトルをアップサンプリングして新規のデータを生成し、前記新規のデータと共に、前記トレーニング・データを分析して、前記トレーニング・データと前記新規のデータの間のカテゴリの違いを見分けることによって、前記敵対的生成ネットワーク・モデルを前記システムによってトレーニングすることをさらに含む、請求項11に記載の方法。
【請求項13】
前記トレーニング・データは、前記過去の化学反応器動作中
に化学反応器によって実装された制御設定を含む、請求項8ないし12のいずれか1項に記載の
方法。
【請求項14】
コンピュータに、請求項8ないし13のいずれか1項に記載の方法の各手順を実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1つまたは複数の化学反応器のための1つまたは複数の制御設定の生成、より詳細には、1つもしくは複数の推奨される化学反応器制御設定(chemical reactor control setting)を生成するため、または1つもしくは複数の化学反応器を自律的に制御するため、あるいはその両方を行うための1つまたは複数の生成機械学習モデル(generative machine learning model)の使用に関する。
【発明の概要】
【0002】
以下に、本発明の1つまたは複数の実施形態の基本的な理解を提供するための要約を提示する。この要約は、鍵となる要素または決定的要素を識別すること、または特定の実施形態のあらゆる範囲、またはあらゆる特許請求の範囲を描写することを意図するものではない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、簡略化された形式で概念を提示することである。本明細書に記載の1つまたは複数の実施形態では、1つまたは複数の推奨される化学反応器制御設定を生成するための1つまたは複数の生成機械学習モデルの使用を容易にすることができる、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せについて説明する。
【0003】
本発明の一実施形態によれば、システムが提供される。このシステムは、コンピュータ実行可能コンポーネントを記憶できる、メモリを備えることができる。このシステムはまた、メモリに動作可能に結合されたプロセッサであって、メモリに記憶されたコンピュータ実行可能コンポーネントを実行することができるプロセッサを備えることができる。コンピュータ実行可能コンポーネントは、過去の化学反応器動作に関するトレーニング・データに基づいて生成機械学習モデルを構築できる、モデル・コンポーネントを備えることができる。生成機械学習モデルは、ポリマーの実験的発見のための、推奨される化学反応器制御設定を生成できる。
【0004】
一実施形態によれば、コンピュータ実装方法が提供される。このコンピュータ実装方法には、プロセッサに動作可能に結合されたシステムによって、過去の化学反応器動作に関するトレーニング・データに基づいて生成機械学習モデルを生成することを含めることができる。生成機械学習モデルは、ポリマーの実験的発見のための推奨される化学反応器制御設定を生成できる。
【0005】
本発明の一実施形態によれば、化学反応器を制御するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備えることができる。プログラム命令は、プロセッサに動作可能に結合されたシステムによって、過去の化学反応器動作に関するトレーニング・データに基づいて、生成機械学習モデルをプロセッサに生成させるように、プロセッサによって実行可能である。生成機械学習モデルは、ポリマーの実験的発見のための推奨される化学反応器制御設定を生成できる。
【図面の簡単な説明】
【0006】
【
図1】本発明の実施形態による、1つまたは複数の過去の化学反応器動作に関する動作データを収集することのできる、例示的なシステムのブロック図である。
【
図2】本発明の実施形態による、1種または複数種のポリマーの実験的発見のための、1つまたは複数の推奨される化学反応器制御設定を判定する1つまたは複数の生成機械学習モデルを構築することのできる、例示的なシステムのブロック図である。
【
図3】本発明の実施形態による、1種または複数種のポリマーの実験的発見のための、1つまたは複数の推奨される化学反応器制御設定を判定するために1つまたは複数のシステムによって生成することのできる、例示的な変分オートエンコーダ・モデル(variational autoencoder model)の図である。
【
図4】本発明の実施形態による、1種または複数種のポリマーの実験的発見のための、1つまたは複数の推奨される化学反応器制御設定を判定するために、1つまたは複数のシステムによって生成することのできる、例示的な敵対的ゲイン・ネットワーク・モデル(gain adversarial network model)の図である。
【
図5】本発明の実施形態による、1つまたは複数の推奨される化学反応器制御設定に基づいて1つまたは複数の化学反応器を動作させることができる、例示的なシステムのブロック図である。
【
図6】本発明の実施形態による、生成機械学習モデルによって生成される1つまたは複数の推奨される化学反応器制御設定によって指示されるように、1つまたは複数の化学反応器によって合成される1種または複数種のポリマーの1つまたは複数の特性を測定、または検出するか、あるいはその両方が可能である、例示的なシステムのブロック図である。
【
図7】本発明の実施形態による、推奨される化学反応器制御設定によって合成される1種または複数種のポリマーに基づき、1つまたは複数のトレーニング・データセットを更新することができる、例示的なシステムのブロック図である。
【
図8】本発明の実施形態による、1つまたは複数の変分オートエンコーダ機械学習モデルを使用する1種または複数種のポリマーの実験的発見のための、1つまたは複数の化学反応器の動作を容易化できる、例示的なシステムのブロック図である。
【
図9】本発明の実施形態による、1つまたは複数の敵対的ゲイン・ネットワーク機械学習モデルを使用する1種または複数種のポリマーの実験的発見のための、1つまたは複数の化学反応器の動作を容易化できる、例示的なシステムのブロック図である。
【
図10】本発明の実施形態による、1つまたは複数の生成機械学習モデルを使用する1種または複数種のポリマーの実験的発見のための、1つまたは複数の化学反応器の動作を容易化できる、例示的な方法のフロー図である。
【
図11】本発明の実施形態による、1つまたは複数の生成機械学習モデルを使用する、1種または複数種のポリマーの実験的発見のための、1つまたは複数の化学反応器の動作を容易化することのできる例示的な方法のフロー図である。
【
図12】本発明の実施形態による、クラウド・コンピューティング環境を示す図である。
【
図13】本発明の実施形態による、抽象化モデル層を示す図である。
【
図14】本明細書に記載の発明の1つまたは複数の実施形態を容易化できる、例示的な動作環境のブロック図である。
【発明を実施するための形態】
【0007】
以下の詳細な説明は、単に例示的なものであり、実施形態、または実施形態の適用もしくは使用、あるいはその両方を限定することを意図するものではない。さらに、先出の「技術分野」または「発明の概要」、あるいは「発明を実施するための形態」の各セクションに示されている、明示的または暗示的な情報に拘束されることを意図していない。
【0008】
ここで、1つまたは複数の実施形態について、図面を参照して説明するが、ここでは、全体を通して同様の要素を参照するために、同様の参照番号が使用される。以下の記述では、説明の目的で、実施形態のより完全な理解を提供するために、多数の特定の詳細が記載されている。しかしながら、様々な場合において、これらの特定の詳細なしで、実施形態を実施できることは明らかである。
【0009】
多くのライフ・サイエンス応用では、最適な構造-活性関係、またはアーキテクチャ-活性関係を決定するために、特定のクラスのポリマー材料を探索する必要がある。そのようなクラスのメンバーの手動合成は、骨の折れる作業であるか、または人間の実験家の自由裁量のみに依存する可能性があるか、あるいはその両方である可能性がある。従来の実験技術は、最初に、所望の特性を示すと仮定される1種または複数種のポリマーの化学構造を予測し、次に予測された化学構造を生成するための提案される合成スキームを推定し、最後に提案される合成スキームの実装を容易にするために1つまたは複数の反応器制御設定を決定する。
【0010】
本発明の様々な実施形態は、1つまたは複数の生成機械学習モデルの使用によって、1つまたは複数の化学反応器の効率的で、有効で、自律的な(例えば、直接的な人による誘導のない)制御を容易にする、コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せを対象とすることができる。生成機械学習モデルは、過去の化学反応器動作に基づいて1種または複数種のポリマーを発見、または合成するか、あるいはその両方のために、1つまたは複数の推奨される化学反応器制御設定を生成できる。生成機械学習モデルには、例えば、変分オートエンコーダ(「VAE」)モデル、または敵対的ゲイン・ネットワーク(「GAN」)モデル、あるいはその両方を含めることができる。さらに、1つまたは複数の実施形態は、推奨される化学反応器制御設定に従って、1つまたは複数の化学反応器の自律制御を考慮することができる。
【0011】
コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せは、ハードウェアまたはソフトウェア、あるいはその両方を使用して、本質的に高度に技術的な問題(例えば、1種または複数種のポリマーの実験的発見)であって、抽象的ではなく、人による一連の精神的行為として実行することはできない問題を解決する。例えば、個人または複数の個人は、本明細書に記載の様々な実施形態の大量の化学反応器データを効率性を保って容易に分析することができない。例えば、本明細書に記載の実施形態の1つまたは複数は、1種または複数種のポリマーの自律的発見のための新しい化学反応器制御設定を生成するために、複数の化学反応器の多数の過去の動作を分析できる、1つまたは複数の反復トレーニング・プロセスを備えることができる。
【0012】
図1は、1つまたは複数の目標ポリマー特性に基づいて、1種または複数種のポリマー材料の自律的発見または合成、あるいはその両方を容易にすることができるシステム100を示す。本発明の様々な実施形態におけるシステム(例えば、システム100など)、装置またはプロセスの態様は、1つまたは複数のマシン内に具現化された、例えば、1つまたは複数のマシンに関連付けられた1つまたは複数のコンピュータ可読媒体内に具現化された、1つまたは複数のマシン実行可能コンポーネントを構成することができる。このようなコンポーネントは、コンピュータ、コンピューティング・デバイス、仮想マシンなどのマシンによって実行されると、記載の動作をそれらのマシンに実行させることができる。
【0013】
図1に示されるように、システム100は、1つもしくは複数のサーバ102、1つもしくは複数のネットワーク104、1つもしくは複数の入力デバイス106、または1つもしくは複数の化学反応器108、あるいはその組合せを備えることができる。サーバ102は、制御コンポーネント110を備えることができる。制御コンポーネント110は、通信コンポーネント112、またはデータ収集コンポーネント114、あるいはその両方をさらに備える。また、サーバ102は、少なくとも1つのメモリ116を備えるか、または他の方法でそれに関連付けることができる。サーバ102は、それには限定されないが、制御コンポーネント110または関連するコンポーネント、あるいはその両方、メモリ116またはプロセッサ120、あるいはその両方などの、様々なコンポーネントに結合できる、システム・バス118をさらに備えることができる。一方、サーバ102が
図1に示されているが、他の実施形態では、様々なタイプの複数のデバイスが、
図1に示される特徴に関連付けられるか、またはそれらを有することができる。さらに、サーバ102は、1つまたは複数のクラウド・コンピューティング環境と通信することができる。
【0014】
ネットワーク104は、それに限定はされないが、セルラー・ネットワーク、ワイド・エリア・ネットワーク(WAN)(例えば、インターネット)、またはローカル・エリア・ネットワーク(LAN)を含む、有線および無線のネットワークを備えることができる。例えば、サーバ102は、例えば、それに限定はされないが、セルラー、WAN、Wi-Fi(wireless fidelity)、Wi-Max、WLAN、Bluetoothテクノロジ、またはその同類、あるいはそれらの組合せを含む、実質的に任意所望の有線または無線のテクノロジを使用する、入力デバイス106、または化学反応器108、あるいはその両方(およびその逆)と通信することができる。例示される実施形態では、制御コンポーネント110をサーバ102上に設けることができるが、システム100のアーキテクチャはそのように限定されないことを理解すべきである。例えば、制御コンポーネント110、または制御コンポーネント110の1つまたは複数のコンポーネントは、別のサーバ・デバイス、クライアント・デバイスなどの別のコンピュータ・デバイスに配置することができる。
【0015】
入力デバイス106は、1つまたは複数のコンピュータ化されたデバイスを備えることができるが、この例としては、それに限定はされないが、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、携帯電話(例えば、スマートフォン)、コンピュータ化された(例えば、プロセッサを備える)タブレット、スマートウォッチ、キーボード、タッチ・スクリーン、マウス、またはその同類、あるいはそれらの組合せなどが挙げられる。システム100のユーザは、入力デバイス106を利用してデータをシステム100に入力し、それによってそのデータを、サーバ102または化学反応器108、あるいはその両方と(例えば、直接接続またはネットワーク104、あるいはその両方を介して)共有することができる。例えば、入力デバイス106は、通信コンポーネント112に(例えば、直接接続またはネットワーク104、あるいはその両方を介して)データを送ることができる。さらに、入力デバイス106は、システム100によって生成された1つまたは複数の出力をユーザに提示することができる、1つまたは複数のディスプレイを備えることができる。例えば、ディスプレイには、それらに限定はされないが、ブラウン管ディスプレイ(「CRT」)、発光ダイオード・ディスプレイ(「LED」)、エレクトロルミネセント・ディスプレイ(「ELD」)、プラズマ・ディスプレイ・パネル(「PDP」)、液晶ディスプレイ(「LCD」)、有機発光ダイオード・ディスプレイ(「OLED」)、またはその同類、あるいはそれらの組合せを挙げることができる。
【0016】
化学反応器108は、フロー反応器またはバッチ反応器、あるいはその両方などの、1つまたは複数の合成プラットフォームを備えることができる。例えば、化学反応器108は、化学反応物の連続的に流れる流れの中で1種または複数種の化学反応を実行できる(例えば、1つまたは複数のポンプを使用して1つまたは複数の管を通して化学流体を推進する)、フロー・ケミストリを容易化することができる。別の例では、化学反応器108は、バッチ・ケミストリを容易化することができる。例示的な化学反応器108としては、それに限定はされないが、管状反応器、固定床反応器、流動床反応器、連続撹拌槽型反応器、またはその同類、あるいはそれらの組合せなどが挙げられる。
【0017】
データ収集コンポーネント114は、入力デバイス106または化学反応器108、あるいはその両方から、(例えば、直接電気接続またはネットワーク104、あるいはその両方を介して)トレーニング・データを収集することができる。トレーニング・データは、化学反応器108の1つまたは複数の以前の動作に注目することができる。例えば、トレーニング・データとしては、それに限定はされないが、化学反応器108によって以前に実行された1種または複数種の化学反応中に実施される以下の制御設定:化学反応物、モノマー、触媒、共触媒、反応器パラメータの値、開始剤、保持時間、温度、流量、圧力、成分の添加/混合の順序、紫外線または他の放射線、あるいはその両方への曝露、またはその同類、あるいはそれらの組合せを挙げることができる。例えば、化学反応器108は、ネットワーク104または通信コンポーネント112、あるいはその両方を介してデータ収集コンポーネント114に1つまたは複数の制御設定を送ることができる。さらに、入力デバイス106を使用して、(例えば、化学反応器108の過去の動作に関する)制御設定を、ネットワーク104または通信コンポーネント112、あるいはその両方を介して、システム100のユーザによって、システム100に入力するか、またはデータ収集コンポーネント114に送ること、あるいはその両方が可能である。
【0018】
データ収集コンポーネント114は、入力デバイス106または化学反応器108、あるいはその両方から収集されたトレーニング・データを用いて、1つまたは複数のトレーニング・データセット122を生成または事前設定する(populate)か、あるいはその両方を行うことができる。例えば、データ収集コンポーネント114は、化学反応器108制御設定を用いて、トレーニング・データセット122を生成または事前設定するか、あるいはその両方を行うことができる。
図1に示されるように、トレーニング・データセット122は、メモリ116内部に備えることができる。トレーニング・データセット122は、1つまたは複数のクラウド・コンピューティング環境内部に備えることもできる。
【0019】
図2は、モデル・コンポーネント202をさらに備えるシステム100を示す。モデル・コンポーネント202は、トレーニング・データに基づいて1つまたは複数の生成機械学習モデルを構築することができるが、この場合にこれらのモデルは、1つまたは複数の推奨される化学反応器108制御設定を生成することができる。例えば、モデル・コンポーネント202は、トレーニング・データに基づいて、1つまたは複数のVAEモデルまたはGANモデル、あるいはその両方を生成することができる。
【0020】
推奨される化学反応器108制御設定には、化学反応器108による1種または複数種のポリマーの合成のための、1つまたは複数の制御設定を含めることができる。さらに、推奨される化学反応器108制御設定には、1つもしくは複数の制御設定、またはトレーニング・データに含まれていない制御設定の組合せ、あるいはその両方を含めることができる。言い換えれば、推奨される化学反応器108制御設定には、1つまたは複数の制御設定、またはシステム100の知る限りで、化学反応器108にまだなお実装されるべき、制御設定の組合せ、あるいはその両方を含めることができる。
【0021】
図3は、1つまたは複数のVAEモデルを構築するときにモデル・コンポーネント202によって実行することができる、VAEトレーニング・プロセス300を示す。
図3に示されるように、VAEモデルは、1つまたは複数のエンコーダ302、潜在空間304、またはデコーダ306、あるいはその組合せを備えることができる。エンコーダ302は、トレーニング・データセット122に含まれるトレーニング・データを、潜在空間304内部に含まれる1つまたは複数の潜在変数にエンコードすることができる、1つまたは複数の第1のニューラル・ネットワークを備えることができる。さらに、エンコーダ302は、潜在変数を正規化することができる。潜在空間304を確率論的にすること、またはエンコーダ302をガウス確率密度にエンコードすること、あるいはその両方を行うことができる。デコーダ306は、潜在空間304からの潜在変数をデコードして、1つまたは複数のベクトルを出力することができる、1つまたは複数の第2のニューラル・ネットワークを備えることができる。
【0022】
さらに、モデル・コンポーネント202は、1つまたは複数の損失関数を利用して、より小さな次元からより大きな次元を経ることにより、トレーニング・データが経験する情報損失の量を分析することができる。モデル・コンポーネント202は、勾配降下アルゴリズム(gradient descent algorithm)を使用してVAEモデルをトレーニングして、エンコーダ302またはデコーダ306、あるいはその両方の1つまたは複数のパラメータ(例えば、重量、バイアス、またはステップ・サイズ、あるいはその組合せ)についての損失関数を最適化することができる。1つまたは複数のVAEトレーニング・プロセス300中に、モデル・コンポーネント202は、出力ベクトルがトレーニング・データと一致するまで、VAEモデルを繰り返しトレーニングすることができる。
【0023】
図4は、1つまたは複数のGANモデルを構築するときにモデル・コンポーネント202によって実施することができる、GANトレーニング・プロセス400を示している。
図4に示されるように、GANモデルは、1つまたは複数の生成ネットワーク402、または識別ネットワーク(discriminator network)404、あるいはその両方を備えることができる。
【0024】
生成ネットワーク402は、ノイズの1つまたは複数のベクトルをアップサンプリングして、新規の制御設定などの新規のデータを生成することができる。識別ネットワーク404は、生成ネットワーク402によって生成された新規のデータと、トレーニング・データセット122からのトレーニング・データを入力として受け取ることができる。さらに、識別ネットワーク404は、入力のソースを知らなくても、入力を受け取ることができる。それにより、識別ネットワーク404は、対象の入力が新規のデータであるか、またはトレーニング・データであるかに関する事前の知識なしに、入力を分析することができる。さらに、識別ネットワーク404は、入力を分析して、入力が、生成ネットワーク402によって生成された新規のデータ(例えば、新規の化学反応器108制御設定)であるか、またはトレーニング・データセット122からのトレーニング・データ(例えば、1つまたは複数の化学反応器108によって実装された過去の制御設定)であるかを、判定することができる。例えば、識別ネットワーク404は、二項分類器(binomial classifier)とすることができる。
【0025】
GANトレーニング・プロセス400には、生成ネットワーク402と識別ネットワーク404との間の反復交換を含めることができる。各交換によって、生成ネットワーク402は、新規のデータを生成することが可能であり、識別ネットワーク404は、新規のデータが生成ネットワーク402によって生成されたか、トレーニング・データセット122からサンプリングされたかを見分ける試みができる。さらに、生成ネットワーク402または識別ネットワーク404、あるいはその両方は、以前の交換から学習して、それぞれの機能をさらに強化するか、または改良するか、あるいはその両方を行う(例えば、トレーニング・データと考えられる可能性のある新規のデータを生成する生成ネットワーク402の能力を強化するか、または新規のデータとトレーニング・データとを見分ける識別ネットワーク404の機能を強化するか、あるいはその両方を行う)ことができる。生成ネットワーク402は、識別ネットワーク404が、生成ネットワーク402によって生成された新規のデータとトレーニング・データを見分けられない場合に、トレーニング済み状態を達成することができる。
【0026】
モデル・コンポーネント202は、生成機械学習モデル(例えば、VAEモデルまたはGANモデル、あるいはその両方)を生成し、(例えば、1つまたは複数のVAEトレーニング・プロセス300またはGANトレーニング・プロセス400、あるいはその両方を介して)生成機械学習モデルをトレーニングし、かつ/またはトレーニングされた生成機械学習モデルから1つまたは複数の推奨される化学反応器108設定を生成することができる。例えば、1つまたは複数のトレーニング済みVAEモデルは、潜在空間304から1つもしく複数の潜在変数をサンプリングするか、またはデコードするか、あるいはその両方を実施して、推奨される化学反応器108制御設定を生成することができる。別の例では、1つまたは複数のトレーニング済みGANモデルは、1つまたは複数のトレーニング済み生成ネットワーク402から1つまたは複数の推奨される化学反応器108制御設定を生成することができる。
【0027】
図5は、反応器制御コンポーネント502をさらに備える、システム100を示す。反応器制御コンポーネント502は、モデル・コンポーネント202によって生成される推奨される化学反応器108制御設定に従って、化学反応器108を動作させることができる。
図5は、サーバ102内に含まれる反応器制御コンポーネント502を示しているが、システム100のアーキテクチャはそのように限定はされない。例えば、反応器制御コンポーネント502は、化学反応器108、入力デバイス106、または(例えば、ネットワーク104を介してアクセス可能な)クラウド・コンピューティング環境、あるいはその組合せの内部に含めることができる。
【0028】
反応器制御コンポーネント502は、推奨される化学反応器108制御設定に基づいて、化学反応器108の1つまたは複数の制御設定を設定、または変更を行うか、あるいはその両方を行うことができる。さらに、反応器制御コンポーネント502は、化学反応器108の動作を開始、一時停止、再開、または停止を行うか、あるいはその組合せを行うことができる。システム100が複数の化学反応器108を備える場合、反応器制御コンポーネント502は、化学反応器108の1つまたは複数の反応器特性に基づいて、どの化学反応器108が推奨される化学反応器108制御設定を実装するかをさらに決定することができる。反応器特性の例としては、それに限定はされないが、化学反応器108の動作状態、化学反応器108によって容易にアクセス可能な化合物(例えば、試薬、触媒、または開始剤、あるいはその組合せ)、システム100内に含まれる化学反応器108のタイプ、(例えば、入力デバイス106を介してシステム100に入力される)1つまたは複数のユーザ選好、またそその同類、あるいはそれらの組合せを挙げることができる。
【0029】
反応器制御コンポーネント502は、推奨される化学反応器108制御設定を自律的に実施することができる。それによって、1種または複数種のポリマーの発見または合成を行うか、あるいはその両方を行う製造時間を、システム100の自律的な特性によって短縮または最小化、あるいはその両方を行うことができる。
【0030】
図6は、1つもしくは複数の測定コンポーネント602または検証コンポーネント604、あるいはその両方をさらに備える、システム100を示す。測定コンポーネント602は、化学反応器108によって合成されたポリマーの1つもしくは複数の特性の測定、または検出を行うか、あるいはその両方を行うことができる。
【0031】
例えば、化学反応器108は、推奨される化学反応器108制御設定に従って、(例えば、反応器制御コンポーネント502を介して)動作する化学反応器108によって生成されるポリマー材料の1つもしくは複数の特性を測定または検出するか、あるいはその両方を行うことができる、1つまたは複数の測定コンポーネント602を備えることができる。化学反応器108の各々は、1つまたは複数の測定コンポーネント602を備えることができる。測定コンポーネント602によって測定、または検出、あるいはその両方を行うことができる例示的な特性としては、それに限定はされないが、合成されたポリマーの分子量、化学的性質、化学的活性、分子量、PDI、紫外-可視分光成分、保持時間、温度、またはその同類、あるいはそれらの組合せを挙げることができる。測定コンポーネント602内に含まれるか、またはそれによって制御されるか、あるいはその両方である、例示的なセンサとしては、それに限定はされないが、タイマ、温度計、熱量計、分光機器、機械的試験用の機器、生化学的アッセイ、またはその同類、あるいはそれらの組合せを挙げることができる。
【0032】
システム100のユーザは、入力デバイス106またはネットワーク104、あるいはその両方を経由して、1つまたは複数の目標ポリマー特性を定義することができる。さらに、目標ポリマー特性は、合成されたポリマーが示すことをユーザが所望する、1つまたは複数の特性を定義することができる。目標ポリマー特性は、合成されたポリマーの物理特性または化学特性、あるいはその両方に関係する1つまたは複数のパラメータに関する値範囲を定義することができる。
【0033】
検証コンポーネント604は、測定コンポーネント602によって測定または検出が行われるか、あるいはその両方が行われた、特性の1つまたは複数を分析して、合成されたポリマー材料が目標ポリマー特性を示すかどうかを判定することができる。さらに、検証コンポーネント604は、推奨される化学反応器108制御設定、測定コンポーネント602から得られた特性、または検証コンポーネント604によって生成された判定、あるいはその組合せを、入力デバイス106またはネットワーク104、あるいはその両方を介して、システム100の1人または複数のユーザと共有することができる。
【0034】
図7は、1つまたは複数の更新コンポーネント702をさらに含む、システム100を示す。更新コンポーネント702は、推奨される化学反応器108制御設定、または検証コンポーネント604によって行われた判定、あるいはその両方に基づいて、トレーニング・データセット122内に含まれるトレーニング・データを、さらに事前設定または更新するか、あるいはその両方を行うことができる。例えば、更新コンポーネント702は、(例えば、測定コンポーネント602で測定されるか、または検証コンポーネント604によって判定されるか、あるいはその両方である)目標ポリマー特性を示す、推奨される化学反応器108制御設定によって合成されたポリマーに基づいて、推奨される化学反応器108制御設定を用いてトレーニング・データセット122を更新することができる。
【0035】
それにより、(例えば、推奨される化学反応器108制御設定に従って)化学反応器108がますます多くのポリマーを合成するにつれて、より多くのトレーニング・データを、モデル・コンポーネント202に対して利用可能にすることができる。システム100は、自律的に、トレーニング・データセット122内に含まれるトレーニング・データの量を増やすか、推奨される化学反応器108制御設定の精度を高めるか、または化学反応器108を動作させて新規のポリマーを合成するか、あるいはその組合せを行うことができる。
【0036】
図8は、システム100によって実行することのできる、動作手順800を示す。例えば、動作手順800には、1つまたは複数の化学反応器108の自律制御を容易にするために、1つまたは複数のトレーニング済みVAE機械学習モデルの使用を含めることができる。
図8に示されるトレーニング済みVAEモデルは、(例えば、
図3に示されるように)トレーニング・データセット122内に含まれるトレーニング・データを使用して、1つまたは複数のVAEトレーニング・プロセス300を介して、トレーニングすることができる。
【0037】
図8に示されるように、モデル・コンポーネント202は、トレーニング済みVAEモデルの潜在空間304内に含まれる1つまたは複数の潜在変数をサンプリングまたはデコードするか、あるいはその両方を行い、1つまたは複数の推奨される化学反応器108制御設定を生成することができる。さらに、反応器制御コンポーネント502は、(例えば、本明細書に記載されるように)推奨される化学反応器108制御設定に従って、化学反応器108を動作させることができる。さらに、(例えば、化学反応器108内部に含まれるような)1つまたは複数の測定コンポーネント602は、化学反応器108制御設定に従って動作する化学反応器108によって合成された1種もしくは複数種のポリマーの1つもしくは複数の特性を測定するか、または検出するか、あるいはその両方を行うことができる。例えば、測定コンポーネント602は、物理活性、化学活性、または化学反応器108動作、あるいはその組合せに関する、合成されたポリマーの1つもしくは複数のパラメータを測定するか、または検出するか、あるいはその両方を行うことができる。また、検証コンポーネント604は、測定および/または検出されたポリマー特性、および/または付随する推奨される化学反応器108制御設定を、入力デバイスを介してシステム100の1人または複数のユーザと共有することができる。
【0038】
検証コンポーネント604は、測定コンポーネント602によって測定されるか、または検出されるか、あるいはその両方である特性をさらに分析して、その特性が目標ポリマー特性であるかどうかを判定することができる。例えば、目標ポリマー特性は、入力デバイス106を介してシステム100のユーザによって設定されるか、または(例えば、合成されたポリマーの化学活性、または物理活性、あるいはその両方に関する)1つもしくは複数の望ましい特色(traits)を定義するか、あるいはその両方であり得る。検証コンポーネント604は、合成されたポリマーが目標ポリマー特性の1つまたは複数を示すとの判定に応答して、推奨される化学反応器108制御設定を用いて、トレーニング・データセット122をさらに更新することができる。それにより、目標特性を有するポリマーを達成することが分かった推奨される化学反応器108制御設定は、後続の推奨される化学反応器108制御設定を生成するために使用される、生成機械学習モデル(例えば、VAEモデル)をさらにトレーニングする役割を果たすことができる。
【0039】
図9は、システム100によって実行することのできる動作手順900を示す。例えば、動作手順900には、1つまたは複数の化学反応器108の自律制御を容易にするために、1つまたは複数のトレーニング済みGAN機械学習モデルの使用を含めることができる。
図9に示されるトレーニング済みGANモデルは、トレーニング・データセット122内に含まれるトレーニング・データを使用して、1つまたは複数のGANトレーニング・プロセス400を介して、(例えば、
図4に示されるように)トレーニングすることができる。
【0040】
図9に示されるように、モデル・コンポーネント202は、1つまたは複数のトレーニング済み生成ネットワーク402を介して、1つまたは複数の推奨される化学反応器108制御設定を生成することができる。さらに、反応器制御コンポーネント502は、(例えば、本明細書に記載されるように)推奨される化学反応器108制御設定に従って、化学反応器108を動作させることができる。さらに、(例えば、化学反応器108内に含まれる)1つまたは複数の測定コンポーネント602は、化学反応器108制御設定に従って動作する化学反応器108によって合成される、1種もしくは複数種のポリマーの1つもしくは複数の特性を測定するか、または検出するか、あるいはその両方を行うことができる。例えば、測定コンポーネント602は、物理活生、化学活性、または化学反応器108動作、あるいはその組合せに関する、合成されたポリマーの1つもしくは複数のパラメータを測定するか、または検出するか、あるいはその両方を行うことができる。また、検証コンポーネント604は、測定および/または検出されたポリマー特性、および/または付随する推奨される化学反応器108制御設定を、入力デバイスを介してシステム100のユーザと共有することができる。
【0041】
検証コンポーネント604は、その特性が目標ポリマー特性であるかどうかを判定するために、測定コンポーネント602によって測定または検出されるか、あるいはその両方である特性を、さらに分析することができる。例えば、目標ポリマー特性は、入力デバイス106を介してシステム100のユーザによって設定されるか、または(例えば、合成されたポリマーの化学活性、または物理活性、あるいはその両方に関して)1つもしくは複数の望ましい特色を定義するか、あるいはその両方を行うことができる。検証コンポーネント604は、合成されたポリマーが目標ポリマー特性の1つまたは複数を示すことを判定することに応答して、推奨される化学反応器108制御設定でトレーニング・データセット122をさらに更新することができる。それにより、目標特性を有するポリマーを達成することが分かった推奨される化学反応器108制御設定は、後続の推奨される化学反応器108制御設定を生成するために使用される生成機械学習モデル(例えば、GANモデル)をさらにトレーニングする役割を果たすことができる。例えば、(例えば、推奨される化学反応器108制御設定を含む)更新されたトレーニング・データは、識別ネットワーク404によって分析されて、識別ネットワーク404、それによって生成ネットワーク402を、さらにトレーニングすることができる。
【0042】
図10は、1つまたは複数の生成機械学習モデルを使用して1つまたは複数の化学反応器108の制御を容易にすることができる方法1000を示す。
【0043】
1002において、方法1000には、1つまたは複数の過去の化学反応器108動作に関するトレーニング・データを、プロセッサ120に動作可能に結合されたシステム100によって、(例えば、データ収集コンポーネント114を介して)収集することを含めることができる。例えば、トレーニング・データとしては、それに限定はされないが、化学反応器108によって以前に実行された1つまたは複数の化学反応中に実施される以下の制御設定、すなわち、化学反応物、モノマー、触媒、共触媒、反応器パラメータの値、開始剤、保持時間、温度、流量、圧力、成分の添加/混合の順序、紫外線または他の放射線、あるいはその両方への曝露、またはその同類、あるいはそれらの組合せを挙げることができる。1002における収集には、(例えば、本明細書に記載のような)トレーニング・データを用いて、1つまたは複数のトレーニング・データセット122を生成すること、または事前設定すること、あるいはその両方を含めることができる。
【0044】
1004において、方法1000には、1つもしくは複数のエンコーダ302またはデコーダ306、あるいはその両方の1つもしくは複数のパラメータについての損失関数を最適化することができる、1つまたは複数の勾配降下アルゴリズムを使用するトレーニング・データに基づき、1つまたは複数のVAE機械学習モデルを、システム100により、(例えば、モデル・コンポーネント202を介して)トレーニングすることを含めることができる。例えば、1004におけるトレーニングは、VAEトレーニング・プロセス300に関して本明細書に記載されている様々な特徴に従って、実行することができる。
【0045】
1006において、方法1000には、VAE機械学習モデルを介する1種または複数種のポリマーの実験的発見のための1つまたは複数の推奨される化学反応器108制御設定を、システム100によって、(例えば、モデル・コンポーネント202を介して)生成することを含めることができる。例えば、推奨される化学反応器108制御設定は、(例えば、本明細書で記載されるように)VAE機械学習モデル内に含まれる潜在空間304から1つもしくは複数の潜在変数をサンプリングするか、またはデコードするか、あるいはその両方を行うことによって、生成することができる。さらに、1006での生成は、1004でのトレーニングを通じてトレーニング済み状態を達成した1つまたは複数のVAE機械学習モデルによって容易化することができる。
【0046】
1008において、方法1000には、推奨される化学反応器108制御設定に従って、1つまたは複数の化学反応器108を、システム100によって、(例えば、反応器制御コンポーネント502を介して)動作させることを含めることができる。推奨される化学反応器108制御設定に従って動作させることができる例示的な化学反応器108としては、それに限定はされないが、管状反応器、固定床反応器、流動床反応器、連続撹拌タンク反応器、またはその同類、あるいはそれらの組合せを挙げることができる。1008における、化学反応器108の動作は、システム100によって自律的に実行することができる。
【0047】
1010において、方法1000には、化学反応器108によって生成されたポリマーの1つまたは複数の特性を、システム100によって、(例えば、測定コンポーネント602を介して)判定することを含めることができる。例えば、化学反応器108は、合成されたポリマーの1つもしくは複数の物理特性または化学特性、あるいはその両方を測定または検出するか、あるいはその両方を行うための、1つまたは複数のセンサを備えることができる。例示的なセンサとしては、それに限定はされないが、タイマ、温度計、熱量計、分光装置、機械試験用の機器、生化学的アッセイ、またはその同類、あるいはそれらの組合せを挙げることができる。
【0048】
1012において、方法1000には、目標ポリマー特性によって定義される許容範囲内に特性があるかどうかを、システム100によって、(例えば、検証コンポーネント604を介して)判定することを含めることができる。例えば、1012における判定には、合成されたポリマーの特性が目標ポリマー特性と一致するかどうかを判定するために、1010において生成された測定値または検出値、あるいはその両方を分析することを含めることができる。
【0049】
1014において、方法1000には、推奨される化学反応器108制御設定に基づくトレーニング・データを、システム100によって、(例えば、更新コンポーネント702を介して)更新することを含めることができる。さらに、1014における更新には、1010において生成された測定値、または検出値、あるいはその両方に基づいて1つまたは複数のトレーニング・データセット122を更新することを含めることができる。1014における更新は、1004において行われるトレーニングの1つまたは複数の反復を容易化することができる。
【0050】
図11は、1つまたは複数の生成機械学習モデルを使用して1つまたは複数の化学反応器108の制御を容易化することができる、例示的な、非限定的な方法1100のフロー図を示す。
【0051】
1102において、方法1100には、1つまたは複数の過去の化学反応器108動作に関するトレーニング・データを、プロセッサ120に動作可能に結合されたシステム100によって、(例えば、データ収集コンポーネント114を介して)収集することを含めることができる。例えば、トレーニング・データとしては、それに限定はされないが、化学反応器108によって以前に実行された1種または複数種の化学反応中に実施される以下の制御設定、すなわち、化学反応物、モノマー、触媒、共触媒、反応器パラメータの値、開始剤、保持時間、温度、流量、圧力、成分の添加/混合の順序、紫外線または他の放射線、あるいはその両方への曝露、またはその同類、あるいはそれらの組合せを挙げることができる。1002における収集には、(例えば、本明細書に記載のような)トレーニング・データを用いて、1つもしくは複数のトレーニング・データセット122を生成すること、または事前設定すること、あるいはその両方を行うことを含めることができる。
【0052】
1104において、方法1100には、ノイズのベクトルをアップサンプリングして新規のデータを生成すること、または、新規のデータと共にトレーニング・データを分析してトレーニング・データと新規のデータのカテゴリの違いを見分けること、あるいはその両方によって、トレーニング・データに基づいて、1つまたは複数のGAN機械学習モデルを、システム100によって、(例えば、モデル・コンポーネント202を介して)トレーニングすることを含めてもよい。例えば、1104におけるトレーニングは、GANトレーニング・プロセス400に関して本明細書に記載されている様々な特徴に従って実行することができる。
【0053】
1106において、方法1000には、GAN機械学習モデルを介する1種または複数種のポリマーの実験的発見のための、1つまたは複数の推奨される化学反応器108制御設定を、システム100によって、(例えば、モデル・コンポーネント202を介して)生成することを含めることができる。例えば、推奨される化学反応器108制御設定は、GAN機械学習モデル内に含まれる1つまたは複数のトレーニング済み生成ネットワーク402によって生成することができる。さらに、1106における生成は、トレーニング済み状態を達成した1つまたは複数のGAN機械学習モデルによって容易化することができ、この場合に、生成ネットワーク402は、識別ネットワーク404によってトレーニング・データから容易には見分けられない新規のデータを生成することができる。
【0054】
1108において、方法1100には、推奨される化学反応器108制御設定に従って、1つまたは複数の化学反応器108を、システム100によって、(例えば、反応器制御コンポーネント502を介して)動作させることを含めることができる。推奨される化学反応器108制御設定に従って動作させることができる例示的な化学反応器108としては、それに限定はされないが、管状反応器、固定床反応器、流動床反応器、連続撹拌タンク反応器、またはその同類、あるいはそれらの組合せを挙げることができる。1108における化学反応器108の動作は、システム100によって自律的に実行することができる。
【0055】
1110において、方法1100には、化学反応器108によって生成されたポリマーの1つまたは複数の特性を、システム100によって、(例えば、測定コンポーネント602を介して)判定することを含めることができる。例えば、化学反応器108は、合成されたポリマーの1つもしくは複数の物理特性または化学特性、あるいはその両方を測定または検出するか、あるいはその両方を行うための、1つまたは複数のセンサを備えることができる。例示的なセンサとしては、それに限定はされないが、タイマ、温度計、熱量計、分光装置、機械試験用の機器、生化学的アッセイ、またはその同類、あるいはそれらの組合せを挙げることができる。
【0056】
1112において、方法1100には、特性が目標ポリマー特性によって定義される許容範囲内にあるかどうかを、システム100によって、(例えば、検証コンポーネント604を介して)判定することを含めることができる。例えば、1112における判定には、合成されたポリマーの特性が目標ポリマー特性と一致するかどうかを判定するために、1110において生成された測定値、または検出値、あるいはその両方を分析することを含めることができる。
【0057】
1114において、方法1100には、推奨される化学反応器108制御設定に基づき、システム100によって、(例えば、更新コンポーネント702を介して)トレーニング・データを更新することを含めることができる。さらに、1114における更新には、1110において生成された測定値、または検出値、あるいはその両方に基づいて、1つまたは複数のトレーニング・データセット122を更新することを含めることができる。1114における更新は、1104において行われるトレーニングの1つまたは複数の反復を容易化することができる。
【0058】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているか、または後に開発される任意その他のタイプのコンピューティング環境と共に実装することができる。
【0059】
クラウド・コンピューティングは、最小限の管理作業、またはサービスのプロバイダとの対話により迅速にプロビジョニングを行い、リリースすることのできる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするサービス配信のモデルである。このクラウド・モデルには、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含めてもよい。
【0060】
特性は以下の通りである。
【0061】
オンデマンド・セルフサービス(On-demand self-service):クラウド・コンシューマは、サービス・プロバイダとの人による対話を必要とせずに、必要に応じてサーバ時間やネットワーク・ストレージなどのコンピューティング機能を一方向からプロビジョニングする(provision)ことができる。
【0062】
ブロード・ネットワーク・アクセス(Broad network access):機能はネットワーク経由で利用可能であり、異種のシン・クライアント(thin client)・プラットフォームまたはシック・クライアント(thick client)・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する、標準的メカニズムを介してアクセスされる。
【0063】
リソース・プーリング(Resource pooling):プロバイダのコンピューティング・リソースはプールされて、マルチテナント・モデルを使用する複数のコンシューマに、様々な物理リソースと仮想リソースが需要に応じて動的に割り当てられ、また再割り当てされる、サービスが提供される。コンシューマは通常、提供されるリソースの正確な場所を制御したり、それの知識を得たりすることはできないが、より高い抽象化レベルでの場所(国、州、またはデータセンタなど)を指定できるという点で、場所に依存しないという感覚がある。
【0064】
スピーディな拡張性(Rapid elasticity):機能は、迅速かつ柔軟にプロビジョニングが可能であり、場合によっては自動的に、迅速にスケールアウトし、速やかにリリースされて迅速にスケールインできる。コンシューマにとって、プロビジョニングに利用可能な機能は無制限に見えることが多く、いつでも任意の数量で購入できる。
【0065】
サービスが計測可能であること(Measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、バンド幅、およびアクティブ・ユーザ・アカウント)に適切な、あるレベルの抽象度における計量機能にレバレージをかけることによってリソース使用を自動的に制御し、かつ最適化する。リソースの使用状況を監視、制御、および報告できるため、利用するサービスのプロバイダとコンシューマの両方に透明性が提供される。
【0066】
サービス・モデルは以下の通りである:
【0067】
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して、様々なクライアント・デバイスからアクセスできる。コンシューマは、限られたユーザ固有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基盤となるクラウド・インフラストラクチャの管理、または制御を行わない。
【0068】
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される機能は、プロバイダがサポートするプログラミング言語とツールを使用して作成された、コンシューマが作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージなどの基盤となるクラウド・インフラストラクチャの管理または制御を行わないが、デプロイされたアプリケーションと、場合によってはアプリケーション・ホスティング環境の構成を制御する。
【0069】
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される機能は、コンシューマが、オペレーティング・システムおよびアプリケーションを含む、任意のソフトウェアをデプロイして実行することのできる場合に、処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基盤となるクラウド・インフラストラクチャの管理または制御を行わないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションの制御を行い、場合によってはセレクト・ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)に対して限定された制御を行う。
【0070】
デプロイメント・モデルは以下の通りである。
【0071】
プライベート・クラウド(Private cloud):クラウド・インフラストラクチャは、組織のためだけに運用されている。それは、組織またはサード・パーティによって管理されて、オンプレミス(on-premises)またはオフプレミス(off-premises)に存在する場合がある。
【0072】
コミュニティ・クラウド(Community cloud):クラウド・インフラストラクチャは複数の組織で共有されており、共通の懸念事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項)を有する、特定のコミュニティをサポートする。それは、組織またはサード・パーティによって管理されて、オンプレミスまたはオフプレミスに存在する場合がある。
【0073】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模事業グループに対して利用可能にされており、クラウド・サービスを販売する組織によって所有されている。
【0074】
ハイブリッド・クラウド(Hybrid cloud):クラウド・インフラストラクチャは、一意のエンティティのままであるが、データとアプリケーションの移植性(例えば、クラウド間の負荷バランスのためのクラウド・バースティング)を可能にする標準化された、または所有権下のテクノロジによって結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
【0075】
クラウド・コンピューティング環境は、ステートレス性、低結合、モジュール性、および意味相互運用性に重点を置いた、サービス指向である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含む、インフラストラクチャがある。
【0076】
次に
図12を参照すると、例示的なクラウド・コンピューティング環境1200が示されている。図示のように、クラウド・コンピューティング環境1200は、1つまたは複数のクラウド・コンピューティング・ノード1202を含み、例えば、パーソナル・デジタル・アシスタント(PDA)または携帯電話1204、デスクトップ・コンピュータ1206、ラップトップ・コンピュータ1208、または自動車コンピュータ・システム1210、あるいはその組合せなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスは、これらのノード1202と通信することができる。ノード1202は、互いに通信することができる。それらは、上記のようなプライベート、コミュニティ、パブリック、またはハイブリッドの各クラウド、あるいはその組合せなどの、1つまたは複数のネットワークに、物理的または仮想的に、グループ化してもよい(図示せず)。これによって、クラウド・コンピューティング環境1200は、クラウド・コンシューマがローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。
図12に示されるコンピューティング・デバイス1204~1210のタイプは、例示のみを意図していること、ならびにコンピューティング・ノード1202およびクラウド・コンピューティング環境1200は、任意のタイプのネットワーク、またはネットワーク・アドレス可能接続、あるいはその両方を介して、(例えば、ウェブ・ブラウザを使用して)任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0077】
次に
図13を参照すると、クラウド・コンピューティング環境1200(
図12)によって提供される、一組の機能的抽象化層が示されている。
図13に示されるコンポーネント、層、および機能は、例示のみを意図しており、本発明の実施形態はそれらに限定されないことを、事前に理解すべきである。図示のように、以下の層および対応する機能が提供される。
【0078】
ハードウェアおよびソフトウェア層1302は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム1304、RISC(縮小命令セットコンピュータ)アーキテクチャ・ベースのサーバ1306、サーバ1308、ブレード・サーバ1310、ストレージ・デバイス1312、ならびにネットワークおよびネットワーキング・コンポーネント1314が挙げられる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1316およびデータベース・ソフトウェア1318を含む。
【0079】
仮想化層1320は、抽象化層を提供し、そこから仮想エンティティの以下の例、すなわち、仮想サーバ1322、仮想ストレージ1324、仮想プライベート・ネットワークを含む仮想ネットワーク1326、仮想アプリケーションおよびオペレーティング・システム1328、および仮想クライアント1330、を提供することができる。
【0080】
一例では、管理層1332は、以下に説明する機能を提供することができる。リソース・プロビジョニング1334は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソース、およびその他のリソースの動的調達を提供する。計測および価格設定1336は、リソースがクラウド・コンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソース消費に対する課金または請求を提供する。一例では、これらのリソースには、アプリケーション・ソフトウェア・ライセンスが含まれる場合がある。セキュリティは、クラウド・コンシューマとタスクのID検証、およびデータやその他のリソースの保護を提供する。ユーザ・ポータル1338は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル・マネジメント1340は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)・プラニング・アンド・フルフィルメント1342は、SLAに従って将来の要求が予想されるクラウド・コンピューティング・リソースの事前配設と調達を提供する。
【0081】
ワークロード層1344は、クラウド・コンピューティング環境を利用することのできる機能の例を提供する。この層から提供され得るワークロードおよび機能の例としては、マッピング・アンド・ナビゲーション1346、ソフトウェア・ディヴェロップメント・アンド・ライフサイクル・マネジメント1348、バーチャル・クラスルーム・エデュケーション・デリバリ1350、データ・アナリティクス・プロセシング1352、トランザクション・プロセシング1354、および化学反応器108制御設定の深層学習発見1356が挙げられる。本発明の様々な実施形態は、
図12および
図13を参照して説明したクラウド・コンピューティング環境を利用して、ポリマーの実験的発見を容易化するために、1つもしくは複数の推奨される化学反応器108制御設定、または自律的に動作する1つもしくは複数の化学反応器、あるいはその両方を生成することができる。
【0082】
本発明は、任意可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとしてもよい。コンピュータ・プログラム製品には、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含めてもよい。コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるために命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、それに限定はされないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述項目の任意適切な組合せとしてもよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、機械的にエンコードされたデバイス、例えば、パンチカード、または命令がその上に記録された溝の内部の隆起構造など、および前述のものの任意適切な組合せ、が含まれる。本明細書で使用される場合に、コンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0083】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードするか、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せを介して、外部コンピュータ、または外部記憶デバイスへダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内部のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。
【0084】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(R)、C++、その他などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上、かつ部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続するか、または接続は、(例えば、インターネット・サービス・プロバイダを使用する、インターネットを介して)外部コンピュータに接続してもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行してもよい。
【0085】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図、またはブロック図、あるいはその両方を参照して、本明細書に記載されている。フローチャート図またはブロック図、あるいはその両方の各ブロック、およびフローチャート図またはブロック図、あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施できることが理解されるであろう。
【0086】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたはその他のプログラム可能なデータ処理装置を介して実行される命令が、フローチャート、またはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに与えられて、マシンを生成するものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶したコンピュータ可読記憶媒体が、フローチャート、またはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実施する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、またはその他のデバイス、あるいはその組合せに、特定の方法で機能するように指示できるものであってもよい。
【0087】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令が、フローチャート、またはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ実装プロセスを生成するために、コンピュータ、他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0088】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能性のある実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表すことがある。いくつかの代替的な実装では、ブロックに示されている機能は、図に示されている順序とは異なって発生する場合がある。例えば、連続して表示される2つのブロックは、実際には実質的に同時に実行される場合がある。または、関連する機能に応じて、ブロックが逆の順序で実行される場合がある。なお、ブロック図またはフローチャート図、あるいはその両方の各ブロック、およびブロック図またはフローチャート図、あるいはその両方中のブロックの組合せは、特定の機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムによって実装することができることにも留意されたい。
【0089】
開示された主題の様々な態様の文脈を提供するために、
図14と共に、以下の説明は、開示された主題の様々な態様を実装することができる適切な環境の全般的な説明を提供することを意図している。
図14を参照すると、本発明の様々な態様を実装するための適切な動作環境1400は、コンピュータ1412を備えることができる。コンピュータ1412はまた、処理ユニット1414、システム・メモリ1416、およびシステム・バス1418を備えることができる。システム・バス1418は、それに限定はされないが、システム・メモリ1416を含む、システム・コンポーネントを処理ユニット1414に動作可能に結合することができる。処理ユニット1414は、利用可能な様々なプロセッサのいずれかとすることができる。デュアル・マイクロプロセッサおよびその他のマルチ・プロセッサ・アーキテクチャもまた、処理ユニット1414として採用することができる。システム・バス1418は、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはそれに限定はされないが、業界標準アーキテクチャ(ISA)、マイクロチャネル・アーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェント・ドライブ・エレクトロニクス(IDE)、VESAローカル・バス(VLB)、ペリフェラル・コンポーネント・インターコネクト(PCI)、カード・バス、ユニバーサル・シリアル・バス(USB)、アドバンスド・グラフィクス・ポート(AGP)、ファイアワイヤ(Firewire)、およびスモール・コンピュータ・システム・インターフェース(SCSI)を含む、様々な利用可能なバス・アーキテクチャを使用するローカル・バス、あるいはその組合せを含む、いくつかのタイプのバス構造のいずれかとすることができる。システム・メモリ1416はまた、揮発性メモリ1420および不揮発性メモリ1422を備えることができる。起動時などに、コンピュータ1412内の要素間で情報を転送するための基本ルーチンを含む、基本入出力システム(BIOS)は、不揮発性メモリ1422に記憶させることができる。例証のためであって、限定ではなく、不揮発性メモリ1422としては、リード・オンリー・メモリ(ROM)、プログラマブルROM(PROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電体RAM(FeRAM)を挙げることができる。揮発性メモリ1420にはまた、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ(RAM)を含めることができる。例証のためであって、限定ではなく、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクトランバスRAM(DRRAM)、ダイレクトランバスダイナミックRAM(DRDRAM)、およびランバスダイナミックRAMなどの多くの形式で利用可能である。
【0090】
コンピュータ1412はまた、取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体を備えることができる。
図14は、例えば、ディスク・ストレージ1424を示す。ディスク・ストレージ1424としては、それに限定はされないが、磁気ディスク・ドライブ、フロッピー(R)・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックのようなデバイスも挙げることができる。ディスク・ストレージ1424にはまた、それに限定はされないが、コンパクト・ディスクROMデバイス(CD-ROM)、CDレコーダブル・ドライブ(CD-Rドライブ)、CD書き換え可能ドライブ(CD-RWドライブ)、またはデジタル・バーサタイル・ディスクROMドライブ(DVD-ROM)などの光ディスク・ドライブを含む、その他の記憶媒体と別個に、または組合せで、記憶媒体を含めることができる。ディスク・ストレージ1424のシステム・バス1418への接続を容易にするために、インターフェース1426のような、取外し可能または取外し不可能なインターフェースを使用することができる。
図14はまた、適切な動作環境1400に記載されている、ユーザと基本的なコンピュータ・リソースとの間の仲介役として作用することができるソフトウェアを示す。そのようなソフトウェアにはまた、例えば、オペレーティング・システム1428を含めることができる。ディスク・ストレージ1424に記憶することができるオペレーティング・システム1428は、コンピュータ1412のリソースを制御し、割り当てるように作用する。システム・アプリケーション1430は、例えば、システム・メモリ1416またはディスク・ストレージ1424のいずれかに記憶された、プログラム・モジュール1432およびプログラム・データ1434を介して、オペレーティング・システム1428によるリソースの管理を利用することができる。本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組合せで実装できることを理解されたい。ユーザは、1つまたは複数の入力デバイス1436を介して、コマンドまたは情報をコンピュータ1412に入力する。入力デバイス1436としては、それに限定はされないが、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナ、TVチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラ、その他などのポインティング・デバイスを挙げることができる。これらおよびその他の入力デバイスは、1つまたは複数のインターフェース・ポート1438を経由しシステム・バス1418を介して処理ユニット1414に接続することができる。インターフェース・ポート1438としては、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を挙げることができる。1つまたは複数の出力デバイス1440は、入力デバイス1436と同じタイプのポートのいくつかを使用することができる。したがって、例えば、USBポートを使用して、コンピュータ1412に入力を提供し、コンピュータ1412から出力デバイス1440に情報を出力することができる。出力アダプタ1442は、特別なアダプタを必要とする他の出力デバイス1440の間に、モニタ、スピーカ、およびプリンタのようないくつかの出力デバイス1440が存在することを示すために、設けることができる。出力アダプタ1442としては、説明であって限定ではなく、出力デバイス1440とシステム・バス1418との間の接続手段を提供する、ビデオ・カードおよびサウンド・カードを挙げることができる。その他のデバイス、またはデバイスのシステム、あるいはその両方は、1つまたは複数のリモート・コンピュータ1444のように、入力機能および出力機能の両方を提供することに留意されたい。
【0091】
コンピュータ1412は、リモート・コンピュータ1444のような1つまたは複数のリモート・コンピュータへの論理接続を使用する、ネットワーク環境で動作することができる。リモート・コンピュータ1444は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサ・ベースの機器、ピア・デバイスまたはその他一般的なネットワーク・ノード、その他とすることができ、通常、コンピュータ1412に関連して記述され要素の多くまたはすべてを含むこともできる。簡潔にするために、メモリ記憶デバイス1446のみがリモート・コンピュータ1444と共に図示されている。リモート・コンピュータ1444は、ネットワーク・インターフェース1448を介してコンピュータ1412に論理的に接続し、次いで、通信接続1450を経由して物理的に接続することができる。さらに、動作を複数の(ローカルおよびリモート)システムに分散させることができる。ネットワーク・インターフェース1448は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、セルラー・ネットワークなどのような、有線または無線、あるいはその両方の通信ネットワークを包含することができる。LANテクノロジには、ファイバ分散データ・インターフェース(FDDI)、銅線分散データ・インターフェース(CDDI)、イーサネット(R)、トークンリング(Token Ring)、その他などが含まれる。WANテクノロジには、それに限定はされないが、ポイント・ツー・ポイント・リンク、統合サービス・デジタル・ネットワーク(ISDN)のような回線交換ネットワークおよびそのバリエーション、パケット交換ネットワーク、ならびにデジタル加入者回線(DSL)が含まれる。1つまたは複数の通信接続1450とは、ネットワーク・インターフェース1448をシステム・バス1418に接続するために使用される、ハードウェア/ソフトウェアを指す。通信接続1450は、分かりやすくするために、コンピュータ1412の内部に示されているが、コンピュータ1412の外部とすることもできる。ネットワーク・インターフェース1448に接続するためのハードウェア/ソフトウェアにはまた、例示の目的のためだけに、通常の電話グレードのモデムを含むモデム、ケーブルモデムおよびDSLモデム、ISDNアダプタ、ならびにイーサネット(R)・カードなどの、内部テクノロジおよび外部テクノロジを含めることができる。
【0092】
本発明の実施形態は、任意可能な技術的詳細レベルの統合におけるシステム、方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せとすることができる。コンピュータ・プログラム製品には、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体を含めることができる。コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるために命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、それに限定はされないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述項目の任意適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、機械的にエンコードされたデバイス、例えば、パンチカード、または命令がその上に記録された溝の内部の隆起構造など、および前述のものの任意適切な組合せ、を含めることができる。本明細書で使用される場合に、コンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0093】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードするか、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せを介して、外部コンピュータ、または外部記憶デバイスへダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えることができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内部のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。本発明の様々な態様の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(R)、C++、その他などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上、かつ部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続するか、または接続は、(例えば、インターネット・サービス・プロバイダを使用する、インターネットを介して)外部コンピュータに接続することができる。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をカスタマイズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0094】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図、またはブロック図、あるいはその両方を参照して、本明細書に記載されている。フローチャート図またはブロック図、あるいはその両方の各ブロック、およびフローチャート図またはブロック図、あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施できることが理解されるであろう。これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたはその他のプログラム可能なデータ処理装置を介して実行される命令が、フローチャート、またはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに与えられて、マシンを生成するものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャート、またはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実施する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、またはその他のデバイス、あるいはその組合せに特定の方法で機能するように指示できるものであってもよい。コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令が、フローチャート、またはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ実装プロセスを生成するために、コンピュータ、他のプログラム可能なデータ処理装置、またはその他のデバイス上にロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作行為実行させるものであってもよい。
【0095】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表すことができる。いくつかの代替的な実装では、ブロックに示されている機能は、図に示されている順序とは異なって発生する可能性がある。例えば、連続して表示される2つのブロックは、実際には実質的に同時に実行することができるか、または、関連する機能に応じて、ブロックを逆の順序で実行することができる。なお、ブロック図またはフローチャート図、あるいはその両方の各ブロック、およびブロック図またはフローチャート図、あるいはその両方中のブロックの組合せは、特定の機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実施する、専用ハードウェア・ベースのシステムによって実装することができることにも留意されたい。
【0096】
本主題は、コンピュータまたは複数コンピュータ、あるいはその両方上で実行されるコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的な文脈において上記に説明してきたが、当業者は、この開示が他のプログラム・モジュールと組み合わせて実施することもできることを認識するであろう。一般に、プログラム・モジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するか、あるいはその両方を行う、ルーチン、プログラム、コンポーネント、データ構造などが含まれる。さらに、当業者は、本発明のコンピュータ実装方法が、シングル・プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話)、マイクロプロセッサ・ベースの、またはプログラム可能な、消費者向けまたは産業用の電子機器、その他を含む、その他のコンピュータ・システム構成で実施できることを理解するであろう。例証された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境でも実施することもできる。しかしながら、この開示のすべてではないにしても、いくつかの態様は、スタンドアロン・コンピュータ上で実施することができる。分散コンピューティング環境では、プログラム・モジュールはローカル・メモリ・ストレージ・デバイスとリモート・メモリ・ストレージ・デバイスの両方に配置することができる。
【0097】
本願において使用される場合、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などの用語は、コンピュータ関連のエンティティ、もしくは1つもしくは複数の特定の機能を有する、オペレーショナル・マシンに関連するエンティティを指すこと、またはそれを含むこと、あるいはその両方が可能である。本明細書において開示されるエンティティは、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかとすることができる。例えば、コンポーネントは、それに限定はされないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはその組合せとすることができる。例証のために、サーバ上で実行されているアプリケーションと、サーバの両方をコンポーネントとすることができる。1つまたは複数のコンポーネントは、プロセス、または実行のスレッド、あるいはその両方内に存在することができるとともに、コンポーネントを、1つのコンピュータ上にローカライズするか、または2つ以上のコンピュータに分散させるか、あるいはその両方を行うことができる。別の例では、それぞれのコンポーネントは、その上に記憶された様々なデータ構造を有する様々なコンピュータ可読媒体から実行することができる。コンポーネントは、ローカル・プロセス、またはリモート・プロセス、あるいはその両方を介して、例えば、1つまたは複数のデータ・パケット(例えば、ローカル・システムにおいて、分散システムにおいて、または信号を介して他のシステムとインターネットなどのネットワーク上で、あるいはその組合せにおいて、別のコンポーネントと相互作用する1つのコンポーネントからのデータ)を有する信号に従うなどして、ローカル・プロセス、またはリモート・プロセス、あるいはその両方を経由して通信することができる。別の例として、コンポーネントは、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作する、電気回路または電子回路によって動作する機械部品によって提供される特定の機能を備えた装置とすることができる。そのような場合、プロセッサは、装置の内部または外部に置くことができ、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは、機械部品なしで電子コンポーネントを介して特定の機能を提供する装置とすることができ、この場合に、電子コンポーネントには、電子コンポーネントの機能を少なくとも部分的に与えるソフトウェアまたはファームウェアを実行するための、プロセッサまたはその他の手段を含めることができる。一態様では、コンポーネントは、例えば、クラウド・コンピューティング・システム内の仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【0098】
さらに、「または」という用語は、排他的「または」ではなく、包括的「または」を意味することを意図している。つまり、特に明記されていない限り、または文脈から明らかでない限り、「XはAまたはBを使用する」は、自然な包括的順列(natural inclusive permutation)のいずれかを意味することを意図している。つまり、XがAを使用するか、XがBを使用するか、または、XがAとBの両方を使用している場合、前述のいずれの場合にも、「XはAまたはBを使用する」が満たされる。さらに、主題明細書および添付図面で使用される冠詞「ある(a)」および「1つの(an)」は、別に指定されない限り、または文脈から明確に単数形を示唆されない限り、一般に「1つまたは複数」を意味すると解釈されるべきである。本明細書で使用される場合、「例」という用語または「例示的」という用語、あるいはその両方は、例、事例(instance)、または例証としての役割を果たすことを意味するために使用される。誤解を避けるために、本明細書に開示される主題は、そのような例によって限定されない。さらに、本明細書で「例」または「例示的」、あるいはその両方として説明される任意の態様または設計は、必ずしも他の態様または設計よりも好ましい、または有利であると解釈されるべきではなく、当業者に知られている同等の例示的な構造および技術を排除することを意味するものでもない。
【0099】
本明細書で使用される場合、「プロセッサ」という用語は、それに限定はされないが、シングル・コア・プロセッサ、ソフトウェア・マルチスレッド実行機能を備えたシングル・プロセッサ、マルチ・コア・プロセッサ、ソフトウェア・マルチスレッド実行機能を備えたマルチ・コア・プロセッサ、ハードウェア・マルチスレッド・テクノロジを備えたマルチ・コア・プロセッサ、パラレル・プラットフォーム、および分散共有メモリを備えたパラレル・プラットフォームを含む、実質的に任意のコンピューティング処理ユニットまたはデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路(ASIC)、デジタル・シグナル・プロセッサ(DSP)、フィールド・プログラマブル・ゲートアレイ(FPGA)、プログラマブル・ロジック・コントローラ(PLC)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)、ディスクリート・ゲート・ロジックもしくはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、または本明細書に記載の機能を実行するように設計された、それらの任意の組合せを指すことができる。さらに、プロセッサは、スペースの使用を最適化したり、ユーザ機器のパフォーマンスを向上させたりするために、それに限定はされないが、分子ベースおよび量子ドット・ベースのトランジスタ、スイッチ、およびゲートなどの、ナノスケール・アーキテクチャを活用することができる。プロセッサは、コンピューティング処理ユニットの組合せとして実装することもできる。本開示では、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、およびコンポーネントの動作および機能に関連する実質的に任意その他の情報ストレージ・コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」に組み込まれたエンティティ、またはメモリを含むコンポーネントを指すために使用される。本明細書に記載のメモリ、またはメモリ・コンポーネント、あるいはその両方は、揮発性メモリまたは不揮発性メモリのいずれかにするか、あるいは揮発性メモリおよび不揮発性メモリの両方を含み得ることを理解すべきである。例証のためであって、限定ではなく、不揮発性メモリには、リード・オンリー・メモリ(ROM)、プログラマブルROM(PROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電体RAM(FeRAM))を含めることができる。揮発性メモリには、例えば、外部キャッシュ・メモリとして作用することができるRAMを含めることができる。例証のためであって、限定ではなく、RAMは、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブル・データレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクトランバスRAM(DRRAM)、ダイレクトランバスダイナミックRAM(DRDRAM)、およびランバスダイナミックRAM(RDRAM)などの多くの形式で利用可能である。さらに、本明細書におけるシステムまたはコンピュータ実装方法の、開示されるメモリ・コンポーネントは、これらおよびその他の任意の適切なタイプのメモリを、それに限定されることなく、含むことを意図している。上記における説明は、システム、コンピュータ・プログラム製品およびコンピュータ実装方法の単なる例を含むものである。本開示を説明する目的で、コンポーネント、プロダクト、またはコンピュータ実装方法、あるいはその組合せについての、考えられるすべての組合せを説明することは、もちろん、不可能であるが、当業者は、本開示のさらに多くの組合せおよび順列が可能であることを認識することができる。さらに、「含む(includes)」、「有する(has)」、「所有する(possesses)」、その他の用語が詳細な説明、特許請求の範囲、付録および図面で使用される限り、そのような用語は、「含む(comprising)」がクレームの移行部として使用される場合に解釈されるときの、「含む(comprising)」という用語と同様の意味において、包括的であることを意図する。様々な実施形態の説明を例証の目的で提示してきたが、網羅的であることを意図するものではなく、または開示される実施形態に限定されることを意図するものではない。多くの変更形態および変形形態が、記載される実施形態の範囲から逸脱することなく、当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、市場で見られる技術に対する実際的な適用または技術的改善を最もよく説明するため、または当業者が本明細書に開示される実施形態を理解できるようにするために選択された。