(57)【特許請求の範囲】
【請求項１】
第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成するラベル生成部と、
欠陥に係る情報が付与された第二のレイアウトパターンと、前記第一のレイアウトパターンとの類似度を、前記ラベルを用いて算出する算出部と、
前記類似度に基づいて、前記第一のレイアウトパターンの欠陥を検証する検証部と、
を有することを特徴とするレイアウト検証装置。
【請求項２】
前記ラベル生成部は、自ノードの属性情報が表現された所定長のビット列と、前記隣接するノードの属性情報が表現された所定長のビット列とを、重なりなく結合して前記ラベルを生成する
ことを特徴とする請求項１に記載のレイアウト検証装置。
【請求項３】
前記ラベル生成部は、前記属性情報として、配線であるかビアであるかを示す情報、凸点であるか凹点であるかを示す情報、パターン中心からの距離、隣接するノードの個数、隣接するノード間の最短距離のいずれか一つまたは複数に基づいて、前記ラベルを生成する
ことを特徴とする請求項１または２に記載のレイアウト検証装置。
【請求項４】
複数の前記第二のレイアウトパターンと欠陥の有無とを対応付けたデータセットと、前記第二のレイアウトパターン同士の類似度に基づく類似度行列とを用いて、前記欠陥の有無を識別する識別モデルを生成する識別モデル生成部をさらに有し、
前記検証部は、前記識別モデルを用いて、前記第一のレイアウトパターンの欠陥を検証する
ことを特徴とする請求項１〜３の何れか一つに記載のレイアウト検証装置。
【請求項５】
前記第二のレイアウトパターンを、前記第一のレイアウトパターンとの前記類似度が高い順に提示する提示部をさらに有する
ことを特徴とする請求項１〜４の何れか一つに記載のレイアウト検証装置。
【請求項６】
コンピュータが、
第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成し、
欠陥に係る情報が付与された第二のレイアウトパターンと、前記第一のレイアウトパターンとの類似度を、前記ラベルを用いて算出し、
前記類似度に基づいて、前記第一のレイアウトパターンの欠陥を検証する
処理を実行することを特徴とするレイアウト検証方法。
【請求項７】
コンピュータが、
第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成し、
欠陥に係る情報が付与された第二のレイアウトパターンと、前記第一のレイアウトパターンとの類似度を、前記ラベルを用いて算出し、
前記類似度に基づいて、前記第一のレイアウトパターンの欠陥を検証する
処理を実行することを特徴とするレイアウト検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト検証装置、レイアウト検証方法およびレイアウト検証プログラムに関する。
【背景技術】
【０００２】
近年ＬＳＩ（Large  Scale  Integration）等の集積回路は、微細化技術の発展により、トランジスタや配線の寸法が光の波長よりも小さくなっている。この影響により、リソグラフィ工程において、設計されたレイアウトパターンどおりに形成されたマスクにより露光を行っても、光近接効果（Optical  Proximity  Effect）により、レイアウトパターンどおりに露光できない箇所が集積回路に生じる場合がある。例えば、レイアウトパターンどおりに形成されたマスクによりウエハ上に配線パターンを露光しても、ウエハ上に形成される配線パターンが細かくなって断線したり、逆に配線パターンが太くなってショートしたり、といった欠陥が発生する場合がある。
【０００３】
また、レイアウトパターンを事前に検証し、リソグラフィ欠陥の有無を判定することにより、ＬＳＩ製造段階から設計段階への手戻りを防止する技術が知られている。このようなレイアウトパターンの設計検証は、リソグラフィシミュレーションを用いることで厳密な検証が可能であるが、これには多大な計算リソースを必要とする。一方、高速に検証を行うにはパターンマッチングと呼ばれる手法が用いられる。パターンマッチングとして、探索対称画像（テンプレート画像）を撮影画像等の非検証画像の全体内で網羅的に探すといった手法を用いることが一般的であるが、テンプレート画像との微小な差異がある場合に欠陥パターンと認識するかどうかの判断が難しい。欠陥の見逃しをゼロにするために、パターン間の微少な差異を許容すると、多数の欠陥ではない箇所が欠陥箇所として識別されることになり、検証工数の増大につながる。
【０００４】
このため、例えば、リソグラフィ工程において欠陥が発生する配線層および配線層に隣接する隣接配線層の欠陥箇所の周辺のレイアウトパターンの特徴を示す特徴情報を抽出し、抽出した特徴情報に基づいて欠陥箇所を識別する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２３３０６９号公報
【特許文献２】特開２０１３−１７５０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の従来技術では、レイアウトパターンを精度よく検証できるとは限らない。具体的には、上記の従来技術は、レイアウトパターンに基づくグラフにおいて、例えば、ノード数やエッジ数等の特徴項目をそれぞれ抽出し、固定長の特徴ベクトルとして表現する。上記の従来技術はパターンの隣接関係をグラフによって精度良く表現することができるが、グラフの接続情報を特徴ベクトルとして抽出することが難しいという問題がある。グラフの各ノードがどのノードと接続するかを特徴として抽出すると、かかる特徴項目の数が増えるという問題だけでなく、グラフのノード数に応じて項目数が異なるため固定長の特徴ベクトルで表現することが難しいという問題がある。また、一般的に特徴項目の増大は、学習データから識別モデルを生成する際にオーバーフィテッィングを起こし、未知のパターンに対する識別精度の低下につながる可能性がある。つまり、上記の従来技術では、レイアウトパターンを精度よく検証できるとは限らない。
【０００７】
一側面では、レイアウトパターンを精度よく検証できるレイアウト検証装置、レイアウト検証方法およびレイアウト検証プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、レイアウト検証装置は、ラベル生成部と、算出部と、検証部とを有する。ラベル生成部は、第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成する。算出部は、欠陥に係る情報が付与された第二のレイアウトパターンと、第一のレイアウトパターンとの類似度を、ラベルを用いて算出する。検証部は、類似度に基づいて、第一のレイアウトパターンの欠陥を検証する。
【発明の効果】
【０００９】
レイアウトパターンを精度よく検証できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、レイアウト検証装置の全体構成を示す図である。
【図２】図２は、既知パターンデータに含まれる既知パターンの一例を示す図である。
【図３Ａ】図３Ａは、属性情報とビット列との対応付けの一例を示す図である。
【図３Ｂ】図３Ｂは、頂点種別の一例を示す図である。
【図４】図４は、ドロネー三角分割の流れを説明する図である。
【図５】図５は、属性情報に基づくノードラベルの生成方法を説明する図である。
【図６Ａ】図６Ａは、自ノードと隣接ノードとの接続関係を示す図である。
【図６Ｂ】図６Ｂは、自ノードラベルに隣接情報を付与する方法を説明する図である。
【図７】図７は、２つのグラフにおけるノードラベルを比較する図である。
【図８】図８は、２つのグラフの類似度算出方法を説明する図である。
【図９】図９は、識別モデル生成に関する全体的な処理の流れを示したフローチャートである。
【図１０】図１０は、自ノードの属性情報に基づくラベル生成手順を示すフローチャートである。
【図１１】図１１は、隣接情報付与手順を示すフローチャートである。
【図１２】図１２は、類似度算出の手順を示すフローチャートである。
【図１３】図１３は、未知パターンの欠陥に関する情報と、既知パターンを未知パターンとの類似度の高い順に表示した画面の一例を示す図である。
【図１４】図１４は、未知パターンにおける欠陥の検証に関する全体的な処理の流れを示したフローチャートである。
【図１５】図１５は、レイアウト検証プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかるレイアウト検証装置、レイアウト検証方法およびレイアウト検証プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
実施例１に係るレイアウト検証装置１０について説明する。図１は、レイアウト検証装置１０の全体構成を示す図である。レイアウト検証装置１０は、欠陥の有無が未知のレイアウトパターンにおいて、その欠陥を検証する装置である。そして、図１に示すように、レイアウト検証装置１０は、欠陥の検証に用いる識別モデルを生成する識別モデル生成装置２０と、実際に欠陥の検証を行うレイアウト検証部６０によって構成される。まず、識別モデル生成装置２０について説明する。なお、以下の実施例では、欠陥の有無が未知のレイアウトパターンを「未知パターン」、欠陥に係る情報が付与されている、すなわち、欠陥の有無が既知のレイアウトパターンを「既知パターン」と表記する場合がある。
【００１３】
（識別モデル生成装置）
識別モデル生成装置２０は、例えば、パーソナルコンピュータやサーバコンピュータ等のコンピュータなどである。識別モデル生成装置２０は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例１では、識別モデル生成装置２０を１台のコンピュータとした場合を例として説明する。識別モデル生成装置２０は、ＣＡＤ（Computer  Aided  Design）装置などの設計者による集積回路の設計を支援する回路設計ソフトウェアが動作する設計装置であってもよい。図１に示すように、識別モデル生成装置２０は、記憶部３０と、制御部３１とを有する。なお、図示しないが、識別モデル生成装置２０は、入力部、表示部および通信Ｉ／Ｆ（インタフェース）を有してもよい。
【００１４】
記憶部３０は、ハードディスク、ＳＳＤ（Solid  State  Drive）、光ディスクなどの記憶装置である。なお、記憶部２３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。
【００１５】
記憶部３０は、制御部３１で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。例えば、記憶部３０は、識別モデル生成に用いる各種のプログラムを記憶する。さらに、記憶部３０は、制御部３１で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部３０は、既知パターンデータ４０と、ビットデータ４１と、類似度データ４２と、識別モデル情報４３とを有する。
【００１６】
既知パターンデータ４０は、既知パターン集合に関する一連の情報を記憶したデータである。そして、以下の実施例では、識別モデル生成装置２０は、既知パターン集合として既知パターン集合Ｐ１，・・・，Ｐｎの入力を受け付けたものとして説明する。既知パターン集合Ｐ１，・・・，Ｐｎは、識別モデルの生成対象として入力されるものである。
【００１７】
既知パターンデータ４０は、既知パターン集合Ｐ１，・・・，Ｐｎにおいて、各既知パターンを構成する矩形や多角形の頂点座標リストを含む。例えば、各既知パターンＰｉ（ｉ＝１，・・・，ｎ）を構成する矩形や多角形の集合を、Ｐｉ：｛Ｐ１，Ｐ２，・・・，Ｐｋ，ＰＮ｝と表すことができる。また、多角形Ｐｋの頂点座標を、Ｐｋ=｛（ｘｋ１，ｙｋ１），・・・，（ｘｋｎ，ｙｋｎ），Ｌｋ｝と表すことができる。Ｌｋは、多角形Ｐｋが存在する配線層を識別するための記号である。
【００１８】
図２は、既知パターンデータ４０に含まれる既知パターンの一例を示す図である。図２の例では、既知パターン毎に、既知パターンを構成する各構成部品の頂点座標リストが記録されている。この頂点座標リストには、構成部品を示す図形のそれぞれの頂点座標が１行毎に記録されている。例えば、図２の例では、既知パターンPATTERN1の頂点座標リストとして、矩形RECT1の４つの頂点座標や、多角形POLY2の７つの頂点座標が示されている。頂点座標リストとしては、ＧＤＳ（Graphic  Data  System）、ＯＡＳＩＳ（Open  Artwork  System  Interchange  Standard）等の既存の図形データフォーマットを利用してもよい。
【００１９】
また、既知パターンデータ４０には、各既知パターンにおける欠陥の有無に関する情報（以下の実施例において、「欠陥有無情報」と表記する場合がある）も含まれる。例えば、既知パターンデータ４０には、既知パターン集合Ｐ１，・・・，Ｐｎに対応付けて、欠陥有無情報ｅ１，・・・，ｅｎも含まれる。なお、ここでは、欠陥有無情報として概念的な記号を用いているが、実際には、例えば、欠陥を有するレイアウトパターンには「ＹＥＳ」、欠陥なしのレイアウトパターンには「ＮＯ」が対応付けられることが考えられる。また、欠陥有無情報は、上記の座標等とともに入力されるものである。
【００２０】
また、既知パターンデータ４０には、グラフ生成部５１により各既知パターンから生成された配線層毎のドロネー三角形のグラフ情報も含まれる。さらに、既知パターンデータ４０には、かかるグラフの各ノードを識別するためのラベルであって、各ノードの属性情報と各ノードに隣接するノード（隣接ノード）の属性である隣接情報を考慮したラベルも含まれる。レイアウトパターンや、そこから生成されるドロネー三角形は一種のグラフととらえることができ、そのようなグラフの頂点はノードと呼ばれる。なお、以下の実施例では、ノードのラベルを「ノードラベル」と表記する場合がある。ノードラベルは、後述する自ノード部５２ａにより基盤が生成され、隣接ノード部５２ｂによりさらに処理が加えられることで生成される。
【００２１】
例えば、既知パターン集合Ｐ１，・・・，Ｐｎから生成されたドロネー三角形Ｄ１，・・・，Ｄｎにおいて、各ドロネー三角形Ｄｉ＝（Ｖ，Ｅ）（ｉ＝１，・・・，ｎ）のように形式的に定義することができる。Ｖは、ノード集合であり、Ｖ：｛ｖ１，ｖ２，・・・，ｖｎ，ｖｉ＝（ｘｉ，ｙｉ）｝と表すことができる。例えば、ノードｖｉは、座標（ｘｉ，ｙｉ）に位置することを示す。Ｅは、枝集合であり、Ｅ＝｛ｅ１，ｅ２，・・・，ｅｍ，ｅｊ＝（ｖｊ１，ｖｊ２）｝と表すことができる。つまり、各枝ｅｊは、２つのノードｖｊ１とｖｊ２の間の無向枝であることを示す。
【００２２】
また、ドロネー三角形Ｄ１，・・・，Ｄｎの各ノードに対して、当該ノードの属性情報に基づいてラベルが生成された各ドロネー三角形Ｄｉは、Ｄｉ＝（Ｖ，Ｅ，ｌ）（ｉ＝１，・・・，ｎ）のように形式的に定義することができる。ＶおよびＥは、上記の通りである。ｌは、各ノードラベルを示し、ｌ：｛ｌ１，ｌ２，・・・，ｌｎ，ｌｉ∈Σ，Σ＝｛０，１｝ｐ｝と表すことができる。つまり、ノードラベルｌは、ｌ１からｌｎ要素を含み、長さｐのビット列で表現されることを示す。
【００２３】
また、ドロネー三角形Ｄ１，・・・，Ｄｎの各ノードラベル対して、さらに隣接情報が付与された各ドロネー三角形ＤＬｉも、例えば、ＤＬｉ＝（Ｖ，Ｅ，ｌ）（ｉ＝１，・・・，ｎ）のように形式的に定義することができる。ＶおよびＥは、上記の通りである。各ノードラベルｌは、ｌ１からｌｎ要素を含み、さらに隣接情報が考慮されたためにビット数が増える。このときの、ビット列の長さをｑとすると、ｌ：｛ｌ１，ｌ２，・・・，ｌｎ，ｌｉ∈Σ，Σ＝｛０，１｝ｑ｝と表すことができる。すなわち、既知パターンデータ４０は、ドロネー三角形ＤｎおよびＤＬｎに関する情報を記憶したデータである。
【００２４】
なお、後述するが、レイアウト検証部６０の算出部９３は、かかる既知パターンデータ４０から、例えば、既知パターン毎にノードラベル情報を取得し、既知パターンと未知パターンとの類似度を算出する。
【００２５】
ビットデータ４１は、自ノード部５２ａがノードそれぞれについて、自ノードの属性情報をビット列で表現したラベルを生成する際に用いるデータである。すなわち、ビットデータ４１は、ラベル生成のためのルールを記憶したデータといえ、例えば、属性情報毎に所定のビット列が対応付けられている。
【００２６】
後述するが、自ノード部５２ａは、自ノードの属性情報に基づくラベルを生成する。その際に、自ノード部５２ａは、かかるビットデータ４１を用いる。具体的には、自ノード部５２ａは、まず、自ノードの属性情報を特定する。そして、自ノード部５２ａは、特定した属性情報に対応するビット列をビットデータ４１から用いることにより、ビット列で表現したラベルを生成し、生成したラベルを既知パターンデータ４０として各既知パターンに対応付けて格納する。なお、自ノードとは、ラベル生成対象または以下に示す隣接情報付与対象となっているノードを示す。
【００２７】
ここで、図３Ａは、ノードの属性情報とビット列との対応付けの一例を示す図である。図３Ａに示すように、ノードの属性情報としては、「頂点種別」、「パターン中心からの距離」、「隣接ノード数」および「隣接ノード間最短距離」がある。
【００２８】
例えば、図３ＡのデータＤ１に示すように、ビットデータ４１は、頂点種別とビット列とを対応付けて記憶する。上述したように、頂点とはノードのことを指す。ここで、図３Ｂは、頂点種別の一例を示す図である。頂点種別としては、図３Ｂのように、凸頂点、凹頂点、ビア頂点がある。また、これらを組み合わせて、凸頂点とビア頂点との両方に対応する頂点（凸頂点＋ビア頂点）、凹頂点とビア頂点との両方に対応する頂点（凹頂点＋ビア頂点）がある。そして、各頂点種別に対応するビット列は、任意に定められてよいが重複はしない。
【００２９】
また、図３ＡのデータＤ２に示すように、ビットデータ４１は、パターン中心から自ノードまでの距離とビット列とを対応付けて記憶する。各パターン中心からの距離に対応するビット列は、任意に定められてよいが重複はしない。
【００３０】
また、図３ＡのデータＤ３に示すように、ビットデータ４１は、ラベル生成対象のノードに対する隣接ノード数とビット列とを対応付けて記憶する。各隣接ノード数に対応するビット列は、任意に定められてよいが重複はしない。
【００３１】
また、図３ＡのデータＤ４に示すように、ビットデータ４１は、自ノードとの距離が最短である隣接ノードとの距離である隣接ノード間最短距離と、ビット列とを対応付けて記憶する。各隣接ノード間最短距離に対応するビット列は、任意に定められてよいが重複はしない。
【００３２】
なお、属性情報は、必ずしも図３Ａに示す４種類の属性情報だけである必要はない。例えば、属性情報として、「パターン中心からの方向」、「異図形ノード間最短距離」、「異図形ノード間最長距離」等があってもよい。「パターン中心からの方向」は、パターン中心から見た自ノードの方向を示す。また、図３Ｂにおいて配線を示すパターンＡ１およびＡ２は、異図形ととらえることができる。つまり、「異図形ノード間最短距離」は、自ノードを含む図形から見て、自ノードを含まない図形のノードの中で、自ノードとの距離が最短であるノードとの距離を示す。一方、「異図形ノード間最長距離」は、自ノードを含む図形から見て、自ノードを含まない図形のノードの中で、自ノードとの距離が最長であるノードとの距離を示す。そして、それぞれの属性情報についてビット列を対応付けたテーブルがビットデータ４１としてさらに設定されてもよい。
【００３３】
図１に戻り、類似度データ４２は、既知パターン集合Ｐ１，・・・，Ｐｎにおける２つのレイアウトパターンの組合せであって、成立する全ての組合せにおける類似度をその組み合わせに対応付けて記憶したデータである。類似度データ４２は、後述する算出部５３により算出される。例えば、算出部５３により既知パターンＰ１とＰ２との類似度が「０．６６」と算出された場合には、「０．６６」が既知パターンＰ１とＰ２との組み合わせに対応付けられ類似度データ４２に格納される。また、類似度は、数値「０」〜「１」の範囲で表現され、数値「１」に近付くほど類似度は高くなる。
【００３４】
識別モデル情報４３は、欠陥の検証に用いる識別モデルを記憶したデータである。識別モデル情報４３には、後述する識別モデル生成部５４により生成され、後述する式（４）で表現される。例えば、識別モデル４３は、式（４）に示される重み係数αｉの値と、フィッティング係数βとを対応付けたものとして格納される。
【００３５】
制御部３１は、識別モデル生成装置２０を制御するデバイスである。制御部３１としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を採用できる。制御部３１は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部３１は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部３１は、受付部５０と、グラフ生成部５１と、ラベル生成部５２と、算出部５３と、識別モデル生成部５４とを有する。
【００３６】
受付部５０は、各種の受付を行う。例えば、受付部５０は、図示しない所定の入力部を介して入力された既知パターン集合や、各既知パターンにおける欠陥有無情報を受け付ける。そして、受付部５０は、受け付けた既知パターンを既知パターンデータ４０として格納する。なお、受付部５０は、入力部７０を介して各種の受付を行うように構成されてもよい。
【００３７】
グラフ生成部５１は、レイアウトパターンを構成する図形の頂点を結んでドロネー三角分割（Delaunay  triangulation）を配線層毎に行って、図形の頂点を結んで得られる複数の三角形を求める。このような三角形は、ドロネー三角形と呼ばれる。グラフ生成部５１は、例えば、既知パターン集合Ｐ１，・・・，Ｐｎそれぞれから生成したドロネー三角形Ｄ１，・・・，Ｄｎに関する情報（座標等）を既知パターンデータ４０として、既知パターン集合Ｐ１，・・・，Ｐｎのそれぞれに対応付けて格納する。
【００３８】
図４は、ドロネー三角分割の流れを説明する図である。図４（Ａ）は、配線パターンの一例を示している。図４（Ｂ）は、図４（Ａ）に示す配線パターンに対し生成されるボロノイ図（Voronoi  diagram）を示している。図４（Ｃ）は、図４（Ａ）に示す配線パターンもしくは図４（Ｂ）に示すボロノイ図に対し生成されるドロネー図（Delaunay  diagram）である。なお、図４において、ドットのパターン部分は、配線部分を示している。
【００３９】
グラフ生成部５１は、図４（Ａ）に示すレイアウトパターンの配線部分の頂点座標を求め、求められた頂点座標から図４（Ｂ）に示すボロノイ図を生成する。ボロノイ図は、平面または空間上の点集合の各点について、どの点に最も近いかによって分割して生成される図である。そして、グラフ生成部５１は、図４（Ｂ）に示すボロノイ図から、隣接する領域の母点（generatrix）同士を結ぶことにより、図４（Ｃ）に示すドロネー図を生成する。このドロネー図は、各図形間の相対位置関係を表現する。レイアウトパターンやドロネー三角形は、頂点であるノードとノード間をつなぐエッジにより構成されるため一種のグラフととらえることができる。
【００４０】
ラベル生成部５２は、既知パターンに含まれるノード毎に、自ノードの属性情報および自ノードに隣接する隣接ノードとの属性情報である隣接情報とに基づいたラベルを生成する。図１に示すように、ラベル生成部５２は、自ノード部５２ａと隣接ノード部５２ｂとを有する。ここで、属性情報とは、図３Ａに示した頂点種別、パターン中心からの距離、隣接ノード数および隣接ノード間最短距離である。
【００４１】
まず、自ノード部５２ａによる処理について説明する。自ノード部５２ａは、既知パターンに含まれるノード毎に、自ノードの属性情報に基づく基盤となるラベルを生成する。具体的には、自ノード部５２ａは、既知パターンから生成されたドロネー三角形のノード毎に、自ノードの属性情報を所定長のビット列表現したラベルを生成する。例えば、自ノード部５２ａは、ビットデータ４１を参照し、記憶されているドロネー三角形Ｄ１，・・・，Ｄｎそれぞれについてノード毎に、自ノードの属性情報を所定長のビット列で表現したラベルを生成する。そして、自ノード部５２ａは、生成したノードラベルの情報（ビット列）を既知パターンデータ４０として、既知パターンＰ１，・・・，Ｐｎに対応付けて格納する。
【００４２】
図５は、属性情報に基づくノードラベルの生成方法を説明する図である。図５に示すように、ノードＡをラベル生成の対象である自ノードとして説明する。まず、自ノード部５２ａは、ノードＡの属性情報として頂点種別を特定する。例えば、ノードＡは、凹頂点であるとともに、ビア上に存在するためビア頂点でもあるため、自ノード部５２ａは、ノードＡの頂点種別を「凹頂点＋ビア頂点」と特定する。そして、自ノード部５２ａは、ビットデータ４１を参照し、特定した頂点種別に対応するビット列を取得する。例えば、自ノード部５２ａは、図３Ａに示すビットデータ４１のＤ１より、「凹頂点＋ビア頂点」に対応するビット列「１００」を取得する。なお、このような頂点種別に基づくビット列要素をｌ１とする。
【００４３】
また、自ノード部５２ａは、属性情報としてパターン中心から自ノードまでの距離を求める。距離は、各ノードの座標から求めることができる。例えば、自ノード部５２ａは、ノードＡはパターン中心からの距離「３０」に位置すると算出したとする。そして、自ノード部５２ａは、ビットデータ４１を参照し、算出したパターン中心からの距離に対応するビット列を取得する。例えば、自ノード部５２ａは、図３Ａに示すビットデータ４１のＤ２より、パターン中心からの距離「３０」に対応するビット列「０００」を取得する。なお、このようなパターン中心からの距離に基づくビット列要素をｌ２とする。
【００４４】
また、自ノード部５２ａは、属性情報として自ノードに対する隣接ノード数を求める。図５の例では、自ノード部５２ａは、ノードＡに対する隣接ノード数「７」を算出する。そして、自ノード部５２ａは、ビットデータ４１を参照し、算出した隣接ノード数に対応するビット列を取得する。例えば、自ノード部５２ａは、図３Ａに示すビットデータ４１のＤ３より、隣接ノード数「７」に対応するビット列「１１１」を取得したとする。なお、このような隣接ノード数に基づくビット列要素をｌ３とする。
【００４５】
また、自ノード部５２ａは、属性情報として自ノードとの距離が最短である隣接ノードとの距離である隣接ノード間最短距離を求める。図５の例では、ノードＡに対する隣接ノードのうち、ノードＡとの距離が最短であるノードはパターン中心である。すなわち、自ノード部５２ａは、ノードＡおよび各隣接ノードの座標に基づいて、隣接ノード間最短距離がパターン中心との距離「３０」と算出する。そして、自ノード部５２ａは、ビットデータ４１を参照し、算出した隣接ノード間最短距離に対応するビット列を取得する。例えば、自ノード部５２ａは、図３Ａに示すビットデータ４１のＤ４より、隣接ノード間最短距離「３０」に対応するビット列「０００」を取得する。なお、このような隣接ノード間最短距離に基づくビット列要素をｌ４とする。
【００４６】
ここで、自ノード部５２ａは、各ビット列要素ｌ１〜ｌ４を用いてノードラベルを生成する。具体的には、自ノード部５２ａは、各要素を順に結合することにより、ノードラベル「１０００００１１１０００」を生成する。このようにして、自ノード部５２ａは、長さ１２（１２ビット）のビット列を生成する。なお、自ノード部５２ａによって生成されるビット列は、１２ビットである必要はなく、例えば、１６ビット等でもよい。つまり、ビット列を構成する要素が上記のように４つである必要はない。例えば、図３Ａに示すビットデータ４１として、データＤ１〜Ｄ４だけでなく、さらに多くの属性情報に関するテーブルを登録しておいてもよい。例えば、パターン中心に対する自ノードの方向（パターン中心からの方向）にビット列を対応付けたテーブルが登録されてもよい。これにより、ラベル生成部は、かかる属性情報に対応した要素分さらに長いビット列をノードラベルとして生成する。また、自ノード部５２ａは、このようなラベル生成処理を、記憶されている既知パターン集合それぞれの全てのノードについて行う。
【００４７】
次に、隣接ノード部５２ｂによる処理について説明する。隣接ノード部５２ｂは、自ノード部５２ａにより自ノードの属性情報に基づき生成されたノードラベル毎に、さらに隣接情報を付与する。隣接情報とは、自ノードに隣接する隣接ノードとの属性情報が表現された所定長のビット列である。具体的には、隣接ノード部５２ｂは、自ノードの属性情報が表現された所定長のビット列と、隣接ノードとの属性情報が表現された所定長のビット列とを重なりなく結合することにより、属性情報に基づく基盤ラベルにさらに隣接情報を付与したノードラベルを生成する。この点について、図６Ａおよび６Ｂを用いて説明する。
【００４８】
図６Ａは、自ノードと隣接ノードとの接続関係を示す図である。また、図６Ｂは、自ノードラベルに隣接情報を付与する方法を説明する図である。図６Ａに示すグラフＧ１は、既知パターンＰｎから生成されたドロネー三角形に基づくグラフであるとする。自ノードをｖ０として、ｖ０における属性情報に基づき生成されたノードラベルに隣接情報を付与する例について以下で説明する。
【００４９】
図６Ａより、自ノードｖ０と隣接する隣接ノードは、ノードｖ１、ｖ２、ｖ３およびｖ４である。ここで、図６ＢのＦ１に着目すると、自ノードｖ０と隣接するノードのラベルである隣接ノードラベルＬ（ｖ１）〜Ｌ（ｖ４）の長さは「ｒ」として示されている。また、自ノードラベルＬ（ｖ０）の長さは「ｐ」として示されている。ノードの長さは、ビット数を示すが、ここでは概念的な記号で示すことにする。隣接ノード部５２ｂは、自ノードラベルと隣接ノードラベルとの排他的論理和（ＸＯＲ）により、近接ハッシュラベルを求める。算出された近接ハッシュラベルは、自ノードラベルを左詰めとして隣接ノードラベルが重なりなく付与されるため、その長さは「ｒ＋ｐ」で示される。しかし、単に、自ノードラベルと隣接ノードラベルとをＸＯＲしてもこのような重なりのない構造のビット列のラベル（以下の実施例では、「ビットラベル」と表記する場合がある）は得られない。そこで、図６ＢのＦ２を用いて、隣接ノード部５２ｂによるさらに具体的な処理を示す。
【００５０】
まず、隣接ノード部５２ｂは、隣接ノードラベルＬ（ｖ１）〜Ｌ（ｖ４）全てをＸＯＲしたビットラベルである隣接ノードハッシュラベルＮを算出する（ステップＳ１）。また、隣接ノード部５２ｂは、自ノードラベルＬ（ｖ０）を左詰めしたビットラベルＬ（ｖ０）’を算出する（ステップＳ２）。左詰めするとは、ＨＴＭＬタグとして「ＬＥＦＴＡＬＩＧＮ」を入力することに相当する。例えば、隣接ノード部５２ｂは、４ビットのビット列「１０００」で示される自ノードラベルＬ（ｖ０）を、７ビットのビット列に左詰めしたビットラベルとして算出する場合には、７ビットのビット列「０００００００」を用いて、かかるビット列に対し「１０００」を左詰めした「１００００００」を、ビットラベルＬ（ｖ０）’として算出することになる。
【００５１】
次に、隣接ノード部５２ｂは、隣接ノードハッシュラベルＮと左詰めしたビットラベルＬ（ｖ０）’とのＸＯＲを算出する（ステップＳ３）。これにより、隣接ノード部５２ｂは、自ノードラベルＬ（ｖ０）において隣接情報をハッシュして付与したラベルである隣接情報考慮ハッシュラベルＮ（ｖ０）を算出する。そして、このような処理は、下記の（１）式によって示される。
【００５２】
Ｎ（ｖ０）＝ＸＯＲ（ＸＯＲ（Ｌ（ｖ１），Ｌ（ｖ２），Ｌ（ｖ３），Ｌ（ｖ４）），ＬＥＦＴＡＬＩＧＮＬ（ｖ０））      （１）
【００５３】
そして、隣接ノード部５２ｂは、隣接情報を付与したラベル情報を既知パターンデータ４０として、既知パターンＰｎに対応付けて格納する。また、隣接ノード部５２ｂは、このような隣接情報付与処理を、記憶されている既知パターン集合それぞれの全てのノードラベルについて行う。なお、隣接ノード部５２ｂにより隣接情報が付与されたノードラベルを有するドロネー三角形を、以下の実施例では、「隣接情報考慮ラベル付ドロネー三角形」と表記する場合がある。例えば、既知パターンＰｎに対応した隣接情報考慮ラベル付ドロネー三角形は、隣接情報考慮ラベル付ドロネー三角形ＤＬｎと表記できる。そして、隣接ノード部５２ｂは、このような隣接情報付与処理を、記憶されている既知パターン集合それぞれの全てのノードラベルについて行う。
【００５４】
このように、隣接ノード部５２ｂは、自ノードに対して隣接する全ての隣接ノードのラベルをＸＯＲする。そして、隣接ノード部５２ｂは、かかるＸＯＲによって得られたビットラベル（隣接ノードハッシュラベル）と、自ノードラベルを左詰めした新たなビットラベルとをＸＯＲすることにより、自ノードラベルにおける隣接情報考慮ハッシュラベルを算出する。すなわち、隣接ノード部５２ｂは、自ノードラベルを示すビット列に対し、隣接ノードラベルのハッシュ値であるビット列を隣接情報として付与する。これにより、隣接ノード部５２ｂは、ビットラベルが一致することによるハッシュ衝突を回避することができるので、例えば、後述する類似度算出等に基づくレイアウト検証の精度を向上させることができる。
【００５５】
なお、隣接ノード部５２ｂは、隣接情報を付与した自ノードのラベルに対し、さらにかかる自ノードの近傍に位置するノードのラベル情報である近傍ノードラベルを付与してもよい。例えば、図６Ａの例では、自ノードｖ０に対しノードｖ５、ｖ６、ｖ７およびｖ８は、隣接していないが近傍に存在している近傍ノードといえる。隣接ノード部５２ｂは、上記のように算出した隣接情報考慮ハッシュラベルＮ（ｖ０）に対し、さらに近傍ノードラベルＬ（ｖ５）〜Ｌ（ｖ８）をＸＯＲしたハッシュ値を近傍情報として付与してもよい。
【００５６】
そして、隣接ノード部５２ｂは、かかる処理を所定回数繰り返してよい。例えば、自ノードｖ０からエッジを１ステップ進めたノードが隣接ノードｖ１〜ｖ４である。また、自ノードｖ０から隣接ノードｖ１〜ｖ４を経由してエッジを２ステップ進めたノードが近傍ノードｖ５〜ｖ８である。例えば、レイアウト検証装置１０に繰り返し回数「１」が設定されている場合、隣接ノード部５２ｂは、自ノードｖ０からエッジを１ステップ進めたノードである隣接ノードｖ１〜ｖ４に基づく隣接情報を、自ノードラベルＬ（ｖ０）に付与した隣接情報考慮ハッシュラベルＮ（ｖ０）を算出する。また、レイアウト検証装置１０に繰り返し回数「２」が設定されている場合、隣接ノード部５２ｂは、まず、自ノードラベルＬ（ｖ０）に隣接情報を付与した隣接情報考慮ハッシュラベルＮ（ｖ０）を算出する。次に、隣接ノード部５２ｂは、自ノードｖ０からエッジを２ステップ進めたノードである近傍ノードのラベルＬ（ｖ５）〜Ｌ（ｖ８）をＸＯＲしたハッシュ値を近傍情報として、隣接情報考慮ハッシュラベルＮ（ｖ０）とのＸＯＲにより付与する。
【００５７】
次に、隣接ノード部５２ｂの隣接情報付与処理について具体的な値を用いて説明する。図７は、２つのグラフにおけるノードラベルを比較する図である。そして、各グラフのノードには、自ノード部５２ａにより、例えば、４ビットのビット列で表現された属性情報に基づくノードラベルが生成されているものとする。上記では、自ノード部５２ａは、１２ビットのビットラベルを生成する例を示したが、ここでは説明を簡単にするために４ビットのビットラベルとする。
【００５８】
ここで、隣接ノード部５２ｂによる処理後のノードラベルは、７ビットで表現されるものとする。７ビットのうち４ビットは自ノードラベルに対応するため、残り３ビットが隣接ノードラベルに基づく隣接情報に対応する。なお、隣接ノード部５２ｂによる処理後のノードラベルを何ビットとするかは、予めレイアウト検証装置１０に対して任意の値が設定されるものであってよい。例えば、隣接ノード部５２ｂによる処理前のノードラベルが１２ビットで表現されているなら、処理後を１６ビットとしてもよいし、２４ビットとしてもよい。
【００５９】
図７のグラフＧ２を用いて、隣接ノード部５２ｂによって自ノードｖ０のノードラベルＬ（ｖ０）に隣接情報が付与される例について説明する。上記のように、隣接ノード部５２ｂによる処理後のノードラベル、すなわち、隣接情報配慮ハッシュラベルＮ（ｖ０）は、７ビットで表現され、そのうち左４ビットは、自ノードラベルＬ（ｖ０）に対応し、残り３ビットは、隣接ノードラベルＬ（ｖ１）とＬ（ｖ２）とをＸＯＲしたハッシュ値Ｎに対応するものとする。
【００６０】
具体的には、隣接ノード部５２ｂは、まず、隣接ノードラベルＬ（ｖ１）とＬ（ｖ２）とから上位３ビットを取得する。すなわち、隣接ノード部５２ｂは、ノードラベルＬ（ｖ１）の上位３ビット「１１１」およびノードラベルＬ（ｖ２）の上位３ビット「１１０」を取得する。そして、隣接ノード部５２ｂは、これらをＸＯＲした値であるハッシュ値「００１」を算出する。
【００６１】
次に、隣接ノード部５２ｂは、自ノードラベルＬ（ｖ０）を７ビットのビット列に対し左詰めしたノードラベルＬ（ｖ０）’を算出する。具体的には、隣接ノード部５２ｂは、ノードラベルＬ（ｖ０）を示すビット列「１０００」を用いて、かかる４ビットのビット列を７ビットのビット列に対し左詰めしたノードラベルＬ（ｖ０）’である「１００００００」を算出する。
【００６２】
そして、隣接ノード部５２ｂは、隣接ノードラベルのハッシュ値Ｎと左詰めしたノードラベルＬ（ｖ０）’とのＸＯＲにより、自ノードラベルｖ０の隣接情報考慮ハッシュラベルＮ（ｖ０）を算出する。具体的には、隣接ノード部５２ｂは、「００１」と「１００００００」とのＸＯＲにより、自ノードラベルｖ０における隣接情報考慮ハッシュラベル「１０００００１」を算出する。このような７ビットのビット列は、隣接ノード部５２ｂにより、左４ビットを自ノードｖ０のビットラベル「１０００」に対して、隣接ノードｖ１とｖ２に基づくハッシュ値「００１」を隣接情報として付与したものとして算出される。なお、グラフＧ３においても同様の処理により、例えば、自ノードｖ３における隣接ハッシュラベル「０００１０００」が算出される。
【００６３】
ここで、グラフＧ２とＧ３を比較した場合、一見同形であるが、属性情報および隣接情報に基づくビット列で表現されたノードラベルを比較すると異なる場合がある。つまり、グラフＧ２とＧ３では、ノードｖ０とノードｖ３とが対応することが考えられるが、隣接情報考慮ハッシュラベル値で比較すると、その値は異なりハッシュ衝突しない。このことを利用して、レイアウト検証装置１０は、２つのグラフの類似度を精度よく算出することにつなげることができる。
【００６４】
ここで、隣接情報の付与に関するスケーラビリティについて説明する。例えば、既知手法として、あるノードに対する近傍ハッシュを求めるために、ｄ個の近接ノードを扱い、ｄ＋１個のビットラベルに対してＸＯＲを適応するものがある。ここで、近傍ハッシュの長さをｐとすると、その長さｐの近傍ハッシュは、ノード次数ｄに線形の時間で計算が可能である（Ｏ（ｐｄ））。一方、本実施例１では、図６Ｂに示したように、長さｐのラベルに対し長さｒの隣接情報を付与するため、隣接ノード部５２ｂにより隣接情報が付与されたノードラベルの長さは、ｐ＋ｒ≦２ｐとなる。すなわち、実施例１に係るレイアウト検証装置１０では、隣接情報の付与に関する計算量は、Ｏ（（ｐ＋ｒ）ｄ）≦Ｏ（２ｐｄ）＝２×Ｏ（ｐｄ）となり、既知手法の２倍以内の計算時間に収めることができるうえに、上記のように検証精度も向上させることができる。また、実施例１に係るレイアウト検証装置１０でも、ノード次数ｄに線形の時間で計算が可能である。
【００６５】
図１に戻り、算出部５３は、所定の２つのレイアウトパターンの類似度を算出する。具体的には、算出部５３は、既知パターン集合における２つのパターンの組合せであって、成立する全ての組合せにおける類似度を算出する。例えば、算出部５３は、既知パターン集合Ｐ１，・・・，Ｐｎに対応する隣接情報考慮ラベル付ドロネー三角形Ｄ１，・・・，Ｄｎに基づくグラフにおいて、２つのグラフの組合せであって、成立する全ての組合せにおける類似度を算出する。なお、算出部５３は、既知パターンデータ４０からノードラベル情報を取得し、各組合せの類似度を算出し、算出した類似度を類似度データ４２としてその組み合わせに対応付けて格納する。
【００６６】
図８は、２つのグラフの類似度算出方法を説明する図である。グラフＧ４およびＧ５は、所定の２つの既知パターンからそれぞれ生成されたドロネー三角形に基づくグラフである。
【００６７】
算出部５３は、グラフ毎に各ノードのラベルでソートしたノードリストを生成し、生成したノードリストを用いて、２つのグラフにおいてどれだけのノードラベルが一致しているかを示すマッチング値ｋを算出する。また、算出部５３は、算出結果である類似度を類似度データ４２として格納する。
【００６８】
なお、算出部５３は、ノードラベルの一致の判定基準をチューニング可能とする。具体的には、算出部５３は、ノードリストにおいて対応するノードラベルの完全な一致に基づくマッチング値ｋの算出と、ノードリストにおいて対応するノードラベルの上位所定数一致に基づくマッチング値ｋの算出とを切り替えて行うことができる。
【００６９】
算出部５３は、ノードリストにおいて対応するノードラベルの完全な一致に基づくマッチング値ｋを算出する場合、下記の（２）式を用いて算出する。ｃは、一致したラベルの数を示す。ｎ１およびｎ２は各ノードリストの長さを示す。
【００７０】
ｋ＝ｃ／（ｎ１＋ｎ２−ｃ）      （２）
【００７１】
また、算出部５３は、ノードリストにおいて対応するノードラベルの上位所定数一致に基づくマッチング値ｋを算出する場合、下記の（３）式を用いて算出する。ｓｉｚｅ（ｎ１，ｎ２）は、比較するグラフのノード数の最小値、最大値、平均値等である。
【００７２】
ｋ＝ｃ／ｓｉｚｅ（ｎ１，ｎ２）      （３）
【００７３】
ここで、算出部５３の具体的な処理について説明する。例えば、グラフＧ４およびＧ５は、図８に示すような隣接情報が付与されたノードラベルを有するとする。ここでは、説明を簡単にするために、かかるノードラベルを４ビットのビットラベルとする。
【００７４】
算出部５３は、基数ソートを用いて、グラフＧ４およびＧ５それぞれに対応するノードリストＬ４およびＬ５を生成する。算出部５３によって生成されたノードリストＬ４およびＬ５を図８にさらに示す。図８の例では、ノードリストＬ４およびＬ５において、同番号のノードラベルが対応していることを示す。
【００７５】
以下では、まず、算出部５３による対応するノードラベルの完全な一致に基づくマッチング値ｋの算出処理について説明する。算出部５３は、生成したノードリストＬ４およびＬ５を参照し、対応するノードラベル同士が完全に一致しているか否かを判定する。そして、算出部５３は、対応するノードラベル同士が完全に一致している場合には、カウンターｃを「１」増やす。また、算出部５３は、対応するノードラベル同士が一致していない場合には、カウンターｃを増やさない。そして、算出部５３は、最終的に求めたカウンターｃの値を用いてマッチング値を算出する。
【００７６】
具体的には、算出部５３は、まず、ノードリストＬ４およびＬ５の１番目のノードラベルを比較する。算出部５３は、ノードラベル「０００１」で完全一致していると判定し、カウンターｃを１増やしてカウンターｃ「１」とする。次に、算出部５３は、２番目のノードラベルを比較する。算出部５３は、ノードラベル「００１０」で完全一致していると判定し、カウンターｃをさらに１増やしてカウンターｃ「２」とする。次に、算出部５３は、３番目のノードラベルを比較する。算出部５３は、ノードラベル「０１００」と「０１０１」は一致していないと判定し、カウンターｃを増やさずカウンターｃ「２」のままとする。算出部５３は、このような操作を、最後（６番目）まで繰り返す。そして、算出部５３は、１、２、４番目のノードラベルが完全一致していることから、最終的に、カウンターｃ「３」を取得する。
【００７７】
そして、算出部５３は、（２）式を用いてマッチング値ｋを算出する。図８の例では、ｃ＝３、ｎ１＝６、ｎ２＝６となることから、算出部５３は、ｋ＝３／（６＋６−３）より、マッチング値ｋ「０．３３」を算出する。すなわち、算出部５３は、グラフＧ４に対応するレイアウトパターンとグラフＧ５に対応するレイアウトパターンとの類似度「０．３３」を得ることになる。なお、かかる２つのレイアウトパターンが同一である場合、ｃ＝ｎ１＝ｎ２となることから、算出部５３は、ｋ＝６／（６＋６−６）より、マッチング値ｋ「１」となることから、類似度「１」を得る。
【００７８】
次に、算出部５３による対応するノードラベルの上位所定数一致に基づくマッチング値ｋの算出について説明する。ここでは、算出部５３は、上位３ビットの一致を判定するものとする。算出部５３は、生成したノードリストＬ４およびＬ５を参照し、対応するノードラベルの上位３ビットが一致しているか否かを判定する。そして、算出部５３は、対応するノードラベルの上位３ビットが一致している場合には、カウンターｃを「１」増やす。また、算出部５３は、対応するノードラベルの上位３ビットが一致していない場合には、カウンターｃを増やさない。そして、算出部５３は、最終的に求めたカウンターｃの値を用いてマッチング値ｋを算出する。
【００７９】
具体的には、算出部５３は、まず、ノードリストＬ４およびＬ５の１番目のノードラベルを比較する。算出部５３は、ノードラベル「０００１」と「０００１」との上位３ビットが「０００」で一致していると判定し、カウンターｃを１増やしてカウンターｃ「１」とする。次に、算出部５３は、２番目のノードラベルを比較する。算出部５３は、ノードラベル「００１０」と「００１０」との上位３ビットが「００１」で一致していると判定し、カウンターｃをさらに１増やしてカウンターｃ「２」とする。次に、算出部５３は、３番目のノードラベルを比較する。算出部５３は、ノードラベル「０１００」と「０１０１」との上位３ビットが「０１０」で一致していると判定し、カウンターｃをさらに１増やしてカウンターｃ「３」とする。算出部５３は、このような操作を、最後（６番目）まで繰り返す。そして、算出部５３は、１、２、３、４番目のノードラベルにおいて上位３ビットが一致していることから、最終的に、カウンター「４」を取得する。
【００８０】
そして、算出部５３は、（３）式を用いてマッチング値ｋを算出する。図８の例では、ｃ＝４、また、比較するグラフＧ４およびＧ５のノード数の最小値を用いるとすると、ｓｉｚｅ（ｎ１，ｎ２）＝ｍｉｎ（ｎ１，ｎ２）＝６となる。このため、算出部５３は、ｋ＝４／６より、マッチング値ｋ「０．６６」を算出する。すなわち、算出部５３は、グラフＧ４に対応するレイアウトパターンとグラフＧ５に対応するレイアウトパターンとの類似度「０．６６」を得る。
【００８１】
なお、図８の例では、グラフＧ４およびＧ５においてノード数が同じであるため、マッチング値ｋの算出に用いるノード数の最小値および最大値はいずれも「６」となる。しかし、算出部５３は、例えば、グラフＧ４のノード数「１０」、グラフＧ５のノード数「５」である場合は、ｓｉｚｅ（ｎ１，ｎ２）＝ｍａｘ（ｎ１，ｎ２）＝１０、または、ｓｉｚｅ（ｎ１，ｎ２）＝ｍｉｎ（ｎ１，ｎ２）＝５を用いることになる。
【００８２】
図１に戻り、識別モデル生成部５４は、欠陥の有無が未知のレイアウトパターンにおいて欠陥を検証する識別モデルを生成する。例えば、識別モデル生成部５４は、既知パターン集合Ｐ１，・・・，Ｐｎに対応する隣接情報考慮ラベル付ドロネー三角形Ｄ１，・・・，ＤＬｎにおいて、各ドロネー三角形とかかる既知パターンそれぞれの欠陥有無情報との組み合わせに基づく学習データセットＴ＝｛（ＤＬｉ，ｅｉ），ｉ＝１，・・・，ｎ｝を生成する。また、識別モデル生成部５４は、隣接情報考慮ラベル付ドロネー三角形ＤＬ１，・・・，ＤＬｎの類似度に基づく全部分カーネル行列Ｋを生成する。例えば、識別モデル生成部５４は、隣接情報考慮ラベル付ドロネー三角形集合ＤＬ１，・・・，ＤＬｎの各組合せの類似度計算によってカーネル行列Ｋの各要素Ｋｉｊ＝Ｋ（ＤＬｉ，ＤＬｊ）を計算する。
【００８３】
Ｋ（ＤＬｉ，ＤＬｊ）は、既知パターン集合Ｐ１，・・・，Ｐｎのうち、既知パターンＰｉとＰｊ（ｉ≠ｊ）との類似度に基づくカーネル行列を示す。そして、識別モデル生成部５４は、学習データセットＴとカーネル行列Ｋｉｊから、下記の（４）式によって示される識別モデルｆ（ＤＬ）を生成する。αｉは、各演算式の重み係数であり、βは、識別モデルと学習データセットＴのフィッティング係数である。
【００８４】
【数１】
0006464763.tif 000002
【００８５】
識別モデル生成部５４は、αｉをパラメータとし、例えば、最小二乗法、サポートベクタ回帰といった既知の回帰分析手法を用いた機械学習によりフィッティングを行い、ｆ（ＤＬ）に近い値が得られる重み係数αｉの値を求める。このようにして、識別モデル生成装置５０は、求めた重み係数αｉの値を代入した（４）式を識別モデルとして生成する。そして、識別モデル生成部５４は、例えば、重み係数αｉの値と、フィッティング係数βの値とを対応付けたものを、識別モデル情報４３として格納する。
【００８６】
次に、本実施例１に係る識別モデル生成装置２０が実行する処理の流れを図９を参照しながら説明する。図９は、識別モデル生成に関する全体的な処理の流れを示したフローチャートである。
【００８７】
受付部５０は、既知パターン集合Ｐ１，・・・，Ｐｎに関するデータおよび各既知パターンにおける欠陥有無情報の入力を受け付けたか否かを判定する（Ｓ１０１）。既知パターン集合Ｐ１，・・・，Ｐｎに関するデータとは、各既知パターンＰｉを構成する矩形や多角形の集合Ｐｉ：｛Ｐ１，Ｐ２，・・・，Ｐｋ，ＰＮ｝や、例えば、各多角形Ｐｋの頂点座標（ｘｋｎ，ｙｋｎ）やその多角形が存在する配線層の識別情報Ｌｋである。また、既知パターンＰ１，・・・，Ｐｎのそれぞれに対応する欠陥有無情報ｅ１，・・・，ｅｎである。
【００８８】
受付部５０は、各種情報を受け付けたと判定した場合には（Ｓ１０１；Ｙｅｓ）、受け付けた情報を既知パターンデータ４０として格納するとともに、グラフ生成部５１へと処理を移行する。一方、受付部５０は、既知パターン集合Ｐ１，・・・，Ｐｎに関するデータを受け付けていないと判定した場合には（Ｓ１０１；Ｎｏ）、受け付けるまで待機する。
【００８９】
グラフ生成部５１は、既知パターン集合Ｐ１，・・・，Ｐｎに対応するドロネー三角形Ｄ１，・・・，Ｄｎを生成する（Ｓ１０２）。具体的には、グラフ生成部５１は、既知パターン集合Ｐ１，・・・，Ｐｎそれぞれにおいて、各既知パターンを構成する図形の頂点を結んでドロネー三角分割を行い、図形の頂点を結んで得られる複数の三角形を求める。また、グラフ生成部５１は、生成したドロネー三角形Ｄ１，・・・，Ｄｎそれぞれにおける座標等の各種情報を、既知パターンデータ４０として既知パターン集合Ｐ１，・・・，Ｐｎそれぞれに対応付けて格納するとともに、ラベル生成部５２へ処理を移行する。
【００９０】
ラベル生成部５２は、既知パターンに含まれるノード毎に、自ノードの属性情報および自ノードに隣接する隣接ノードとの属性情報である隣接情報とに基づいたラベルを生成する。
【００９１】
まず、ラベル生成部５２における自ノード部５２ａが、既知パターン集合Ｐ１，・・・，Ｐｎから生成されたドロネー三角形Ｄ１，・・・，Ｄｎそれぞれについてノード毎に、自ノードの属性情報を所定長のビット列で表現した基盤となるラベルを生成する（Ｓ１０３）。なお、自ノード部５２ａによるラベル生成処理は、Ｓ２０１〜Ｓ２０８で詳細に説明する。
【００９２】
自ノード部５２ａは、自ノードの属性情報に基づくラベルを生成した各ドロネー三角形Ｄｉ（Ｄｉ＝（Ｖ，Ｅ，ｌ））の各ノードラベルｌの値（ビット列）を、既知パターンデータ４０として既知パターン集合Ｐ１，・・・，Ｐｎそれぞれに対応付けて格納する。そして、自ノード部５２ａは、隣接ノード部５２ｂへ処理を移行する。
【００９３】
次に、ラベル生成部５２における隣接ノード部５２ｂは、ドロネー三角形Ｄ１，・・・，Ｄｎそれぞれについて、自ノード部５２ａにより自ノードの属性情報に基づき生成されたノードラベル毎に、さらに隣接情報を付与する（Ｓ１０４）。隣接情報とは、自ノードに隣接する隣接ノードとの属性情報が表現された所定長のビット列である。具体的には、隣接ノード部５２ｂは、自ノードの属性情報が表現された所定長のビット列と、隣接ノードとの属性情報が表現された所定長のビット列とを重なりなく結合することで、属性情報に基づく基盤ラベルにさらに隣接情報を付与したノードラベルを生成する。なお、隣接ノード部５２ｂによる隣接情報付与処理は、Ｓ３０１〜Ｓ３１０で詳細に説明する。
【００９４】
隣接ノード部５２ｂは、隣接情報を付与した各ドロネー三角形ＤＬｉ｛ＤＬｉ＝（Ｖ，Ｅ，ｌ），ｉ＝１，・・・，ｎ｝の各ノードラベルｌの値（ビット列）を、既知パターンデータ４０として既知パターン集合Ｐ１，・・・，Ｐｎそれぞれに対応付けて格納する。そして、隣接ノード部５２ｂは、算出部５３へ処理を移行する。
【００９５】
算出部５３は、所定の２つのレイアウトパターンの類似度を算出する。具体的には、算出部５３は、既知パターン集合Ｐ１，・・・，Ｐｎにおける２つのパターンの組合せであって、成立する全ての組合せにおける類似度を算出する（Ｓ１０５）。そして、算出部５３は、算出した類似度を類似度データ４２として格納するとともに、識別モデル生成部５４へ処理を移行する。なお、算出部５３による類似度算出処理は、Ｓ４０１〜Ｓ４０５で詳細に説明する。
【００９６】
識別モデル生成部５４は、未知パターンにおける欠陥を検証するための識別モデルを生成する（Ｓ１０６）。具体的には、識別モデル生成部５４は、学習データセットＴとカーネル行列Ｋとを用いて、（４）式に示す識別モデルを生成する。そして、識別モデル生成部５４は、生成した識別モデルにおいて重み係数αｉの値と、フィッティング係数βの値とを対応付けたものを識別モデル情報４３として格納し、処理を終了する。
【００９７】
次に、ラベル生成部５２によるラベル生成処理の詳細な流れについて説明する。上述したように、ラベル生成部５２は、自ノード部５２ａと、隣接ノード部５２ｂとによって構成され、これら各部の処理により、最終的には属性情報および隣接情報に基づくノードラベルを生成する。
【００９８】
自ノード部５２ａは、既知パターン集合Ｐ１，・・・，Ｐｎから生成されたドロネー三角形Ｄ１，・・・，Ｄｎそれぞれについてノード毎に、自ノードの属性情報を所定長のビット列表現した基盤となるラベルを生成する。図１０は、自ノードの属性情報に基づくラベル生成の手順を示すフローチャートである。なお、ここでは、既知パターン集合のうちの一つである既知パターンＰ１に対応するドロネー三角形Ｄ１のノード毎に、ラベルを生成する例について説明する。しかし、ラベル生成部５２は、実際は、既知パターンデータ４０に格納されている全ての既知パターン（既知パターン集合Ｐ１，・・・，Ｐｎ）について同様の処理を行う。
【００９９】
まず、自ノード部５２ａは、既知パターンデータ４０からドロネー三角形Ｄ１の情報を取得し、ノードのインデックスｉ＝１と設定する（Ｓ２０１）（ノードｖ１を自ノードとして処理を行うための命令）。そして、自ノード部５２ａは、ラベル生成対象である自ノードｖｉの頂点種別を特定し、特定した頂点種別に対応するビット列要素（ｌ１）をビットデータ４１から取得する（Ｓ２０２）。
【０１００】
次に、自ノード部５２ａは、ノードｖｉのパターン中心からの距離を求め、求めた距離に対応するビット列要素（ｌ２）をビットデータ４１から取得する（Ｓ２０３）。また、自ノード部５２ａは、ノードｖｉに対する隣接ノード数を求め、求めた数に対応するビット列要素（ｌ３）をビットデータ４１から取得する（Ｓ２０４）。また、自ノード部５２ａは、ノードｖｉとの距離が最短である隣接ノードとの距離である隣接ノード間最短距離を求め、求めた数に対応するビット列要素（ｌ４）をビットデータ４１から取得する（Ｓ２０５）。そして、自ノード部５２ａは、ビット列要素ｌ１〜ｌ４を順に結合することにより、ノードｖｉの属性情報に基づくノードラベルｌｖｉを生成する（Ｓ２０６）。このようなノードラベルは、隣接情報を付与するうえでの基盤となるラベルである。
【０１０１】
ドロネー三角形Ｄ１がｎ個のノードを有しているとすると、自ノード部５２ａは、かかるｎ個のノード全てにＳ２０２〜２０６の処理を行ったか否かを判定する。つまり、自ノード部５２ａは、ｉ＝ｎであるか否かを判定する（Ｓ２０７）。自ノード部５２ａは、ｉ＝ｎである場合には（Ｓ２０７；Ｙｅｓ）、Ｓ２０２〜２０６の処理を終了し、自ノードの属性情報に基づくラベルが生成されたドロネー三角形Ｄ１（Ｄ１＝Ｖ，Ｅ，ｌ）を得る。そして、自ノード部５２ａは、生成したノードラベルの値を既知パターンデータ４０として、既知パターンＰ１に対応付けて格納するとともに、隣接ノード部５２ｂの処理Ｓ３０１へ移行する（Ｓ２０８）。一方、自ノード部５２ａは、ｉ＝ｎでない場合には（Ｓ２０７；Ｎｏ）、ｉ＝ｉ＋１としてＳ２０２〜２０６の処理を繰り返す（Ｓ２０９）。すなわち、自ノード部５２ａは、ｉ＝ｎを満たすまでＳ２０２〜２０６の処理を繰り返すことになる。なお、自ノード部５２ａによる自ノードの属性情報に基づくラベル生成処理は、必ずしもＳ２０２〜２０６の順で行われる必要はなく、これらの順は、任意の順で行われてよい。
【０１０２】
上述したように、ここでは、既知パターン集合のうち、一つの既知パターンＰ１に対応するドロネー三角形Ｄ１のノード毎に、ラベルを生成する例について説明した。しかし、記憶されている全ての既知パターンに対応するドロネー三角形について、このようなラベル生成処理が行われる必要がある。そこで、自ノード部５２ａは、一つの既知パターンの全てのノードに、自ノードの属性情報に基づくラベル生成処理を行った時点で、次の既知パターンを取得し、その全てのノードに自ノードの属性情報に基づくラベル生成処理を行うことを繰り返すよう設定されてよい。これにより、自ノード部５２ａは、既知パターン集合Ｐ１，・・・，Ｐｎそれぞれについて、全てのノードに自ノードの属性情報に基づくラベルを生成する。
【０１０３】
次に、隣接ノード部５２ｂによる隣接情報付与処理の詳細な流れについて説明する。隣接ノード部５２ｂは、既知パターン集合Ｐ１，・・・，Ｐｎから生成されたドロネー三角形Ｄ１，・・・，Ｄｎそれぞれについて、自ノード部５２ａにより自ノードの属性情報に基づき生成されたノードラベル毎に、さらに隣接情報を付与する。具体的には、隣接ノード部５２ｂは、自ノードの属性情報が表現された所定長のビット列と、隣接ノードとの属性情報が表現された所定長のビット列とを重なりなく結合することで、属性情報に基づく基盤ラベルにさらに隣接情報を付与したノードラベルを生成する。図１１は、隣接情報付与の手順を示すフローチャートである。なお、ここでも、既知パターン集合のうちの一つである既知パターンＰ１に対応するドロネー三角形Ｄ１のノード毎に、隣接情報を付与する例について説明する。
【０１０４】
まず、隣接ノード部５２ｂは、既知パターンデータ４０からドロネー三角形Ｄ１の情報を取得し、ノードのインデックスｉ＝１と設定する（Ｓ３０１）（ノードｖ１を自ノードとして処理を行うための命令）。また、隣接ノード部５２ｂは、繰り返し数ｉｔｒ＝１と設定する（Ｓ３０２）。繰り返し数とは、上述したように、隣接情報付与対象の自ノードｖｉに対し、エッジ何ステップ先のノードまでの情報を考慮するために処理を繰り返すかを示すものである。例えば、ｉｔｒ＝１の場合には、隣接ノード部５２ｂは、ノードｖｉのラベルに、ノードｖｉの隣接ノードに関する隣接情報を付与する。また、ｉｔｒ＝２の場合には、隣接ノード部５２ｂは、隣接情報を付与したノードｖｉのラベルにさらに、ノードｖｉから２ステップ先の近傍ノードに関する近傍情報を付与するために処理を繰り返す。なお、繰り返し数は、レイアウト検証装置１０に予め設定されてよい。
【０１０５】
そして、隣接ノード部５２ｂは、ノードｖｉの隣接ノードｖｉｌ，・・・，ｖｉｍのラベルｌｉｌ，・・・，ｌｉｍについて、隣接情報を付与するために必要な部分ビット列ｂｉｌ，・・・，ｂｉｍを取り出す（Ｓ３０３）。なお、上位何ビット取り出すかは、レイアウト検証装置１０に対し予め任意の値が設定されてよい。次に、隣接ノード部５２ｂは、取り出した部分ビット列ｂｉｌ，・・・，ｂｉｍのＸＯＲにより、隣接ノードハッシュラベルＮｉを算出する（Ｓ３０４）。このような、隣接ノードハッシュラベルＮｉがノードｖｉの隣接情報ということになる。
【０１０６】
次に、隣接ノード部５２ｂは、ノードｖｉのノードラベルｌｖｉを左詰めしたラベルｌｖｉ’を算出する（Ｓ３０５）。例えば、ノードラベルｌｖｉが１２ビットのビットラベルであるとし、付与処理後のノードラベルを１６ビットのビットラベルで表現するようレイアウト検証装置１０に予め設定されているとする。この場合、隣接ノード部５２ｂは、１６ビットのビットラベルに対して、１２ビットのノードラベルｌｖｉを左詰したノードラベルｌｖｉ’を算出する。
【０１０７】
そして、隣接ノード部５２ｂは、隣接ノードハッシュラベルＮｉとノードラベルｌｖｉ’とのＸＯＲにより、ノードラベルｌｖｉに隣接情報を付与したラベルである隣接情報考慮ハッシュラベルｌｖｉ＿ｎｅｗを算出する（Ｓ３０６）。
【０１０８】
ここで、隣接ノード部５２ｂは、設定されている繰り返し数ｉｔｒ＝Ｒを満たしているか否かを判定する（Ｓ３０７）。隣接ノード部５２ｂは、繰り返し数ｉｔｒ＝Ｒが満たされていないと判定した場合（Ｓ３０７；Ｎｏ）は、ｉｔｒ＝ｉｔｒ＋１としてＳ３０３〜３０６の処理を繰り返す（Ｓ３０８）。すなわち、隣接ノード部５２ｂは、ノードｖｉからエッジ２ステップ進めたところに存在する各ノードを隣接ノードと見なし（実際は、近傍ノード）、Ｓ３０３〜３０６の処理を繰り返す。そして、隣接ノード部５２ｂは、ｉｔｒ＝Ｒを満たすまでかかる処理を繰り返すことになる。
【０１０９】
一方、隣接ノード部５２ｂは、繰り返し数ｉｔｒ＝Ｒが満たされていると判定した場合（Ｓ３０７；Ｙｅｓ）、ドロネー三角形Ｄ１が有するｎ個のノード全てに隣接情報を付与したか否かを判定する。つまり、隣接ノード部５２ｂは、ｉ＝ｎであるか否かを判定する（Ｓ３０９）。隣接ノード部５２ｂは、ｉ＝ｎでないと判定した場合には（Ｓ３０９；Ｎｏ）、ｉ＝ｉ＋１としてＳ３０３〜３０６の処理を繰り返す（Ｓ３１０）。すなわち、隣接ノード部５２ｂは、ｉ＝ｎを満たすまでＳ３０３〜３０６の処理を繰り返すことになる。
【０１１０】
一方、隣接ノード部５２ｂは、ｉ＝ｎである場合には（Ｓ３０９；Ｙｅｓ）、Ｓ３０３〜３０６の処理を終了し、隣接情報考慮ラベル付ドロネー三角形ＤＬ１（ＤＬ１＝Ｖ，Ｅ，ｌ）を得る。そして、隣接ノード部５２ｂは、隣接情報を付与したノードラベルの値を既知パターンデータ４０として、既知パターンＰ１に対応付けて格納するとともに、算出部５３の処理Ｓ４０１へ移行する（Ｓ３１１）。
【０１１１】
なお、隣接ノード部５２ｂは、自ノード部５２ａと同様に、一つの既知パターンの全てのノードラベルに、隣接情報付与処理を行った時点で、次の既知パターンを取得し、その全てのノードラベルに、隣接情報付与処理を行うことを繰り返すよう設定されてよい。これにより、隣接ノード部５２ｂは、既知パターン集合Ｐ１，・・・，Ｐｎそれぞれについて、全てのノードラベルに、隣接情報付与処理を行う。
【０１１２】
次に、算出部５３による類似度算出処理の詳細な流れについて説明する。算出部５３は、所定の２つのレイアウトパターンの類似度を算出する。具体的には、算出部５３は、記憶されている既知パターン集合（既知パターン集合Ｐ１，・・・，Ｐｎ）における２つのパターンの組合せであって、成立する全ての組合せにおける類似度を算出する。例えば、算出部５３は、既知パターン集合Ｐ１，・・・，Ｐｎに対応する隣接情報考慮ラベル付ドロネー三角形ＤＬ１，・・・，ＤＬｎに基づくグラフにおいて、２つのグラフの組合せであって、成立する全ての組合せにおける類似度を算出する。
【０１１３】
ここでは、算出部５３は、既知パターンＰ１に基づく隣接情報考慮ラベル付ドロネー三角形ＤＬ１と、既知パターンＰ２に基づく隣接情報考慮ラベル付ドロネー三角形ＤＬ２との類似度を算出する場合を例に挙げる。図１２は、類似度算出の手順を示すフローチャートである。
【０１１４】
まず、算出部５３は、既知パターンデータ４０から、隣接情報考慮ラベル付ドロネー三角形ＤＬ１と、隣接情報考慮ラベル付ドロネー三角形ＤＬ２とのノードラベル情報を取得する（Ｓ４０１）。
【０１１５】
次に、算出部５３は、各ドロネー三角形毎に、各ノードのラベルで基数ソートしたノードリストを生成する（Ｓ４０２）。そして、算出部５３は、２つのノードリストにおいて対応するノードラベルが一致しているか否かを判定していくことにより（Ｓ４０３）、２つのドロネー三角形においてどれだけのノードラベルが一致しているかを示すマッチング値ｋを算出する（Ｓ４０４）。このとき、算出部５３がノードリストにおいて対応するノードラベルが完全に一致しているか否かを判定する、または、ノードリストにおいて対応するノードラベルの上位所定数が一致しているか否かを判定するかは任意に設定されてよい。
【０１１６】
続いて、算出部５３は、かかるマッチング値ｋを既知パターンＰ１とＰ２との類似度として類似度データ４２に格納するとともに、識別モデル生成部５４の処理Ｓ１０６へ移行する（Ｓ４０５）。なお、ここでは、算出部５３は、既知パターンＰ１とＰ２との類似度を算出する例について説明したが、上述したように、既知パターン集合Ｐ１，・・・，Ｐｎにおいて成立する全ての組合せでの類似度を算出する。
【０１１７】
（レイアウト検証部）
図１に戻り、レイアウト検証部６０について説明する。レイアウト検証部６０は、上述してきた識別モデル生成装置２０により生成された既知パターンの類似度に基づく識別モデルを用いて、未知パターンにおける欠陥を検証する。例えば、レイアウト検証部６０は、かかる識別モデルを用いて、未知パターンにおける欠陥の有無を識別する。以下では、レイアウト検証部６０の欠陥検証に関する一連の処理について説明する。
【０１１８】
なお、上述してきた識別モデル生成装置２０は、既知パターンの集合を受け付け、各既知パターンに対応するドロネー三角形それぞれのノードにおいて、属性情報および隣接情報に基づくラベルを生成する。そして、識別モデル生成装置２０は、生成したノードラベルを用いて算出した各既知パターン同士の類似度に基づいて識別モデルを生成する。これに対し、レイアウト検証部６０は、検証対象である未知パターンを受け付け、受け付けた未知パターンに対応するドロネー三角形において、ノードの属性情報および隣接情報に基づくラベルを生成する。そして、レイアウト検証部６０は、生成したノードラベルを用いて、既知パターンとの類似度算出や、欠陥の有無に関する検証を行う。このため、レイアウト検証部６０の多くの部位は、識別モデル生成装置２０の部位と同様の処理を行うと対応する。なお、同様の処理を行う部位についての詳細な説明は省略する。
【０１１９】
レイアウト検証部６０は、例えば、パーソナルコンピュータやサーバコンピュータ等のコンピュータなどである。レイアウト検証部６０は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例１では、レイアウト検証部６０を１台のコンピュータとした場合を例として説明する。レイアウト検証部６０は、ＣＡＤ装置などの設計者による集積回路の設計を支援する回路設計ソフトウェアが動作する設計装置であってもよい。図１に示すように、レイアウト検証部６０は、入力部７０と、表示部７１と、通信Ｉ／Ｆ（インタフェース）部７２と、記憶部７３と、制御部７４とを有する。
【０１２０】
入力部７０は、各種の情報を入力する入力デバイスである。入力部７０としては、マウスやキーボード等の操作の入力を受け付ける入力デバイスが挙げられる。入力部７０は、各種の入力を受け付ける。例えば、入力部７０は、未知パターンおける欠陥の有無判定に関する各種の入力を受け付ける。入力部７０は、ユーザからの操作入力を受け付け、受け付けた操作内容を示す操作情報を制御部７４に入力する。
【０１２１】
表示部７１は、各種情報を表示する表示デバイスである。表示部７１としては、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）等の表示デバイスが挙げられる。表示部７１は、各種情報を表示する。例えば、表示部７１は、登録画面や、操作画面、検証結果画面など各種の画面を表示する。
【０１２２】
通信Ｉ／Ｆ部７２は、他の装置との間で通信制御を行うインタフェースである。通信Ｉ／Ｆ部７２は、不図示のネットワークを介して他の装置と各種情報を送受信する。例えば、通信Ｉ／Ｆ部７２としては、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。
【０１２３】
記憶部７３は、ハードディスク、ＳＳＤ、光ディスクなどの記憶装置である。なお、記憶部７３は、ＲＡＭ、フラッシュメモリ、ＮＶＳＲＡＭ等のデータを書き換え可能な半導体メモリであってもよい。
【０１２４】
記憶部７３は、制御部７４で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。例えば、記憶部７３は、後述する欠陥の検証に用いる各種のプログラムを記憶する。さらに、記憶部７３は、制御部７４で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部７３は、未知パターンデータ８０と、ビットデータ８１と、類似度データ８２とを記憶する。
【０１２５】
未知パターンデータ８０は、例えば、一つの未知パターンＰｕに関する情報を記憶したデータである。未知パターンＰｕは、レイアウトパターンの検証対象として入力部７０を介して入力される。未知パターンデータ８０は、未知パターンＰｕを構成する矩形や多角形の頂点座標リストを含む。例えば、未知パターンＰｕを構成する矩形や多角形の集合を、Ｐｕ：｛Ｐ１，Ｐ２，・・・，Ｐｋ，ＰＮ｝と表すことができる。また、多角形Ｐｋの頂点座標を、Ｐｋ=｛（ｘｋ１，ｙｋ１），・・・，（ｘｋｎ，ｙｋｎ），Ｌｋ｝と表すことができる。Ｌｋは、多角形Ｐｋが存在する配線層を識別するための記号である。ここで、図２は、既知パターンデータ４０に含まれる既知パターンの一例を示す図であるが、未知パターンにも対応するものである。
【０１２６】
また、未知パターンデータ８０には、グラフ生成部９１により未知パターンＰｕから生成された配線層毎のドロネー三角形のグラフ情報も含まれる。さらに、未知パターンデータ８０には、かかるグラフの各ノード毎に生成された、属性情報および隣接情報に基づくラベルも含まれる。
【０１２７】
例えば、未知パターンＰｕから生成されたドロネー三角形Ｄｕにおいて、Ｄｕ＝（Ｖ，Ｅ）のように形式的に定義することができる。Ｖは、ノード集合であり、Ｖ：｛ｖ１，ｖ２，・・・，ｖｎ，ｖｉ＝（ｘｉ，ｙｉ）｝と表すことができる。ここで、各ノードｖｉは、座標（ｘｉ，ｙｉ）に位置することを示す。Ｅは、枝集合であり、Ｅ＝｛ｅ１，ｅ２，・・・，ｅｍ，ｅｊ＝（ｖｊ１，ｖｊ２）｝と表すことができる。つまり、各枝ｅｊは、２つのノードｖｊ１とｖｊ２の間の無向枝であることを示す。
【０１２８】
また、ドロネー三角形Ｄｕの各ノードに対して、当該ノードの属性情報に基づいてラベルが生成されたドロネー三角形Ｄｕは、Ｄｕ＝（Ｖ，Ｅ，ｌ）のように形式的に定義することができる。ＶおよびＥは、上記の通りである。ｌは、各ノードラベルを示し、ｌ：｛ｌ１，ｌ２，・・・，ｌｎ，ｌｉ∈Σ，Σ＝｛０，１｝ｐ｝と表すことができる。つまり、ノードラベルｌは、ｌ１からｌｎ要素を含み、長さｐのビット列で表現されることを示す。
【０１２９】
また、ドロネー三角形Ｄｕの各ノードラベル対して、さらに隣接情報が付与された各ドロネー三角形ＤＬｕも、例えば、ＤＬｕ＝（Ｖ，Ｅ，ｌ）のように形式的に定義することができる。ＶおよびＥは、上記の通りである。各ノードラベルｌは、ｌ１からｌｎ要素を含み、さらに隣接情報が考慮されたためにビット数が増える。このときの、ビット列の長さをｑとすると、ｌ：｛ｌ１，ｌ２，・・・，ｌｎ，ｌｉ∈Σ，Σ＝｛０，１｝ｑ｝と表すことができる。すなわち、未知パターンデータ８０は、ドロネー三角形ＤｎおよびＤＬｎに関する情報を記憶したデータである。
【０１３０】
ビットデータ８１は、自ノード部９２ａがノードそれぞれについて、自ノードの属性情報をビット列で表現したラベルを生成する際に用いるデータであり、属性情報毎に所定のビット列が対応付けられている。すなわち、ビットデータ８１は、ラベル生成のためのルールを記憶したデータといえる。また、ビットデータ８１は、識別モデル生成装置２０のビットデータ４１に対応し、データ内容は図３Ａに示した通りである。
【０１３１】
類似度データ８２は、検証対象として入力された未知パターンと、既知パターンとの類似度をその組み合わせに対応付けて記憶したデータである。
【０１３２】
欠陥情報８３は、検証部９４により検証された結果を記憶したデータである。例えば、欠陥情報８３は、未知パターンにおける欠陥の有無に関する情報やその情報の信頼度といった検証結果を記憶したデータである。
【０１３３】
制御部７４は、レイアウト検証部６０を制御するデバイスである。制御部７４としては、ＣＰＵ、ＭＰＵ等の電子回路や、ＡＳＩＣ、ＦＰＧＡ等の集積回路を採用できる。制御部７４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部７４は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部７４は、受付部９０と、グラフ生成部９１と、ラベル生成部９２と、算出部９３と、検証部９４と、提示部９５とを有する。
【０１３４】
受付部９０は、各種の受付を行う。例えば、受付部９０は、未知パターンデータ８０として用いる未知パターンの入力を受け付ける。例えば、受付部９０は、図示しない入力画面を表示させ、入力画面から未知パターンデータ８０として用いる未知パターンの入力を受付ける。入力された未知パターンは、未知パターンデータ８０として記憶される。
【０１３５】
グラフ生成部９１は、レイアウトパターンを構成する図形の頂点を結んでドロネー三角分割を配線層毎に行って、図形の頂点を結んで得られる複数の三角形を求める。すなわち、グラフ生成部９１は、識別モデル生成装置２０のグラフ生成部５１と同様の処理を行う部位であるため詳細な説明は省略する。なお、グラフ生成部９１は、例えば、未知パターンＰｕから生成したドロネー三角形Ｄｕに関する情報（座標等）を未知パターンデータ８０として、未知パターンＰｕに対応付けて格納する。
【０１３６】
ラベル生成部９２は、未知パターンに含まれるノード毎に、自ノードの属性情報および自ノードに隣接する隣接ノードとの属性情報である隣接情報とに基づいたラベルを生成する。図１に示すように、ラベル生成部９２は、自ノード部９２ａと隣接ノード部９２ｂとを有する。
【０１３７】
自ノード部９２ａは、未知パターンに含まれるノード毎に、自ノードの属性情報に基づく基盤となるラベルを生成する。具体的には、自ノード部９２ａは、未知パターンから生成されたドロネー三角形のノード毎に、自ノードの属性情報を所定長のビット列表現したラベルを生成する。例えば、自ノード部９２ａは、グラフ生成部９１により未知パターンＰｕから生成されたドロネー三角形Ｄｕのノード毎に、自ノードの属性情報を所定長のビット列表現したラベルを生成する。そして、自ノード部９２ａは、生成したラベル情報を未知パターンデータ８０として、未知パターンＰｕに対応付けて格納する。
【０１３８】
また、隣接ノード部９２ｂは、自ノード部９２ａにより自ノードの属性情報に基づき生成されたノードラベル毎に、さらに隣接情報を付与する。上述したように、隣接情報とは、自ノードに隣接する隣接ノードとの属性情報が表現された所定長のビット列である。具体的には、隣接ノード部９２ｂは、自ノードの属性情報が表現された所定長のビット列と、隣接ノードとの属性情報が表現された所定長のビット列とを重なりなく結合することにより、属性情報に基づく基盤ラベルにさらに隣接情報を付与したノードラベルを生成する。例えば、隣接ノード部９２ｂは、ドロネー三角形Ｄｕにおいて、自ノード部９２ａにより自ノードの属性情報に基づいて生成されたノードラベル毎に、当該ノードラベルと重ならないよう隣接情報を付与する。そして、隣接ノード部９２ｂは、隣接情報を付与したラベル情報を未知パターンデータ８０として、未知パターンＰｕに対応付けて格納する。
【０１３９】
以上のことから、対象が未知パターンか既知パターンであるかの違いだけであり、ラベル生成部９２における自ノード部９２ａおよび隣接ノード部９２ｂは、識別モデル生成装置２０の自ノード部５２ａおよび隣接ノード部５２ｂと同様の処理を行う部位である。よって、詳細な説明は省略する。
【０１４０】
算出部９３は、所定の２つのレイアウトパターンの類似度を算出する。具体的には、算出部９３は、未知パターンと、既知パターンデータ４０に格納されている全ての既知パターンとの類似度を算出する。例えば、算出部９３は、未知パターンＰｕと、既知パターン集合Ｐ１，・・・，Ｐｎにおける全ての既知パターンとの類似度を算出する。つまり、算出部９３は、既知パターンデータ４０から一つの既知パターン（例えば、既知パターンＰ１）を取得し、未知パターンＰｕとの類似度を算出する。そして、算出部９３は、未知パターンＰｕと既知パターンＰ１といった組み合わせに対応付けて、算出した類似度を類似度データ８２として格納する。次に、算出部９３は、既知パターンデータ４０から別の一つの既知パターンを取得し、同様に未知パターンＰｕとの類似度を算出し、算出結果を格納する。算出部９３は、このような処理を全ての組合せについて行う。
【０１４１】
具体的な処理としては、算出部９３は、例えば、未知パターンＰｕに対応するドロネー三角形Ｄｕと、既知パターンＰ１に対応するドロネー三角形Ｄｕにおいて、対応するノードラベルのマッチング値ｋを算出する。ここで、算出部５３の説明で記載したように、算出部９３は、対応するノードにおいて、そのビット列の完全一致を判定するか、あるいは、上位所定数一致を判定するかをチューニング可能にされる。そして、算出部９３は、算出したマッチング値ｋを類似度として格納する。
【０１４２】
以上のことから、未知パターンと既知パターンとの類似度を算出する、または、既知パターン同士の類似度を算出するかの違いだけであって、算出部９３は、算出部５３と同様の処理を行う部位である。よって、詳細な説明は省略する。
【０１４３】
検証部９４は、算出部９３により算出された未知パターンと既知パターンとの各組合せの類似度と、識別モデル生成部５４により生成された識別モデルとを用いて、未知パターンの欠陥の有無を検証する。また、検証部９４は、検証結果の信頼度を算出する。
【０１４４】
具体的には、検証部９４は、上記の（４）式として示した識別モデルｆ（ＤＬ）に基づく下記の（５）式を解くことにより、例えば、隣接情報考慮ラベル付ドロネー三角形ＤＬｕ、すなわち、未知パターンＰｕに対する欠陥の有無を判定する。
【０１４５】
【数２】
0006464763.tif 000003
【０１４６】
検証部９４は、既知パターン集合Ｐ１，・・・，Ｐｎに基づく隣接情報考慮ラベル付ドロネー三角形集合ＤＬ１，・・・，ＤＬｎと、未知パターンＰｕに基づく隣接情報考慮ラベル付ドロネー三角形集合ＤＬｕとの類似度に基づくカーネル行列Ｋ（ＤＬｉ，ＤＬｕ）を生成する。そして、検証部９４は、生成したカーネル行列を（５）式に代入することで、（５）式の解を得る。
【０１４７】
そして、検証部９４は、ｆ（ＤＬｕ）≧０の場合は、欠陥ありと識別し、ｆ（ＤＬｕ）＜０の場合は、欠陥なしと識別する。また、検証部９４は、このような欠陥に関する情報の信頼度として｜ｆ（ＤＬｕ）｜を算出する。また、検証部９４は、このような欠陥に関する情報やその情報の信頼度を欠陥情報８３として、未知パターンＰｕに対応付けて格納する。
【０１４８】
提示部９５は、算出部９３により算出された類似度に基づいて、既知パターンを未知パターンとの類似度が高い順に提示する。このとき、提示部９５は、検証部９４により求められた欠陥の有無に関する情報やその情報の信頼度も提示する。例えば、提示部９５は、検証部９４から未知パターンＰｕの検証終了を示す信号を受け付けた場合に、類似度データ８２を参照し、未知パターンＰｕとの類似度の大きさに応じた順位付けを各既知パターンに対して行う。そして、提示部９５は、例えば、各順位に既知パターン名と、パターンの図面と、類似度とを対応付け、表示部７１を介して提示する。また、提示部９５は、欠陥情報８３から、未知パターンＰｕの欠陥の有無に関する情報やその情報の信頼度を取得し、表示部７１を介して提示する。
【０１４９】
ここで、図１３に、表示部７１により表示された画面の一例を示す。図１３は、未知パターンの欠陥に関する情報と、既知パターンを未知パターンとの類似度の高い順に表示した画面の一例を示す図である。図１３の例は、検証部９４が未知パターン「Ｕ１００２２」は欠陥ありと識別し、その検証結果の信頼度を「０．９７」と算出したことを示している。また、図１３の例は、算出部９３が未知パターン「Ｕ１００２２」と、既知パターン「Ｐ０２５」、「Ｐ００２」、「Ｐ００８」、「Ｐ０２７」それぞれとの類似度を、「０．９９」、「０．９８」、「０．９７」、「０．５８」と算出したことを示す。さらに、図１３の例は、提示部９５が、未知パターン「Ｕ１００２２」との類似度の大きさに応じた順位として、「Ｐ０２５：１位」、「Ｐ００２：２位」、「Ｐ００８：３位」、「Ｐ０２７：４位」といった順位付けを行ったことを示す。
【０１５０】
なお、図１３では、表示部７１を介して順位１位〜４位までの既知パターンを提示する例を示しているが、この例に限らず、例えば、１〜１０位までであってもよい。すなわち、どの順位まで提示するかは、提示部９５に対し任意に設定されてよい。
【０１５１】
次に、本実施例１に係るレイアウト検証部６０が実行する処理の流れを図１４を参照しながら説明する。ここでは、図１４は、未知パターンＰｕにおける欠陥の検証に関する全体的な処理の流れを示したフローチャートである。なお、各部の詳細なフローについては、図１０〜図１２を用いて上記しているためここでは省略する。
【０１５２】
受付部９０は、未知パターンＰｕに関するデータ入力を受け付けたか否かを判定する（Ｓ５０１）。未知パターンＰｕに関するデータとは、未知パターンＰｕを構成する矩形や多角形の集合Ｐｕ：｛Ｐ１，Ｐ２，・・・，Ｐｋ，ＰＮ｝や、例えば、各多角形Ｐｋの頂点座標（ｘｋｎ，ｙｋｎ）やその多角形が存在する配線層の識別情報Ｌｋ等である。
【０１５３】
受付部９０は、未知パターンＰｕに関するデータを受け付けたと判定した場合には（Ｓ５０１；Ｙｅｓ）、受け付けた情報を未知パターンデータ８０として格納するとともに、グラフ生成部９１へと処理を移行する。一方、受付部９０は、未知パターンＰｕに関するデータを受け付けていないと判定した場合には（Ｓ５０１；Ｎｏ）、受け付けるまで待機する。
【０１５４】
グラフ生成部９１は、未知パターンＰｕに対するドロネー三角形Ｄｕを生成する（Ｓ５０２）。具体的には、グラフ生成部９１は、未知パターンＰｕを構成する図形の頂点を結んでドロネー三角分割を行い、図形の頂点を結んで得られる複数の三角形を求める。また、グラフ生成部９１は、生成したドロネー三角形Ｄｕにおける座標等の各種情報を、未知パターンデータ８０として未知パターンＰｕに対応付けて格納するとともに、ラベル生成部９２へ処理を移行する。
【０１５５】
ラベル生成部９２は、未知パターンに含まれるノード毎に、自ノードの属性情報および自ノードに隣接する隣接ノードとの属性情報である隣接情報とに基づいたラベルを生成する。
【０１５６】
まず、ラベル生成部９２における自ノード部９２ａが、未知パターンＰｕから生成されたドロネー三角形Ｄｕについてノード毎に、自ノードの属性情報を所定長のビット列で表現した基盤となるラベルを生成する（Ｓ５０３）。
【０１５７】
自ノード部９２ａは、自ノードの属性情報に基づくラベルを生成したドロネー三角形Ｄｕ（Ｄｕ＝（Ｖ，Ｅ，ｌ））の各ノードラベルｌの値（ビット列）を、未知パターンデータ８０として未知パターンＰｕに対応付けて格納する。そして、自ノード部９２ａは、隣接ノード部９２ｂへ処理を移行する。
【０１５８】
次に、ラベル生成部９２における隣接ノード部９２ｂは、ドロネー三角形Ｄｕそれぞれについて、自ノード部９２ａにより自ノードの属性情報に基づき生成されたノードラベル毎に、さらに隣接情報を付与する（Ｓ５０４）。隣接情報とは、自ノードに隣接する隣接ノードとの属性情報が表現された所定長のビット列である。具体的には、隣接ノード部９２ｂは、自ノードの属性情報が表現された所定長のビット列と、隣接ノードとの属性情報が表現された所定長のビット列とを重なりなく結合することで、属性情報に基づく基盤ラベルにさらに隣接情報を付与したノードラベルを生成する。
【０１５９】
隣接ノード部９２ｂは、隣接情報を付与したドロネー三角形ＤＬｕ（ＤＬｕ＝（Ｖ，Ｅ，ｌ））の各ノードラベルｌの値（ビット列）を、未知パターンデータ８０として、未知パターンＰｕに対応付けて格納する。そして、隣接ノード部９２ｂは、算出部９３へ処理を移行する。
【０１６０】
算出部９３は、所定の２つのレイアウトパターンの類似度を算出する。具体的には、算出部９３は、未知パターンと、既知パターンデータ４０に格納されている全ての既知パターンとの類似度を算出する（Ｓ５０５）。例えば、算出部９３は、未知パターンデータ８０から未知パターンＰｕの属性情報および隣接情報に基づくノードラベルを取得する。また、算出部９３は、既知パターンデータ４０から１つの既知パターンの属性情報および隣接情報に基づくノードラベルを取得する。そして、算出部９３は、各パターンについて、取得したノードラベルを基数ソートし、未知パターンＰｕと所定の１つの既知パターンとで対応するノードラベルの一致を判定することによりマッチング値ｋを算出する。算出部９３は、算出したマッチング値ｋを類似度データ８２として、未知パターンＰｕと既知パターンの組合せに対応付けて格納する。そして、算出部９３は、既知パターンデータ４０から別の１つの既知パターンのノードラベルを取得することにより、未知パターンＰｕとの類似度を算出することを繰り返し、全ての既知パターンに対してこれを行う。
【０１６１】
検証部９４は、未知パターンの欠陥を検証する。具体的には、検証部９４は、算出部９３により算出された未知パターンと既知パターンとの各組合せの類似度と、識別モデル生成部５４により生成された識別モデルとを用いて、未知パターンの欠陥の有無を検証する（Ｓ５０６）。また、検証部９４は、検証結果である欠陥の有無に関する情報の信頼度も算出する。具体的には、検証部９４は、上記の（５）式に、かかる類似度に基づくカーネル行列を代入することで、欠陥の有無を示す解を算出する。そして、検証部９４は、求めた欠陥に関する情報やその情報の信頼度を欠陥情報８３として、未知パターンＰｕに対応付けて格納するとともに、提示部９５へ処理を移行する。
【０１６２】
提示部９５は、算出部９３により算出された類似度に基づいて、既知パターンを未知パターンとの類似度が高い順に提示する（Ｓ５０７）。このとき、提示部９５は、検証部９４により求められた欠陥の有無に関する情報やその情報の信頼度も提示する。例えば、提示部９５は、検証部９４から未知パターンＰｕの検証終了を示す信号を受け付けた場合に、類似度データ８２を参照し、未知パターンＰｕとの類似度の大きさに応じた順位付けを各既知パターンに対して行う。また、提示部９５は、欠陥情報８３から、未知パターンＰｕの欠陥の有無に関する情報やその情報の信頼度を取得する。そして、提示部９５は、例えば、既知パターン名、パターン図面、類似度を順位に対応付け、未知パターンＰｕの欠陥の有無に関する情報やその情報の信頼度とともに提示する。
【０１６３】
上述してきたように、レイアウト検証装置１０は、ラベル生成部９２（ラベル生成部５２）と、算出部９３（算出部５３）と、検証部９４とを有する。ラベル生成部９２は、第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成する。算出部９３は、欠陥に係る情報が付与された第二のレイアウトパターンと、第一のレイアウトパターンとの類似度を、ラベルを用いて算出する。検証部９４は、類似度に基づいて第一のレイアウトパターンの欠陥を検証する。これにより、レイアウト検証装置１０は、第一のレイアウトパターンを精度よく検証することができる。
【０１６４】
また、レイアウト検証装置１０においてラベル生成部９２は、自ノードの属性情報が表現された所定長のビット列と、隣接するノードの属性情報が表現された所定長のビット列とを、重なりなく結合して前記ラベルを生成する。これにより、レイアウト検証装置１０は、各ノードについて、自ノードの属性情報と隣接情報とを考慮した一つのノードラベルとして表現することができるため、例えば、特徴項目が増えることによる検証の際のオーバーフィッティングを回避することができる。このためレイアウト検証装置１０は、類似度を高精度に算出することにつなげることができる。
【０１６５】
また、レイアウト検証装置１０においてラベル生成部９２は、属性情報として、配線であるかビアであるかを示す情報、凸点であるか凹点であるかを示す情報、パターン中心からの距離、隣接するノードの個数、隣接するノード間の最短距離のいずれか一つまたは複数に基づいて、ラベルを生成する。これにより、レイアウト検証装置１０は、各ノードについて、自ノードの複数の属性情報と隣接情報とを考慮した一つのノードラベルとして表現することができるため、例えば、特徴項目が増えることによる検証の際のオーバーフィッティングを回避することができる。このため、レイアウト検証装置１０は、類似度を高精度に算出することにつなげることができる。
【０１６６】
また、レイアウト検証装置１０において識別モデル生成部５４は、複数の第二のレイアウトパターンと欠陥の有無とを対応付けたデータセットと、第二のレイアウトパターン同士の類似度に基づく類似度行列とを用いて、欠陥の有無を識別する識別モデルを生成する。これにより、レイアウト検証装置１０は、第一のレイアウトパターンにおける欠陥の有無の検証を高精度に行うことができる。
【０１６７】
また、レイアウト検証装置１０において提示部９５は、第二のレイアウトパターンを、第一のレイアウトパターンとの類似度が高い順に提示する。これにより、レイアウト検証装置１０は、ユーザに対し、第一のレイアウトパターンとの類似度の大きさに応じて第二のレイアウトパターンをその類似度とともに複数一度に視認させることができるため、ユーザの満足度を高めることができる。
【実施例２】
【０１６８】
上述してきたように、レイアウト検証装置１０は、欠陥の検証に用いる識別モデルを生成する識別モデル生成装置２０と、実際に欠陥の検証を行うレイアウト検証部６０といった異なる２つの装置によって構成される例について説明してきた。しかし、レイアウト検証装置１０は、識別モデル生成装置２０と、レイアウト検証部６０とが１つの装置として構成されてもよい。
【０１６９】
すなわち、識別モデル生成装置２０と、レイアウト検証部６０とが一体化された装置をレイアウト検証装置１０としてもよく、このような場合、図１を参照し、同一名の部位を一つの部位として構成させることができる。例えば、受付部５０と９０、グラフ生成部５１と９１、ラベル生成部５２と９２、算出部５３と９３において、これら各組合せの部位が行う処理は、互いに同一であり対応している部位であるため、一つの部位として構成させることができる。具体的には、上記各組合せの部位において、処理対象が未知パターンであるか、既知パターンであるか、また、処理対象の組合せが既知パターン同士であるか、未知パターンと既知パターンであるかの違いであり、処理動作そのものに違いはないため、一つの部位として構成させることができる。また、ビットデータ４１および８１も記憶しているデータ内容は同一のものであるため、一つの部位として構成させることができる。
【実施例３】
【０１７０】
さて、これまでレイアウト検証装置１０について、実施例１および実施例２で説明してきた。しかし、レイアウト検証装置１０は、かかる実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【０１７１】
実施例１では、レイアウト検証装置１０は、未知パターンとして、１つの未知パターンＰｕの入力を受け付け、その欠陥を検証する例について説明してきたが、この例に限定されるものではない。例えば、レイアウト検証装置１０は、複数の未知パターンの入力を受け付けてもよい。そして、レイアウト検証装置１０は、受け付けた複数の未知パターンの全てを同時に、または、順に検証してもよい。また、レイアウト検証装置１０は、受け付けた複数の未知パターンのうち所定数を選択させ、それらを同時に、または、順に検証してもよい。
【０１７２】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１７３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１７４】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１７５】
[レイアウト検証プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１５は、欠陥箇所予測プログラムを実行するコンピュータを示す図である。
【０１７６】
図１５に示すように、コンピュータ３００は、ＣＰＵ３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３１０〜３４０の各部は、バス４００を介して接続される。
【０１７７】
ＲＯＭ３２０には上記実施例の各処理部と同様の機能を発揮するレイアウト検証プログラム３２０ａが予め記憶される。例えば、上記実施例の受付部９０、グラフ生成部９１、ラベル生成部９２、算出部９３、検証部９４および提示部９５と同様の機能を発揮するレイアウト検証プログラム３２０ａを記憶させる。なお、欠陥箇所予測プログラム３２０ａについては、適宜分離しても良い。
【０１７８】
ＨＤＤ３３０には、各種データを記憶する。例えば、ＨＤＤ３３０は、ＯＳや各種データを記憶する。
【０１７９】
そして、ＣＰＵ３１０が、レイアウト検証プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、欠陥箇所予測プログラム３２０ａは、実施例の受付部９０、グラフ生成部９１、ラベル生成部９２、算出部９３、検証部９４および提示部９５と同様の動作を実行する。
【０１８０】
なお、上記した欠陥箇所予測プログラム３２０ａについては、必ずしも最初からＲＯＭ３２０に記憶させることを要しない。レイアウト検証プログラム３２０ａはＨＤＤ３３０に記憶させてもよい。
【０１８１】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、Compact  Disk  Read  Only  Memory（ＣＤ−ＲＯＭ）、Digital  Versatile  Disk（ＤＶＤ）、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１８２】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１８３】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１８４】
（付記１）第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成するラベル生成部と、
欠陥に係る情報が付与された第二のレイアウトパターンと、前記第一のレイアウトパターンとの類似度を、前記ラベルを用いて算出する算出部と、
前記類似度に基づいて、前記第一のレイアウトパターンの欠陥を検証する検証部と
を有することを特徴とするレイアウト検証装置。
【０１８５】
（付記２）前記ラベル生成部は、自ノードの属性情報が表現された所定長のビット列と、前記隣接するノードの属性情報が表現された所定長のビット列とを、重なりなく結合して前記ラベルを生成する
ことを特徴とする付記１に記載のレイアウト検証装置。
【０１８６】
（付記３）前記ラベル生成部は、前記属性情報として、配線であるかビアであるかを示す情報、凸点であるか凹点であるかを示す情報、パターン中心からの距離、隣接するノードの個数、隣接するノード間の最短距離のいずれか一つまたは複数に基づいて、前記ラベルを生成する
ことを特徴とする付記１または２に記載のレイアウト検証装置。
【０１８７】
（付記４）複数の前記第二のレイアウトパターンと欠陥の有無とを対応付けたデータセットと、前記第二のレイアウトパターン同士の類似度に基づく類似度行列とを用いて、前記欠陥の有無を識別する識別モデルを生成する識別モデル生成部をさらに有し、
前記検証部は、前記識別モデルを用いて、前記第一のレイアウトパターンの欠陥を検証する
ことを特徴とする付記１〜３の何れか一つに記載のレイアウト検証装置。
【０１８８】
（付記５）前記第二のレイアウトパターンを、前記第一のレイアウトパターンとの前記類似度が高い順に提示する提示部をさらに有する
ことを特徴とする付記１〜４の何れか一つに記載のレイアウト検証装置。
【０１８９】
（付記６）コンピュータが、
第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成するラベル生成し、
欠陥に係る情報が付与された第二のレイアウトパターンと、前記第一のレイアウトパターンとの類似度を、前記ラベルを用いて算出する算出し、
前記類似度に基づいて、前記第一のレイアウトパターンの欠陥を検証する検証する
処理を実行することを特徴とするレイアウト検証方法。
【０１９０】
（付記７）自ノードの属性情報が表現された所定長のビット列と、前記隣接するノードの属性情報が表現された所定長のビット列とを、重なりなく結合して前記ラベルを生成する
ことを特徴とする付記６に記載のレイアウト検証方法。
【０１９１】
（付記８）前記属性情報として、配線であるかビアであるかを示す情報、凸点であるか凹点であるかを示す情報、パターン中心からの距離、隣接するノードの個数、隣接するノード間の最短距離のいずれか一つまたは複数に基づいて、前記ラベルを生成する
ことを特徴とする付記６または７に記載のレイアウト検証方法。
【０１９２】
（付記９）複数の前記第二のレイアウトパターンと欠陥の有無とを対応付けたデータセットと、前記第二のレイアウトパターン同士の類似度に基づく類似度行列とを用いて、前記欠陥の有無を識別する識別モデルを生成する識別モデル生成し、
前記識別モデルを用いて、前記第一のレイアウトパターンの欠陥を検証する
ことを特徴とする付記６〜８の何れか一つに記載のレイアウト検証方法。
【０１９３】
（付記１０）前記第二のレイアウトパターンを、前記第一のレイアウトパターンとの前記類似度が高い順に提示する
ことを特徴とする付記６〜９の何れか一つに記載のレイアウト検証装置。
【０１９４】
（付記１１）コンピュータが、
第一のレイアウトパターンに含まれるノード毎に、当該ノードの属性情報および当該ノードに隣接するノードとの属性情報とに基づいたラベルを生成するラベル生成し、
欠陥に係る情報が付与された第二のレイアウトパターンと、前記第一のレイアウトパターンとの類似度を、前記ラベルを用いて算出する算出し、
前記類似度に基づいて、前記第一のレイアウトパターンの欠陥を検証する検証する
処理を実行することを特徴とするレイアウト検証プログラム。
【０１９５】
（付記１２）自ノードの属性情報が表現された所定長のビット列と、前記隣接するノードの属性情報が表現された所定長のビット列とを、重なりなく結合して前記ラベルを生成する
ことを特徴とする付記１１に記載のレイアウト検証プログラム。
【０１９６】
（付記１３）前記属性情報として、配線であるかビアであるかを示す情報、凸点であるか凹点であるかを示す情報、パターン中心からの距離、隣接するノードの個数、隣接するノード間の最短距離のいずれか一つまたは複数に基づいて、前記ラベルを生成する
ことを特徴とする付記１１または１２に記載のレイアウト検証プログラム。
【０１９７】
（付記１４）複数の前記第二のレイアウトパターンと欠陥の有無とを対応付けたデータセットと、前記第二のレイアウトパターン同士の類似度に基づく類似度行列とを用いて、前記欠陥の有無を識別する識別モデルを生成する識別モデル生成し、
前記識別モデルを用いて、前記第一のレイアウトパターンの欠陥を検証する
ことを特徴とする付記１１〜１３の何れか一つに記載のレイアウト検証プログラム。
【０１９８】
（付記１５）前記第二のレイアウトパターンを、前記第一のレイアウトパターンとの前記類似度が高い順に提示する
ことを特徴とする付記１１〜１４の何れか一つに記載のレイアウト検証プログラム。
【符号の説明】
【０１９９】
１０      レイアウト検証装置
２０      識別モデル生成装置
３０      記憶部
３１      制御部
４０      既知パターンデータ
４１      ビットデータ
４２      類似度データ
４３      識別モデル情報
５０      受付部
５１      グラフ生成部
５２      ラベル生成部
５２ａ    自ノード部
５２ｂ    隣接ノード部
５３      算出部
５４      識別モデル生成部
６０      レイアウト検証部
７０      入力部
７１      表示部
７２      通信Ｉ／Ｆ部
７３      記憶部
７４      制御部
８０      未知パターンデータ
８１      ビットデータ
８２      類似度データ
８３      欠陥情報
９０      受付部
９１      グラフ生成部
９２      ラベル生成部
９２ａ    自ノード部
９２ｂ    隣接ノード部
９３      算出部
９４      検証部
９５      提示部
【図１】
0006464763.tif 000004
【図２】
0006464763.tif 000005
【図３Ａ】
0006464763.tif 000006
【図３Ｂ】
0006464763.tif 000007
【図４】
0006464763.tif 000008
【図５】
0006464763.tif 000009
【図６Ａ】
0006464763.tif 000010
【図６Ｂ】
0006464763.tif 000011
【図７】
0006464763.tif 000012
【図８】
0006464763.tif 000013
【図９】
0006464763.tif 000014
【図１０】
0006464763.tif 000015
【図１１】
0006464763.tif 000016
【図１２】
0006464763.tif 000017
【図１３】
0006464763.tif 000018
【図１４】
0006464763.tif 000019
【図１５】
0006464763.tif 000020