通用产品配置系统中的知识表示及应用
摘 要:针对目前产品配置系统大多为面向单一产品的配置,开发通用产品配置系统,意在实现软件重用.该系统将知识表示运用于系统开发,通过知识编辑器、知识编译器和知识执行器,实现产品配置规则的自动判别和产品实例的自动检测,为实现产品配置的智能化提供可行的途径.
关键词:产品配置; 大规模定制; 知识表示; 配置规则
中图分类号:TP182; TH122文献标志码:A
Knowledge representation and application in
universal product configuration system
XI Zhenhong, YAN Nannan
(College of Information Eng., Shanghai Maritime Univ., Shanghai 200135, China)
Abstract: Since most current product configruation systems are aimed at single product,a universal product configuration system is put forward to realize software reuse.Automatic judgement of product configuration rules and automatic detection of product instances are achieved through the knowledge editor, knowledge compiler and knowledge executor by applying knowledge representation to the system development,and a feasible method of intelligent product configuration is provided.
Key words: product configuration; mass customization; knowledge representation;configuration rule
0 引 言
随着市场竞争日益激烈,客户对产品的个性化要求越来越多,如何以大规模生产的成本为客户提供个性化的产品,即大规模定制生产模式,成为现代企业竞争的焦点,而产品的快速配置设计是实现大规模定制生产的关键技术之一.
目前常见的配置模型有基于规则的配置[1]、基于约束的配置[2]、基于本体的配置[3]、基于GBOM 的配置[4] 和基于模型的配置[5]等.
然而,以上模型都仅仅针对单一产品进行配置,对于其他产品则无能为力,开发人员不得不重复劳动,而企业则要承担高额的开发费用.为避免这种情况,本文在研究产品配置理论的基础上开发出通用产品配置系统.
1 系统简介
通用产品配置系统没有在程序内部定义某个产品的配置模型,而是允许用户自定义组成该产品的零部件及其参数,产品的配置规则以近似C语言逻辑表达式的形式由用户输入.对于新型号的产品配置问题,系统根据其零部件参数,代入配置规则进行自动判断,得出产品能否通过检测的结论.因此,系统不再局限于配置某个特定产品,对于其他产品同样适用,达到通用的目的.
为保证系统的通用性,产品模型不能固化进程序,零部件及其配置规则必须以知识的形式独立表示.知识表示方法的选取合适与否不仅关系到知识库中知识的有效存储, 而且也直接影响系统的知识推理效率和对新知识的获取能力.本系统的知识表示包括产品实例表示和产品配置规则表示2部分,采用XML表示产品的零部件及其参数,即产品实例;用产生式表示产品配置规则.
2 产品实例的表示
2.1 产品实例的表示模型
产品模型是典型的树状结构,所有节点都是构件,复合构件和原子构件表达出产品的装配层次关系.原子构件指不能再细分的构件,处于产品模型树的叶节点位置;复合构件通常由下级复合构件和原子构件组成.
最能反映每个构件固有特点和表达它与其他构件区别的是构件的参数,这些参数是描述构件属性和建立与其他构件间关系的基础.配置模型中构件间的相互关系最终都会反映到其参数间的各种约束关系上.所以,完整的产品模型要表达构件和参数2方面内容,见图1.[6]
本系统使用XML中的元素描述构件,用元素属性描述构件参数.整个XML文档由若干个元素构成,复合构件和原子构件之间的关系通过父元素与子元素的嵌套形式体现.
本系统对产品P作如下描述:
P=(PID,CP,CONSTRAINT,P_CASE)
其中:PID是产品的唯一标志;CP是产品的构件集;CONSTRAINT是产品的约束集,产品模型具体的约束关系与构件库相关,并体现在知识库中;P_CASE是产品的实例集.
对构件CP作如下描述:
CP=(CPID,ATTR,DOM,CP_CASE)
其中:CPID是构件的唯一标志;ATTR是构件的参数集合,是对产品配置设计过程中产品族和零部件族特性的抽象和归纳;DOM是构件参数的域集,表示参数的取值范围;CP_CASE是构件的实例集.
与传统的知识表示方法相比,XML具有统一良好的文档结构,易于统一存储且便于分类管理,具有一定的语法独立性[7],这些优点对于构建通用的产品配置平台尤为重要.
2.2 产品实例表示
以岸边集装箱起重机大车行走机构为例,其构件包括从动轮车架、从动轮装配、主动轮车架、驱动轮装配、上平衡梁、下平衡梁和大车机构等,在大车行走机构构件文档中表示为
<parts>
<part>
<name>从动轮车架</name> //构件名称
<id>1</id>//构件ID
</part>
<part>
<name>从动轮装配</name>
<id>2</id>
</part>
...
</parts>
从动轮车架的参数包括主尺寸、车轮直径、宽度、强度和连接轴直径等,在从动轮车架参数文档中表示为
<parameters>
<parameter>
<name>主尺寸</name> //参数名称
<id>1</id> //参数ID
<min>50</min> //参数的最小值
<max>150</max> //参数的最大值
</parameter>
<parameter>
<name>车轮直径</name>
<id>2</id>
<min>45</min>
<max>75</max>
</parameter>
...
</parameters>
某个具体的从动轮车架实例,在从动轮车架实例文档中表示为
<instance>
<name>AJ570604</name> //型号
<id>1</id> //实例ID
<value>100</value>//主尺寸
<value>60</value> //车轮直径
<value>45</value> //宽度
<value>300</value> //强度
<value>300</value> //连接轴直径
</instance>
采用XML表示方法的优点是,产品模型无须写进程序代码,只要依次读取产品构件文档中的part元素,即可得知该产品的各个构件;读取构件参数文档中的parameter元素,即可得知该构件的各个参数;再读取构件实例文档中instance元素的value属性,便得到该构件各个参数的值.系统的通用性由此得到保证.
3 产品配置规则的表示
3.1 产品配置规则的产生式表示方法
在产品配置中,设计人员通过对构件的选择实现个性化配置,但构件间不能随意组合,存在特定的逻辑关系.
本系统对包含多种构件的产品设定约束条件,用约束限定构件参数间的逻辑关系.每个参数可以在其值域中取值,而约束则缩小参数的取值范围,有效限制构件间组合,实现可定制的产品配置过程优化.
目前,大多数产品配置系统都针对某一特定产品,产品的配置规则都用类似
if ( ) { }
else { }
的形式写进程序代码或类的方法定义中.由于逻辑固定,这种方法对于系统开发相对容易,但不易修改,灵活性较差.
事实上,if-then-else的配置规则就是1个产生式.产生式通常用于表示具有因果关系的知识,其一般形式为
P → Q 或 IF P THEN Q
式中:P为前件,是产生式的前提,用于确定该产生式是否可用;Q为后件,用于指出当前件P的条件被满足时,应该得到的结论或应执行的操作.整个产生式的含义是:当前提P被满足时,可以推出结论Q或执行Q所规定的操作.
在本系统中,前件和后件都被限定为结论,即逻辑表达式.系统只要能正确识别逻辑表达式,即可实现产生式的自动处理.
本系统概括逻辑表达式的语法模式,将产品配置过程中涉及的所有算术运算、比较运算和逻辑运算抽象成巴科斯范式,保存进1个语法文件;提取产品配置中的每条具体规则,调用知识编辑模块将这些规则按照产生式格式,用纯文本保存进知识库;程序中,调用知识编译模块,对于每条产品配置规则,经过词法和语法分析,将编译结果和产品实例参数相结合,交由执行模块自动执行,可得出新产品实例的检测结果.新产品实例通过检测则加入产品实例库.系统中产品配置流程见图2.
采用此方法,主程序不包含任何应用逻辑,而是由知识编译模块和执行模块对配置规则进行自动处理,实现等价的应用逻辑.若配置规则发生改变,只需调用知识编辑模块,修改知识库中相应的文本型规则,主程序无须作任何修改,比内嵌应用逻辑的产品配置系统更具有灵活性.
3.2 产品配置规则举例
本系统仿照C语言逻辑表达式,使用“+”,“-”,“*”,“/”表示算术运算符,“&&”,“||”和“!”表示逻辑运算符,“==”,“>”,“≥”,“<”,“≤”和“!=”表示比较运算符.
岸边集装箱起重机大车行走机构的设计规则之一:如果大车配8个轮胎,那么下平衡梁的定位尺寸必须大于车轮轮径的4倍,并且上平衡梁的定位尺寸必须大于车轮轮径的8倍,在本系统中表示为:
“大车.轮数”==8→“下平衡梁.定位尺寸”>“车轮.轮径”*4 && “上平衡梁.定位尺寸”>“车轮.轮径”*8(1)
式(1)中的前件为“大车.轮数”==8,后件为“下平衡梁.定位尺寸”>“车轮.轮径”*4 && “上平衡梁.定位尺寸”>“车轮.轮径”*8.
若有某新型号大车:大车配8个轮胎,车轮轮径是500,下平衡梁的定位尺寸是2 200,上平衡梁的定位尺寸是4 400.式(1)对此产品实例的检测过程如下:(1)对前件进行编译,自动识别其为比较表达式;(2)前件涉及产品实例中“大车的轮数”这一参数,执行模块将该参数值代入识别出的比较表达式,自动计算该表达式,结果为逻辑真;(3)对后件进行编译,自动识别其为逻辑表达式;(4)后件涉及产品实例中“下平衡梁的定位尺寸”、“车轮的轮径”、“上平衡梁的定位尺寸”等3个参数,执行模块将参数值分别代入识别出的逻辑表达式,计算该表达式,结果为逻辑真;(5)前件和后件的计算结果都为逻辑真,说明新型号大车通过式(1)的检测.
本系统中没有将产品配置规则写进程序,而是从知识库中读取,交由知识编译模块和执行模块处理.不同产品的配置规则采用同样的存储和处理方式,体现系统的通用性.
4 结 论
产品配置是大规模生产的核心支撑技术.由于产品配置中的知识表示分为产品实例的表示和产品配置规则的表示,本文使用XML表示产品实例.对于产品配置规则,则把参数约束中所涉及的算术运算、比较运算和逻辑运算在1个语法文件中进行定义,并针对此语法文件设计知识编辑模块、知识编译模块和知识执行模块,实现约束表达式的自动判别和产品实例的自动检测,为实现产品配置的智能化提供可行的途径.当然,产品配置不仅是产品设计过程,产品的升级演化、知识推理等是以后进一步工作的方向.
参考文献:
[1]张劲松. 基于规则的开发链智能化产品配置方法[J]. 华中科技大学学报:自然科学版, 2006, 37(7): 108-110.
[2]杨润党, 武殿梁, 范秀敏, 等. 基于约束的虚拟装配技术研究[J]. 计算机集成制造系统, 2006, 12(3): 413-419.
[3]张劲松, 王启付, 万立, 等. 基于本体的产品配置建模研究[J]. 计算机集成制造系统, 2003, 9(5): 344-350.
[4]王世伟, 谭建荣, 张树有, 等. 基于GBOM的产品配置研究[J]. 计算机辅助设计与图形学学报, 2004, 16(5): 655-659.
[5]张劲松, 王启付, 刘清华, 等. 基于模型的产品智能化配置研究[J]. 机械工程学报, 2003, 39(6): 128-134.
[6]周宏明, 李峰平, 薛伟, 等. 基于构件的产品配置模型和实现方法研究[J].中国机械工程, 2006, 17(24): 2 577-2 581.
[7]于卫红, 贾传荧. 基于XML的海上搜救智能决策支持系统知识库[J]. 大连海事大学学报, 2005, 31(4): 30-32.
(编辑 王文婧)
《中华人民共和国船员注册管理办法》2008年7月1日起施行
交通运输部部长李盛霖签发2008年第1号部令即《中华人民共和国船员注册管理办法》(简称《办法》),并宣布其于2008年7月1日起施行.
《办法》旨在规范船员注册管理,它明确:交通运输部主管全国船员注册管理工作;中华人民共和国海事局负责统一实施全国船员注册管理工作;负责管理中央管辖水域的海事管理机构和负责管理其他水域的地方海事管理机构依照各自职责具体负责船员注册及相关管理工作.
推荐访问: 通用 配置 知识 系统 产品