【文献】
LIU, Jialu、他3名,Large-Scale Spectral Clustering on Graphs,IJCAI'13 Proceedings of the Twenty-Third international joint conference on Artificial Intelligence, Beijing, China,THE ACM DIGITAL LIBRARY,2013年 8月 3日,pp.1486-1492,ISBN:978-1-57735-633-2,URL,https://dl.acm.org/citation.cfm?id=2540342
(58)【調査した分野】(Int.Cl.,DB名)
前記クラスタ決定部は、k平均クラスタリングプロセスを実行することによって、前記データフローグラフの前記ノードをクラスタリングして、前記複数のサブグラフを形成する、請求項1乃至6いずれか一項に記載のコンピューティング装置。
前記パーティショナセレクタは、前記スペクトルグラフパーティショナによって生成された1以上のクラスタリングについて決定された1以上の品質メトリクス又は前記データフローグラフのサイズに少なくとも部分的に基づいて選択する、請求項12に記載のコンピューティング装置。
前記データフローグラフのノードをクラスタリングして、前記複数次元空間において前記複数のサブグラフを形成するステップは、k平均クラスタリングプロセスを実行するステップを含む、請求項15又は16に記載の方法。
前記データフローグラフのノードのクラスタリングが与えられると、前記コンピューティングシステムによって、該ノードの該クラスタリングについての1以上の品質メトリクスを決定するステップ
をさらに含む、請求項15又は16に記載の方法。
前記データフローグラフのノードをクラスタリングして、前記複数次元空間において前記複数のサブグラフを形成する手段は、k平均クラスタリングプロセスを実行する手段を含む、請求項22又は23に記載のコンピューティング装置。
【発明を実施するための形態】
【0005】
以下の詳細な説明において、本明細書の一部を形成する添付図面を参照する。添付図面において、同様の参照番号は、全体を通して同様の部分を示し、実施することができる例示的な実施形態が示される。他の実施形態を使用することができ、構造的な変更又は論理的な変更を、本開示の範囲から逸脱することなく行うことができることを理解されたい。したがって、以下の詳細な説明は、限定的に解釈されるべきではなく、実施形態の範囲は、請求項及びその均等の構成によって定められる。
【0006】
特許請求される主題を理解する上で最も役に立つ形で、さまざまな動作が、複数の別個のアクション又は動作として順番に説明され得る。しかしながら、説明の順番は、これらの動作が必ず順番に依存することを意味すると解釈されるべきではない。詳細には、これらの動作は、提示される順番で実行されないことがある。説明する動作は、説明する実施形態とは異なる順番で実行されることがある。さまざまなさらなる動作が実行されることもあるし、且つ/あるいは、説明する動作が、さらなる実施形態では省略されることもある。
【0007】
本開示のために、「A及び/又はB」という語句は、(A)、(B)又は(A及びB)を意味する。本開示のために、「A、B、及び/又はC」という語句は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B、及びC)を意味する。
【0008】
本説明では、「一実施形態において」又は「実施形態において」という語句が使用され得る。これらの語句の各々は、同じ実施形態又は異なる実施形態のうちの1以上を指すことがある。さらに、本開示の実施形態に対して使用される、「備える」、「含む」、「有する」等といった用語は、同義語である。
【0009】
本明細書で使用される場合、「ロジック」及び「モジュール」という用語は、1以上のソフトウェアプログラム又はファームウェアプログラムを実行する特定用途向け集積回路(ASIC)、電子回路、プロセッサ(共用、専用、又はグループ)及び/若しくはメモリ(共用、専用、又はグループ)、組合せロジック回路、並びに/又は、説明する機能を提供する他の適切なコンポーネントを指すこともあるし、これらの一部であることもあるし、又は、これらを含むこともある。本明細書で説明するように、「ロジック」及び「モジュール」という用語は、以下で説明するように、システムオンチップを指すこともあるし、システムオンチップの一部であることもあるし、又は、システムオンチップを含むこともある。
【0010】
さまざまな実施形態において、グラフ分割システム(「GPS」)のスペクトルグラフパーティショナ(「SP」)は、コンピューティング装置を複数のサブグラフにプログラムするためのプログラムに関連付けられたデータフローグラフの推定に基づく分割を実行するよう構成され得る。サブグラフを使用して、プログラムの解析又はデバッグを実行することができる。プログラムの解析又はデバッグの実行後、このプログラムを使用して、タスクを実行するようにコンピューティング装置をプログラムすることができる。SPを動作させるためのコンピューティング装置及びプログラムされるコンピューティング装置は、同じコンピューティング装置であってもよいし異なるコンピューティング装置であってもよい。このような1以上のコンピューティング装置は、コンピューティングタブレット、ラップトップ、デスクトップ、又はサーバを含む、当分野で既知の任意のコンピューティング装置であってよいが、これらに限定されるものではない。タスクは、システムサービスタスクからアプリケーションタスクまで、当分野で既知の任意のタスクであってよい。
【0011】
SPは、データフローグラフ(以下、単に「グラフ」とする)を複数のノードクラスタに分割して、対応するサブグラフを形成するために使用する1以上のベクトルを推定するよう構成され得る。SPは、グラフを表現するラプラシアン行列の推定固有ベクトルを生成するよう構成され得る。SPは、
【数1】
によって表される関数を最小化するによって、ベクトルvとして推定固有ベクトルを生成するよう構成され得る。さまざまな実施形態において、SPは、関数fの最小化の間、ベクトルvのランダム座標を0に設定するよう構成され得る。固有ベクトルの推定後、0に設定された座標は、近傍座標の平均値に再設定され得る。
【0012】
さまざまな実施形態において、SPは、グラフのノードを複数のクラスタにクラスタリングする際に、したがって、グラフを複数のサブグラフに分割する際に使用するための複数の推定固有ベクトルを生成するよう構成され得る。SPは、推定固有ベクトルによって記述される複数次元空間におけるk平均クラスタリングを使用してクラスタリングを実行するよう構成され得る。さまざまな実施形態において、SPはまた、さらなるクラスタリングが実行される場合がある、より高次元の空間を記述するために推定固有ベクトルの生成を繰り返すことによってクラスタリングを精緻化するよう構成され得る。SPはまた、クラスタについての品質メトリクスを決定し、品質メトリクスに基づいてクラスタリングの精緻化を停止するよう構成され得る。さまざまな実施形態において、GPSはまた、SPによって生成されたパーティションを使用するか又は分割のために1以上の他のパーティショナを使用するかを選択するよう構成され得る。例えば、GPSは、SPの代わりにグラフの1以上のパーティションをレポートするためにエッジ中心性パーティショナ(edge-centrality partitioner)を使用することができる。GPSは、例えば、SPによって生成された1以上のクラスタリングについてSPによって決定された品質メトリクス又はグラフサイズ等のさまざまなファクタに基づいて、SPと他のパーティショナとの間で選択することができる。
【0013】
図1を参照すると、さまざまな実施形態に従った、SP150を含むGPS100のコンポーネント及び情報フローが示されている。特定のコンポーネントが図示されているが、さまざまな実施形態において、GPS100及び/又はSP150は、他のコンポーネントを含むこともあるし、且つ/あるいは、
図1に示される1以上のコンポーネントを省略することもあることに留意されたい。さまざまな実施形態において、図示されるコンポーネントは、ハードウェア及び/又はソフトウェアにより実装され得、以下で説明するように、さまざまなフォームファクタのコンピューティングデバイス上で動作するよう構成され得る。
【0014】
さまざまな実施形態において、GPS100は、図示される例示的なグラフ105等の、コンピューティング装置をプログラムするためのプログラムに関連付けられたグラフを受信し、解析し、サブグラフ195及び196として
図1に示される複数のサブグラフに分割し、プログラムの解析及び/又はデバッグを容易にすることができる。グラフ105が、2つのサブグラフに分割されるものとして図示されているが、これは、例示のためであり、さまざまな実施形態において、パーティションは、さまざまな数のサブグラフを含んでもよいことに留意されたい。
【0015】
さまざまな実施形態において、グラフ105は、さまざまなノードn
iとして
図1に示される1以上の頂点又はノードを含み得る。グラフ105はまた、エッジe
iとして
図1に示される、ノードを連結する1以上のエッジを含み得る。さまざまな実施形態において、GPS100、特に、SP150は、クラスタを連結するエッジの数が、最小化されないとしても、低減されるように、グラフ105のノードを複数のクラスタにクラスタリングするよう構成され得る。さまざまな実施形態において、グラフ105は、理解されるように、さまざまな形でGPS100に提供され得る。また、図示されるグラフ105は、8個のノードおよび11個のエッジのみを含むが、さまざまな実施形態において、グラフ105は、手動でグラフを効率的に分割する人間の能力をはるかに超える、数百又は数千のノード及び/又はエッジを含む、さらに大規模なものであり得ることが認識されよう。一般に、100個以上のノード及び/又はエッジを含むグラフは、人間が手動で効率的に分割することが困難である。
【0016】
さまざまな実施形態において、SP150は、グラフ105に対してスペクトル分割を実行するためのさまざまなコンポーネントを含み得る。例えば、SP150は、ベクトル推定部110(「VE110」)を含み得る。VE110は、グラフ105の分割を補助することができる、推定固有ベクトル等の1以上の推定ベクトルを生成するよう構成され得る。さまざまな実施形態において、推定固有ベクトルは、理解されるように、グラフ105を記述するラプラシアン行列の推定固有ベクトルであり得る。固有ベクトル及びラプラシアン行列の具体的な説明は、以下で見出すことができる。さまざまな実施形態において、VE110は、ベクトルに基づいて評価関数を最小にする値を有する当該ベクトルを決定することによって固有ベクトル推定を実行するよう構成され得る。さまざまな実施形態において、VE110は、クラスタリングのために使用する複数の推定固有ベクトルを生成するよう構成され得る。VE110はまた、以下で説明するように、クラスタリングをより多くのサブグラフに精緻化するために、さらなる推定固有ベクトルを生成するよう構成され得る。
【0017】
さまざまな実施形態において、SP150はまた、クラスタ決定部120(「CD120」)を含み得る。さまざまな実施形態において、CD120は、VE110によって生成された推定固有ベクトルに基づいて、グラフ105のノードを複数のクラスタにクラスタリングするよう構成され得る。さまざまな実施形態において、CD120は、生成された推定固有ベクトルによって記述される複数次元空間内の点として、グラフ105のノードを表現するよう構成され得る。さまざまな実施形態において、CD120は、理解されるように、k平均クラスタリングを実行して、複数次元空間においてグラフ105のノードをクラスタリングするよう構成され得る。他の実施形態において、CD120は、理解されるように、グラフのノードをクラスタリングするために他のプロセスを実行してもよい。
【0018】
さまざまな実施形態において、SP150は、品質メトリクス決定部130(「QM130」)を含み得る。QM130は、CD120によって決定されたクラスタリングについての1以上の品質メトリクスを決定するよう構成され得る。さまざまな実施形態において、品質メトリクスは、本明細書で説明するように、モジュール性メトリクス(modularity metrics)及び/又はクラスタパス長メトリクス(cluster path length metrics)を含み得る。さまざまな実施形態において、他の品質メトリクスは、QM130によって決定され得る。さまざまな実施形態において、SP150は、精緻化制御部140(「RC140」)を含み得る。RC140は、より高品質のパーティションを決定するために、より多くの数の推定固有ベクトル及び/又はより多くの数のクラスタに対して、VE110による推定固有ベクトル推定とCD120によるクラスタ決定とを繰り返すようにSP150を制御するよう構成され得る。さまざまな実施形態において、RC140は、QM130によって決定された品質メトリクスに基づいて、ベクトル推定及びクラスタ決定を制御するよう構成され得る。例えば、RC140は、品質メトリクスが増加し続けている間は、ベクトル及びクラスタの数を増加させるよう構成され得る。品質メトリクスが増加しなくなる(あるいは、1以上の閾値を超えて増加しなくなる)と、RC140は、SP150及びSP150のコンポーネントによるさらなる分割を中止させることができる。
【0019】
さまざまな実施形態において、GPS100は、分割の制御に加えてパーティションのレポートのために使用することができるコンポーネントを含み得る。さまざまな実施形態において、GPS100は、パーティショナセレクタ160(「PS160」)を含み得る。PS160は、SP150を使用して分割するか、又は、エッジ中心性パーティショナ180(「ECP180」)等の1以上の他の分割コンポーネントを使用して分割するか、を選択するよう構成され得る。さまざまな実施形態において、PS160は、例えば、グラフのサイズ又は複雑度等の、グラフ105の1以上の品質に基づいて、パーティショナの間で選択するよう構成され得る。他の実施形態において、PS160は、SP150によって提供されたクラスタリングについてのレビュー品質メトリクスを選択し、そのクラスタリングが、GPS100からの結果としてレポートするのに十分な品質であるかどうかを判定するよう構成され得る。クラスタリングが、十分な品質ではない場合、PS160は、ECP180又は他のグラフパーティショナを使用して、グラフ105の分割を実行することができる。
【0020】
さまざまな実施形態において、ECP180は、1以上のエッジ中心性分割プロセスを実行することができる。さまざまな実施形態において、エッジ中心性グラフ分割プロセスは、エッジ中心性を計算し、より大きな中心性値を有するエッジを削除することができる。このプロセスは、グラフ105が切断されるようになるまで続けられ得、クラスタ品質メトリクスが、最近のエッジ削除がより良いクラスタ品質メトリクスをもたらしたかどうかを確認するために計算され得る。品質が改善した場合、このプロセスは、十分なパーティションが作成されるまで続けられ得る。品質が劣化した場合、削除されたエッジが、グラフに再び追加され得る。さまざまな実施形態において、ECP180によって実行される技術は、SP150の品質メトリクスよりも優れた品質メトリックを提供することができる。しかしながら、さまざまな実施形態において、ECP180は、所与のサイズのグラフに対しては、SP150よりも遅くその分割を実行し得る。この効率の差は、入力グラフのサイズが大きくなるにつれて急速に大きくなり得る。
【0021】
GPS100はまた、レポータ190を含み得る。レポータ190は、プログラムの解析又はデバッグのために、SP150又は他のパーティショナによって実行された分割の結果をレポートするよう構成され得る。さまざまな実施形態において、レポータ190は、例えば、サブグラフ195及び196を記述するノードのアイデンティフィケーション(ID、識別情報)といったさまざまな形の結果を提供するよう構成され得る。さまざまな実施形態において、レポータは、アナライザ又はデバッガ(図示せず)による後続のアクセスのためのデータ構造の形で記憶デバイスに、且つ/又は、テキストレポート(図示せず)等を介してユーザに、分割結果を直接レポートするよう構成され得る。サブグラフ195及び196をレポートするための他の技術も理解されよう。
【0022】
図2を参照すると、GPS100がグラフを分割する例示的なプロセス200が、さまざまな実施形態により示されている。
図2は、特定の動作を特定の順番で示しているが、さまざまな実施形態において、動作は、組み合わされることもあるし、部分に分割されることもあるし、且つ/あるいは、省略されることもある。さまざまな実施形態において、GPS100は、
図2のプロセスを実行して、入力グラフを分割することに加えて分割自体を実行するために、どのパーティショナを使用するかを選択することができる。
【0023】
プロセス200は、決定動作210で開始することができ、決定動作210において、GPS100は、分割するためのグラフ105を受信することができる。さまざまな実施形態において、グラフ105は、1以上のノード及びノードを連結する1以上のエッジのインジケーション又はレコードを含み得る。さまざまな実施形態において、グラフ105は、有向グラフ又は無向グラフであり得、エッジ重みを含むこともあるし含まないこともある。さまざまな実施形態において、GPS100は、有向グラフを無向グラフに変換するよう構成され得る。次いで、判定動作215において、PS160は、ECP180によって実行されるような非推定分割技術(non-estimated partitioning technique)を、望ましくない処理時間を招くことなく実行することができるほど、グラフのサイズが十分に小さいかどうかを判定することができる。例えば、PS160は、グラフのサイズが100ノード未満である場合、分割のためにECP180を選択することができる。さまざまな実施形態において、グラフが十分に小さい場合、プロセス200は、次いで動作250に進み、動作250において、ECP180は、グラフ105をサブグラフ(例えば、サブグラフ195及び196)に分割するためにエッジ中心性プロセスを実行することができる。次いで、プロセス200は、動作260に進み、動作260において、サブグラフは、GPS100によってレポートされ得る。他の実施形態において、PS160は、グラフのサイズを解析する代わりに又はグラフのサイズを解析することに加えて、グラフ連結性(graph connectedness)又は他のグラフメトリクス等の、グラフ105の他の品質を解析するよう構成されてもよいことに留意されたい。
【0024】
一方、判定動作215において、グラフ105が、非推定分割するには大きすぎるとPS160が判定した場合(又は、推定分割が何らかの他の理由により適用可能であるとPS160が判定した場合)、動作220において、SP150は、グラフ105に対して推定スペクトル分割を実行して、グラフ105におけるノードの1以上のクラスタリングを決定することができる。動作220のプロセスの特定の実施形態は、
図3のプロセス300を参照して以下で説明され得る。
【0025】
次いで、動作230において、QM130は、クラスタリングについての品質メトリクスを決定することができる。いくつかの実施形態において、品質メトリクスは、SP150がグラフ105を分割する過程でQM130によって決定され得る。他の実施形態において、品質メトリクスは、SP150がグラフ105を分割した後、SP150によって生成された1以上のパーティションについて決定され得る。さまざまな実施形態において、GPS100は、そのような決定のために、QM130以外の品質メトリクス決定部を含み得る。
【0026】
さまざまな実施形態において、品質メトリクスは、連結性、コンパクト性、又は他の特性等の、グラフ105内の現在のクラスタリングの特性を示すさまざまなメトリクスを含み得る。例えば、動作230でのさまざまな実施形態において、QM130は、クラスタリングについてのモジュール性メトリクスQを計算することができる。QM130は、以下に示される式(1)を使用してモジュール性メトリクスQを計算することができる。Qを計算するために、QM130は、k×k行列eを構築することができ、ここで、kは、グラフ105内で見出されたパーティション又はクラスタの数である。eの各要素e
ijは、クラスタi内のノードをクラスタj内の頂点に連結する、グラフ105内の全てのエッジの割合(fraction)とすることができる。行列eの値は、元のグラフ105に基づいて決定され得る。行合計
【数2】
は、
【数3】
として定義することができ、クラスタi内のノードに連結するエッジの割合を表す。式(1)に示されるように、モジュール性尺度Qは、行列eのトレースから行列e
2の要素の合計を減算した値とすることができる。Qの値が0に近いことは、クラスタ内のエッジの数が、頂点間のランダム連結をもって予期されるよりも良くないことを示し得、したがって、クラスタリングが不充分であることを示し得る。Qの値が最大値である1に近いことは、良いクラスタリングを示し得る。
【数4】
【0027】
いくつかの実施形態において、動作230において、QM130は、クラスタリングについての修正されたクラスタパス長メトリクスを計算することができる。QM130によって計算される修正されたクラスタパス長メトリクスは、モジュール性メトリクスQと比較して、大規模グラフに対する妥当なクラスタの数及びサイズで、且つ類似するクラスタリングに対するピークで最大化することができる。モジュール性メトリクスQと同様に、修正されたクラスタパス長の値が大きいほど、クラスタリングがより良いことを示し得る。式(2)に示されるように、修正されたクラスタパス長Mは、プラス成分M
+からマイナス成分M
−の4倍を減算した値とすることができる。
M=M
+−4M
− (2)
【0028】
プラス成分M
+は、式(3)に示されるように計算され得る。式(3)の項n
iは、クラスタi内のノードの数を表し、項nは、グラフ105内のノードの数を表す。したがって、プラス成分M
+は、各クラスタ内のノードの相対数によって重み付けされた、各クラスタ内のノード間の平均距離に対するグラフ105内のノード間の平均距離の合計に等しい値とすることができる。
【数5】
【0029】
マイナス成分M
−は、式(4)に示されるように計算され得る。以下に示されるように、マイナス成分M
−は、エッジ密度(Edge Density)を含み得る。エッジ密度は、式(5)に示されるように計算され得る。エッジ密度は、グラフ105に含まれる可能性があるエッジの最大可能数に対するグラフ105内のエッジの数の比を表し得る。マイナス成分M
−にエッジ密度を含めることにより、疎グラフ105に対する過剰クラスタリングを防ぐことができる。
【数6】
【数7】
【0030】
次いで、判定動作245において、SP150は、決定された品質メトリクスをレビューして、クラスタリングが十分な品質であるかどうかを判定することができる。さまざまな実施形態において、SP150は、判定動作245の判定を実行するために、決定された品質メトリクスを1以上の閾値と比較することができる。さまざまな実施形態において、SP150は、Qの値が0.3より大きい場合、及び/又はMの値が大きな正の整数である場合、クラスタリングが十分な品質であると判定することができる。判定動作245において、クラスタリングが十分な品質ではないとSP150が判定した場合、動作250において、ECP180は、グラフ105をサブグラフ(例えば、サブグラフ195及び196)に分割するためにエッジ中心性プロセスを実行することができる。いずれにせよ、動作260において、SP150又はECP190によって決定されたサブグラフは、GPS100によってレポートされ得る。
【0031】
図3を参照すると、SP150がグラフ105のスペクトル分割を実行する例示的なプロセス300が、さまざまな実施形態により示されている。さまざまな実施形態において、プロセス300は、
図2のプロセス200の動作220の全て又は一部を実施するために実行され得る。
図3は、特定の動作を特定の順番で示しているが、さまざまな実施形態において、動作は、組み合わされることもあるし、部分に分割されることもあるし、且つ/あるいは、省略されることもある。プロセス300は、動作310で開始することができ、動作310において、VE110は、グラフ105についての固有ベクトルの初期セットを推定することができる。動作310のプロセスの特定の実施形態は、
図4のプロセス400を参照して以下で説明され得る。さまざまな実施形態において、動作310を繰り返して、グラフ105についての5つの推定固有ベクトルの初期セットを形成することができる。しかしながら、他の実施形態において、他のサイズの初期セットが使用されてもよい。
【0032】
図4を参照すると、グラフについての固有ベクトルを推定する例示的なプロセス400の例示的な処理が、さまざまな実施形態により示されている。さまざまな実施形態において、プロセス400は、
図3のプロセス300の動作310の全て又は一部を実施するために実行され得る。
図4は、特定の動作を特定の順番で示しているが、さまざまな実施形態において、動作は、組み合わされることもあるし、部分に分割されることもあるし、且つ/あるいは、省略されることもある。プロセス400は、動作410で開始することができ、動作410において、VE110は、グラフ105についてのラプラシアン行列を生成することができる。さまざまな実施形態において、グラフ105についてのラプラシアン行列は、以下の定義(6)による、グラフ105のノード及びエッジに従って定義される行列を含み得る。
【数8】
【0033】
さまざまな実施形態において、動作420〜460は、以下の式(7)を参照して実行され得る。さまざまな実施形態において、VE110は、動作420〜460の過程にわたって、式(7)の関数を設定し最小化するよう構成され得る。
【数9】
ここで、nは、グラフ105内のノードの数であり、v
iは、vのi番目の座標であり、cは、定数であり、総和は、ノードiとノードjとがグラフ内のエッジによって連結される全ての座標v
iと座標v
jとに対してなされる(「i〜j」として示されている)。さまざまな実施形態において、式(7)のfの値を最小化することによって、動作410のラプラシアン行列の推定固有ベクトルを提供するために使用することができるベクトルvを得ることができる。さまざまな実施形態において、vの大きさの2乗がnに近くなるようにするために、式(7)の最後の項、例えば、
【数10】
が2乗され得ることに留意されたい(正規化のために1/nの係数が付加されている)。次いで、動作420において、VE110は、式(7)で使用するための定数cを選択することができる。いくつかの実施形態において、動作420において、cは、グラフ105の次数の逆数にほぼ等しい値に選択され得る。
【0034】
次いで、動作430において、VE110は、vのランダム座標を選択し、その座標を0に設定することができる。さまざまな実施形態において、VE110は、非常に小さい固有ベクトルにつながる推定プロセスを回避するために、その座標を0に設定することができる。次いで、動作440において、VE110は、vの残りの座標をランダム値に設定することができる。動作450において、VE110は、式(7)の関数に対して最急降下法を実行して、fを最小化することができる。さまざまな実施形態において、最急降下法を実行するための技術が理解されよう。他の実施形態において、関数fを最小化するための他の技術が使用されてもよい。動作450の後、動作460において、VE110は、動作430において0に設定された座標を、新しい値で置換することができる。さまざまな実施形態において、0に設定された座標は、その近傍座標の平均値に設定され得る。例えば、vのi番目の座標v
iが、動作430において0に設定された場合、v
iは、v
i−1とv
i+1との平均値に設定され得る。動作460の完了後、vが、グラフ105についてのラプラシアン行列の推定固有ベクトルとして使用され得る。次いで、プロセス400は終了する。
【0035】
図3に戻ると、動作320において、CD120は、動作310においてVE110によって生成された推定固有ベクトルによって記述されるn次元空間においてグラフのノードを表現することができる。例えば、動作310において、5つの固有ベクトルが推定された場合、動作320において、グラフは、これらの固有ベクトルによって記述される5次元空間において表現され得る。さまざまな実施形態において、n次元空間においてノードを表現するための技術が知られている。次いで、動作330において、理解されるように、ノードが、最近傍平均を有するクラスタに識別されるように、k平均クラスタリングを実行して、グラフの表現されたノードを、k個のクラスタに分割することができる。さまざまな実施形態において、そのようなクラスタリングが動作330において最初に生じるときに、2つのクラスタを決定するために、kが2に設定され得る。しかしながら、他の実施形態において、異なる数のクラスタが決定されてもよい。
【0036】
次いで、動作340において、動作330で得られたクラスタリングが記録され得、動作350において、クラスタリングについての品質メトリクスが、QM130によって決定され得る。さまざまな実施形態において、QM130は、上述したようにQ及び/又はMのメトリクスを決定することができる。次いで、判定動作355において、RC140は、動作350において決定された品質メトリクスが、以前に決定されたメトリクスに対して依然として十分に増加しているかどうかを判定することができる。さまざまな実施形態において、判定動作355において、(もしあれば)1以上の品質メトリクスの増加量を閾値と比較して、増加量がさらなる精緻化に十分であるかどうかを判定することができる。
【0037】
品質メトリクスが十分に増加している場合、クラスタリングがさらなる精緻化から改善できると判定され得、プロセス300は、動作370に進み、動作370において、さらなる固有ベクトルが、VE110によって推定され得る。動作310と同様に、動作370のプロセスの特定の実施形態は、
図4のプロセス400を参照して説明され得る。次いで、動作380において、CD120は、kの値を1だけ増加させて、CD120は、次の反復でグラフ105をより多数のクラスタに分割することができる。次いで、プロセス300は、kの新しい値のための新しいクラスタリングを決定するために、動作320に戻ることができる。一方、判定動作355において、品質メトリクスが十分には増加していないと判定された場合、動作360において、CD120は、結果として生じたパーティションとして記録されたもののうち、より高品質のメトリクスを有する1以上のクラスタをレポートすることができる。次いで、プロセス300は終了する。
【0038】
図5を参照すると、
図2〜
図4のプロセスを含む、本開示のさまざまな態様を実施するのに適した例示的なコンピュータが、さまざまな実施形態により示されている。図示されるように、コンピュータ500は、1以上のプロセッサ又はプロセッサコア502、及びシステムメモリ504を含み得る。特許請求の範囲を含む本出願の目的のために、「プロセッサ」及び「プロセッサコア」という用語は、文脈により別途明確に要求されない限り、同義語とみなされ得る。さらに、コンピュータ500は、大容量記憶デバイス506(例えば、ディスケット、ハードドライブ、コンパクトディスク読み取り専用メモリ(CD−ROM)等)、入力/出力デバイス508(例えば、ディスプレイ、キーボード、カーソルコントロール、リモートコントロール、ゲームコントローラ、画像キャプチャデバイス等)、及び通信インタフェイス510(例えば、ネットワークインタフェイスカード、モデム、赤外線受信機、無線トランシーバ(例えば、Bluetooth(登録商標)、Wi−Fi(登録商標)、近距離無線通信、無線周波数識別等))を含み得る。これらの要素は、1以上のバスを表し得るシステムバス512を介して互いに接続され得る。複数のバスの場合、それらのバスは、1以上のバスブリッジ(図示せず)によってブリッジされ得る。
【0039】
これらの要素の各々は、当分野で知られている従来の機能を実行することができる。詳細には、システムメモリ504及び大容量記憶デバイス506は、集合的に計算ロジック522と呼ばれるSP150、PS160、ECP180、及び/又はレポータ190等の、
図2〜
図4を参照して説明した分割技術に関連する動作のうちの1以上を実装するプログラミング命令のワーキングコピー及び永続的コピーを記憶するために、使用され得る。さまざまな要素は、1以上のプロセッサ502によってサポートされるアセンブラ命令、又はそのような命令にコンパイルすることができる、例えばC等の高水準言語によって実装され得る。さまざまな実施形態において、システムメモリ504又は大容量記憶デバイス506は、システムオンチップ、USBフラッシュドライブ、SDカード、SATA SSD等の集積フラッシュメモリを含むさまざまなメモリ実装を含み得る。
【0040】
プログラミング命令の永続的コピーは、例えば、コンパクトディスク(CD)等の配布媒体(図示せず)を介して、又は(配布サーバ(図示せず)から)通信インタフェイス510を介して、工場内又は現場で永続的記憶デバイス506に配置され得る。実施形態において、プログラミング命令は、1以上の非一時的なコンピュータ読み取り可能な記憶媒体に記憶され得る。他の実施形態において、プログラミング命令は、信号等の一時的な記憶媒体に符号化され得る。
【0041】
これらの要素510〜512の数、機能、及び/又は能力は変わり得る。それらの構成は、既知であり、したがって、これ以上説明されない。
【0042】
図6は、さまざまな実施形態に従った、上述した技術に関連する動作の全て又は選択された動作を実行するよう構成された命令を有する例示的なコンピュータ読み取り可能な記憶媒体602を示している。図示されるように、コンピュータ読み取り可能な記憶媒体602は、さまざまなプログラミング命令604を含み得る。プログラミング命令604は、プログラミング命令の実行に応じて、デバイス(例えば、コンピュータ500)が、例えば、上述した図面のプロセスのさまざまな動作(例えば、本明細書で説明した分割技術を実行するために実行されるさまざまな動作を含むが、これらに限定されるものではない)を実行することを可能にするよう構成され得る。代替実施形態において、プログラミング命令604は、複数のコンピュータ読み取り可能な記憶媒体602に配置されてもよい。
【0043】
図5に戻ると、一実施形態に関して、プロセッサ502のうちの少なくとも1つは、
図2〜
図4のプロセスの態様を実施するよう構成された計算ロジック522を有するメモリと共にパッケージ化され得る。一実施形態に関して、プロセッサ502のうちの少なくとも1つは、システムインパッケージ(SiP)を形成するように、
図2〜
図4のプロセスの態様を実施するよう構成された計算ロジック522を有するメモリと共にパッケージ化され得る。一実施形態に関して、プロセッサ502のうちの少なくとも1つは、
図2〜
図4のプロセスの態様を実施するよう構成された計算ロジック522を有するメモリと共に同じダイ上に統合され得る。一実施形態に関して、プロセッサ502のうちの少なくとも1つは、システムオンチップ(SoC)を形成するように、
図2〜
図4のプロセスの態様を実施するよう構成された計算ロジック522を有するメモリと共にパッケージ化され得る。少なくとも1つの実施形態に関して、SoCは、例えば、コンピューティングタブレット(例えば、Wi−Fi(登録商標)、Bluetooth(登録商標)、Bluetooth(登録商標)低エネルギー、近距離無線通信、無線周波数識別(RFID)等)、及びシステムの機能要件及び非機能要件を満たすために必要な他のコンポーネントにおいて利用され得るが、これらに限定されるものではない。
【0044】
上述した技術を実行するためのコンピュータ読み取り可能な媒体(少なくとも1つのコンピュータ読み取り可能な媒体を含む)、方法、装置、システム、及びデバイスは、本明細書で開示した実施形態の例である。さらに、上述したインタラクションにおける他のデバイスは、開示したさまざまな技術を実行するよう構成され得る。本明細書で説明した実施形態の特定の例は、以下を含むが、これらに限定されるものではない。
【0045】
例1は、データフロープログラミングをサポートするよう構成されたコンピューティング装置を含み得る。コンピューティング装置は、1以上のコンピューティングプロセッサと、1以上のコンピューティングプロセッサ上で動作して、プログラムに関連付けられたデータフローグラフを複数のサブグラフに分割するスペクトルグラフパーティショナと、を含み得る。スペクトルグラフパーティショナは、グラフを複数のサブグラフに分割するための1以上の推定ベクトルを生成するベクトル推定部を含み得る。スペクトルグラフパーティショナはまた、グラフの複数の推定ベクトル及びクラスタノードに基づいて複数次元空間を定義し、複数次元空間において複数のサブグラフを形成するクラスタ決定部を含み得る。複数のサブグラフは、プログラムの解析又はデバッグにおいて使用され得、プログラムは、タスクを実行するようにコンピューティング装置又は別のコンピューティング装置をプログラムするために使用され得る。
【0046】
例2は、例1のコンピューティング装置を含み得、ベクトル推定部は、グラフを記述するラプラシアン行列の固有ベクトルを生成することによって、1以上の推定ベクトルを生成することができる。
【0047】
例3は、例2のコンピューティング装置を含み得、ベクトル推定部は、
【数11】
によって表される関数を最小化することによって、ベクトルvとして固有ベクトルを生成することができ、nは、グラフにおける頂点の数であり、cは、定数である。
【0048】
例4は、例3のコンピューティング装置を含み得、関数を最小化することは、関数fに対して最急降下法を実行することを含み得る。
【0049】
例5は、例3のコンピューティング装置を含み得、定数cの値は、グラフの次数の逆数に少なくとも部分的に基づき得る。
【0050】
例6は、例3のコンピューティング装置を含み得、固有ベクトルを生成することは、関数fを最小化する前に、ベクトルvの1つの座標を0に設定することを含み得る。
【0051】
例7は、例6のコンピューティング装置を含み得、固有ベクトルを生成することは、関数fを最小化した後、0に設定された座標を、その座標の近傍座標の平均値に設定することを含み得る。
【0052】
例8は、例1〜7のいずれかのコンピューティング装置を含み得、クラスタ決定部は、k平均クラスタリングプロセスを実行することによって、グラフのノードをクラスタリングして、複数のサブグラフを形成することができる。
【0053】
例9は、例1〜8のいずれかのコンピューティング装置を含み得、スペクトルグラフパーティショナは、グラフのノードのクラスタリングが与えられると、ノードのクラスタリングについての1以上の品質メトリクスを決定する品質メトリクス決定部をさらに含み得る。
【0054】
例10は、例9のコンピューティング装置を含み得、品質メトリクス決定部は、ノードのクラスタリングについてのモジュール性メトリクスを決定することができる。
【0055】
例11は、例9のコンピューティング装置を含み得、品質メトリクス決定部は、ノードのクラスタリングについてのクラスタパス長メトリクスを決定することができる。
【0056】
例12は、例9のコンピューティング装置を含み得、スペクトルグラフパーティショナは、1以上の品質メトリクスに少なくとも部分的に基づいて、推定ベクトルの生成と、グラフのノードのクラスタリングと、を繰り返させる精緻化制御部をさらに含み得る。
【0057】
例13は、例12のコンピューティング装置を含み得、精緻化制御部は、さらなる推定ベクトルが生成され得るように、グラフのノードを、増加した数のクラスタにクラスタリングさせることができる。
【0058】
例14は、例1〜13のいずれかのコンピューティング装置を含み得、スペクトルグラフパーティショナを使用するか又はコンピューティング装置の1以上の他のグラフパーティショナを使用するかを選択するパーティショナセレクタをさらに含み得る。
【0059】
例15は、例14のコンピューティング装置を含み得、パーティショナセレクタは、グラフのサイズに少なくとも部分的に基づいて選択することができる。
【0060】
例16は、例14のコンピューティング装置を含み得、パーティショナセレクタは、スペクトルグラフパーティショナによって生成された1以上のクラスタリングについて決定された1以上の品質メトリクスに少なくとも部分的に基づいて選択することができる。
【0061】
例17は、例14のコンピューティング装置を含み得、パーティショナセレクタは、スペクトルグラフパーティショナとエッジ中心性パーティショナとの間で選択することができる。
【0062】
例18は、データフロープログラミングをサポートするためのコンピュータ実装方法を含み得る。方法は、コンピューティングシステムによって、プログラムに関連付けられたデータフローグラフを受信するステップと、コンピューティングシステムによって、グラフを複数のサブグラフに分割するための1以上の推定ベクトルを生成するステップと、コンピューティングシステムによって、複数の推定ベクトルに基づいて複数次元空間を定義するステップと、コンピューティングシステムによって、グラフのノードをクラスタリングして、複数次元空間において複数のサブグラフを形成するステップと、を含み得る。複数のサブグラフは、プログラムの解析又はデバッグにおいて使用され得、プログラムは、タスクを実行するようにコンピューティングシステム又は別のコンピューティングシステムをプログラムするために使用され得る。
【0063】
例19は、例18の方法を含み得、1以上の推定ベクトルを生成するステップは、グラフを記述するラプラシアン行列の固有ベクトルを生成するステップを含み得る。
【0064】
例20は、例19の方法を含み得、固有ベクトルを生成するステップは、
【数12】
によって表される関数を最小化することによって、ベクトルvとして固有ベクトルを生成するステップを含み得、nは、グラフにおける頂点の数であり、cは、定数である。
【0065】
例21は、例20の方法を含み得、関数を最小化することは、関数fに対して最急降下法を実行することを含み得る。
【0066】
例22は、例20の方法を含み得、コンピューティングシステムによって、グラフの次数の逆数に少なくとも部分的に基づく定数cの値を使用するステップをさらに含み得る。
【0067】
例23は、例20の方法を含み得、固有ベクトルを生成するステップは、関数fを最小化する前に、ベクトルvの1つの座標を0に設定するステップを含み得る。
【0068】
例24は、例23の方法を含み得、固有ベクトルを生成するステップは、関数fを最小化した後、0に設定された座標を、その座標の近傍座標の平均値に設定するステップを含み得る。
【0069】
例25は、例18〜24のいずれかの方法を含み得、グラフのノードをクラスタリングして、複数のサブグラフを形成するステップは、k平均クラスタリングプロセスを実行するステップを含み得る。
【0070】
例26は、例18〜25のいずれかの方法を含み得、グラフのノードのクラスタリングが与えられると、コンピューティングシステムによって、ノードのクラスタリングについての1以上の品質メトリクスを決定するステップをさらに含み得る。
【0071】
例27は、例26の方法を含み得、1以上の品質メトリクスを決定するステップは、ノードのクラスタリングについてのモジュール性メトリクスを決定するステップを含み得る。
【0072】
例28は、例26の方法を含み得、1以上の品質メトリクスを決定するステップは、ノードのクラスタリングについてのクラスタパス長メトリクスを決定するステップを含み得る。
【0073】
例29は、例26の方法を含み得、コンピューティングシステムによって、1以上の品質メトリクスに少なくとも部分的に基づいて、推定ベクトルの生成と、グラフのノードのクラスタリングと、を繰り返すステップをさらに含み得る。
【0074】
例30は、例29の方法を含み得、コンピューティングシステムによって、さらなる推定ベクトルが生成され得るように、グラフのノードを、増加した数のクラスタにクラスタリングするステップをさらに含み得る。
【0075】
例31は、例18〜30のいずれかの方法を含み得、コンピューティングシステムによって、コンピューティングシステムのスペクトルグラフパーティショナを使用するか又は1以上の他のグラフパーティショナを使用するかを選択するステップをさらに含み得る。
【0076】
例32は、例31の方法を含み得、選択するステップは、グラフのサイズに少なくとも部分的に基づいて選択するステップを含み得る。
【0077】
例33は、例31の方法を含み得、選択するステップは、スペクトルグラフパーティショナによって生成された1以上のクラスタリングについて決定された1以上の品質メトリクスに少なくとも部分的に基づいて選択するステップを含み得る。
【0078】
例34は、例31の方法を含み得、選択するステップは、スペクトル分割プロセスとエッジ中心性分割プロセスとの間で選択するステップを含み得る。
【0079】
例35は、コンピューティングシステム上での実行に応じて、コンピューティングシステムにデータフロープログラミングをサポートさせる命令が書き込まれた1以上のコンピュータ読み取り可能な媒体を含み得る。命令は、コンピューティングシステムに、プログラムに関連付けられたデータフローグラフを受信させ、グラフを複数のサブグラフに分割するための1以上の推定ベクトルを生成させ、複数の推定ベクトルに基づいて複数次元空間を定義させ、グラフのノードをクラスタリングさせて、複数次元空間において複数のサブグラフを形成させることができる。複数のサブグラフは、プログラムの解析又はデバッグにおいて使用され得、プログラムは、タスクを実行するようにコンピューティングシステム又は別のコンピューティングシステムをプログラムするために使用され得る。
【0080】
例36は、例35のコンピュータ読み取り可能な媒体を含み得、1以上の推定ベクトルを生成させることは、グラフを記述するラプラシアン行列の固有ベクトルを生成させることを含み得る。
【0081】
例37は、例36のコンピュータ読み取り可能な媒体を含み得、固有ベクトルを生成させることは、
【数13】
によって表される関数を最小化させることによって、ベクトルvとして固有ベクトルを生成させることを含み得、nは、グラフにおける頂点の数であり、cは、定数である。
【0082】
例38は、例37のコンピュータ読み取り可能な媒体を含み得、関数を最小化させることは、関数fに対して最急降下法を実行させることを含み得る。
【0083】
例39は、例37のコンピュータ読み取り可能な媒体を含み得、命令は、さらに、コンピューティングシステムに、グラフの次数の逆数に少なくとも部分的に基づく定数cの値を使用させることができる。
【0084】
例40は、例37のコンピュータ読み取り可能な媒体を含み得、固有ベクトルを生成させることは、関数fを最小化させる前に、ベクトルvの1つの座標を0に設定させることを含み得る。
【0085】
例41は、例40のコンピュータ読み取り可能な媒体を含み得、固有ベクトルを生成させることは、関数fを最小化させた後、0に設定された座標を、その座標の近傍座標の平均値に設定させることを含み得る。
【0086】
例42は、例35〜41のいずれかのコンピュータ読み取り可能な媒体を含み得、グラフのノードをクラスタリングさせて、複数のサブグラフを形成させることは、k平均クラスタリングプロセスを実行させることを含み得る。
【0087】
例43は、例35〜42のいずれかのコンピュータ読み取り可能な媒体を含み得、命令は、さらに、グラフのノードのクラスタリングが与えられると、コンピューティングシステムに、ノードのクラスタリングについての1以上の品質メトリクスを決定させることができる。
【0088】
例44は、例43のコンピュータ読み取り可能な媒体を含み得、1以上の品質メトリクスを決定させることは、ノードのクラスタリングについてのモジュール性メトリクスを決定させることを含み得る。
【0089】
例45は、例43のコンピュータ読み取り可能な媒体を含み得、1以上の品質メトリクスを決定させることは、ノードのクラスタリングについてのクラスタパス長メトリクスを決定させることを含み得る。
【0090】
例46は、例43のコンピュータ読み取り可能な媒体を含み得、命令は、さらに、コンピューティングシステムに、1以上の品質メトリクスに少なくとも部分的に基づいて、推定ベクトルの生成と、グラフのノードのクラスタリングと、を繰り返させることができる。
【0091】
例47は、例46のコンピュータ読み取り可能な媒体を含み得、命令は、さらに、さらなる推定ベクトルが生成され得るように、コンピューティングシステムに、グラフのノードを、増加した数のクラスタにクラスタリングさせることができる。
【0092】
例48は、例35〜47のいずれかのコンピュータ読み取り可能な媒体を含み得、命令は、さらに、コンピューティングシステムに、コンピューティングシステムのスペクトルグラフパーティショナを使用するか又は1以上の他のグラフパーティショナを使用するかを選択させることができる。
【0093】
例49は、例48のコンピュータ読み取り可能な媒体を含み得、選択させることは、グラフのサイズに少なくとも部分的に基づいて選択させることを含み得る。
【0094】
例50は、例48のコンピュータ読み取り可能な媒体を含み得、選択させることは、スペクトルグラフパーティショナによって生成された1以上のクラスタリングについて決定された1以上の品質メトリクスに少なくとも部分的に基づいて選択させることを含み得る。
【0095】
例51は、例48のコンピュータ読み取り可能な媒体を含み得、選択させることは、スペクトル分割プロセスとエッジ中心性分割プロセスとの間で選択させることを含み得る。
【0096】
例52は、データフロープログラミングをサポートするためのコンピューティング装置を含み得る。コンピューティング装置は、プログラムに関連付けられたデータフローグラフを受信する手段と、グラフを複数のサブグラフに分割するための1以上の推定ベクトルを生成する手段と、複数の推定ベクトルに基づいて複数次元空間を定義する手段と、グラフのノードをクラスタリングして、複数次元空間において複数のサブグラフを形成する手段と、を含み得る。複数のサブグラフは、プログラムの解析又はデバッグにおいて使用され得、プログラムは、タスクを実行するようにコンピューティング装置又は別のコンピューティング装置をプログラムするために使用され得る。
【0097】
例53は、例52のコンピューティング装置を含み得、1以上の推定ベクトルを生成する手段は、グラフを記述するラプラシアン行列の固有ベクトルを生成する手段を含み得る。
【0098】
例54は、例53のコンピューティング装置を含み得、固有ベクトルを生成する手段は、
【数14】
によって表される関数を最小化することによって、ベクトルvとして固有ベクトルを生成する手段を含み得、nは、グラフにおける頂点の数であり、cは、定数である。
【0099】
例55は、例54のコンピューティング装置を含み得、関数を最小化する手段は、関数fに対して最急降下法を実行する手段を含み得る。
【0100】
例56は、例54のコンピューティング装置を含み得、関数を最小化する手段は、グラフの次数の逆数に少なくとも部分的に基づく定数cの値を使用する。
【0101】
例57は、例54のコンピューティング装置を含み得、固有ベクトルを生成する手段は、関数fを最小化する前に、ベクトルvの1つの座標を0に設定する手段を含み得る。
【0102】
例58は、例57のコンピューティング装置を含み得、固有ベクトルを生成する手段は、関数fを最小化した後、0に設定された座標を、その座標の近傍座標の平均値に設定する手段を含み得る。
【0103】
例59は、例52〜58のいずれかのコンピューティング装置を含み得、グラフのノードをクラスタリングして、複数のサブグラフを形成する手段は、k平均クラスタリングプロセスを実行する手段を含み得る。
【0104】
例60は、例52〜59のいずれかのコンピューティング装置を含み得、グラフのノードのクラスタリングが与えられると、ノードのクラスタリングについての1以上の品質メトリクスを決定する手段をさらに含み得る。
【0105】
例61は、例60のコンピューティング装置を含み得、1以上の品質メトリクスを決定する手段は、ノードのクラスタリングについてのモジュール性メトリクスを決定する手段を含み得る。
【0106】
例62は、例60のコンピューティング装置を含み得、1以上の品質メトリクスを決定する手段は、ノードのクラスタリングについてのクラスタパス長メトリクスを決定する手段を含み得る。
【0107】
例63は、例60のコンピューティング装置を含み得、1以上の品質メトリクスに少なくとも部分的に基づいて、推定ベクトルの生成と、グラフのノードのクラスタリングと、を繰り返させる手段をさらに含み得る。
【0108】
例64は、例63のコンピューティング装置を含み得、さらなる推定ベクトルが生成され得るように、グラフのノードを、増加した数のクラスタにクラスタリングさせる手段をさらに含み得る。
【0109】
例65は、例52〜64のいずれかのコンピューティング装置を含み得、コンピューティング装置のスペクトルグラフパーティショナを使用するか又は1以上の他のグラフパーティショナを使用するかを選択する手段をさらに含み得る。
【0110】
例66は、例65のコンピューティング装置を含み得、選択する手段は、グラフのサイズに少なくとも部分的に基づいて選択する手段を含み得る。
【0111】
例67は、例65のコンピューティング装置を含み得、選択する手段は、スペクトルグラフパーティショナによって生成された1以上のクラスタリングについて決定された1以上の品質メトリクスに少なくとも部分的に基づいて選択する手段を含み得る。
【0112】
例68は、例65のコンピューティング装置を含み得、選択する手段は、スペクトル分割プロセスとエッジ中心性分割プロセスとの間で選択する手段を含み得る。
【0113】
説明の目的のために、特定の実施形態が、図示され、本明細書で説明されたが、同じ目的を達成するために計算された広範な代替実施形態及び/又は均等実施形態若しくは実装形態が、本開示の範囲から逸脱することなく、図示され説明された実施形態の代わりに使用されてもよい。本出願は、本明細書で説明した実施形態の任意の応用形態及び変更形態を包含することが意図されている。したがって、本明細書で説明した実施形態は、請求項によってのみ定められることが明白に意図されている。
【0114】
本開示において、「ある」又は「第1の」要素又はその均等物が記載されている場合、そのような開示は、1以上のそのような要素を含み、2以上のそのような要素を要求することもないし、2以上のそのような要素を排除することもない。さらに、識別された要素の序数インジケータ(例えば、第1の、第2の、又は第3の)は、要素を区別するために使用され、そのような要素の必要数又は限定数を示したり示唆したりするものでもないし、別途明示されない限り、そのような要素の特定の配置又は順番を示すものでもない。