(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-12
(45)【発行日】2025-02-20
(54)【発明の名称】整数計画法技法を用いる最適な解釈可能決定木
(51)【国際特許分類】
G06N 20/00 20190101AFI20250213BHJP
G06Q 50/10 20120101ALI20250213BHJP
【FI】
G06N20/00
G06Q50/10
(21)【出願番号】P 2022548798
(86)(22)【出願日】2021-02-15
(86)【国際出願番号】 IB2021051239
(87)【国際公開番号】W WO2021165811
(87)【国際公開日】2021-08-26
【審査請求日】2023-07-21
(32)【優先日】2020-02-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ムラリ、パヴァンクマール
(72)【発明者】
【氏名】ジュウ、ハオラン
(72)【発明者】
【氏名】ファン、ズン、ティエン
(72)【発明者】
【氏名】グエン、ラム、ミン
【審査官】北川 純次
(56)【参考文献】
【文献】国際公開第2019/207728(WO,A1)
【文献】米国特許出願公開第2005/0049985(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 - 99/00
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
予測モデリングのためのコンピュータにより実施される方法であって、
プロセッサを用いて、プロセスから複数のデータ入力を受信することと、
前記プロセッサを用いて、ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択することと、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記プロセッサを用いて、前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築することと、
前記プロセッサを用いて、前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告することと、
を含む方法。
【請求項2】
予測モデリングのためのコンピュータにより実施される方法であって、
プロセッサを用いて、プロセスから複数のデータ入力を受信することと、
前記プロセッサを用いて、ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択することと、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記プロセッサを用いて、前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築することと、
前記プロセッサを用いて、前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告することと、
前記プロセッサを用いて、前記データ・サブセットを選択するように前記ODTの各葉ノード内でデータ選択を実行することと、
を含む方法。
【請求項3】
予測モデリングのためのコンピュータにより実施される方法であって、
プロセッサを用いて、プロセスから複数のデータ入力を受信することと、
前記プロセッサを用いて、ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択することと、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記プロセッサを用いて、前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築することと、
前記プロセッサを用いて、前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告することと、
前記プロセッサを用いて、前記ODTを強化するように切断面のセットを使用することと、
を含む方法。
【請求項4】
予測モデリングのためのコンピュータにより実施される方法であって、
プロセッサを用いて、プロセスから複数のデータ入力を受信することと、
前記プロセッサを用いて、ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択することと、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記プロセッサを用いて、前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築することと、
前記プロセッサを用いて、前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告することと、
前記プロセッサを用いて、前記複数のデータ入力からデータ・サブセットを選択することは、前記データ・サブセットの凸包の内側の点が最大にされるように前記データ・サブセットを選択することと、
を含む方法。
【請求項5】
前記プロセッサを使用して、前記最適な決定木の前記予測が前記閾値の値よりも大きいときに、制御動作を推奨することをさらに含む、請求項1~
4のいずれか1項に記載のコンピュータにより実施される方法。
【請求項6】
前記プロセッサを用いて、前記データ・サブセットを選択するように前記ODTの各葉ノード内でデータ選択を実行することをさらに含む、請求項1
又は3~4のいずれか1項に記載のコンピュータにより実施される方法。
【請求項7】
前記プロセッサを用いて、前記ODTを強化するように切断面のセットを使用することをさらに含む、請求項1
~2、4又は6に記載のコンピュータにより実施される方法。
【請求項8】
前記プロセッサを用いて、前記複数のデータ入力からデータ・サブセットを選択することは、前記データ・サブセットの凸包の内側の点が最大にされるように前記データ・サブセットを選択することを含む、請求項1~
3又は
7に記載のコンピュータにより実施される方法。
【請求項9】
前記ODTは、多変数の決定木を含む、請求項1~
8のいずれか1項に記載のコンピュータにより実施される方法。
【請求項10】
前記ユーザに警告することに応じて、前記プロセッサを用いて、前記最適な決定木の解析に基づく制御動作を実行すること
をさらに含む、請求項1~
9のいずれか1項に記載のコンピュータにより実施される方法。
【請求項11】
予測モデリングのためのシステムであって、
メモリと、
前記メモリに通信可能に結合され、前記メモリ内に記憶された命令を実行するように動作可能なプロセッサであって、前記命令は、前記プロセッサに、
プロセスから複数のデータ入力を受信させ、
ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択させ、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築させ、
前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告させる、
前記プロセッサと、を備えるシステム。
【請求項12】
予測モデリングのためのシステムであって、
メモリと、
前記メモリに通信可能に結合され、前記メモリ内に記憶された命令を実行するように動作可能なプロセッサであって、前記命令は、前記プロセッサに、
プロセスから複数のデータ入力を受信させ、
ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択させ、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築させ、
前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告させる、
前記プロセッサと、を備え、
前記命令は、前記プロセッサに、前記データ・サブセットを選択するように前記ODTの各葉ノード内でデータ選択をさらに実行させる、
システム。
【請求項13】
予測モデリングのためのシステムであって、
メモリと、
前記メモリに通信可能に結合され、前記メモリ内に記憶された命令を実行するように動作可能なプロセッサであって、前記命令は、前記プロセッサに、
プロセスから複数のデータ入力を受信させ、
ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択させ、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築させ、
前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告させる、
前記プロセッサと、を備え、
前記命令は、前記プロセッサに、前記ODTを強化するように切断面のセットをさらに使用させる、
システム。
【請求項14】
予測モデリングのためのシステムであって、
メモリと、
前記メモリに通信可能に結合され、前記メモリ内に記憶された命令を実行するように動作可能なプロセッサであって、前記命令は、前記プロセッサに、
プロセスから複数のデータ入力を受信させ、
ガイドとして他の発見的方法から訓練された決定木を使用し、各葉ノード内のデータ点の中で、線形計画法を解いて解を得ることによってデータ選択を行い、各葉ノードから選択された全てのデータ・サブセットを組み合わせることにより、前記複数のデータ入力からデータ・サブセットを選択させ、
ここで、前記選択されたデータ・サブセットの凸包の内側にある同じラベルを有するデータ点の全てが訓練セットから削除される、
前記選択されたデータ・サブセットに基づいて最適な決定木(
以下、該「最適な決定木」を「ODT」
という)を構築させ、
前記最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告させる、
前記プロセッサと、を備え、
前記複数のデータ入力からデータ・サブセットを選択することは、前記データ・サブセットの凸包の内側の点が最大にされるように前記データ・サブセットを選択することを含む、
システム。
【請求項15】
前記命令は、前記最適な決定木の前記予測が前記閾値の値よりも大きいときに、前記プロセッサに制御動作をさらに推奨させる、請求項
11~
14のいずれか1項に記載のシステム。
【請求項16】
前記命令は、前記プロセッサに、前記データ・サブセットを選択するように前記ODTの各葉ノード内でデータ選択をさらに実行させる、請求項
11又は13~
14のいずれか1項に記載のシステム。
【請求項17】
前記命令は、前記プロセッサに、前記ODTを強化するように切断面のセットをさらに使用させる、請求項
11~
12、
14又は
16に記載のシステム。
【請求項18】
前記複数のデータ入力からデータ・サブセットを選択することは、前記データ・サブセットの凸包の内側の点が最大にされるように前記データ・サブセットを選択することを含む、請求項
11~
13又は
17に記載のシステム。
【請求項19】
前記ODTは、多変数の決定木を含む、請求項
11~
18のいずれか1項に記載のシステム。
【請求項20】
前記命令は、前記プロセッサに、前記ユーザに警告することに応じて、前記プロセッサを用いて、前記最適な決定木の解析に基づく制御動作を実行させる
請求項
11~
19のいずれか1項に記載のシステム。
【請求項21】
コンピュータ・プログラムであって、請求項1~
10のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
【請求項22】
コンピュータ・プログラムを記録したコンピュータ可読媒体であって、前記コンピュータ・プログラムは、請求項1~
10のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、前記コンピュータ・プログラムである、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、予測モデリングに関し、より具体的には、整数線形計画法技法を用いる最適な解釈可能決定木に関する。
【背景技術】
【0002】
予測モデルは、プロセス制御環境に役立つ。例えば、高炉、石油精製、およびサプライ・チェーン管理は全て、プロセス制御に頼る。ディープ・ニューラル・ネットワーク(「DNN」)および最適な決定木(「ODT」)は、プロセス制御に使用され得る。DNNは、入力と出力の間に複数の層を有する人工ニューラル・ネットワークである。DNNは、入力を出力に変えるために正しい数学的操作を見つける。ODTは、訓練の正確さとモデルの単純さとの間の最適なトレード・オフを有する決定木である。
【0003】
決定木ベースの学習者は、単純で正確であることを必要とする。したがって、上述した問題に対処することが当業界で必要である。
【発明の概要】
【0004】
さらなる一態様から見ると、本発明は、予測モデリングのためのコンピュータ・プログラム製品であって、コンピュータ・プログラム製品は、処理回路によって可読であり、本発明のステップを実行する方法を実行するために処理回路により実行するための命令を記憶するコンピュータ可読記憶媒体を備える、コンピュータ・プログラム製品を提供する。
【0005】
さらなる一態様から見ると、本発明は、コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリの中にロード可能であるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるときに、本発明のステップを実行するソフトウェア・コード部を備える、コンピュータ・プログラムを提供する。
【0006】
さらなる一態様から見ると、本発明は、決定木を生成し、最適化するコンピュータ・プログラム製品であって、コンピュータ・プログラム製品は、それを備えて具体化されたプログラム命令を有するコンピュータ可読記憶媒体を備え、プログラム命令は、コンピュータに、プロセスから複数のデータ入力を受信することと、線形計画法を解いて解を得ることによって複数のデータ入力からデータ・サブセットを選択することと、データ・サブセットに基づいて最適な決定木(「ODT」)を構築および最適化することと、最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告することと、を含む方法を実行させるようにコンピュータによって実行可能である、コンピュータ・プログラム製品を提供する。
【0007】
本発明の実施形態は、整数線形計画法技法を用いる最適な解釈可能決定木に向けられている。非限定の例のコンピュータにより実施される方法は、プロセッサを用いて、プロセスから複数のデータ入力を受信することと、プロセッサを用いて、線形計画法を解いて解を得ることによって複数のデータ入力からデータ・サブセットを選択することと、を含む。方法は、プロセッサを用いて、データ・サブセットに基づいて最適な決定木を構築および最適化し、プロセッサを用いて、最適な決定木の予測が閾値の値よりも大きいときに、ユーザに警告する。
【0008】
本発明の他の実施形態は、コンピュータ・システムおよびコンピュータ・プログラム製品における上記の方法の特徴を実施する。
【0009】
さらなる技術的特徴および利益は、本発明の技法によって実現される。本発明の実施形態および態様は、本明細書中に詳細に説明され、権利主張される主題事項の一部とみなされる。より良く理解するためには、詳細な説明および図面を参照されたい。
【0010】
本明細書中に記載された排他的権利の詳細は、本明細書の末尾にある特許請求の範囲に特に指摘され、はっきりと権利主張される。本発明の実施形態の前述のおよび他の特徴および利点は、添付図面と併せて得られる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態による最適な解釈可能決定木を実施するプロセスの流れ図である。
【
図2】本発明の実施形態によるデータ選択プロセスの流れ図である。
【
図3】本発明の一実施形態によるデータ・セット選択を示す図である。
【
図4】本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。
【
図5】本発明の一実施形態による抽象化モデル層を示す図である。
【
図6】本発明の態様を実施することができる例示的なコンピューティング・システムの詳細を示す図である。
【発明を実施するための形態】
【0012】
本明細書中に示された図は、例示である。本明細書中に記載された図または操作に対して、本発明の範囲から逸脱することなく、多くの変形が存在し得る。例えば、動作は、異なる順序で実行されてもよく、あるいは動作は、追加、削除、または修正されてもよい。また、用語「結合される」およびその変形は、2つの要素間に通信パスを有することを説明し、それらの間に介在する要素/接続がない状態の要素間の直接の接続を示唆しない。これらの変形の全部は、本明細書の一部とみなされる。
【0013】
本発明の1つまたは複数の実施形態は、整数計画法技法を用いて立証可能に最適な2つまたは3つのディープ・ツリーを学習するように設計されたロバストな決定木ベースの学習者を提供する。これは、解釈可能性と容易な最適化の両方を提供する。混合された整数線形計画法の使用によって、スケーラブルであるODTの大局解(global solution)が決定される。本発明の実施形態は、データセット全体に係る情報をできるだけ多く取り込むデータ点のサブセットを選ぶことによって一般化を失うことなく事前に訓練データのデータ選択を使用し、次いで、ODTのための混合された整数計画法(「MIP」)の定式化が、このデータ・サブセットに対して唯一確立される。詳細には、線形計画法(「LP」)ベースのサブセット選択手順が実施される。本発明の実施形態の実施によって、連続プロセス故障予測などの実際の応用が達成される。
【0014】
数理最適化技法は、機械学習(「ML」)問題を解くためのいつでも主要なツールであるが、MIPは、主にその扱いやすさの乏しさにより、以前はめったに検討されていなかった。しかしながら、MIP理論の開発、最適化ソルバにより、ハードウェアの改良と相まって、25年前と比較してMIPにおける驚異的な8000億倍のスピードアップがある。したがって、MLは、MIPベースのモデルを採用し始めており、多くの方法は、発見的手法が伝統的に用いられている古典的なMLタスクに対処するために混合された整数計画法を活用することが提案されている。MIPとMLとの間の相互作用を研究する試みの中で、ODTの構築は、主に決定木の組合せの構造およびその解釈可能性により、最もポピュラーなもののうちの1つの中にある。多くの関連したMIP定式化が、異なる目的のためODTを訓練するために提案されている。
【0015】
解決策における従前の試みには、解釈可能性および最適化の容易さに関する問題がある。例えば、ディープ・ニューラル・ネットワークは、ネットワークがどのように内部的に動作しているのかへの洞察がほとんどか全くなく、実質的にブラック・ボックスである。非常に非線形のモデルは、最適化することが困難である。言い換えれば、局所的な最小を見つけるのが難しい。過去に使用された深層決定木を伴う解決策は、最適化が難しく、時間がかかる。それらも、解釈可能性の問題に悩まされ得る。
【0016】
本発明の1つまたは複数の実施形態は、最初に訓練データのデータ選択を行う単純な決定木を含む技術的解決策を与えることによって先行技術の上記欠点のうちの1つまたは複数に対処する。サブセットは、線形計画法ベースのデータ選択法を用いて選択される。データのこのサブセットは、ODTのためのMIP定式化に使用される。これは、解釈可能性(ハム(hum)が決定の理由を理解することができる程度)、扱いやすさ(データ・サイズに対応する妥当な時間制限内に出力を返す能力)、訓練の正確さ、および一般化能力または試験の正確さにおいて性能強化をもたらす。
【0017】
次に、
図1を見ると、最適な解釈可能決定木により実施されるプロセスの流れ図が、本発明の1つまたは複数の実施形態により、全体的に示される。ブロック110において、データ選択が行われる。LPベースのデータ選択プロセスが、点セットの幾何学的近似として働くように実施される。プロセスは、とても高い訓練の正確さを有する最適な分類木を仮定し、ラベルyを有するI
0のいくつかのデータ点は、全て正確に分類され、同じ葉ノードに割り当てられたものとする。ブロック110において、プロセスは、I
0を訓練セットのサブセットとし、x
iを取り除かれた訓練サンプルとした場合、I
0のデータ点を正確に分類することで凸包の内側の点も自動的に正確に分類することになるので、I
0 conv({x
i|i∈I
0)の凸包の内側の同じラベルyを有するデータ点の全てを訓練セットから削除する。凸包の内側のデータ点の個数は、本発明のいくつかの実施形態において最大にされる。
【0018】
事前に最適な分類木についての情報がないので、ここで、プロセスは、ガイドとしていくつかの他の発見的方法から訓練された決定木を使用し、次いで各葉ノード内でデータ選択をする。次いで、各葉ノード内のそれらのデータ点の中で、プロセスは、別々にデータ選択をする。最終的に、プロセスは、各葉ノードから選択された全てのデータ・サブセットを組み合わせ、MIP-ODTを使用して、このデータセットに対して分類木を訓練する。
【0019】
概して、データ選択に関して、プロセスは、(1)conv({x
i|i∈I
0)の内側の点は、できるだけ多く、または最大にされる、(2)選択されたサンプル点|I
0|の個数は、できるだけ少ないという2つの基準に従ってデータ・サブセットI
0を選択する。例えば、|I
0|を訓練するための残りのサンプル点は、元のデータセットの10%未満であり、一方、I
0の凸包の内側のサンプルの個数は、90&よりも多い。一例が、
図3に与えられる。
【0020】
データ選択すべき基本バイナリLPは、以下の通りである。各クラスタN⊆[n]において、
【0021】
【0022】
ここで、f、gは、負でない成分を有する2つのパラメータ・ベクトルであり、ajは、データ点jが選択されているか否かを示し、bjは、jが、選択されたデータ点の凸結合として表すことができるか否かを示し、λjiは、いくつかの他の点の凸結合として点jを表すときに、点iの凸結合係数を示す。
【0023】
bj=1のとき、最初の2つの制約は、λji>0で点xjを他の点iの凸結合としてほぼ表し、bj=0のとき、これらの2つの制約は、その場合には全てのiについてλji=0であるので保持される。第3の不等式0≦λji≦aiは、プロセスが選択されたデータ点を使用することができることを意味し、これは、他のデータ点を表すためにai=1であるものである。最後の制約aj+bj≦1は、任意の選択されたデータ点が他の選択されたデータ点の凸結合として表すことができないことを述べている。f,gおよび凸結合の制約の選択に応じて、概して、上記の式に関する多くの異なる変形が存在するであろう。
【0024】
f=0、g=1のとき、プロセスはaを算出し(project out)、以下のよりシンプルなバイナリLPを得ることができるという結果になる。
【0025】
【0026】
次の結果は、このバイナリLPが、以下のLP、すなわち、
【0027】
【数3】
を解くことによって等価的に解くことができることを示す。
【0028】
上記式の任意の最適解(b,λ)について、(b,λ)が先の式の最適解であるようにλが存在し、逆も同様である。
【0029】
いくつかの事前に与えられた閾値パラメータβ1、β2∈(0,1)について、データ選択プロセス(ブロック110)が、後で説明される
図2に与えられる。
【0030】
データ選択後、決定木は、以下の通り構築され、最適化される(ブロック120)。一般性を失うことなく、プロセスは、データセットのクラスが[Y]:={1,2,...,Y}であると仮定し、ただし、Yは、クラスの個数である。各データ点i∈[n]は、(xi,yi)として示され、ただし、nは、データ点の個数を示し、xiは、d次元ベクトルであり、yi∈{1,...,Y}である。プロセスは、Fq⊆[d]を全ての数的特徴の添字集合であるように示し、一方、Fcは、分類に属する全ての特徴の添字集合を示す。この定式化において、プロセスは、数的特徴(Fq=[n])だけを有するデータセットを検討する。訓練されたODTが実際には不平衡であり得ても、定式化は、深さDを有する平衡二分木について確立される。ここで、木の分岐ノードは、B:=[2D-1]であるように示され、葉ノードは、L:={2D,...,2D+1-1}として示される。プロセスは、表記AR(l)およびAL(l)も使用して、左(右)分岐が根ノードから葉ノードlへの経路上で従っている葉ノードlの先祖のセットを表す。
【0031】
MIPを用いて決定木を訓練するとき、ほとんどの場合、古典的な単一の不定の決定木よりも多変数の決定木を訓練することが好ましく、というのも、単一の不定の決定木の場合、それはある特徴が各分岐ノードで分割のために使用され得るまで強要される追加のバイナリ変数を必要とするからである。単一変数の決定木への一般化のように、多変数の決定木は、一般的な発見的アルゴリズムを用いて訓練することはより困難である。これらの2つのタイプの決定木間の唯一の差異は、分岐する超平面が軸に平行でなければならないか否かである。多変数の決定木は、MIPモデルによって訓練するのがより容易であるので、プロセスは、単一変数の決定木が、各分岐ノードについてもう1つ制約を定式化に追加することによってやはり定式化できるとしても、最適な多変数の決定木に関して説明されるだけである。MIP-ODT定式化は、
【0032】
【0033】
深さDを有する平衡二分木は、各分岐ノードで分岐する超平面、および各葉ノードに割り当てられたラベルといった2つの要素によって特徴付けられるのみである。我々のMIP-ODTでは、分岐ノードbにおける分岐している超平面は<hb,xi>=gbと示され、分岐則は、次によって与えられる:データiが、<hb,xi>≦gbの左の枝へ行き、そうでなければ右側へ行く。葉ノードlに割り当てられたラベルは、ul∈[Y]があるとの仮定によって、ulと示される。
【0034】
バイナリ変数は
【数5】
および
【数6】
である。各データ点iは、葉ノードの1つに入らなければならず、したがって、プロセスは、各i∈[n]についてΣ
l∈Le
il=1を強要し、これは制約(1k)である。
【数7】
は、データiについての分類されたクラスを示し、したがって、プロセスは、制約
【数8】
を有する。これらのバイナリ項を表すために追加の変数w
ilを導入して、プロセスは、w
il=u
le
ilについてMcCormick緩和を行う。これらは、制約(1c)~(1e)である。ここで、e
ilはバイナリであるように強要されるので、このMcCormick緩和は、(1c)~(1e)がいくつかの余分な変数wを保持する場合およびその場合のみ
【数9】
であるという意味で、正確である。
【0035】
ciと
【数10】
との間の関係を定式化するために、プロセスは、第1の制約(1b)を有し、ci=0のとき、意味データiは正しく分類され、
【数11】
を有さなければならず、c
i=1のとき、
【数12】
は、[1,Y]の間で任意の値を自由にとる。
【0036】
制約(1f)、(1g)、および(1i)は、各ノードb∈Bで分岐則を定式化することについてであり、データiがノードbで左の枝へ行く場合、
【数13】
であり、それが右側へ行く場合、
【数14】
である。MIPでは、
【数15】
を一対の相補的な変数
【数16】
および
【数17】
に分け、ビッグM(big-M)法によって毎回これらの2つの変数のうちの1つを0にさせることによってこの関係を定式化するのは、従来の手法である。ここで、相補的手段
【数18】
および
【数19】
は、同時に共に正であることはできない。
【0037】
これは、我々の分岐則と正確には同じでなく、データiが右の枝に行くとき、代わりにそれは、
【数20】
を厳密に満足すべきである。唯一特別の場合は、
【数21】
のときである。
【0038】
ソフト・マージン変数m
i,bにペナルティを科すことは、サポート・ベクタ・マシン(「SVM」)によって動機付けられ、プロセスは、分岐している超平面が全てのデータ点に近すぎないことを望む。これは、目的関数を与える。
【数22】
【0039】
オッカムの剃刀の原理によって、プロセスは、余分なペナルティ項(penalization term)
Σb||hb||0
を追加することによってモデルの単純さ(希薄)も考慮に入れる。
【0040】
誤分類の数字を目的収率(objective yield)に加えると、
【数23】
である。
【0041】
【数24】
および||h
b||
0×||h
b||
1を線形化すると、目的(objective)は、
【数25】
である。ただし、α
1およびα
2は、いくつかの正のパラメータである。
【0042】
一連の切断面が、上記MIP-ODT定式化をさらに強化するために使用されてもよい。切断面は、
∀l∈L,Σici≧Σiei,l-sY
∀l∈L,Σi(ci+ei,l)≧s1(Y-2D+1)、および
s1+・・・+sY-2
D≦Σici≦n-sY
を含む。
【0043】
ここで、プロセスは、任意のk∈[Y]について、Nk:={i∈[n]:xi,d=k}を示し、S:={|Nk|:k∈[Y]}であり、|N1|=s1≦|N2|=s2≦...≦|NY|=sYを仮定する。
【0044】
ODTの生成および最適化の後、ODTからもたらされる予測が閾値の値未満であるか判定するためにチェックが行われる(ブロック130)。その場合、プロセスにおけるアセット(asset)は、制御下である(ブロック150)。そうでない場合、プロセスは、ユーザに警告し、ODTの分析に基づいて制御動作を推奨する(ブロック140)。制御動作は、特徴ベクトル入力xiの値を調整することによって実施され、これにより予測出力yiに関する変化という結果になる。
【0045】
図1に関して説明したプロセスが、例えば、教師あり異常予測の一種である連続プロセス故障予測に使用されてもよい。プロセス故障が検出されるときに、それは、ユーザに警告するように設計されている。それは、履歴プロセスデータに基づいて知らされ、AIベースのモデルを訓練するためのグラウンドトゥルースとして働く。閾値、傾向、または複合(multiple)などの様々な規則のタイプが、実施され得る。例えば、閾値は、例えば、タンク容量が最少量未満であるときに、警告することができる。傾向は、例えば、スループットの減少があるときに、または電力低下があるときに、警告することができる。複合は、セット・ポイントなしで流れの損失があるときに、または、例えば、温度が閾値未満であり、第2の閾値を上回るレートが予測されるときに、トリガすることができる。
【0046】
プロセス故障予測に関して、ODTは、プロセス故障を予測する目的で生成される。プロセス・センサーのシーケンス、およびラベル付きアップセットは、分類問題に変換される。故障イベントは、イベントを予期する学習モデルを可能にするようにトレーニング(訓練)・ターゲットを作り出すようにルック・アヘッド・ウィンドウを用いて抽出される。特徴は、要約関数を用いて1つまたは複数のルック・バック・ウィンドウから抽出される。
【0047】
図2は、本発明の実施形態によるデータ選択プロセスの流れ図を示す。β
1,β
2∈(0,1)の場合、
【0048】
【数26】
を解き、最適解(b,λ)を得る(ブロック210)。
【0049】
IN:={i∈N:bi=1}、λ=T(λ)、JN:={i∈N:∃j∈IN、ただし、λji≧1/(d+1)}、KN:=N\(IN U JN)を示す。ブロック220において、|IN|/|N|≧1-β1の場合、N/INを訓練セットとして選択する(ブロック230)。ブロック240において、|JN|≧β2|N|≧の場合、JNを訓練セットとして選択する(ブロック250)。さもなければ、ブロック260において、KNについて、超平面データ選択を行い、第1のβ2|N|-|JN|の点を、選択された訓練セットとしてJNと共に選ぶ。
【0050】
クラウド・コンピューティングは、最小限の管理努力またはサービスの提供者との相互作用で迅速にプロビジョニングおよびリリースすることができる設定可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス・デリバリのモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0051】
特性は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、人がサービスの提供者とやりとりする必要なく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:機能は、ネットワーク上で利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、モバイル・フォン、ラップトップ、およびPDA)による使用を助ける標準的な機構を通じてアクセスされる。
リソースの共用:提供者のコンピューティング・リソースは、マルチ・テナント・モデルを用いて複数の消費者にサービスするようにプールされ、異なる物理的および仮想的リソースは、需要に従って動的に割り当てられ、また再割り当てされる。消費者は概して与えられたリソースの正確な位置について制御または知識を有さないが、より高いレベルの抽象化(例えば、国、州、またはデータセンタ)で位置を指定することができ得るという点で、位置独立性の観念がある。
スピーディな拡張性(Rapid elasticity):機能は、素早くスケール・アウトするために、迅速におよび弾力的に、場合によっては自動的に、プロビジョニングすることができ、素早くスケール・インするために迅速に解除することができる。消費者にとって、プロビジョニングのために利用できる機能は、しばしば無制限であるように見受けられ、任意の時間に任意の量で購入することができる。
サービスが計測可能であること(Measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適切なある抽象化レベルで計測機能を活用することによってリソースの使用を自動的に制御し、最適化する。リソースの使用は、監視され、制御され、および報告されてもよく、利用されたサービスの提供者と消費者の両方に透明性を与える。
【0052】
サービス・モジュールは以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS):消費者に与えられる機能は、クラウド・インフラストラクチャ上で実行する提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インタフェースを通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらに個々のアプリケーション機能を含む基本的なクラウド・インフラストラクチャを管理または制御しないが、限られたユーザ特定のアプリケーション構成セッティングは、ことによると例外である。
プラットフォーム・アズ・ア・サービス(PaaS):消費者へ提供される機能は、提供者によってサポートされるプログラミング言語およびツールを使用して作り出される消費者が生成または取得したアプリケーションを、クラウド・インフラストラクチャ上へ展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基本的なクラウド・インフラストラクチャを管理または制御しないが、開発されたアプリケーション、およびことによるとアプリケーション・ホスティング環境設定についての制御を有する。
インフラストラクチャ・アズ・ア・サービス(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および消費者が任意のソフトウェアを展開および実行することができる他の基本的なコンピューティング・リソースをプロビジョニングすることであり、これは、オペレーティング・システムおよびアプリケーションを含み得る。消費者は、基本的なクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションの制御、および場合によっては、選ばれたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の制限された制御を有する。
【0053】
展開モデルは、以下の通りである。
プライベート クラウド:クラウド・インフラストラクチャは、1つの組織のためだけに運用される。それはその組織または第三者によって管理されてもよく、オン・プレミスまたはオフ・プレミスで存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を共有している特定のコミュニティをサポートする。それは、組織または第三者によって管理されてもよく、オン・プレミスまたはオフ・プレミスで存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大企業グループに利用可能にされ、クラウド・サービスを販売している組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、ユニークなエンティティのままであるが、データおよびアプリケーションのポータビリティ(例えば、クラウド間の負荷バランシングのためのクラウド・バースティング)を可能にする標準化されたまたは独自の技術によって一緒に結び付けられている2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成物である。
【0054】
クラウド・コンピューティング環境は、ステートレス、低結合、モジュール性、およびセマンティック相互運用性に焦点を絞って指向されたサービスである。クラウド・コンピューティングの核心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0055】
ここで
図4を参照すると、例示的なクラウド・コンピューティング環境50が図示される。図示の通り、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含み、例えば、パーソナル・デジタル・アシスタント(PDA)またはセルラフォン54A、デスクトップコンピュータ54B、ラップトップ・コンピュータ54C、または車両コンピュータ・システム54N、あるいはそれらの組合せなどのクラウド消費者によって使用されるローカル・コンピューティング・デバイスは、上記ノードと通信することができる。ノード10は、互いに通信することができる。それらは、以上に記載されるようなプライベート、コミュニティ、パブリックまたはハイブリッド・クラウド、あるいはそれらの組合せなどの1つまたは複数のネットワークにおいて、物理的にまたは仮想的にグループ化され得る(図示せず)。これは、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェア・アズ・サービス、あるいはそれらの組合せを提供することを可能にし、そのためにクラウド消費者は、ローカル・コンピューティング・デバイス上にリソースを維持する必要がない。
図4に示されるコンピューティング・デバイス54A~Nのタイプは、例示を意図したにすぎず、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク、または(例えば、ウェブ・ブラウザを使用する)ネットワーク・アドレス可能な接続、あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信することができると理解される。
【0056】
次に、
図5を参照すると、クラウド・コンピューティング環境50(
図4)によって提供される機能的抽象化層のセットが示される。
図5に示されたコンポーネント、層、および機能は、例示を意図したにすぎず、本発明の実施形態は、それに限定されないことを予め理解されたい。図示の通り、以下の層および対応する機能が提供される。
【0057】
ハードウェアおよびソフトウェア層60は、ハードウェア・コンポーネント、およびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68を含む。
【0058】
仮想化層70は、抽象化層を提供し、抽象化層からは、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供され得る。
【0059】
一例では、管理層80は、以下に記載される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定およびプライシング82は、リソースがクラウド・コンピューティング環境内で利用される際のコスト・トラッキング、およびこれらのリソースの消費のビリングまたはインボイシングを提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウド消費者およびタスクのためのアイデンティティ認証、ならびにデータおよび他のリソースに関する保護を提供する。ユーザ・ポータル83は、消費者およびシステム管理者に、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス品質保証(SLA)プランニングおよびフルフィルメント85は、将来の要求がSLAに従って予測されるクラウド・コンピューティング・リソースのための事前構成および調達を提供する。
【0060】
ワークロード層90は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、およびODT構築および最適化処理96を含む。
【0061】
図6は、本発明の態様を実施することができる例示的なコンピューティング・システムの詳細を示す。
図6は、本発明の1つまたは複数の態様を実施するために使用することができるコンピュータ・システム600の高レベル・ブロック図を示す。コンピュータ・システム600は、メディア・デバイスとして働くことができ、本発明の全体を実施し、または他のコンピュータおよびクラウド・ベースのシステムと協働して、本発明を実施するように働くことができる。より具体的には、コンピュータ・システム600は、本発明の実施形態のいくつかのハードウェア・コンポーネントを実施するために使用され得る。1つの例示的なコンピュータ・システム600が示されているが、コンピュータ・システム600は、コンピュータ・システム600を追加のシステム(図示せず)に接続する通信パス655を含み、インターネット、イントラネット、または無線通信ネットワーク、あるいはその組合せなど、1つもしくは複数のワイドエリアネットワーク(WAN)、またはローカル・エリア・ネットワーク(LAN)、あるいはその組合せを含み得る。コンピュータ・システム600および追加のシステムは、例えば、それらの間でデータを通信するために、通信パス655を介して通信している。
【0062】
コンピュータ・システム600は、1つまたは複数のプロセッサ、例えばプロセッサ605を含む。プロセッサ605は、通信インフラストラクチャ660(例えば、通信バス、クロス・オーバー・バー、またはネットワーク)に接続される。コンピュータ・システム600は、ディスプレイ・ユニット625上に表示するためのグラフィック、テキスト、および他のデータを通信インフラストラクチャ660から(または図示されないフレーム・バッファから)送るディスプレイ・インタフェース615を含むことができる。コンピュータ・システム600は、メイン・メモリ610、好ましくはランダム・アクセス・メモリ(RAM)を含むこともでき、二次メモリ665を含むこともできる。二次メモリ665は、例えば、フロッピー(R)・ディスク・ドライブ、磁気テープ・ドライブ、または光学ディスク・ドライブを表す、例えば、ハード・ディスク・ドライブ620、またはリムーバブル・ストレージ・ドライブ630、あるいはその両方を含むことができる。リムーバブル・ストレージ・ドライブ630は、当業者によく知られているやり方で、リムーバブル・ストレージ・ユニット640からの読み出し、またはリムーバブル・ストレージ・ユニット640への書き込み、あるいはその両方を行う。リムーバブル・ストレージ・ユニット640は、リムーバブル・ストレージ・ドライブ630により読み出されたり書き込まれたりする、例えば、フロッピー(R)・ディスク、コンパクト・ディスク、磁気テープ、または光学ディスクなどを表す。理解されるように、リムーバブル・ストレージ・ユニット640は、コンピュータ・ソフトウェアまたはデータあるいはその両方が中に記憶されているコンピュータ可読媒体を含む。
【0063】
代替的な実施形態では、二次メモリ665は、コンピュータ・プログラムまたは他の命令がコンピュータ・システムにロードされることを可能にする他の同様の手段を含むことができる。そのような手段は、例えば、リムーバブル・ストレージ・ユニット645、およびインタフェース635を含み得る。そのような手段の例は、プログラム・パッケージおよびパッケージ・インタフェース(例えば、ビデオ・ゲーム・デバイスに見られるもの)、リムーバブル・メモリ・チップ(例えば、EPROM、またはPROM)、および関連付けられるソケット、ならびにソフトウェアおよびデータがリムーバブル・ストレージ・ユニット645からコンピュータ・システム600へ転送されることを可能にする他のリムーバブル・ストレージ・ユニット640およびインタフェース635を含み得る。加えて、カメラ670は、通信インタフェース660を通じてプロセッサ605、メイン・メモリ610、ならびに他の周辺装置およびストレージと通信している。
【0064】
コンピュータ・システム600は、通信インタフェース650を含むこともできる。通信インタフェース650は、ソフトウェアおよびデータがコンピュータ・システムと外部デバイスとの間で転送されることを可能にする。通信インタフェース650の例は、モデム、ネットワーク・インタフェース(例えば、イーサネット(R)・カード)、通信ポート、またはPCM-CIAスロットおよびカードなどを含み得る。通信インタフェース650を介して転送されるソフトウェアおよびデータは、例えば、通信インタフェース650により受信することができる電子信号、電磁信号、光学信号、または他の信号であり得る信号の形態である。これらの信号は、通信パス(すなわち、チャネル)655を介して通信インタフェース650へ供給される。通信パス655は、信号を搬送し、ワイヤもしくはケーブル、光ファイバ、電話回線、セルラ・フォン・リンク、RFリンク、または他の通信チャネル、あるいはそれらの組合せを用いて実現され得る。
【0065】
本説明において、用語「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」は、メイン・メモリ610および二次メモリ665、リムーバブル・ストレージ・ドライブ630、ならびにハード・ディスク・ドライブ620にインストールされたハード・ディスクなどの媒体を全体的に指すために使用される。コンピュータ・プログラム(コンピュータ制御ロジックとも呼ばれる)は、メイン・メモリ610、または二次メモリ665、あるいはその両方に記憶される。コンピュータ・プログラムは、通信インタフェース650を介して受信することもできる。そのようなコンピュータ・プログラムは、実行されるとき、コンピュータ・システムが、本明細書で説明されるような本開示の特徴を実行することを可能にする。具体的には、コンピュータ・プログラムは、実行されるとき、プロセッサ605がコンピュータ・システムの特徴を実行することを可能にする。したがって、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
【0066】
本明細書に記載の機能ユニットの多くは、モジュールと名付けられている。本発明の実施形態は、多種多様なモジュールの実施に当てはまる。例えば、モジュールは、カスタムVLSI回路もしくはゲート・アレイを備えるハードウェア回路、論理チップなどの既製品の半導体、トランジスタ、または他の個別部品として実現され得る。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ論理、プログラマブル論理デバイスなどのプログラマブル・ハードウェア・デバイスにおいて実現することもできる。
【0067】
モジュールは、様々なタイプのプロセッサによる実行のためのソフトウェアにおいて実現することもできる。実行可能なコードの識別されたモジュールは、例えば、オブジェクト、プロシージャ、または関数として編成され得るコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの実行ファイルは、物理的に一緒に置かれる必要はないが、論理的に一緒に結合されるときにモジュールを含むと共にモジュールの述べられた目的を達成する異なる場所に記憶された異種命令を含み得る。
【0068】
本発明は、統合に関する任意の可能な技術的な詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその両方であり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実施させるコンピュータ可読プログラム命令をそこに有する1つまたは複数のコンピュータ可読記憶媒体を含み得る。
【0069】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非包括的リストは、携帯用コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯用コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、機械的にエンコードされたデバイス、例えば、パンチカードまたは命令が記録された溝の中の隆起した構造、および前述の任意の適切な組合せを含む。本明細書中で使用されるとき、コンピュータ可読記憶媒体は、一過性の信号自体、例えば、無線波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通り抜ける光パルス)、あるいはワイヤを介して送信される電気信号、として解釈されるべきではない。
【0070】
本明細書に記載のコンピュータ可読プログラム命令は、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワークまたはワイヤレス・ネットワークあるいはその組合せを介してそれぞれのコンピューティング/処理デバイスにコンピュータ可読記憶媒体からあるいは外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを含み得る。各コンピュータイング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体において記憶するためにコンピュータ可読プログラム命令を送る。
【0071】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存の命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはオブジェクト指向プログラミング言語、例えば、Smalltalk(R)、C++(R)など、および手続き型プログラミング言語、例えば、「C」プログラミング言語(R)または類似のプログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータでかつ部分的に遠隔のコンピュータで、あるいは完全に遠隔のコンピュータまたはサーバで実行することができる。後者のシナリオでは、遠隔のコンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、あるいは接続は、外部コンピュータに(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)行われ得る。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、電子回路を個人化するためのコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することができる。
【0072】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書に記載されている。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実現することができると理解されよう。
【0073】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実現するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであり得る。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読ストレージ媒体が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実現する命令を含む製造品を備えるよう、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するよう指示することができるものとしてコンピュータ可読記憶媒体に記憶することもできる。
【0074】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実現するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ実施プロセスを作り出すように、一連の動作のステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることもできる。
【0075】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能性、および動作を示す。これに関連して、流れ図またはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能な命令を備えるモジュール、セグメント、または命令の部分を表し得る。いくつかの代替実施態様において、ブロックに示された機能は、図示されている以外の順番で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に、実行されてもよく、あるいはそれらのブロックは、関係する機能性に応じて、ときには、逆の順番で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、ならびにブロック図または流れ図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するあるいは専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェア・ベースのシステムによって実現することができることにも留意されたい。
【0076】
本発明の様々な実施形態の説明は、例示のために示されたものであり、包括的であるまたは開示した実施形態に限定されることは意図されていない。多くの修正および変更は、説明した実施形態の範囲から逸脱することなく、当業者に明らかであろう。本明細書中で使用される専門語は、実施形態の原理、実際の応用、または市場で見つけた技術を上回る技術的改善を最もよく説明するために、あるいは当業者が本明細書中に記載された実施形態を理解することを可能にするために選ばれた。