CN104462668B - 计算机实施的用于设计用二叉树来建模的工业产品的方法 - Google Patents

计算机实施的用于设计用二叉树来建模的工业产品的方法 Download PDF

Info

Publication number
CN104462668B
CN104462668B CN201410674194.3A CN201410674194A CN104462668B CN 104462668 B CN104462668 B CN 104462668B CN 201410674194 A CN201410674194 A CN 201410674194A CN 104462668 B CN104462668 B CN 104462668B
Authority
CN
China
Prior art keywords
binary tree
node
tree
leaf nodes
computer
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.)
Active
Application number
CN201410674194.3A
Other languages
English (en)
Other versions
CN104462668A (zh
Inventor
J-F·拉莫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of CN104462668A publication Critical patent/CN104462668A/zh
Application granted granted Critical
Publication of CN104462668B publication Critical patent/CN104462668B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Architecture (AREA)

Abstract

一种计算机实施的用于设计用二叉树来建模的工业产品的方法,所述二叉树具有代表基本体积的叶子节点、代表将体积进行组合的二元可交换操作的非叶子节点,所述方法包括以下步骤:执行触发添加或移除叶子节点的设计操作;并且理想化所述二叉树,即,通过将弱叶子节点的数量最小化来修改所述二叉树而同时保持该树的最优性,弱叶子节点是这样节点:当其被移除后,所得到的二叉树不再是最优的。

Description

计算机实施的用于设计用二叉树来建模的工业产品的方法
技术领域
本发明涉及计算机程序和系统领域,并且更具体地涉及例如在缩写为CAD的计算机辅助设计中由计算机实施的用于设计用二叉树来建模的工业产品的方法。
背景技术
本发明涉及计算机辅助设计CAD,并且更确切地,涉及声明性建模(也叫功能性建模)。声明性建模CAD系统包括预定义的历史树以及声明性特征。在CAD系统用户将声明性特征实例化之后,支持所得到的实体的数据结构为历史树,该历史树包括通过可交换操作(比如并集或交集)而将基本体积(basic volume)进行组合的许多子树。本发明利用这种特定情况以在用户要求改变之后提高实体更新性能。
给定声明性建模系统的预定义历史树(如图1的左图所示),并且给定该预定义历史树的输入桶(input bucket),声明性特征在被实例化时,将基本体积分布在于输入桶中。因此,在实例化了一些特征之后,每个输入桶通过可交换操作(主要是被记为“+”的布尔并集),将多个基本体积进行组合。目前,如图1的右图所示,基本体积的每个组合都是通过有序表来实施的,其中,在所述有序表中,根据创建顺序来存储体积。在附图中,根节点被记为RN,叶子节点被记为LN,以及内部节点被记为IN,并且弧段或边连接了节点。
应该注意到声明性实体的更新包括两步。第一步是更新输入桶(基本体积的并集的表)而第二步是更新预定义历史树,在该预定义历史树中存储有可交换和不可交换操作。根据工业测试,声明性建模技术的首个实施显示出总体计算时间主要花费在预定义历史树的更新上(相对于输入桶更新时间)。但是,在本领域中的近期性能改进(通过正在进行的Dassault Systèmes专利EP2474928、EP2474929和EP2474930)减少了预定义历史树的更新时间,使得:现在基本体积的更新时间是显著的,并因此值得优化。
如将在下文中所详述的,本发明对“最优二叉树”的概念进行了深入的利用。这个概念在对在字典中的有序数据(被称为“记录”)进行排序和搜索的领域内是众所周知的。根据排序和搜索技术,在每次向字典中添加新纪录时都要更新所谓的“二叉搜索树”,并且其结构被设计以便于搜索给定的记录。搜索效率基于二叉树的平衡。为了这个目的,存在详尽的算法以在每次向字典中添加新纪录时保持该平衡。搜索技术用于数据库管理以及计算几何。经典的参考书目是D.Knuth所著的书籍:《排序和搜索》。
如前所述,预定义历史树的每个输入桶都通过有序表将其基本体积进行组合。当用户修改该部分的声明性特征时,执行基本体积的修改(删除、尺寸变化、位置变化…)并且输入桶需要被更新。这导致了大量的更新时间,这是因为更新每个列表与所修改的体积的年龄成正比。在实体建模领域中,从更新时间的角度来看,有序表并不是最优的数据结构这一点是众所周知的。
背景技术的另一个问题如下。声明性建模技术被设计为独立于特征创建顺序而进行。Dassault Systèmes专利EP1501026保证了所得到的实体的形状独立于特征创建顺序。但是,输入桶的列表实施使得对较早特征的更新长于对较晚特征的更新,这显然与用户对声明性行为所应当的样子的认知相违背。
搜索技术是要保持二叉搜索树的平衡。二叉搜索树的拓扑展示了一种结构,所述结构与叶子节点是有序记录这个事实密切相关。例如,典型的要求是左子树的所有节点比右子树的所有节点低(根据记录排序)。这是平衡算法复杂度的来源。
发明内容
本发明的目的是要提供一种计算机实现的方法和系统以克服上述问题。
根据本发明的一个方面,提出一种计算机实施的用于设计用二叉树来建模的工业产品的方法,所述二叉树具有代表基本体积的叶子节点、代表将体积进行组合的二元可交换操作的非叶子节点以及连接节点的弧段,所述方法包括以下步骤:
执行触发添加或移除叶子节点的设计操作;并且
理想化所述二叉树,即,通过将弱叶子节点的数量最小化来修改二叉树同时保持该树的最优性,其中,弱叶子节点是这样的叶子节点:当其被移除时,所得到的二叉树不再是最优的,最优二叉树的任意两个叶子节点(LN)之间的深度差的绝对值为0或1。
保持这样的理想树,这允许缩短声明性CAD系统所需要的用于在用户要求改变之后计算实体的新形状所需的时间。此外,所述声明性CAD系统的响应时间是更加平滑的,这意味着特征的更新时间并不依赖于其创建日期。也就是说,任意特征的更新时间是基本相同的,并且,平均来说,比现有技术的状况更短。
在CAD行业中,由于相对于通过从零开始创建新模型而花费的20%的设计时间,80%的设计时间是通过修改而花费的,因此,更快的更新是有价值的改进。通过性能提升所节约的时间能够缩短新产品的上市时间或者能够被用来研究替代设计。
通过缩短总体更新时间以及通过使特征之间的更新时间不均衡变得平滑,本发明使得声明性CAD系统更适于使用。
本发明在比在字典中搜索有序记录更简便的情况下利用了最优二叉树。确实,二叉树的所有非叶子节点都是相同的可交换操作(主要是布尔并集)并且所有叶子节点都是基本体积。这大大简化了状况并且本发明算法的效率是这些算法的直接性的结果。因此,更易于设计、测试和维护计算机程序,并且这些计算机程序也更为可靠。应该注意的是,涉及二叉树的用于搜索目的的算法在本发明的上下文中不能重复使用。
根据一个实施例,当所述设计操作为添加新叶子节点时,所述计算机实施的方法包括以下步骤:
-通过从根节点到现有叶子节点遍历所述二叉树来确定节点路径,其中,通过迭代地选择定义了具有最小叶子节点数量的子树的下一个节点来遍历所述二叉树;并且
-在结束路径的现有叶子节点处添加所述新叶子节点。
从而以与该树的深度成正比的计算开销,添加新叶子节点保存了或增强了树的结构。
根据另一个实施例,当所述设计操作为移除叶子节点时,所述计算机实施的方法包括以下步骤:
-确定具有最小深度的叶子节点以作为已经不再是最优二叉树的所述二叉树上的非最优叶子节点;
-在从非最优叶子节点到根节点的路径中,确定枢轴节点,所述枢轴节点是其子树非最优的第一个节点;
-在所述枢轴节点的所述非最优子树中,确定V子树,所述V子树是有最深深度的、具有两个叶子节点的子树;并且
-将所述非最优叶子节点与所述V子树进行交换。
从而以与该树的深度成正比的计算开销,来执行在节点移除之后恢复最优性。
根据一个实施例,所述计算机实施的方法进一步包括以下步骤:提供预定义树以用于输入适用于设计特定工业产品的二叉树。
从而所述CAD系统以声明性行为作为特征,并且为用户提供高级设计特征。
根据一个实施例,对于二叉树的每个节点,其子树的最大深度被存储在存储器中。
这可以限制计算。
根据一个实施例,对于二叉树的每个节点,其子树的最小深度被存储在存储器中。
这可以限制计算。
根据一个实施例,对于二叉树的每个节点,其子树的叶子节点的数量被存储在存储器中。
这可以限制计算。
也就是说,存储器可以是非瞬时性计算机可读介质。
根据一个实施例,所述二叉树是通过将非最优二叉树转换为最优二叉树来获得的。
从而,也可以使用不是用根据本发明的方法所创建的工业产品或物体的二叉树。
例如,所述方法进一步包括通过以下来将代表工业产品的任何二叉树理想化的预备步骤:通过将代表基本体积的叶子节点的线性表转化为理想二叉树,其中,在所述理想二叉树中,所述叶子节点为所述基本体积。
从而,也可以使用不是用根据本发明的方法所创建的工业产品或物体的二叉树。
例如,所述方法进一步包括通过以下来将代表工业产品的任何二叉树理想化的预备步骤:使用根据叶子节点数量的相关范围而预先计算出的理想二叉树的库,,并且读取代表了二叉树的线性表的基本体积的叶子节点数量,以加载对应于叶子节点数量的预先计算出的理想二叉树并且将所述线性表的所述基本体积设置到该预先计算出的二叉树的叶子节点。
从而,也可以使用不是用根据本发明的方法所创建的工业产品或物体的二叉树。
根据本发明的另一个方面,还提出了一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令使得计算机系统执行如上所述的用于设计用二叉树来建模的工业产品的方法。
根据本发明的另一个方面,还提出了一种存储在计算机可读介质上的用于设计用二叉树来建模的工业产品的计算机程序产品,所述计算机程序产品包括用于使系统采用上文所述方法的步骤的代码单元。
根据本发明的另一个方面,还提出了一种用于设计用二叉树来建模的工业产品的装置,所述装置包括用于实施上文所述方法的步骤的单元。
根据本发明的另一个方面,还提出了用权利要求1-10中的任意一项所述的方法所设计的工业产品。
附图说明
通过研究由非限定性示例的方式所描述的并且由附图所示出的一些实施例,将更好地理解本发明,在所述附图中:
图1示出了根据背景技术的树的示例,
图2到图30示出了根据本发明的各个方面的计算机实施的方法;
图31示出了在其中可以实施本发明的计算机网络或类似的数字处理环境;以及
图32示出了计算机的内部结构的示意图。
具体实施方式
以下附图更详细地说明了本发明的功能。
如图2所示,与如图1的右图中所示出的现有有序表相比,本发明通过平衡二叉树实现了输入桶的基本体积的组合。从而,相对于与有序表的基本体积总数成正比的有序表更新时间,每个输入桶的更新时间与其基本体积数量的对数成正比。此外,以如下方式来管理每个平衡二叉树:通过创建和删除基本体积来保持平衡二叉树的形状最优。
本发明的说明集中在对一个二叉树的管理。当然,在声明性CAD系统中实施本发明是要根据预定义历史树的结构来使用必要数量的二叉树,其中每个二叉树都根据本说明书而进行管理。
所使用的图形定义如下。
如图3所示,树是非循环图。树包括比弧段的数量正好多一个的节点。图3的最左图并不是树(注意有很多循环)。图3的最右图是树。
如图4所示,二叉树是具备以下特征的树:具有两个弧段的一个节点,其被命名为根节点RN;具有三个弧段的多个节点,其被命名为内部节点IN;以及具有一个弧段的多个节点,其被命名为叶子节点LN。通常,如图4所示,在附图中将根节点RN置于最低的位置而将叶子节点LN置于较高的位置。
在本申请中,p是叶子节点LN的数量,并被写作p=2q+r,其中q和r是满足0≤r<2q的整数。q常被写作q=log2p。从图论(通过将Euler关系应用到二叉树)中所公知的是,节点的总数以及弧段的数量完全由叶子节点LN的数量所定义。
如图5所示,按照惯例,二叉树的弧段从叶子节点LN朝向根节点RN:在图中由上至下。如图5所示,根节点RN没有输出弧段而具有两个输入弧段,叶子节点LN没有输入弧段而具有一个输出弧段,内部节点IN具有一个输出弧段和两个输入弧段。在本发明的上下文中,根据由二叉树所展现的数据流来选择这种传统的取向。这是在附图中隐含的。
如图6所示,由节点x所定义的子树是通过裁剪节点x的输出弧段所获得的树。因此,节点x就成为其子树的根节点。叶子节点可以被视为子树。
按照定义,两个同级节点具有相同的输出节点。在图7中,虚线轮廓围绕共享相同输出节点x的两个同级子树。
节点的深度是从所述节点到根节点RN的路径中弧段的数量。树的深度是最大的叶子节点深度。根节点RN的深度是零。在图8中,节点x的深度是3,叶子节点y的深度是3,叶子节点z的深度是5,树的深度是5。
每个非叶子节点具有两个输入节点,习惯上被命名为“左”和“右”。按照定义,给定的非叶子节点的左子树是由其左输入节点所定义的子树,类似地,右子树是由其右输入节点所定义的子树。按照定义,平衡二叉树是这样的:对于每个非叶子节点,其左子树和右子树之间的深度差的绝对值小于或等于一。图9中最左树并不是平衡的,而最右树是平衡的(节点被标有其各自的子树深度)。
最优二叉树OBT是特殊的平衡二叉树。按照定义,最优二叉树的任意两个叶子节点LN之间的深度差的绝对值等于零或一。也就是说,如图10所示,对叶子节点LN来说最多存在两个深度等级。图9中的平衡二叉树不是最优的,而图10中最左平衡二叉树是最优的。
按照定义,如图10的最右图所示,完美二叉树的所有叶子节点LN具有相同的深度。完美二叉树的叶子节点LN的数量总是2的整数次幂,这意味着p=2q。因此,具有p=2q+r个叶子节点LN的最优二叉树的任意叶子节点LN的深度为q或q+1。以下性质在现有技术中是公知的:在具有同样叶子节点LN数量的所有二叉树中,最优二叉树以具有最小深度为特征。
在二叉树上所进行的并在本发明中所使用的操作为“添加新的叶子节点”以及“移除现有叶子节点”。该添加操作是如下进行的。给定现有叶子节点a,其象征性地代表一个基本体积,并且给定被命名为c的新的基本体积,如图11所示,该添加操作是要用由根节点+与叶子节点a和c所定义的子树来替换叶子节点a。
显然,添加叶子节点可以增加二叉树的深度。
移除操作是如下进行的。移除二叉树的叶子节点LN是要用其同级子树的根节点RN来替换其输出节点。例如,在图12中,移除叶子节点b是要用叶子节点b的同级子树a+c的根节点+来替换节点b的输出节点+。
显然,移除叶子节点LN可以减少二叉树的深度。
目前为止,所有的定义和性质都是在现有技术中已知的。它们在不同的引文中可能不同;这就是为什么要确切地回忆它们的原因。据我们所知,接下来的定义是本发明原创的。
现在定义最优二叉树的弱叶子节点WLN的概念。给定最优二叉树,按照定义,弱叶子节点是这样的叶子节点:当其被移除时,所得到的二叉树不再是最优二叉树。例如,在图13中,移除叶子节点x并不会破坏最优性。
相反地,在图14中,移除节点y实际上破坏了最优性,这使得叶子节点y成为弱叶子节点WLN。最右树不是最优的,这是因为具有三个叶子节点深度值:2、3和4。
弱叶子节点的特征如下。其深度为q,其同级节点为叶子节点LN(而不是子树)并且在二叉树中的某处存在具有深度为q+1的节点。
现在来定义理想二叉树IBT。按照定义,理想二叉树IBT是以最少数量的弱叶子节点WLN为特征的最优二叉树OBT。如图15所示,并不是所有的最优二叉树OBT都是理想的。最左二叉树是最优的但不是理想的,而最右二叉树是理想的。它们都具有十个叶子节点LN,最左二叉树具有六个弱叶子节点WLN,而最右二叉树具有四个弱叶子节点WLN。弱叶子节点WLN是白色方块。
具有p=2q+r个叶子节点LN的最优二叉树OBT的弱叶子节点数量
Figure GDA0002123183560000081
由弱叶子节点的最小数量
Figure GDA0002123183560000082
来限定下限并由弱叶子节点的最大数量
Figure GDA0002123183560000083
来限定上限,这意味着
Figure GDA0002123183560000084
其中如果r=0则
Figure GDA0002123183560000085
如果r≠0则
Figure GDA0002123183560000086
并且其中如果r=0则
Figure GDA0002123183560000087
而如果r≠0,则
Figure GDA0002123183560000088
符号div(a,b)是整数a被整数b进行欧几里得除法的商。
在本发明的上下文中,叶子节点LN是体积,而非叶子节点是将体积组合在一起的二元可交换操作。此外,每个非叶子节点存储了从它的两个输入实体的组合所得到的实体形状。每当用户创建或删除声明性特征时,新叶子节点LN就被添加到二叉树或被从二叉树上移除。下文描述了通过任意编辑顺序来保持二叉树的最优性和理想性的算法。理想二叉树的概念有助于在删除叶子节点的情况下减少最优性的失去。减少弱叶子节点WLN的数量也减少了二叉树失去最优性的概率和系统恢复最优性的概率。
给定现有的二叉树,并且给定要添加到所述二叉树的新叶子节点LN,“理想增长算法”计算出添加新叶子节点LN的最佳现有叶子节点LN。对于每个节点,数据结构保存其子树的叶子节点LN的数量。也就是说,每个节点x都知道其子树的叶子节点LN的数量,记为λ(x),其中如果x是叶子节点LN,则λ(x)=0。所述算法始于根节点RN并且访问当前节点的、以最小λ值为特征的输入节点,直到到达叶子节点LN。
Figure GDA0002123183560000091
在下面的图16中,对于新叶子节点来说的最佳位置由箭头指出。由算法所访问的节点被标有它们各自的λ值。
显然,用于找到最优叶子节点LN的计算开销与二叉树的深度成正比。
应当注意到的是,即使在该二叉树非理想时,前述算法工作也可以工作。从非理想树开始,在添加有限数量的叶子节点LN之后达到理想性。从理想树IBT开始并且在该算法所规定的位置处添加新叶子节点,这提供了新的理想树IBT。
图17中示出了恢复最优性。
从最优二叉树OBT中将弱叶子节点WLN移除产生了不再是最优的二叉树。确实,移除操作创建了所谓的“非最优叶子节点”,其是深度为q-1的特别的叶子节点LN,要记得的是,在该二叉树的其它地方存在至少一个深度为q的叶子节点以及至少一个深度为q+1的叶子节点。最优性恢复算法的输入数据为
具有适当数据结构(将在下文中描述)的二叉树,以及
(一个指针指向)其记作x的特别的非最优叶子节点。
该算法包括三个步骤:找出枢轴节点PN,其中所述枢轴节点是其子树非最优的第一个节点;找出“V”子树(V子树是包含有两个叶子节点和一个根节点的子树);以及将非最优叶子节点LN与V子树进行交换。
使用了以下的数据结构。每个节点s用两个整数来标记:其子树的最大深度dmax(s)以及子树的最小深度dmin(s)。如果二叉树是最优的,则对于任意节点t来说,以下记作c(t)的最优性条件为真:
0≤dmax(u)-dmin(v)≤1并且0≤dmax(v)-dmin(u)≤1
其中u,v是节点t的输入节点。如果t是叶子节点,则dmax(t)=dmin(t)=0。
找出枢轴节点PN的步骤实现如下。枢轴节点寻找器算法从非最优叶子节点x开始并且向根节点RN前进以找出所谓的枢轴节点PN,记作y。该枢轴节点PN是在该路径上具有假的最优性条件的第一个节点。
Figure GDA0002123183560000101
图18示出了查找枢轴节点PN的过程。所找到的枢轴节点为y。由该算法所访问的节点被标有(dmin,dmax)。
找出具有最深深度的V子树的步骤可以实现如下。从而,算法从枢轴节点y开始向叶子节点进行并且找到最深的V子树。该最深的V子树的根节点被标记为z。所述算法为:
Figure GDA0002123183560000102
Figure GDA0002123183560000111
图19示出了对V子树的搜索。该算法所访问的节点被标有它们各自的dmax值。
然后,在图20中示出了交换的步骤,其中将标记为z的该V子树的根节点与非最优叶子节点LN进行交换,这恢复了最优性。
图21示出了可能出现的最坏情况。可能发生的是枢轴节点PN是根节点RN。这发生在被移除的叶子节点位于“远”离最深的叶子节点时。在图21中,叶子节点之前已经被从树的左侧移除,生成了非最优叶子节点x。由于最深的叶子节点位于树的右侧,所以枢轴节点y是根节点。即使在这种最差的情况下,最优性恢复的计算开销也与二叉树的深度成正比。
最优性恢复以如下方式重新组织二叉树:需要一些实体建模更新以获得新的实体形状。需要被重复的操作位于从被修改的节点到根节点RN的路径上。这些操作在图22中为加框的“+”。也就是说,被表示为加框的“+”的节点是在发生改变后要重新计算的节点。
图23表示最优性恢复的最坏情况。显然,要重复的“+”操作的数量不能超过二叉树深度的两倍。再一次,计算的复杂度与二叉树的深度成正比。
本发明的核心内容是恢复二叉树的理想性。
从理想二叉树IBT中移除弱叶子节点WLN并且通过前述算法恢复最优性生成了理想二叉树IBT(其比最优二叉树OBT更好,即,最优二叉树OBT,弱叶子节点的数量已被最小化了,弱叶子节点是这样的叶子节点:当其被移除后,所得到的二叉树不再是最优的)。
接下来是对本发明的证明。
设v为具有p=2q+r个叶子节点的初始理想二叉树的弱叶子节点WLN。从而,必须注意到如下三个事实。首先,叶子节点v的深度为q。其次,节点v的同级子树实际上是记作x的另一个叶子节点(也具有深度q)。否则,v的V形同级子树会在v被移除后保留最优性。第三,在初始二叉树中的某处存在具有深度为q+1的至少一个叶子节点LN。这在图24中示出。
在移除叶子节点v后,其之前的同级叶子节点x的深度减少为q-1,从而破坏了最优性。这在图25中示出。
为了恢复最优性,算法找到V子树,其根节点RN被记作z并且将节点z和x进行交换。其关键点在于z的同级树是记作w的叶子节点,而并不是另一个V子树。(否则,初始二叉树不会是理想的。确实,我们可以假设节点z的同级子树是V子树。然后,在初始二叉树上将该V子树与叶子节点v或x进行交换会减少弱叶子节点WLF的数量而同时保留叶子节点LN的总数量,这与初始二叉树的理想性假设相矛盾)。所以,在移除弱叶子节点v之后,并且在将节点x和z交换之后,可能出现两种情况。如果不再有深度为q+1的叶子节点LN,则所得到的二叉树是完美的,这是因为所有的叶子节点LN都具有同样的深度,其是特定的理想二叉树。如果在树中的某处存在深度为q+1的其它叶子节点LN,则创建了两个新的弱叶子节点WLN。这是由于两个初始弱叶子节点x和v现在被以下四个弱叶子节点所替换:x、w以及在附图中记作c、d的V子树的两个叶子节点,如图26中所示。
由于现在叶子节点LN的总数为p-1,所得到的最优二叉树OBT是理想IBT。确实,在这种情况下,初始(和理想)二叉树IBT的弱叶子节点WLN的数量为
Figure GDA0002123183560000121
在弱叶子节点WLN被移除以及最优性恢复之后,所得到的最优二叉树OBT的弱叶子节点WLN的数量为
Figure GDA0002123183560000122
但是,
Figure GDA0002123183560000123
这意味着,所得到的最优二叉树OBT是理想IBT,这是由于其具有p-1个叶子节点LN,证明结束。
应该注意到,删除理想二叉树IBT的非弱叶子节点可能失去理想性,(而保留最优性),如图27所示。删除最左边的理想二叉树中所指出的叶子节点生成了中心二叉树。其弱叶子节点为白色方块。其是最优的但不是理想的,这是因为具有相同数量的叶子节点的理想二叉树的特征是没有弱叶子节点WLN。
在添加了足够数量的叶子节点之后,理想增长算法恢复了理想性。此外,为之前的最优、但非理想的二叉树恢复其最优性一般不会生成理想二叉树IBT。也就是说,本发明保留了二叉树的最优性。通过增长和最优恢复而保留了理想性。
图28展现了二叉树的所有可能的状态,包括理想二叉树,最优(但非理想的)二叉树以及非最优二叉树。它还汇聚了经过在二叉树上所进行的操作后所有可能的状态变化,所述操作包括:添加叶子节点LN(根据理想增长算法),移除弱叶子节点WLN,移除非弱叶子节点以及恢复最优性。非最优状态是瞬时的,意味着只要失去了最优性,该算法就会瞬间将其恢复。
根据前述说明,最优二叉树OBT上执行的所有操作都与最优二叉树OBT的深度成正比,所述深度是叶子节点LN数量的对数。这些操作是:移除叶子节点、添加叶子节点、恢复最优性、或者更新实体。相反地,在线性表上所执行的操作则主要与叶子节点的总数成正比。在所有基本体积都具有相同的被修改或删除的概率这个工业假设下,以下图表将最优二叉树与有序表之间的平均计算增长进行比较。如图29所示,相比于有序表,二叉树选项显然更具优势。
将叶子节点LN的数量记作p=2q+r,最优二叉树OBT的平均深度为
Figure GDA0002123183560000131
有序表的平均深度为:
Figure GDA0002123183560000132
合适的数据结构是一个二叉树,同时在其每个节点处存储有附加信息。二叉树数据结构、指针以及导航功能在本领域中是传统的。除此之外,本发明还要求每个节点能够提供以下数字数据:其子树的最大深度、其子树的最小深度\以及其子树的叶子节点LN数。通过以至多与深度成正比的开销进行的操作(移除叶子节点、添加叶子节点、恢复最优性)来将这些数据保持更新。所述算法的总体对数计算复杂度都被保留的。也就是说,数据结构管理并没有增加复杂度。
最优二叉树OBT的以下性质将有助于实施。第一点是,最优二叉树的所有子树也是最优二叉树。第二点是,给定最优二叉树的叶子节点LN数量p=2q+r,其中0≤r<2q,则深度为q的叶子节点的数量为2q-r,并且深度为q+1的叶子节点的数量为2r。所以,能够容易地从最优二叉树的叶子节点的数量中计算出最优二叉树的最大和最小深度。给定p,算出q和r,使得p=2q+r并且0≤r<2q。如果r=0,则dmin:=q并且dmax:=q,否则dmin:=q并且dmax:=q+1。
如图30所示,这部分描述了从根据现有技术(为每个输入桶提供线性表,图30的左图)所设计的部分到本发明的数据格式(为每个输入桶提供理想二叉树IBT,图30的右图)的转换。
转换器针对每个输入桶运行理想化算法,其将基本体积的线性表转化为理想二叉树IBT,其中该理想二叉树IBT的叶子节点LN为所述基本体积。接着,所述转换器运行对该部分的实体建模更新,从而生成相同的实体形状。
理想化算法是要以如下步骤逐步生成理想二叉树:
初始化新的二叉树(减少到只有根节点的空二叉树)
For线性表的每个基本体积v do begin
添加新的叶子节点v到二叉树中
END for
另一个并且更快的理想化算法涉及根据叶子节点数量的相关范围的预先计算的理想二叉树IBT的库,其中所述范围通常为从p=2个叶子节点到p=50个叶子节点。这些是纯逻辑结构。对于每个输入桶,所述方法包括读取其线性表中的基本体积的数量,加载对应于该叶子节点数量的理想二叉树结构以及将该线性表的基本体积设置到该二叉树的叶子节点。
算法的选择取决于转换的大小和频率。
数据转换的第一个使用是将通过利用之前版本的CAD系统(其并不实施本发明)设计的模型转换为与实施本发明的一个版本的CAD系统相兼容的模型。在这种情况下,通过将非最优二叉树转换为最优二叉树OBT来获得二叉树。
数据转换的另一个使用是在生成之后改进性能。
图31示出了可以在其中实施本发明的计算机网络或类似的数字处理环境。
客户端计算机/设备CL和服务器计算机SV提供执行应用程序等的处理、存储和输入/输出设备。客户端计算机/设备C还能够通过通信网络CNET被链接到其它计算设备,包括其它客户端设备/处理器CL以及服务器计算机SV。通信网络70可以是以下中的一部分:远程接入网络、全球网络(例如,互联网)、世界性的计算机集合、局域或广域网,以及当前使用相应协议(TCP/IP、蓝牙等)以进行相互通信的网关。其它电子设备/计算机网络架构也是适用的。
图32是图31的计算机系统中计算机(例如,客户端处理器/设备CL或服务器计算机SV)的内部结构的示意图。每个计算机CL、SV包含系统总线SB,其中总线是用于在计算机或处理系统的部件之间传输数据的硬件线路的集合。总线SB本质上是共享的管道,其连接了计算机系统的不同元件(例如,处理器、磁盘存储设备、存储器、输入/输出端口、网络端口等…),这使得能够在不同元件之间传输信息。
连接到系统总线SB的是I/O设备接口DI,其用于将各种输入和输出设备(例如,键盘、鼠标、显示器、打印机、扬声器等)连接到计算机CL、SV。网络接口NI允许计算机与连接到网络(例如,图31的网络CNET)的各种其它设备进行连接。
存储器MEM为用于实施本发明实施例的计算机软件指令SI和数据CPP(例如,第一路径建立器PB、用于计算第二路径的单元CM、实施图1到30中所讨论的方法的更新器UD、以及上文详述的支持代码)提供了易失性存储。
磁盘存储设备DS为用于实施本发明实施例的计算机软件指令SI和数据DAT提供了非易失性存储。中央处理器单元CPU也连接到系统总线SB并支持计算机指令的执行。
在一个实施例中,处理器例程SI和数据DAT是计算机程序产品(通常被称为CPP),其包括为本发明的系统提供至少一部分软件指令的计算机可读介质(例如,诸如一个或多个DVD-ROM、CD-ROM、磁盘、磁带等…这样的可移动存储介质)。如在本领域中众所周知的,能够通过任何合适的软件安装过程来安装计算机程序产品CPP。
在另一个实施例中,还可以通过电缆、通信和/或无线连接来下载软件指令的至少一部分。在其它实施例中,本发明的程序是传播在传播介质上(例如,无线电波、红外波、激光波、声波或通过诸如互联网这样的全球网络或其它网络传播的电波)的传播信号上所实现的计算机程序传播信号产品SP。这种载体介质或信号提供了本发明例程/程序CPP的软件指令的至少一部分。
在可替换的实施例中,传播信号是传播介质上所携带的模拟载波或数字信号。例如,传播信号可以是通过全球网络(例如,互联网)、电信网络或其它网络中所传播的数字化的信号。
在一个实施例中,传播信号是在一段时间内通过传播介质来传输的信号,例如在毫秒、秒、分或更长的一段时间内通过网络在分组中所发送的用于软件应用的指令。
在另一个实施例中,计算机程序产品CPP的计算机可读介质是计算机系统CL可以接收并读取的传播介质,例如通过接收传播介质并识别在传播介质中所实现的传播信号来进行接收和读取,如上文针对计算机程序传播信号产品所描述的。
总的来说,术语“载体介质”或瞬时载体包含了前述的瞬时信号、传播信号、传播介质、存储介质等。
尽管通过参考本发明的示例性实施例而具体地示出并描述了本发明,但是本领域普通技术人员应当理解可以在形式和细节方面进行各种变化而不背离由所附权利要求所包含的本发明的范围。

Claims (12)

1.一种计算机实施的用于设计用二叉树来建模的工业产品的方法,所述二叉树代表所述工业产品,并且具有代表基本体积的叶子节点(LN)、以及代表将体积进行组合的二元可交换操作的非叶子节点,所述方法包括以下步骤:
执行触发添加或移除叶子节点(LN)的设计操作;并且
理想化所述二叉树,即,通过将弱叶子节点(WLN)的数量最小化来修改所述二叉树而同时保持该树的最优性(OBT),弱叶子节点(WLN)是这样的叶子节点(LN):当其被移除后,所得到的二叉树不再是最优的,其中:
当所述设计操作为添加新的叶子节点(LN)时,所述理想化包括以下步骤:
通过从根节点(RN)到现有叶子节点(LN)遍历所述二叉树来确定节点路径,其中,通过迭代地选择定义了具有最少叶子节点(LN)数量的子树的下一个节点来遍历所述二叉树;并且
在结束路径的所述现有叶子节点(LN)处添加所述新的叶子节点(LN);
当所述设计操作为移除叶子节点(LN)时,所述理想化包括以下步骤:
确定具有最小深度的叶子节点(LN)以作为已经不再是最优二叉树的所述二叉树上的非最优叶子节点(LN);
在从所述非最优叶子节点(LN)到根节点(RN)的路径中,确定枢轴节点(PN),所述枢轴节点是其子树非最优的第一个节点;
在所述枢轴节点(PN)的非最优子树中,确定具有最深深度的V子树,V子树是具有两个叶子节点(LN)的子树;并且
将所述非最优叶子节点(LN)与所述V子树进行交换;
最优二叉树的任意两个叶子节点(LN)之间的深度差的绝对值为零或一。
2.根据权利要求1所述的计算机实施的用于设计用二叉树来建模的工业产品的方法,其中,所述方法进一步包括以下步骤:提供预定义树以用于输入适用于设计特定工业产品的二叉树。
3.根据权利要求1或2中的一项所述的计算机实施的用于设计用二叉树来建模的工业产品的方法,其中,对于所述二叉树的每个节点,其子树的最大深度被存储在存储器中。
4.根据权利要求1或2中的一项所述的计算机实施的用于设计用二叉树来建模的工业产品的方法,其中,对于所述二叉树的每个节点,其子树的最小深度被存储在存储器中。
5.根据权利要求1或2中的一项所述的计算机实施的用于设计用二叉树来建模的工业产品的方法,其中,对于所述二叉树的每个节点,其子树的叶子节点(LN)的数量被存储在存储器中。
6.根据权利要求1或2中的一项所述的计算机实施的用于设计用二叉树来建模的工业产品的方法,其中,所述二叉树是通过将非最优二叉树转换为最优二叉树(OBT)来获得的。
7.根据权利要求6所述的计算机实施的用于设计用二叉树来建模的工业产品的方法,进一步包括通过以下来将代表工业产品的任何二叉树理想化的预备步骤:将代表基本体积的叶子节点(LN)的线性表转化为理想二叉树(IBT)其中,在所述理想二叉树(IBT)中,所述叶子节点(LN)为所述基本体积。
8.根据权利要求6所述的计算机实施的用于设计用二叉树来建模的工业产品的方法,进一步包括通过以下来将代表工业产品的任何二叉树理想化的预备步骤:使用根据叶子节点(LN)数量的相关范围的预先计算出的理想二叉树的库,并且读取代表了所述二叉树的线性表的基本体积的叶子节点(LN)数量,以加载对应于所述叶子节点数量的预先计算出的理想二叉树(IBT)并将该预先计算出的二叉树的叶子节点(LN)设置到所述线性表的所述基本体积。
9.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令使得计算机系统执行根据权利要求1-8中的任意一项所述的用于设计用二叉树来建模的工业产品的方法。
10.一种存储在计算机可读介质上的计算机程序产品,所述计算机程序产品用于设计用二叉树来建模的工业产品,所述计算机程序产品包括用于使系统采用根据权利要求1-8中的任意一项所述的方法中的步骤的代码单元。
11.一种用于设计用二叉树来建模的工业产品的装置,所述装置包括用于实施根据权利要求1-8中的任意一项所述的方法中的步骤的单元。
12.使用根据权利要求1-8中的任意一项所述的方法而设计的工业产品。
CN201410674194.3A 2013-09-11 2014-09-10 计算机实施的用于设计用二叉树来建模的工业产品的方法 Active CN104462668B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13306244.8 2013-09-11
EP13306244.8A EP2849099B1 (en) 2013-09-11 2013-09-11 A computer-implemented method for designing an industrial product modeled with a binary tree.

Publications (2)

Publication Number Publication Date
CN104462668A CN104462668A (zh) 2015-03-25
CN104462668B true CN104462668B (zh) 2020-04-07

Family

ID=49263264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410674194.3A Active CN104462668B (zh) 2013-09-11 2014-09-10 计算机实施的用于设计用二叉树来建模的工业产品的方法

Country Status (6)

Country Link
US (1) US9830406B2 (zh)
EP (1) EP2849099B1 (zh)
JP (1) JP6506929B2 (zh)
KR (1) KR20150030170A (zh)
CN (1) CN104462668B (zh)
CA (1) CA2863089A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102488572B1 (ko) 2015-05-06 2023-01-13 한화파워시스템 주식회사 제품 설계 방법 및 이 방법을 채용한 압축기 설계 방법
JP6687894B2 (ja) * 2016-05-20 2020-04-28 富士ゼロックス株式会社 クラス推定装置及びプログラム
CN108319509B (zh) * 2017-12-20 2020-10-23 瑞斯康达科技发展股份有限公司 一种事件管理方法、系统及主控设备
JP7087931B2 (ja) * 2018-11-08 2022-06-21 富士通株式会社 探索プログラム、探索方法及び探索装置
US20220237637A1 (en) * 2018-12-18 2022-07-28 Meta Platforms, Inc. Systems and methods for real time crowdsourcing
US11275453B1 (en) 2019-09-30 2022-03-15 Snap Inc. Smart ring for manipulating virtual objects displayed by a wearable device
US11257015B2 (en) * 2020-04-16 2022-02-22 Accenture Global Solutions Limited Impact network
US11798429B1 (en) 2020-05-04 2023-10-24 Snap Inc. Virtual tutorials for musical instruments with finger tracking in augmented reality
CN113672773A (zh) * 2020-05-15 2021-11-19 瑞昱半导体股份有限公司 执行内容通道产生的装置及方法
US11520399B2 (en) 2020-05-26 2022-12-06 Snap Inc. Interactive augmented reality experiences using positional tracking
US11925863B2 (en) 2020-09-18 2024-03-12 Snap Inc. Tracking hand gestures for interactive game control in augmented reality
US11740313B2 (en) 2020-12-30 2023-08-29 Snap Inc. Augmented reality precision tracking and display
US12013985B1 (en) * 2021-02-25 2024-06-18 Snap Inc. Single-handed gestures for reviewing virtual content
CN117178247A (zh) * 2021-04-19 2023-12-05 斯纳普公司 用于动画化及控制虚拟和图形元素的手势
CN113177594B (zh) * 2021-04-29 2022-06-17 浙江大学 基于贝叶斯优化的pca-极限随机树的空调故障诊断方法
CN114336778B (zh) * 2021-11-29 2023-09-22 中国华能集团清洁能源技术研究院有限公司 风光火储系统中火电机组的开机序列确定方法和装置
CN114363985B (zh) * 2022-01-10 2023-07-25 黑龙江大学 基于节点权重构建二叉树的方法及二叉树的更新方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1272296A (zh) * 1997-07-11 2000-11-01 艾利森电话股份有限公司 Vp/vc查找技术

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086982A (ja) * 1994-06-20 1996-01-12 Hitachi Ltd 図形処理方法及び装置
US5729254A (en) * 1995-12-27 1998-03-17 Mitsubishi Electric Information Technology Center America, Inc. Method and apparatus for differential object modeling using automatically generated constructive solid geometry (CSG) through an evolutionary process
US7313504B2 (en) * 2001-10-15 2007-12-25 Solidworks Corporation Model management technology using grouping of features
US7155442B2 (en) * 2002-06-28 2006-12-26 Microsoft Corporation Compressed normalized character comparison with inversion
US7096235B2 (en) * 2003-03-27 2006-08-22 Sand Technology Systems International, Inc. Computer implemented compact 0-complete tree dynamic storage structure and method of processing stored data
US7120637B2 (en) * 2003-05-30 2006-10-10 Microsoft Corporation Positional access using a b-tree
EP1501026A1 (en) 2003-07-25 2005-01-26 Dassault Systèmes CAD system using a context-free grammar
KR100586461B1 (ko) * 2003-10-15 2006-06-08 임혜숙 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체
JP4359622B2 (ja) * 2007-01-22 2009-11-04 富士通株式会社 電子署名プログラム、および電子署名装置
US20100146003A1 (en) * 2008-12-10 2010-06-10 Unisys Corporation Method and system for building a B-tree
EP2474929A1 (en) 2010-12-30 2012-07-11 Dassault Systèmes Modeled object updating
EP2474928A1 (en) 2010-12-30 2012-07-11 Dassault Systèmes Merging of modeled objects
EP2474930B1 (en) 2010-12-30 2018-10-24 Dassault Systèmes Updating a modeled object

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1272296A (zh) * 1997-07-11 2000-11-01 艾利森电话股份有限公司 Vp/vc查找技术

Also Published As

Publication number Publication date
JP6506929B2 (ja) 2019-04-24
KR20150030170A (ko) 2015-03-19
CN104462668A (zh) 2015-03-25
EP2849099A1 (en) 2015-03-18
EP2849099B1 (en) 2021-07-28
CA2863089A1 (en) 2015-03-11
US20150073753A1 (en) 2015-03-12
JP2015064876A (ja) 2015-04-09
US9830406B2 (en) 2017-11-28

Similar Documents

Publication Publication Date Title
CN104462668B (zh) 计算机实施的用于设计用二叉树来建模的工业产品的方法
US10540350B2 (en) Source code search engine
KR102054568B1 (ko) 필터링 데이터 계통 다이어그램
US9367300B2 (en) Method and apparatus for determining installation order of software
CN109508326B (zh) 用于处理数据的方法、装置和系统
CN115335823A (zh) 用于最短路径图搜索的向量化的队列
CN114175640B (zh) 向量化的散列表
Brune et al. Unstructured geometric multigrid in two and three dimensions on complex and graded meshes
CN116822422B (zh) 数字逻辑电路的分析优化方法及相关设备
WO2021174836A1 (zh) 差分包生成方法方法、装置、计算机设备及存储介质
CN111078672A (zh) 数据库的数据对比方法及装置
Lewis A formal proof of Hensel's lemma over the p-adic integers
WO2014020834A1 (ja) 単語潜在トピック推定装置および単語潜在トピック推定方法
JP5292384B2 (ja) グラフインデックス再構成装置
CN106599122B (zh) 一种基于垂直分解的并行频繁闭序列挖掘方法
Büchler et al. An improved encoding of genetic variation in a Burrows–Wheeler transform
Arge et al. I/O-efficient contour tree simplification
WO2011131248A1 (en) Method and apparatus for losslessly compressing/decompressing data
WO2019181347A1 (ja) 最適解探索装置、最適解探索方法及びプログラム
CN113159312B (zh) 压缩神经网络模型的方法、计算机系统以及存储介质
CN111209295B (zh) 计算流图优化方法、数据库访问方法及装置
CN114327271B (zh) 生命周期的管理方法、装置、设备以及存储介质
US20230419145A1 (en) Processor and method for performing tensor network contraction in quantum simulator
Belussi et al. Establishing robustness of a spatial dataset in a tolerance‐based vector model
JP2023540242A (ja) データベースで実行するためのコンピュータプログラムの動作の変換

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant