CN103020400A - 基于复杂网络边介数的模块划分方法 - Google Patents
基于复杂网络边介数的模块划分方法 Download PDFInfo
- Publication number
- CN103020400A CN103020400A CN2013100019592A CN201310001959A CN103020400A CN 103020400 A CN103020400 A CN 103020400A CN 2013100019592 A CN2013100019592 A CN 2013100019592A CN 201310001959 A CN201310001959 A CN 201310001959A CN 103020400 A CN103020400 A CN 103020400A
- Authority
- CN
- China
- Prior art keywords
- network
- limit
- jie
- module
- assembly
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种基于复杂网络边介数的模块划分方法,其首先根据给定机械产品内部所有零部件相互之间的装配约束关系式建立装配关系网络;然后计算给定机械产品零部件的装配关系网络中各条边的边介数,并去掉网络中边介数最大的边,将网络分成若干子网络;最后对各个子网络重复计算边介数和去掉网络中边介数最大的边的过程,直到分解的所有子网络符合设定的模块划分粒度为止,此时所得子网络即为划分出的功能模块;并据此建立功能模块库。该模块划分方法对工程技术人员的经验要求较低,且具有一定的通用性,并可以在一定程度上实现智能化,可以在较短的时间内实现对机械产品的模块划分。
Description
技术领域
本发明涉及机械产品设计领域,具体涉及一种基于复杂网络边介数的模块划分方法。
背景技术
面向大批量定制和大批量定制的设计技术是建立在模块化基础上的。产品的模块化设计是在对一定范围内的不同功能或相同功能不同性能、不同规格的产品进行功能分析的基础上,划分并设计出一系列功能模块。通过模块的选择和组合可以构成不同的产品,通过对不同模块的组合实现了以有限资源生产出尽可能多的产品品种。产品模块化是企业产品资源重用的基础,也是实现产品配置设计和变型设计的关键。产品模块化综合考虑了产品对象,把产品按照功能分解成不同用途和性能的模块,并使模块的接口(结合要素、形状和尺寸等)标准化,选择不同的模块可以迅速组成满足各种要求的产品。
模块化设计是大批量定制的一个关键使能技术。许多专家和学者对模块化设计进行了大量的研究,并取得了一定的成果,但是模块化设计的一些关键技术如模块划分等仍然没有得到完善解决。近年来,随着复杂网络理论研究的发展,其应用领域也越来越广。但主要集中在交通网、互联网、电力网等领域,在机械领域里的应用极少。
发明内容
本发明所要解决的技术问题是提供一种基于复杂网络边介数的模块划分方法,该模块划分方法对技术人员的设计经验依赖较低,且具有一定的通用性,并可以在一定程度上实现智能化,可以在较短的时间内实现对机械产品的模块划分。
为解决上述问题,本发明是通过以下方案实现的:
一种基于复杂网络边介数的模块划分方法,包括如下步骤:
(1)给出给定机械产品内部所有零部件相互之间的装配约束关系式;
(2)根据给定机械产品的零部件数及上述零部件间的装配约束关系建立装配关系网络;
(3)计算给定机械产品零部件的装配关系网络中各条边的边介数;
(4)去掉网络中边介数最大的边,将网络分成若干子网络;
(5)对各个子网络重复计算边介数和去掉网络中边介数最大的边的过程,直到分解的所有子网络符合设定的模块划分粒度为止,此时所得子网络即为划分出的功能模块;
(6)根据划分出的功能模块建立功能模块库,该功能模块库记录有各个功能模块所包含的零部件。
当步骤(3)对无权无向无环网络进行边介数搜索时,其过程如下:采用循环与邻接表的数据结构将网络的所有结点及其对应的邻接点按顺序依次存入邻接表,然后从网络中任选一条边依次搜索所有包含该边的任意两点间的最短路径,并记录该边的边介数,如此循环,直到网络中所有边的边介数都求出来为止。
本发明将复杂网络的有关理论应用到模块划分中,则可以很好地分析机械产品中零部件装配关系。如果用结点来表示机械产品中的零件或部件,以边来表示零件或部件之间的装配关系,因为零部件间的联接关系是相互的,且只考虑它们的联接关系,不考虑装配关系重要程度,这样就可以组成一个无权无向无环网络。计算出各边的边介数,则可以形象清晰地看到各联接关系的紧密和重要程度,边介数越大,说明它的联接重要度越大,逐步去掉边介数大的边,就可以将整个机械网络分成一个一个的小集团(即模块)。改变去掉边介数的程度,即可得到不同粒度的模块形式。这样就可以得到多种模块划分方案以供分析选择。
与现有技术相比,本发明能够在对企业某型成熟系列化机床销售数据和订单进行数据分析后,对未来产品的发展和客户的个性化需求进行了定位和预测。在此基础上,成功地实现了:1、按照功能、结构特点及加工装配等条件,进行了模块划分;2、通过自定义算法,合理地对模块间的接口进行了标准化;3、实现了模块的搜索以及变型设计技术下定制模块的快速生成;4、实现了模块在软件环境下的自动组合。通过模块化设计使得机床设计周期从3个月缩短到几个小时即可完成。
附图说明
图1为一种无权无向无环网络;
图2为边介数搜索流程图;
图3为基于复杂网络边介数集聚特性的模块划分框图;
图4为移除边11-24后所得的两个子网络W11、W24;
图5为移除边9-17后所得的两个子网络W9、W17;
图6为由图1所示网络划分的五个子模块(a、b、c、d、e)。
具体实施方式
下面对本发明一种基于复杂网络边介数的模块划分方法进行详细说明:
参数化建模技术是当今CAD技术中非常重要的建模技术之一,是产品建模中一个很重要的手段,被普遍应用在系列化产品的设计之中。参数化模型是通过约束表达产品模型的形状特征,定义一组参数来控制产品的设计结果,因此可以通过修改设计参数来更改产品模型或创建相似产品模型。
参数化设计的基本思想是在基于约束的产品描述方法上,以一组参数来控制产品几何模型所对应的一组结构尺寸,且参数和尺寸之间是显式对应的关系,因而可以通过修改尺寸参数来驱动几何模型。参数化设计方法与传统设计方法的主要区别是:前者采用的基于约束的产品描述方法将产品的整个设计过程进行了存储,所以可以设计出一族相似的产品;而后者设计出的是单一的产品。经过十几年的发展,如今零件级的参数化设计技术已经相对成熟,一些常用的三维设计软件(如SolidWorks、CATIA、UG、PRO/E等)都提供了易学易用的零件级参数化设计功能。但到目前为止,部件级和产品级的参数化建模技术还不够成熟,主要是先对零件级实施参数化技术,建立零件级的参数化模型,再通过对零件级参数化模型添加装配约束来构建部件级与产品级的参数化模型。
各种产品都是由不同部件或零件组成的,而部件又是由子部件或零件组成的,因此,按此规律逐层分解,最终可以将整个产品分解成最小的组成单元,即零件。如果先采用参数化技术建立零件级的参数化模型,再通过同一部件中各零件之间装配约束关系(尺寸约束关系)进行装配,就可以建立由零件级的参数化模型以及装配约束关系(主要为尺寸约束关系)所组成的部件级参数化模型,以此类推,一直可以类推到产品,即产品的参数化模型可以通过零件级的参数化模型和各零件之间的装配约束关系而得到。
本发明选用现今比较流行的SolidWorks三维造型软件作为参数化设计工具。SolidWorks三维造型软件是美国SolidWorks公司在继承和总结大量机械CAD软件设计经验的基础上,于1995年11月首家推出的基于Windows环境下开发的三维CAD软件,因为其技术创新符合CAD技术发展的潮流与趋势,自从诞生以来,便受到广大用户的青睐,尤其是中小型企业。目前,SolidWorks三维软件在机械行业被普遍采用,是市场份额增长较快、市场前景较好、技术发展较快、性价比较优的软件之一。
SolidWorks软件拥有十分强大的功能,涵盖了零件造型、钣金设计、曲面建模、从装配图的设计到工程图的绘制、从有限元分析到动态仿真等领域。它可以通过草图绘制、拉伸、旋转、抽壳、阵列等操作来实现零件建模;可以通过扫描、放样、填充等功能来实现复杂曲面绘制;可以通过智能化装配技术完成零部件装配,而且可以动态的查看装配体的仿真运动,并对运动的零部件进行动态的干涉检查和间隙检查;可以完成三维图到工程图的自动转化,包括尺寸及公差等信息的标注;可以通过SolidWorks提供的COSMOSXPress插件模块,直接对零件进行有限元分析等功能。
(1)装配约束关系的提取
当前主流的三维软件,如SolidWorks、CATIA、UG、PRO/E等,都提供了二次开发接口(API),使用户能在软件本身功能的基础上开发新的功能模块,满足特定的需求。因此,可以通过二次开发技术,对相关的三维软件进行二次开发,开发装配约束关系提取模块,利用该模块可以提取相应三维软件中打开的产品三维模型的装配约束关系。本发明利用VisualC++6.0平台对SolidWorks2008进行二次开发,开发出能与SolidWorks2008集成的装配约束关系提取模块。利用该模块可以很方便地提取出SolidWorks2008环境下打开的产品参数化模型中零部件之间的装配约束关系。
(1.1)SolidWorks二次开发方法简介
SolidWorks软件在提供强大的设计、分析等功能的同时,为了满足用户进行二次开发的个性化需求,提供了大量的API(应用程序接口)函数,这些API函数是SolidWorks的OLE(Object Linking and Embedding,对象的嵌入与链接)或COM(Component Object Model,组件对象模型)接口。任何支持OLE和COM的编程语言都可以作为SolidWorks的开发工具。SolidWorks二次开发技术分为基于OLE自动化技术和基于COM技术两种。其中COM技术可以使用的SolidWorks API更多,并且可控制SolidWorks的运行方式,生成*.exe和*.dll格式的文件。
通过基于COM技术对SolidWorks进行二次开发,不仅生成的*.exe文件和*.dll文件都可以作为COM的组件,而且可以利用Visual C++编写基于COM技术的DLL程序,实现对SolidWorks底层的一些开发,且这类代码的执行效率很高,可以直接在SolidWorks界面中添加新菜单和新工具条等,当运行程序注册成功后即可以生成为SolidWorks的插件,从而实现与SolidWorks的无缝集成,是目前二次开发方法中应用最多的一种。本发明所开发的产品装配关系提取模块就是采用COM开发技术,以VisuaLC++6.0作为开发平台,利用C++语言,通过SolidWorks2008API对SolidWorks2008进行二次开发而成。
(1.2)SolidWorks二次开发方法的关键技术
(1.2.1)SolidWorks API程序结构
一个完整的SolidWorks应用程序体系结构由Visual C++6.0应用程序设计向导自动创建的程序框架、添加的SolidWorks Addin对象、新的.cpp源文件和需要的程序代码等部分组成。从整个程序结构的体系上看,程序设计者主要做以下两个工作:一是实现Visual C++6.0开发平台在SolidWorks运行环境中设计的接口程序和终止程序;二是根据实际功能要求编写SolidWorks二次开发应用程序主体部分。前者是完成VisualC++6.0与SolidWorks的无缝对接,后者是完成应用程序要求的一个或多个.cpp源文件。
ConnectToSW()是对象初始化函数,是连接到SolidWorks的入口函数,相当于C程序中的Main()函数,当SolidWorks中加载插件时优先被调用,其格式为:
DisconnectFromSW()函数为对象卸载函数,实现SolidWorks应用程序与SolidWorks断开联接。当用户选择【工具】|【插件】卸载应用程序组件时被优先调用,其格式为:
(1.2.2)SolidWorks API程序开发步骤
1.安装SolidWorks API SDK
在进行SolidWorks API程序开发之前,必须安装SolidWorks API SDK,需要注意的是安装向导文件的路径必须和开发工具(这里以VisualC++6.0为开发工具)所在的路径相同。
2.新建工程项目
首先启动Visual C++6.0,单击文件菜单→选择新建→创建一个新工程→选择ATL COM AppWizard→编写工程名和选择工程路径→选择SupportMFC→Finish→OK。需要特别注意的是,所有工程名和保存路径不允许包含中文。
3.添加SolidWorks Addin对象
在ClassView界面中的Project上右击→选择New ATL Object→在弹出的ATL Object Wizard对话框的Category对话框中选择SolidWorks→选择SWAddin→Next→设置ATL Object Wizard属性→确定。其中ATLObject Wizard属性对话框,主要包括Names、Attributes、SolidWorksAddIn选项卡。在Names选项卡的Short Name文本框中输入名称(如:swobj)即可;Attributes选项卡是基本的COM属性设置,如果没有特殊要求一般为默认设置;SolidWorks AddIn选项卡为SolidWorks AddIn对象的特有属性,包括文档选项、属性管理器和视图选项,用户可以根据实际需要进行选择。
4.定义对象初始化函数和卸载函数
5.添加自定义方法
在ClassView界面中,右击Iswobj类→选择Add Method→为方法命名→确定。添加的自定义方法在向导中自动生成代码,用户可以在其中添加新的代码实现需要的功能。
6.设计菜单并编写自定义命令
在ResourceView界面中,双击String Table,根据功能要求在StringTable中修改设计主菜单。在String Table中的空白行双击,在表中添加String资源。添加的String资源主要是设计下拉菜单、命令项显示的内容、命令项的响应函数名和命令项显示的提示信息。最后利用响应函数对不同菜单进行设计,并编写具体的响应程序。
7.添加源代码并编译工程
根据用户的功能要求,添加相应的源代码,并编译工程,生成*.dll文件。
8.注册SolidWorks插件
SolidWorks根据插件卸载注册表中的信息查找插件所在的文件路径,然后根据文件路径加载该插件。一般情况下SolidWorks开发向导以及Visual C++6.0开发环境都会自动完成注册工作,但是也存在编译程序后注册表AddIns中并没有对应键值的可能。这种情况需要手动添加,具体方法如下:
①选择【Windows开始】【运行】命令,在弹出的对话框中输入regedit打开注册表编辑器。在HEKY_LOCAL_MACHINE的Software中找到SolidWorks,在其AddIns选项下面添加一项键值。
②在CSLID选项下添加该键值,并在该键值下建立5项属性,分别为InprocServer32、ProglD、Programmable、TypeLib、VersionlndependentProglD。
③在InprocServer32上右击,选择添加字符串,将修改名称为默认,修改数据位组件所在位置。
④在ProglD上右击,选择添加字符串,将修改名称为默认,修改数据为组件的名称。
⑤在TypeLib上右击,选择添加字符串,将修改名称为默认,修改数据为组件的名称。
(1.3)装配约束关系提取模块
基于上述的SolidWorks二次开发技术,以Visual C++6.0为开发工具,通过SolidWorks的二次开发接口(API)开发了能与SolidWorks无缝集成插件“装配约束提取模块”。利用该模块可以提取任意在SolidWorks环境下打开的当前装配体的装配约束关系,并可以将所提取的装配约束关系保存到TXT文档中,供相关的设计人员查看和使用。
现将该模块的使用介绍如下:
①第一次使用本模块时,单击“工具”菜单下的“插件”工具,在“其他插件”中勾选yueshutiqu,注册成功后将在SolidWorks菜单栏中自动添加一个菜单项,菜单项的名称为“装配约束关系提取模块”。
②单击“装配约束关系提取模块”的下拉子菜单“提取装配体零部件之间的约束关系”。
③若继续使用,则输入用户名及密码,单击“确定”,弹出“装配体零部件约束关系提取”。
④单击“约束关系操作”项里的“提取约束关系”,即可以提取当前打开的装配体零部件之间约束关系,并在“约束关系预览”框里显示。如需要保存则单击“约束关系操作”项里的“保存约束关系”,即可将所提取的约束关系保存为TXT文档格式。
(2)装配关系网络图的构建
网络是结点与边的集合体。对于一个装配体,可以把零件或部件定义为结点,零部件之间的装配约束关系定义为边,这样就可以组成一个装配体的装配关系网络。因为装配关系是一种相互关系,所以该网络是无向的;又由于在模块划分中,主要是考虑零部件之间的集聚特性,所以边可以是无权的;对于一个装配体的装配关系不可能是闭环的,所以该网络属于无环网络。因此,装配关系网络实际上就是一种无权无向无环网络,简称为三无网络。
绘制装配关系网络图,可以清楚形象地看到装配体的联接关系,大致了解装配体中零部件的集聚特性,同时也便于后续边介数的计算。绘制网络图的方法有很多种,市场上也有许多这类的软件。本发明采用目前比较流行的网络图绘制软件“NetDraw”。
利用NetDraw软件绘制网络图的具体使用方法,可以参看有关软件的使用帮助说明,或查阅其他书籍资料,在这里仅介绍本发明所用到的一些方法。在绘制装配关系约束网络图时,首先利用上述所开发的“装配约束关系提取模块”在SolidWorks环境下提取出装配体零部件之间的装配约束关系,并保存到TXT文档里面。为了描述及显示方便,可以把零部件的名称用数字编号来代替,并且按编号的大小依次以结点对的形式表示零件之间的联接关系,然后在文档的起始部分加上零部件的总个数,及初始化命令:dl n=66format=edgelistl labels embedded即可。
打开NetDraw软件,单击File菜单,在下拉菜单中选择open—>UcinetDL textfile—>Network(1-mode)。导入上述的66node.txt文件,即可以得到装配体零部件约束关系网络图。
(3)边介数搜索算法及其实现
(3.1)边介数的定义
在网络中,一条边的边介数定义为通过该条边的最短路径的条数。根据边介数的定义,可以归纳出某条边的边介数计算公式如下:
式中:Bij——过由顶点i和j组成的边的边介数;n——网络的顶点数;Pijk——从顶点k出发且经过边ij(或边ji),到网络中其他顶点的最短路径数。
边介数反映了相应的结点之间的边在整个网络中的作用和影响力,是一个重要的全局几何量,具有很强的现实意义。边介数越大说明这条边联接的两个网络部分越密集,集聚特性越强,如果将边介数最大的边移除掉就可以得到两个密集型的小网络。如此类推,可以将一个大型网络分割成若干密集型的小网络。若为机械网络,便可以将整个机械系统分为一个个的小模块,即达到模块划分的目的。图1为一种无权无向无环网络图。
(3.2)边介数搜索算法
最短路径:在网络中,任意两个结点之间所有路径中距离最短的路径称为最短路径。最短路径的距离分两种情况:若网络为加权网络,则指路径上各边的权值总和;若网络为无权网络,则指路径上边数的总和。当加权网络中边的权值为1时,加权网络等价于无权网络,因此无权网络也可以说是加权网络的一种特殊情况。
有关如何搜索如图1所示的无权无向无环网络中任意边的边介数,本方面研究了一种比较高效的无权无向无环网络边介数搜索算法。算法的基本思想如下:采用循环与邻接表的数据结构将网络的所有结点及其对应的邻接点按顺序依次存入邻接表,然后从网络中任选一条边依次搜索所有包含该边的任意两点间的最短路径,并记录该边的边介数,如此循环,直到网络中所有边的边介数都求出来为止。
其算法主要包括以下步骤:
①根据给定对象(机械产品)的结点(零部件)数及结点间的关系(装配约束关系)建立网络图。设计并实现有相关网络的一些基本算法,如结点及其邻接点的存储,联接关系表达等。
②根据无权无向无环网络的特点,为了减少搜索工作量,采用递归和堆栈从指定结点a出发,并将指定结点标记为已访问过,然后依次搜索出发点a的每一个邻接点b,若b未曾被访问过,则沿此边从a到达b,访问b并将其标记为已访问过,然后从b开始搜索,直到搜索完从b出发的所有路径,才回溯到结点a,再选择一条从a出发未探寻过的边。上述过程一直循环到从a出发的所有边都探寻过为止。在这个过程中,从a开始,每探寻到一个未被访问的结点,则边介数加1,最终,即可以得到该边的边介数。其中计算图1中的边5-6的边介数,搜索到的最短路径如表1所示。
表1边5-6的最短路径
路径编号 | 路径经过的结点序号 |
1 | 5-6 |
2 | 5-6-7 |
3 | 5-6-7-11 |
4 | 5-6-7-11-24 |
5 | 5-6-7-11-24-28 |
6 | 5-6-7-11-24-28-31 |
7 | 5-6-7-11-24-28-30 |
8 | 5-6-7-11-24-28-29 |
9 | 5-6-7-11-24-28-27 |
10 | 5-6-7-11-24-26 |
11 | 5-6-7-11-24-25 |
12 | 5-6-7-11-24-25-27 |
13 | 5-6-7-10 |
14 | 5-6-7-10-12 |
15 | 5-6-7-10-12-15 |
16 | 5-6-7-10-12-15-16 |
17 | 5-6-7-10-12-14 |
18 | 5-6-7-10-12-13 |
19 | 5-6-7-9 |
20 | 5-6-7-9-17 |
21 | 5-6-7-9-17-19 |
22 | 5-6-7-9-17-19-23 |
23 | 5-6-7-9-17-19-22 |
24 | 5-6-7-9-17-18 |
25 | 5-6-7-9-17-18-21 |
26 | 5-6-7-9-17-18-20 |
27 | 5-6-7-8 |
28 | 5-6-4 |
③当以a为起点的边的边介数搜索完毕后,则搜索以a的下一点c为起点,以c的邻接点为终点构成的边的边介数。
④重复步骤②和③,直到求出网络中所有边的边介数为止。
在本发明中该算法利用Visual C++6.0平台,采用C++语言编程实现,算法的具体流程如图2所示。流程图中各字母的含义如下:a为当前路径中包含的边数,b为初始结点,d为当前结点的上一结点,ei为目标结点,min为两结点之间所有路径中最短路径所包含的边数。
利用上述编写的程序,对产品约束关系网络进行分析计算,即可得到产品约束关系网络中所有边的边介数。程序运行结束后,即可求得网络中各条边的边介数如表2所示。
表2网络中各边的边介数
边 | 边介数 | 边 | 边介数 | 边 | 边介数 | 边 | 边介数 |
12 | 58 | 7-11 | 100 | 14-15 | 4 | 24-25 | 59 |
2-3 | 59 | 8-10 | 16 | 15-16 | 42 | 24-26 | 28 |
2-4 | 57 | 9-11 | 128 | 17-18 | 103 | 24-28 | 139 |
3-5 | 3 | 9-17 | 231 | 17-19 | 103 | 25-27 | 32 |
3-6 | 82 | 10-11 | 118 | 18-20 | 38 | 26-28 | 5 |
4-6 | 83 | 10-12 | 185 | 18-21 | 39 | 27-28 | 36 |
5-6 | 28 | 11-24 | 234 | 19-22 | 39 | 28-29 | 33 |
6-7 | 208 | 12-13 | 40 | 19-23 | 38 | 28-30 | 33 |
7-8 | 27 | 12-14 | 38 | 20-22 | 6 | 28-31 | 32 |
7-9 | 128 | 12-15 | 78 | 21-22 | 6 | 29-31 | 2 |
7-10 | 102 | 13-14 | 3 | 21-23 | 6 | 30-31 | 2 |
(3.3)边介数集聚有效性的评价
根据不同的集聚算法、集聚度量标准和数据的预处理方法,则集聚结果会不一样,但如何评价集聚结果却是普遍存在于集聚分析中的一个问题。Newman和Girvan研究提出了模块度函数,利用该函数可以评价集聚结果的有效性。其定义为:
由于模块度函数Q不受限于采用何种网络分解方法,所以在这里借鉴模块度函数Q来对边介数集聚算法的有效性进行度量。若某网络集聚成为G个子网络,即聚成G类,则可以定义一个G×G的对称矩阵A,它的元素eij是网络中联接子网络i与子网络j的结点的边的数目与网络中所有边的总数的比值。表示与子网络i中的结点相连的边的数目与网络中所有边的总数的比值。矩阵的迹表示网络中联接同一网络内部各个结点的边的数目与网络中所有边的总数的比值。‖X||表示矩阵X所有元素之和,网络中所有的边都是针对原始网络的。Q值表示网络中联接两个子网络内部2个结点的边的比值减去在相同子网络结构下随机联接这2个结点的边的比值的期望值。Q值的最大值是1,Q值越大则表明网络所具有的社区结构越明显。
用Q函数评价某一算法的有效性时,是否总能得到最优解,取决于该算法是否存在局部极值问题。因为边介数集聚算法是基于图论的全局搜索算法,每次被移除的边介数最大的边都是通过全局搜索方法得到的,所以对应的每种聚类情况下,模块度的值总是最大值。
下面结合具体实例对基于复杂网络边介数集聚特性的模块划分方法步骤进行说明:
(1)基于复杂网络边介数集聚特性的模块划分方法步骤
在网络中,边介数是衡量一条边在网络中连通作用的程度,网络中各条边的边介数的差值大小是衡量网络均匀程度的重要指标,体现了网络的集聚特性。对于一些规则网络,边介数大而差值不大;而对于一些非均匀网络,某些边的边介数比其他边的边介数要大许多。
本实施例对模块划分过程中粒度的合适程度作了较为深入的研究,选用了多种产品进行粒度划分比较,通过对每一种产品进行不同粒度的划分比较得出,当某一子网络中边介数最大的边的边介数和其余边的边介数的均值之比小于2时,该网络相对均匀,应作为一个模块,否则,应移除边介数最大的边,继续进行分解。
为了便于在模块划分过程中分析网络的均匀程度以及评价模块的划分粒度,本发明定义网络均度E是指网络中边介数最大的边的边介数与其余边的边介数均值的比值。网络均度E的计算公式如下:
式中:Bmax——网络中边介数最大的边的边介数;
Bi——边的边介数,i=1、2、3、……、n;
n——网络中的结点数。
基于复杂网络边介数集聚特性的模块划分方法与步骤如下:
①提取产品的零部件装配约束关系;
②构建产品的零部件装配约束关系网络;
③计算产品零部件装配关系网络中各条边的边介数;
④去掉网络中边介数最大的边,将网络分成若干子网络;
⑤对各个子网络重复上述过程,直到分解的所有子网络符合模块划分粒度(即E<2)为止。
综上所述,基于复杂网络边介数集聚特性的模块划分方法与步骤的具体框图如图3所示。
(2)基于复杂网络边介数集聚特性的模块划分实例
通过上述对基于复杂网络边介数集聚特性的模块划分方法的研究,下面以图1所示的网络图为例,阐述基于复杂网络边介数集聚特性的模块划分方法的具体过程,根据表1所示计算出的边介数,边11-24的边介数最大,Bmax=234。经计算网络均度E0≈3.87>2,所以应移除边11-24,得到两个子网络W11、W24(为了方便描述,脚标分别用移除的边的两个结点数字表示)如图4所示。
按照流程框图3继续对子网络W11、W24分别进行分析计算:可得子网络W24中边介数最大的边27-28,Bmax=10,网络均度E24≈1.88<2,所以符合模块划分粒度,故子网络W24不再分解,作为一个模块单元;求得W11中边介数最大的边9-17,Bmax=168,网络均度E11≈3.85>2,不符合模块划分粒度,因此移除边9-17,得到子网络W9、W17如图5所示。
按照上述方法继续对子网络W9、W17进行分析计算,直到所有子网络的网络均度E<2为止。由于篇幅的限制,后续的分析计算过程在这里不再赘述。最后图1所示的网络被划分为a、b、c、d、e五个功能模块子网络(即子模块),结果如图6所示。
Claims (2)
1.基于复杂网络边介数的模块划分方法,其特征是包括如下步骤:
(1)给出给定机械产品内部所有零部件相互之间的装配约束关系式;
(2)根据给定机械产品的零部件数及上述零部件间的装配约束关系建立装配关系网络;
(3)计算给定机械产品零部件的装配关系网络中各条边的边介数;
(4)去掉网络中边介数最大的边,将网络分成若干子网络;
(5)对各个子网络重复计算边介数和去掉网络中边介数最大的边的过程,直到分解的所有子网络符合设定的模块划分粒度为止,此时所得子网络即为划分出的功能模块;
(6)根据划分出的功能模块建立功能模块库,该功能模块库记录有各个功能模块所包含的零部件。
2.根据权利要求1所述基于复杂网络边介数的模块划分方法,其特征是:当步骤(3)对无权无向无环网络进行边介数搜索时,其过程是采用循环与邻接表的数据结构将网络的所有结点及其对应的邻接点按顺序依次存入邻接表,然后从网络中任选一条边依次搜索所有包含该边的任意两点间的最短路径,并记录该边的边介数,如此循环,直到网络中所有边的边介数都求出来为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100019592A CN103020400A (zh) | 2013-01-05 | 2013-01-05 | 基于复杂网络边介数的模块划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100019592A CN103020400A (zh) | 2013-01-05 | 2013-01-05 | 基于复杂网络边介数的模块划分方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103020400A true CN103020400A (zh) | 2013-04-03 |
Family
ID=47969002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100019592A Pending CN103020400A (zh) | 2013-01-05 | 2013-01-05 | 基于复杂网络边介数的模块划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103020400A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133843A (zh) * | 2014-06-25 | 2014-11-05 | 福州大学 | 科技文献异构网络中节点的学术影响力协同排序方法 |
CN105631157A (zh) * | 2016-01-13 | 2016-06-01 | 西安电子科技大学 | 基于传播限制的标签传播方法 |
CN105787113A (zh) * | 2016-03-24 | 2016-07-20 | 武汉大学 | 一种基于plm数据库面向dpipp工艺信息的挖掘算法 |
CN109190204A (zh) * | 2018-08-15 | 2019-01-11 | 贵州大学 | 一种基于复杂网络的复杂机械产品模块划分方法 |
CN109684656A (zh) * | 2018-11-06 | 2019-04-26 | 南方电网调峰调频发电有限公司 | 一种基于SolidWorks的装配约束继承方法 |
CN109756422A (zh) * | 2019-03-27 | 2019-05-14 | 山东浪潮云信息技术有限公司 | 一种转发路由节点选取方法 |
-
2013
- 2013-01-05 CN CN2013100019592A patent/CN103020400A/zh active Pending
Non-Patent Citations (3)
Title |
---|
刘夫云、祁国宁: "产品模块化程度评价方法研究", 《中国机械工程》 * |
刘夫云、祁国宁: "复杂网络中简单路径搜索算法及其应用研究", 《系统工程理论与实践》 * |
樊蓓蓓、祁国宁等: "基于复杂网络的产品族模块化过程", 《农业机械学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133843A (zh) * | 2014-06-25 | 2014-11-05 | 福州大学 | 科技文献异构网络中节点的学术影响力协同排序方法 |
CN104133843B (zh) * | 2014-06-25 | 2017-07-04 | 福州大学 | 科技文献异构网络中节点的学术影响力协同排序方法 |
CN105631157A (zh) * | 2016-01-13 | 2016-06-01 | 西安电子科技大学 | 基于传播限制的标签传播方法 |
CN105787113A (zh) * | 2016-03-24 | 2016-07-20 | 武汉大学 | 一种基于plm数据库面向dpipp工艺信息的挖掘算法 |
CN105787113B (zh) * | 2016-03-24 | 2019-03-19 | 武汉大学 | 一种基于plm数据库面向dpipp工艺信息的挖掘算法 |
CN109190204A (zh) * | 2018-08-15 | 2019-01-11 | 贵州大学 | 一种基于复杂网络的复杂机械产品模块划分方法 |
CN109190204B (zh) * | 2018-08-15 | 2022-07-15 | 贵州大学 | 一种基于复杂网络的复杂机械产品模块划分方法 |
CN109684656A (zh) * | 2018-11-06 | 2019-04-26 | 南方电网调峰调频发电有限公司 | 一种基于SolidWorks的装配约束继承方法 |
CN109684656B (zh) * | 2018-11-06 | 2020-12-25 | 南方电网调峰调频发电有限公司 | 一种基于SolidWorks的装配约束继承方法 |
CN109756422A (zh) * | 2019-03-27 | 2019-05-14 | 山东浪潮云信息技术有限公司 | 一种转发路由节点选取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020400A (zh) | 基于复杂网络边介数的模块划分方法 | |
Aram et al. | A knowledge-based framework for quantity takeoff and cost estimation in the AEC industry using BIM | |
Reed et al. | A framework for modelling multiple resource management issues—an open modelling approach | |
US8914141B2 (en) | Template framework for automated process routing | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
Tate et al. | A design process roadmap as a general tool for structuring and supporting design activities | |
Jenab et al. | A graph-based model for manufacturing complexity | |
CN102270137A (zh) | 一种获取体系结构描述语言的方法和一种建模工具 | |
Arbona et al. | Simflowny 2: An upgraded platform for scientific modelling and simulation | |
Lee et al. | Concurrent material flow analysis by P3R-driven modeling and simulation in PLM | |
Bazoun et al. | Business process simulation: transformation of BPMN 2.0 to DEVS models | |
Shao et al. | Decision guidance methodology for sustainable manufacturing using process analytics formalism | |
de Lara Jaramillo et al. | Using meta-modelling and graph grammars to create modelling environments | |
CN102253974B (zh) | 一种地理模型网络服务的动态组合方法 | |
Son et al. | Component based simulation modeling from neutral component libraries | |
CN107704235A (zh) | 图形化建模中数据流程图的解析方法、系统及存储介质 | |
Fard et al. | Coupling weap and leap models using interaction modeling | |
Pérez‐Castillo et al. | ArchiRev—Reverse engineering of information systems toward ArchiMate models. An industrial case study | |
DeLorenzo et al. | Make every move count: Llm-based high-quality rtl code generation using mcts | |
Łabiak et al. | UML modelling in rigorous design methodology for discrete controllers | |
Pang et al. | Early termination strategies with asynchronous parallel optimization in application to automatic calibration of groundwater PDE models | |
Jeong et al. | Integration of queuing network and IDEF3 for business process analysis | |
Paskaleva et al. | Leveraging integration facades for model-based tool interoperability | |
Krishnamoorthy et al. | Optimizing stochastic temporal manufacturing processes with inventories: An efficient heuristic algorithm based on deterministic approximations | |
Ibrahim et al. | Reason maintenance in product modelling via open source CAD system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130403 |