说明书计算设备及计算方法
技术领域
本文所讨论的实施方式涉及计算设备及计算方法。
背景技术
已使用辅助绘制三维模型的软件工具。例如,计算机辅助设计(CAD)是用于帮助设计者创建设计的技术之一。运行CAD软件的计算机根据在输入装置上做出的用户输入来创建结构的三维模型并且将该三维模型显示在显示器上。用户能够在显示器上可视地识别该三维模型的同时致力于对结构的该三维模型进行操纵。
例如,计算机能够基于三维坐标信息显示三维图形。标准三角化语言(STL)是用于表示三维形状的数据格式的示例。按照STL,三维模型的形状使用多个三角形的组合来表示。对于一个三角形而言,STL数据包括关于该三角形的三个顶点的坐标和表面的法向量的信息。
顺便地,可能存在基于特定三维模型来执行搜索以查找其他三维模型的情况。例如,在设计的过程期间,做出这样的搜索以确认是否已经设计了与目标组件具有相似形状的组件,以减少冗余设计。为此,存在被认为是搜索与目标三维模型具有相似形状的三维模型的方法。例如,量化三维模型的形状的特征。具有相似特征值的三维模型被认为具有相似形状。可以使用每个包括多种特征值的特征向量做出该搜索。
例如,提出了以下方法:通过体素化和细化来将三维对象变换成为骨架图形,进一步处理骨架图形,并且检测图形相关的特征向量元素(脊状环、节点等的数量)以便搜索。此外,还存在有使用以下的其他提议:三维模型的体积、划界球(其半径是对象模型的长轴的长度的一半的球)的半径、颜色柱状图、小波系数、或作为在搜索三维图像中的特征描述符的其他特征。
例如,请参见国际专利申请的日本国家公布No.2006-520948和No.2003-518294。
在使用多边形的组合表示结构的三维形状的情况下,该结构的每个顶点被表示为多边形的顶点,并且连接该结构的两个顶点的每个边被表示为多边形的边。在这样的情况下,结构的顶点和连接结构的两个顶点的边被描述为节点和边缘,将规定的权重分配给每个节点和边缘的加权图形根据结构数据来生成,并且获得加权图形的特征值作为结构数据的特征值。该方法具有如何有效地获得适于结构数据搜索的特征值的问题。
例如,存在以下需求:要用于形状搜索的图形的特征值不受节点的编号顺序(即,对称群不变性)的影响。然而,在根据节点的权重或不具有对称属性的任何值来计算对称群不变值的情况下,计算成本会随着节点的数量的增加而显著地增加。
发明内容
根据一个方面,目的是提供用于有效地计算适于结构数据搜索的特征值的计算程序、计算设备及计算方法。
根据一个方面,提供了一种计算设备,包括:存储单元,其存储关于与结构数据集对应的图形的信息,所述结构数据集使用多个多边形来表示三维结构;以及运算单元,其基于所述信息来确定要在对称多项式的运算中使用的次数(degree)和参数,以及凭借对称多项式使用所确定的次数和参数来计算与结构数据集对应的图形的特征值。
附图说明
图1示出了根据第一实施方式的计算设备;
图2示出了根据第二实施方式的计算设备的示例性硬件配置;
图3A和图3B示出了示例性多边形和结构;
图4示出了计算设备的示例性功能;
图5A、图5B和图5C是示例性斜杨氏(skew Young)图;
图6示出了示例性结构数据集;
图7示出了示例性图形数据集;
图8示出了示例性四面体;
图9是示出了如何确定次数和参数的示例的流程图;
图10至图17是示出了如何计算特征向量的第一示例至第八示例的流程图;以及
图18A和图18B示出了编号节点的示例。
具体实施方式
将参照附图描述几种实施方式,其中贯穿附图相似的附图标记指示相似的要素。
(第一实施方式)
图1示出了根据第一实施方式的计算设备。计算设备1计算结构数据集的特征值,每个结构数据集表示三维结构。此处的结构数据集使用多个多边形表示结构。更特别地,结构的表面通过多个多边形的平面的组合来近似。术语“多边形”可以用于表示在三维空间中形成对象的元素。例如,存在用于将结构表示为三角多边形的集合的STL数据格式。
计算设备1可以针对一个结构数据集计算多种特征值。所述多种特征值可以被统称为特征向量。例如,特征值(或特征向量)被用于结构数据搜索。搜索装置可以将由搜索查询指定的结构数据集的特征值与存储在库中的结构数据集的特征值进行比较以从该库中寻找与所指定的结构数据集表示相似形状的其他结构数据集。搜索结果可以被显示在与搜索装置连接的显示器上或者可以被发送至发出搜索查询的终端装置。计算设备1可以设置有这样的搜索功能。
例如,搜索相似形状的功能用于避免在设计组件或其他中的冗余设计。此外,当产品由于某个组件而出现故障时,使用搜索功能以检查关于相似组件的故障历史或故障原因。
计算设备1包括存储单元1a和运算单元1b。存储单元1a可以是如随机存取存储器(RAM)等的易失性存储装置或如硬盘驱动器(HDD)、闪存等的非易失性存储装置。运算单元1b包括例如处理器。处理器可以是中央处理单元(CPU)、数字信号处理器(DSP)、或专用电子电路如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。此外,处理器可以是多个处理器的集合(多处理器)。处理器可以执行存储在例如存储单元1a中的程序。
存储单元1a存储关于与结构数据集对应的图形的信息。在图形中, 由结构数据集表示的结构的每个顶点被描绘为节点,而连接结构的两个顶点(节点)的每个边被描绘作为边缘。通过边缘连接的节点被认为彼此相邻。结构的每个顶点被表示为多边形的顶点,而连接结构的两个顶点的每个边被表示为多边形的边。更特别地,结构的每个顶点被表示为由三个或更多个多边形共享的顶点,而连接结构的两个顶点的每个边被表示为由两个相邻多边形共享的边。
图形还可以将规定的权重分配给每个节点和边缘。例如,存在以下想法:使用结构的重心与顶点之间的距离表示与顶点对应的节点的权重,而使用边的长度表示与边对应的边缘的权重。在这样的情况下,节点和边缘的权重被认为是反映包括结构的边之间的角度的结构的尺寸和结构的形状的信息。例如,考虑其中结构具有N(N是等于或大于四的整数)个顶点的情况。节点的权重被表示成具有N个元素的向量X,而边缘的权重被表示成具有N个行和N个列的矩阵W。
X=(X1,X2,...,XN) (1)
W={Wij}1≤i,j≤N (2)
在等式(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)。由等式(3)来定义矩阵D(X)中的每个元素。
D(X)ij=δijXi (3)
在该等式(3)中,符号δ表示克罗内克(Kronecker)δ,δi=j=1,并且δi≠j=O。然后,使用矩阵W和矩阵D(X)来获得以下矩阵Ml。
Ml=(X)(WD(X))l (4)
矩阵WD(X)描述在将对应边缘的权重考虑在内的情况下将每个节点的权重传递给其相邻节点的运算。在等式(4)中的作为参数的上标l(l是等于或大于1的整数)表示等式执行了l次。在下面,Newton对称多项式p被认为是对称多项式的一个示例。次数为k的Newton对称多项式pk被写成以下公式(5)。
pk(x1,x2,...,xn)=Σi=1nxik---(5)]]>
为了将矩阵Ml的元素应用到Newton对称多项式pk中,2阶张量(由矩阵M表示的值)被变换成1阶张量(由向量表示的值)。为此,可能的方法之一是生成具有矩阵Ml的对角线元素(对角线分量)的向量(具有N个元素)。在这样的情况下,运算单元1b通过将Newton对称多项式pk的变量替换成矩阵Ml的对角线元素来获得对称群不变值pk,l,如由等式(6)所定义的。
pk,l=pk(M11l,M22l,...,MNNl)=Σi=1N((D(X)(WD(X))l)ii)k---(6)]]>
注意,可以使用其他方法将2阶张量变换成为1阶张量。例如,总共具有N个元素的向量可以通过使用矩阵Ml的第j列元素的和作为一个元素来生成。可替代地,总共具有N个元素的向量可以通过使用矩阵Ml的第i行元素的和作为一个元素来生成。
此外,具有N个元素的向量可以通过将矩阵Ml的第i行(或第j列)元素代入pk,l来生成,然后该计算结果可以被代入Newton对称多项式。例如,通过使用N个第j列元素计算N个值pk,l并且将该计算结果代入 Newton对称多项式而获得的值p’k,l被写作以下等式(7)。值p’k,l也具有对称群不变性。
p′k,l=pk(pk(M11l,M21l,...,MN1l)),pK(M12l,M22l,...,MN2l),...,pk(M1Nl,M2Nl,...,MNNl)---(7)]]>
在等式(6)和等式(7)中的对称多项式的运算使用次数k和参数l。运算单元1b基于关于图形的信息来确定次数k和参数l。例如,运算单元1b基于节点和边缘的权重的分布(例如,离散度)来确定次数k和参数l。例如,节点和边缘的权重的相对误差(标准偏差除以均值)可以用作指示离散度的值。
更特别地,随着登记在库中的所有(或一些)结构数据集的图形中指示的权重的相对误差越大,使用越小的次数k和越小的参数l。换言之,随着在库中登记的所有(或一些)结构数据集的图形中指示的权重的相对误差越小,使用越大的次数k和越大的参数l。
运算单元1b可以相对于节点或边缘获得相对误差。可以相对于节点和边缘两者获得相对误差。当确定次数k是K而参数l是L时,运算单元1b可以相对于满足1≤k≤K和1≤l≤L的整数k和l的每个组合来计算特征值并且可以生成将各个特征值作为元素的特征向量。
如上所述,计算设备1获得关于与使用多个多边形表示三维结构的结构数据集对应的图形的信息,基于关于图形的信息来确定要在对称多项式的运算中使用的次数和参数,并且凭借对称多项式使用所确定的次数和参数来计算与结构数据集对应的图形的特征值。该方法使得可以有效地计算适于结构数据搜索的特征值。下面将描述具体示例。
存在以下需求:用于形状搜索的图形的特征值不受节点的编号顺序的影响(即,对称群不变性)。这是因为,如果某些形状的特征值因节点的编号顺序而异,则搜索不能恰当地进行。
在将不具有对称群不变性的值转换成具有对称群不变性的值(即,对称群不变值)时产生计算成本问题。假设图形的节点的数量是N,对称群的阶为N!,因此不易于在将所有排列考虑在内的情况下根据节点和边缘的权重计算对称群不变值。
例如,存在以下简单的想法:计算(x1a1x2a2···xNaN)+(x2a1x1a2···xNaN) +···+(xNa1xN-1a2···x1aN)(指数a1,a2,···,aN都不同,并且对通过相对于指数来替换变量而生成的全部不同的排列的项求和。项的数量是N!),并且将该结果作为特征值。然而,该计算的计算复杂度为O(N!)(即,O(N!)的计算量),并且随着节点的数量的增加计算成本大大增加。即,随着结构的顶点的数量的增加,用于计算特征值的计算成本会变的相当大。此外,例如,为了解决NP(非确定性多项式时间)困难问题,例如计算团集(其中每两个节点通过边缘连接的节点的子集)的数量需要相当大的计算成本,这不现实。
计算设备1使用对称多项式计算特征值,因此减小了计算对称群不变值所需的计算成本。在上述Newton对称多项式中,甚至等式(7)的使用将计算复杂性减小到O(N2)。
为此,计算设备1基于关于图形的信息来计算次数k和参数l。如早先描述的,节点和边缘的权重被认为是反映结构的形状的信息。例如,如从等式(6)可见,权重的倍增倍数可以通过次数k和参数l的积kl来获得。如果权重的差异在特征值中反映太多,则相对小的形状的差异产生相对大的特征值之间的差异,其使得难以在搜索中通过特征值的比较来评估相似度。
为了解决该问题,运算单元1b基于关于图形的权重的信息来动态地调节次数k和参数l使得倍增不显著地放大权重的差异,因此使得可以计算适用于搜索相似形状的特征值。此外,与使用固定次数k和参数l、不考虑关于图形的信息、以及不考虑重复倍增的情况相比,计算设备1能够在规定的准则下限制倍增倍数kl,从而使得可以以相对地低的计算成本获得适用于搜索的特征值。
(第二实施方式)
图2示出了根据第二实施方式的计算设备的配置。计算设备100使用CAD辅助设计三维空间的结构。计算设备100根据用户操作将三维图像显示在与计算设备100连接的显示器上。用户能够请求计算设备100搜索(已被设计了的)结构的现有数据。
例如,用户在计算设备100上绘制期望的三维结构,并且请求计算设备100查找与所绘制的结构相似的结构。然后,计算设备100查找与指定结构具有相似形状的结构,并且将所查找到的结构呈现给用户。库是包括各种已被设计了的结构的结构数据集的数据库,并且库被存储在计算设备 100中设置的存储装置中。库可以存储在通过网络10外接至计算设备100的存储装置。在以下描述中,表示结构的形状的三维模型(多面体)可以被简称为结构。
计算设备100包括处理器101、RAM 102、HDD 103、视频信号处理单元104、输入信号处理单元105、读取器装置106和通信接口107。这些单元中的每一个被连接至计算设备100中的总线。
处理器101控制计算设备100所执行的信息处理。处理器101可以是多处理器。处理器101是例如CPU、DSP、ASIC、FPGA或其他。处理器101可以是选自CPU、DSP、ASIC、FPGA或其他中的两个或更多个的组合。
RAM 102是计算设备100的主存储装置。RAM 102临时地存储要由处理器101执行的操作系统(OS)程序和应用程序中的至少一部分。RAM102还存储要由处理器101用于处理的各种数据。
HDD 103是计算设备100的辅助存储装置。HDD 103在内置磁盘上磁性地读写数据。HDD 103存储OS程序、应用程序和各种数据。计算设备100可以设置有闪存、固态驱动器(SSD)或其他辅助存储装置、或设置有多个辅助存储装置。
视频信号处理单元104根据来自处理器101的指令将图像输出至与计算设备100连接的显示器11。可以将阴极射线管(CRT)显示器、液晶显示器或其他显示器用作显示器11。
输入信号处理单元105将从与计算装置100连接的输入装置12接收的输入信号传送至处理器101。例如,可以将如鼠标、数字化仪、触摸面板等的定位装置、键盘等用作输入装置12。
读取器装置106从记录介质13读取程序和数据。例如,可以将如软磁盘(FD)、HDD等的磁盘、如致密光盘(CD)、数字多功能光盘(DVD)等的光盘、或磁光盘(MO)等用作记录介质13。此外,可以将例如闪存卡或其他非易失性半导体存储器用作记录介质13。读取器装置106根据来自处理器101的指令将从记录介质13读取的程序和数据存储在RAM102或HDD 103中。
通信接口107通过网络10来执行与其他装置的通信。通信接口107可以是有线或无线通信接口。
图3A和图3B示出了示例性多边形和结构。图3A举例说明形成结 构的多边形之一。第二实施方式以示例的方式使用三角形。计算设备100使用例如为STL格式的结构数据来管理多边形。或者,可以使用矩形、五边形或其他多边形。图3B举例说明由多个多边形形成的八面体。八面体的表面由多个多边形的组合来表示。图3B还示出四个正面多边形的法向量。
关于三角多边形51的信息包括三个顶点K1、K2和K3的坐标以及多边形51的正面表面的法向量r。法向量r可以具有单位长度。坐标和法向量可以表示成在三个相互正交的轴x、y和z上的坐标。
注意,多边形51的正面和背面能够基于在结构数据中限定这三个顶点K1、K2和K3的坐标的顺序来区分。当从多边形51的正面看时,顶点K1、K2和K3被限定为逆时针,从第一顶点开始,然后第二顶点、然后第三顶点。
图4示出了计算设备的示例性功能。计算设备100包括存储单元110、图形单元120、参数设置单元130、特征值计算单元140和搜索单元150。存储单元110可以通过使用在RAM 102或HDD 103中准备的存储区域来实现。图形单元120、参数设置单元130、特征值计算单元140和搜索单元150可以被实现为要由处理器101执行的程序模块。
存储单元110存储要由这些组成单元使用的信息。存储单元110存储结构数据、图形数据、特征向量数据及其他数据。结构数据用STL格式表示结构的形状。作为所存储的结构数据,存在有多个结构数据集,每个结构数据集对应于一个所绘制的结构。在存储单元110中的多个结构数据集(一组结构数据集)可以被称为“库”。
作为图形数据,存在有多个图形数据集,每个图形数据集对应于基于结构数据集生成的图形。每个图形是将规定的权重分配给每个节点和边缘的加权图形。特征向量数据用于针对每个结构数据集管理根据图形数据集计算的特征向量。如果存在能够从计算设备100通过网络10存取的存储设备,则计算设备100可以将结构数据、图形数据和特征向量数据存储在该存储装置中。
图形单元120根据结构数据集来生成图形并且将该图像存储在存储单元100中。更特别地,图形单元120生成以下图形:通过结构数据集标识的结构的每个顶点被表示为节点并且连接该结构的顶点的每个边被表示为边缘。图形单元120通过结构的重心与顶点之间的距离来表示与结构 的顶点对应的节点的权重,以及通过边的长度来表示与该边对应的边缘的权重。
参数设置单元130确定要由特征值计算单元140用于运算的参数及其他。如随后所要描述的,特征值计算单元140使用对称多项式计算特征值。参数设置单元130基于根据存储在存储单元100中的结构的图形数据集中指示的权重的统计值来确定要在对称多项式的操作中使用的次数和参数。
特征值计算单元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是表示变量的数量的正整数。
e0(x1,x2,...,xn)=1e1(x1,x2,...,xn)=Σ1≤j≤nxje2(x1,x2,...,xn)=Σ1≤j<k≤nxjxke3(x1,x2,...,xn)=Σ1≤j<j<l≤nxjxkxl...---(8)]]>
(2)完全对称多项式
次数为1至3的完全对称多项式,h1、h2和h3被写作以下等式(9),其中符号j、k和l是正整数,而符号n是表示变量的数量的正整数。
h1(x1,x2,...,xn)=Σ1≤j≤nxjh2(x1,x2,...,xn)=Σ1≤j≤k≤nxjxkh3(x1,x2,...,xn)=Σ1≤j≤k≤l≤nxjxkxl...---(9)]]>
(3)单项对称多项式
假设给出的正整数d被划分成非递增并且非负整数的序列d1,d2,...,和dn,非负整数的序列被称为d的划分或d的整数划分并且由λ表示。d与d1,d2,...,和dn之间的关系由标记法(10)来定义。
d=d1+d2+...+dnd1≥d2≥...≥dn≥0---(10)]]>
单项对称多项式与划分λ关联。例如,与d=5的划分λ=(3,1,1)相关联的单项对称多项式被写为等式(11)。
m(3,1,1)(x1,x2,x3)=x13x2x3+x1x23x3+x1x2x33---(11)]]>
此外,与d=6的划分λ=(3,2,1)相关联的单项对称多项式被写为等式(12)。
m(3,2,1)(x1,x2,x3)=x13x22x3+x13x2x32+x12x23x3+x12x2x33+x1x23x32+x1x22x33---(12)]]>
对于划分λ的整数d与多项式的次数对应(同样适用于以下多项式)。
(4)Newton对称多项式
如在第一实施方式中所举例说明的,次数为k的Newton对称多项式被写作等式(13),其中符号k是正整数,而符号n是表示变量的数量的正整数。
pk(x1,x2,...,xn)=x1k+x2k+...+xnk=Σi=1nxik---(13)]]>
(5)Schur多项式
范德蒙(vandermonde)行列式由等式(14)定义,其中,符号j和k是正整数而符号n是表示变量的数量的正整数。
与划分λ=(d1,d2,...,dn)对应的Schur多项式使用等式(14)写作等式(15)。
sλ(x1,x2,...,xn)=s(d1,d2,...,dn)(x1,x2,...,xn)=a(d1+n-1,d2+n-2,...,dn+0)(x1,x2,...,xn)a(n-1,n-2,...,0)(x1,x2,...,xn)---(15)]]>
例如,与划分λ=(2,1)和λ=(1,1,1)的对应的Schur多项式被分别写作等式(16)和等式(17)。
s(2,1)(x1,x2,x3)=x12x2+x1x22+x12x3+x1x32+x22x3+x2x32+2x1x2x3---(16)]]>
s(1,1,1)(x2,x2,x3)=x1x2x3 (17)
(6)Jack对称多项式
针对划分λ和参数α的变量为x1,x2,...,xm的Jack对称多项式Jλ(α)(x1,x2,...,xm)如以下。
在m=1的情况下,Jack对称多项式Jλ(α)被写作等式(18)。
Jk(α)(x1)=x1k(1+α)...(1+(k-1))---(18)]]>
在m>1的情况下,Jack对称多项式Jλ(α)被写作等式(19)。
Jλ(α)(x1,x2,...,xm)=ΣμJμ(α)(x1,x2,...,xm-1)xm|λ/μ|βλμ---(19)]]>
在等式(19)中的具有符号μ的求和符号Σ表示包括所有划分μ的求和。划分μ即倾斜划分λ/μ(表示为倾斜杨氏图)是水平条,并且满足条件(20)。
λ1≥μ1≥λ2≥μ2≥…≥λn-1≥μn-1≥λn (20)
注意,μn=0;否则Jμ(x1,...,xn-1)=0。符号的右下标例如划分λ指示划分的整数元素。此外,在等式(19)中的符号βλμ由等式(21)和等式(22)定义。
βλμ=Π(i,j)∈λBλμλ(i,j)Π(i,j)∈μBλμμ(i,j)---(21)]]>
Bλμv=λj′-i+α(λi-j+1)(λj′=μj′)λj′-i+1+α(λi-j)(λj′≠μj′)---(22)]]>
在B中的划分λ’和μ’分别是划分λ和μ的共轭划分。此外,在等式(21)的乘积符号Π中的标记(i,j)∈λ表示在包括在划分λ的杨氏图中的全部方框的坐标(i,j)(表示第i行和第j列的位置)上求乘积。
针对满足的两个划分λ和μ的杨氏图,定义为集差异λ\μ的 N×N(其中N是所有自然数的集)的子集被称为倾斜杨氏图并且被标记为λ/μ。假定|λ/μ|=|λ|-|μ|。在每个列中包括仅一个方框的倾斜杨氏图被称为水平条。在每行中包括仅一个方框的倾斜杨氏图被称为竖直条。
图5A、图5B和图5C是示例性倾斜杨氏图。图5A举例说明了既不是水平条也不是竖直条的倾斜杨氏图。在图5A中,λ=(5,3,1)而μ=(1,1)。就此,为了容易的理解关于行(纸的水平方向)和列(纸的竖直方向),在图5A、图5B和图5C中给出了行数和列数。
图5B举例说明水平条。在图5B中,λ=(5,3,1,1)而μ=(3,1,1)。图5C举例说明了竖直条。在图5C中,λ=(2,2,1,1,1)而μ=(1,1,1)。
例如,与划分λ=(2,1)和λ=(1,1,1)对应的Jack对称多项式被分别写作表达式(23)和表达式(24)。
J(2,1)(α)(x1,x2,x3)=x12x2+x1x22+x13x3+x1x32+x22x3+x2x32+6α+2x1x2x3---(23)]]>
J(1,1,1)(α)(x1,x2,x3)=x1x2x3---(24)]]>
(7)Hall-Littlewood对称多项式
用针对划分λ和参数t的变量为x1,x2,...,xn的Hall-Littlewood对称多项式被写作等式(25),其中符号m(i)表示在λ中的等于i的元素的数量而符号Sn表示阶为n!的对称群。
Rλ(x1,...,xn;t)=Πi1-t1-tm(i)Σw∈Snw(x1λ1...xnλnΠi<jxi-txjxi-xj)---(25)]]>
例如,与划分λ=(2,1)和λ=(1,1,1)对应的Hall-Littlewood对称多项式被分别写作等式(26)和等式(27)。
P(2,1)(t)(x1,x2,x3)=x12x2+x1x22+x12x3+x1x32+x22x3+x2x32+(-t2-t+2)x1x2x3---(26)]]>
P(1,1,1)(t)(x1,x2,x3)=x1x2x3---(27)]]>
(8)Macdonald对称多项式
使用An型Macdonald对称多项式(在下文中被简称为Macdonald对称多项式)。Macdonald对称多项式包括参数t和q。例如,与划分λ=(2,1)和λ=(1,1,1)对应的Macdonald对称多项式被分别写作等式(28)和等式(29)。
P(2,1)(t,q)(x1,x2,x3)=x12x2+x1x22+x12x3+x1x32+x22x3+x2x32+-2qt2+qt-t2+q-t+2-qt2x1x2x3---(28)]]>
P(1,1,1)(t,q)(x1,x2,x2)=x1x2x3---(29)]]>
以上描述举例说明了一些次数的对称多项式。然而,可以应用其他次数的对称多项式。此外,以上描述举例说明了一些类型的三个变量的对称多项式作为简单示例。然而,可以应用四个或更多个变量的对称多项式。再此外,以上描述举例说明了可用于计算特征值的一些类型的对称多项式。然而,可以使用其他类型的对称多项式。
图6示出了示例性结构数据集。结构数据集111具有以下格式。注意,在结构数据集111的左侧给出了行编号。结构的标识信息(例如“structure A”)设置在字符串“solid”(第1行)之后。
法向量的组件设置在字符串“facet normal”(第2行)之后。从“facet normal”行(第2行)至“endfacet”行(第8行)的行与关于一个多边形的信息对应。该多边形的顶点的坐标设置在字符串“vertex”之后。因为此处考虑的是三角多边形,所以针对每个多边形使用字符串“vertex”来设置三个顶点的坐标。
此外,在结构数据集111中指示的法向量将多边形的正面与背面彼此区分。设置多边形的顶点的坐标的顺序也将多边形的正面与背面彼此区分。其他多边形以相同的方式定义在第9及随后的行中。字符串“endsolid”设置在结构数据集111的最后一行(第15行)。
图7示出了示例性图形数据集。现在假设图形数据集112为GraphML格式。GraphML使用可扩展标记语言(XML)描绘节点和边缘。可以使用其他格式。该示例使用无向图。然而,可以使用有向图。在图形数据集112的左侧给出了行编号。
例如,第3行定义对于边缘的key“key0”。使用key id的标签“key0”,将与边缘的权重对应的属性赋予边缘。与边缘对应的边的长度用于表示该边缘的权重。
第4行定义对于节点的key“key1”。使用key id的标签“key1”,将与节点的权重对应的属性赋予节点。与节点对应的顶点和结构的重心之间的距离用于表示节点的权重。
例如,图形数据设置112定义对于节点ID为“n0”的节点的权重为“3.3166”(第7行至第9行)。节点ID为“n1”的节点(第10行至第12行)和其他节点以相同的方式被定义。
此外,图形数据集112定义边缘ID为“e0”的边缘连接节点ID为“n1”的节点和节点ID为“n0”的节点并且该边缘的权重为“1.4142”(第15行至第17行)。边缘ID为“e1”的边缘(第18行至第20行)和其他边缘以相同的方式被定义。注意,节点和边缘的权重被表示为向量和矩阵。作为简单示例,将考虑四面体。
图8示出了示例性四面体。所示出的四面体在正交坐标系统(使用x轴、y轴和z轴)中具有顶点p1、p2、p3和p4。顶点p1的坐标为(1,0,0)。顶点p2的坐标为(0,1,0)。顶点p3的坐标为(0,0,1)。顶点p4在原点O处。该四面体由例如四个多边形即三角形p1p2p3、三角形p2p3p4、三角形p3p4 p1以及三角形p4p1p2形成。
例如,假设四面体的重心与顶点之间的距离表示顶点(或与图形中的顶点对应的节点)的权重,顶点权重向量X被写作等式(30)。
x=11411411434---(30)]]>
此外,假设四面体的边的长度表示边(或与图形中的边对应的边缘)的权重,边权重矩阵W被写作等式(31)。
p1p2p3p4W=p1p2p3p40221202122011110---(31)]]>
就此,第i行和第j列元素与连接顶点pi和pj的边的长度对应。因为边不能通过单独顶点形成,所以对角线元素是“0”。
图形中的节点的权重和边缘的权重以这样的方式表示为向量X和矩阵W。特征值计算单元140生成反映这些权重的向量,并且将该向量的元素应用于对称多项式中的变量。更特别地,特征值计算单元140生成由等式(3)定义的矩阵D(X)。对于等式(30)的向量X的矩阵D(X)被写作等式(32)。
D(X)=11400001140000114000034---(32)]]>
然后,特征值计算单元140生成由等式(4)定义的矩阵Ml。例如,在l=1的情况下,矩阵Ml=M=D(X)WD(X)被写作等式(33)。
D(X)WD(X)=00.97230.97230.35900.972300.97230.35900.97230.972300.3590.35900.35900.35900---(33)]]>
矩阵Ml的第i行第j列元素由等式(34)来定义。
mijl=(D(X)(WD(X))l)ij---(34)]]>
例如,为了将矩阵Ml变换成具有N(N是顶点(节点)的数量)个元素的向量,考虑以下sumR运算(公式(35))、sumC运算(公式(36)) 和diag运算。
sumR运算是计算矩阵Ml的每列的和。sumC运算是计算Ml的每行的和。diag运算是从矩阵Ml的提取对角线元素。
此外,为了根据2阶张量生成1阶张量,可以考虑不同于sumR运算、sumC运算和diag运算的方法。例如,n个变量的对称多项式fj被写作等式(38)。
fi=f(M1jl,M2jl,...,MNjl)---(38)]]>
该方程使用矩阵Ml的行数i和固定的列数j。针对对称多项式fj考虑相同或不同类型的对称多项式g,对称多项式g可以被写作等式(39)。
g=g(f(M11l,M21l,...,MN1l)),f(M12l,M22l,...,MN2l),...,f(M1Nl,M2Nl,...,MNNl)---(39)]]>
对称多项式g的计算结果也具有对称群不变性。即,向量(f1,f2,...,fn)可以使用矩阵Ml和对称多项式fj来生成。或者,还考虑:向量的元素的值凭借对称多项式fi(i=1,2,...,n)使用矩阵Ml的列数j和固定的行数i来计算。
计算设备100将这些运算用于使用对称多项式按照以下方式来计算特征值。首先,将举例说明用于确定要在对称多项式的运算中使用的次数和参数的过程。
图9是示出了如何确定次数和参数的示例的流程图。将逐步描述图9的处理。
(S1)参数设置单元130基于存储在存储单元110中的全部图形数据集来计算对于节点和边缘的平均权重值μ和标准偏差σ。
(S2)参数设置单元130计算参数K和L。更特别地,参数K和L被写作等式(40)。
L=K=[1000μσ]∝(σμ)-12---(40)]]>
在等式(40)中的方括号(“[]”)是Gauss符号(即,对值求整)。或者,K和L可以被四舍五入到最近的整数。如从等式(40)可见,当相对误差(σ/μ)较大时,所计算出的参数K和L较小。如随后所描述的,参数K与用于计算特征值的对称多项式的次数(要用于计算特征值的最大次数)对应。
(S3)参数设置单元130计算参数t、q和α。更特别地,用等式(41)计算参数t和α,而用等式(42)计算参数q。
t=α=μσ---(41)]]>
q=exp(μσ)---(42)]]>
(S4)参数设置单元130将所确定的参数K、L、t、q和α存储在存储单元110中。
如上所述,计算设备100基于包括在图形数据集中的权重的分布来确定要在对称多项式的运算中使用的次数和参数。就此,在步骤S1处,统计值如关于权重的均值μ和标准偏差σ可以根据存储在存储单元110中的图形数据集(在库中)中的一些图形数据集来计算。例如,这样的统计值可以通过对预定数量的图形数据集进行采样来计算。
如果结构数据集被分类成为一些类别(例如,机械组件、电子组件或其他),则次数和参数可以针对每个类别进行计算。在这样的情况下,使用结构数据集所属的类别的次数和参数,计算设备100通过在图10和随后的附图中描绘的过程来计算结构数据集的特征值。
再或者,对于要计算特征值的每个结构数据集(每个图形数据集)而言,计算设备100可以根据与结构数据集对应的图形数据集来确定参数。例如,对于要计算特征值的每个结构数据集而言,计算设备100可以仅基于与结构数据集对应的图形数据集来确定其专用的次数和参数。然后,计 算设备100可以使用对于每个结构数据集的次数和参数通过在图10中和随后的附图中描绘的过程来计算结构数据集的特征值。
例如,存在选择上述项当中的哪一项的选项以使用库中的所有图形数据集、类别或结构数据集(图形数据集)来根据实际运算(运算测试)确定参数(包括次数)。这使得可以选择提高结构数据搜索的准确度的方法。
此外,在步骤S1处,计算设备100针对节点和边缘两者获得相对误差。或者,计算设备100可以针对节点或边缘获得相对误差。此外,计算设备100可以仅计算要在计算特征值中使用的对称多项式所需的参数(例如,在其中不使用Jack对称多项式的情况下可以不计算参数α)。然后,计算设备100使用所确定的参数通过下述过程中的任意过程来计算特征向量。在以下的描述中,符号N表示节点的数量。
图10是示出了如何计算特征向量的第一示例的流程图。将逐步描述图10的处理。
(步骤S11)特征值计算单元140获得要计算特征向量的图形数据集以及由参数设置单元130确定的参数K和L。
(S12)特征值计算单元140选择次数为k的初等对称多项式ek,其中符号k是满足1≤k≤K的整数。就此,在k>N的情况下ek=0。
(S13)特征值计算单元140分别使用sumC运算(公式(36))、sumR运算(公式(35))和diag运算(公式(37))来计算向量Yl1j、Yl2i、Yl3i,其中,符号l是满足1≤l≤L的整数。向量Yl1j、Yl2i、Yl3i被写作等式(43)、(44)和(45)。
Y1jl=Σi(D(X)(WD(X))l)ij---(43)]]>
Y2il=Σj(D(X)(WD(X))l)ij---(44)]]>
Y3il=(D(X)(WD(X))l)ii---(45)]]>
(S14)特征值计算单元140将变量a替换成0。
(S15)特征值计算单元140将l按顺序替换成从1至L,并且针对每次替换执行步骤S16至S21。
(S16)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S17至S20。
(S17)特征值计算单元140将m按顺序替换成1、2和3,并且针对每次替换来执行步骤S18和S19。
(S18)特征值计算单元140计算由等式(46)定义的F(a)=ek(Yl)。
ek(Yl)=ek(Ym1l,Ym2l,...,YmNl)---(46)]]>
(S19)特征值计算单元140将变量增加1。
(S20)当直到m=3的计算完成时,处理进行到步骤S21。否则,处理返回步骤S17。
(S21)当直到k=K的计算完成时,处理进行到步骤S22。否则,处理返回步骤S16。
(S22)当直到l=L的计算完成时,处理进行到步骤S23。否则,处理返回步骤S15。
(S23)特征值计算单元140将F=(F(0),F(1),...,F(3KL))作为对于在步骤S11处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
如上所述,计算设备100使用初等对称多项式计算特征值和特征向量。例如,计算设备100可以在如图10所描绘的同一过程中使用完全对称多项式或Newton对称多项式替换初等对称多项式。
图11是示出了如何计算特征向量的第二示例的流程图。将逐步描述图11的处理。
(S31)特征值计算单元140获得要计算特征向量的图形数据集以及由参数设置单元130确定的参数K和L。
(S32)特征值计算单元140选择次数为k的完全对称多项式hk,其中符号k是满足1≤k≤K的整数。就此,在k>N的情况下hk=0。
(S33)特征值计算单元140用等式(4)计算矩阵Ml。
(S34)特征值计算单元140将变量a替换成0。
(S35)特征值计算单元140按顺序将l替换成从1至L,并且针对每次替换执行步骤S36至S41。
(S36)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S37至S40。
(S37)特征值计算单元140将k’按顺序替换成从1至K,并且针对每次替换来执行步骤S38和S39。
(S38)特征值计算单元140计算由等式(47)定义的F(a)=hk(hk’(Ml))。
hk(hk′(Ml))=hk(hk′(M11l,M21l,...,MN1l)),hk′(M12l,M22l,...,MN2l),...,hk′(M1Nl,M2Nl,...,MNNl)---(47)]]>
(S39)特征值计算单元140将变量增加1。
(S40)当直到k’=K的计算完成时,处理进行到步骤S41。否则,处理返回步骤S37。
(S41)当直到k=K的计算完成时,处理进行到步骤S42。否则,处理返回步骤S36。
(S42)当直到l=L的计算完成时,处理进行到步骤S43。否则,处理返回步骤S35。
(S43)特征值计算单元140将F=(F(0),F(1),...,F(K2L))作为在步骤S31处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
如上所述,计算设备100可以使用对称多项式将2阶张量(即,矩阵)转换成为1阶张量(即,向量)并且可以通过将相同种类的对称多项式的变量替换成1阶张量的元素来计算特征值。因此,所计算的特征值恰当地反映包括在图形中的权重。
图12是示出了如何计算特征向量的第三示例的流程图。将逐步描述图12的处理。
(S51)特征值计算单元140获得要计算特征向量的图形数据集以及由参数设置单元130确定的参数K和L。
(S52)特征值计算单元140获得k(k是满足1≤k≤K的整数)的划分λ。即,特征值计算单元140获得对于每个整数k=1,2,...,K的多个 划分λ。
(S53)特征值计算单元140选择与在步骤52处获得的划分λ相关联的单项对称多项式mλ。
(S54)特征值计算单元140用等式(4)计算矩阵Ml。
(S55)特征值计算单元140将变量a替换成0。
(S56)特征值计算单元140将l按顺序替换成从1至L,并且针对每次替换执行步骤S57至S64。
(S57)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S58至S63。
(S58)特征值计算单元140相对于当前k针对所有划分λ中的每个划分执行步骤S59至S62。
(S59)特征值计算单元140相对于当前k针对所有划分λ’中的每个划分执行步骤S60和S61。
(S60)特征值计算单元140计算由等式(48)定义的F(a)=mλ(mλ’(Ml))。
mλ(mλ′(Ml))=mλ(mλ′(M11l,M21l,...,MN1l)),mλ′(M12l,M22l,...,MN2l),...,mλ′(M1Nl,M2Nl,...,MNNl)---(48)]]>
(S61)特征值计算单元140将变量增加1。
(S62)当针对于关于当前k的所有划分λ’的计算完成时,处理进行到步骤S63。否则,处理返回步骤S59。
(S63)当针对关于当前k的所有划分λ的计算完成时,处理进行到步骤S64。否则,处理返回步骤S58。
(S64)当直到k=K的计算完成时,处理进行到步骤S65。否则,处理返回步骤S57。
(S65)当直到l=L的计算完成时,处理进行到步骤S66。否则,处理返回步骤S56。
(S66)特征值计算单元140将F=(F(0),F(1),...)作为对于在步骤S51处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集 对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
图13是示出了如何计算特征向量的第四示例的流程图。将逐步描述图13的处理。
(S71)特征值计算单元140获得要计算特征向量的图形数据集以及由参数设置单元130确定的参数K和L。
(S72)特征值计算单元140选择次数为k的Newton对称多项式pk,其中符号k是满足1≤k≤K的整数。
(S73)特征值计算单元140用等式(4)计算矩阵Ml。
(S74)特征值计算单元140将变量a替换成0。
(S75)特征值计算单元140将l按顺序替换成从1至L,并且针对每次替换执行步骤S76至S81。
(S76)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S77至S80。
(S77)特征值计算单元140将k’按顺序替换成从1至K,并且针对每次替换执行步骤S78和S79。
(S78)特征值计算单元140计算由等式(46)定义的F(a)=pk(pk’(Ml))。
pk(pk′(Ml))=pk(pk′(M11l,M21l,...,MN1l)),pk′(M12l,M22l,...,MN2l),...,pk′(M1Nl,M2Nl,...,MNNl)---(49)]]>
(S79)特征值计算单元140将变量增加1。
(S80)当直到k’=K的计算完成时,处理进行到步骤S81。否则,处理返回步骤S77。
(S81)当直到k=K的计算完成时,处理进行到步骤S82。否则,处理返回步骤S76。
(S82)当直到l=L的计算完成时,处理进行到步骤S83。否则,处理返回步骤S75。
(S83)特征值计算单元140将F=(F(0),F(1),...,F(K2L))作为在步骤 S71处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
图14是示出了如何计算特征向量的第五示例的流程图。将逐步描述图14的处理。
(S91)特征值计算单元140获得要计算特征向量的图形数据集以及由参数设置单元130确定的参数K和L。
(S92)特征值计算单元140获得k(k是满足1≤k≤K的整数)的划分λ。即,特征值计算单元140获得对于每个整数k=1,2,...,K的多个划分λ。
(S93)特征值计算单元140选择与在步骤92处获得的划分λ对应的Schur多项式sλ和单项对称多项式mλ。
(S94)特征值计算单元140用等式(4)计算矩阵Ml。
(S95)特征值计算单元140将变量a替换成0。
(S96)特征值计算单元140将l按顺序替换成从1至L,并且针对每次替换执行步骤S97至S104。
(S97)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S98至S103。
(S98)特征值计算单元140针对关于当前k的所有划分λ中的每一个执行步骤S99至S102。
(S99)特征值计算单元140针对关于当前k的所有划分λ’中的每一个执行步骤S100和S101。
(S100)特征值计算单元140计算由等式(50)定义的F(a)=sλ(mλ’(Ml))。
sλ(mλ′(Ml))=sλ(mλ′(M11l,M21l,...,MN1l)),mλ′(M12l,M22l,...,MN2l),...,mλ′(M1Nl,M2Nl,...,MNNl)---(50)]]>
(S101)特征值计算单元140将变量增加1。
(S102)当针对关于当前k的所有划分λ’的计算完成时,处理进行到步骤S103。否则,处理返回步骤S99。
(S103)当针对关于当前k的所有划分λ的计算完成时,处理进行到步骤S104。否则,处理返回步骤S98。
(S104)当直到k=K的计算完成时,处理进行到步骤S105。否则,处理返回步骤S97。
(S105)当直到l=L的计算完成时,处理进行到步骤S106。否则,处理返回步骤S96。
(S106)特征值计算单元140将F=(F(0),F(1),...)作为在步骤S91处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
如上所述,计算设备100可以使用对称多项式(第一种对称多项式)将2阶张量变换成为1阶张量并且可以通过将该结果代入另一种对称多项式(第二种对称多项式)来计算特征值。因此,所计算的特征值恰当地反映包括在图形中的权重。
图15是示出了如何计算特征向量的第六示例的流程图。将逐步描述图15的处理。
(S111)特征值计算单元140获得要计算特征向量的图形数据集以及由参数设置单元130确定的参数K、L和α。
(S112)特征值计算单元140获得k(k是满足1≤k≤K的整数)的划分λ。即,特征值计算单元140获得对于每个整数k=1,2,...,K的多个划分λ。
(S113)特征值计算单元140选择与在步骤112处获得的划分λ对应的Jack对称多项式Jλ(α)和Schur对称多项式sλ。
(S114)特征值计算单元140用等式(4)计算矩阵Ml。
(S115)特征值计算单元140将变量a替换成0。
(S116)特征值计算单元140将l按顺序替换成从1至L,并且针对每次替换执行步骤S117至S124。
(S117)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S118至S123。
(S118)特征值计算单元140针对关于当前k的所有划分λ中的每一 个执行步骤S119至S122。
(S119)特征值计算单元140针对关于当前k的所有划分λ’中的每一个执行步骤S120和S121。
(S120)特征值计算单元140计算由等式(51)定义的F(a)=Jλ(α)(sλ’(Ml))。
Jλ(α)(sλ′(Ml))=Jλ(α)(sλ′(M11l,M21l,...,MN1l)),sλ′(M12l,M22l,...,MN2l),...,sλ′(M1Nl,M2Nl,...,MNNl)---(51)]]>
(S121)特征值计算单元140将变量增加1。
(S122)当针对关于当前k的所有划分λ’的计算完成时,处理进行到步骤S123。否则,处理返回步骤S119。
(S123)当针对关于当前k的所有划分λ的计算完成时,处理进行到步骤S124。否则,处理返回步骤S118。
(S124)当直到k=K的计算完成时,处理进行到步骤S125。否则,处理返回步骤S117。
(S125)当直到l=L的计算完成时,处理进行到步骤S126。否则,处理返回步骤S116。
(S126)特征值计算单元140将F=(F(0),F(1),...)作为在步骤S111处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
图16是示出了如何计算特征向量的第七示例的流程图。将逐步描述图16的处理。
(S131)特征值计算单元140获得要计算特征向量的图形数据集以及由参数设置单元130确定的参数K、L和t。
(S132)特征值计算单元140获得k(k是满足1≤k≤K的整数)的划分λ。即,特征值计算单元140获得对于每个整数k=1,2,...,K的多个划分λ。
(S133)特征值计算单元140选择与在步骤132处获得的划分λ对应的Hall-Littlewood对称多项式Pλ(;t)。
(S134)特征值计算单元140相对于矩阵Ml分别使用sumC运算、sumR运算和diag运算来计算向量Yl1j、Yl2i、Yl3i,其中,符号l是满足1≤l≤L的整数。向量Yl1j、Yl2i、Yl3i被写作等式(43)、(44)和(45)。
(S135)特征值计算单元140将变量a替换成0。
(S136)特征值计算单元140将l按顺序替换成从1至L,并且针对每次替换执行步骤S137至S144。
(S137)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S138至S143。
(S138)特征值计算单元140针对关于当前k的所有划分λ中的每一个执行步骤S139至S142。
(S139)特征值计算单元140将m按顺序替换成1、2和3,并且针对每次替换来执行步骤S140和S141。
(S140)特征值计算单元140计算由等式(52)定义的F(a)=Pλ(Yl;t)。
Pλ(Yl;t)=Pλ(Ym1l,Ym2l,...,YmNl;t)---(52)]]>
(S141)特征值计算单元140将变量增加1。
(S142)当直到m=3的计算完成时,处理进行到步骤S143。否则,处理返回步骤S139。
(S143)当针对关于当前k的所有划分λ的计算完成时,处理进行到步骤S144。否则,处理返回步骤S138。
(S144)当直到k=K的计算完成时,处理进行到步骤S145。否则,处理返回步骤S137。
(S145)当直到l=L的计算完成时,处理进行到步骤S146。否则,处理返回步骤S136。
(S146)特征值计算单元140将F=(F(0),F(1),...)作为在步骤S131处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
图17是示出了如何计算特征向量的第八示例的流程图。将逐步描述图17的处理。
(S151)特征值计算单元140获得要计算特征向量的图形数据集以及 由参数设置单元130确定的参数K、L、t和q。
(S152)特征值计算单元140获得k(k是满足1≤k≤K的整数)的划分λ。即,特征值计算单元140获得对于每个整数k=1,2,...,K的多个划分λ。
(S153)特征值计算单元140选择与在步骤152处获得的划分λ对应的Macdonald对称多项式Pλ(;t,q)。
(S154)特征值计算单元140相对于矩阵Ml分别使用sumC运算、sumR运算和diag运算来计算向量Yl1j、Yl2i、Yl3i,其中,符号l是满足1≤l≤L的整数。向量Yl1j、Yl2i、Yl3i被写作等式(43)、(44)和(45)。
(S155)特征值计算单元140将变量a替换成0。
(S156)特征值计算单元140将l按顺序替换成从1至L,并且针对每次替换执行步骤S157至S164。
(S157)特征值计算单元140将k按顺序替换成从1至K,并且针对每次替换执行步骤S158至S163。
(S158)特征值计算单元140针对关于当前k的所有划分λ中的每一个来执行步骤S159至S162。
(S159)特征值计算单元140将m按顺序替换成1、2和3,并且针对每次替换来执行步骤S160和S161。
(S160)特征值计算单元140计算由等式(53)定义的F(a)=Pλ(Yl;t,q)。
Pλ(Yl;t,q)=Pλ(Ym1l,Ym2l,...,YmNl;t,q)---(53)]]>
(S161)特征值计算单元140将变量增加1。
(S162)当直到m=3的计算完成时,处理进行到步骤S163。否则,处理返回步骤S159。
(S163)当针对关于当前k的所有划分λ的计算完成时,处理进行到步骤S164。否则,处理返回步骤S158。
(S164)当直到k=K的计算完成时,处理进行到步骤S165。否则,处理返回步骤S157。
(S165)当直到l=L的计算完成时,处理进行到步骤S166。否则,处理返回步骤S156。
(S166)特征值计算单元140将F=(F(0),F(1),...)作为在步骤S151处获得的图形数据集的特征向量。特征值计算单元140识别与图形数据集对应的结构数据集,然后将所计算的特征向量与所识别的结构数据集相关联地存储在存储单元110中。
如上所述,计算设备100根据图形数据集来确定用于对称多项式的次数和参数,并且使用该对称多项式计算与特征数据集对应的特征值(或包括多种特征值的特征向量)。该方法使得可以有效地计算适于结构数据搜索的特征值。以下进行详细描述。
存在以下需求:用于形状搜索的图形的特征值不受节点的编号顺序的影响(即,对称群不变性或可以被称为SN不变性,其中符号SN表示对称群)。如果某形状的特征值因节点的编号顺序而异,则结构数据搜索不能恰当地进行。“节点的编号”可以被当作指示包括在图形中的节点和边缘的权重以哪种顺序被处理(例如,在其中节点的权重被表示为向量的情况下,节点的编号指示哪个元素用于指示节点的权重)。
图18A和图18B示出了编号节点的示例。图18A和图18B举例说明了在与结构数据集对应的图形中的用于分配数字1至8的两个模式。在这些示例中,两个图形具有相同的形状,因此期望获得相同特征值。
注意,计算成本问题发生在将不具有对称群不变性(包括在图形数据集中的节点和边缘的权重)的值转换成具有对称群不变性的值时。例如,假设图形中的节点的数量是N,对称群的阶是N!,因此不易于在考虑所有排列的情况下根据节点和边缘的权重来计算对称群不变值(可以被称为SN不变值)。如在第一实施方式中举例说明的,如果使用计算复杂度为O(N!)的运算,则计算成本会随着节点的数量的增加而大大地增加。因此,随着结构的顶点的数量的增加,用于计算特征值的计算成本变得相当大(例如,计算对于具有相对多的顶点的复杂形状的特征值非常低效)。此外,在获得多种特征值作为特征向量的情况下,如果执行计算复杂度为O(N!)的运算以计算每个特征值,则计算成本更成问题。此外,例如,为了解决NP困难问题,例如计算团集的数量需要相当大的计算成本,这是不现实的。
需要相当大的计算成本的运算会难以实现以进行搜索。计算设备100通过使用对称多项式降低了计算特征值所需的计算成本。第二实施方式的计算方法使用Newton对称多项式将对于计算特征值的运算的计算复杂度降低到与O(N2)一样低。此外,使用不同于在第二实施方式中举例说明的 Newton对称多项式的对称多项式,期望对于计算特征值的运算的计算复杂度降低到与O(en)一样低。
因此,与执行计算复杂度为O(N!)的运算的情况相比,计算设备100降低了计算特征值的计算成本。即,为了计算特征向量,与通过计算复杂度为O(N!)的运算计算所有特征值的情况相比,计算成本会降低。特别地,使用Newton对称多项式与其他类型的对称多项式相比进一步降低了计算成本。
此时,计算设备100根据图形数据集(关于图形的信息)计算次数k和参数l。如早前所描述的,节点和边缘的权重被当作反映结构的形状的信息。例如,如从等式(6)可见,权重的倍增倍数可以作为次数k和参数l的乘积kl而被获得。通常,倍增对值之间的差异进行放大。如果权重的差异在特征值中反映为太多,则相对小的形状差异产生相对大的特征值之间的差异,其使得难以在搜索中通过特征值的比较来评估相似度。另一方面,如果倍增的倍数太小,权重的差异可能不能恰当地反映在特征值中。
为了解决该问题,计算设备100基于关于图形的权重的信息动态地调节次数k和参数l使得倍增不显著地放大权重的差异(并且使得权重的差异恰当地反映在特征值中)(例如,等式(40))。这使得可以计算适用于搜索相似形状的特征值。此外,计算设备1能够在规定的准则下限制倍增倍数kl,因此与使用固定的次数k和参数l、不考虑关于图形的信息并且不考虑重复倍增的情况相比,使得可以以相对低的计算成本来获得适于搜索的特征值。
此外,在第二实施方式的示例中,随着次数k和参数l变大,要计算的特征值的种类数增加。例如,通过图10的过程计算了3KL个特征值。在K=L的情况下,如在图9中举例说明的,可以降低权重的倍增倍数和特征值的种类数使得用于计算特征值的计算成本未增加太多。
就此,计算设备100可以基于与除了要计算特征值的结构数据集以外的结构数据集对应的图形数据集来确定要在对称多项式的运算中使用的次数和参数。例如,当接收搜索查询时,计算设备100根据与由搜索查询指定的结构数据集对应的图形数据集来计算特征值(特征向量),并且将所计算的特征值(特征向量)与存储在库中的结构数据集的特征值(特征向量)进行比较。在该情况下,计算设备100能够使用针对存储在库中的结构数据集而预先确定的次数和参数来计算与由搜索查询指定的结构数据集对应的特征值(特征向量)。注意,计算设备100可以基于与由搜索 查询指定的结构数据集对应的图形数据集来确定次数和参数。
第一实施方式的信息处理可以由执行程序的运算单元1b来执行。第二实施方式的信息处理可以由执行程序的处理器101来执行。这样的程序被记录在计算机可读记录介质13上。
为了分销该程序,例如,可以出售记录有该程序的记录介质13。或者,程序可以存储在其他计算机中并且可以通过网络从另一个计算机传送。计算机将记录在记录介质13上的程序或者从另一个计算机接收的程序存储(安装)到如RAM 102或HDD 103的存储装置,从存储装置读取程序,然后运行程序。
根据一个方面,可以有效地计算适于结构数据搜索的特征值。