JP2015191617A - 算出プログラム、算出装置および算出方法 - Google Patents
算出プログラム、算出装置および算出方法 Download PDFInfo
- Publication number
- JP2015191617A JP2015191617A JP2014070456A JP2014070456A JP2015191617A JP 2015191617 A JP2015191617 A JP 2015191617A JP 2014070456 A JP2014070456 A JP 2014070456A JP 2014070456 A JP2014070456 A JP 2014070456A JP 2015191617 A JP2015191617 A JP 2015191617A
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- feature amount
- graph
- order
- structure data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims description 351
- 238000000547 structure data Methods 0.000 claims abstract description 116
- 239000013598 vector Substances 0.000 claims description 105
- 239000011159 matrix material Substances 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 description 82
- 230000014509 gene expression Effects 0.000 description 36
- 238000006467 substitution reaction Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4097—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35134—3-D cad-cam
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Manufacturing & Machinery (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
Abstract
【課題】構造物データの検索に適した特徴量を効率的に算出できる。【解決手段】記憶部1aは、複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を記憶する。演算部1bは、記憶部1aからグラフの情報を取得する。演算部1bは、対称多項式の演算に用いられる次数およびパラメータをグラフの情報に基づいて決定する。演算部1bは、決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する。【選択図】図1
Description
本発明は算出プログラム、算出装置および算出方法に関する。
現在、3次元モデルの描画を支援するソフトウェアが利用されている。例えば、製図を支援する技術として、CAD(Computer Aided Design)がある。CADのソフトウェアを実行するコンピュータは、入力デバイスを用いたユーザの入力操作に応じて3次元の構造物を描画し、ディスプレイに表示させる。ユーザは、ディスプレイに描画された内容を視認することで、構造物の立体的なイメージを把握しながら製図を行える。
例えば、コンピュータでは、3次元の座標情報を用いて3次元の形状を表し得る。3次元の形状を表すデータ形式の一例にSTL(Standard Triangulated Language)がある。STLでは、複数の三角形の組合せで3次元モデルの形状を表す。STLデータは、1つの三角形に対し、3つの頂点の座標と三角形の面に対する法線ベクトルとの情報を含む。
ところで、ある3次元モデルに対して、別の3次元モデルを検索することがある。例えば、製品の設計において、ある部品に類似する形状の部品を設計済であるかを確認して重複設計を抑える場合である。そこで、3次元モデルに対して形状が類似する他の3次元モデルを検索する方法が考えられている。例えば、3次元モデルの形状の特徴を定量化する。特徴を表す量(特徴量)が近似する3次元モデル同士は、形状も類似していると考えられる。複数の種類の特徴量を含む特徴ベクトルを用いて検索を行うこともある。
例えば、ボクセル化および細線化を用いて3次元オブジェクトをスケルトングラフに変換し、スケルトングラフを更に処理して、探索用のグラフ関連特徴ベクトル成分(稜線ループやノード等の数)を識別する提案がある。また、3次元画像の検索における照会用の特性記述子として、3次元モデルのボリュームやバウンディング球体(物体モデルの最長軸の半分に等しい半径の球体)の半径、色のヒストグラムおよびウェーブレット係数などを用いる提案もある。
上記のように構造物の3次元形状を多角形の組合せとして表すことがある。構造物の頂点は多角形の頂点により表され、構造物の2つの頂点を結ぶ辺は多角形の辺により表される。このとき、構造物の頂点をノード、構造物の2つの頂点を結ぶ辺をエッジとし、ノードやエッジに所定の重みを設定した重み付きグラフを構造物データから生成し、重み付きグラフの特徴量を構造物データの特徴量とすることが考えられる。そこで、構造物データの検索に適した特徴量をどのように効率的に求めるかが問題となる。
例えば、形状検索用のグラフの特徴量には、ノードへの番号付けの順序に依存しないこと(対称群不変性)が求められる。ところが、ノードの重みのように対称性が考慮されていない量から対称群不変な量を計算するとき、ノード数に応じてその計算コストが極度に増大するおそれがある。
1つの側面では、本発明は、構造物データの検索に適した特徴量を効率的に算出できる算出プログラム、算出装置および算出方法を提供することを目的とする。
1つの態様では、算出プログラムが提供される。この算出プログラムは、複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、対称多項式の演算に用いられる次数およびパラメータをグラフの情報に基づいて決定し、決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、処理をコンピュータに実行させる。
また、1つの態様では、算出装置が提供される。この算出装置は、記憶部と演算部とを有する。記憶部は、複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を記憶する。演算部は、対称多項式の演算に用いられる次数およびパラメータを記憶部に記憶された情報に基づいて決定し、決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する。
また、1つの態様では、算出方法が提供される。この算出方法では、コンピュータが、複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、対称多項式の演算に用いられる次数およびパラメータをグラフの情報に基づいて決定し、決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する。
1つの側面では、構造物データの検索に適した特徴量を効率的に算出できる。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の算出装置を示す図である。算出装置1は、3次元の構造物を示す構造物データの特徴量を計算する。ここで、構造物データでは、構造物は複数の多角形により表される。具体的には、構造物の表面を複数の多角形の平面の組合せにより近似的に表す。ここで、多角形を意味するポリゴン(polygon)という用語を、物体を3次元で表現する際の要素としての多角形を示す用語として用いることもある。例えば、ポリゴンを三角形とするデータ形式としてSTLがある。
[第1の実施の形態]
図1は、第1の実施の形態の算出装置を示す図である。算出装置1は、3次元の構造物を示す構造物データの特徴量を計算する。ここで、構造物データでは、構造物は複数の多角形により表される。具体的には、構造物の表面を複数の多角形の平面の組合せにより近似的に表す。ここで、多角形を意味するポリゴン(polygon)という用語を、物体を3次元で表現する際の要素としての多角形を示す用語として用いることもある。例えば、ポリゴンを三角形とするデータ形式としてSTLがある。
算出装置1は、1つの構造物データに対して複数の種類の特徴量を計算してもよい。複数の種類の特徴量を総称して特徴ベクトルと呼ぶこともある。例えば、特徴量(または特徴ベクトル)は、構造物データの検索に用いられる。検索を行う装置は、検索クエリで指定された構造物データの特徴量とライブラリ内の構造物データの特徴量とを照合することで、指定された構造物データが示す形状に類似するライブラリ内の他の構造物データを検索し得る。検索結果は、検索を行う装置に接続されたディスプレイに表示されたり、検索クエリの入力元の端末装置に送信されたりする。算出装置1が検索機能を有してもよい。
類似形状の検索機能は、例えば、部品などの設計において重複設計を抑える場合や、ある部品が原因で製品の故障が発生したときに、類似する部品の故障履歴や故障原因を調べる場合に利用され得る。
算出装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、例えば、プロセッサを含む。プロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)でもよいし、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路でもよい。また、プロセッサは、複数のプロセッサの集合(マルチプロセッサ)でもよい。プロセッサは、例えば、記憶部1aに記憶されたプログラムを実行するものでもよい。
記憶部1aは、構造物データに対応するグラフの情報を記憶する。グラフは、構造物データで示される構造物の頂点をノード、構造物の2つの頂点(ノードに対応する)を結ぶ辺をエッジとする。エッジで接続されたノードは、互いに隣接する関係にあるといえる。ここで、構造物の頂点は多角形の頂点により表され、構造物の2つの頂点を結ぶ辺は多角形の辺により表される。具体的には、構造物の1つの頂点は、3以上の多角形により共有される頂点に対応する。構造物の2つの頂点を結ぶ1つの辺は隣接する2つの多角形により共有される辺に対応する。
また、グラフは、ノードおよびエッジに対する所定の重みを含む。例えば、構造物の重心と頂点との距離を当該頂点に対応するノードの重みとし、辺の長さを当該辺に対応するエッジの重みとすることが考えられる。この場合、ノードおよびエッジの重みは、構造物の大きさや構造物の辺同士の角度などの形状が反映された情報であると考えられる。例えば、構造物がN個(Nは4以上の整数)の頂点を含むとする。各ノードの重みをN個の要素をもつベクトルXで表し、各エッジの重みをN行N列の行列Wにより表す。
式(1)において、ベクトルXのj列目(jは1≦j≦Nの整数)の要素はj個目のノードの重みに相当する。式(2)において、i行j列目(iは1≦i≦Nの整数)の要素は、i個目のノードとj個目のノードとを結ぶエッジの重みに相当する。行列Wでは、対角要素およびエッジが存在しないノード間に相当する要素は“0”である。
演算部1bは、記憶部1aに記憶されたグラフの情報を取得し、対称多項式の演算に用いられる次数およびパラメータをグラフの情報に基づいて決定する。演算部1bは、決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する。
ここで、形状検索用のグラフの特徴量には、ノードへの番号付けの順序に依存しないこと(対称群不変性)が求められる。そこで、演算部1bは、ノードへの番号付けの順序に依存しない量(対称群不変量)をグラフから求め、構造物データの特徴量とする。演算部1bは、そのための演算に対称多項式を用いる。対称多項式は、n変数多項式で、n個の変数を入れ替えても値が変わらない性質(対称群不変性)をもつ。すると、次のようにして特徴量を計算し得る。まず、ベクトルXに対しN行N列の行列D(X)を定義する。行列D(X)の各要素は式(3)で表せる。
式(3)において、δはクロネッカーのデルタであり、δi=j=1、δi≠j=0である。このとき、行列Wと行列D(X)とを用いた次の行列Mlが考えられる。
行列WD(X)は、エッジの重みを考慮して、各ノードの重みを隣接するノードへ伝搬させる操作を示す。式(4)の添え字l(lは1以上の整数)で示されるパラメータは、その操作をl回実行することを意味する。ここで、以下では対称多項式の一例として冪和対称多項式pを考える。k次の冪和対称多項式pkは式(5)で表せる。
演算部1bは、冪和対称多項式pkに行列Mlの要素をあてはめるために、2階のテンソル(行列Mで表される量)を1階のテンソル(ベクトルで表される量)に変換する。1つの方法としては、行列Mlの対角要素(対角成分)をもつベクトル(N個の要素をもつ)を生成することが考えられる。その場合、演算部1bは、式(6)のように、行列Mlの対角要素を冪和対称多項式pkの各変数に代入することで、対称群不変量pk,lを求めることができる。
なお、2階のテンソルから1階のテンソルへ変換する方法は他の方法でもよい。例えば、行列Mlのj列目の各要素の和を1つの要素として、合計N個の要素をもつベクトルを生成してもよい。また、行列Mlのi行目の各要素の和を1つの要素として、合計N個の要素をもつベクトルを生成してもよい。
あるいは、行列Mlのi行目(またはj列目)の各要素(N個ある)をpk,lに代入して、N個の要素をもつベクトルを生成し、その計算結果を更に冪和対称多項式に代入してもよい。例えば、j列目のN個の要素を用いてN個のpk,lを計算し、その計算結果を更に冪和対称多項式に代入して求まる値pk,l 'は、式(7)のように表せる。pk,l 'も対称群不変量である。
式(6)や式(7)の対称多項式の演算には、次数kおよびパラメータlが用いられる。演算部1bは、次数kおよびパラメータlをグラフの情報に基づいて決定する。例えば、演算部1bは、ノードやエッジの重みの分布(例えば、ばらつきの度合い)に応じて次数kとパラメータlとを決定することが考えられる。ばらつきの度合いを示す量としては、例えば、ノードやエッジの重みの相対誤差(標準偏差÷平均)が考えられる。
より具体的には、ライブラリに登録された全て(あるいは一部)の構造物データのグラフがもつ重みの相対誤差が大きいほど、次数kおよびパラメータlを小さい値とする。言い換えれば、ライブラリに登録された全て(あるいは一部)の構造物データのグラフがもつ重みの相対誤差が小さいほど、次数kおよびパラメータlを大きい値とする。
演算部1bは、ノードおよびエッジの何れかに着目して相対誤差を評価してもよいし、ノードおよびエッジの両方に着目して相対誤差を評価してもよい。また、演算部1bは、次数k=K、パラメータl=Lと決定したとき、1≦k≦K,1≦l≦Lの全ての整数k,lの組合せについて特徴量を計算し、各特徴量を要素にもつ特徴ベクトルを生成してもよい。
算出装置1によれば、複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報が取得される。対称多項式の演算に用いられる次数およびパラメータがグラフの情報に基づいて決定される。決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量が算出される。これにより、構造物データの検索に適した特徴量を効率的に算出できる。具体的には次の通りである。
形状検索用のグラフの特徴量には、ノードへの番号付けの順序に依存しないこと(対称群不変性)が求められる。同じ形状でもノードへの番号付けの順序が違えば異なる特徴量となるようでは、検索を適切に行えないからである。
対称群不変性をもたない量を、対称群不変性をもつ量(対称群不変量)に変換するとき、その計算コストが問題となる。グラフのノード数をNとすると、対称群の位数はN!となり、それらを全て考慮にいれた対称群不変量を、ノードやエッジの重みから計算するのは容易でない。
例えば、単純に、(x1 a1x2 a2・・・xN aN)+(x2 a1x1 a2・・・xN aN)+・・・+(xN a1xN-1 a2・・・x1 aN)(指数a1,a2,・・・,aNは互いに異なり、各指数に対し変数を入れ換えて作った全パターンの項について和をとる。項数はN!)を計算して特徴量とすることも考えられる。しかし、この計算はO(N!)の計算複雑性(O(N!)の計算量)となり、ノード数の増加に対して計算コストが極度に増大してしまう。このため、構造物の頂点数が増大するほど特徴量を算出するための計算コストが膨大になる。また、例えば、クリーク(ノードの部分集合のうち、部分集合に属する任意の2つのノード間にエッジが存在するもの)の数を求めるなど、NP(Non-deterministic Polynomial time)困難な問題を用いると、計算コストが膨大となり現実的でない。
そこで、算出装置1は、特徴量の計算に対称多項式を用いることで、対称群不変量を計算する際の計算コストを軽減する。上記の冪和対称多項式の例によれば、式(7)を用いてもO(N2)の計算複雑性に抑えることができる。
このとき、算出装置1は、グラフの情報から次数kやパラメータlを決定する。前述のように、ノードおよびエッジの重みは、構造物の形状を反映した情報であると考えられる。例えば、式(6)で示されるように、重みの乗算回数は次数kとパラメータlとの積klで求められる。乗算は一般に値の違いを大きくする。重みの差異が特徴量に極端に大きく反映され過ぎると、比較的小さな形状の差異が比較的大きな特徴量の差異として表されてしまい、検索時の特徴量の照合において、類似の判定が困難になるおそれがある。
そこで、演算部1bは、乗算で重みの違いが極端に大きくならないように次数kおよびパラメータlをグラフの重みの情報から動的に調整することで、類似形状の検索用途に適した特徴量を算出できる。また、算出装置1によれば乗算回数klを所定の基準で制限できるので、グラフの情報によらずに固定的にk,lを決定して無暗に乗算を重ねるよりも、検索に適した特徴量を比較的小さな計算コストで取得できる。
[第2の実施の形態]
図2は、第2の実施の形態の算出装置のハードウェア例を示す図である。算出装置100は、CADによる3次元での構造物の設計を支援する。算出装置100は、ユーザによる操作入力を受け付けると、当該操作入力に応じた3次元の図形を算出装置100に接続されたディスプレイに表示させる。ユーザは、算出装置100に対して既存の(設計済の)構造物のデータの検索を依頼できる。
図2は、第2の実施の形態の算出装置のハードウェア例を示す図である。算出装置100は、CADによる3次元での構造物の設計を支援する。算出装置100は、ユーザによる操作入力を受け付けると、当該操作入力に応じた3次元の図形を算出装置100に接続されたディスプレイに表示させる。ユーザは、算出装置100に対して既存の(設計済の)構造物のデータの検索を依頼できる。
例えば、ユーザは、算出装置100を用いて、所定の3次元構造を描き、当該構造に類似する他の構造物を算出装置100に検索させる。算出装置100は、指定された構造物に形状が類似する他の構造物をライブラリから検索し、ユーザに提示する。ライブラリは、設計済である種々の構造物データを格納したデータベースである。ライブラリは、算出装置100に内蔵された記憶装置に格納される。ライブラリは、算出装置100が接続するネットワーク10に接続された記憶装置に格納されていてもよい。以下の説明では、構造物の形状を示す3次元モデル(多面体)を指して、単に構造物と称することがある。
算出装置100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、読み取り装置106および通信インタフェース107を有する。各ユニットは算出装置100のバスに接続されている。
プロセッサ101は、算出装置100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、算出装置100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、算出装置100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。算出装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、算出装置100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部105は、算出装置100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、例えば、マウス、デジタイザおよびタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
読み取り装置106は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置106は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク10を介して他の装置と通信を行う。通信インタフェース107は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図3は、ポリゴンおよび構造物の例を示す図である。図3(A)は、構造物を形成する1つのポリゴンを例示している。第2の実施の形態では、ポリゴンの一例として三角形を想定する。算出装置100は、例えばSTL形式の構造物データによりポリゴンを管理する。ただし、四角形や五角形など、他の多角形でもよい。図3(B)は、複数のポリゴンで形成される構造物として、八面体を例示している。八面体の表面は複数のポリゴンの組合せによって表される。図3(B)では表側の4つのポリゴンの法線ベクトルも示されている。
ポリゴン51は、三角形の3つの頂点K1,K2,K3の座標およびポリゴン51の表側の表面に対する法線ベクトルrの情報を含む。法線ベクトルrの長さは単位長さでもよい。座標および法線ベクトルは、直交するx,y,zの3軸に対する座標値を用いて表される。
なお、ポリゴン51の表裏は、構造物データにおける3つの頂点K1,K2,K3の座標の定義の順番により区別することもできる。頂点K1,K2,K3はポリゴン51の表側から見たときに、1つ目の頂点から反時計周りに2つ目の頂点、3つ目の頂点と順番に定義される。
図4は、算出装置の機能例を示す図である。算出装置100は、記憶部110、グラフ化部120、パラメータ設定部130、特徴量計算部140および検索部150を有する。記憶部110は、RAM102やHDD103に確保された記憶領域を用いて実現できる。グラフ化部120、パラメータ設定部130、特徴量計算部140および検索部150は、プロセッサ101によって実行されるプログラムのモジュールであってもよい。
記憶部110は、各部の処理に用いられる情報を記憶する。記憶部110が記憶する情報は、構造物データ、グラフデータおよび特徴ベクトルデータを含む。構造物データは、構造物の形状を示すSTL形式のデータである。構造物データは、作図された構造物毎に記憶部110に複数格納される。記憶部110に記憶された複数の構造物データ(構造物データ群)を指して、ライブラリと称することもある。
グラフデータは、構造物データから生成されたグラフの情報である。グラフは、ノードおよびエッジに所定の重みをもつ重み付けグラフである。特徴ベクトルデータは、グラフデータから計算された特徴ベクトルを構造物データ毎に管理するための情報である。ただし、ネットワーク10を介して算出装置100からアクセス可能な記憶装置がある場合、算出装置100は、構造物データ、グラフデータおよび特徴ベクトルデータを当該記憶装置に格納してもよい。
グラフ化部120は、構造物データをグラフに変換し、記憶部110に格納する。具体的には、グラフ化部120は、構造物データで示される構造物の頂点をノード、構造物の頂点を結ぶ辺をエッジとしたグラフを生成する。グラフ化部120は、構造物の重心と頂点との距離を当該頂点に対応するノードの重みとする。グラフ化部120は、辺の長さを、当該辺に対応するエッジの重みとする。
パラメータ設定部130は、特徴量計算部140の演算に用いられるパラメータなどを決定する。後述するように、特徴量計算部140は、特徴量の計算に対称多項式(対称式と呼ばれることもある)を用いる。パラメータ設定部130は、記憶部110に記憶された各構造物のグラフデータがもつ重みの統計量に基づいて、対称多項式の演算に用いられる次数やパラメータを決定する。
特徴量計算部140は、パラメータ設定部130により決定された次数とパラメータと対称多項式とを用いて、グラフに含まれる重みやノードの接続関係の情報に応じた特徴量を計算する。特徴量計算部140は、複数の種類の特徴量を計算し、構造物の特徴ベクトルとする。
特徴量計算部140は、ライブラリに登録された構造物データ毎に、特徴ベクトルを予め算出しておく。特徴量計算部140は、算出した特徴ベクトルを、構造物データに対応付けて記憶部110に格納された特徴ベクトルデータに登録する。特徴量計算部140は、検索クエリで指定された構造物データに対して特徴ベクトルを計算することもある。
検索部150は、構造物の検索クエリを受け付ける。例えば、ユーザは、入力デバイス12を操作して、所定の検索クエリを算出装置100に入力できる。検索部150は、ネットワーク10を介して接続された他の情報処理装置から検索クエリを受け付けてもよい。検索クエリは、構造物データまたは構造物データを指定する情報を含む。
検索部150は、グラフ化部120、パラメータ設定部130および特徴量計算部140を用いて検索クエリで指定された構造物データに対する特徴ベクトルを求める。検索部150は、検索クエリで指定された構造物データに対する特徴ベクトルを、記憶部110に記憶された特徴ベクトルデータに登録された特徴ベクトルと照合して、検索クエリで指定された形状に類似する形状を表す構造物データを検索する。例えば、検索では、検索クエリで指定された構造物データに対する特徴ベクトルと、ライブラリ内の構造物データに対する特徴ベクトルとを要素毎に比較し、差の合計が小さいものほど、一致度が高いと判断することが考えられる。検索部150は、ディスプレイ11に検索結果を表示させるなどして、ユーザに提示する。
ここで、特徴量計算部140は特徴量の計算に種々の対称多項式を利用できる。対称多項式については、文献“Symmetric functions and Hall polynomials second edition (Oxford Mathematical Monographs)”(Ian Grant MacDonald, New York :Oxford University Press, 1995)が参考になる。例えば、次のような対称多項式が考えられる。
(1)基本対称多項式
0次から3次までの基本対称多項式e0,e1,e2,e3は式(8)で表される。ただし、j,k,lは正の整数である。nは変数の個数であり正の整数である。
0次から3次までの基本対称多項式e0,e1,e2,e3は式(8)で表される。ただし、j,k,lは正の整数である。nは変数の個数であり正の整数である。
(2)完全対称多項式
1次から3次までの完全対称多項式h1,h2,h3は式(9)で表される。ただし、j,k,lは正の整数である。nは変数の個数であり正の整数である。
1次から3次までの完全対称多項式h1,h2,h3は式(9)で表される。ただし、j,k,lは正の整数である。nは変数の個数であり正の整数である。
(3)モノミアル対称多項式
正の整数dが与えられたとき、非増加の非負整数列d1,d2,・・・,dnへ整数dを分解したときの非負整数列をdの分割(partition)または整分割(integer partition)と呼び、λで表す。dとd1,d2,・・・,dnとの関係は式(10)で表される。
正の整数dが与えられたとき、非増加の非負整数列d1,d2,・・・,dnへ整数dを分解したときの非負整数列をdの分割(partition)または整分割(integer partition)と呼び、λで表す。dとd1,d2,・・・,dnとの関係は式(10)で表される。
分割λに対してモノミアル対称多項式を得ることができる。例えば、d=5の分割λ=(3,1,1)の場合のモノミアル対称多項式は式(11)で表される。
また、例えば、d=6の分割λ=(3,2,1)の場合のモノミアル対称多項式は式(12)で表される。
分割λに対する整数dは多項式の次数に相当する(下記の多項式についても同様)。
(4)冪和対称多項式
第1の実施の形態で例示したように、k次の冪和対称多項式は式(13)で表される。ただし、kは正の整数である。nは変数の個数であり正の整数である。
(4)冪和対称多項式
第1の実施の形態で例示したように、k次の冪和対称多項式は式(13)で表される。ただし、kは正の整数である。nは変数の個数であり正の整数である。
(5)シューア多項式
まず、ファンデルモンド行列式(Vandermonde determinant)は、式(14)で表される。ただし、j,kは正の整数である。nは変数の個数であり正の整数である。
まず、ファンデルモンド行列式(Vandermonde determinant)は、式(14)で表される。ただし、j,kは正の整数である。nは変数の個数であり正の整数である。
分割λ=(d1,d2,・・・,dn)に対するシューア多項式は、式(14)を用いて式(15)で表される。
例えば、分割λ=(2,1),λ=(1,1,1)に対するシューア多項式は、それぞれ式(16),(17)で表される。
(6)ジャック対称多項式
分割λ、パラメータα、変数x1,x2,・・・,xmに対するジャック対称多項式Jλ(α)(x1,x2,・・・,xm)は、次の通りである。
分割λ、パラメータα、変数x1,x2,・・・,xmに対するジャック対称多項式Jλ(α)(x1,x2,・・・,xm)は、次の通りである。
m=1のとき、ジャック対称多項式Jλ(α)は式(18)で表される。
m>1のとき、ジャック対称多項式Jλ(α)は式(19)で表される。
ここで、式(19)の和の記号Σにおけるμは、全ての分割μについて和をとることを示す。分割μは、skew partition λ/μ(skew Young図形で表される)がhorizontal stripであり、式(20)の条件を満たすものである。
なお、μn=0である。そうでなければJμ(x1,・・・,xn-1)=0である。ただし、分割λなどの記号の左下の添え字は、当該分割における整数要素を示している。また、式(19)のβλμは、式(21)、(22)で表される。
Bに含まれる分割λ’,μ’は、それぞれ分割λ,μに共役な分割(conjugate partition)である。更に、式(21)の積の記号Πにおける(i,j)∈λは、分割λのYoung図形に含まれる全ての箱の座標(i,j)(i行j列の位置を示す指標)に対する計算であることを示す。
ここで、μ⊂λであるようなYoung図形λ,μに対し、λ\μ(N×Nの部分集合としての差集合。Nは自然数全体の集合)と表されるN×Nの部分集合をskew Young図形と呼び、λ/μと表す。|λ/μ|=|λ|−|μ|とする。horizontal stripとは、skew Young図形のうち、1つの列に高々1つしか箱を含まないものを示す。一方、1つの行に高々1つしか箱を含まないものはvertical stripと呼ばれる。
図5は、skew Young図形の例である。図5(A)は、horizontal stripおよびvertical stripの何れにも該当しないskew Young図形を例示している。図5(A)では、λ=(5,3,1)、μ=(1,1)である。なお、図5では行(紙面横方向)および列(紙面縦方向)を識別しやすいように、行および列を示す番号を付している。
図5(B)は、horizontal stripを例示している。図5(B)では、λ=(5,3,1,1)、μ=(3,1,1)である。図5(C)は、vertical stripを例示している。図5(C)では、λ=(2,2,1,1,1)、μ=(1,1,1)である。
例えば、分割λ=(2,1),λ=(1,1,1)に対するジャック対称多項式は、それぞれ式(23),(24)で表される。
(7)ホール−リトルウッド(Hall-Littlewood)対称多項式
分割λ、パラメータt、変数x1,x2,・・・,xnに対するホール−リトルウッド対称多項式は、式(25)で表される。
分割λ、パラメータt、変数x1,x2,・・・,xnに対するホール−リトルウッド対称多項式は、式(25)で表される。
ただし、m(i)はiに等しい要素である。Snは位数n!の対称群である。例えば、分割λ=(2,1),λ=(1,1,1)に対するホール−リトルウッド対称多項式は、それぞれ式(26),(27)で表される。
(8)マクドナルド(Macdonald)対称多項式
An型のマクドナルド対称多項式(以下、単にマクドナルド対称多項式という)を用いる。マクドナルド対称多項式はパラメータt,qを含む。例えば、分割λ=(2,1),λ=(1,1,1)に対するマクドナルド対称多項式は、それぞれ式(28),(29)で表される。
An型のマクドナルド対称多項式(以下、単にマクドナルド対称多項式という)を用いる。マクドナルド対称多項式はパラメータt,qを含む。例えば、分割λ=(2,1),λ=(1,1,1)に対するマクドナルド対称多項式は、それぞれ式(28),(29)で表される。
なお、上記の説明では、幾つかの次数で各対称多項式を例示したが他の次数としてもよい。また、幾つかの種類の対称多項式では単純な具体例として3変数の場合を例示したが、4変数以上に対応するものも利用可能である。更に、特徴量の計算に利用可能な幾つかの種類の対称多項式を例示したが、他の種類の対称多項式を利用することを妨げるものではない。
図6は、構造物データの例を示す図である。構造物データ111は、次のようなフォーマットである。なお、構造物データ111の左側に付した番号は行番号である。“solid”の文字列の後には、構造物の識別情報(例えば、“構造物A”)が設定される(1行目)。
“facet normal”の文字列の後には、法線ベクトルの成分が設定される(2行目)。“facet normal”の行(2行目)から“endfacet”の行(8行目)までが1つのポリゴンの情報に相当する。“vertex”の文字列の後には、ポリゴンの頂点の座標が設定される。三角形のポリゴンを考えているから、1つのポリゴンに対し、“vertex”の文字列を用いて3つの頂点の座標が設定されることになる。
また、構造物データ111によれば、法線ベクトルでもポリゴンの表裏を区別できるし、ポリゴンの頂点の座標の設定順によってもポリゴンの表裏を区別できる。同様にして、9行目以降に他のポリゴンが順次定められる。構造物データ111の末尾行は“endsolid”の文字列が設定される(15行目)。
図7は、グラフデータの例を示す図である。ここでは、グラフデータ112のフォーマットとしてGraphML形式を想定する。GraphMLでは、XML(eXtensible Markup Language)の記法を用いてノードおよびエッジを記述する。ただし、他の形式のフォーマットとしてもよい。また、無向グラフを想定するが、有向グラフでもよい。なお、グラフデータ112の左側に付した番号は行番号である。
例えば、3行目の記述は、エッジに対するキー“key0”を定義している。key id“key0”のタグにより、エッジの重み(“weight”)に相当する属性をエッジに付与する。エッジの重みは、エッジに対応する辺の長さである。
4行目の記述は、ノードに対するキー“key1”を定義している。key id“key1”のタグにより、ノードの重み(“weight”)に相当する属性をノードに付与する。ノードの重みは、ノードに対応する頂点と構造物の重心との間の距離である。
例えば、グラフデータ112によれば、ノードID“n0”のノード(7行目〜9行目)に対して、重み“3.3166”が設定されている。ノードID“n1”のノード(10行目〜12行目)などの他のノードも同様に表される。
また、グラフデータ112によれば、エッジID“e0”のエッジは、ノードID“n1”のノードとノードID“n0”のノードとを結ぶエッジであり、重みは“1.4142”である(15行目〜17行目)。エッジID“e1”のエッジ(18行目〜20行目)などの他のエッジも同様に表される。ここで、ノードおよびエッジの重みは、ベクトルや行列を用いて扱える。例えば、簡単な例として四面体を考える。
図8は、四面体の例を示す図である。図8の四面体は、直交座標系(各軸をx軸,y軸,z軸とする)における頂点p1,p2,p3,p4をもつ。頂点p1の座標は(1,0,0)である。頂点p2の座標は(0,1,0)である。頂点p3の座標は(0,0,1)である。頂点p4の座標は原点Oである。この四面体は、例えば、4つのポリゴンにより形成される。4つのポリゴンとは、具体的には、三角形p1p2p3、三角形p2p3p4、三角形p3p4p1および三角形p4p1p2である。
例えば、四面体の重心と頂点との距離を、各頂点(あるいは、頂点に対応するグラフのノード)の重みとするなら、頂点重みベクトルXは式(30)で表される。
また、四面体の辺の長さを、各辺(あるいは、辺に対応するグラフのエッジ)の重みとするなら、辺重み行列Wは式(31)で表される。
ここで、i行j列目の要素は、頂点piと頂点pjとを結ぶ辺の長さに対応する。1つの頂点では辺を作れないので対角要素は0である。
グラフにおけるノードやエッジの重みは上記のようにベクトルXや行列Wで表せる。特徴量計算部140は、これらの重みを反映したベクトルを生成して、当該ベクトルの要素を対称多項式の変数にあてはめる。具体的には、式(3)で示される行列D(X)を生成する。式(30)のベクトルXに対する行列D(X)は、式(32)で表される。
グラフにおけるノードやエッジの重みは上記のようにベクトルXや行列Wで表せる。特徴量計算部140は、これらの重みを反映したベクトルを生成して、当該ベクトルの要素を対称多項式の変数にあてはめる。具体的には、式(3)で示される行列D(X)を生成する。式(30)のベクトルXに対する行列D(X)は、式(32)で表される。
そして、式(4)で示される行列Mlを生成する。例えば、l=1のときの行列M1=M=D(X)WD(X)は、式(33)で表される。
ここで、行列Mlのi行j列の要素は、式(34)のように表される。
例えば、行列MlをN個(Nは頂点(ノード)数)の要素をもつベクトルに変換するには、次のようなsumR演算(式(35))、sumC演算(式(36))およびdiag演算(式(37))が考えられる。
sumR演算では、行列Mlの列毎に和をとる。sumC演算では、行列Mlの行毎に和をとる。diag演算では、行列Mlの対角要素を抽出する。
更に、2階のテンソルから1階のテンソルを生成する方法には、上記のsumR演算、sumC演算およびdiag演算以外の方法も考えられる。例えば、n変数の対称多項式fjは、式(38)で表される。
更に、2階のテンソルから1階のテンソルを生成する方法には、上記のsumR演算、sumC演算およびdiag演算以外の方法も考えられる。例えば、n変数の対称多項式fjは、式(38)で表される。
これは、行列Mlのj(列を示す)を固定し、i(行を示す)を振ったものである。すると、対称多項式fjに対して、同じ種類の、または、異なる種類の対称多項式gを考えることができる。対称多項式gは、式(39)で表される。
対称多項式gの計算結果も対称群不変量である。すなわち、行列Mlおよび対称多項式fjに対して、ベクトル(f1,f2,・・・,fn)を生成してもよい。あるいは、行列Mlのi(行を示す)を固定し、j(列を示す)振った対称多項式fi(i=1,2,・・・,n)の値を要素にもつベクトルを生成することも考えられる。
算出装置100は、これらの演算を利用して、以下のように対称多項式を用いた特徴量の計算を行う。まず、対称多項式の計算で用いられる次数およびパラメータを決定する手順を例示する。
図9は、次数およびパラメータの決定例を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
(S1)パラメータ設定部130は、記憶部110に記憶された全てのグラフデータに関して、ノードおよびエッジの重みの平均値μと、標準偏差σとを算出する。
(S1)パラメータ設定部130は、記憶部110に記憶された全てのグラフデータに関して、ノードおよびエッジの重みの平均値μと、標準偏差σとを算出する。
(S2)パラメータ設定部130は、パラメータK,Lを算出する。具体的には、パラメータK,Lは、式(40)で表される。
式(40)の角括弧記号(“[]”)は、ガウス記号である(すなわち、小数点以下を切り捨てて整数化することを示す)。ただし、小数点以下を四捨五入または切り上げて、K,Lを整数化してもよい。式(40)で示されるように、パラメータ設定部130は、相対誤差(σ/μ)が大きい程、K,Lを小さい値とする。なお、後述するように、パラメータKは特徴量を算出する際の対称多項式の次数(特徴量の計算に用いる最大の次数)に相当する。
(S3)パラメータ設定部130は、パラメータt,q,αを算出する。具体的には、式(41)によりパラメータt,αを求める。式(42)によりパラメータqを求める。
(S4)パラメータ設定部130は、決定したパラメータK,L,t,q,αを記憶部110に格納する。
このように、算出装置100は、グラフデータに含まれる重みの分布に基づいて、対称多項式の演算に用いられる次数およびパラメータを決定する。なお、ステップS1では、記憶部110に記憶された(ライブラリ内の)一部のグラフデータに関して、重みに関する平均値μおよび標準偏差σといった統計量を求めてもよい。例えば、所定数のグラフデータをサンプリングして統計量を求めることが考えられる。
このように、算出装置100は、グラフデータに含まれる重みの分布に基づいて、対称多項式の演算に用いられる次数およびパラメータを決定する。なお、ステップS1では、記憶部110に記憶された(ライブラリ内の)一部のグラフデータに関して、重みに関する平均値μおよび標準偏差σといった統計量を求めてもよい。例えば、所定数のグラフデータをサンプリングして統計量を求めることが考えられる。
また、構造物データが、幾つかのカテゴリ(例えば、機械部品、電子部品など)に分類されているなら、カテゴリ毎に次数およびパラメータを算出してもよい。すると、算出装置100は、構造物データが属するカテゴリ毎の次数およびパラメータを用いて、図10以降に示す手順により当該構造物データに対する特徴量を計算し得る。
あるいは、算出装置100は、特徴量の算出対象の構造物データ毎(グラフデータ毎)に、当該構造物データに対応するグラフデータから各パラメータを決定してもよい。例えば、特徴量の算出対称の構造物データ毎に、当該構造物データに対応するグラフデータのみを用いて、構造物データ毎に専用の次数およびパラメータを決定してもよい。すると、算出装置100は構造物データ毎の次数およびパラメータを用いて、図10以降に示す手順により当該構造物データに対する特徴量を計算し得る。
例えば、上記で挙げたライブラリ内のグラフデータ全体、カテゴリ、構造物データ(グラフデータ)の何れを単位としてパラメータ(次数も含む)を決定するかを、実際の運用(あるいは、運用テスト)に応じて選択することも考えられる。すると、構造物データの検索の精度をより向上できる方法を運用に応じて選択できるようになる。
更に、ステップS1において、算出装置100は、ノードおよびエッジの両方に着目して相対誤差を評価するものとしたが、ノードおよびエッジの何れかに着目して相対誤差を評価してもよい。また、算出装置100は、特徴量の算出に用いる対称多項式のパラメータに限定して計算してもよい(例えば、ジャック対称多項式を用いないならパラメータαを求めなくてもよい)。そして、算出装置100は、決定されたパラメータを用いて、下記の何れかの手順により特徴ベクトルを計算する。以降においてNは、ノード数である。
図10は、特徴ベクトルの算出例(その1)を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(S11)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S11)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S12)特徴量計算部140は、k次の基本対称多項式ekを選択する。ここで、kは、1≦k≦Kの整数である。ただし、k>Nのとき、ek=0とする。
(S13)特徴量計算部140は、行列Mlに対して、sumC演算(式(36))、sumR演算(式(35))、diag演算(式(37))それぞれにより取得されるベクトルY1j l,Y2i l,Y3i lを計算する。ただし、lは、1≦l≦Lの整数である。ベクトルY1j l,Y2i l,Y3i lは、式(43)、(44)、(45)で表される。
(S13)特徴量計算部140は、行列Mlに対して、sumC演算(式(36))、sumR演算(式(35))、diag演算(式(37))それぞれにより取得されるベクトルY1j l,Y2i l,Y3i lを計算する。ただし、lは、1≦l≦Lの整数である。ベクトルY1j l,Y2i l,Y3i lは、式(43)、(44)、(45)で表される。
(S14)特徴量計算部140は、変数aに0を代入する。
(S15)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS16〜S21を実行する。
(S15)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS16〜S21を実行する。
(S16)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS17〜S20を実行する。
(S17)特徴量計算部140は、m=1,2,3と順番に代入して、mの代入値毎に、ステップS18,S19を実行する。
(S17)特徴量計算部140は、m=1,2,3と順番に代入して、mの代入値毎に、ステップS18,S19を実行する。
(S18)特徴量計算部140は、式(46)で示されるF(a)=ek,lの値を計算する。
(S19)特徴量計算部140は、aにa+1を代入する。
(S20)特徴量計算部140は、m=3までの計算が完了すると、処理をステップS21に進める。それ以外の場合は、処理をステップS17に進める。
(S20)特徴量計算部140は、m=3までの計算が完了すると、処理をステップS21に進める。それ以外の場合は、処理をステップS17に進める。
(S21)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS22に進める。それ以外の場合は、処理をステップS16に進める。
(S22)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS23に進める。それ以外の場合は、処理をステップS15に進める。
(S22)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS23に進める。それ以外の場合は、処理をステップS15に進める。
(S23)特徴量計算部140は、F=(F(0),F(1),・・・,F(3KL))を、ステップS11で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
このように、算出装置100は、基本対称多項式を用いて特徴量および特徴ベクトルを算出する。例えば、算出装置100は、基本対称多項式の代わりに完全対称多項式や冪和対称多項式などを用いても、図10に示した手順と同様の手順を実行できる。
図11は、特徴ベクトルの算出例(その2)を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(S31)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S31)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S32)特徴量計算部140は、k次の完全対称多項式hkを選択する。ここで、kは、1≦k≦Kの整数である。ただし、k>Nのとき、hk=0とする。
(S33)特徴量計算部140は、式(4)により行列Mlを計算する。
(S33)特徴量計算部140は、式(4)により行列Mlを計算する。
(S34)特徴量計算部140は、変数aに0を代入する。
(S35)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS36〜S41を実行する。
(S35)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS36〜S41を実行する。
(S36)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS37〜S40を実行する。
(S37)特徴量計算部140は、k’=1からk’=Kまで順番に代入して、k’の代入値毎に、ステップS38,S39を実行する。
(S37)特徴量計算部140は、k’=1からk’=Kまで順番に代入して、k’の代入値毎に、ステップS38,S39を実行する。
(S38)特徴量計算部140は、式(47)で示されるF(a)=hk(k’,l)の値を計算する。
(S39)特徴量計算部140は、aにa+1を代入する。
(S40)特徴量計算部140は、k’=Kまでの計算が完了すると、処理をステップS41に進める。それ以外の場合は、処理をステップS37に進める。
(S40)特徴量計算部140は、k’=Kまでの計算が完了すると、処理をステップS41に進める。それ以外の場合は、処理をステップS37に進める。
(S41)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS42に進める。それ以外の場合は、処理をステップS36に進める。
(S42)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS43に進める。それ以外の場合は、処理をステップS35に進める。
(S42)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS43に進める。それ以外の場合は、処理をステップS35に進める。
(S43)特徴量計算部140は、F=(F(0),F(1),・・・,F(K2L))を、ステップS31で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
このように、算出装置100は2階のテンソル(行列に相当)を1階のテンソル(ベクトルに相当)に変換する際に対称多項式を利用し、当該1階のテンソルの各要素を同じ種類の対称多項式の各変数に代入して特徴量を計算してもよい。これにより、グラフに含まれる重みを適切に特徴量に反映させることができる。
図12は、特徴ベクトルの算出例(その3)を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(S51)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S51)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S52)特徴量計算部140は、k(1≦k≦Kの整数)に対し、kの分割λを取得する。すなわち、特徴量計算部140は、k=1,2,・・・,Kの各整数に対し、複数の分割λを取得することになる。
(S53)特徴量計算部140は、ステップS52で取得した分割λによって定まるモノミアル対称多項式mλを選択する。
(S54)特徴量計算部140は、式(4)により行列Mlを計算する。
(S54)特徴量計算部140は、式(4)により行列Mlを計算する。
(S55)特徴量計算部140は、変数aに0を代入する。
(S56)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS57〜S64を実行する。
(S56)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS57〜S64を実行する。
(S57)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS58〜S63を実行する。
(S58)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS59〜S62を実行する。
(S58)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS59〜S62を実行する。
(S59)特徴量計算部140は、現在のkに対する全ての分割λ’について、分割λ’毎に、ステップS60,S61を実行する。
(S60)特徴量計算部140は、式(48)で示されるF(a)=mλ(λ’,l)の値を計算する。
(S60)特徴量計算部140は、式(48)で示されるF(a)=mλ(λ’,l)の値を計算する。
(S61)特徴量計算部140は、aにa+1を代入する。
(S62)特徴量計算部140は、現在のkに対する全ての分割λ’について計算が完了すると、処理をステップS63に進める。それ以外の場合は、処理をステップS59に進める。
(S62)特徴量計算部140は、現在のkに対する全ての分割λ’について計算が完了すると、処理をステップS63に進める。それ以外の場合は、処理をステップS59に進める。
(S63)特徴量計算部140は、現在のkに対する全ての分割λについて計算が完了すると、処理をステップS64に進める。それ以外の場合は、処理をステップS58に進める。
(S64)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS65に進める。それ以外の場合は、処理をステップS57に進める。
(S65)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS66に進める。それ以外の場合は、処理をステップS56に進める。
(S65)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS66に進める。それ以外の場合は、処理をステップS56に進める。
(S66)特徴量計算部140は、F=(F(0),F(1),・・・)を、ステップS51で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
図13は、特徴ベクトルの算出例(その4)を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
(S71)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S71)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S72)特徴量計算部140は、k次の冪和対称多項式pkを選択する。ここで、kは、1≦k≦Kの整数である。
(S73)特徴量計算部140は、式(4)により行列Mlを計算する。
(S73)特徴量計算部140は、式(4)により行列Mlを計算する。
(S74)特徴量計算部140は、変数aに0を代入する。
(S75)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS76〜S81を実行する。
(S75)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS76〜S81を実行する。
(S76)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS37〜S40を実行する。
(S77)特徴量計算部140は、k’=1からk’=Kまで順番に代入して、k’の代入値毎に、ステップS78,S79を実行する。
(S77)特徴量計算部140は、k’=1からk’=Kまで順番に代入して、k’の代入値毎に、ステップS78,S79を実行する。
(S78)特徴量計算部140は、式(49)で示されるF(a)=pk(k’,l)の値を計算する。
(S79)特徴量計算部140は、aにa+1を代入する。
(S80)特徴量計算部140は、k’=Kまでの計算が完了すると、処理をステップS81に進める。それ以外の場合は、処理をステップS77に進める。
(S80)特徴量計算部140は、k’=Kまでの計算が完了すると、処理をステップS81に進める。それ以外の場合は、処理をステップS77に進める。
(S81)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS82に進める。それ以外の場合は、処理をステップS76に進める。
(S82)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS83に進める。それ以外の場合は、処理をステップS75に進める。
(S82)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS83に進める。それ以外の場合は、処理をステップS75に進める。
(S83)特徴量計算部140は、F=(F(0),F(1),・・・,F(K2L))を、ステップS71で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
図14は、特徴ベクトルの算出例(その5)を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
(S91)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S91)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,Lとを取得する。
(S92)特徴量計算部140は、k(1≦k≦Kの整数)に対し、kの分割λを取得する。すなわち、特徴量計算部140は、k=1,2,・・・,Kの各整数に対し、複数の分割λを取得することになる。
(S93)特徴量計算部140は、ステップS92で取得した分割λによって定まるシューア多項式sλおよびモノミアル対称多項式mλを選択する。
(S94)特徴量計算部140は、式(4)により行列Mlを計算する。
(S94)特徴量計算部140は、式(4)により行列Mlを計算する。
(S95)特徴量計算部140は、変数aに0を代入する。
(S96)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS97〜S104を実行する。
(S96)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS97〜S104を実行する。
(S97)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS98〜S103を実行する。
(S98)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS99〜S102を実行する。
(S98)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS99〜S102を実行する。
(S99)特徴量計算部140は、現在のkに対する全ての分割λ’について、分割λ’毎に、ステップS100,S101を実行する。
(S100)特徴量計算部140は、式(50)で示されるF(a)=sλ(λ’,l)の値を計算する。
(S100)特徴量計算部140は、式(50)で示されるF(a)=sλ(λ’,l)の値を計算する。
(S101)特徴量計算部140は、aにa+1を代入する。
(S102)特徴量計算部140は、現在のkに対する全ての分割λ’について計算が完了すると、処理をステップS103に進める。それ以外の場合は、処理をステップS99に進める。
(S102)特徴量計算部140は、現在のkに対する全ての分割λ’について計算が完了すると、処理をステップS103に進める。それ以外の場合は、処理をステップS99に進める。
(S103)特徴量計算部140は、現在のkに対する全ての分割λについて計算が完了すると、処理をステップS104に進める。それ以外の場合は、処理をステップS98に進める。
(S104)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS105に進める。それ以外の場合は、処理をステップS97に進める。
(S105)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS106に進める。それ以外の場合は、処理をステップS96に進める。
(S105)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS106に進める。それ以外の場合は、処理をステップS96に進める。
(S106)特徴量計算部140は、F=(F(0),F(1),・・・)を、ステップS91で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
このように、算出装置100は、2階のテンソルを1階のテンソルに変換する際に対称多項式(第1の種類の対称多項式)を利用し、その結果を他種類の対称多項式(第2の種類の対称多項式)に代入して特徴量を計算してもよい。これにより、グラフに含まれる重みを適切に特徴量に反映させることができる。
図15は、特徴ベクトルの算出例(その6)を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
(S111)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,L,αとを取得する。
(S111)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,L,αとを取得する。
(S112)特徴量計算部140は、k(1≦k≦Kの整数)に対し、kの分割λを取得する。すなわち、特徴量計算部140は、k=1,2,・・・,Kの各整数に対し、複数の分割λを取得することになる。
(S113)特徴量計算部140は、ステップS112で取得した分割λによって定まるジャック対称多項式Jλ(α)およびシューア多項式sλを選択する。
(S114)特徴量計算部140は、式(4)により行列Mlを計算する。
(S114)特徴量計算部140は、式(4)により行列Mlを計算する。
(S115)特徴量計算部140は、変数aに0を代入する。
(S116)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS117〜S124を実行する。
(S116)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS117〜S124を実行する。
(S117)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS118〜S123を実行する。
(S118)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS119〜S122を実行する。
(S118)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS119〜S122を実行する。
(S119)特徴量計算部140は、現在のkに対する全ての分割λ’について、分割λ’毎に、ステップS120,S121を実行する。
(S120)特徴量計算部140は、式(51)で示されるF(a)=Jλ(α)(λ’,l)の値を計算する。
(S120)特徴量計算部140は、式(51)で示されるF(a)=Jλ(α)(λ’,l)の値を計算する。
(S121)特徴量計算部140は、aにa+1を代入する。
(S122)特徴量計算部140は、現在のkに対する全ての分割λ’について計算が完了すると、処理をステップS123に進める。それ以外の場合は、処理をステップS119に進める。
(S122)特徴量計算部140は、現在のkに対する全ての分割λ’について計算が完了すると、処理をステップS123に進める。それ以外の場合は、処理をステップS119に進める。
(S123)特徴量計算部140は、現在のkに対する全ての分割λについて計算が完了すると、処理をステップS124に進める。それ以外の場合は、処理をステップS118に進める。
(S124)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS125に進める。それ以外の場合は、処理をステップS117に進める。
(S125)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS126に進める。それ以外の場合は、処理をステップS116に進める。
(S125)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS126に進める。それ以外の場合は、処理をステップS116に進める。
(S126)特徴量計算部140は、F=(F(0),F(1),・・・)を、ステップS111で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
図16は、特徴ベクトルの算出例(その7)を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
(S131)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,L,tとを取得する。
(S131)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,L,tとを取得する。
(S132)特徴量計算部140は、k(1≦k≦Kの整数)に対し、kの分割λを取得する。すなわち、特徴量計算部140は、k=1,2,・・・,Kの各整数に対し、複数の分割λを取得することになる。
(S133)特徴量計算部140は、ステップS132で取得した分割λによって定まるホール−リトルウッド対称多項式Pλ(;t)を選択する。
(S134)特徴量計算部140は、行列Mlに対して、sumC演算、sumR演算、diag演算それぞれにより取得されるベクトルY1j l,Y2i l,Y3i lを計算する。ただし、lは、1≦l≦Lの整数である。ベクトルY1j l,Y2i l,Y3i lは、式(43)、(44)、(45)で表される。
(S134)特徴量計算部140は、行列Mlに対して、sumC演算、sumR演算、diag演算それぞれにより取得されるベクトルY1j l,Y2i l,Y3i lを計算する。ただし、lは、1≦l≦Lの整数である。ベクトルY1j l,Y2i l,Y3i lは、式(43)、(44)、(45)で表される。
(S135)特徴量計算部140は、変数aに0を代入する。
(S136)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS137〜S144を実行する。
(S136)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS137〜S144を実行する。
(S137)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS138〜S143を実行する。
(S138)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS139〜S142を実行する。
(S138)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS139〜S142を実行する。
(S139)特徴量計算部140は、m=1,2,3と順番に代入して、mの代入値毎に、ステップS140,S141を実行する。
(S140)特徴量計算部140は、式(52)で示されるF(a)=Pλ,l(;t)の値を計算する。
(S140)特徴量計算部140は、式(52)で示されるF(a)=Pλ,l(;t)の値を計算する。
(S141)特徴量計算部140は、aにa+1を代入する。
(S142)特徴量計算部140は、m=3までの計算が完了すると、処理をステップS143に進める。それ以外の場合は、処理をステップS139に進める。
(S142)特徴量計算部140は、m=3までの計算が完了すると、処理をステップS143に進める。それ以外の場合は、処理をステップS139に進める。
(S143)特徴量計算部140は、現在のkに対する全ての分割λについて計算が完了すると、処理をステップS144に進める。それ以外の場合は、処理をステップS138に進める。
(S144)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS145に進める。それ以外の場合は、処理をステップS137に進める。
(S145)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS146に進める。それ以外の場合は、処理をステップS136に進める。
(S145)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS146に進める。それ以外の場合は、処理をステップS136に進める。
(S146)特徴量計算部140は、F=(F(0),F(1),・・・)を、ステップS131で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
図17は、特徴ベクトルの算出例(その8)を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
(S151)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,L,t,qとを取得する。
(S151)特徴量計算部140は、特徴ベクトルの計算対象とするグラフデータと、パラメータ設定部130が決定したパラメータK,L,t,qとを取得する。
(S152)特徴量計算部140は、k(1≦k≦Kの整数)に対し、kの分割λを取得する。すなわち、特徴量計算部140は、k=1,2,・・・,Kの各整数に対し、複数の分割λを取得することになる。
(S153)特徴量計算部140は、ステップS132で取得した分割λによって定まるマクドナルド対称多項式Pλ(;t,q)を選択する。
(S154)特徴量計算部140は、行列Mlに対して、sumC演算、sumR演算、diag演算それぞれにより取得されるベクトルY1j l,Y2i l,Y3i lを計算する。ただし、lは、1≦l≦Lの整数である。ベクトルY1j l,Y2i l,Y3i lは、式(43)、(44)、(45)で表される。
(S154)特徴量計算部140は、行列Mlに対して、sumC演算、sumR演算、diag演算それぞれにより取得されるベクトルY1j l,Y2i l,Y3i lを計算する。ただし、lは、1≦l≦Lの整数である。ベクトルY1j l,Y2i l,Y3i lは、式(43)、(44)、(45)で表される。
(S155)特徴量計算部140は、変数aに0を代入する。
(S156)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS157〜S164を実行する。
(S156)特徴量計算部140は、l=1からl=Lまで順番に代入して、lの代入値毎に、ステップS157〜S164を実行する。
(S157)特徴量計算部140は、k=1からk=Kまで順番に代入して、kの代入値毎に、ステップS158〜S163を実行する。
(S158)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS159〜S162を実行する。
(S158)特徴量計算部140は、現在のkに対する全ての分割λについて、分割λ毎に、ステップS159〜S162を実行する。
(S159)特徴量計算部140は、m=1,2,3と順番に代入して、mの代入値毎に、ステップS160,S161を実行する。
(S160)特徴量計算部140は、式(53)で示されるF(a)=Pλ,l(;t,q)の値を計算する。
(S160)特徴量計算部140は、式(53)で示されるF(a)=Pλ,l(;t,q)の値を計算する。
(S161)特徴量計算部140は、aにa+1を代入する。
(S162)特徴量計算部140は、m=3までの計算が完了すると、処理をステップS163に進める。それ以外の場合は、処理をステップS159に進める。
(S162)特徴量計算部140は、m=3までの計算が完了すると、処理をステップS163に進める。それ以外の場合は、処理をステップS159に進める。
(S163)特徴量計算部140は、現在のkに対する全ての分割λについて計算が完了すると、処理をステップS164に進める。それ以外の場合は、処理をステップS158に進める。
(S164)特徴量計算部140は、k=Kまでの計算が完了すると、処理をステップS165に進める。それ以外の場合は、処理をステップS157に進める。
(S165)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS166に進める。それ以外の場合は、処理をステップS156に進める。
(S165)特徴量計算部140は、l=Lまでの計算が完了すると、処理をステップS166に進める。それ以外の場合は、処理をステップS156に進める。
(S166)特徴量計算部140は、F=(F(0),F(1),・・・)を、ステップS151で取得したグラフデータに対する特徴ベクトルとする。特徴量計算部140は、グラフデータに対応する構造物データを特定する。特徴量計算部140は、特定した構造物データに対応付けて、算出した特徴ベクトルを記憶部110に格納する。
このように、算出装置100は、グラフデータから対称多項式の次数およびパラメータを決定し、対称多項式を用いて構造物データに対応する特徴量(あるいは、複数の種類の特徴量を含む特徴ベクトル)を計算する。これにより、構造物データの検索に適した特徴量を効率的に算出できる。具体的には次の通りである。
形状検索用のグラフの特徴量には、ノードへの番号付けの順序に依存しないこと(対称群不変性。対称群をSNと記してSN不変性ということもある)が求められる。同じ形状でもノードへの番号付けの順序が違えば異なる特徴量となるようでは、構造物データの検索を適切に行えないからである。ここで、「ノードへの番号付け」とは便宜的な表現であり、グラフに含まれるノードおよびエッジの重みをどのような順番で取り扱うか(例えば、ノードの重みをベクトルで示すなら、あるノードの重みを何番目の要素とするか)を意味していると考えてもよい。
図18は、ノードへの番号付けの例を示す図である。図18(A)および図18(B)は、ある構造物データに対するグラフに対して1〜8までの番号を付す2つのパターンを例示している。この例では、何れのグラフも同じ形状に対応するものだから、同じ特徴量を得ることが望まれる。
ところが、対称群不変性をもたない量(グラフデータに含まれるノードやエッジの重み)を対称群不変な量に変換するとき、その計算コストが問題となる。例えば、グラフのノード数をNとすると、対称群の位数はN!となり、それらを全て考慮にいれた対称群不変量(SN不変量ということもある)を、ノードやエッジの重みから計算するのは容易でない。第1の実施の形態で例示したように、O(N!)の計算複雑性をもつ演算を用いると、ノード数が増えるほど計算コストが極度に増大してしまう。このため、構造物の頂点数が増大するほど特徴量を算出するための計算コストが膨大になる(例えば、頂点数が比較的多い複雑な形状などの特徴量の計算には非効率である)。また、複数の種類の特徴量を作成して特徴ベクトルとする場合に、各特徴量に対してO(N!)の計算複雑性をもつ演算を行っていると計算コストの増加が一層深刻になる。他方、例えば、クリークの数を求めるなど、NP困難な問題を用いると、計算コストが膨大となり現実的でない。
このように、計算コストがあまりにも大きい演算方法を採用すると検索の実用に耐え難くなるおそれがある。そこで、算出装置100は、特徴量の計算に対称多項式を用いることで、特徴量を計算する際の計算コストを軽減する。第2の実施の形態の算出方法によれば、冪和対称多項式を用いて、特徴量の演算を高々O(N2)の計算複雑性に抑えることができる。また、第2の実施の形態で例示した冪和対称多項式以外の対称多項式を用いれば、特徴量の演算を高々O(eN)程度の計算複雑性に抑え得ることが期待される。
このため、算出装置100によれば、O(N!)の計算複雑性をもつ演算で特徴量を計算するよりも、計算コストを低減できる。特徴ベクトルを計算する場合に、O(N!)の計算複雑性をもつ演算で全ての特徴量を計算するよりも、計算コストを低減できる。特に、冪和対称多項式を選択すれば、他の種類の対称多項式に比べて、計算コストをより一層抑えられる。
このとき、算出装置100は、グラフデータ(グラフの情報)から次数kやパラメータlを決定する。前述のように、ノードおよびエッジの重みは、構造物の形状を反映した情報であると考えられる。例えば、式(6)で示されるように、重みの乗算回数は次数kとパラメータlとの積klで求められる。乗算は一般に値の違いを大きくする。重みの差異が特徴量に極端に大きく反映され過ぎると、比較的小さな形状の差異が比較的大きな特徴量の差異として表されてしまい、検索時の特徴量の照合において、類似の判定が困難になるおそれがある。一方、乗算回数が小さ過ぎると重みの差異が特徴量に十分に反映されないおそれもある。
そこで、算出装置100は、乗算で重みの違いが極端に大きくならないように(また、重みの差異が適度に特徴量に反映されるように)次数kおよびパラメータlをグラフの重みの情報から動的に調整する(例えば、式(40))。これにより、類似形状の検索用途に適した特徴量を算出できる。また、算出装置1によれば乗算回数klを所定の基準で制限できるので、グラフデータによらずに固定的にk,lを決定して無暗に乗算を重ねるよりも、検索に適した特徴量を比較的小さな計算コストで取得できる。
また、第2の実施の形態の例では、次数kおよびパラメータlが大きいほど、算出される特徴量の種類の数も増える。例えば、図10の手順では、3KL個の特徴量が算出されることになる。図9で例示したようにK=Lとすることで、重みの乗算回数や特徴量の種類の数を抑え、特徴ベクトルの計算に伴う計算コストが増大し過ぎないよう制限できる。
なお、算出装置100は、対称多項式の演算用の次数およびパラメータを、特徴量の算出対象とする構造物データ以外の他の構造物データに対応するグラフデータを用いて決定してもよい。例えば、算出装置100は、検索クエリを受け付けた場合、当該検索クエリで指定された構造物データに対応するグラフデータから特徴量(特徴ベクトル)を計算し、ライブラリ内の構造物データの特徴量(特徴ベクトル)と照合することになる。その場合、算出装置100は、ライブラリ内の構造物データに対して既に決定済みの次数およびパラメータを用いて、検索クエリで指定された構造物データに対応する特徴量(特徴ベクトル)を算出し得る。ただし、算出装置100は、検索クエリで指定された構造物データに対応するグラフデータから、次数およびパラメータを決定してもよい。
また、第1の実施の形態の情報処理は、演算部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
以上の第1,第2の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、
処理をコンピュータに実行させる算出プログラム。
(付記1) 複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、
処理をコンピュータに実行させる算出プログラム。
(付記2) 前記決定では、グラフの情報に含まれる重みの分布に基づいて、次数およびパラメータを決定する、付記1記載の算出プログラム。
(付記3) 前記演算は、次数およびパラメータが大きいほど重みの乗算回数が増える演算であり、
前記決定では、重みの相対誤差が大きいほど次数およびパラメータを小さい値とする、付記2記載の算出プログラム。
(付記3) 前記演算は、次数およびパラメータが大きいほど重みの乗算回数が増える演算であり、
前記決定では、重みの相対誤差が大きいほど次数およびパラメータを小さい値とする、付記2記載の算出プログラム。
(付記4) 前記決定では、複数の構造物データに対応する複数のグラフの情報に基づいて、次数およびパラメータを決定する、付記1乃至3の何れか1つに記載の算出プログラム。
(付記5) 前記決定では、特徴量の算出対象の構造物データ毎に、当該構造物データに対応するグラフの情報から次数およびパラメータを決定する、付記1乃至3の何れか1つに記載の算出プログラム。
(付記6) 前記算出では、他の構造物データに対応するグラフの情報に基づいて決定された次数およびパラメータを用いる、付記1乃至4の何れか1つに記載の算出プログラム。
(付記7) 前記算出では、グラフに含まれるノードおよびエッジの重みの情報を反映させた行列を生成し、第1の種類の対称多項式を用いて当該行列をベクトルに変換し、前記第1の種類の対称多項式または第2の種類の対称多項式の何れかに前記ベクトルの各要素を代入することで特徴量を算出する、付記1乃至6の何れか1つに記載の算出プログラム。
(付記8) 前記算出では、冪和対称多項式、基本対称多項式、完全対称多項式、モノミアル対称多項式、シューア多項式、ジャック対称多項式、ホール−リトルウッド対称多項式またはマクドナルド対称多項式を用いる、付記1乃至7の何れか1つに記載の算出プログラム。
(付記9) 複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を記憶する記憶部と、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、演算部と、
を有する算出装置。
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、演算部と、
を有する算出装置。
(付記10) コンピュータが、
複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、
算出方法。
複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、
算出方法。
1 算出装置
1a 記憶部
1b 演算部
1a 記憶部
1b 演算部
Claims (8)
- 複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、
処理をコンピュータに実行させる算出プログラム。 - 前記決定では、グラフの情報に含まれる重みの分布に基づいて、次数およびパラメータを決定する、請求項1記載の算出プログラム。
- 前記演算は、次数およびパラメータが大きいほど重みの乗算回数が増える演算であり、
前記決定では、重みの相対誤差が大きいほど次数およびパラメータを小さい値とする、請求項2記載の算出プログラム。 - 前記決定では、複数の構造物データに対応する複数のグラフの情報に基づいて、次数およびパラメータを決定する、請求項1乃至3の何れか1項に記載の算出プログラム。
- 前記決定では、特徴量の算出対象の構造物データ毎に、当該構造物データに対応するグラフの情報から次数およびパラメータを決定する、請求項1乃至3の何れか1項に記載の算出プログラム。
- 前記算出では、グラフに含まれるノードおよびエッジの重みの情報を反映させた行列を生成し、第1の種類の対称多項式を用いて当該行列をベクトルに変換し、前記第1の種類の対称多項式または第2の種類の対称多項式の何れかに前記ベクトルの各要素を代入することで特徴量を算出する、請求項1乃至5の何れか1項に記載の算出プログラム。
- 複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を記憶する記憶部と、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、演算部と、
を有する算出装置。 - コンピュータが、
複数の多角形で3次元の構造物を表す構造物データに対応するグラフの情報を取得し、
対称多項式の演算に用いられる次数およびパラメータを前記情報に基づいて決定し、
決定した次数とパラメータと対称多項式とを用いて構造物データに対応するグラフの特徴量を算出する、
算出方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014070456A JP2015191617A (ja) | 2014-03-28 | 2014-03-28 | 算出プログラム、算出装置および算出方法 |
US14/636,999 US20150277435A1 (en) | 2014-03-28 | 2015-03-03 | Computing apparatus and computing method |
EP15157546.1A EP2924599A1 (en) | 2014-03-28 | 2015-03-04 | Computing program, computing apparatus and computing method |
CN201510128256.5A CN104951496A (zh) | 2014-03-28 | 2015-03-23 | 计算设备及计算方法 |
KR1020150040584A KR20150112832A (ko) | 2014-03-28 | 2015-03-24 | 산출 프로그램, 산출 장치 및 산출 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014070456A JP2015191617A (ja) | 2014-03-28 | 2014-03-28 | 算出プログラム、算出装置および算出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015191617A true JP2015191617A (ja) | 2015-11-02 |
Family
ID=52669467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014070456A Pending JP2015191617A (ja) | 2014-03-28 | 2014-03-28 | 算出プログラム、算出装置および算出方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150277435A1 (ja) |
EP (1) | EP2924599A1 (ja) |
JP (1) | JP2015191617A (ja) |
KR (1) | KR20150112832A (ja) |
CN (1) | CN104951496A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021026575A (ja) * | 2019-08-06 | 2021-02-22 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
JP6833150B1 (ja) * | 2020-06-30 | 2021-02-24 | 三菱電機株式会社 | 加工プログラム検索装置および加工プログラム検索方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110490132B (zh) * | 2019-08-16 | 2020-09-29 | 京东城市(北京)数字科技有限公司 | 数据处理方法和装置 |
CN114740801B (zh) * | 2022-03-21 | 2023-09-29 | 成都飞机工业(集团)有限责任公司 | 一种用于数控设备群协同生产线安装的基坐标系创建方法 |
CN116800547B (zh) * | 2023-08-25 | 2023-11-21 | 汉兴同衡科技集团有限公司 | 一种基于大数据的信息处理方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6631364B1 (en) | 1997-03-26 | 2003-10-07 | National Research Council Of Canada | Method of searching 3-Dimensional images |
JP2000222428A (ja) * | 1999-02-03 | 2000-08-11 | Hitachi Ltd | 3次元モデルの類似検索システム及び3次元モデルデータベース登録システム |
EP1429264B1 (en) * | 2002-12-05 | 2016-06-29 | Samsung Electronics Co., Ltd. | Method of perceptual 3D shape description and method and apparatus for searching 3D graphics model database using the description method |
JP4516957B2 (ja) | 2003-01-25 | 2010-08-04 | パーデュー リサーチ ファンデーション | 3次元オブジェクトについて検索を行なうための方法、システムおよびデータ構造 |
CN102957437B (zh) * | 2012-10-29 | 2016-03-30 | 记忆科技(深圳)有限公司 | 一种钱搜索方法及装置 |
-
2014
- 2014-03-28 JP JP2014070456A patent/JP2015191617A/ja active Pending
-
2015
- 2015-03-03 US US14/636,999 patent/US20150277435A1/en not_active Abandoned
- 2015-03-04 EP EP15157546.1A patent/EP2924599A1/en not_active Withdrawn
- 2015-03-23 CN CN201510128256.5A patent/CN104951496A/zh active Pending
- 2015-03-24 KR KR1020150040584A patent/KR20150112832A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021026575A (ja) * | 2019-08-06 | 2021-02-22 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
JP7122293B2 (ja) | 2019-08-06 | 2022-08-19 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
JP6833150B1 (ja) * | 2020-06-30 | 2021-02-24 | 三菱電機株式会社 | 加工プログラム検索装置および加工プログラム検索方法 |
WO2022003828A1 (ja) * | 2020-06-30 | 2022-01-06 | 三菱電機株式会社 | 加工プログラム検索装置および加工プログラム検索方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150277435A1 (en) | 2015-10-01 |
KR20150112832A (ko) | 2015-10-07 |
EP2924599A1 (en) | 2015-09-30 |
CN104951496A (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10872446B2 (en) | Systems and methods for high dimensional 3D data visualization | |
Higham et al. | Fitting a geometric graph to a protein–protein interaction network | |
Ling et al. | An efficient earth mover's distance algorithm for robust histogram comparison | |
Feragen et al. | Toward a theory of statistical tree-shape analysis | |
US9697234B1 (en) | Approaches for associating terms with image regions | |
JP6863926B2 (ja) | データ分析システム及びデータ分析方法 | |
JP2015191617A (ja) | 算出プログラム、算出装置および算出方法 | |
JP2012043419A (ja) | 三次元モデル検索装置、三次元モデル検索方法、モデルライブラリ生成装置及びモデルライブラリ生成方法 | |
Liu et al. | Computing the inner distances of volumetric models for articulated shape description with a visibility graph | |
CN108073682A (zh) | 基于参数视图函数查询数据库 | |
JP6311404B2 (ja) | 管理プログラム、管理装置および管理方法 | |
EP4071650A2 (en) | Graph alignment techniques for dimensioning drawings automatically | |
CN115798654A (zh) | 一种模型材料处理方法、装置、设备及介质 | |
US20170364334A1 (en) | Method and Apparatus of Read and Write for the Purpose of Computing | |
US20140310248A1 (en) | Verification support program, verification support apparatus, and verification support method | |
TW202201249A (zh) | 2維映射產生裝置、2維映射產生方法及2維映射產生用程式 | |
Hu et al. | Shape-driven coordinate ordering for star glyph sets via reinforcement learning | |
JP7339923B2 (ja) | 材料の特性値を推定するシステム | |
WO2017163342A1 (ja) | 計算機システム及びデータの分類方法 | |
Hong et al. | Retrieval of non-rigid 3D models based on approximated topological structure and local volume | |
CN114121296A (zh) | 基于数据驱动的临床信息规则提取方法、存储介质及设备 | |
JP7029056B2 (ja) | 分割領域生成プログラム、分割領域生成装置、および分割領域生成方法 | |
Alwaely et al. | Ghosm: Graph-based hybrid outline and skeleton modelling for shape recognition | |
Behar et al. | Dynamic Minkowski sums under scaling | |
Zabel et al. | VIPurPCA: Visualizing and Propagating Uncertainty in Principal Component Analysis |