IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7667622Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習)
<>
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図1
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図2A
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図2B
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図3A
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図3B
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図3C
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図4
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図5
  • 特許-Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習) 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-15
(45)【発行日】2025-04-23
(54)【発明の名称】Q学習を用いたスキャンチェーンワイヤ長の最適化の方法、コンピュータシステム、コンピュータプログラム(Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習)
(51)【国際特許分類】
   G06N 99/00 20190101AFI20250416BHJP
   G06N 20/00 20190101ALI20250416BHJP
   G06F 11/22 20060101ALI20250416BHJP
【FI】
G06N99/00 180
G06N20/00
G06F11/22 673Z
【請求項の数】 20
(21)【出願番号】P 2021156026
(22)【出願日】2021-09-24
(65)【公開番号】P2022054457
(43)【公開日】2022-04-06
【審査請求日】2024-02-15
(31)【優先権主張番号】17/031,977
(32)【優先日】2020-09-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】アブドゥル ナイジュ カリム
(72)【発明者】
【氏名】ラオ ラウール エム.
(72)【発明者】
【氏名】アントニー ジョージ
【審査官】福西 章人
(56)【参考文献】
【文献】特開2005-223171(JP,A)
【文献】特開平09-305642(JP,A)
【文献】米国特許出願公開第2020/0004913(US,A1)
【文献】飯間 等 ほか,最適経路問題に対して汎化能力を有する強化学習法の提案,電気学会研究会資料 システム研究会 ST-18-039~054・056~078・080~084,日本,一般社団法人電気学会,2018年10月01日,pp.171-174
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 11/22
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
Q学習を用いたスキャンチェーンワイヤ長の最適化の方法であって、
コンピュータが、ルートノードからルートノード詳細を取得する段階と、
前記コンピュータが、前記ルートノードの接続性を最適化する段階と、
前記コンピュータが、前記ルートノードの各々に関して、最良の始点ノードおよび最良の終点ノードを識別する段階と、
前記コンピュータが、前記ルートノードの各々における子ノードを最適化する段階と、
前記コンピュータが、全体巡回のワイヤ長が最近傍より短いか長いかを判断する段階と、
前記コンピュータが、解を適用するかまたはスキップする段階と、を備える、方法。
【請求項2】
前記ルートノードの前記接続性を最適化する段階はさらに、
前記コンピュータが、Qテーブルにおける値をゼロまたは一様値に設定することによって前記Qテーブルを初期化する段階と、
前記コンピュータが、2つのノードの間の重みに基づいて動作を選択するか、またはランダムに動作を選択する段階と、
前記コンピュータが、選択されたノードを追加することによって前記動作を実行する段階と、
前記コンピュータが、ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
前記コンピュータが、ルートノード巡回ワイヤ長に基づいて前記Qテーブルを更新する段階と、を備える、
請求項1に記載の方法。
【請求項3】
前記動作を選択する段階はさらに、
前記コンピュータが、前記動作がランダムに選択されると判断する段階と、
前記コンピュータが、N個の最近傍のノードを発見する段階と、
前記コンピュータが、前記N個の最近傍のノードが訪問されていないと判断する段階と、
前記コンピュータが、前記N個の最近傍のノードに最も近い係数を評価する段階と、
前記コンピュータが、前記N個の最近傍のノードが予め定められた限度内にあると判断する段階と、
前記コンピュータが、前記N個の最近傍のノードを選択リストに追加する段階と、
前記コンピュータが、前記選択リストからランダムノードを選択する段階と、
を備える、請求項2に記載の方法。
【請求項4】
前記動作を選択する段階はさらに、
前記コンピュータが、前記動作を選択することがランダムでないと判断する段階と、
前記コンピュータが、現在の探索において訪問されていないノードを選択する段階と、
前記コンピュータが、現在のQ値と前記ワイヤ長とに基づいて成功の確率を計算する段階と、
前記コンピュータが、計算された前記成功の確率に基づいてノードを選択する段階と、を備える、
請求項2に記載の方法。
【請求項5】
前記ルートノードの各々における前記子ノードの最適化がさらに、
前記コンピュータが、前記ルートノードの各々に関するQテーブルを初期化する段階と、
前記コンピュータが、固定された始点ノードおよび終点ノードに基づいて、または、最適な始点ノードおよび終点ノードに基づいて動作を選択する段階と、
前記コンピュータが、選択されたノードを追加することによって前記動作を実行する段階と、
前記コンピュータが、ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
前記コンピュータが、子ノード巡回における前記子ノードの各々に関して前記Qテーブルを更新する段階と、を備える、
請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記ルートノードの各々に関して、前記最良の始点ノードおよび前記最良の終点ノードを識別する段階がさらに、
前記コンピュータが、ルートノード巡回を読み出す段階と、
前記コンピュータが、前記ルートノード巡回において第1のノードを選択する段階と、
前記コンピュータが、前記ルートノード巡回において第2のノードを選択する段階と、
前記コンピュータが、前記子ノードの間、または前記ルートノード巡回における前記第1のノードおよび前記第2のノードの間の全ての可能な接続の重みを計算する段階と、
前記コンピュータが、最良の重みによって接続を選択する段階と、
前記コンピュータが、終点ノードとして1番目の子ノードを、次の始点ノードとして2番目の子ノードを設定する段階と、
前記コンピュータが、前記次の始点ノードが前記ルートノード巡回上の最後のノードであると判断する段階と、
前記コンピュータが、前記ルートノード巡回の最良の始点-終点ノード部分を選択する段階と、を有する、
請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記コンピュータが、前記ルートノードが、共に制限されることが必要な一群のラッチの畳み込まれた表現である、請求項1から6のいずれか一項に記載の方法。
【請求項8】
Q学習を用いたスキャンチェーンワイヤ長の最適化のためのコンピュータシステムであって、
1つまたは複数のプロセッサ、1つまたは複数のコンピュータ読み取り可能メモリ、1つまたは複数のコンピュータ読み取り可能な有形ストレージ媒体、および、前記1つまたは複数のコンピュータ読み取り可能メモリの少なくとも1つを介しての前記1つまたは複数のプロセッサの少なくとも1つによる実行のための、前記1つまたは複数のコンピュータ読み取り可能な有形ストレージ媒体の少なくとも一方上に格納されたプログラム命令を有し、
前記コンピュータシステムが以下の方法を実行可能であり、前記方法は、
ルートノードからのルートノード詳細を取得する段階と、
前記ルートノードの接続性を最適化する段階と、
前記ルートノードの各々に関する最良の始点ノードおよび最良の終点ノードを識別する段階と、
前記ルートノードの各々における子ノードを最適化する段階と、
全体巡回のワイヤ長が最近傍より短いか長いことを判断する段階と、
解を適用するかまたはスキップする段階と、を備える、
コンピュータシステム。
【請求項9】
前記ルートノードの前記接続性を最適化する段階はさらに、
Qテーブルの値をゼロまたは一様値に設定することによって前記Qテーブルを初期化する段階と、
2つのノードの間の重みに基づいて動作を選択するか、またはランダムに動作を選択する段階と、
選択されたノードを追加することによって前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
ルートノード巡回ワイヤ長に基づいて前記Qテーブルを更新する段階と、を含む、
請求項8に記載のコンピュータシステム。
【請求項10】
前記動作を選択する段階はさらに、
前記動作を選択することがランダムであると判断する段階と、
N個の最近傍のノードを発見する段階と、
前記N個の最近傍のノードが訪問されていないと判断する段階と、
前記N個の最近傍のノードに関して最も近い係数を評価する段階と、
前記N個の最近傍のノードが予め定められた限度内にあると判断する段階と、
前記N個の最近傍のノードを選択リストに追加する段階と、
前記選択リストからランダムノードを選択する段階と、を含む、
請求項9に記載のコンピュータシステム。
【請求項11】
前記動作を選択する段階がさらに、
前記動作の選択がランダムでないと判断する段階と、
現在の探索において訪問されていないノードを選択する段階と、
現在のQ値および前記ワイヤ長に基づいて成功の確率を計算する段階と、
計算された前記成功の確率に基づいてノードを選択する段階と、を備える、
請求項9に記載のコンピュータシステム。
【請求項12】
前記ルートノードの各々における前記子ノードを最適化する段階は、さらに、
前記ルートノードの各々に関してQテーブルを初期化する段階と、
固定された始点ノードおよび終点ノードに基づいて、または、最適な始点ノードおよび終点ノードに基づいて、動作を選択する段階と、
選択されたノードを追加することによって、前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって、報酬を評価する段階と、
子ノード巡回における前記子ノードの各々に関して前記Qテーブルを更新する段階と、を備える、
請求項8から11のいずれか一項に記載のコンピュータシステム。
【請求項13】
前記ルートノードの前記各々に関する前記最良の始点ノードおよび前記最良の終点ノードを識別する段階が、さらに、
ルートノード巡回を読み出す段階と、
前記ルートノード巡回における第1のノードを選択する段階と、
前記ルートノード巡回における第2のノードを選択する段階と、
前記子ノードの間、または前記ルートノード巡回における前記第1のノードおよび前記第2のノードの間の全ての可能な接続の重みを計算する段階と、
最良の重みによって接続を選択する段階と、
終点ノードとして1番目の子ノードを、次の始点ノードとして2番目の子ノードを設定する段階と、
前記次の始点ノードが前記ルートノード巡回上の最後のノードであると判断する段階と、
前記ルートノード巡回の最良の始点-終点ノード部分を選択する段階と、を有する、
請求項8から12のいずれか一項に記載のコンピュータシステム。
【請求項14】
前記ルートノードが、共に制限されることが必要な一群のラッチの畳み込まれた表現である、請求項8から13のいずれか一項に記載のコンピュータシステム。
【請求項15】
Q学習を用いたスキャンチェーンワイヤ長の最適化のためのコンピュータプログラムであって、
1つまたは複数のコンピュータ読み取り可能有形ストレージ媒体と、前記1つまたは複数のコンピュータ読み取り可能有形ストレージ媒体の少なくとも1つに格納されたプログラム命令とを含み、前記プログラム命令は、以下の方法をプロセッサに実行させるようにプロセッサによって実行可能であり、前記方法は、
ルートノードからルートノード詳細を取得する段階と、
前記ルートノードの接続性を最適化する段階と、
前記ルートノードの各々に関する最良の始点ノードおよび最良の終点ノードを識別する段階と、
前記ルートノードの各々における子ノードを最適化する段階と、
全体巡回のワイヤ長が最近傍より短いか長いことを判断する段階と、
解を適用するかまたはスキップする段階と、を備える、
コンピュータプログラム。
【請求項16】
前記ルートノードの前記接続性を最適化する段階はさらに、
Qテーブルの値をゼロまたは一様値に設定することによって前記Qテーブルを初期化する段階と、
2つのノードの間の重みに基づいて動作を選択するか、またはランダムに動作を選択する段階と、
選択されたノードを追加することによって前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
ルートノード巡回ワイヤ長に基づいて前記Qテーブルを更新する段階と、を含む、
請求項15に記載のコンピュータプログラム。
【請求項17】
前記動作を選択する段階はさらに、
前記動作を選択することがランダムであると判断する段階と、
N個の最近傍のノードを発見する段階と、
前記N個の最近傍のノードが訪問されていないと判断するする段階と、
前記N個の最近傍のノードに関して最も近い係数を評価する段階と、
前記N個の最近傍のノードが予め定められた限度内にあると判断する段階と、
前記N個の最近傍のノードを選択リストに追加する段階と、
前記選択リストからランダムノードを選択する段階と、を含む、
請求項16に記載のコンピュータプログラム。
【請求項18】
前記動作を選択する段階がさらに、
前記動作の選択がランダムでないと判断する段階と、
現在の探索において訪問されていないノードを選択する段階と、
現在のQ値および前記ワイヤ長に基づいて成功の確率を計算する段階と、
計算された前記成功の確率に基づいてノードを選択する段階と、を備える、
請求項16に記載のコンピュータプログラム。
【請求項19】
前記ルートノードの各々における前記子ノードを最適化する段階は、さらに、
前記ルートノードの各々に関してQテーブルを初期化する段階と、
固定された始点ノードおよび終点ノードに基づいて、または、最適な始点ノードおよび終点ノードに基づいて、動作を選択する段階と、
選択されたノードを追加することによって、前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって、報酬を評価する段階と、
子ノード巡回における前記子ノードの各々に関して前記Qテーブルを更新する段階と、を備える、
請求項15から18のいずれか一項に記載のコンピュータプログラム。
【請求項20】
前記ルートノードの前記各々に関する前記最良の始点ノードおよび前記最良の終点ノードを識別する段階が、さらに、
ルートノード巡回を読み出す段階と、
前記ルートノード巡回における第1のノードを選択する段階と、
前記ルートノード巡回における第2のノードを選択する段階と、
前記子ノードの間、または前記ルートノード巡回における前記第1のノードおよび前記第2のノードの間の全て可能な接続の重みを計算する段階と、
最良の重みによって接続を選択する段階と、
終点ノードとして1番目の子ノードを、次の始点ノードとして2番目の子ノードを設定する段階と、
前記次の始点ノードが前記ルートノード巡回上の最後のノードであると判断する段階と、
前記ルートノード巡回の最良の始点-終点ノード部分を選択する段階と、を有する、
請求項15から19のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピューティングの分野に関し、より詳細には、機械学習を使用したスキャンチェーン最適化に関する。
【背景技術】
【0002】
スキャンチェーン技法の使用は、伝送される信号のセットに基づいて集積回路における各フリップフロップでの可制御性および可観察性を提供することによって、集積回路試験を簡略化し得る。スキャンチェーン最適化方法論は、合計ワイヤ長スキャンを含む複数の制約の影響を受けるフリップフロップのセットを介したスキャンチェーンのリオーダリングを含む。ラッチまたはフリップフロップは、複数のスキャンチェーンの間で分配され得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の実施形態は、スキャンチェーンワイヤ長最適化のための方法、コンピュータシステム、およびコンピュータプログラム製品を開示する。本発明の実施形態は、ルートノードからルートノード詳細を取得することを含み得る。本発明の実施形態は、ルートノードの接続性を最適化することを含み得る。本発明の実施形態は、ルートノードの各々に関して、最良の始点ノードおよび最良の終点ノードを識別することを含み得る。本発明の実施形態は、ルートノードの各々における子ノードを最適化することを含み得る。本発明の実施形態は、全体巡回のワイヤ長が最近傍より短いか長いことを判断することを含み得る。本発明の実施形態は、解を適用するかまたはスキップすることを含み得る。
【課題を解決するための手段】
【0004】
本発明の実施形態は、スキャンチェーンワイヤ長を最適化するQ学習ベースの強化学習を使用することによって、スキャンチェーン最適化の技術分野を向上する可能性を有する。より具体的には、効率的でリオーダリングされたスキャンチェーンが、従来のスキャンチェーンにあるノードの複数の順列を一体化して使用することによって識別され得る。スキャンチェーンの効率的なリオーダリングは、以前の探索から取得される誘導学習を使用し得、誘導は、合計のチェーンワイヤ長に基づいて、各探索から重みづけされるか報酬を与えられる。
【図面の簡単な説明】
【0005】
本発明の、これらのおよび他の目的、特徴および利点は、添付の図面と関連して読まれるべき、それの例示的な実施形態の、以下の詳細な説明から明らかになるであろう。図示は、当技術分野における当業者が、詳細な説明と結合させて発明を理解することを容易にする明確性のためなので、図面の様々な特徴は、原寸通りの比率ではない。図面:
【0006】
図1】少なくとも1つの実施形態に記載のネットワークコンピュータ環境を示す図である。
【0007】
図2A】少なくとも1つの実施形態に記載のクラスタの複数のルートノード表現の例を表すブロック図である。
図2B】少なくとも1つの実施形態に記載のクラスタの複数のルートノード表現の例を表すブロック図である。
【0008】
図3A】少なくとも1つの実施形態に記載の、Q学習を用いたスキャンチェーンワイヤ長の最適化ベースの強化学習のためのプロセスを示す動作フローチャートである。
図3B】少なくとも1つの実施形態に記載のスキャンチェーンに関する、最適化ルートノード(OptRootNode)および最適化子ノード(OptChildChain)接続性の最中の、Q学習プロセスの選択行動部分のためのプロセスを示す動作フローチャートである。
図3C】少なくとも1つの実施形態に記載の、ルートノード(RootNodes)間の最適な接続を選択するプロセスを示す動作フローチャートである。
【0009】
図4】少なくとも1つの実施形態に記載の、図1に示されたコンピュータおよびサーバの内部および外部コンポーネントのブロック図である。
【0010】
図5】本開示の実施形態に係る、図1に示されたコンピュータシステムを含む、図示的なクラウドコンピューティング環境のブロック図である。
【0011】
図6】本開示の実施形態に係る、図5の図示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0012】
特許請求の範囲における構造および方法の詳細な実施形態が、明細書に開示されるが、しかしながら、開示される実施形態は、様々な形態で具現化され得る、特許請求の範囲における構造および方法の例示にすぎないことが、理解され得る。本発明は、しかしながら、多くの異なる形態で具現化されてよく、明細書に記載された例示的な実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が綿密かつ完全であるように、および、当技術分野における当業者に発明の範囲を完全に伝えるように提供される。本記載において、示された実施形態を不必要にあいまいにすることを回避するために、よく知られた特徴および技術の詳細は省略されることがある。
【0013】
以前に記載したように、スキャンチェーン技法の使用は、伝えられる信号のセットに基づいて集積回路における各フリップフロップでの可制御性および可観察性を定めることによって、集積回路試験を簡略化し得る。スキャンチェーン最適化方法論は、合計ワイヤ長スキャンを含む複数の制約の影響を受けるフリップフロップのセットを介したスキャンチェーンのリオーダリングを含む。ラッチまたはフリップフロップは、複数のスキャンチェーンの間で分配され得る。
【0014】
スキャンチェーン最適化の1つの基本的な目的は、スキャンチェーンのワイヤ長を削減することである。ワイヤ長を削減することは、スキャン頻度を増加させ、試験時間を向上させ、設計巡回能力を向上させ、チップ領域および電力を削減する結果となる。現在のスキャンチェーン最適化解決手段は、最近傍のノードを使用して、次いでチェーンとノードの間のスワップによってノードを増やす、貪欲アプローチを使用する方法を含み得る。別の方法は、試験を実行不可能にする多くの組み合わせを有する網羅的な検索を含む。いくつかは、遺伝学的アルゴリズムタイプの手法を使用する。ワイヤ長を削減する現在のスキャンチェーン最適化オーダリングは、削減されたワイヤ長に関してスキャンチェーンをリオーダリングするQ学習手法を取り入れていない。したがって、スキャンネットを再接続するようにQ学習を使用することによって合計ワイヤ長および電力を削減するための、向上したスキャンチェーンワイヤ長最適化方法を生成することが、とりわけ有利であり得る。
【0015】
以下に記載された例示的な実施形態は、スキャンチェーン最適化のためのシステム、方法、およびプログラムプロダクトを提供する。したがって、本発明の実施形態は、スキャンチェーンワイヤ長を最適化するQ学習ベースの強化学習を使用することによって、スキャンチェーン最適化の技術分野を向上する可能性を有する。より具体的には、効率的でリオーダリングされたスキャンチェーンが、従来のスキャンチェーンにあるノードの複数の順列を一体化して使用することによって識別され得る。スキャンチェーンの効率的なリオーダリングは、以前の探索から取得される誘導学習を使用し得、誘導は、合計のチェーンワイヤ長に基づいて、各探索から重みづけされるか報酬を与えられる。
【0016】
Q学習は、モデルフリーでオフポリシの強化学習アルゴリズムである。モデルフリーとは、動作を実行するためにモデルを必要としないことを指す。Q学習は、確率論的な遷移および報酬によって動作する能力を有し得、適応を必要としない。オフポリシとは、現在の状態に基づいて最良の動作を発見るアルゴリズムを学習する能力を指してよい。Q学習機能は、ポリシの外側にある動作に基づいて、例えば、ランダムな動作を取って学習してよい。強化学習とは、報酬または累積する報酬に基づいて動作を取る機械学習の領域を指す。
【0017】
ラッチまたはフリップフロップは、各スキャンチェーンにおけるラッチの数を最小にするように、複数のスキャンチェーンの間で分配され得、それはスキャン時間を直接削減し得、従って、試験時間もまた削減し得る。基本的なスキャンチェーン構造は、信号を順序正しくスキャンする。レジスタ転送レベル(RTL)で設計されたスキャンチェーンは、ランダムな順序で、またはラッチの物理的位置を意識しない論理的な順序でスキャンチェーンに割り当てられたスキャンラッチを有し得る。
【0018】
スキャンチェーン最適化は、ラッチ位置がチップ上で判断された後に、集積回路(IC)の物理的設計最適化の最中に実行される。最適化の最中に、第1のラッチのスキャン出力は、第2のラッチのスキャン入力に直列に接続され、チェーンを形成する。合計ワイヤ長は、スキャンチェーン上のラッチのすべての組の間の距離の合計として定義されてよい。スキャンチェーン最適化はまた、各スキャンチェーンにおけるラッチを限定し得、試験時間を削減し得る。各スキャンラッチは、スキャンチェーンのうちの1つに割り当てられ得る。各ラッチは、スキャンチェーンのうちの任意の1つに一度生じ得、すべてのラッチは、少なくとも1つのスキャンチェーン上で生じ得る。スキャン最適化とは、合計ワイヤ長および電力を削減するようにラッチを介する、スキャンチェーンの再接続を指す。
【0019】
実施形態に記載のように、Q学習は、最適なQテーブル、または、良好なQテーブルとみなされ得るものを得るように、多くの反復を実行するように使用され得る。良好なQテーブルは、所与の状態に関する最良の動作の表現であり得る。Qテーブルは、各状態における動作に関する将来の予想される計算された最大報酬をキャプチャするルックアップテーブルであり得る。Qテーブルの初期化後に、多くの反復が、Qテーブルを向上させる複数の段階を含む強化学習の最中に行われる。反復ステップは、例えば、動作の選択、動作の実行、結果の評価、報酬の数値化、次に、Qテーブルの更新を含み得る。状態および動作に関する新しいQ値は、New Q(s,a)によって表され得る。現在のQ値はQ(s,a)によって表され得る。学習速度は∝によって表され得る。所与の状態において動作を取る報酬は、R(s,a)によって表され得る。割引率はγによって表され得る。 新たな状態s'、および新たな状態における全ての可能な動作を与えられた、予想される将来の最大報酬は、maxQ'(s',a')によって表され得る。 反復ステップを表す式は、例えば
New Q(s,a)=Q(s,a)+∝[R(s,a)+γmaxQ'(s',a')-Q(s,a)]
を含み得る。
【0020】
実施形態に記載のように、Q学習ベースの強化学習アルゴリズムは、スキャンスティッチングのための接続性を発見するように使用され得る。反復Q学習方法は、スキャンチェーン並び替えのために使用され得る。スキャンチェーン並び替えは、ラッチの物理的位置に基づいてスキャンネットを再接続することを含み得、全体のスキャンワイヤ長を削減し得る。
【0021】
実施形態に記載のように、試験要件がQ学習を導く際の制約として組み込まれ得る。制約は、任意の単独スキャンチェーンにおける全体ラッチであり得、テスト可能性のための設計(DFT)限定を超えるべきではない。制約はまた、共にグループ化されるべき、与えられたローカルクロックバッファ(LCB)クラスタに関連付けられたラッチであり得る。制約は、加えて、最適化可能ではないとしてマークされ、そのままに維持される必要がある、あるラッチのスキャンチェーン順序であり得る。最適なスキャンチェーン接続性は、インターおよびイントラクラスタ探索に分割され得る。例えば、ラッチノードは、イントラクラスタ(例えば、子ノード)最適化が後に続く、インタークラスタ(例えばルートノード)最適化として分割され得る。
【0022】
実施形態に記載のように、Q学習の再帰的用途がルートノードおよび子ノードによって使用され得る。文脈に応じた判断が、子ノードに関する最適な始点および最適な終点に関して行われ得る。
【0023】
実施形態に記載のように、さらなる繰り返しおよびさらなる探索を可能にするように状態空間を削減するように、ノード畳み込みが使用され得る。ノード畳み込みを可能にすることはまた、ローカルクロックバッファ(LCB)クラスタにおけるラッチのグループを共に保つように、特定の非最適化を支持し、テスト可能(DFT)制約のための設計を支持するために使用され得る。
【0024】
実施形態に記載のように、全ての可能な動作が新たな状態から推定され得、それは時間集約的であり網羅的であるので、ゼロ割引率が定められ得る。
【0025】
図1を参照すると、一実施形態に係る例示的なネットワークコンピュータ環境100が示される。ネットワークコンピュータ環境100は、ソフトウェアプログラム108およびスキャンチェーン最適化プログラム110aの実行を可能にするプロセッサ104およびデータストレージデバイス106を有するコンピュータ102を含み得る。ネットワークコンピュータ環境100はまた、データベース114および通信ネットワーク116と相互作用し得るスキャンチェーン最適化プログラム110bの実行を可能にするサーバ112を含み得る。コンピュータ102はまた、クライアントコンピュータとして認識され得、サーバ112はまた、サーバコンピュータとして認識され得る。ネットワークコンピュータ環境100は複数のコンピュータ102およびサーバ112を含み得、それらのうちの1つだけが示される。通信ネットワーク116は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、遠隔通信ネットワーク、無線ネットワーク、公衆スイッチネットワーク、もしくは衛星ネットワーク、またはその組み合わせなどの、様々なタイプの通信ネットワークを含み得る。図1は、一実装の図示のみを定めるものであり、異なる実施形態が実現され得る環境に関するいかなる限定も示唆するものではないことが、理解されるべきである。多くの修正が、設計および実現要求に基づいて、示された環境に対して行われ得る。
【0026】
コンピュータ102は、通信ネットワーク116を介してサーバ112と通信し得る。通信ネットワーク116は、電線、無線通信リンク、または光ファイバケーブルなどの接続を含み得る。図4に関連して説明されるように、サーバ112は内部コンポーネント902aおよび外部コンポーネント904aをそれぞれ含み得、コンピュータ102は内部コンポーネント902bおよび外部コンポーネント904bをそれぞれ含み得る。サーバ112はまた、ソフトウェアアズアサービス(SaaS)、アナリティクスアズアサービス(AaaS)、ブロックチェーンアズアサービス(BaaS)、プラットフォームアズアサービス(PaaS)、またはインフラストラクチャアズアサービス(IaaS)などのクラウドコンピューティングサービスモデルにおいて動作し得る。サーバ112はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドなどのクラウドコンピューティングデプロイメントモデルに位置し得る。コンピュータ102は、例えば、モバイルデバイス、電話、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、または、プログラムを実行でき、ネットワークにアクセスでき、データベース114にアクセスできる任意のタイプのコンピューティングデバイスであり得る。本実施形態の様々な実装に記載のように、スキャンチェーン最適化プログラム110a、110bは、コンピュータ/モバイルデバイス102、サーバ112、またはクラウドストレージサービスなどの、しかしそれらに限定されることはない、様々なストレージデバイスに埋め込まれ得るデータベース114と相互作用し得る。
【0027】
本実施形態に記載のように、クライアントコンピュータ102またはサーバコンピュータ112を使用するユーザは、(それぞれ)スキャンチェーン最適化プログラム110a、110bを使用して、Q学習ベースの強化学習を使用するスキャンチェーンワイヤ長を最適化し得る。スキャンチェーン最適化方法は、図2Aから図2Bおよび図3Aから図3Cに関して、以下でより詳細に説明される。
【0028】
ここで図2Aから図2Bを参照すると、少なくとも1つの実施形態に記載のスキャンチェーン最適化プログラム110a、110bによって使用されるクラスタの複数のルートノード表現の例を表すブロック図が示される。
【0029】
202において、SCAN_INポートおよびSCAN_OUTポートを含む1つのスキャンチェーンの設計の表現が示される。ブロックは設計においてラッチクラスタを表す。例えば、ラッチには、最適化可能ではないクラスタとして定義されるクラスタ0と共に7つのクラスタがある。
【0030】
204において、ルートノードへと畳み込まれるラッチクラスタの表現が示される。例えば、202のクラスタ6において識別される4つのラッチは、単独のルートノードC6へと畳み込まれる。ルートノードC0からノードC6への方向エッジは、C0からC6への探索に関する次の許容可能な状態を示す。エッジに関連付けられた重みは、C0からC6への経路を取るワイヤ長を含み得、それはワイヤ長w06である。
【0031】
206において、ルートノード生成および重みが、最短経路に好都合となるように、ワイヤ長WL(i)に基づいて重みまたは報酬を更新されたQ学習として示される。探索1(WL1)および探索2(WL2)が検討され、探索2(WL2)を使用する経路が、最短経路の部分であると計算される。計算された最短経路は、Qテーブルにおける重みを更新するように使用される。
【0032】
208において、N回の探索の後のルートノード解決手段が、N回の探索に基づいて更新された重みを有する、最終的に予測された経路として示される。最終経路は、探索された経路のうちの1つと同じ経路であることもあり、最終経路は探索された経路とは異なることもある。最終経路は、最短のワイヤ長経路を含み得る。
【0033】
ここで図3Aを参照すると、少なくとも1つの実施形態に記載のスキャンチェーン最適化プログラム110a、110bによって使用される、例示的なスキャンチェーンワイヤ長最適化プロセス200を示す動作フローチャートが示される。
【0034】
302において、ルートノード詳細を獲得する操作が実行される。ルートノードから取得された詳細は、ルートノードの接続性に関連し得る。1つまたは複数のルートノードは、例えば、ローカルクロックバッファ(LCB)クラスタの一群のラッチ、最適化可能ではない一群のラッチまたはスタンドアローンノードを表し得る。ルートノード(RootNode)は、共に制限されることが必要な一群のラッチの畳み込まれた表現である。強化学習またはQ学習は、ルートノードの適切な接続性を獲得するように使用され得る。
【0035】
304において、ルートノードの接続性が最適化される。ルートノードの接続性は、ルートノード巡回(RootNodeTour)を予測するルートノードデータを生成するように最適化される。ルートノード巡回(RootNodeTour)は、合計ワイヤ長を削減するルートノードの適切な接続性である。適切なQテーブルが、ルートノード巡回(RootNodeTour)を予測するように使用されるであろう。ルートノード巡回(RootNodeTour)は、各ノードの要素行列に関して予測されてよい。ルートノードの最適化は、初期化操作のための304aにおけるQテーブルの初期化と、段階304b-eにおける多くの反復の実行を含み得る。繰り返しの数は、探索の所望の深さに依存して変化し得る。Qテーブルの品質は、繰り返しの数が増加するにつれて向上し得る。実行される繰り返しの数は、適切なQテーブルを生成するために十分であり得る。例えば、Nの値を選択する1つのインスタンスは、以前のN-K回の探索より短いワイヤ長(WL)を以前の探索が戻さなかった値を選択している。
【0036】
スキャンチェーンに関するルートノード(RootNode)の詳細を最適化することは、グループにおける全ての(x,y)ラッチ座標の平均値である座標を有するクラスタ(すなわち、ノード)への、一群のラッチを表すことを含み得る。
【0037】
304aにおいて、Qテーブルが初期化される。Qテーブルは、テーブルまたは行列における値を、テーブルの全ての位置にわたってゼロまたは一様値に設定することによって初期化され得る。テーブルは、状態、および、その状態における動作として表される。
【0038】
304bにおいて、動作が選択される。動作は、ノードの間の重みに基づいて選択され得、または、動作は、ランダムに選択され得る。ノードの間の重みは、クラスタ(すなわち、ノード)の点の間の距離によって評価され得る。例えば、入力クラスタ位置は(xi,yi)であり得、別のクラスタ位置は(xo,yo)であり得、その表現はXi=(xi)∈
【数1】
、Yi=(yi)∈
【数2】
、Xo=(xo)∈
【数3】
、Yo=(yo)∈
【数4】
を含み得る。ワイヤ長(WL)は、WL=|Xo-Xi|+|Yo-Yi|として計算され得る。
【0039】
重みに基づいて選択される動作は、f(Qcurrent,K/distance)と等しくなり得、Kは定数値である。Qcurrentは、Qテーブルの状態、動作の組に関する現在の値である。重みに基づいて選択される動作は、f(Qcurrent,K/distance)として評価される最大重みによってノードを選択すること、または、現在のノードから最も近いN個のノードの選択からランダムにノードを選択することを含み得る。スキャンチェーンに関する最適化ルートノード(RootNodes)の最中のQ学習プロセスの選択行動部分、304bに関するプロセスが、図3Bに示される。
【0040】
代替の実施形態に記載のように、ルートノード内の一群のラッチが、グループにおけるスキャンインピンおよびスキャンアウトピンの中点の平均値である座標によって表され得る。
【0041】
304cにおいて、動作が実行される。動作は、段階304bから選択されたノードを、ルートノード巡回(RootNodeTour)に追加することによって、実行され得る。一連の段階304bおよび304cは、全てのノードがルートノード巡回(RootNodeTour)に追加されるまで繰り返され得る。
【0042】
304dにおいて、報酬が評価される。各探索の終点において、査定の測定基準としてのルートノード巡回(RootNodeTour)の全体ワイヤ長を評価することによって、報酬が評価される。例えば、ノードの間のマンハッタン距離が、ワイヤ長(WL)評価に関する測定基準として使用され得、合計ワイヤ長(WL)が、以前の巡回査定の繰り返しにおいて達成された最良のワイヤ長(WL)と比較される。
【0043】
304eにおいて、Qテーブルが更新される。テーブルは、巡回ワイヤ長に基づいて更新される。Qテーブルの更新またはQ更新は、*Qnext=(1-∝)Qcurrent+∝(CurrentWL/GlobalOptWL+γ*max of next state)として表され得る。 Qnextは次の動作、または次の状態における動作であり、∝は学習速度であり、CurrentWLはQcurrentノードにおける現在のワイヤ長であり、γは割引率であり、max of the next stateは現在の動作の全ての次の状態からのQの最大値である。
【0044】
第1の実施形態において、Qテーブルは、CurrentWL<K*GlobalOptWLとして表されるすべての繰り返しに基づいて更新される。例えば、CurrentWLがK*GlobalOptWLより小さい場合、次にQテーブルが更新される。CurrentWLがK*GlobalOptWLより小さくない場合、次にQテーブル更新がスキップされる。
【0045】
第2の実施形態において、Qテーブルは、CurrentWL<K*GlobalOptWLとして表されるすべての繰り返しに基づいて更新され、経路は、前に更新されたことがない。例えば、CurrentWLがK*GlobalOptWLより小さい場合、次にスキャンチェーン最適化プログラムが、ノードが既に報酬を与えられているかどうか判断する。ノードが既に報酬を与えられている場合、次にQテーブルが更新される。CurrentWLがK*GlobalOptWLより小さくない場合、次にQテーブル更新がスキップされる。
【0046】
一連の段階304b-304eは、Qテーブルを継続的に向上するようにN回実行され得る。N回の反復または探索の後、第1のノードから開始して、ルートノード巡回(RootNodeTour)の最後のノードに達するまで現在のQテーブルに基づいて動作を選択することによって、最適ルートノード巡回(RootNodeTour)が選択される。最後のルートノード巡回(RootNodeTour)は、最適化されたルートノード巡回(RootNodeTour)と呼ばれるかみなされてよい。
【0047】
306において、最良の始点ノードおよび終点ノードが識別される。最良の始点ノードおよび最良の終点ノードは、最良の始点ノードおよび終点ノードの間の最適な接続として、各ルートノード(RootNode)に関して識別される。各ルートノード(RootNode)に関して、子ノードは、最適な子ノード巡回(ChildNodeTour)に関する始点ノードおよび終点ノードとみなされる。最良の始点ノードおよび終点ノード、または最適な接続を識別または選択するためのプロセスは、図3Cにおいて参照され得る。
【0048】
308において、各ルートノードにおける子ノードが最適化される。ルートノード巡回(RootNodeTour)における各ノードは、複数の子ノードからなってよい。各ノードは、そのルートノード(RootNode)内で最適巡回(OptChildChain)を発見するように、最適化されてよい。子ノードの最適化のプロセスは、段階304b-304eからのルートノード巡回(RootNodeTour)最適化のプロセスと類似してよい。
【0049】
各子ノードの最適化の後、始点ノードから始まり、ルートノード巡回(RootNodeTour)を通ってトラバースすることによって全体巡回が生成される。すべてのルートノード(RootNode)において、ルートノード巡回(RootNodeTour)における次のノードに移動する前に、そのルートノード(RootNode)に関して最適化された子ノード巡回(ChildNodeTour)が全体巡回(FullTour)にアペンドされる。
【0050】
308aにおいて、Qテーブルが初期化される。各ルートノード(RootNode)に関する新しいQテーブルが初期化され得、それはそのルートノード(RootNode)における各子ノードに関する現在の状態および動作を表し得る。子ノード巡回(OptChildChain)最適化に関して、Qテーブルの初期化は、テーブルまたは行列における値を、テーブルの全ての位置にわたってゼロまたは一様値に設定することを含む。良好な品質のQテーブルを得るように、段階308b-eの多くの反復が実行されてよい。様々な子ノード巡回(OptChildChain)の最適化は、実行時間の接続と並行して行われてよい。
【0051】
308bにおいて、動作が選択される。動作は、ノード行列に関する、固定された、または最適な始点ノード、および、固定された、または最適な終点ノードの判断に基づいて選択され得る。動作は、ルートノード(RootNode)内の子ノード間の最小ワイヤ長の判断に基づいて選択される。2つの子ノード間の距離は、子ノード上のピン位置に基づいて計算され得る。ワイヤ長WLは、WL=|Xo-Xi|+|Yo-Yi|として計算されてよい。重みに基づいて選択された動作は、{f(Qcurrent,K/distance)として評価される最大重みを有するノードを選択すること、または、現在のノードから最も近いN個のノードの選択からランダムにノードを選択することを含み得る。スキャンチェーンに関する最適化ルートノード(RootNodes)の最中のQ学習プロセスの選択行動部分に関するプロセス、308bが図3Bに示される。
【0052】
308cにおいて、動作が実行される。動作は段階304cと同様に実行される。
【0053】
308dにおいて、報酬が評価される。報酬は段階304dと同様に評価される。
【0054】
308eにおいて、Qテーブルが更新される。Qテーブルは、段階308eと類似して更新されるが、しかしながら、Qテーブルは子ノード巡回(ChildNodeTours)の各々に関して更新される。一連の段階308b-308eは、全体巡回(FullTour)を完了させるためにN回実行されてよい。一連の段階308b-308eは、Qテーブルを継続的に向上するようにN回実行され得る。N回の反復または探索の後、第1のノードから開始して、子ノード巡回(ChildNodeTour)の最後のノードに達するまで現在のQテーブルに基づいて動作を選択することによって、最適子ノード巡回(ChildNodeTour)が選択される。一連の段階および繰り返しは、最適化された子ノードという結果になり得る。
【0055】
現在のノードがクラスタノードである場合、次に、子ノード巡回(ChildNodeTour)は最適化され、全体巡回(FullTour)にアペンドされ得る。2つのクラスタノードを接続するように、1つのクラスタの最良の終点ノードと、次のクラスタの始点ノードが判断される。各開始終点ノードオプションに関して、Q学習プロセスが始点ノードから終点ノードまで行われ得る。次に、最良のクラスタ最適化チェーン(OptChildChain)が識別され得る。全体巡回(FullTour)にアペンドされた子ノード巡回(ChildNodeTour)は、FullTourにOptChildChainを添付するとして表されてよい。次のクラスタの始点ノード(OptStartNode)は、最適終点ノード(OptEndNode)と次のクラスタノードとの間の最小ワイヤ長(WL)接続性に基づいて識別され得る。
【0056】
現在のノードが、始点ノード、終点ノード、またはシングルノードなどのスタンドアローンノードである場合、そのスタンドアローンノードは全体巡回(FullTour)にアペンドされる。次のノードは現在のノードへの最小ワイヤ長(WL)を有するノードとして設定され得る。
【0057】
現在のノードが最適化可能ではないノードである場合、次に、その最適化可能ではないノードが全体巡回(FullTour)へのチェーンにアペンドされる。現在のノードが次のノードの最小ワイヤ長(WL)と等しい場合、次のノードは再接続された終点ノードから次のノードの最小ワイヤ長(WL)を識別することによって設定され得る。
【0058】
310において、スキャンチェーン最適化プログラム110a、110bは、完全巡回ワイヤ長が、存在する最近傍解よりも短いかどうか判断する。段階308から最適化された完全巡回ワイヤ長は、最近傍解からのワイヤ長と比較される。最近傍は、例えば、最も近い近傍がすべての所与の段階で選択されるスキャンチェーン最適化問題を解くために使用されるアルゴリズム解であり得る。
【0059】
スキャンチェーン最適化プログラム110a、110bが、完全巡回ワイヤ長が最近傍よりも短いと判断する場合、次に、解法が段階312で適用される。適用される解法は、Q学習ベースの全体巡回(FullTour)からのものである。例えば、解法は最良に認識された完全巡回ワイヤ長と比較された完全巡回ワイヤ長であり、従って、全ての以前の探索とはかけ離れている。
【0060】
スキャンチェーン最適化プログラム110a、110bが、完全巡回ワイヤ長が最近傍よりも短くないと判断する場合、次に、現在の経路または解法は314でスキップされる。
【0061】
ここで図3Bを参照すると、少なくとも1つの実施形態に記載のスキャンチェーン最適化プログラム110a、110bによって使用される、Q学習最適化ルートノード(OptRootNode)および最適化子ノード(OptChildChain)接続性プロセス304b、308bの例示的な選択行動部分を示す動作フローチャートが示される。動作を選択し、次の状態が示され、ここで、次の状態はaction=f(Qcurrent,K/weight)として表され、Kは定数値であるか、actionはランダムに選択され得る。
【0062】
320において、スキャンチェーン最適化プログラム110a、110bは、選択がランダムであるかどうか判断する。選択とは、選択されたactionが探索係数に基づくランダムな動作であったかどうか判断することを指してよい。探索係数は0から1の間の任意の値をとってよく、1は最大のランダム性を指し、0は全くランダム性がないことを指す。
【0063】
スキャンチェーン最適化プログラム110a、110bは、選択がランダムでないことを判断し、次に、訪問されるべきノードが322で選択される。訪問されるべきノードは、現在の探索においてまだ訪問されていない全てのノードを含む。
【0064】
324において、成功の確率が、現在のQ値およびワイヤ長に基づいて計算される。ノードの間のQ値およびワイヤ長はQ*Hによって計算され、Hは現在のノードと、候補となる次のノードの各々との間の、ワイヤ長の関数である。
【0065】
326において、最大の成功の確率を有するノードが選択される。最大の成功の確率を有するノードは、Q*Hの計算の結果を使用して選択される。例えば、Q*Hの最大値を有するノードは、最大の成功の確率を有するように計算され得る。
【0066】
スキャンチェーン最適化プログラム110a、110bが、選択がランダムであると判断した場合、次に、N個の最近傍が328で発見される。実行の最中に定義される数としてNを使用して、N個の最近傍が発見され得る。
【0067】
328において、N個の最近傍が発見される。N個の最近傍は、ソートされた近傍の距離に基づいて発見または識別される。例えば、N個の最近傍の距離は、現在のノードからの識別された距離に基づいて、最小から最大の距離へとソートされる。
【0068】
330において、スキャンチェーン最適化プログラム110a、110bは、ノードが訪問されたかどうか判断する。選択されたノードが既に巡回探索の一部であるか、巡回探索において識別されるかをチェックすることにより、現在の探索においてノードが訪問されたかどうかに基づいて、判断が行われる。
【0069】
スキャンチェーン最適化プログラム110a、110bが、ノードが巡回において訪問されたと判断した場合、次に、次のノードが332で選択される。次のノードは、N個の最近傍から、残りのノードのうちの1つとして選択される。次のノードが選択された後、スキャンチェーン最適化プログラム110a、110bは、そのノード(例えば、次のノード)が段階330における巡回で訪問されたかどうか判断する。
【0070】
スキャンチェーン最適化プログラム110a、110bが、そのノードが巡回において訪問されていないと判断した場合、次に、最も近い係数が334において評価される。例えば、最近傍の最も近い係数を発見するように、ボルツマン探索が利用されてよい。
【0071】
336において、スキャンチェーン最適化プログラム110a、110bは、ノードが限定の範囲内にあるかどうか判断する。限定は、学習プロセスにおいて必要とされる探索の深さに基づいて判断されてよい。より小さい限定は、探索を近くの近傍に制限し得、より高い限定は、近くの近傍と、より遠いノードの両方を探索し得る。
【0072】
スキャンチェーン最適化プログラム110a、110bが、ノードが限定の範囲内にないと判断した場合、次に、次のノードが332で選択される。次のノードが選択された後、スキャンチェーン最適化プログラム110a、110bは、そのノード(例えば、次のノード)が段階330での巡回で訪問されていたかどうかを判断する。
【0073】
スキャンチェーン最適化プログラム110a、110bがそのノードが限定の範囲内にあると判断した場合、次に、そのノードは338における選択リストに追加される。ノードが限定の範囲内にあると判断することは、近さ係数が、予め定義された、または予め判断された閾値より小さいかどうかチェックすることを含み得る。選択リストは、現在のノードに十分近いランダム探索または複数のランダム探索の最中に探索され得るノードを表し得る。
【0074】
340において、スキャンチェーン最適化プログラム110a、110bは、近傍の全てが完了したかどうか判断する。段階328からのN個の最近傍の全てが評価された場合、近傍の全てが完了する。
【0075】
スキャンチェーン最適化プログラム110a、110bが、近傍の全てが完了していないと判断した場合、次に、次のノードが332で選択される。次のノードが選択された後、スキャンチェーン最適化プログラム110a、110bは、そのノード(例えば、次のノード)が段階330での巡回で訪問されているかどうかを判断する。
【0076】
スキャンチェーン最適化プログラム110a、110bが、近傍の全てが完了したと判断した場合、次に、ランダムノードが選択リストから選択される。ランダムノードは、選択リストからのノードのうちの1つをランダムに拾うことによって選択される。
【0077】
ここで図3Cを参照すると、少なくとも1つの実施形態に記載のスキャンチェーン最適化プログラム110a、110bによって使用されるルートノード(RootNodes)プロセス306の間の最適な接続の例示的な選択を示す動作フローチャートが、示される。
【0078】
350において、ルートノード巡回が読み出されるか、識別される。ルートノード巡回(RootNodeTour)は、段階304eにおいてQテーブルが更新された後に、Qテーブルに基づいて識別される。
【0079】
352において、ルートノード巡回(RootNodeTour)の第1のノードが選択される。選択された第1のノードは、最適ルートノード巡回上の第1のノードである。
【0080】
354において、ルートノード巡回(RootNodeTour)の次のノード(例えば、第2のノード)が選択される。第2のノードは、第1のノードからの最大Q値を有するノードとして設定されてよい。
【0081】
356において、ノードの間の全ての可能な接続の重みが計算される。全ての可能な接続の重みが、ルートノード巡回(RootNodeTour)の第1のノードと、ルートノード巡回(RootNodeTour)の第2のノードとの子ノードの間で計算される。重みは、ノードの間のワイヤ長(WL)を表し得、2つのノードの間の距離として計算され得る。段階308bに述べられるように、WL=|Xo-Xi|+|Yo-Yi|である。
【0082】
358において、最良の重みを有する接続が選択される。最良の重みまたは最適の重みは、クラスタの間のk個の最小ワイヤ長(WL)の中のランダムな選択であり得、kはクラスタ接続性ノードより小さい数である。kの値が小さくなるほど、最良のワイヤ長(WL)の探索および貪欲解がk=1に関して選択される可能性が少なくなる。
【0083】
360において、第1のノードの子ノードが終点ノードとして設定され、次のノードの子ノードが始点ノードとして設定される。第1のルートノードの子ノードは第1のルートノードに関する終点ノードとして設定され、次のノード(例えば、第2のノード)の子ノードは次のルートノードに関する始点ノードとして設定される。
【0084】
362において、スキャンチェーン最適化プログラム110a、110bは、次のノードがルートノード巡回(RootNodeTour)の最後のノードであるかどうか判断する。次のノードがルートノード巡回(RootNodeTour)の最後のノードであると判断することは、巡回のノードの全てがこの探索の最中に既に訪問されているかどうかをチェックすることによって確証される。
【0085】
スキャンチェーン最適化プログラム110a、110bが、次のノードは巡回における最後のノードではないと判断した場合、次に、364において、次のノードが第1のノードとして設定される。始点および終点ノードを識別するプロセスが、ルートノード巡回(RootNodeTour)における隣接するノードの各対ごとに繰り返される。一度、次のノードが第1のノードとして設定されると、次の隣接するノード(例えば、第3のノード)が、ルートノード巡回(RootNodeTour)において選択されるであろう。例えば、次のノードがルートノード巡回(RootNodeTour)の第2のノードであった場合、次に、段階354において選択された次のノードが、選択された第3のノードであり得る。
【0086】
スキャンチェーン最適化プログラム110a、110bが、次のノードが巡回における最後のノードであると判断した場合、次に、ルートノード巡回(RootNodeTour)の最良の始点-終点ノード部分の選択が終了する。
【0087】
図2Aから図2Bおよび図3Aから図3Cは一実施形態の図示だけを提供するものであり、どのような異なる実施形態が実現され得るかに関するいかなる限定を示唆するものではないと理解されてよい。示された実施形態への多くの修正が、設計および実現要求に基づいて行われてよい。
【0088】
図4は、本発明の例示の実施形態に係る、図1に示されるコンピュータの内部および外部コンポーネントのブロック図900である。図4は、1つの実装の図示だけを提供するものであり、異なる実施形態が実現され得る環境に関するいかなる限定も示唆するものではないことが、理解されるべきである。示された環境への多くの修正が、設計および実現要求に基づいて行われてよい。
【0089】
データ処理システム902、904は、機械読み取り可能プログラム命令を実行可能な任意の電子デバイスを表す。データ処理システム902、904は、スマートフォン、コンピュータシステム、PDA、または他の電子デバイスを表し得る。データ処理システム902、904によって表されるコンピューティングシステム、環境、もしくはコンフィギュレーション、またはその組み合わせの例は、上記システムまたはデバイスの任意のものを含む、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータシステム、および分散クラウドコンピューティング環境を含むが、それらに限定されることはない。
【0090】
コンピュータ102およびサーバ112は、図4に示された、内部コンポーネント902a、bおよび外部コンポーネント904a、bのそれぞれのセットを含み得る。内部コンポーネント902a、bの複数のセットの各々は、1つまたは複数のバス912上の、1つまたは複数のプロセッサ906、1つまたは複数のコンピュータ読み取り可能なRAM908、および1つまたは複数のコンピュータ読み取り可能なROM910と、1つまたは複数のオペレーティングシステム914と、1つまたは複数のコンピュータ読み取り可能有体ストレージデバイス916とを含む。1つまたは複数のオペレーティングシステム914、ソフトウェアプログラム108、およびクライアントコンピュータ102におけるスキャンチェーン最適化プログラム110a、およびネットワークサーバ112におけるスキャンチェーン最適化プログラム110bが、1つまたは複数のRAM908(典型的にはキャッシュメモリを含む)を介して、1つまたは複数のプロセッサ906による実行のために、1つまたは複数のコンピュータ読み取り可能有体ストレージデバイス916上に格納され得る。図4にを示される実施形態において、コンピュータ読み取り可能有体ストレージデバイス916の各々は、内部ハードドライブの磁気ディスクストレージデバイスである。代替として、コンピュータ読み取り可能有体ストレージデバイス916の各々は、コンピュータプログラムおよびデジタル情報を格納し得る、ROM910、EPROM、フラッシュメモリ、または任意の他のコンピュータ読み取り可能有体ストレージデバイスなどの半導体ストレージデバイスである。
【0091】
内部コンポーネント902a、bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光学ディスク、または半導体ストレージデバイスなどの、1つまたは複数のコンピュータ読み取り可能有体ストレージデバイス920から読み出す、またはそこへ書き込むための、R/Wドライブまたはインタフェース918を含む。ソフトウェアプログラム108およびスキャンチェーン最適化プログラム110a、110bなどのソフトウェアプログラムは、それぞれの持ち運び可能なコンピュータ読み取り可能有体ストレージデバイス920の1つまたは複数上に格納され得、それぞれのR/Wドライブまたはインタフェース918を介して読み出され得、それぞれのハードドライブ916へとロードされ得る。
【0092】
内部コンポーネント902a、bの各セットはまた、TCP/IPアダプタカード、無線wi-fi(登録商標)インタフェースカード、または3G/4G/5G無線インタフェースカード、または他の有線または無線通信リンクなどの、ネットワークアダプタ(またはスイッチポートカード)またはインタフェース922を含み得る。コンピュータ102におけるソフトウェアプログラム108およびスキャンチェーン最適化プログラム110aと、ネットワークサーバ112におけるスキャンチェーン最適化プログラム110bとが、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、または他のワイドエリアネットワーク)および、それぞれのネットワークアダプタまたはインタフェース922を介して、外部コンピュータ(例えば、サーバ)からダウンロードされ得る。ネットワークアダプタ(またはスイッチポートアダプタ)またはインタフェース922、ソフトウェアプログラム108、およびコンピュータ102のスキャンチェーン最適化プログラム110a、ネットワークサーバコンピュータ112のスキャンチェーン最適化プログラム110bが、それぞれのハードドライブ916へとロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバ、またはその組み合わせを含み得る。
【0093】
外部コンポーネント904a、bの複数のセットの各々は、コンピュータディスプレイモニタ924、キーボード926、およびコンピュータマウス928を含み得る。外部コンポーネント904a、bはまた、タッチスクリーン、ビジュアルキーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインタフェースデバイスを含み得る。内部コンポーネント902a、bの複数のセットの各々はまた、コンピュータディスプレイモニタ924、キーボード926、およびコンピュータマウス928へとインタフェースするデバイスドライバ930を含む。デバイスドライバ930、R/Wドライブまたはインタフェース918、およびネットワークアダプタまたはインタフェース922は、ハードウェアおよび(ストレージデバイス916もしくはROM910またはその両方に格納された)ソフトウェアを含む。
【0094】
本開示はクラウドコンピューティング上で発明を実施するための形態を含むが、本明細書で記載される教示の実装は、クラウドコンピューティング環境に限定されることはないことが、前もって理解される。むしろ、本発明の実施形態は、現在知られるか後に開発される任意の他のタイプのコンピューティング環境と結合して実現されることができる。
【0095】
クラウドコンピューティングは、速やかに供給され得、最小の管理努力またはサービスのプロバイダとの相互作用でリリースされ得る、コンフィギュアブルなコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域、サーバ、プロセス、メモリ、格納、アプリケーション、バーチャルマシン、およびサービス)の共有されたプールへの便利なオンデマンドネットワークアクセスを可能にする、サービスデリバリのモデルである。クラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つのデプロイメントモデルを含み得る。
【0096】
特性は以下のとおりである。オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダによる人間の相互作用を必要とせず、必要なときに自動的に、サーバタイムおよびネットワークストレージなどの計算機能を一方的にセットアップし得る。ブロードネットワークアクセス機能は、異なる機種環境のシンクライアントまたはシッククライアントプラットフォーム(例えば、モバイルフォン、ラップトップ、およびPDA)による使用を促進する標準の機構によってネットワークおよびアクセスを介して利用可能である。リソースプーリング:プロバイダのコンピューティングリソースは、要求に従って動的に割り当ておよび再割り当てされる異なる物理的およびバーチャルリソースでマルチテナントモデルを使用する複数の消費者にサービスするようにプールされる。消費者が一般に、提供されるリソースの正確な位置に対する制御または知識を有しないが、より高いレベルの抽象化で位置を特定する(例えば、国、状態、またはデータセンタ)ことが可能であり得ることに、位置独立の意味がある。速やかな弾性:機能は、いくつかの場合には自動で、素早くスケーリングアウトするように、速やかにおよび弾性的に提供され得、素早くスケーリングインするように、速やかに解放され得る。消費者には、提供のために利用可能な機能は、しばしば限定されていないように見え、任意の時に任意の量で購入可能である。評価されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、プロセス帯域幅、およびアクティブなユーザアカウント)に適切な、あるレベルの抽象化で測定機能をレバレッジすることにより、自動的にリソース使用を制御および最適化する。リソース使用は、監視、制御、および報告されることができ、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を提供する。
【0097】
サービスモデルは以下のとおりである。ソフトウェアアズアサービス(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上またはハイブリッドクラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースのeメール)などのシンクライアントインタフェースを通じて、様々なクライアントデバイスからアクセス可能である。消費者は、限定されたユーザ特定のアプリケーションのコンフィギュレーション設定の可能な例外はあるが、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能さえも含む下層のクラウドインフラストラクチャ管理または制御を行わない。プラットフォームアズアサービス(PaaS):消費者に提供される機能は、消費者により生成されたか取得されたクラウドインフラストラクチャ上で、プロバイダによってサポートされるプログラミング言語およびツールを使用して生成されるアプリケーションをデプロイすることである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む下層のクラウドインフラストラクチャ管理または制御を行わないが、デプロイされるアプリケーションおよび、状況によっては環境コンフィギュレーションをホストするアプリケーション上で制御を行う。アナリティクスアズアサービス(AaaS):消費者に提供される機能は、アナリティクスプラットフォームにアクセスする、ウェブベースまたはクラウドベースのネットワーク(すなわち、インフラストラクチャ)を使用することである。アナリティクスプラットフォームは、アナリティクスソフトウェアリソースにアクセスすることを含んでよく、または、関連するデータベース、コーポラ(corpora)、サーバ、オペレーティングシステム、またはストレージへのアクセスを含んでよい。消費者は、データベース、コーポラ、サーバ、オペレーティングシステム、またはストレージを含む下層のウェブベースまたはクラウドベースのインフラストラクチャの管理または制御を行わないが、デプロイされるアプリケーションおよび、状況によっては環境コンフィギュレーションをホストするアプリケーション上で制御を行う。インフラストラクチャアズアサービス(IaaS):消費者に提供される機能は、消費者が任意のソフトウェアをデプロイおよび実行することが可能な、プロセス、ストレージ、ネットワーク、および他の基礎的なコンピューティングリソースを提供することであり、ソフトウェアにはオペレーティングシステムおよびアプリケーションを含み得る。消費者は、下層のクラウドインフラストラクチャの管理または制御を行わないが、オペレーティングシステム、ストレージ、デプロイされるアプリケーション上で制御を行い、状況によってはネットワークコンポーネント(例えば、ホストファイアウォール)の選択の限定される制御を行う。
【0098】
デプロイメントモデルは以下のとおりである。プライベートクラウド:クラウドインフラストラクチャは組織(organization)に関してのみ動作する。それは組織またはサードパーティによって管理され得、オンプレミスまたはオフプレミスで存在し得る。コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有される関連性(例えば、使命、セキュリティ要件、ポリシ、およびコンプライアンス検討)を有する特定のコミュニティをサポートする。それは組織またはサードパーティによって管理され得、オンプレミスまたはオフプレミスで存在し得る。パブリッククラウド:クラウドインフラストラクチャが、一般公衆または大規模な産業グループに利用可能にされ、クラウドサービスを売る組織によって所有される。ハイブリッドクラウド:クラウドインフラストラクチャは、一意的なエンティティを保つが、データおよびアプリケーションのポータビリティ(例えば、クラウド間のロードバランシングのためのクラウドバースティング)を可能とする、標準化されたかまたは所有権のある技術によって共に結び付けられている、2つまたはそれ以上のクラウド(プライベート、コミュニティ、または公衆)の複合である。
【0099】
クラウドコンピューティング環境は、無国籍状態、低結合性、モジュール性、および意味論的相互作用可能性によって指向されたサービスである。クラウドコンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0100】
ここで図5を参照すると、図示的なクラウドコンピューティング環境1000が示される。示されるように、クラウドコンピューティング環境1000は、例えばパーソナルデジタルアシスタント(PDA)またはセルラー電話1000A、デスクトップコンピュータ1000B、ラップトップコンピュータ1000C、もしくは自動車コンピュータシステム1000N、またはその組み合わせなどの、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信を行い得る、1つまたは複数のクラウドコンピューティングノード1050を含む。クラウドコンピューティングノード1050は、互いに通信し得る。それらは、上記本明細書で記載されるように、またはそれの組み合わせのように、プライベート、コミュニティ、公衆、またはハイブリッドクラウドなどの1つまたは複数のネットワークにおいて、物理的にまたは仮想的にグループ化され得る(図示せず)。これは、クラウドコンピューティング環境1000が、クラウド消費者がローカルコンピューティングデバイス上のリソースを維持する必要がないインフラストラクチャ、プラットフォーム、もしくはソフトウェアアズアサービス、またはその組み合わせを提供することを可能にする。図5に示されるコンピューティングデバイス1000A-Nのタイプは、例示のみを意図しており、そのコンピューティングノード1050およびクラウドコンピューティング環境1000は、任意のタイプのネットワークもしくはネットワークアドレス可能な接続、またはその組み合わせ(例えば、ウェブブラウザを使用して)を介して、任意のタイプの計算されるデバイスと通信し得ることが、理解される。
【0101】
ここで図6を参照すると、クラウドコンピューティング環境1000によって定められた機能的抽象化層1100のセットが示される。図6に示されたコンポーネント、層、および機能が、例示のみを意図するものであり、発明の実施形態がそれに限定されることはないことを、前もって理解されるべきである。示されるように、以下の層および対応する機能が提供される。
【0102】
ハードウェアおよびソフトウェア層1102はハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は以下を含む:メインフレーム1104、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ1106、サーバ1108、ブレードサーバ1110、ストレージデバイス1112、および、ネットワークならびにネットワークコンポーネント1114。いくつかの実施形態において、ソフトウェアコンポーネントはネットワークアプリケーションサーバソフトウェア1116およびデータベースソフトウェア1118を含む。
【0103】
仮想化層1120は抽象化層を提供し、そこから仮想エンティティの以下の例が提供される:仮想サーバ1122、仮想ストレージ1124、仮想プライベートネットワークを含む仮想ネットワーク1126、仮想アプリケーションおよびオペレーティングシステム1128、および仮想クライアント1130。
【0104】
一例において、管理層1132は以下に記載する機能を提供し得る。リソースプロビジョニング1134は、コンピューティングリソースの動的な調達、および、クラウドコンピューティング環境内でタスクを実行するために利用される他のリソースを提供する。測定およびプライシング1136は、リソースがクラウドコンピューティング環境内で利用される際のコストトラッキング、およびそれらのリソースの消費のビリングまたはインボイシングを提供する。一例において、これらのリソースはアプリケーションソフトウェアライセンスを有し得る。セキュリティは、クラウド消費者およびタスクのためのID認証、ならびに、データおよび他のリソースに関する保護を提供する。ユーザポータル1138は、消費者およびシステム管理者に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理1140は、必要とされるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービス品質保証(SLA)プランニングおよびフルフィルメント1142は、将来の要求がSLAに従って予測されるクラウドコンピューティングリソースのための事前構成および調達を提供する。
【0105】
ワークロード層1144は、クラウドコンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例は、以下を含む。マッピングおよびナビゲーション1146、ソフトウェア開発およびライフサイクル管理1148、仮想クラスルームエデュケーションデリバリ1150、データ分析プロセス1152、トランザクションプロセス1154、およびスキャンチェーン最適化1156。スキャンチェーン最適化プログラム110a、110bは、Q学習ベースの強化学習を使用するスキャンチェーンワイヤ長を最適化する方法を提供する。
【0106】
本発明は、任意の可能な技術的詳細の統合レベルの、システム、方法、もしくはコンピュータプログラム製品、またはその組み合わせであり得る。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるコンピュータ可読プログラム命令をそこに有する、コンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0107】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および格納し得る、有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、ただしこれに限定されないが、電気的ストレージデバイス、磁気的ストレージデバイス、光学的ストレージデバイス、電磁気的ストレージデバイス、半導体ストレージデバイス、または、それらの任意の好適な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例の網羅的な列挙は、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたはそこに記録された命令を有する溝内の隆起構造などの機械的に暗号化されたデバイス、および、上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用されるとき、それ自体が、無線波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通る光パルス)、または電線を通って伝送される電気信号などの、一時的な信号であると解釈されるべきではない。
【0108】
本明細書で記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへと、または、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくは無線ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージデバイスへとダウンロードされ得る。当該ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバ、またはその組み合わせを備え得る。各コンピューティング/処理デバイスにおけるネットワークアダプターカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するためのコンピュータ可読プログラム命令を転送する。
【0109】
本発明の操作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令-組-アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態-組データ、集積回路に関するコンフィギュレーションデータ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、手続き型プログラミング言語、"C"プログラミング言語、pythonプログラミング言語、または類似のプログラミング言語などの、1つまたは複数プログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行され得るか、スタンドアロンのソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行され得るか、部分的にユーザのコンピュータ上で、かつ、部分的にリモートコンピュータ上で実行され得るか、または、リモートコンピュータもしくはサーバ上で完全に実行され得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、接続は、外部コンピュータ(例えば、インターネットサービスプロバイダを使用するインターネットを通じて)行われてもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、本発明の態様を実行するべく、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人設定することにより、コンピュータ可読プログラム命令を実行してよい。
【0110】
本発明の態様は、本発明の実施形態に記載の方法、装置(システム)およびコンピュータプログラム製品の、フローチャートもしくはブロック図またはその両方に関連して本明細書に記載される。フローチャートもしくはブロック図またはその両方の各ブロック、およびフローチャートもしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現され得ることが理解されるであろう。
【0111】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置を介して実行する命令が、フローチャート及び/またはブロックダイヤグラムブロックまたは複数のブロックにおいて特定される機能/動作を実装する手段を生成するように、汎用コンピュータ、専用コンピュータ、または機械を生じさせる他のプログラム可能なデータ処理装置のプロセッサに提供され得る。また、これらのコンピュータ可読プログラム命令は、格納された命令を有するコンピュータ可読記憶媒体が、フローチャート及び/またはブロックダイヤグラムブロックまたは複数のブロックにおいて特定される機能/動作の態様を実現する命令を含む製品を有するように、コンピュータ、プログラム可能なデータ処理装置、もしくは他のデバイス、またはその組み合わせが特別な方法で機能するように導き得るコンピュータ可読記憶媒体に格納され得る。
【0112】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能な装置、または、他のデバイス上で実行する命令が、フローチャート及び/またはブロックダイヤグラムブロックまたは複数のブロックにおいて特定される機能/動作を実装するように、一連の動作段階を、コンピュータ、他のプログラム可能な装置、またはコンピュータに実装されるプロセスを生じさせる他のデバイス上で実行させるように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされ得る。
【0113】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態に記載のシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、および操作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、特定される(1つまたは複数の)論理機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表す場合がある。いくつかの代替的な実装において、ブロックに記載された機能は、図に記載された順序から外れて生じてもよい。例えば、連続的に示される2つのブロックは、実際には、実質的に並行して実行されてよく、あるいは、これらブロックは、関連する機能性に依存して、逆順序で実行される場合があってもよい。また、ブロック図及び/またはフローチャート図の各ブロック、ならびにブロック図及び/またはフローチャート図におけるブロックの組み合わせは、特定される機能もしくは行為を実行するまたは専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースのシステムによって実装され得ることに留意されたい。
【0114】
本発明の様々な実施形態の記載は、図示の目的で示されてきたが、網羅的であること、または、開示される実施形態に限定されることを意図するものではない。記載される実施形態の範囲から外れることなく、多くの修正および変形が、当技術分野における当業者には明らかであろう。本明細書において使用される用語は、実施形態、実際のアプリケーション、または市場に発見される技術に対する技術的改善の原理を最もよく説明するよう、または当技術分野における他の当業者が本明細書に開示の実施形態を理解することを可能とするように選択したものである。
本明細書によれば、以下の各項目もまた開示される。
[項目1]
Q学習を用いたスキャンチェーンワイヤ長の最適化の方法であって、
ルートノードからルートノード詳細を取得する段階と、
前記ルートノードの接続性を最適化する段階と、
前記ルートノードの各々に関して、最良の始点ノードおよび最良の終点ノードを識別する段階と、
前記ルートノードの各々における子ノードを最適化する段階と、
全体巡回のワイヤ長が最近傍より短いか長いかを判断する段階と、
解を適用するかまたはスキップする段階と、を備える、方法。
[項目2]
前記ルートノードの前記接続性を最適化する段階はさらに、
Qテーブルにおける値をゼロまたは一様値に設定することによって前記Qテーブルを初期化する段階と、
2つのノードの間の重みに基づいて動作を選択するか、またはランダムに動作を選択する段階と、
選択されたノードを追加することによって前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
ルートノード巡回ワイヤ長に基づいて前記Qテーブルを更新する段階と、を備える、
項目1に記載の方法。
[項目3]
前記動作を選択する段階はさらに、
前記動作がランダムに選択されると判断する段階と、
N個の最近傍のノードを発見する段階と、
前記N個の最近傍のノードが訪問されていないと判断する段階と、
前記N個の最近傍のノードに最も近い係数を評価する段階と、
前記N個の最近傍のノードが予め定められた限度内にあると判断する段階と、
前記N個の最近傍のノードを選択リストに追加する段階と、
前記選択リストからランダムノードを選択する段階と、
を備える、項目2に記載の方法。
[項目4]
前記動作を選択する段階はさらに、
前記動作を選択することがランダムでないと判断する段階と、
現在の探索において訪問されていないノードを選択する段階と、
現在のQ値と前記ワイヤ長とに基づいて成功の確率を計算する段階と、
計算された前記成功の確率に基づいてノードを選択する段階と、を備える、
項目2に記載の方法。
[項目5]
前記ルートノードの各々における前記子ノードの最適化がさらに、
前記ルートノードの各々に関するQテーブルを初期化する段階と、
固定された始点ノードおよび終点ノードに基づいて、または、最適な始点ノードおよび終点ノードに基づいて動作を選択する段階と、
選択されたノードを追加することによって前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
子ノード巡回における前記子ノードの各々に関して前記Qテーブルを更新する段階と、を備える、
項目1から4のいずれか一項に記載の方法。
[項目6]
前記ルートノードの各々に関して、前記最良の始点ノードおよび前記最良の終点ノードを識別する段階がさらに、
ルートノード巡回を読み出す段階と、
前記ルートノード巡回において第1のノードを選択する段階と、
前記ルートノード巡回において第2のノードを選択する段階と、
前記子ノードの間、または前記ルートノード巡回における前記第1のノードおよび前記第2のノードの間の全ての可能な接続の重みを計算する段階と、
最良の重みによって接続を選択する段階と、
終点ノードとして1番目の子ノードを、次の始点ノードとして2番目の子ノードを設定する段階と、
前記次の始点ノードが前記ルートノード巡回上の最後のノードであると判断する段階と、
前記ルートノード巡回の最良の始点-終点ノード部分を選択する段階と、を有する、
項目1から5のいずれか一項に記載の方法。
[項目7]
前記ルートノードが、共に制限されることが必要な一群のラッチの畳み込まれた表現である、項目1から6のいずれか一項に記載の方法。
[項目8]
Q学習を用いたスキャンチェーンワイヤ長の最適化のためのコンピュータシステムであって、
1つまたは複数のプロセッサ、1つまたは複数のコンピュータ読み取り可能メモリ、1つまたは複数のコンピュータ読み取り可能な有形ストレージ媒体、および、前記1つまたは複数のコンピュータ読み取り可能メモリの少なくとも1つを介しての前記1つまたは複数のプロセッサの少なくとも1つによる実行のための、前記1つまたは複数のコンピュータ読み取り可能な有形ストレージ媒体の少なくとも一方上に格納されたプログラム命令を有し、
前記コンピュータシステムが以下の方法を実行可能であり、前記方法は、
ルートノードからのルートノード詳細を取得する段階と、
前記ルートノードの接続性を最適化する段階と、
前記ルートノードの各々に関する最良の始点ノードおよび最良の終点ノードを識別する段階と、
前記ルートノードの各々における子ノードを最適化する段階と、
全体巡回のワイヤ長が最近傍より短いか長いことを判断する段階と、
解を適用するかまたはスキップする段階と、を備える、
コンピュータシステム。
[項目9]
前記ルートノードの前記接続性を最適化する段階はさらに、
Qテーブルの値をゼロまたは一様値に設定することによって前記Qテーブルを初期化する段階と、
2つのノードの間の重みに基づいて動作を選択するか、またはランダムに動作を選択する段階と、
選択されたノードを追加することによって前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
ルートノード巡回ワイヤ長に基づいて前記Qテーブルを更新する段階と、を含む、
項目8に記載のコンピュータシステム。
[項目10]
前記動作を選択する段階はさらに、
前記動作を選択することがランダムであると判断する段階と、
N個の最近傍のノードを発見する段階と、
前記N個の最近傍のノードが訪問されていないと判断する段階と、
前記N個の最近傍のノードに関して最も近い係数を評価する段階と、
前記N個の最近傍のノードが予め定められた限度内にあると判断する段階と、
前記N個の最近傍のノードを選択リストに追加する段階と、
前記選択リストからランダムノードを選択する段階と、を含む、
項目9に記載のコンピュータシステム。
[項目11]
前記動作を選択する段階がさらに、
前記動作の選択がランダムでないと判断する段階と、
現在の探索において訪問されていないノードを選択する段階と、
現在のQ値および前記ワイヤ長に基づいて成功の確率を計算する段階と、
計算された前記成功の確率に基づいてノードを選択する段階と、を備える、
項目9に記載のコンピュータシステム。
[項目12]
前記ルートノードの各々における前記子ノードを最適化する段階は、さらに、
前記ルートノードの各々に関してQテーブルを初期化する段階と、
固定された始点ノードおよび終点ノードに基づいて、または、最適な始点ノードおよび終点ノードに基づいて、動作を選択する段階と、
選択されたノードを追加することによって、前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって、報酬を評価する段階と、
子ノード巡回における前記子ノードの各々に関して前記Qテーブルを更新する段階と、を備える、
項目8から11のいずれか一項に記載のコンピュータシステム。
[項目13]
前記ルートノードの前記各々に関する前記最良の始点ノードおよび前記最良の終点ノードを識別する段階が、さらに、
ルートノード巡回を読み出す段階と、
前記ルートノード巡回における第1のノードを選択する段階と、
前記ルートノード巡回における第2のノードを選択する段階と、
前記子ノードの間、または前記ルートノード巡回における前記第1のノードおよび前記第2のノードの間の全ての可能な接続の重みを計算する段階と、
最良の重みによって接続を選択する段階と、
終点ノードとして1番目の子ノードを、次の始点ノードとして2番目の子ノードを設定する段階と、
前記次の始点ノードが前記ルートノード巡回上の最後のノードであると判断する段階と、
前記ルートノード巡回の最良の始点-終点ノード部分を選択する段階と、を有する、
項目8から12のいずれか一項に記載のコンピュータシステム。
[項目14]
前記ルートノードが、共に制限されることが必要な一群のラッチの畳み込まれた表現である、項目8から13のいずれか一項に記載のコンピュータシステム。
[項目15]
Q学習を用いたスキャンチェーンワイヤ長の最適化のためのコンピュータプログラムであって、
1つまたは複数のコンピュータ読み取り可能有形ストレージ媒体と、前記1つまたは複数のコンピュータ読み取り可能有形ストレージ媒体の少なくとも1つに格納されたプログラム命令とを含み、前記プログラム命令は、以下の方法をプロセッサに実行させるようにプロセッサによって実行可能であり、前記方法は、
ルートノードからルートノード詳細を取得する段階と、
前記ルートノードの接続性を最適化する段階と、
前記ルートノードの各々に関する最良の始点ノードおよび最良の終点ノードを識別する段階と、
前記ルートノードの各々における子ノードを最適化する段階と、
全体巡回のワイヤ長が最近傍より短いか長いことを判断する段階と、
解を適用するかまたはスキップする段階と、を備える、
コンピュータプログラム。
[項目16]
前記ルートノードの前記接続性を最適化する段階はさらに、
Qテーブルの値をゼロまたは一様値に設定することによって前記Qテーブルを初期化する段階と、
2つのノードの間の重みに基づいて動作を選択するか、またはランダムに動作を選択する段階と、
選択されたノードを追加することによって前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって報酬を評価する段階と、
ルートノード巡回ワイヤ長に基づいて前記Qテーブルを更新する段階と、を含む、
項目15に記載のコンピュータプログラム。
[項目17]
前記動作を選択する段階はさらに、
前記動作を選択することがランダムであると判断する段階と、
N個の最近傍のノードを発見する段階と、
前記N個の最近傍のノードが訪問されていないと判断するする段階と、
前記N個の最近傍のノードに関して最も近い係数を評価する段階と、
前記N個の最近傍のノードが予め定められた限度内にあると判断する段階と、
前記N個の最近傍のノードを選択リストに追加する段階と、
前記選択リストからランダムノードを選択する段階と、を含む、
項目16に記載のコンピュータプログラム。
[項目18]
前記動作を選択する段階がさらに、
前記動作の選択がランダムでないと判断する段階と、
現在の探索において訪問されていないノードを選択する段階と、
現在のQ値および前記ワイヤ長に基づいて成功の確率を計算する段階と、
計算された前記成功の確率に基づいてノードを選択する段階と、を備える、
項目16に記載のコンピュータプログラム。
[項目19]
前記ルートノードの各々における前記子ノードを最適化する段階は、さらに、
前記ルートノードの各々に関してQテーブルを初期化する段階と、
固定された始点ノードおよび終点ノードに基づいて、または、最適な始点ノードおよび終点ノードに基づいて、動作を選択する段階と、
選択されたノードを追加することによって、前記動作を実行する段階と、
ルートノード巡回の合計ワイヤ長を評価することによって、報酬を評価する段階と、
子ノード巡回における前記子ノードの各々に関して前記Qテーブルを更新する段階と、を備える、
項目15から18のいずれか一項に記載のコンピュータプログラム。
[項目20]
前記ルートノードの前記各々に関する前記最良の始点ノードおよび前記最良の終点ノードを識別する段階が、さらに、
ルートノード巡回を読み出す段階と、
前記ルートノード巡回における第1のノードを選択する段階と、
前記ルートノード巡回における第2のノードを選択する段階と、
前記子ノードの間、または前記ルートノード巡回における前記第1のノードおよび前記第2のノードの間の全て可能な接続の重みを計算する段階と、
最良の重みによって接続を選択する段階と、
終点ノードとして1番目の子ノードを、次の始点ノードとして2番目の子ノードを設定する段階と、
前記次の始点ノードが前記ルートノード巡回上の最後のノードであると判断する段階と、
前記ルートノード巡回の最良の始点-終点ノード部分を選択する段階と、を有する、
項目15から19のいずれか一項に記載のコンピュータプログラム。
図1
図2A
図2B
図3A
図3B
図3C
図4
図5
図6