(57)【特許請求の範囲】
【請求項１】
データセットの複数のミニマルサンプルセット（ＭＳＳ）の第１のセットを生成するためのＭＳＳジェネレータと、
前記複数のミニマルサンプルセット（ＭＳＳ）の第１のセットから、複数の提示モデルの第１のセットを並列して導出するための導出コンポーネントと、
比較コンポーネントと
を備え、
前記比較コンポーネントは、前記複数の提示モデルの第１のセットの提示モデルが、前記複数の提示モデルの第１のセットの導出の前に導出されたいずれの提示モデルよりも良好に前記データセットに適合する場合、選択された確度内で正確なモデルを導出するのに必要とされる、提示モデルの数を再計算するためのものであり、
前記比較コンポーネントは、前記必要とされる数と、前に導出された提示モデルの数との比較に基づいて、前記複数の提示モデルの第１のセットの導出に続いて複数の提示モデルの第２のセットを導出するか否かを決定するためのものであり、
前記前に導出された提示モデルの数は、前記複数の提示モデルの第１のセットに含まれる提示モデルの数を含み、
前記ＭＳＳジェネレータは、前記複数の提示モデルの第２のセットの導出を可能とすべく、前記複数の提示モデルの第１のセットの導出と並行して、複数のＭＳＳの第２のセットを先制的に生成するためのものである、
ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を実行するデバイス。
【請求項２】
前記複数の提示モデルの第１のセットのそれぞれの提示モデルの前記データセットに対する適合の度合いを並列して決定するためのテストコンポーネントを備え、前記適合の度合いは、前記データセットのいくつのデータ要素が、選択された適合閾値内で前記複数の提示モデルの第１のセットのそれぞれの提示モデルに適合するかに基づいている、請求項１に記載のデバイス。
【請求項３】
前記比較コンポーネントは、前記複数の提示モデルの第１のセットの導出の前に導出された全ての提示モデルのなかで、前記データセットに最も適合する、全体的に最良の提示モデルの仕様をストレージに格納するためのものであり、当該デバイスは、前記ストレージにおける前記全体的に最良の提示モデルの前記仕様を、前記全体的に最良の提示モデルよりも良好に前記データセットに適合する前記複数の提示モデルの第１のセットの提示モデルの仕様と置換するための選択コンポーネントを備える、請求項１に記載のデバイス。
【請求項４】
前記ＭＳＳジェネレータは、前記複数のＭＳＳの第１のセットのそれぞれのＭＳＳと前記複数のＭＳＳの第２のセットのそれぞれのＭＳＳとを生成すべく、前記データセットの複数のデータ要素をランダムに選択するためのものである、請求項１から３のいずれか一項に記載のデバイス。
【請求項５】
前記ＭＳＳジェネレータを実行するコアと、
前記導出コンポーネントを実行する少なくとも１つの他のコアと、
前記コアと前記少なくとも１つの他のコアとの間で前記複数のＭＳＳの第１のセットを伝達するキャッシュと
を備える請求項１から４のいずれか一項に記載のデバイス。
【請求項６】
前記ＭＳＳジェネレータを実行するコアは、処理スループットの異なる異種のコアのペアにより実装されるものであり、
前記異種のコアのペアのうちのいずれが動作するのかは自動的に切り替えられるものであり、
少なくとも前記複数のＭＳＳの第１のセットを生成する間は、前記異種のコアのペアのより高い処理スループットのコアが動作する、請求項５に記載のデバイス。
【請求項７】
前記コアと前記少なくとも１つの他のコアとの間にバッファとして機能する前記キャッシュを構成するためのキャッシュコンポーネントを備える、請求項５または６に記載のデバイス。
【請求項８】
前記コアと前記少なくとも１つの他のコアからアクセス可能なストレージと、
前記ストレージ内に定義され、前記キャッシュにより少なくとも部分的にキャッシュされる共有ストレージスペースとを備え、
前記ＭＳＳジェネレータは、前記複数のＭＳＳの第１のセットと前記複数のＭＳＳの第２のセットとを前記共有ストレージスペースに格納するためのものであり、前記導出コンポーネントは、前記共有ストレージスペースから前記複数のＭＳＳの第１のセットを取得するためのものである、請求項５または６に記載のデバイス。
【請求項９】
前記正確なモデルに基づいて画像を視覚的に提示するディスプレイ、又は前記正確なモデルと関連するデータを別のデバイスに送信するインタフェースのうちの少なくとも１つを備える、請求項１に記載のデバイス。
【請求項１０】
データセットの複数のミニマルサンプルセット（ＭＳＳ）の第１のセットを生成するためのＭＳＳジェネレータと、
前記複数のミニマルサンプルセット（ＭＳＳ）の第１のセットから、複数の提示モデルの第１のセットを導出するための導出コンポーネントと、
前記複数の提示モデルの第１のセットの前記複数の提示モデルの、データセットへの適合度合いを並列してテストするためのテストコンポーネントと、
比較コンポーネントとを備え、
前記比較コンポーネントは、前記複数の提示モデルの第１のセットの提示モデルが、前記複数の提示モデルの第１のセットのテストの前にテストされたいずれの提示モデルよりも良好に前記データセットに適合する場合、選択された確度内で正確なモデルを導出するのに必要とされる提示モデルの数を再計算するためのものであり、
前記比較コンポーネントは、前記必要とされる数と前にテストされた提示モデルの数との比較に基づいて、前記複数の提示モデルの第１のセットをテストすることに続いて複数の提示モデルの第２のセットをテストするか否かを決定するためのものであり、
前記前にテストされた提示モデルの数は、前記複数の提示モデルの第１のセットに含まれる提示モデルの数を含み、
前記ＭＳＳジェネレータは、前記複数の提示モデルの第２のセットの導出を可能とすべく、前記複数の提示モデルの第１のセットの導出と並行して、複数のＭＳＳの第２のセットを先制的に生成するためのものである、
ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を実行するデバイス。
【請求項１１】
前記導出コンポーネントは、前記データセットの複数のミニマルサンプルセット（ＭＳＳ）の第１のセットから、前記複数の提示モデルの第１のセットのそれぞれの提示モデルを並列して導出するためのものである、請求項１０に記載のデバイス。
【請求項１２】
前記テストコンポーネントは、前記複数の提示モデルの第１のセットのそれぞれの提示モデルの前記データセットへの適合度合いを並列して決定するためのものであり、前記適合度合いは、前記データセットのいくつのデータ要素が、コンセンサスセットの複数のインライアであるとみなされる選択された適合閾値内で前記複数の提示モデルの第１のセットのそれぞれの提示モデルに適合するかに基づき、前記比較コンポーネントは、前記複数の提示モデルの第１のセットのテスト前にテストされたいずれの提示モデルよりも高い適合度合いを有する前記第１のセットの提示モデルに基づいて、前記必要とされる数を再計算するためのものである、請求項１０に記載のデバイス。
【請求項１３】
前記比較コンポーネントを実行するコアと、
前記テストコンポーネントを実行する少なくとも１つの他のコアと、
前記コアと前記少なくとも１つの他のコアとの間で前記複数の提示モデルの第１のセットの複数のコンセンサスセットのセットを伝達するキャッシュと
を備える、請求項１２に記載のデバイス。
【請求項１４】
前記コアと、前記少なくとも１つの他のコアとを有するプロセッサコンポーネントを備える、請求項１３に記載のデバイス。
【請求項１５】
前記デバイスは、前記テストコンポーネントを実行する前記少なくとも１つの他のコアとして、複数のコアを有し、
前記複数のコアのそれぞれのコアは、少なくとも１つの実行のスレッドをサポートし、
前記テストコンポーネントは、前記複数のコアのそれぞれのコアにおける実行のスレッドにおいて、前記複数の提示モデルの第１のセットのそれぞれの提示モデルをテストするためのものである、請求項１３に記載のデバイス。
【請求項１６】
前記少なくとも１つの他のコアは、複数のレーンでｓｉｎｇｌｅ−ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ−ｄａｔａ（ＳＩＭＤ）オペレーションをサポートするレジスタセットを有し、前記テストコンポーネントは、それぞれのレーンにおいて、前記複数の提示モデルの第１のセットのそれぞれの提示モデルをテストするためのものである、請求項１３に記載のデバイス。
【請求項１７】
前記正確なモデルに基づいて画像を視覚的に提示するディスプレイ、又は前記正確なモデルと関連するデータを別のデバイスに送信するインタフェースのうちの少なくとも１つを備える、請求項１０に記載のデバイス。
【請求項１８】
データセットの複数のミニマルサンプルセット（ＭＳＳ）の第１のセットを生成する段階と、
前記複数のミニマルサンプルセット（ＭＳＳ）の第１のセットから、複数の提示モデルの第１のセットを並列して導出する段階と、
前記複数の提示モデルの第１のセットの提示モデルが、前記複数の提示モデルの第１のセットの導出の前に導出されたいずれの提示モデルよりもより良好に前記データセットに適合する場合、選択された確度内で正確なモデルを導出するのに必要とされる提示モデルの数を再計算する段階と、
前記必要とされる数と、前に導出された提示モデルの数との比較に基づいて、前記複数の提示モデルの第１のセットの導出に続いて複数の提示モデルの第２のセットを導出するか否かを決定する段階であって、前記前に導出された提示モデルの数は、前記複数の提示モデルの第１のセットに含まれる提示モデルの数を含む段階と、
複数のＭＳＳの第２のセットを生成する段階と、
を備え、
前記複数のＭＳＳの第２のセットを生成する段階は、前記複数の提示モデルの第２のセットの導出を可能とすべく、前記複数の提示モデルの第１のセットの導出と並行して、複数のＭＳＳの第２のセットを先制的に生成する、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を実行するためのコンピュータ実装方法。
【請求項１９】
前記データセットのいくつのデータ要素が、選択された適合閾値内で前記第１のセットのそれぞれの提示モデルに適合するかに基づいて、前記データセットのいくつのデータ要素が、前記第１のセットのそれぞれの提示モデルのコンセンサスセットの複数のインライアであるかを決定する段階を備える、請求項１８に記載のコンピュータ実装方法。
【請求項２０】
前記複数の提示モデルの第１のセットの導出の前に導出されたいずれの提示モデルのコンセンサスセットにおけるインライアの数をも超える、前記複数の提示モデルの第１のセットの提示モデルのコンセンサスセットにおけるインライアの数に基づいて、前記必要とされる数を再計算する段階を備える、請求項１９に記載のコンピュータ実装方法。
【請求項２１】
前記複数のＭＳＳの第１のセットのそれぞれのＭＳＳを生成すべく、前記データセットの複数のデータ要素をランダムに選択する段階と、
前記複数のＭＳＳの第２のセットのそれぞれのＭＳＳを生成すべく、前記データセットの複数のデータ要素をランダムに選択する段階と、
を備える、請求項１８から２０のいずれか一項に記載のコンピュータ実装方法。
【請求項２２】
前記複数のＭＳＳの第１のセットと、前記複数のＭＳＳの第２のセットを１つのコアで生成する段階と、
前記複数の提示モデルの第１のセットを少なくとも１つの他のコアで導出する段階と、
を備える、請求項１８から２１のいずれか一項に記載のコンピュータ実装方法。
【請求項２３】
前記正確なモデルに基づいて画像を視覚的に提示する段階、又は前記正確なモデルと関連するデータを別のデバイスに送信する段階のうちの少なくとも１つを備える、請求項１８に記載のコンピュータ実装方法。
【請求項２４】
プロセッサコンポーネントに、請求項１８から２３のいずれか１つの方法を実行させるプログラム。
【請求項２５】
請求項２４に記載のプログラムを格納したコンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
動的外力の分析、気体又は流体移動のシミュレーション、熱分析、画像処理等を含む、様々な領域において様々なタイプのデータのいずれかを表す複数の大型データセットから複数の数学モデルを導出すべく、様々な推定アルゴリズムを採用することが当たり前になっている。画像処理の領域において、そのような複数のデータセットは視覚イメージから導出され得、そのような複数の推定アルゴリズムは、複数のオブジェクトを識別するための複数の処理の一部として、１より多いカメラから、複数の画像の複数の部分の間の複数の関係を導出すべく採用され得る。
【０００２】
残念ながら、「アウトライア」（例えば、統計的アノマリを表す複数のデータセットの複数の要素）が比較的ない複数のデータセットから複数のモデルを導出するための多数のアルゴリズムがある一方で、比較的高い確度で、そのような複数のアウトライアの割合が比較的高いとされ得る複数のデータセットから複数のモデルを導出するのに有効であることが証明されたアルゴリズムは比較的少数である。別の言い方をすれば、データセットにおいて５０％もの要素が真の情報を表さないノイズであり得る、比較的「ノイズのある」データから複数のモデルを導出するためのアルゴリズムが比較的少数である。
【０００３】
ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）であるそれらの少数のアルゴリズムの中で、所定の度合いの確率まで、データセットの複数のデータ要素に最も適合する提示モデルを見つけるべく、複数の提示モデルが繰り返し生成及びテストされる反復アルゴリズムである。ＲＡＮＳＡＣは典型的に、それぞれのイタレーションにおいて、ランダムに選択されたデータセットの複数の要素の単一サブセットが生成され、単一の提示モデルがそのサブセットから導出され、その提示モデルがテストされ、その提示モデルが前の複数のイタレーションからの全ての他のものよりもデータセットにより良好な適合であるか否かについての決定を行い、更なる複数のイタレーションが必要であるか否かについての決定がなされるような、完全に逐次的態様で実行される。新たに導出され及びテストされた提示モデルが、前のイタレーションからの全ての他のものよりも良好な適合である場合、それが、新たな全体的に最良のな提示モデルになり、新たな全体的に最良の提示モデルがデータセットに適合する度合いに少なくとも部分的に基づいて、必要とされるイタレーションの合計数が再計算される。これまで実行されたイタレーションの数は、次に、別のイタレーションが実行されるべきか否かを決定するのに（再計算されるか否かを）必要とされる合計数と比較される。
【０００４】
複数の提示モデルの複雑性に応じて、各提示モデルの導出及びテストは、相当な処理、ストレージ及び／又は電力資源を消費することが可能であると同様に、相当な時間を消費する。更に、更なる複数のイタレーションが必要とされるか否かを決定する計算の反復的実行はまた、相当な資源及び／又は時間を消費することが可能である。
【図面の簡単な説明】
【０００５】
【図１】モデル処理システムの実施形態を示す。
【図２】モデル処理システムの代替的な実施形態を示す。
【図３】実施形態に係る、ＲＡＮＳＡＣの一部を実行する上での並列処理の使用を示す。
【図４】実施形態に係る、ＲＡＮＳＡＣの一部を実行する上での並列処理の使用を示す。
【図５】実施形態に係る、数学モデルを導出する例を示す。
【図６】実施形態の一部を示す。
【図７】実施形態に係る論理フローを示す。
【図８】実施形態に係る論理フローを示す。
【図９】実施形態に係る論理フローを示す。
【図１０】実施形態に係る処理アーキテクチャを示す。
【図１１】グラフィックス処理システムの別の代替的な実施形態を示す。
【図１２】デバイスの実施形態を示す。
【図１３】システムの実施形態を示す。
【図１４】スモールフォームファクタデバイスの複数の実施形態を示す。
【発明を実施するための形態】
【０００６】
様々な実施形態は概して、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）アルゴリズムを実行すべく、順次及び並列処理のハイブリッドを採用するための複数の技術を対象とする。複数の提示モデルが導出されるデータセットの複数のサブセットの生成は、逐次的に実行され得る。しかしながら、複数の提示モデルの複数のセットは、並列して導出され及びテストされる。更に、どの提示モデルがデータセットに最も適合するかという決定、導出され及びテストされなければならない複数の提示モデルの数の計算、及びより多くの提示モデルを導出及びテストするか否かという決定は、逐次的に実行されるものの、あまり頻繁には実行されない。いくつかの部分の並列な実行、及び他の複数の部分が逐次的に実行される頻度の減少は、ＲＡＮＳＡＣを実行するのに必要とされる時間を減少する。並列して実行される複数の部分は、複数の逐次的な部分を実行するシングルコア及び／又はシングルプロセッサコンポーネントとはアーキテクチャの点で異なる１又は複数のプロセッサコンポーネントの１又は複数のコアにより実行され得る。
【０００７】
本質的には、ＲＡＮＳＡＣのイタレーションを実行する上で生じることは、ＲＡＮＳＡＣを実行する長期の典型的な完全に逐次的アプローチの各イタレーションにおいて生じることから再定義される。そのような再定義されたイタレーションのそれぞれにおいて、データセットの複数のサブセットが生成され、複数の提示モデルの新たなセットが導出され及びテストされる。複数の提示モデルのそれぞれの新たなセットの導出及びテストに続いて、データセットに最も適合する新たなセットの１つの提示モデルは、前に導出され及びテストされた全てのセットの複数の提示モデルの全ての中から、全体的に最も適合したものであると前に決定された提示モデルと比較される。新たなセットの最も適合する提示モデルが、複数の提示モデルの全ての前のセットからの全体的に最良の提示モデルよりもデータセットにより良好に適合する場合、新たなセットの最も適合する提示モデルは、新たな全体的に最良の提示モデルになる。新たなセットの最も適合する提示モデルが、新たな全体的に最良の提示モデルになる場合、導出され及びテストされることを必要とする複数の提示モデルの合計数は、新たな全体的に最良の提示モデルがデータセットに適合する度合いに少なくとも部分的に基づいて再計算される。これまで導出され及びテストされた複数の提示モデルの数は次に、（再計算されようがされなかろうが）導出され及びテストされることを必要とする複数の提示モデルの数と比較され、複数の提示モデルの別のセットを導出及びテストする別のイタレーションが実行されるべきか否かを決定する。導出され及びテストされるべき複数の提示モデルのセットがこれ以上ないことが決定された時点で、全体的に最良の提示モデルである提示モデルはどれでも、ＲＡＮＳＡＣの実行により導出されるモデルになる。
【０００８】
逐次的に実行されるＲＡＮＳＡＣアルゴリズムの複数の部分は、１つのプロセッサコンポーネントのシングルコアによって実行され得る。そのプロセッサコンポーネントのそのコアは、限定されないものの確率計算を実行することを含むそれらの複数の部分を逐次的態様で実行することをより好適とさせる１又は複数の特性を有することに基づいて選択され得る。並列して実行されるＲＡＮＳＡＣアルゴリズムの他の複数の部分は、同一のプロセッサコンポーネント又は異なるプロセッサコンポーネントのいずれかの１又は複数の他のコアにより実行され得る。１又は複数の他のコアは、複数のスレッドを実行し、及び／又はデータのｓｉｎｇｌｅ−ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ−ｄａｔａ（ＳＩＭＤ）並列処理を実行する機能を含むがそれに限定されず、１又は複数の他のコアに、並列してそれらの複数の部分を実行することをより好適とさせる１又は複数の特性を有することに基づいて選択され得る。
【０００９】
いくつかの実施形態において、逐次的態様でＲＡＮＳＡＣの複数の部分を実行する上で採用されるコアは、コンピューティングデバイスの中央処理装置（ＣＰＵ）のものであり得、並列的方法でＲＡＮＳＡＣの他の複数の部分を実行する上で採用される１又は複数の他のコアは、そのコンピューティングデバイスのグラフィックス処理装置（ＧＰＵ）のものであり得る。ＣＰＵ及びＧＰＵは、コンピューティングデバイスの同一のプロセッサコンポーネント内の同一の半導体ダイ上に実装され得る。代替的に、ＣＰＵ及びＧＰＵは、コンピューティングデバイスのシングルプロセッサコンポーネントのマルチチップモジュール（ＭＣＭ）内に保持され及び相互接続される独立した半導体ダイで実装され得る。更に別の選択肢として、ＧＰＵは、ＣＰＵを組み込むコンピューティングデバイスのメインプロセッサコンポーネントの制御のもとでアクセス可能で動作するコンピューティングデバイスの別個のコントローラプロセッサコンポーネントコントローラ（例えば、グラフィックスサブシステムを実装するグラフィックスコントローラ）の一部として実装され得る。
【００１０】
異なる複数のコアの物理的実装に関わらず、逐次的態様でＲＡＮＳＡＣの複数の部分を実行する上で採用されるコア、及び並列的方法でＲＡＮＳＡＣの他の複数の部分を実行する１又は複数の他のコアは、コアと、１又は複数の他のコアとの両方にアクセス可能なストレージの共有ストレージスペースを経由して情報を交換し得る。更に、共有ストレージスペースは、キャッシュにより少なくとも部分的にカバーされている様々なアドレスでアクセス可能であり得る。交換された情報、及びキャッシュの複数のキャッシュラインの複数の相対的サイズに応じて、相当な実行上の利点が、共有ストレージスペースへ及び／又はそこから情報を格納及び／又は取得することと関連する複数のレイテンシを避ける態様で、キャッシュを介してそのような情報の交換を経由して実現され得る。
【００１１】
モデルが導出されるべきデータセット、及び／又は導出されるべきモデルの特性を示す定義データは、１又は複数の他のコンピューティングデバイスから、異なる複数のコアを組み込むコンピューティングデバイスにより受信され得る。このことは、コンピューティングデバイスが、「サーバファーム」のような、ＲＡＮＳＡＣと同じような複数のタスクを実行すべく利用可能とされたコンピューティングデバイスのセットにおいて多数のコンピューティングデバイスの１つである場合であり得る。例として、データセットからモデルを導出すべく、ＲＡＮＳＡＣを実行する要求が、提出デバイスにより、コンピューティングデバイスに提出され得る。そのような要求を受信する上で、コンピューティングデバイスは、提出デバイスから定義データを受信し得る。更に、要求は、データセットをストレージサーバとは別々に取得するコンピューティングデバイスのための指標を含み得る。
【００１２】
代替的に、データセット及び／又はモデルの特性の仕様は、コンピューティングデバイス内に生成され得る。このことは、画像処理において複数のオブジェクトを識別すべく複数の視覚的視点を用いる（例えば、画像認識におけるホモグラフィ）ことの一環として、２又はそれより多いカメラのアレイにより撮像される２又はそれより多いフレームにおいて複数の画素の複数のセット間の相関関係を識別するなど、アプリケーションルーチンが、実行されるべきＲＡＮＳＡＣに、より大きなタスクの一部としてモデルを導出するよう求める場合であり得る。
【００１３】
ＲＡＮＳＡＣの複数の部分のそのようなハイブリッドの順次及び並列実行を通してモデルを導出すると、モデルそのものを記述する情報、又は導出されるモデルに基づいて後の逐次的処理から生成される他のデータのいずれかが、使用のため別のデバイスに送信され得る。例として、ＲＡＮＳＡＣが、オブジェクトの３次元モデルを識別及び生成するなどより大きいタスクの一部としてモデルを導出するように採用される場合、そのオブジェクトの視覚化を含む結果データが、ディスプレイ上に視覚的に提示されるべく視聴デバイスに送信され得る。代替的に、そのような視覚化は、コンピューティングデバイスにより、視覚的に直接提示され得る。
【００１４】
本明細書で用いられる複数の表記及び用語を全体的に参照すると、後に続く発明の詳細な説明の複数の部分は、コンピュータ又は複数のコンピュータのネットワーク上で実行されるプログラム手順の観点から提示され得る。これらの手順の説明及び表現は当業者により用いられ、それらの動作の本質を最も効率的に他の当業者に伝達する。手順はここで、概して、所望の結果をもたらす複数のオペレーションの首尾一貫したシーケンスであると考えられる。これらのオペレーションは、物理量の物理的な操作を必要とするものである。通常、必ずしもそうではないが、これらの量は、格納され、転送され、組み合わされ、比較され、さもなければ操作されることが可能な電気、磁気又は光信号の形式を取る。これは、時には、主に共通使用のために、これらの信号をビット、値、要素、シンボル、文字、用語、数等を指すのに便宜的あることを示す。しかしながら、これら及び同様の用語の全てが、適切な物理量と関連付けられるべきであり、単にこれらの量に適用される便宜的なラベルであることに留意すべきである。
【００１５】
更に、これらの操作はしばしば、人間のオペレータにより実行される知的活動と通常関連付けられる、追加又は比較のような用語で言及される。しかしながら、１又は複数の実施形態の一部を形成する本明細書で説明される複数のオペレーションのいずれかにおいて、殆どの場合、人間のオペレータのそのような機能は必要とされない、又は望まれない。むしろ、これらのオペレーションは、機械のオペレーションである。様々な実施形態のオペレーションを実行するための有用な複数の機械は、本明細書における教示に従って書き込まれた範囲内で格納されるコンピュータプログラムにより選択的に達成又は構成されるような汎用デジタルコンピュータを含み、及び／又は必要な目的のために特別に構築された装置を含む。様々な実施形態はまた、これらのオペレーションを実行するための装置又はシステムにも関連する。これらの装置は、必要な目的のために特別に構築され得、又は、汎用コンピュータを含み得る。これらの様々な機械のために必要な構造は、以下の説明から明らかになるであろう。
【００１６】
ここで図面を参照するにあたり、同様の参照番号は、全体にわたって同様の要素に言及するために用いられる。以下の説明では、説明の目的のために、多数の具体的な詳細がその完全な理解を提供するべく明記される。しかしながら、複数の新規な実施形態がこれらの具体的な詳細なく実施可能であることは明らかであり得る。他の複数の例では、周知の複数の構造及びデバイスが、その説明を容易にすべく、ブロック図の形式で示される。特許請求の範囲に記載の範囲内の全ての修正、均等物及び代替手段をカバーする意図がある。
【００１７】
図１は、提出デバイス１００、ストレージサーバ３００、コンピューティングデバイス５００、及び視聴デバイス７００のうち１又は複数を組み込むモデル処理システム１０００の実施形態のブロック図を示す。モデル処理システム１０００において、定義データ１３０において定義される特性を有するモデルは、コンピューティングデバイス５００によりデータセット３３０から導出され、データセット３３０は、複数のアウトライア（例えば、「ノイズ」である複数の要素）を高い割合で含むデータセットであり得る。定義データ１３０は、モデルを導出すべくＲＡＮＳＡＣを実行する提出デバイス１００から受信される要求の一部として提出デバイス１００からコンピューティングデバイス５００により受信され得る。データセット３３０は、ストレージサーバ３００からコンピューティングデバイス５００により取得され得、そのような取得は、データセット３３０が格納された位置としてストレージサーバ３００の提出デバイス１００から要求が受信されるという指標に応答して、コンピューティングデバイス５００により実行され得る。しかしながら、他の複数の実施形態において、定義データ１３０又はデータセット３３０の一方又は両方が、別のコンピューティングデバイスにより受信される代わりに、コンピューティングデバイス５００内に完全に生成され得る。
【００１８】
コンピューティングデバイス５００によるモデルの導出に続いて、コンピューティングデバイス５００は、モデルを導出することを含むより大きなタスクを実行する上で、画像データ７３０を送信し得、モデルの視覚化を伝達し、又はコンピューティングデバイス５００により生成される画像を伝達する。これらのコンピューティングデバイスの各々は、デスクトップコンピュータシステム、データ入力端子、ラップトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、ハンドヘルドパーソナルデータアシスタント、スマートフォン、スマートメガネ、スマート腕時計、デジタルカメラ、衣類に組み込まれる装着式のコンピューティングデバイス、車両（例えば、車、自転車、車椅子等）に統合されるコンピューティングデバイス、サーバ、サーバのクラスタ、サーバファーム等を限定されることなく含む、様々なタイプのコンピューティングデバイスのいずれかであり得る。
【００１９】
示されるように、これらのコンピューティングデバイス１００、３００、５００、及び７００は、複数のデータセット、モデルの特性の定義データ、画像データ、及び／又は関連データを、ネットワーク９９９を通して伝達する、複数の信号を交換する。しかしながら、これらのコンピューティングデバイスのうち１又は複数は、データセットからのモデルの導出、又はそのモデルの使用とは全く無関係な他のデータを、互いに、及び／又はネットワーク９９９を介して更に他のコンピューティングデバイス（不図示）と交換し得る。様々な実施形態において、ネットワーク９９９は、おそらく単一の建物又は他の比較的限定された領域内に広範囲に及ぶことが制限される単一のネットワーク、おそらく相当な距離を拡張する接続されたネットワークの組み合わせであり得、及び／又は、インターネットを含み得る。従って、ネットワーク９９９は、電気的並びに／若しくは光学的に導電性のあるケーブル配線を採用する有線技術、及び赤外線、無線周波数又は他の形式の無線伝送を採用する無線技術を限定することなく含む、信号が交換され得る様々な通信技術（又はその組み合わせ）のいずれかに基づき得る。
【００２０】
複数の代替的な実施形態において、提出デバイス１００、ストレージサーバ３００、及び視聴デバイス７００のうち１又は複数は、完全に異なる態様において、コンピューティングデバイス５００に結合され得る。更に他の複数の実施形態において、定義データ１３０、データセット３３０、及び画像データ７３０のうち１又は複数は、取り外し可能な媒体（例えば、フラッシュメモリカード、光学ディスク、磁気ディスク等）を介してこれらのコンピューティングデバイス間で伝達され得る。
【００２１】
様々な実施形態において、コンピューティングデバイス５００は、コンピューティングデバイス３００をネットワーク９９９に結合すべく、プロセッサコンポーネント５５０、キャッシュ５５５、ストレージ５６０、ディスプレイ５８０、コントローラ６００、及びインタフェース３９０のうちの１又は複数を組み込む。プロセッサコンポーネント５５０は、少なくとも１つのコア５５１を組み込む。ストレージ５６０は、定義データ１３０、データセット３３０、画像データ７３０、ワーキングデータ３３５、テストデータ５３０、制御ルーチン５４０、及び結果データ６３０のうちの１又は複数を格納する。コントローラ６００は、プロセッサコンポーネント６５０及びストレージ６６０のうちの１又は複数を組み込む。プロセッサコンポーネント６５０は、１又は複数のコア６５１を組み込む。ストレージ６６０は、制御ルーチン６４０を格納する。共有ストレージ領域５６５は、ストレージ５６０内に規定され、ストレージ５６０の複数のストレージ位置のサブセットが、複数のプロセッサコンポーネント５５０及び６５０の両方にアクセス可能となり、それらの間でデータセット３３０、テストデータ５３０、及び結果データ６３０を含む情報の交換を可能にさせる。しかしながら、ストレージ５６０内にデータを格納し、又はそこからデータを取得する上で複数のレイテンシによりもたらされる遅延を避ける態様で、複数のプロセッサコンポーネント５５０及び６５０の間で交換される少なくともいくつかの情報がキャッシュ５５５を通して交換され得るように、共有ストレージ領域５６５の少なくとも一部は、キャッシュ５５５によりキャッシュされる様々なアドレスでアクセス可能である。
【００２２】
制御ルーチン５４０は、様々な機能を実行するロジックを実装するコンピューティングデバイス５００のメインプロセッサコンポーネントとしての役割を担うプロセッサコンポーネント５５０上で動作可能な命令列を組み込む。いくつかの実施形態において制御ルーチン５４０を実行することにおいて、プロセッサコンポーネント５５０は、前述のように、定義データ１３０及びデータセット３３０の一方又は両方を他の複数のコンピューティングデバイスから受信し得、又は定義データ１３０及びデータセット３３０の一方又は両方を生成し得る。プロセッサコンポーネント５５０は次に、定義データ１３０及びデータセット３３０をストレージ５６０に格納する。その際、プロセッサコンポーネント５５０は、データセット３３０を共有ストレージ領域５６５に格納し得、そこでデータセット３３０は、複数のプロセッサコンポーネント５５０及び６５０の両方にアクセス可能になる。
【００２３】
定義データ１３０は、ＲＡＮＳＡＣを介して導出されるべき数学モデルの様々な特性の指標を含み、これには数学モデルの所望のフォーマット（例えば、方程式、マトリックス、又は数式の更に別のフォーマット）の指標が含まれる。例として、導出されるべき数学モデルが、線、平面、曲線、楕円、多角形等のような幾何形状からなる場合、定義データ１３０は、導出されるべき数学モデルのタイプが、その幾何形状に含まれる複数の点の複数の座標の複数の値の間の幾何関係を表す幾何方程式のフォーマットを有するべきであることを示し得る。他の複数の例において、定義データ１３０は、変換（例えば、空間領域と周波数領域との間、又は２つの空間座標系の間）を表すモデルの所望のフォーマットが、複数の係数のマトリックスであることを示し得る。導出されるべきモデルのフォーマットの指標はまた、プロセッサコンポーネント５５０に、モデルを導出するのに必要とされるデータセット３３０からのデータ要素の最小数がいくつであるかという指標を提供する。ＲＡＮＳＡＣに良く知られるものの中で、そのような最小数の要素はしばしば、ミニマルサンプルセット（ＭＳＳ）と呼ばれる。ＭＳＳに組み込まれる複数の要素のそれぞれは、モデルが導出されるべきデータセットからランダムに選択される。
【００２４】
プロセッサコンポーネント５５０は次に、テストデータ５３０として、プロセッサコンポーネント６５０に提供されるべき複数のＭＳＳのセットを生成する。これらの複数のＭＳＳのそれぞれを構成するデータの複数の要素は、データセット３３０を構成する複数のデータ要素からランダムに選択される。セットにおける複数のＭＳＳの数は、プロセッサコンポーネント６５０が並列して実行可能である一連の計算のインスタンスの数に完全に基づき得る。例として、プロセッサコンポーネント６５０は、特定の最大数までの実行のスレッドを並列して実行可能であり得、それぞれのスレッドにおいて、命令列が他の複数のスレッドとは独立に実行される。いくつかの実施形態において、プロセッサコンポーネント６５０の複数のコア６５１のそれぞれは、そのような複数のスレッドのそれぞれ１つを、他の複数のコア６５１のそれぞれによる別のスレッドの実行と並列して実行可能であり得る。  代替的に又はそれに加えて、複数のコア６５１のそれぞれは、レジスタセット、及び／又は、同一の数学及び他の複数のオペレーションが完全に別個である複数の断片のデータ上で同時に実行されることが可能である複数のＳＩＭＤオペレーションをサポートする他の複数の特徴を組み込み得る。言い換えると、プロセッサコンポーネント５５０は、プロセッサコンポーネント６５０が複数のオペレーションを並列して実行することが可能であるデータのセットの数に一致する複数のＭＳＳを生成する。
【００２５】
プロセッサコンポーネント５５０はまた、定義データ１３０から以前に取得されたような所望のフォーマットの指標など、テストデータ５３０において導出されるべきモデルの特性の複数の指標を格納する。プロセッサコンポーネント５５０は更に、複数の提示モデルのそれぞれをテストする上で、プロセッサコンポーネント６５０により採用されるべきテストデータ５３０に適合閾値を格納する。プロセッサコンポーネント５５０は次に、プロセッサコンポーネント６５０に合図して、テストデータ５３０内の情報を用いて、複数の提示モデルのセットを生成させ、適合閾値を用いてデータセット３３０との適合の度合いに関してそれらをテストさせ、プロセッサコンポーネント５５０に結果データ６３０におけるそれらのテストの結果を提供させる。
【００２６】
制御ルーチン６４０は、様々な機能を実行するロジックを実装するコンピューティングデバイス５００のコントローラ６００のコントローラプロセッサコンポーネントとしての役割を担うプロセッサコンポーネント６５０上で動作可能な命令列を組み込む。制御ルーチン６４０を実行する上で、及びプロセッサコンポーネント５５０からの信号に応答して、プロセッサコンポーネント６５０は、テストデータ５３０においてプロセッサコンポーネント５５０により提供される複数のＭＳＳのそれぞれに対するものついて、複数の提示モデルのセットを生成する。プロセッサコンポーネント６５０は、プロセッサコンポーネント６５０のアーキテクチャにおいて実装され得るような複数のスレッド、ＳＩＭＤサポート、及び／又は他の並列処理技術の実行をサポートする複数のコア６５１を使用することで、セットの複数の提示モデルの全てのこの生成を並列して実行する。
【００２７】
複数のＭＳＳのそれぞれに対する提示モデルを導出した後で、プロセッサコンポーネント６５０は次に、データセット３３０内のデータの複数の要素の全てで複数の提示モデルのそれぞれをテストする。より具体的には、複数の提示モデルのそれぞれに対して、プロセッサコンポーネント６５０は、データセット３３０のいくつのデータ要素が、適合閾値内の程度まで提示モデルに適合するのかをチェックする。それぞれの提示モデルに対して、適合閾値内で適合する複数のデータ要素は、その提示モデルの「インライア」であると決定され、適合閾値内で適合しない複数のデータ要素は、その提示モデルの「アウトライア」であると決定される。ＲＡＮＳＡＣに良く知られるものの中で、データセットからの提示モデルの全てのインライアのセットはしばしば、「コンセンサスセット」と呼ばれる。プロセッサコンポーネント６５０は、結果データ６３０においてプロセッサコンポーネント６５０によって導出された複数の提示モデルの全ての指標を格納する。プロセッサコンポーネント６５０はまた、結果データ６３０における複数の提示モデルのそれぞれのコンセンサスセットにいくつのインライアが存在するかの複数の指標を格納する。プロセッサコンポーネント６５０は次に、プロセッサコンポーネント５５０に、複数の提示モデルのこのセットの導出及びテストが完了したという指標を合図する。
【００２８】
図３は、共有ストレージ領域５６５を介した複数のプロセッサコンポーネント５５０及び６５０間でのそのような情報交換の例示的な実施形態をより詳細に示す。示されるように、プロセッサコンポーネント５５０は、データセット３３０から複数のＭＳＳ５３３のセットを生成し、複数のＭＳＳ５３３のセットをテストデータ５３０に含める。プロセッサコンポーネント５５０はまた、テストデータ５３０にモデル特性５３１を含め、プロセッサコンポーネント６５０に対するモデルの所望のフォーマットとしてそのような特性を指定する。プロセッサコンポーネント５５０は更に、適合閾値５３７を含め、提示モデルのインライアであると決定され、ひいては、そのモデルのコンセンサスセットにおいて含まれるべく、その提示モデルにデータセット３３０のそれぞれのデータ要素が適合しなければならない度合いを指定する。
【００２９】
図３にまた示されるように、プロセッサコンポーネント６５１は、複数のコア６５１の提供を通して並列処理を可能とし、複数のコア６５１のそれぞれが、他の複数のコア６５１と並列して少なくとも１つのスレッドの実行をサポートすることが可能である。プロセッサコンポーネント６５０による制御ルーチン６４０の実行中に、複数のコア６５１のそれぞれは、モデル特性５３１と、テストデータ５３０の複数のＭＳＳ５３３の対応するものを共有ストレージ領域５６５内から取得する。複数のコア６５１のそれぞれは次に、モデル特性５３１及び複数のＭＳＳ５３３の対応するものを用いて、対応する提示モデルを生成する。複数のコア６５１のそれぞれは次に、データセット３３０及びテストデータ５３０の適合閾値５３７を取得する。複数のコア６５１のそれぞれは、データセット３３０の複数のデータ要素のそれぞれの適合の度合いを対応する提示モデルでテストし、その対応する提示モデルのコンセンサスセットのインライアがどれであり、アウトライアがどれであるのかを決定する。複数のコア６５１のそれぞれは次に、その対応する提示モデル６３６の仕様を、その対応する提示モデルのコンセンサスセットにおけるインライアの数を指定するモデル適合結果６３７の指標と共に、結果データ６３０に格納する。
【００３０】
図４は、共有ストレージ領域５６５を介したそのような情報交換の別の例示的実施形態を、より詳細に示す。再び、プロセッサコンポーネント６５０は、複数のＭＳＳ５３３（より具体的には５３３ａ〜ｄとラベリングされる）を、モデル特性５３１及び適合閾値５３７と共に受信する。しかしながら、図３の例示的な実施形態において示され、議論されたものとは異なり、図４において、プロセッサコンポーネント６５０の複数のコア６５１のうちの少なくとも１つは、レジスタセット６５２を含み、ＳＩＭＤオペレーションに対するサポートをそれぞれのレジスタが提供することの一環として複数のレーン６５３ａ〜ｄに分けられ、同一の数学演算が複数の独立したデータ上で並列して実行されることが可能である。
【００３１】
ＳＩＭＤオペレーションを使用することで並列処理に対してそのようなサポートを使用することの一環として、複数のＭＳＳ５３３ａ〜ｄのそれぞれは、複数のレーン６５３ａ〜ｄの異なるものにそれぞれ割り当てられる。複数のレーン６５３ａ〜ｄのそれぞれにおいて、モデル特性５３１及び複数のＭＳＳ５３３ａ〜ｄの対応するものが、対応する提示モデルを生成するように用いられる。データセット３３０及び適合閾値５３７が次に取得され、レーン６５３ａ〜ｄのそれぞれにおいて使用され、データセット３３０の複数のデータ要素のそれぞれの適合の度合いを、対応する提示モデルでテストし、データセット３３０のどのデータ要素が、対応する提示モデルのコンセンサスセットのインライアであるかを決定する。レーン６５３ａ〜ｄのそれぞれに関して、対応する提示モデルの対応する仕様６３６ａ〜ｄ（それぞれが仕様６３６の例である）が結果データ６３０に格納される。また、レーン６５３ａ〜ｄのそれぞれに関して、対応するコンセンサスセットにおいてインライアの数を指定するモデル適合結果６３７ａ〜ｄ（それぞれがモデル適合結果６３７の例である）の対応する指標がまた、結果データ６３０に格納される。
【００３２】
従って、説明されたように、及び、図３及び４において示されたように、複数の提示モデルの並列した導出及びテストに対するサポートは、複数のコア６５１の提供を通して、又は複数のコア６５１のうちの１つのレジスタセット６５２のレジスタにおいて複数のレーンの提供を通して提供され得る。更に他の複数の実施形態において、両方のアプローチが組み合わされ得、プロセッサコンポーネント６５０が複数のコア６５１を組み込み、それらのコアのそれぞれが、複数のレーンをサポートする複数のレジスタ６５２のレジスタセットを組み込む更により大きな並列処理を可能とする。
【００３３】
図１に戻り、制御ルーチン５４０を更に実行する上で、及びテストデータ５３０の複数のＭＳＳのセットに対する複数の提示モデルのセットの導出及びテストが完了するというプロセッサコンポーネント６５０からの信号に応答して、プロセッサコンポーネント５５０は、新たなセットのどの提示モデルが最良であるかを決定する。いくつかの実施形態において、プロセッサコンポーネント５５０は、複数の提示モデルの新たなセットの複数の提示モデルのそれぞれのコンセンサスセットにいくつのインライアがあるかという結果データ６３０における複数の指標を比較することにより、そのようにし得る。そのコンセンサスセットにおけるインライアの最大数を有する新たなセットの複数の提示モデルのうちの１つが次に、複数の提示モデルの新たなセットの最良の提示モデルであるとみなされる。新たなセットにおける複数の提示モデルの最良のものは次に、前に導出されてテストされた複数の提示モデルの複数のセットの全てからの全体的に最良の提示モデルと比較される。前のセットの全てで全体的に最良の提示モデルの仕様は、データセット３３０のいくつのデータ要素がそのコンセンサスセットにおいてインライアであるかという指標と共に、ワーキングデータ３３５の一部として格納及び保持され得る。複数の提示モデルの新たなセットにおける複数の提示モデルの最良のものが、前に導出されてテストされた複数の提示モデルの複数のセットの全てで全体的に最良の提示モデルよりも良好であると決定された場合、新たなセットにおける複数の提示モデルの最良のものが、新たな全体的に最良の提示モデルになる。その場合、新たなセットにおける複数の提示モデルの最良のものの仕様は、データセット３３０のいくつのデータ要素がそのコンセンサスセットにおいてインライアであるかという指標と共に、ワーキングデータ３３５に格納される。
【００３４】
前に導出されテストされた複数の提示モデルのセットの全てで全体的に最良の提示モデルが、複数の提示モデルの新たなセットの最良の提示モデルと置換される場合、プロセッサコンポーネント５５０は、複数の提示モデルの全てから、所定の度合いの確率内でデータセット３３０に最も適合する正確なモデルを導出するのに、導出されてテストされなければならない提示モデルの全体数を再計算し得る。前に導出されてテストされた複数の提示モデルのセットの全てで全体的に最良の提示モデルが置換されるか否かに関わらず、これまで生成されテストされた複数の提示モデルの数は、複数の提示モデルの別のセットが導出されてテストされるべきであるかどうかを決定するのに導出されてテストされなければならない提示モデルの全体数と比較される。そうでない場合、現在の全体的に最良の提示モデルである（その仕様がワーキングデータ３３５において保持される）提示モデルであればどのようなものであっても、ＲＡＮＳＡＣのこの実行により導出されるモデルになる。プロセッサコンポーネント５５０はまた、導出されてテストされなければならない複数の提示モデルの全体数と共に、ワーキングデータ３３５の一部としてこれまで生成されてテストされた複数の提示モデルの数を格納及び保持し得る。
【００３５】
いくつかの実施形態において、ＲＡＮＳＡＣが正確なモデルであるとして不正確な提示モデルを不規則に選択する確率（１-ＷC）であって、式中、Ｗはこれまでに導出されてテストされたものの中から全体的に最良の提示モデルのコンセンサスセットにおけるインライアの数であって、ＣはそれぞれのＭＳＳを生成すべくデータセット３３０からランダムに選択された複数のデータ要素の数である。不正確な提示モデルは、正確なモデルのアウトライアである少なくとも１つのランダムに選択されたデータ要素を含む、ＭＳＳから導出された提示モデルである。従って、Ｋは導出されてテストされなければならない提示モデルの全体数であるとすると、複数の提示モデルが導出される全てのＭＳＳが正確なモデルの少なくとも１つのアウトライアを含む結果、複数の提示モデルの１つも正確でない確率は（１-ＷC）Kである。
【００３６】
結果として、Ｋは、（１−ＷＣ）Ｋを１−ｐの許容障害閾値と等しいか、それより小さいものにすべく、十分大きいものであるように選択されるべきで、式中ｐは、正確なモデルに到達する所望の確度と関連付けられる所定の信頼レベルである。従って、そのような複数の実施形態において、Ｋの値は以下のように計算される。
【００３７】
【数１】
0006517223.tif 000002
【００３８】
従って、そのような複数の実施形態において、複数のＭＳＳのセットを生成するそれぞれのイタレーションと、複数の提示モデルのセットの導出及びテストの両方とに続いて、これまで導出されてテストされた提示モデルの数は、そのような別のイタレーションを実行すべきか否かを決定するのに必要とされる提示モデルの全体数Ｋと比較される。いくつのプロセッサコンポーネント６５０が並列して導出してテストをすることが可能であるかということに基づく、多数の提示モデルで複数の提示モデルのそれぞれのセットが構成されるとすると、複数のイタレーションを通して実際に導出されてテストされる提示モデルの数は、それぞれのセットにおける提示モデルの数の倍数であり得る。従って、導出されてテストされた提示モデルの数は、比較的少量で導出されてテストされるのに必要とされる提示モデルの数Ｋを最終的に超え得る。
【００３９】
図５は、並列及び順次処理のハイブリッドでＲＡＮＳＡＣを実行する実施形態の例示的使用を示す。これは、平面の複数の点のセットに最も適合する線の数学モデルを求める非常に簡略化された例であって、そのようなそれぞれの点は、データセット３３０の一部であることに留意すべきである。当業者に良く知られるように、複数の軸Ｘ及びＹにより定義される平面内に延びる線は、典型的にｙ＝ａｘ＋ｂのような方程式で説明され、ａ及びｂの複数の値は、示された線の正確なモデルを導出すように決定されなければならない。定義データ１３０は、プロセッサコンポーネント６５０により導出されるべき複数の提示モデルの所望のフォーマットであるこの方程式のフォーマットの指標とともに、複数の提示モデルの導出を可能とするのに平面における２つの点を表すデータセット３３０の２つのデータ要素がそれぞれのＭＳＳにおいて必要とされるという旨の指標を含み得る。
【００４０】
プロセッサコンポーネント５５０は、複数のＭＳＳ５３３のセットを生成し、それぞれがデータセット３３０により表される複数の点の一対のランダムに選択されたものを含み、複数のＭＳＳ５３３のセットを、テストデータ５３０の一部として格納する。プロセッサコンポーネント５５０はまた、モデル特性５３１の指標を格納し、それはｙ＝ａｘ＋ｂの方程式のフォーマットの指標を、テストデータ５３０の一部として、適合閾値５３７の指標と共に含む。プロセッサコンポーネント５５０は次に、複数の提示モデルのセットを導出して、それらをテストし、結果データ６３０においてそのテストの複数の結果を提供するよう、プロセッサコンポーネント６５０に合図する。
【００４１】
プロセッサコンポーネント５５０からの合図に応じて、プロセッサコンポーネント６５０は、複数の提示モデルの対応するセットを導出すべく、複数のＭＳＳ５３３のセット及びモデル特性５３１を採用する、それぞれの提示モデルは、複数のＭＳＳ５３３の１つと対応する。それぞれの提示モデルは、異なる提示の線（そのうちの１つのみが図５において点線で示される）の数式であって、その線は、データセット３３０からランダムに選択された２つの点を通って延びる。再び、複数の提示モデルのそれぞれは、複数のＭＳＳ５３３のセットから導出される複数の提示モデルのセットにおいて他のものの全てと並列して導出される。
【００４２】
複数の提示モデルのセットを導出した後で、プロセッサコンポーネント６５０は、データセット３３０の複数の点のそれぞれが適合閾値５３７内で複数の提示モデルのそれぞれにある程度適合するか否かを決定することにより、セットの複数の提示モデルのそれぞれを、並列してテストする。図５に示されるように、適合閾値５３７は、点がその提示モデルのコンセンサスに含まれるインライアになるように十分よく適合するように、提示モデルに対応する線から平面内の最大距離を指定し得る。示されるように、適合閾値５３７により指定される距離は、提示の線の示された例に対して垂直に測定され得る。複数の提示モデルのセットの複数の提示モデルの全てを並列してテストすることに続いて、プロセッサコンポーネント６５０は、複数の提示モデルのそれぞれに対するコンセンサスセット内でインライアの数を指定するモデル適合結果６３７と共に、複数の提示モデルの複数の仕様６３６を結果データ６３０として格納する。プロセッサコンポーネント６５０は次に、複数の提示モデルのセットのテストの導出が完了したことをプロセッサコンポーネント５５０に合図する。
【００４３】
プロセッサコンポーネント６５０からの合図に応じて、プロセッサコンポーネント５５０は、テスト中に、複数の提示モデルのセットのどの提示モデルがデータセット３３０の複数の点に最も適合することが分かったか決定すべく、複数のモデル適合結果６３７を分析する。いくつかの実施形態において、このことは、そのコンセンサスセットにおいてインライアの最大数を有する提示モデルを識別すべく、複数の提示モデルのそれぞれのコンセンサスセットにおけるインライアの数を比較することにより決定され得る。セットの複数の提示モデルの最良のものが次に、（複数のモデルの複数の前のセットがある場合）複数のモデルの複数の前のセットの全ての中から全体的に最良の提示モデルと比較される。セットの最良の提示モデルが、全ての前のセットの中から全体的に最良の提示モデルよりも良好にデータセット３３０の複数の点に適合するものである場合（例えば、そのコンセンサスセットにおいてより多くの数のインライアを有する）、セットの最良の提示モデルは、新たな全体的に最良の提示モデルになる。また、セットの最良の提示モデルが、全ての前のセットの中から全体的に最良の提示モデルよりも良好に適合するものである場合、所定の確度で正確なモデルを決定するのに必要とされる複数の提示モデルの数が、新たな全体的に最良の提示モデルのコンセンサスセット内のインライアの数に少なくとも部分的に基づいて再計算される。そのような再計算が生じるか否かに関わらず、これまでに導出されてテストされた提示モデルの数は次に、複数の提示モデルの別のセットが導出されてテストされるべきか否かを決定する程度に必要とされる提示モデルの数と比較される。
【００４４】
図１に戻り、プロセッサコンポーネント６５０による複数の提示モデルのセットの並列的な導出及びテスト中に、プロセッサコンポーネント５５０は、制御ルーチン５４０を実行し続ける上で、別のイタレーションとなり得るものに備えて、複数のＭＳＳの次のセットを先制して生成し、テストデータ５３０においてそれらを格納し得る。別のイタレーションが実行されるべきであるか否かについて不確実であるにもかかわらず、ＲＡＮＳＡＣが実行される速度を増加させるべく、プロセッサコンポーネント６５０により複数の提示モデルの複数のセットの導出及びテストの間の遅延を最小化させるために、複数のＭＳＳの次のセットを先制して生成することが望ましいとみなされ得る。
【００４５】
前述のように、共有ストレージ領域５６５の少なくとも一部が、キャッシュ５５５によりキャッシュされ得る。再び、データセット３３０、テストデータ５３０及び／又は結果データ６３０のサイズに対するキャッシュ５５５のサイズ及びアーキテクチャに応じて、そのような情報を、ストレージ５６０へのデータの格納又はそこからのデータ取得のいずれかに必要とされる時間に起因する遅延を引き起こすことなく、キャッシュ５５５を通してプロセッサコンポーネント５５０及び６５０間で交換することが可能となり得る。代替的に又はそれに加えて、いくつかの実施形態において、キャッシュ５５５は、プロセッサコンポーネント５５０及び６５０の一方又は他方により制御可能であり得、バッファとして機能するキャッシュ５５５の一部を割り当て、ストレージ５６０に対する読み取り又は書き込みのいずれかのオペレーションを全く伴うことなくそれらの間でそのようなデータを、伝達する。
【００４６】
前述のように、これ以上複数の提示モデルのセットが導出されるべきでなく、テストされるべきでない時点で、現在全体的に最良の提示モデルである提示モデルはどれでも、ＲＡＮＳＡＣのハイブリッド並列及び順次実行により導出されるモデルになる。プロセッサコンポーネント５５０は次に、インタフェース５９０を動作し得、別のコンピューティングデバイスに、このモデルの指標を送信し、及び／又はこのモデルから導出された他のデータを送信する。例として、プロセッサコンポーネント５５０は、モデルの視覚化を生成し得、それを画像データ７３０として格納し得、プロセッサコンポーネント５５０は次に、それを視聴デバイス７００に送信し、そのディスプレイ７８０で視覚的に提示する。代替的に、プロセッサコンポーネント５５０は、画像データ７３０をディスプレイ５８０で（存在している場合）より直接、視覚的に提示し得る。別の例において、ＲＡＮＳＡＣの並列及び順次実行のそのようなハイブリッドは、モデルを使用する（例えば、アニメーションの画像をレンダリング）、又は画像処理の一部としてオブジェクトを識別する視覚イメージの生成のように、より大きな機能の一部としてモデルを導出すべく採用され得る。従って、画像データ７３０は、モデルを使用することで少なくとも部分的にレンダリングされた画像を表し得、又はモデルを使用して画像において識別されたオブジェクトの複数の態様を表し得る。
【００４７】
図２は、コンピューティングデバイス５００の代替的な実施形態を含むモデル処理システム１０００の代替的な実施形態のブロック図を示す。図２のモデル処理システム１０００の代替的な実施形態は、多くの点で図１の実施形態と類似しており、従って、同様の参照番号は、全体にわたって同様の要素に言及するために用いられる。しかしながら、図１のコンピューティングデバイス５００とは異なり、図２のコンピューティングデバイス５００は、コントローラ６００を組み込んでいない。従って、図１のコンピューティングデバイス５００とは異なり、図２のコンピューティングデバイス５００において、コア５５１及び６５１の両方を組み込み、従って、そうするべく別個のプロセッサコンポーネント６５０の代わりに制御ルーチン６４０を両方実行するのはプロセッサコンポーネント５５０である。
【００４８】
従って、図２の動作処理システム１０００の代替的な実施形態において、プロセッサコンポーネント５５０は、ＲＡＮＳＡＣのハイブリッド順次及び並列処理の実行のいくつかの部分の順次処理、及びＲＡＮＳＡＣのハイブリッド順次及び並列処理の実行の他の部分の並列処理の両方を実行する。より正確には、コア５５１は、データセット３３０から複数のＭＳＳ５３３の生成を逐次的に実行し得、１又は複数のコア６５１（またこの代替的な実施形態においてプロセッサコンポーネント５５０に組み込まれる）は、複数の提示モデルの複数のセットの導出及びテストを並列して実行し得る。この代替的な実施形態において、キャッシュ５５５は、それに加えて、プロセッサコンポーネント５５０に組み込まれ得る。
【００４９】
様々な実施形態において、プロセッサコンポーネント５５０及び６５０の各々は、多種多様な商業的に利用可能なプロセッサのいずれかを含み得る。また、これらのプロセッサコンポーネントのうちの１又は複数は、複数のプロセッサ、マルチスレッドプロセッサ、（複数のコアが同一又は別個のダイに共存するかいずれにせよ）複数のコアプロセッサ、及び／又は、複数の物理的に別個のプロセッサが何らかの方法でリンク付けされることによるいくつかの他の様々なマルチプロセッサアーキテクチャを含み得る。
【００５０】
更に、プロセッサコンポーネント５５０及び／又は６５０のコア５５１及び／又は６５１はそれぞれ、より大量の電力消費を犠牲にして比較的高い処理スループットを達成することが可能な１つのコアと、より遅い処理スループットを犠牲にして比較的低い電力の消費を達成することが可能な別のコアとを含む、複数のペアの複数の異種のコアで実装され得る。コア５５１及び／又は６５１のそのような実装において、複数のコアのそのようなそれぞれの異種のペアの複数のコア間での自動的な切り替えは、何度も処理スループットのレベルに応じて、及びそのような異種のペアの複数のコアがシングルコアとして知覚される複数のオペレーティングシステム及び／又はアプリケーションルーチンに十分透過的な態様で生じ得る。
【００５１】
例として、コア５５１が、複数のＭＳＳ５３３の新たなセットを生成すること又はインライアの数を比較することに携わる場合、コア５５１を構成する異種のペアの複数のコアのより高い処理スループットコアが作動中であり得る。しかしながら、複数の提示モデル６３６の新たなセットの並列導出及びテストに必要とされる時間に応じて、コア５５１は、そのような導出及びテストが完了するのを待機する間、比較的アイドルのままとさせられ得、したがって異種のペアの複数のコアの低電力消費コアが作動中となり得る。対応して、プロセッサコンポーネント６５０の１又は複数のコア６５１が複数の提示モデル６３６の新たなセットを導出してテストするのに携わる一方で、複数のコア６５１のそれぞれを構成する異種のペアの複数のコアのそれぞれのより高い処理スループットコアは、作動中であり得る。しかしながら、複数のインライア値の数の複数の比較に必要とされる時間に応じて、１又は複数のコア６５１は、そのような比較が終わり、複数の提示モデルの別のセットが導出されてテストされるべきであるか否かについての決定されるのを待機して比較的アイドルのままとさせられ得、したがってそれらの異種の複数のペアの複数のコアのそれぞれの低電力消費コアが作動中となり得る。
【００５２】
プロセッサコンポーネント５５０及び６５０の各々は、様々なタイプのプロセッサのいずれかを含み得るが、コントローラ６００（存在する場合）のプロセッサコンポーネント６５０が、グラフィックス及び／又はビデオに関連するタスクを実行するべく、幾分か特化され及び／又は最適化され得ることが想定される。より広義には、コントローラ６００が、プロセッサコンポーネント６５０及びそれにより密接に関連するコンポーネントから分離し、かつ、プロセッサコンポーネント６５０及びそれにより密接に関連するコンポーネントとは異なるコンポーネントを用いて、グラフィックスレンダリング、ビデオ圧縮、画像リスケーリング等に関連するタスクの実行を可能にするコンピューティングデバイス５００のグラフィックスサブシステムを具現化することが想定される。
【００５３】
様々な実施形態において、ストレージ５６０及び６６０の各々は、電力の中断されない提供を必要とする揮発性技術をおそらく含む、及び、取り外し可能であり得、またはそうし得ない機械可読記憶媒体の使用を伴う技術をおそらく含む多種多様な情報ストレージ技術のいずれかに基づき得る。従って、これらのストレージの各々は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲ−ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、ポリマーメモリ（例えば、強誘電体ポリマーメモリ）、オボニックメモリ、相変化若しくは強誘電体メモリ、シリコン酸化物窒化物酸化物シリコン（ＳＯＮＯＳ）メモリ、磁気若しくは光カード、１又は複数の個別強磁性ディスクドライブ、又は、１又は複数のアレイで構成される複数のストレージデバイス（例えば、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓアレイ又はＲＡＩＤアレイで構成される複数の強磁性ディスクドライブ）を限定することなく含む、ストレージデバイスの多種多様なタイプ（又はタイプの組み合わせ）のいずれかを含み得る。これらのストレージの各々が単一ブロックとして示されるが、これらのうちの１又は複数は、異なるストレージ技術に基づき得る複数のストレージデバイスを含み得ることに留意すべきである。従って、例えば、これらの示されたストレージの各々のうちの１又は複数は、プログラム及び／又はデータがいくつかの機械可読記憶媒体の形式で格納され得、かつ、伝達され得る光ドライブ又はフラッシュメモリカードリーダ、プログラム及び／又はデータを比較的拡張された期間ローカルに格納する強磁性ディスクドライブ、及び、プログラム及び／又はデータに対して比較的迅速にアクセスすることを可能にする１又は複数の揮発性ソリッドステートメモリデバイス（例えば、ＳＲＡＭ又はＤＲＡＭ）の組み合わせを表し得る。これらのストレージの各々が、同一のストレージ技術に基づいて、複数のストレージコンポーネントで構成され得るが、（例えば、いくつかのＤＲＡＭデバイスがメインストレージとして採用される一方、他のＤＲＡＭデバイスがグラフィックスコントローラの別個のフレームバッファとして採用されるといった）使用における特性の結果として別々に保持され得ることもまた留意すべきである。
【００５４】
様々な実施形態において、インタフェース５９０は、説明されたように、これらのコンピューティングデバイスが他のデバイスに結合されることを可能にする多種多様なシグナリング技術のいずれかを採用し得る。これらのインタフェースの各々は、そのような結合を可能とする少なくともいくつかの必須の機能を提供する回路を含む。しかしながら、これらのインタフェースの各々はまた、（例えば、プロトコルスタック又は他の機能を実装する）プロセッサコンポーネントのうちの対応するものにより実行される命令列と共に少なくとも部分的に実装され得る。電気的及び／又は光学的に導電性のあるケーブル配線が採用された場合、これらのインタフェースは、ＲＳ―２３２Ｃ、ＲＳ―４２２、ＵＳＢ、イーサネット（登録商標）（ＩＥＥＥ−８０２．３）又はＩＥＥＥ−１３９４を限定することなく含む、様々な業界標準のいずれかに準拠するシグナリング及び／又はプロトコルを採用し得る。無線信号伝送の使用が必要とされる場合、これらのインタフェースは、ＩＥＥＥ８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１６、８０２．２０（通常、「モバイルブロードバンド無線アクセス」と呼ばれる）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）、又は、ＧＳＭ（登録商標）及び汎用パケット無線サービス（ＧＳＭ（登録商標）／ＧＰＲＳ）、ＣＤＭＡ／ｌｘＲＴＴ、ＥＤＧＥ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  Ｒａｔｅｓ  ｆｏｒ  Ｇｌｏｂａｌ  Ｅｖｏｌｕｔｉｏｎ）、ＥＶ−ＤＯ（Ｅｖｏｌｕｔｉｏｎ  Ｄａｔａ  Ｏｎｌｙ／Ｏｐｔｉｍｉｚｅｄ）、ＥＶ−ＤＶ（Ｅｖｏｌｕｔｉｏｎ  Ｆｏｒ  Ｄａｔａ ａｎｄ  Ｖｏｉｃｅ）、ＨＳＤＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄｏｗｎｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、ＨＳＵＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｕｐｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、４Ｇ  ＬＴＥ等のようなセルラー無線電話サービスを限定することなく含む、様々な業界標準のいずれかに準拠するシグナリング及び／又はプロトコルを採用し得る。
【００５５】
図６は、図１又は図２のいずれかのビデオ処理システム１０００の実施形態の一部のブロック図をより詳細に示す。より具体的には、図６は、コントローラ６００の動作環境を含むコンピューティングデバイス５００の動作環境の複数の態様を示し、プロセッサコンポーネント５５０は、制御ルーチン５４０を実行する上でＲＡＮＳＡＣの複数の部分を逐次的に実行し、プロセッサコンポーネント５５０又は６５０は、複数の提示モデルの複数のセットの導出及びテストを並列して実行する。図７は、その部分の動作の複数の一時的態様をより詳細に示し、特に、コンピューティングデバイス５００及びコントローラ６００の動作環境間の並列処理の複数の態様を示す。図８は、ＲＡＮＳＡＣの実行を停止するときを決定する部分の例示的なロジックの疑似コードを示す。当業者に認識可能なように、各々が構成される複数のコンポーネントを含む制御ルーチン５４０及び６４０は、プロセッサコンポーネント５５０及び６５０の適用可能なものを実装するために選択されるプロセッサ又は複数のプロセッサのタイプであれば、そのいずれにおいても動作可能となるように選択される。
【００５６】
様々な実施形態において、制御ルーチン５４０及び６４０の各々は、オペレーティングシステム、デバイスドライバ、及び／又は、（例えば、リモートサーバから取得された「アプレット」をディスク媒体上に提供した、いわゆる「ソフトウェアスイート」等の）アプリケーションレベルルーチンのうちの１又は複数を含み得る。オペレーティングシステムが含まれる場合、オペレーティングシステムは、プロセッサコンポーネント５５０又は６５０の対応するもののどれにも適用する様々な利用可能なオペレーティングシステムのいずれかであり得る。１又は複数のデバイスドライバが含まれる場合、これらのデバイスドライバは、コンピューティングデバイス５００又はコントローラ６００のもので、ハードウェア又はソフトウェアコンポーネントのいずれかの様々な他のコンポーネントのいずれかに関するサポートを提供し得る。
【００５７】
制御ルーチン５４０は、説明されたように、ネットワーク９９９を介して複数の信号を送信及び受信するインタフェース５９０を操作するプロセッサコンポーネント５５０により実行可能な通信コンポーネント５４９を含み得る。受信された複数の信号の中では、ネットワーク９９９を介してコンピューティングデバイス１００、３００、５００、又は７００のうち１又は複数の中で定義データ１３０、データセット３３０、及び／又は画像データ７３０を伝達する複数の信号であり得る。当業者に認識されるように、通信コンポーネント５４９は、インタフェース５９０を実装するように選択されるインタフェース技術のタイプであれば何でもあっても動作可能となるように選択される。
【００５８】
制御ルーチン５４０は、プロセッサコンポーネント５５０により実行可能なキャッシュコンポーネント５４５を含み得、プロセッサコンポーネント５５０及び６５０の間でバッファとして機能するキャッシュ５５５の少なくとも一部を構成し、データセット３３０、テストデータ５３０、及び結果データ６３０の１又は複数が、キャッシュ５５５のみを通してそれらの間で交換されることを可能とする。代替的に又はそれに加えて、キャッシュコンポーネント５４５は、共有ストレージ領域５６５の少なくとも一部をキャッシュするキャッシュ５５５の少なくとも一部を構成し得る。
【００５９】
制御ルーチン５４０は、プロセッサコンポーネント５５０により実行可能なテスト準備コンポーネント５４３を含み得、複数の提示モデルの新たなセットの生成及びテストに備えて、情報をテストデータ５３０に格納する。示されるように、テスト準備コンポーネント５４３は、複数の提示モデルの新たなセットが基づくべき複数のＭＳＳ５３３の新たなセットを生成するＭＳＳジェネレータ５４３３を組み込み得る。テスト準備コンポーネント５４３は次に、複数のＭＳＳ５３３の新たなセットを、テストデータ５３０の一部として格納し得る。前述のように、複数のＭＳＳ５３３の新たなセットの導出は先制して行われ得、その一方で、複数のＭＳＳ５３３の最後のセットから複数の新たなモデルの生成及びテストが行われる。テスト準備コンポーネント５４３は、適合閾値及び／又は複数の提示モデルの新たなセットの複数の提示モデルが有するべき特性（例えば、フォーマット）の複数の指標を取得し得、それらの指標を、それぞれ適合閾値５３７及び／又はモデル特性５３１としてテストデータ５３０に格納し得る。
【００６０】
制御ルーチン６４０は、プロセッサコンポーネント６５０により実行可能な導出コンポーネント６４３を含み得、テストデータ５３０の複数のＭＳＳ５３３の新たなセットに基づいて、複数の提示モデル６３６の新たなセットを並列して導出する。導出コンポーネント６４３は、テストデータ５３０の複数のＭＳＳ５３３と同様に、モデル特性５３１を取得し得、複数の提示モデルのそれぞれが有するべきフォーマットの指標を取得する。複数の提示モデル６３６の新たなセットを生成すると、導出コンポーネント６４３は次に、複数の提示モデル６３６の新たなセットの複数の提示モデル６３６のそれぞれの仕様を、結果データ６３０の一部として格納し得る。
【００６１】
制御ルーチン６４０は、データセット３３０の複数のデータ要素への適合のための導出コンポーネント６４３により生成される複数の提示モデル６３６の新たなセットを並列してテストすべく、プロセッサコンポーネント６５０により実行可能なテストコンポーネント６４７を含み得る。テストコンポーネント６４７は、データセット３３０を取得とともに、テストデータ５３０から適合閾値５３７を取得し得る。複数の提示モデル６３６の新たなセットのテストが完了すると、テストコンポーネント６４７は、複数の提示モデル６３６の、データセット３３０の複数のデータ要素へのそれぞれの適合の度合いの指標を、結果データ６３０のモデル適合結果６３７として格納し得る。前述のように、適合の度合いの指標は、新たなセットにおいて複数の提示モデルのそれぞれのコンセンサスセットにおけるインライアであるデータセット３３０のデータ要素の数の指標を含み得る。
【００６２】
制御ルーチン６４０は、実行の複数のスレッドをインスタンス化すべく、プロセッサコンポーネント６５０により実行可能なスレッドディスパッチャ６４５を含み得、導出コンポーネント６４３及びテストコンポーネント６４７それぞれによる複数の提示モデル６３６のそれぞれの新たなセットの導出及びテストを可能とする。より正確には、スレッドディスパッチャ６４５は、ＭＳＳジェネレータ５４３３により生成される複数のＭＳＳ５３３の新たなセットのＭＳＳ５３３のそれぞれと関連されるべき別個のスレッドをインスタンス化し得る。複数のＭＳＳ５３３の１つからのそれぞれの提示モデル６３６の導出は、それぞれの提示モデル６３６の後のテストと同様、複数のＭＳＳ５３３の１つと関連するスレッドで生じ得る。
【００６３】
制御ルーチン５４０は、ＲＡＮＳＡＣの実行の進捗度を制御すべくプロセッサコンポーネント５５０により実行可能な比較コンポーネント５４７を含み得る。比較コンポーネント５４７は、結果データ６３０のモデル適合結果６３７を取得し得、新たなセットのうちどれがデータセット３３０に最も適合するのかを決定すべく、複数の提示モデルの新たなセットの複数の提示モデルのそれぞれの適合の度合いについて、結果データ６３０のモデル適合結果６３７における複数の指標を比較し得る。比較コンポーネント５４７は次に、新たなセットの複数の提示モデルの最も適合する適合の度合いの指標を、ワーキングデータ３３５において保持される、複数の提示モデルの全ての前のセットの全体的に最良の提示モデルの適合の度合いの指標と比較し得る。示されるように、比較コンポーネント５４７は、新たなセットの最良の提示モデルが、全体的に最良の提示モデルよりも大いにデータセット３３０に適合する場合に新たな全体的に最良の提示モデルになる、複数の提示モデルの新たなセットの最も適合する提示モデルを選択すべく選択コンポーネント５４７７を組み込み得る。説明されたとおり、提示モデルは、そのコンセンサスセットにおいて多数のインライアを有する場合、より良好に適合するものであると決定され得る。複数の提示モデルの新たなセットの最良の提示モデルがより良好な適合である場合、選択コンポーネント５４７７は、結果データ６３０からそのモデル６３６の仕様を取得し、データセット３３０のいくつのデータ要素が新たなセットの最良の提示モデルのコンセンサスセットにおけるインライアであるかと共に、その仕様をワーキングデータ３３５に格納する。
【００６４】
新たなセットの複数の提示モデルの最も適合するものが、新たな全体的に最良の提示モデルになるようにより良好に適合するものである場合、比較コンポーネント５４７は、所定の確度で正確なモデルを決定するのに必要とされる複数の提示モデルの数を再計算し得る。全体的に最良の提示モデルが、そのような必要とされる提示モデルの数の再計算があり得、又はあり得ないように、導出されてテストされる提示モデルのそれぞれのセットに置換されるか否かに関わらず、比較コンポーネント５４７は、これまで導出されてテストされた複数の提示モデルの数を、複数の提示モデルの別の新たなセットが導出されてテストされるべきであるか否かを決定するのに必要とされる提示モデルの数と比較する。比較コンポーネント５４７は、いくつの提示モデルがこれまで導出されてテストされたか、及びいくつの提示モデルがワーキングデータ３３５において所定の確度で正確なモデルを決定するのに必要とされるかという複数の指標を格納し、保持し得る。これまで導出されてテストされた提示モデルの数が、必要とされる数を既に満たす又は超えている場合、これ以上の複数の提示モデルのセットは導出されたりテストされたりせず、現在全体的に最良の提示モデル（ワーキングデータ３３５において格納される仕様）である提示モデルはどれでもＲＡＮＳＡＣの実行により導出されるモデルになる。
【００６５】
より具体的に図７を参照すると、左から右へのタイムラインの進行で示されるように、制御ルーチン５４０及び６４０のそれぞれの少なくとも一部が並列して実行されている期間があり得、ＲＡＮＳＡＣの更なる実行が必要であるか否かについて決定が行われる場合、制御ルーチン５４０が実行する他の期間と交互に起こる。より具体的には、複数のＭＳＳ５３３の新たなセットを先制的に導出すべく、制御ルーチン５４０の実行と並列して、複数の提示モデル６３６の複数のセットを導出してテストするよう制御ルーチン６４０が実行される間に複数の期間が存在し得る。
【００６６】
並列実行のそのような期間中に、制御ルーチン６４０のスレッドディスパッチャ６４５は、複数のスレッド（例えば、１からＲの示された複数のスレッド）を、制御ルーチン５４０のＭＳＳジェネレータ５４３３から以前に受信された複数のＭＳＳ５３３のセットの対応する複数のＭＳＳ５３３（例えば、ＭＳＳ１からＭＳＳＲの対応するもの）と関連付けさせる。これらのスレッドのそれぞれにおいて、複数の提示モデル６３６のセットの対応する複数の提示モデル６３６（例えば、提示モデルＭ１からＭＲの対応するもの）が、複数のＭＳＳ５３３のセットから導出される。次に、これらのスレッドのそれぞれにおいて、複数の提示モデル６３６のそれぞれのインライアの数の対応する複数の指標を含む、複数のモデル適合結果６３７の複数の指標（例えば、インライアＷ１からＷＲの数）が、データセット３３０に対するそれらの提示モデル６３６のそれぞれのテストから生成される。説明されたように、スレッドディスパッチャ６４５により複数のＭＳＳ５３３のセットの対応するものと関連付けられた複数のスレッド１からＲは、並列して実行され得る。いくつかの実施形態において、複数のスレッド１からＲのそれぞれは、プロセッサコンポーネント６５０の異なるコア６５１による実行のために割り当てられ得、それによって、スレッド１からＲの全てが同時に並列実行されることが可能となる。しかしながら、スレッド１からＲの全ての同時実行を可能とするのに複数の利用可能なコア６５１の十分な数がない複数の実施形態において、複数のスレッド１からＲの複数のサブセットは、複数の利用可能なコア６５１の数の中で、並列して実行され得る。
【００６７】
並列実行のそのような期間中にまた、制御ルーチン５４０のＭＳＳジェネレータ５４３３は、複数の提示モデル６３６の別の新たなセット（例えば、ＭＲ＋１からＭ２Ｒ）が導出されてテストされるべきであるという可能性に備えて、複数のＭＳＳ５３３の別のセット（例えば、ＭＳＳＲ＋１からＭＳＳ２Ｒ）を先制的に導出し得る。以前に説明されたとおり、ＭＳＳジェネレータ５４３３による複数のＭＳＳ５３３の比較的少ない計算的に複雑な生成は、プロセッサコンポーネント５５０により実行される順次処理（例えば、単一スレッド）を使用して実行され得る。
【００６８】
他の複数の期間中、比較コンポーネント５４７は、これまでテストされた複数の提示モデルの全てで全体的に最良の提示モデルＭのインライアＷの数に対して、複数の提示モデル６３６の新たなセットのインライアの数（例えば、複数の提示モデルＭ１からＭＲのそれぞれのインライアＷ１からＷＲの数）の比較を実行し得る。より具体的には、これまで導出されてテストされてきた提示モデル６３６の数Ｎは、複数の制御ルーチン５４０及び６４０の最後の並列実行の期間中に、複数の提示モデル６３６の新たなセットの導出およびテストの完了を反映すべく、インクリメントされる。次に、複数の提示モデル６３６の新たなセットの複数の提示モデル６３６のいずれかが、全体的に最良の提示モデルＭよりも良好にデータセット３３０に適合するか否かのチェックが行われる。説明されたように、複数の提示モデル６３６の新たなセットの複数の提示モデル６３６の１つのインライアの数が、全体的に最良の提示モデルＭのものより大きいインライアの数を有する場合（例えば、Ｗ１からＷＲの１つがＷより大きい）、複数の提示モデル６３６の新たなセットの提示モデル６３６は、新たな全体的に最良の提示モデルＭになる。全体的に最良の提示モデルＭがそのように置換される場合、全体的に最良の提示モデルＭと関連付けられるインライアの数Ｗの指標は、新たな全体的に最良の提示モデルＭと関連付けられるインライアの数を反映させるべく、更新される。更に、全体的に最良の提示モデルＭがそのように置換される場合、所定の確度で正確なモデルを決定することが必要とされる複数の提示モデルの数Ｋは、新たな全体的に最良の提示モデルＭと関連付けられるインライアの新たな数を踏まえて再計算される。
【００６９】
全体的に最良の提示モデルＭの条件付き置換、関連付けられたインライアＷの数の更新、及び提示モデル６３６の必要とされる数Ｋの再計算に続いて、これまで導出されてテストされてきた提示モデル６３６の数Ｎが、所定の確度で正確なモデルを決定するのに必要とされる提示モデル６３６の数Ｋよりも依然としてより小さいか否かについてチェックが行われる。ＮがもはやＫより小さくない場合、ＲＡＮＳＡＣを実行する制御ルーチン５４０および６４０の更なる実行を停止し、現在の全体的に最良の提示モデルＭが、ＲＡＮＳＡＣの実行により導出される正確なモデルであるとみなされる。しかしながら、ＮがＫより小さい場合、制御ルーチン５４０および６４０の並列実行の別の期間が起動する。具体的には、複数のＭＳＳ５３３の別の新たなセット（例えば、ＭＳＳＲ＋１からＭＳＳ２Ｒ）からの複数の提示モデル６３６の別の新たなセット（例えば、複数の提示モデルＭＲ＋１からＭ２Ｒ）の導出が、データセット３３０に対する複数の提示モデル６３６のテストと共に起動され、これらは、複数のＭＳＳ５３３の更に別の新たなセット（例えば、ＭＳＳ２Ｒ＋１からＭＳＳ３Ｒ）の先制的な生成と並列して起動される。
【００７０】
図８は、ホモグラフィ変換アプリケーションにおいてＲＡＮＳＡＣの実行を継続するか否かを決定する上で、制御ルーチン５４０の少なくとも比較コンポーネント５４７のロジックの動作の例を示す。この例において、所定の確度で正確なモデルを決定するのに必要とされる提示モデル６３６の数Ｋ（例えば、１−ｐの所定の許容障害閾値内）が２０００の数に最初に設定され、試みを行う複数の提示モデル６３６の上限を定義する。その閾値を定義する所定の信頼レベルｐは、０．９９５に設定される。複数の提示モデル６３６の各セットにおいて導出されてテストされるべき提示モデル６３６の数ｉｔｅｒｓＰｅｒＣｈｕｎｋは、５００の数に設定され、制御ルーチン６４０の実行の全体にわたって並列して導出されテストされる複数の提示モデル６３６の上限を定義する。
【００７１】
実行に備えて、数Ｋに到達すべく更に導出されてテストされるべき提示モデル６３６の数ｌｅｆｔＩｔｅｒｓは、最初にＫに設定される（例えば、２０００の初期の数）。そのような導出及びテストの現在の実行において、並列して導出されてテストされるべき複数の提示モデル６３６の数ｃｕｒＮｕｍＯｆＭｏｄｅｌｓが、そのような導出およびテストの以下の実行において並列して導出されてテストされるべき複数の提示モデル６３６の数ｎｅｘｔＮｕｍＯｆＭｏｄｅｌｓと共に、数ｉｔｅｒｓＰｅｒＣｈｕｎｋに初期化される。これまでに導出されてテストされてきた全体的に最良の提示モデルのインライアＷの数は、０に初期化される。
【００７２】
制御ルーチン５４０のロジックの少なくとも一部の実行をＭＳＳ選択で開始すると、テスト準備コンポーネント５４３の実行が、５００の数の複数のＭＳＳ５３３のセットの生成で生じ、プロセッサコンポーネント６５０による制御ルーチン６４０の実行を可能にすべく共有ストレージ領域５６５を通して利用可能となる。前述のように、コントローラ６００は、コンピューティングデバイス５００のグラフィックスサブシステムであり得、それらのグラフィックス処理装置（ＧＰＵ）として機能するプロセッサコンポーネント６５０を有する。制御ルーチン５４０の少なくともいくつかの部分の更なる実行は、５００までの提示モデル６３６の並列な導出及びテストの両方を行う実行６４０の完了を待機し得る。
【００７３】
５００までの提示モデル６３６のそのような並列した導出及びテストに続いて、制御ルーチン５４０のロジックの一部の実行は、比較コンポーネント５４７のロジックの一部を実装するｆｉｎｄＢｅｓｔＨへの呼び出しで再開し得る。実行に備えて、全体的に最良の提示モデルＭと関連付けられるインライアの数ｐｒｅｖｉｏｕｓＷは、現在の数Ｗに初期化され、インデックスｉは、ゼロに初期化される。インデックスｉは、複数の提示モデル６３６の新たなセットのそれぞれの提示モデル６３６と関連付けられたインライアＷｉの数を、全体的に最良の提示モデルＭと関連付けられたインライアの数Ｗと反復の比較を制御するように用いられる。より正確には、単に導出されてテストされた複数の提示モデル６３６の新たなセットにおいて５００の提示モデル６３６がある場合、ｉは０から４９９まで反復し、ＷとあらゆるＷｉとの比較を生じさせる。
【００７４】
そのような比較の結果、複数の提示モデル６３６の新たなセットの複数の提示モデル６３６の１つは、全体的に最良の提示モデルＭと関連付けられたインライアＷの数よりも多くの数のインライアＷｉを有することが分かった場合、新たなセットのその提示モデル６３６は、新たな全体的に最良の提示モデルＭになる。従って、数Ｗは、数Ｗｉに更新され、数Ｋは、インライアの新たな数Ｗを踏まえて再計算される（ｎｅｗＫに設定）。
【００７５】
正確なモデルを決定することが必要とされる複数の提示モデル６３６の数Ｋが、新たな全体的に最良の提示モデルＭである結果、更新されるか否かに関わらず、数Ｋに到達すべく導出されてテストされるべきのままである複数の提示モデル６３６の数ｌｅｆｔＩｔｅｒｓが更新される。更新される結果、数ｌｅｆｔＩｔｅｒｓがゼロに収まる場合（ｌｅｆｔＩｔｅｒｓはゼロより下回ることは明示的に阻止されることに留意すべきである）、ＲＡＮＳＡＣの更なる実行が停止し、現在の全体的に最良の提示モデルＭが、ＲＡＮＳＡＣを介して導出される正確なモデルであるとみなされる。
【００７６】
しかしながら、更新された結果、数ｌｅｆｔＩｔｅｒｓがまだゼロに収まらない場合、複数の提示モデル６３６の次のセットにおいて導出されてテストされるべき複数の提示モデル６３６の数を示す数ｎｅｘｔＮｕｍＯｆＭｏｄｅｌｓが再計算される。数ｌｅｆｔＩｔｅｒｓが、更新された後に５００またはそれより以上である場合、数ｎｅｘｔＮｕｍＯｆＭｏｄｅｌｓは、５００の初期の値に設定されたままで、複数の提示モデル６３６の次の新たなセットが５００の提示モデル６３６の数を含むべきであることを示す。しかしながら、数ｌｅｆｔＩｔｅｒｓが、更新後に５００より下回る場合、数ｎｅｘｔＮｕｍＯｆＭｏｄｅｌｓは、次に導出されてテストされるべき数Ｋに到達することが必要とされる複数の提示モデル６３６の数のみを生じさせるべく、５００より小さい値に設定される。
【００７７】
図９は、論理フロー２１００の一実施形態を示す。論理フロー２１００は、本明細書で説明された１又は複数の実施形態により実行されるオペレーションのうちのいくつか又は全てを代表し得る。より具体的に、論理フロー２１００は、少なくとも制御ルーチン５４０及び６４０を実行する上で、プロセッサコンポーネント５５０及び／又は６５０により実行され、及び／又は、それぞれコンピューティングデバイス５００又はコントローラ６００の他のコンポーネントにより実行されるオペレーションを示し得る。
【００７８】
２１１０で、コンピューティングデバイスのプロセッサコンポーネント（例えば、コンピューティングデバイス５００のプロセッサコンポーネント５５０）がデータセットから逐次的に複数のＭＳＳの新たなセットを生成する。説明された通り、複数のＭＳＳのセットにおける複数のＭＳＳの数が、複数の提示モデルの新たなセットにおいて並列して生成されるべき複数の提示モデルの数と一致するよう選択され得る。
【００７９】
２１２０で、同一の及び／又は１又は複数の他のプロセッサコンポーネントの少なくとも１つのコア（例えば、プロセッサコンポーネント５５０及び／又は６５０の１又は複数のコア６５１）は、複数のＭＳＳの新たなセット、及び複数の提示モデルの１又は複数の特性の指標（例えば、モデル特性５３１に示され得る複数の提示モデルのフォーマット）から、複数の提示モデルの新たなセットを並列して生成する。説明された通り、ＲＡＮＳＡＣの複数の部分を実行することを伴うプロセッサコンポーネント及び／又はプロセッサコンポーネントのコアの間の通信は、キャッシュ及び／又はキャッシュによりキャッシュされる共有ストレージスペースを使用し得る（例えば、キャッシュ５５５及び／又は共有ストレージスペース５６５）。
【００８０】
２１３０で、複数の提示モデルの新たなセットが、データセットの複数のデータ要素で、新たなセットにおける複数の提示モデルのそれぞれの適合の度合いを決定すべく、並列してテストされる。それぞれの提示モデルに対して、データセットのどのデータ要素が提示モデルのインライアであって（従って、そのコンセンサスセットにあるか）、そして提示モデルのアウトライアであるのかを決定するべく、適合閾値が採用され得る。
【００８１】
２１４０で、新たなセットのどの提示モデルがデータセットに最も適合するかという決定がされる。次に、新たなセットの複数の提示モデルの最も適合するものが、前に導出されてテストされた複数の提示モデルの全てのセットの全ての複数の提示モデルの中から最もデータセットに適合する全体的に最良の提示モデルよりも良好にデータセットに適合するか否かについて決定がなされる。前述のように、それぞれの提示モデルに関する適合の度合いは、データセットのいくつのデータ要素が提示モデルのコンセンサスセットのインライアであるかに基づき得、提示モデルは、より良好に適合するとみなされるインライアのより大きい数のコンセンサスセットを有する。
【００８２】
２１５０で、複数の提示モデルの新たなセットの最も適合する提示モデルが、複数の提示モデルの全ての前のセットの全体的に最良の提示モデルよりも良好に適合するものである場合、新たなセットの最も適合する提示モデルが、２１５２で新たな全体的に最良の提示モデルになる。全体的に最良の提示モデルにおけるこの変更に続いて、所定の確度で正確なモデルを決定するよう導出されてテストされることが必要とされる複数のモデル数が２１５４で再計算される。
【００８３】
全体的に最良の提示モデルが変更され、導出されてテストされるべき必要とされる複数の提示モデルの数が再計算されるか否かに関わらず、２１６０では、必要とされている数がこれまでに導出されてテストされた数によって超過していないか否かを決定すべく、これまでに導出されてテストされた複数の提示モデルの数が複数の提示モデルの必要とされる数と比較される。そうでない場合、複数のＭＳＳの別のセットの生成及び複数の提示モデルの別のセットの導出及びテストが実行される。
【００８４】
図１０は、論理フロー２２００の一実施形態を示す。論理フロー２２００は、本明細書で説明された１又は複数の実施形態により実行されるオペレーションのうちのいくつか又は全てを代表し得る。より具体的に、論理フロー２２００は、少なくとも制御ルーチン５４０を実行する上で、プロセッサコンポーネント５５０により実行され、及び／又は、コンピューティングデバイス５００の他のコンポーネントにより実行される複数のオペレーションを示し得る。
【００８５】
２２１０で、コンピューティングデバイスのプロセッサコンポーネント（例えば、コンピューティングデバイス５００のプロセッサコンポーネント５５０）が、複数の提示モデルの特性の複数の指標、及び共有メモリスペースにおけるデータセットへの適合の閾値を格納する。再び、複数のプロセッサコンポーネント及び／又はＲＡＮＳＡＣの複数の部分を実行することを伴う複数のプロセッサコンポーネントの複数のコアとの間の通信は、キャッシュ及び／又はキャッシュによりキャッシュされる共有ストレージスペース（例えば、キャッシュ５５５及び／又は共有ストレージスペース５６５）を使用し得る。
【００８６】
２２２０で、プロセッサコンポーネントはデータセットから複数のＭＳＳの新たなセットを逐次的に生成する。説明されたとおり、複数のＭＳＳのセットにおける複数のＭＳＳの数は、複数の提示モデルの新たなセットに並列して生成されるべき複数の提示モデルの数と一致するよう選択され得る。再び、複数のＭＳＳのセットにおいて複数のＭＳＳの数が、複数の提示モデルの新たなセットにおいて並列して生成されるべき複数の提示モデルの数と一致するよう選択され得る。同一の、及び／又は１又は複数の他のプロセッサコンポーネントの少なくとも１つのコア（例えば、複数のプロセッサコンポーネント５５０及び／又は６５０の１又は複数のコア６５１）が、２２３０で、複数のＭＳＳの新たなセットから、複数の提示モデルの新たなセットを並列して導出してテストするよう合図される。
【００８７】
２２４０で、プロセッサコンポーネントは、複数のＭＳＳの別の新たなセットを、データセットから先制して逐次的に生成する。前述のように、複数のＭＳＳのこの他の新たなセットが実際に使用されるか否かについて不確かではあるが、複数のＭＳＳの別の新たなセットのこのような先制的な生成は、ＲＡＮＳＡＣの実行に対する別の並列度をもたらし、それによって、実行時間を更に減少する。２２５０で、プロセッサコンポーネントは、複数の提示モデルの新たなセットの複数の提示モデルの仕様の複数の指標、及び複数の提示モデルの新たなセットの複数の提示モデルのそれぞれのデータセットへの適合の度合いをテストするテスト結果の格納を待機する。
【００８８】
２２６０で、新たなセットのどの提示モデルが、データセットに最も適合するかの決定がなされる。次に、新たなセットの複数の提示モデルの最も適合するものが、前に導出されてテストされた複数の提示モデルの全てのセットの複数の提示モデルの全ての中から最もデータセットに適合する全体的に最良の提示モデルよりも良好にデータセットに適合するか否かについての決定がなされる。再び、それぞれの提示モデルに対する適合の度合いは、データセットのいくつのデータ要素が、提示モデルのコンセンサスセットのインライアであるかに基づき得、提示モデルは、より良好に適合するものであるとみなされるより多い数のインライアを伴うコンセンサスセットを有する。
【００８９】
２２７０で、複数の提示モデルの新たなセットの最も適合する提示モデルが、複数の提示モデルの全ての前のセットの全体的に最良の提示モデルよりも良好に適合するものである場合、新たなセットの最も適合する提示モデルが、２２７２で、新たな全体的に最良の提示モデルになる。全体的に最良の提示モデルにおけるこの変更に続いて、所定の確度で正確なモデルを決定するのに導出されてテストされることが必要とされる複数のモデルの数が、２２７４で再計算される。
【００９０】
全体的に最良の提示モデルが変更されて、導出されてテストされるのに必要とされる複数の提示モデルの数が再計算されるか否かに関わらず、２２８０で、これまで導出されてテストされた複数の提示モデルの数は、必要とされる数がこれまで導出されてテストされた数により超過していないか否かを決定すべく、複数の提示モデルの必要とされる数と比較される。そうでない場合、同一の及び／又は１又は複数の他プロセッサコンポーネントの少なくとも１つのコアが、２２３０で複数のＭＳＳの他の新たなセットから並列して複数の提示モデルの別の新たなセットを導出してテストするよう合図される。
【００９１】
図１１は、論理フロー２３００の一実施形態を示す。論理フロー２３００は、本明細書で説明された１又は複数の実施形態により実行されるオペレーションのうちのいくつか又は全てを代表し得る。より具体的に、論理フロー２３００は、少なくとも制御ルーチン６４０を実行しているときに、プロセッサコンポーネント５５０又は６５０により実行され、及び／又は、それぞれコンピューティングデバイス５００又はコントローラ６００の他のコンポーネントにより実行されるオペレーションを示し得る。
【００９２】
２３１０で、コンピューティングデバイスのプロセッサコンポーネント（例えば、コンピューティングデバイス５００のプロセッサコンポーネント５５０、又はコントローラ６００のプロセッサコンポーネント６５０）は、共有メモリスペースで格納される複数のＭＳＳの新たなセットから複数の提示モデルの新たなセットを導出してテストすべく、同一の又は異なるプロセッサコンポーネントのコアからの信号を待機する。再び、ＲＡＮＳＡＣの複数の部分を実行することを伴う複数のプロセッサコンポーネント及び／又は複数のプロセッサコンポーネントの複数のコアとの間の通信は、キャッシュ及び／又はキャッシュによりキャッシュされる共有ストレージスペースを使用し得る（例えば、キャッシュ５５５及び／又は共有ストレージスペース５６５）。
【００９３】
２３２０で、プロセッサコンポーネントは、複数の提示モデルの特性の指標（例えば、モデル特性５３１に示され得る複数の提示モデルのフォーマット）、及び複数のＭＳＳの新たなセットを、共有メモリスペースから取得する。再び、複数のＭＳＳのセットにおいて複数のＭＳＳの数は、複数の提示モデルの新たなセットにおいて並列して生成されるべき複数の提示モデルの数に一致するよう選択され得る。２３３０にて、プロセッサコンポーネントの少なくとも１つのコア（例えば、プロセッサコンポーネント５５０ｓ及び／又は６５０の少なくとも１つのコア６５１）は、複数のＭＳＳの新たなセット、及び複数の提示モデルの１又は複数の特性の指標から並列して複数の提示モデルの新たなセットを生成する。
【００９４】
２３４０で、プロセッサコンポーネントは、複数のＭＳＳが生成されたデータセット、及び適合閾値の指標を、共有メモリスペースから取得する。２３５０で、プロセッサコンポーネントの少なくとも１つのコアは、データセットの複数のデータ要素で、適合度合いに関して複数の提示モデルの新たなセットの複数の提示モデルの新たなセットをテストする。各提示モデルについて、適合閾値は、データセットのどのデータ要素が、提示モデルのインライアであって（従って、コンセンサスセットにあるか）、及びその提示モデルのアウトライアがどれであるかを決定すべく採用され得る。
【００９５】
２３６０にて、プロセッサコンポーネントは、複数の提示モデルの新たなセットの複数の提示モデルのそれぞれの仕様の複数の指標と、それぞれのテストの結果の複数の指標を、共有メモリスペースに格納する。再び、テスト結果の複数の指標は、いくつのインライアが、複数の提示モデルの新たなセットの複数の提示モデルのそれぞれのコンセンサスセット内にあるかという指標を含み得る。２３７０で、同一の又は異なるプロセッサコンポーネントの別のコアが、複数の提示モデルの新たなセットの導出及びテストが完了するという指標で合図される。
【００９６】
図１２は、前に説明されたように、様々な実施形態を実装するために好適な例示的処理アーキテクチャ３０００の実施形態を示す。より具体的に、処理アーキテクチャ３０００（又はその変形）は、コンピューティングデバイス１００、３００、５００又は７００の１又は複数の一部として、及び／又はコントローラ６００の一部として実装され得る。処理アーキテクチャ３０００の複数のコンポーネントは、最後の２桁が、コンピューティングデバイス１００、３００、５００及び７００の一部、並びにコントローラ６００として以前に示され、かつ、説明されたコンポーネントの少なくともいくつかの参照番号の最後の２桁に対応する所与の参照番号であることに留意すべきである。これは、コンポーネントの各々に対応する補助として行われる。
【００９７】
処理アーキテクチャ３０００は、１又は複数のプロセッサ、複数のコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力／出力（Ｉ／Ｏ）コンポーネント、電力供給等を限定することなく含む、デジタル処理において通常採用される様々な要素を含む。本願において用いられるように、用語「システム」及び「コンポーネント」は、デジタル処理が実行されるコンピューティングデバイスのエンティティに言及することが意図され、そのエンティティは、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア又は実行中のソフトウェア、この示された例示的処理アーキテクチャにより提供される複数の例である。例えば、コンポーネントは、プロセッサコンポーネントにおいて実行されている処理、プロセッサコンポーネントそのもの、光及び／又は磁気記憶媒体を採用し得るストレージデバイス（例えば、ハードディスクドライブ、アレイにおける複数のストレージドライブ等）、ソフトウェアオブジェクト、実行可能な命令列、実行スレッド、プログラム及び／又はコンピューティングデバイス全体（例えば、コンピュータ全体）が可能であるがこれらに限定されない。例示として、サーバ上で実行するアプリケーション及びサーバの両方がコンポーネントであることが可能である。１又は複数のコンポーネントは、処理及び／又は実行スレッド内に存在することが可能で、コンポーネントは、１つのコンピューティングデバイス上に局在可能で、及び／又は、２又はそれより多いコンピューティングデバイスの間で分散可能である。更に、複数のコンポーネントは、複数のオペレーションを調整するべく、様々なタイプの通信媒体により互いに通信可能に結合され得る。調整は、一方向又は双方向の情報の交換を伴い得る。例えば、コンポーネントは、通信媒体を介して通信される複数の信号の形式で情報を通信し得る。情報は、１又は複数の信号線に割り当てられた複数の信号として実装可能である。（コマンド、ステータス、アドレス又はデータメッセージを含む）メッセージは、そのような信号のうちの１つであり得、又は、そのような信号のうちの複数であり得、かつ、直列的に又は実質的にのいずれかに並列して、様々な接続及び／又はインタフェースのいずれかを通じて送信され得る。
【００９８】
示されるように、処理アーキテクチャ３０００の実装において、コンピューティングデバイスは、少なくともプロセッサコンポーネント９５０、ストレージ９６０、他のデバイスに対するインタフェース９９０及び結合９５９を含む。説明されるように、処理アーキテクチャ３０００を実装するコンピューティングデバイスの様々な態様に応じて、その意図された使用及び／又は使用の状態を含み、そのようなコンピューティングデバイスは、そのような限定なく、ディスプレイインタフェース９８５のような追加のコンポーネントを更に含み得る。
【００９９】
結合９５９は、１又は複数のバス、ポイントツーポイントインタコネクト、送受信機、バッファ、クロスポイントスイッチ、及び／又は、少なくともプロセッサコンポーネント９５０をストレージ９６０に通信可能に結合する他の導体並びに／若しくはロジックを含む。結合９５９は、インタフェース９９０、オーディオサブシステム９７０及びディスプレイインタフェース９８５のうちの１又は複数にプロセッサコンポーネント９５０を更に結合し得る（これら及び／又は他のコンポーネントがまた存在することにも依る）。プロセッサコンポーネント９５０が結合９５９により結合された状態で、プロセッサコンポーネント９５０は、処理アーキテクチャ３０００を実装する前述した複数のコンピューティングデバイスのうちのいずれかの１つについて、上記で詳しく説明した様々なタスクを実行することが可能である。結合９５９は、複数の信号が光学的及び／又は電気的に伝達される様々な技術のいずれか、又は、技術の組み合わせで実装され得る。更に、結合９５９の少なくとも一部は、アクセラレーテッドグラフィックスポート（ＡＧＰ）、ＣａｒｄＢｕｓ、Ｅ−ＩＳＡ（Ｅｘｔｅｎｄｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＮｕＢｕｓ、ペリフェラルコンポーネントインターコネクト（Ｅｘｔｅｎｄｅｄ）（ＰＣＩ−Ｘ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩ−Ｅ）、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）バス、ハイパートランスポート（登録商標）、ＱｕｉｃｋＰａｔｈ等を限定することなく含む、多種多様な業界標準のいずれかに準拠するタイミング及び／又はプロトコルを採用し得る。
【０１００】
前述のように、（プロセッサコンポーネント５５０及び６５０に対応する）プロセッサコンポーネント９５０は、多種多様な技術のいずれかを採用し、複数の方法のいずれかで物理的に組み合わせられる１又は複数のコアとともに実装される、多種多様な商業的に利用可能なプロセッサのいずれかを含み得る。
【０１０１】
前述のように、（ストレージ５６０及び６６０に対応する）ストレージ９６０は、多種多様な技術のいずれか又は技術の組み合わせに基づいて、１又は複数の別個のストレージデバイスで構成され得る。より具体的に、示されるように、ストレージ９６０は、揮発性ストレージ９６１（例えば、ＲＡＭテクノロジーの１又は複数の形式に基づくソリッドステートストレージ）、不揮発性ストレージ９６２（例えば、それらのコンテンツを保持するために一定の電力の提供を必要としないソリッドステート、強磁性又は他のストレージ）及びリムーバブルメディアストレージ９６３（例えば、情報がコンピューティングデバイス間で伝達され得るリムーバブルディスク又はソリッドステートメモリカードストレージ）のうちの１又は複数を含み得る。複数の別個のタイプのストレージをおそらく含むようなこのストレージ９６０の図は、プロセッサコンポーネント９５０によりデータのより迅速な操作を可能にする（しかし、電力を絶えず必要とする「揮発性」技術をおそらく用いる）、あるタイプが比較的迅速な読み取り及び書き込み機能を提供する一方、別のタイプが比較的高い密度の不揮発性ストレージを提供する（しかし、比較的遅い読み取り及び書き込み機能をおそらく提供する）、コンピューティングデバイス内の１より多いタイプのストレージデバイスの通常の使用が認められている。
【０１０２】
異なる技術を採用するしばしば異なるストレージデバイスの異なる特性を考慮すると、異なるインタフェースを通じてそれらの異なるストレージデバイスに結合される異なるストレージコントローラを通じて、コンピューティングデバイスの他の一部に結合される、そのような異なるストレージデバイスについてもまた、よく見られる。例として、揮発性ストレージ９６１が存在し、ＲＡＭテクノロジーに基づく場合、揮発性ストレージ９６１は、行及び列のアドレス指定をおそらく採用する揮発性ストレージ９６１に適切なインタフェースを提供するストレージコントローラ９６５ａを通じじて結合９５９に通信可能に結合され得、ストレージコントローラ９６５ａは、揮発性ストレージ９６１内に格納された情報を保存することを補助するべく、行の更新及び／又は他のメンテナンスタスクを実行し得る。別の例として、不揮発性ストレージ９６２が存在し、１又は複数の強磁性及び／又はソリッドステートディスクドライブを含む場合、不揮発性ストレージ９６２は、情報及び／又はシリンダのブロックとセクターとのアドレス指定をおそらく採用する不揮発性ストレージ９６２に適切なインタフェースを提供するストレージコントローラ９６５ｂを通じて結合９５９に通信可能に結合され得る。更なる別の例として、リムーバブルメディアストレージ９６３が存在し、機械可読記憶媒体９６９の１又は複数の断片を採用する１又は複数の光及び／又はソリッドステートディスクドライブを含む場合、リムーバブルメディアストレージ９６３は、情報のブロックのアドレス指定をおそらく採用するリムーバブルメディアストレージ９６３に適切なインタフェースを提供するストレージコントローラ９６５ｃを通じて結合９５９に通信可能に結合され得、ストレージコントローラ９６５ｃは、機械可読記憶媒体９６９の寿命を延ばすことに特有の態様でオペレーションの読み出し、消去、及び書き込みを調整し得る。
【０１０３】
揮発性ストレージ９６１又は不揮発性ストレージ９６２の一方又は他方は、各々が基づく複数の技術に応じて、プロセッサコンポーネント９５０により実行可能な命令列を含むルーチンが格納され得る、機械可読記憶媒体の形式における製品を含み得る。例として、不揮発性ストレージ９６２は、強磁性ベースのディスクドライブ（例えば、いわゆる「ハードドライブ」）を含む場合、そのような各ディスクドライブは、１又は複数の回転プラッタを典型的に採用し、フロッピー（登録商標）ディスケットのような記憶媒体に似た態様で命令列のような情報を格納するべく、磁気的に対応する粒子のコーティングが様々なパターンで堆積され、かつ、磁気的に指向される。別の例として、不揮発性ストレージ９６２は、ソリッドステートストレージデバイスのバンクで構成され得、コンパクトフラッシュ（登録商標）カードに似た態様で命令列のような情報を格納する。更に、実行可能なルーチン及び／又はデータを格納するべく、異なる回数でコンピューティングデバイスの異なるタイプのストレージデバイスを採用することがよく見られる。
【０１０４】
従って、プロセッサコンポーネント９５０により実行される命令列を含むルーチンは、機械可読記憶媒体９６９に最初に格納され得、ルーチンが実行されるように、プロセッサコンポーネント９５０によって、より迅速なアクセスを可能とする機械可読記憶媒体９６９及び／又は揮発性ストレージ９６１の連続的な存在を必要としない、より長い期間の格納のための不揮発性ストレージ９６２に対してルーチンをコピーするときに、リムーバブルメディアストレージ９６３は続けて採用され得る。
【０１０５】
前述のように、（おそらくインタフェース５９０に対応する）インタフェース９９０は、１又は複数の他のデバイスにコンピューティングデバイスを通信可能に結合するべく採用され得る様々な通信技術のいずれかに対応する様々なシグナリング技術のいずれかを採用し得る。更に、様々な形式の有線又は無線シグナリングの一方又は両方は、ネットワーク（例えば、ネットワーク９９９）又は相互接続されたネットワークのセットをおそらく通じて、入力／出力デバイス（例えば、示された例示的なキーボード９２０若しくはプリンタ９２５）及び／又は他のコンピューティングデバイスと相互作用することをプロセッサコンポーネント９５０に可能させるべく採用され得る。任意の１つのコンピューティングデバイスによって、しばしばサポートされるべき複数のタイプのシグナリング及び／又はプロトコルのしばしば大幅に異なる性質が認められる場合、インタフェース９９０は、複数の異なるインタフェースコントローラ９９５ａ、９９５ｂ及び９９５ｃを含むように示される。インタフェースコントローラ９９５ａは、示されたキーボード９２０のような、ユーザ入力デバイスから連続的に送信されたメッセージを受信するべく、様々なタイプの有線デジタルシリアルインタフェース又は無線周波数無線インタフェースのいずれかを採用し得る。インタフェースコントローラ９９５ｂは、示されたネットワーク９９９（１又は複数のリンクで構成されるおそらくネットワーク、より小さなネットワーク又はおそらくインターネット）を通じて他のコンピューティングデバイスにアクセスする様々なケーブルベース若しくは無線シグナリング、タイミング及び／又はプロトコルのいずれかを採用し得る。インタフェース９９５ｃは、示されたプリンタ９２５にデータを伝達するべく、シリアル又はパラレル信号伝送のいずれかの使用を可能にする、様々な電気的に導電性のあるケーブル配線のいずれかを採用し得る。インタフェース９９０の１又は複数のインタフェースコントローラを通じて通信可能に結合され得るデバイスの他の例は、人が作り得る音声又は他のサウンドを介してその人により合図されたコマンド及び／又はデータを受け入れるべく、人のサウンドをモニタするマイク、リモートコントロール、スタイラスペン、カードリーダ、指紋リーダ、仮想現実インタラクショングローブ、グラフィカル入力タブレット、ジョイスティック、他のキーボード、網膜スキャナ、タッチスクリーンのタッチ入力コンポーネント、トラックボール、様々なセンサ、ジェスチャ及び／又は顔の表現を介して人により合図されたコマンド及び／又はデータを受け入れるべく、人の動きをモニタするカメラ又はカメラアレイ、レーザプリンタ、インクジェットプリンタ、機械ロボット、ミリング機械等を、限定することなく含む。
【０１０６】
コンピューティングデバイスがディスプレイ（例えば、示された例示的なディスプレイ９８０）に通信可能に結合される（又は、おそらく実際に組み込まれる）場合、そのような処理アーキテクチャ３０００を実装するコンピューティングデバイスはまた、ディスプレイインタフェース９８５を含み得る。より汎用的なタイプのインタフェースは、ディスプレイに通信可能に結合するときに採用され得るが、ディスプレイに様々な形式のコンテンツを視覚的に表示する場合にしばしば必要とされる、それと同様に幾分か特化された追加の処理及び使用されるケーブルベースインタフェースの幾分か特化された性質は、しばしば別個のディスプレイインタフェースの提供を望ましいものとする。ディスプレイ９８０の通信可能な結合において、ディスプレイインタフェース９８５により採用され得る有線及び／又は無線シグナリング技術は、様々なアナログビデオインタフェース、デジタルビデオインタフェース（ＤＶＩ）、ＤｉｓｐｌａｙＰｏｒｔ等のいずれかを、限定することなく含む様々な業界標準のいずれかに準拠するシグナリング及び／又はプロトコルを使用し得る。
【０１０７】
図１３は、システム４０００の実施形態を示す。様々な実施形態において、システム４０００は、システム１０００、コンピューティングデバイス１００、３００、５００又は７００の１又は複数、及び／又は、論理フロー２１００、２２００又は２３００の１又は複数のような、本明細書で説明された１又は複数の実施形態での使用に好適なシステム又はアーキテクチャを代表し得る。実施形態は、この点に限定されない。
【０１０８】
示されるように、システム４０００は、複数の要素を含み得る。１又は複数の要素は、設計又は性能制約の所与のセットについて所望されるように、１又は複数の回路、コンポーネント、レジスタ、プロセッサ、ソフトウェアサブルーチン、モジュール又はそれらの任意の組み合わせを用いて実装され得る。図１３は、例として、特定のトポロジーにおいて限定された数の要素を示しているが、任意の適切なトポロジーにおいて、より多くの又はより少ない要素が、所与の実装について所望されるように、システム４０００で用いられる可能性があることが理解され得る。複数の実施形態は、この文脈に限定されない。
【０１０９】
複数の実施形態において、システム４０００は、この文脈に限定されないが、システム４０００は、メディアシステムであり得る。例えば、システム４０００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスト（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット又はスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス等に組み込まれ得る。
【０１１０】
複数の実施形態において、システム４０００は、ディスプレイ４９８０に結合されるプラットフォーム４９００ａを含む。プラットフォーム４９００ａは、コンテンツサービスデバイス４９００ｃ若しくはコンテンツ配信デバイス４９００ｄ又は他の同様のコンテンツソースのようなコンテンツデバイスからコンテンツを受信し得る。１又は複数のナビゲーション機能を含むナビゲーションコントローラ４９２０は、例えば、プラットフォーム４９００ａ及び／又はディスプレイ４９８０と相互作用するために用いられ得る。これらのコンポーネントの各々は、以下により詳細に説明される。
【０１１１】
複数の実施形態において、プラットフォーム４９００ａは、プロセッサコンポーネント４９５０、チップセット４９５５、メモリユニット４９６９、送受信機４９９５、ストレージ４９６２、アプリケーション４９４０及び／又はグラフィックスサブシステム４９８５の任意の組み合わせを含み得る。チップセット４９５５は、プロセッサ回路４９５０、メモリユニット４９６９、送受信機４９９５、ストレージ４９６２、アプリケーション４９４０及び／又はグラフィックスサブシステム４９８５間の相互通信を提供し得る。例えば、チップセット４９５５は、ストレージ４９６２との相互通信を提供することが可能なストレージアダプタ（図示せず）を含み得る。
【０１１２】
プロセッサコンポーネント４９５０は、任意のプロセッサ又は論理デバイスを用いて実装され得、更に、プロセッサコンポーネント５５０または６５０のうち１又は複数、及び／又は図１２のプロセッサコンポーネント９５０と同一又は同様のものであり得る。
【０１１３】
メモリユニット４９６９は、データを格納することが可能な任意の機械可読又はコンピュータ可読媒体を用いて実装され得、更に、図１２の記憶媒体９６９と同一又は同様のものであり得る。
【０１１４】
送受信機４９９５は、様々な好適な無線通信技術を用いて、信号を送信し受信することを可能とする１又は複数の無線機を含み得、更に、図１２の送受信機９９５ｂと同一又は同様のものであり得る。
【０１１５】
ディスプレイ４９８０は、任意のテレビ型のモニタ又はディスプレイを含み得る、更に、ディスプレイ３８０及び／又は６８０のうち１又は複数、及び／又は図１２のディスプレイ９８０と同一又は同様のものであり得る。
【０１１６】
ストレージ４９６２は、不揮発性ストレージデバイスとして実装され得、更に、図１２の不揮発性ストレージ９６２と同一又は同様のものであり得る。
【０１１７】
グラフィックスサブシステム４９８５は、表示のための静止画又はビデオのような画像の処理を実行し得る。グラフィックスサブシステム４９８５は、例えば、グラフィックス処理装置（ＧＰＵ）又はビジュアル処理装置（ＶＰＵ）であり得る。アナログ又はデジタルインタフェースは、グラフィックスサブシステム４９８５及びディスプレイ４９８０を通信可能に結合するために用いられ得る。例えば、インタフェースは、高品位マルチメディアインタフェース、ＤｉｓｐｌａｙＰｏｒｔ、無線ＨＤＭＩ（登録商標）及び／又は無線ＨＤ準拠技術のいずれかであり得る。グラフィックスサブシステム４９８５は、プロセッサ回路４９５０又はチップセット４９５５に統合され得る。グラフィックスサブシステム４９８５は、チップセット４９５５に通信可能に結合されるスタンドアロンカードであり得る。
【０１１８】
本明細書で説明されるグラフィックス及び／又はビデオ処理技術は、様々なハードウェアアーキテクチャに実装され得る。例えば、グラフィックス及び／又はビデオ機能は、チップセット内に統合され得る。代替的に、別々のグラフィックス及び／又はビデオプロセッサが用いられ得る。更に別の実施形態のように、グラフィックス及び／又はビデオ機能は、複数のコアプロセッサを含む汎用プロセッサにより実装され得る。更なる実施形態において、機能は、消費者向け電子デバイスに実装され得る。
【０１１９】
複数の実施形態において、コンテンツサービスデバイス４９００ｂは、任意の国の、国際的な及び／又は独立のサービスによりホストされ得、従って、例えば、インターネットを介してプラットフォーム４９００ａにアクセス可能となる。コンテンツサービスデバイス４９００ｂは、プラットフォーム４９００ａ及び／又はディスプレイ４９８０に結合され得る。プラットフォーム４９００ａ及び／又はコンテンツサービスデバイス４９００ｂは、ネットワーク４９９９へ及びそこからメディア情報を通信（例えば、送信及び／又は受信）するべく、ネットワーク４９９９に結合され得る。コンテンツ配信デバイス４９００ｃはまた、プラットフォーム４９００ａ及び／又はディスプレイ４９８０に結合され得る。
【０１２０】
複数の実施形態において、コンテンツサービスデバイス４９００ｂは、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、デジタル情報及び／又はコンテンツを提供することが可能なインターネット可能なデバイス若しくは電気機器、及び、ネットワーク４９９９を介して、又は直接的に、コンテンツプロバイダとプラットフォーム４９００ａ及び／又はディスプレイ４９８０との間でコンテンツを一方向又は双方向に通信することが可能な任意の他の同様のデバイスを含み得る。コンテンツがネットワーク４９９９を介してシステム４０００及びコンテンツプロバイダ内の複数のコンポーネントのうちの任意の１つへ、及びそれから一方向及び／又は双方向に通信し得ることが理解されよう。コンテンツの複数の例は、例えば、ビデオ、音楽、医療及びゲーム情報等を含む任意のメディア情報を含み得る。
【０１２１】
コンテンツサービスデバイス４９００ｂは、メディア情報、デジタル情報及び／又は他のコンテンツを含むケーブルテレビプログラミングのようなコンテンツを受信する。コンテンツプロバイダの複数の例は、任意のケーブル若しくは衛星テレビ又は無線機若しくはインターネットコンテンツプロバイダを含み得る。提供した複数の例は、実施形態を制限することを意味するものではない。
【０１２２】
複数の実施形態において、プラットフォーム４９００ａは、１又は複数のナビゲーション機能を有するナビゲーションコントローラ４９２０から複数の制御信号を受信し得る。ナビゲーションコントローラ４９２０のナビゲーション機能は、例えば、ユーザインタフェース４８８０と相互作用するために用いられ得る。実施形態において、ナビゲーションコントローラ４９２０は、ユーザが空間（例えば、連続及び多次元の）データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント（具体的に、ヒューマンインタフェースデバイス）であり得るポインティングデバイスであり得る。グラフィカルユーザインタフェース（ＧＵＩ）及び、テレビ並びにモニタのような多くのシステムは、ユーザが身体的なジェスチャを利用してコンピュータ又はテレビを制御し、及びそこにデータを提供することを可能にする。
【０１２３】
ナビゲーションコントローラ４９２０のナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング又は他の視覚的な指標の動きによって、ディスプレイ（例えば、ディスプレイ４９８０）上で同調され得る。例えば、ソフトウェアアプリケーション４９４０の制御のもと、ナビゲーションコントローラ４９２０上に位置付けられるナビゲーション機能は、ユーザインタフェース４８８０上に表示される仮想ナビゲーション機能にマッピングされ得る。複数の実施形態において、ナビゲーションコントローラ４９２０は、別個のコンポーネントではなく、プラットフォーム４９００ａ及び／又はディスプレイ４９８０に統合され得る。しかしながら、複数の実施形態は、当該要素又は本明細書で示された若しくは説明された文脈に限定されない。
【０１２４】
複数の実施形態において、複数のドライバ（不図示）は、例えば、イネーブルになったときに、初期のブートアップの後にボタンのタッチでテレビのようなプラットフォーム４９００ａをユーザが即座にオン及びオフすることを可能にする技術を含み得る。プログラムロジックは、プラットフォームが「オフ」にされるときに、プラットフォーム４９００ａが、メディアアダプタ又は他のコンテンツサービスデバイス４９００ｂ若しくはコンテンツ配信デバイス４９００ｃにコンテンツをストリーミング配信することを可能にし得る。加えて、チップセット４９５５は、例えば、５．１サラウンドサウンドオーディオ及び／又は高精細な７．１サラウンドサウンドオーディオをサポートするハードウェア及び／又はソフトウェアを含み得る。ドライバは、統合されたグラフィックスプラットフォーム用のグラフィックスドライバを含み得る。複数の実施形態において、グラフィックスドライバは、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレスグラフィックスカードを含み得る。
【０１２５】
様々な実施形態において、システム４０００内に示されるコンポーネントのうちの任意の１又は複数は、統合され得る。例えば、プラットフォーム４９００ａ及びコンテンツサービスデバイス４９００ｂが統合され得、若しくは、プラットフォーム４９００ａ及びコンテンツ配信デバイス４９００ｃが統合され得、又は、プラットフォーム４９００ａ、コンテンツサービスデバイス４９００ｂ及びコンテンツ配信デバイス４９００ｃが統合され得る。様々な実施形態において、プラットフォーム４９００ａ及びディスプレイ４８９０は、統合されたユニットであり得る。例えば、ディスプレイ４９８０及びコンテンツサービスデバイス４９００ｂが統合され得、又は、ディスプレイ４９８０及びコンテンツ配信デバイス４９００ｃが統合され得る。これらの例は、実施形態を制限することを意味するものではない。
【０１２６】
様々な実施形態において、システム４０００は、無線システム、有線システム又は両方の組み合わせとして実装され得る。無線システムとして実装されるとき、システム４０００は、１又は複数のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、制御ロジック等のような、無線共有媒体を介して通信するために好適なコンポーネント及びインタフェースを含み得る。 無線の共有媒体の一例は、ＲＦスペクトル等のような無線スペクトルの複数の部分を含み得る。有線システムとして実装される場合、システム４０００は、Ｉ／Ｏアダプタ、対応する有線通信媒体を有するＩ／Ｏアダプタを接続する物理コネクタ、ネットワークインタフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等のような、有線通信媒体を介して通信するために好適なコンポーネント及びインタフェースを含み得る。有線通信媒体の複数の例は、ワイヤ、ケーブル、複数の金属リード、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバ等を含み得る。
【０１２７】
プラットフォーム４９００ａは、情報を通信するべく、１又は複数の論理又は物理チャネルを確立し得る。情報は、メディア情報及び制御情報を含み得る。メディア情報は、ユーザ向けのコンテンツを表す任意のデータを指し得る。コンテンツの複数の例は、例えば、音声会話からのデータ、ビデオ会議、ストリーミングビデオ、電子メール（ｅメール）メッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキスト等を含み得る。音声会話からのデータは、例えば、スピーチ情報、無音期間、背景ノイズ、快適ノイズ、トーン等であり得る。制御情報は、自動化されたシステム向けのコマンド、命令又は制御語を表す任意のデータを指し得る。 例えば、制御情報は、システムを通じてメディア情報をルーティングするために、又は、所定の態様でメディア情報を処理することをノードに指示するのに用いられ得る。しかしながら、複数の実施形態は、要素又は図１３に示され若しくは説明された文脈に限定されない。
【０１２８】
上述のように、システム４０００は、様々な物理的なスタイル又はフォームファクタで具現化され得る。図１４は、システム４０００が具現化され得るスモールフォームファクタデバイス５０００の複数の実施形態を示す。複数の実施形態において、例えば、デバイス５０００は、無線機能を有するモバイルコンピューティングデバイスとして実装され得る。モバイルコンピューティングデバイスは、処理システムと、例えば、１又は複数のバッテリのようなモバイル電源又はモバイル電力供給とを有する任意のデバイスを指し得る。
【０１２９】
上述のように、モバイルコンピューティングデバイスの例は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスト（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット又はスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス等を含み得る。
【０１３０】
モバイルコンピューティングデバイスの複数の例はまた、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣類コンピュータ及び他のウェアラブルコンピュータのように、人によって着用されるように構成されたコンピュータを含み得る。複数の実施形態において、例えば、モバイルコンピューティングデバイスは、音声通信及び／又はデータ通信と同様、コンピュータアプリケーションを実行することが可能なスマートフォンとして実装され得る。いくつかの実施形態は、例として、スマートフォンとして実装されたモバイルコンピューティングデバイスを用いて説明され得るが、他の実施形態が、他の無線モバイルコンピューティングデバイスを同様に用いて実装され得ることが理解され得る。複数の実施形態は、この文脈に限定されない。
【０１３１】
図１４に示されたように、デバイス５０００は、ディスプレイ５９８０、ナビゲーションコントローラ５９２０ａ、ユーザインタフェース５８８０、ハウジング５９０５、Ｉ／Ｏデバイス５９２０ｂ及びアンテナ５９９８を含み得る。ディスプレイ５９８０は、モバイルコンピューティングデバイス用の適切な情報を表示する任意の適切なディスプレイユニットを含み得、かつ、図１３のディスプレイ４９８０と同一又は同様のものであり得る。ナビゲーションコントローラ５９２０ａは、ユーザインタフェース５８８０と相互作用することに用いられ得る１又は複数のナビゲーション機能を含み得、かつ、図１３のナビゲーションコントローラ４９２０と同一又は同様のものであり得る。Ｉ／Ｏデバイス５９２０ｂは、モバイルコンピューティングデバイスに情報を入力するための任意の適切なＩ／Ｏデバイスを含み得る。Ｉ／Ｏデバイス５９２０ｂの複数の例は、英数字キーボード、テンキー、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイク、スピーカ、音声認識デバイス及びソフトウェア等を含み得る。情報はまた、マイクを介してデバイス５０００に入力され得る。そのような情報は、音声認識デバイスによってデジタル化され得る。複数の実施形態は、この文脈に限定されない。
【０１３２】
より一般的に、本明細書で説明され及び図示されたコンピューティングデバイスの様々な要素は、様々なハードウェア要素、ソフトウェア要素又は両方の組み合わせを含み得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサコンポーネント、回路要素（例えば、トランジスタ、レジスタ、コンデンサ、インダクタ等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含み得る。ソフトウェア要素の複数の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル又はそれらの任意の組み合わせを含み得る。しかしながら、実施形態がハードウェア要素及び／又はソフトウェア要素を用いて実装されるか否かを決定することは、所与の実装のために望まれるように、所望の計算レート、電力レベル、耐熱性、処理サイクル量、入力データレート、出力データレート、メモリリソース、データバス速度及び、他の設計又は性能制約のような任意の複数の要因によって異なり得る。
【０１３３】
いくつかの実施形態は、「一実施形態」又は「実施形態」という表現をそれらの派生語と共に用いて説明され得る。これらの用語は、実施形態と関連して説明した特定の機能、構造又は特性が少なくとも一実施形態に含まれることを意味する。本明細書の様々な個所における「一実施形態」という文言の出現は、必ずしも同一の実施形態を全て指すわけではない。更に、いくつかの実施形態は、「結合され」及び「接続され」という表現をそれらの派生語と共に用いて説明され得る。これらの用語は、必ずしも、互いの同義語として意図されたものではない。例えば、いくつかの実施形態は、２又はそれより多い要素が、互いに直接物理的又は電気的に接触していることを示すべく、「接続され」及び／又は「結合され」という用語を用いて説明され得る。しかしながら、「結合され」という用語はまた、２又はそれより多い要素が互いに直接接触していないが、まだ依然として互いに協働又は相互作用することを意味し得る。更に、異なる実施形態からの複数の態様又は要素が組み合わせられ得る。
【０１３４】
本開示の要約は、読み手が技術的開示の本質を迅速に把握することを可能にするために提供されることが強調される。要約書は、特許請求の範囲の範囲若しくは意味を解釈又は限定するために使用されないという理解の下に提出されている。加えて、上記の詳細な説明では、様々な機能が開示を効率的にする目的で単一の実施形態においてともにグループ化されていることが分かるであろう。本開示のこの方法は、請求された実施形態が各請求項に明示的に記載されたものより多くの機能を必要とする意図を反映するものとして解釈されるべきでない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態の全ての機能よりも少ないことにある。従って、これにより、以下の特許請求の範囲は、別個の実施形態としてそれ自体に依存する各請求項とともに、本明細書において詳細な説明に組み込まれる。添付の請求項において、「ｉｎｃｌｕｄｉｎｇ」及び「ｉｎ  ｗｈｉｃｈ」という用語は、それぞれ「ｃｏｍｐｒｉｓｉｎｇ」及び「ｗｈｅｒｅｉｎ」というそれぞれの用語に相当する平易な英語として用いられる。更に、「第１」、「第２」、「第３」、「等」という用語は、単にラベルとして用いられ、それらの対象に数値的な要件を課すことは意図されない。
【０１３５】
上記で説明されたものは、開示されたアーキテクチャの例を含む。それは、当然ながら、コンポーネント及び／又は方法論のあらゆる考えられる組み合わせを説明することは可能ではないが、当業者は、多くの更なる組み合わせ及び変形が可能であると認識し得る。従って、新規なアーキテクチャは、添付の請求項の主旨及び範囲内に収まるそのような全ての変更、修正及び変形を包含することが意図される。詳細な開示は、ここで更なる複数の実施形態に関する複数の例を提供することなる。以下で提供される複数の例は、限定することは意図されない。
【０１３６】
例１において、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を実行するデバイスは、データセットの複数のミニマルサンプルセット（ＭＳＳ）のセットから、複数の提示モデルの新たなセットの複数の提示モデルを並列して導出する導出コンポーネントと、比較コンポーネントとを含み、比較コンポーネントは、新たなセットの提示モデルが、任意の前に導出された提示モデルよりも良好にデータセットに適合する場合、選択された確度内で正確なモデルを導出するのに必要とされる、提示モデルの数を再計算し、必要とされる数と、既に導出された提示モデルの数との比較に基づいて、複数の提示モデルの別の新たなセットを導出するか否かを決定する。
【０１３７】
例１の主題を含む例２において、デバイスは、複数の提示モデルの新たなセットのそれぞれの提示モデルの、データセットに対する適合度合いを並列してテストするテストコンポーネントを含み得、テストコンポーネントは、いくつのデータ要素が、選択された適合閾値内で新たなセットのそれぞれの提示モデルに適合するかに基づいて、データセットのいくつのデータ要素が、新たなセットのそれぞれの提示モデルのコンセンサスセットのインライアであるかを決定し得る。
【０１３８】
例１から２のいずれかの主題を含む例３において、比較コンポーネントは、任意の前に導出された提示モデルよりも良好にデータセットに適合する新たなセットの提示モデルのコンセンサスセットにおいて複数のインライアの数に基づいて、必要とされる数を再計算し得る。
【０１３９】
例１から３のいずれかの主題を含む例４において、比較コンポーネントは、複数の提示モデルの全ての前に導出されたセットでデータセットに最も適合する全体的に最良の提示モデルの仕様をストレージに格納し得、デバイスは、ストレージにおいて全体的に最良の提示モデルの仕様を、全体的に最良の提示モデルよりも良好にデータセットに適合する新たなセットの提示モデルの仕様に置換する選択コンポーネントを含み得る。
【０１４０】
例１から４のいずれかの主題を含む例５において、デバイスは、複数の提示モデルの新たなセットを並列して導出することを可能とすべく、複数の提示モデルの新たなセットの導出の前に、複数のミニマルサンプルセット（ＭＳＳ）のセットを生成し、及び、複数の提示モデルの別の新たなセットを並列して導出することに備えて、新たなセットの導出と並列して、複数のＭＳＳの別のセットを生成するＭＳＳジェネレータを含み得る。
【０１４１】
例１から５のいずれかの主題を含む例６において、ＭＳＳジェネレータは、複数のＭＳＳのセットのそれぞれのＭＳＳと、複数のＭＳＳの他のセットのそれぞれのＭＳＳとを生成すべく、データセットの複数のデータ要素をランダムに選択し得る。
【０１４２】
例１から６のいずれかの主題を含む例７において、デバイスは、ＭＳＳジェネレータを実行するコアと、導出コンポーネントを実行する少なくとも１つの他のコアと、コアと少なくとも１つの他のコアとの間で複数のＭＳＳのセットを伝達するキャッシュとを含み得る。
【０１４３】
例１から７のいずれかの主題を含む例８において、デバイスは、コアと、少なくとも１つの他のコアとを含み得る。
【０１４４】
例１から８のいずれかの主題を含む例９において、少なくとも１つの他のコアは、複数のコアを含み得、複数のコアのそれぞれのコアは、少なくとも１つの実行のスレッドをサポートし得、導出コンポーネントは、複数のコアの１つで実行の別個のスレッドを介して、新たなセットのそれぞれの提示モデルを導出し得る。
【０１４５】
例１から９のいずれかの主題を含む例１０において、少なくとも１つの他のコアは、複数のレーンでｓｉｎｇｌｅ−ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ−ｄａｔａ（ＳＩＭＤ）オペレーションをサポートするレジスタセットを含み得、導出コンポーネントは、複数のレーンの別個のレーン内の新たなセットのそれぞれの提示モデルを導出し得る。
【０１４６】
例１から１０のいずれかの主題を含む例１１において、デバイスは、コアと少なくとも１つの他のコアとの間でバッファとして機能するキャッシュを構成するキャッシュコンポーネントを含み得る。
【０１４７】
例１から１１のいずれかの主題を含む例１２において、デバイスは、コアと少なくとも１つの他のコアとにアクセス可能なストレージと、ストレージ内に定義され、キャッシュにより少なくとも部分的にキャッシュされる共有ストレージスペースとを含み得、ＭＳＳジェネレータは、複数のＭＳＳのセットと複数のＭＳＳの他のセットを共有ストレージスペースに格納し、導出コンポーネントは、複数のＭＳＳのセットを共有ストレージスペースから取得する。
【０１４８】
例１から１２のいずれかの主題を含む例１３において、デバイスは、正確なモデルに基づいて画像を視覚的に提示するディスプレイ、又は正確なモデルと関連するデータを別のデバイスに送信するインタフェースのうちの少なくとも１つを含み得る。
【０１４９】
例１４において、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を実行するデバイスは、複数の提示モデルの新たなセットのうち複数の提示モデルのデータセットへの適合度合いを並列してテストするテストコンポーネントと、比較コンポーネントとを含み、比較コンポーネントは、新たなセットの提示モデルが、任意の前にテストされた提示モデルよりも良好にデータセットに適合する場合、選択された確度内で正確なモデルを導出するのに必要とされる、提示モデルの数を再計算し、必要とされる数と、既にテストされた提示モデルの数との比較に基づいて、複数の提示モデルの別の新たなセットをテストするか否かを決定する。
【０１５０】
例１４の主題を含む例１５において、デバイスは、データセットの複数のミニマルサンプルセット（ＭＳＳ）のセットから、複数の提示モデルの新たなセットのそれぞれの提示モデルを並列して導出する導出コンポーネントを含み得る。
【０１５１】
例１４から１５のいずれかの主題を含む例１６において、比較コンポーネントは、データセットに最も適合する複数の提示モデルの全ての前にテストされたセットの全体的に最良の提示モデルの仕様をストレージに格納し得、デバイスは、ストレージにおける全体的に最良の提示モデルの仕様を、全体的に最良の提示モデルよりも良好にデータセットに適合する新たなセットの提示モデルの仕様と置換する選択コンポーネントを含み得る。
【０１５２】
例１４から１６のいずれかの主題を含む例１７において、デバイスは、複数の提示モデルの新たなセットを並列して導出及びテストすることを可能とすべく、複数の提示モデルの新たなセットのテストの前に、複数のミニマルサンプルセット（ＭＳＳ）のセットを生成し、及び、複数の提示モデルの別の新たなセットを並列して導出及びテストすることに備えて、新たなセットのテストと並列して、複数のＭＳＳの別のセットを生成するＭＳＳジェネレータを含み得る。
【０１５３】
例１４から１７のいずれかの主題を含む例１８において、ＭＳＳジェネレータは、複数のＭＳＳのセットのそれぞれのＭＳＳと、複数のＭＳＳの他のセットのそれぞれのＭＳＳとを生成すべく、データセットの複数のデータ要素をランダムに選択し得る。
【０１５４】
例１４から１８のいずれかの主題を含む例１９において、テストコンポーネントは、いくつのデータ要素が、選択された適合閾値内で新たなセットのそれぞれの提示モデルに適合するかに基づいて、データセットのいくつのデータ要素が、新たなセットのそれぞれの提示モデルのコンセンサスセットのインライアであるかを決定し得、比較コンポーネントは、任意の前にテストされた提示モデルよりも良好にデータセットに適合する新たなセットの提示モデルのコンセンサスセットにおけるインライアの数に基づいて、必要とされる数を再計算し得る。
【０１５５】
例１４から１９のいずれかの主題を含む例２０において、デバイスは、比較コンポーネントを実行するコアと、テストコンポーネントを実行する少なくとも１つの他のコアと、コアと少なくとも１つの他のコアとの間で複数の提示モデルの新たなセットの複数のコンセンサスセットのセットを伝達するキャッシュとを含み得る。
【０１５６】
例１４から２０のいずれかの主題を含む例２１において、プロセッサコンポーネントは、コアと、少なくとも１つの他のコアとを含み得る。
【０１５７】
例１４から２１のいずれかの主題を含む例２２において、少なくとも１つの他のコアは、複数のコアと、複数のコアの１つで別個の実行のスレッドを介して新たなセットのそれぞれの提示モデルをテストするテストコンポーネントとを含み得、複数のコアのそれぞれのコアは、少なくとも１つの実行のスレッドをサポートする。
【０１５８】
例１４から２２のいずれかの主題を含む例２３において、少なくとも１つの他のコアは、複数のレーンでｓｉｎｇｌｅ−ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ−ｄａｔａ（ＳＩＭＤ）オペレーションをサポートするレジスタセットを含み得、テストコンポーネントは、複数のレーンの別個のレーン内で新たなセットのそれぞれの提示モデルをテストし得る。
【０１５９】
例１４から２３のいずれかの主題を含む例２４において、デバイスは、コアと少なくとも１つの他のコアとの間でバッファとして機能するキャッシュを構成するキャッシュコンポーネントを含み得る。
【０１６０】
例１４から２４のいずれかの主題を含む例２５において、デバイスは、コアと少なくとも１つの他のコアとにアクセス可能なストレージと、ストレージ内に定義され、キャッシュにより少なくとも部分的にキャッシュされた共有ストレージスペースとを含み得、テストコンポーネントは、共有ストレージスペースにおいて複数のコンセンサスセットのセットを格納し、比較コンポーネントは、共有ストレージスペースから複数のコンセンサスセットのセットを取得する。
【０１６１】
例１４から２５のいずれかの主題を含む例２６において、デバイスは、正確なモデルに基づいて画像を視覚的に提示するディスプレイ、又は正確なモデルと関連付けられたデータを別のデバイスに送信するインタフェースのうちの少なくとも１つを含み得る。
【０１６２】
例２７において、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を実行するためのコンピュータ実装方法は、データセットの複数のミニマルサンプルセット（ＭＳＳ）のセットから、複数の提示モデルの新たなセットの複数の提示モデルを並列して導出する段階と、新たなセットの提示モデルが、任意の前に導出された提示モデルよりも良好にデータセットに適合する場合、選択された確度内で正確なモデルを導出するのに必要とされる、提示モデルの数を再計算する段階と、必要とされる数と、既に導出された提示モデルの数との比較に基づいて、複数の提示モデルの別の新たなセットを導出するか否かを決定する段階とを含み得る。
【０１６３】
例２７の主題を含む例２８において、方法は、いくつのデータ要素が、選択された適合閾値内で新たなセットのそれぞれの提示モデルに適合するかに基づいて、データセットのいくつのデータ要素が、新たなセットのそれぞれの提示モデルのコンセンサスセットのインライアであるかを決定する段階を含み得る。
【０１６４】
例２７から２８のいずれかの主題を含む例２９において、方法は、任意の前に導出された提示モデルよりも良好にデータセットに適合する新たなセットの提示モデルのコンセンサスセットにおける複数のインライアの数に基づいて、必要とされる数を再計算する段階を含み得る。
【０１６５】
例２７から２９のいずれかの主題を含む例３０において、方法は、複数の提示モデルの新たなセットを並列して導出することを可能とすべく、複数の提示モデルの新たなセットを導出する前に複数のＭＳＳのセットを生成する段階と、複数の提示モデルの別の新たなセットを導出することに備えて、新たなセットを並列して導出することと並列して、複数のＭＳＳの別のセットを生成する段階とを含み得る。
【０１６６】
例２７から３０のいずれかの主題を含む例３１において、方法は、複数のＭＳＳのセットのそれぞれのＭＳＳを生成すべく、データセットの複数のデータ要素をランダムに選択する段階と、複数のＭＳＳの他のセットのそれぞれのＭＳＳを生成すべく、データセットの複数のデータ要素をランダムに選択する段階とを含み得る。
【０１６７】
例２７から３１のいずれかの主題を含む例３２において、方法は、複数のＭＳＳのセットと、複数のＭＳＳの他のセットを１つのコアで生成する段階と、複数の提示モデルの新たなセットを少なくとも１つの他のコアで導出する段階とを含み得る。
【０１６８】
例２７から３２のいずれかの主題を含む例３３において、少なくとも１つの他のコアは、複数のコアを含み得、複数のコアのそれぞれのコアは、少なくとも１つの実行のスレッドをサポートし得、方法は、複数のコアの１つで別個の実行のスレッドを介して、新たなセットのそれぞれの提示モデルを導出する段階を含み得る。
【０１６９】
例２７から３３のいずれかの主題を含む例３４において、少なくとも１つの他のコアは、複数のレーンでｓｉｎｇｌｅ−ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ−ｄａｔａ（ＳＩＭＤ）オペレーションをサポートするレジスタセットを含み得、方法は、複数のレーンの別個のレーン内で新たなセットのそれぞれの提示モデルを導出する段階を含み得る。
【０１７０】
例２７から３４のいずれかの主題を含む例３５において、方法は、コアと少なくとも１つの他のコアとの間でバッファとして機能するキャッシュを構成する段階を含み得る。
【０１７１】
例２７から３５のいずれかの主題を含む例３６において、方法は、コアと少なくとも１つの他のコアにアクセス可能なストレージにおいて共有ストレージスペースを定義する段階と、共有ストレージスペースを少なくとも部分的にキャッシュするキャッシュを構成する段階と、複数のＭＳＳのセットと複数のＭＳＳの他のセットとを共有ストレージスペースに格納する段階とを含み得る。
【０１７２】
例２７から３６のいずれかの主題を含む例３７において、方法は、正確なモデルに基づいて画像を視覚的に提示する段階、又は正確なモデルと関連するデータを別のデバイスに送信する段階のうちの少なくとも１つを含み得る。
【０１７３】
例３８において、少なくとも１つの機械可読記憶媒体は、コンピューティングデバイスにより実行されるときに、コンピューティングデバイスに、データセットの複数のミニマルサンプルセット（ＭＳＳ）のセットから、複数の提示モデルの新たなセットの複数の提示モデルを並列して導出させ、新たなセットの提示モデルが、任意の前に導出された提示モデルよりも良好にデータセットに適合する場合、選択された確度内で正確なモデルを導出するのに必要とされる、提示モデルの数を再計算させ、必要とされる数と、既に導出された提示モデルの数との比較に基づいて、複数の提示モデルの別の新たなセットを導出するか否かを決定させる複数の命令を含む。
【０１７４】
例３８の主題を含む例３９において、コンピューティングデバイスは、いくつのデータ要素が、選択された適合閾値内で新たなセットのそれぞれの提示モデルに適合するかに基づいて、データセットのいくつのデータ要素が、新たなセットのそれぞれの提示モデルのコンセンサスセットのインライアであるかを決定させられ得る。
【０１７５】
例３８から３９のいずれかの主題を含む例４０において、コンピューティングデバイスは、任意の前に導出された提示モデルよりも良好にデータセットに適合する新たなセットの提示モデルのコンセンサスセットにおけるインライアの数に基づいて、必要とされる数を再計算させられ得る。
【０１７６】
例３８から４０のいずれかの主題を含む例４１において、コンピューティングデバイスは、複数の提示モデルの新たなセットを並列して導出することを可能とすべく、複数の提示モデルの新たなセットを導出する前に、複数のＭＳＳのセットを生成させられ得、複数の提示モデルの別の新たなセットを並列して導出するのに備えて新たなセットを導出すること並列して、複数のＭＳＳの別のセットを生成させられ得る。
【０１７７】
例３８から４１のいずれかの主題を含む例４２において、コンピューティングデバイスは、複数のＭＳＳのセットのそれぞれのＭＳＳを生成すべくデータセットの複数のデータ要素をランダムに選択させられ得、複数のＭＳＳの他のセットのそれぞれのＭＳＳを生成すべくデータセットの複数のデータ要素をランダムに選択させられ得る。
【０１７８】
例３８から４２のいずれかの主題を含む例４３において、コンピューティングデバイスは、複数のＭＳＳのセットと、複数のＭＳＳの他のセットとをコンピューティングデバイスの１つのコアで生成させられ得、複数の提示モデルの新たなセットをコンピューティングデバイスの少なくとも１つの他のコアで導出させられ得る。
【０１７９】
例３８から４３のいずれかの主題を含む例４４において、少なくとも１つの他のコアは、複数のコアを含み得、複数のコアのそれぞれのコアは、少なくとも１つの実行のスレッドをサポートし得、コンピューティングデバイスは、複数のコアの１つで別個の実行のスレッドを介して、新たなセットのそれぞれの提示モデルを導出させられ得る。
【０１８０】
例３８から４４のいずれかの主題を含む例４５において、少なくとも１つの他のコアは、複数のレーンでｓｉｎｇｌｅ−ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ−ｄａｔａ（ＳＩＭＤ）オペレーションをサポートするレジスタセットを含み得、コンピューティングデバイスは、複数のレーンの別個のレーン内で新たなセットのそれぞれの提示モデルを導出させられ得る。
【０１８１】
例３８から４５のいずれかの主題を含む例４６において、コンピューティングデバイスは、コアと少なくとも１つの他のコアとの間でバッファとして機能するコンピューティングデバイスのキャッシュを構成させられ得る。
【０１８２】
例３８から４６のいずれかの主題を含む例４７において、コンピューティングデバイスは、コアと少なくとも１つの他のコアとにアクセス可能なストレージにおいて共有ストレージスペースを定義させられ得、共有ストレージスペースを少なくとも部分的にキャッシュすべくキャッシュを構成させられ得、複数のＭＳＳのセットと複数のＭＳＳの他のセットとを共有ストレージスペースに格納させられ得る。
【０１８３】
例３８から４７のいずれかの主題を含む例４８において、コンピューティングデバイスは、正確なモデルと関連するデータを別のデバイスに送信させられ得る。
【０１８４】
例４９において、少なくとも１つの機械可読記憶媒体は、コンピューティングデバイスにより実行されるときに、コンピューティングデバイスに、上記のいずれかを実行させる複数の命令を含み得る。
【０１８５】
例５０において、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を実行するデバイスは、上記のいずれかを実行するための手段を含み得る。
【図１】
0006517223.tif 000003
【図２】
0006517223.tif 000004
【図３】
0006517223.tif 000005
【図４】
0006517223.tif 000006
【図５】
0006517223.tif 000007
【図６】
0006517223.tif 000008
【図７】
0006517223.tif 000009
【図８】
0006517223.tif 000010
【図９】
0006517223.tif 000011
【図１０】
0006517223.tif 000012
【図１１】
0006517223.tif 000013
【図１２】
0006517223.tif 000014
【図１３】
0006517223.tif 000015
【図１４】
0006517223.tif 000016