基于遗传算法的产品创新设计

2013-04-23 01:28胡春雨刘弘
山东科学 2013年2期
关键词:编码方式二进制外观

胡春雨,刘弘

(山东师范大学信息科学与工程学院,山东 济南 250014)

随着全球经济的迅速发展,产品的市场占有率对企业的生存和发展起到了举足轻重的作用,而产品的创新性又决定了其市场占有份额。实践证明,在产品设计过程中概念设计是产品设计中最关键、最复杂、最有决定性和创新性的阶段[1]。计算机辅助设计(CAD)技术改变了传统的设计方式,而且正朝着智能化的方向发展[2]。如何利用CAD来实现概念设计的自动化,减轻设计者的压力成为计算机图形学领域面临的挑战。

进化设计方法作为一种新方法已经得到了广泛的应用[3]。遗传算法作为进化计算的重要组成部分更是受到了越来越多的关注。1975年,Holland[4]首先提出了遗传算法这一概念。到20世纪80年代后期,由于在经济预测等应用领域获得成功,进化计算成为十分热门的研究话题[5]。目前,国内外已经将遗传算法应用于产品创新设计领域并做了大量的研究。文献[6]提出了一种用进化计算及可视化技术支持概念创新的方法,并将其运用于台灯造型设计。文献[7]运用遗传算法设计出新颖的建筑平面图,同时展示了进化计算可以使智能体获得学习能力,生成新的建筑物。文献[8]在讨论人机交互的特性的基础上,利用遗传算法应用生成了轮椅靠背曲面形态。文献[9]和文献[10]也在遗传算法的基础上分别实现了家具造型以及汽车造型的创新设计。

在产品创新设计领域,遗传编码作为应用遗传算法时非常重要的一部分,其研究与应用起到了十分重要的作用。目前在该领域中应用较多的编码方式有树形结构编码、实数编码、二进制编码等等,这些编码方式都很好的实现了设计者的创新要求[11]。

本文介绍了一种基于遗传算法进行产品创新设计的方法,以及该方法运用于产品外观设计的过程。对于编码方式,本文采用了文献[12]提出的双层结构编码方式,虽然这种编码方式在产品外观造型创新设计领域还未得到广泛应用,但十分适合对控制点坐标进行编码,将其应用于产品外观轮廓线的设计十分方便、直观。在VC++6.0及三维建模引擎ACIS可视化平台的基础上,将以上方法应用于风筝的设计过程中,得到了很多设计方案。

1 基于遗传算法的产品外观造型创新设计

为充分发挥双层结构与二进制结构两种编码方式的优势,针对不同类型的产品,在充分了解其造型特征的基础之上,划分为两类:可分割类型(例如台灯、手机等)和不可分割类型(例如洗衣机、风筝等),并针对两种类型提出一种可以通用的产品造型创新设计方法。

1.1 遗传算法的应用方式

遗传算法既可以对产品整体进行进化计算,也可以对产品的部件单独进行进化计算[2],对于外观造型可分割为独立组件的产品,可以首先采用双层结构的遗传算法对单个组件进行形态造型设计,然后使用二进制编码遗传算法对不同组件生成组合方案。对于形态造型不可分割为独立组件的产品,可选择出对外观造型产生重要影响的主要部件,采用双层结构的遗传算法对该部件进行造型设计。

1.1.1 染色体编码方式

通过对已有的各种编码方式的优缺点进行比较,本文选择了两种编码方式:一种是标准遗传算法中通常采用的二进制编码方式,这种编码方式虽然表达不够灵活,但其基因表达细腻,可用于产品不同部件的组合搭配之中;另一种编码方式为双层结构的编码方式,对于产品中一些不可分割的部件或整体,可以将其形态看做整体的外部轮廓线,通过对外部轮廓线提取控制点,并对控制点坐标进行交叉、变异操作,从而实现曲线形态的改变。

1.1.1.1 双层结构染色体编码方式

双层结构编码方式充分模拟了生物体中承载遗传机制的染色体结构,将染色体划分为两层:上层表示产品的控制点序列,对应生物体中的染色体;下层表示控制点的坐标信息,即对应生物体中DNA上所携带的遗传信息。其具体的编码方式见图1。

1.1.1.2 二进制染色体编码方式

二进制编码方式所使用的编码符号集是由二进制符号0和1所组成的二值符号集{0,1},它所构成的个体基因型是一个二进制编码符号串[13]。将二进制编码应用于产品不同组件的组装时,可以给每种部件赋以一定数位的二进制编码,图2给出了两个有二进制编码的产品部件组合。

1.1.2 遗传算子

1.1.2.1 双层结构编码遗传算子

在双层结构的编码方式下,交叉算子和变异算子都是对控制点进行的,控制点的不同组合对应着不同的产品形态曲线。对于双层结构编码的遗传算子,本文将以风筝造型的创新设计为例来说明其交叉与变异过程(本文中的设计实例所涉及到的控制点太多,无法一一列出,对称控制点只列出一个且只列出主要的控制点坐标)。图3详细地说明了这种编码方式的交叉过程,变异过程与此类似,在此没有画出详细的图示。为形象说明这种编码方式,图4与图5以风筝造型的设计实例介绍了该遗传操作过程。

1.1.2.2 二进制编码遗传算子

在二进制编码方式下,交叉算子和变异算子都是对二进制字符串中的位进行的。据此设计的交叉和变异过程分别见图6(以图2中的‘M’点为交叉点)、图7(以图2中的‘N’点为变异作用点)。(该遗传编码方式的操作过程较为常见,可参考文献[5]中图11的台灯组装方案)

1.1.3 个体的筛选

在遗传算法中,个体的筛选通常是由适应度函数来决定的。由于产品的创新性以及外形是否美观通常来自于人的主观感受,无法用统一的公式或函数来确定,本文采用人机交互与文献[14]所提出的Agent技术相结合的方式来进行评价。在设计的初始阶段由设计人员给出产品的适应度值,并由Agent将适应度值作为知识保存到知识库中,当后续再次遇到类似的情况时,系统直接给出适应度值,从而逐渐减少人机交互的次数,减少设计者的工作量,实现智能化处理。

遗传算法应用步骤:

步骤1:生成初始化种群。在进行部件外观设计时,利用双层结构遗传算法,通过使用扫描仪或数码相机取得产品外观造型的轮廓曲线,或者在直接获取的造型轮廓曲线中提取控制点坐标,生成初始个体。在进行部件组装时,利用二进制遗传算法,利用已有产品个体生成初始种群。

步骤2:通过人机交互对初始种群中的个体进行评价并设定适应度值。

步骤3:利用上述提到的方法对种群进行交叉、变异和筛选。

步骤4:如果用户不终止遗传过程,则转步骤2;否则,结束。

1.2 产品外形的分割方法

首先,通过人机交互判断产品外观是否可分割,对于外观不可分割的产品选出影响其外观造型的主要部件。而对于外观可分割的产品,由于组件的划分和个体的筛选类似,通常依靠人的主观意识进行判断,很难依靠计算机直接进行判断,这里采用文献[9]中介绍的“支持创新概念设计的多Agent系统”所具有的任务分解功能对产品进行组件划分,将产品整体作为一个任务,利用任务分解功能将其划分为多个不同的组件。具体的应用过程可参考文献[9]第4部分的花瓶的设计分解模型。

1.3 产品外观创新设计的具体步骤

(1)选择要进行外观创新设计的产品,判断产品的外观是否可划分为不同的组件。

(2)对于外观不可分割的产品选出影响其外观造型的主要部件,然后转向步骤(4);对于外观可分割的产品利用1.2中所介绍的分割方法进行组件的划分,然后转向步骤(3)。

(3)在划分出的众多部件中选出要进行造型设计的部件。

(4)利用双层结构的遗传算法(包括生成初始种群、选择、交叉、变异、筛选等步骤)对产品部件进行外观创新设计。

(5)判断产品的所有部件是否都已完成设计,若是,转向步骤(6);若不是,转向步骤(3)。

(6)判断产品外观是否经过分割,若是,转向步骤(7);若不是,转向步骤(8)。

(7)利用二进制编码的遗传算法进行部件组装。

(8)通过人机交互对产品进行修改和改进,至此产品的设计过程完成。

完整的算法伪代码如下:

利用二进制编码的遗传算法进行部件组装;

Else选择对产品外观产生最重要影响的部件;

利用双层结构编码的遗传算法对产品部件进行外观设计;通过人机交互对产品进行修改;End;

2 设计实例

下面介绍风筝的设计实例,说明如何运用遗传算法进行产品外观创新设计。

(1)选择风筝作为要进行产品外观创新设计的产品,然后判断产品类型。风筝外观形态不易分割,且对其外观形态影响较大的部件即为风筝面,本例中主要对风筝的轮廓线进行造型设计,系统根据设计要求设定风筝的尺寸大小,为后续设计计算作参考。

(2)设定产品参数及遗传算法参数。

(3)选择已有的风筝造型作为初始种群,并通过系统与设计人员的人机交互设定个体的适应度值。

(4)根据当前种群的适应度值,利用双层结构的遗传算法对产品进行创新设计,此过程包括了交叉和变异两种操作。

(5)重复第(3)步操作,直到设计人员得到了满意的产品造型才选择停止操作。

(6)人机交互对生成的产品作进一步的修改,生成最终的产品造型。

图8列出了一部分生成的风筝设计效果图。

图8 部分生成的风筝设计方案Fig.8 Design scheme of some generated kites

3 结语

将遗传算法应用于产品创新设计之中具有十分重要的现实意义,本文提出的这种应用遗传算法进行产品创新设计的方法主要适用于进行简单产品的不规则外观造型设计,为设计师进行造型设计提供依据,目前主要应用于工艺品设计领域。未来仍需进行的工作是进一步完善该方法,并将其应用到更多种类的产品创新设计之中,充分扩展其应用范围。

[1]原霞飞,刘希玉,刘凤鸣.关于产品外型概念设计方法的研究[J].网络安全技术及应用,2011(2):39-40.

[2]王吉华,刘弘.基于特征几何体的零件进化设计基因组研究[J].计算机集成制造系统,2009,15(1):21-27.

[3]易鹏飞,魏小鹏,赵婷婷.基于遗传算法和非均匀有理B样条表达的产品外型创新设计[J].计算机集成制造系统,2008,14,(2):221 -225,233.

[4]HOLLAND J H.Adaptation in Natural and Artificial System[M].US:University of Michigan Press,1975.

[5]朝瑞锋.遗传算法原理与应用实例[M].北京:兵器工业出版社,2009.

[6]刘弘,刘希玉.支持外观造型设计的进化计算方法[J].计算机辅助设计与计算机图形学学报,2006,118(11):101-107.

[7]GERO J S,KAZAKOV V.An exploration-based evolutionary model of generative design process[J].Microcomputers in Civil Engineering,1996,11(4):209 -216.

[8]马剑鸿,杨随先.遗传算法在产品人机形态设计中的应用[J].机械设计与研究,2006,22(5):88-91.

[9]董春龙,刘希玉.基于遗传算法的家具造型创新设计[J].南京师范大学学报:工程技术版,2010,10(3):78-81.

[10]陈珂,刘弘.基于遗传算法的汽车外观造型创新设计术[J].计算机应用研究,2008,25(1):203-205.

[11]吴海龙,刘希玉,向来生.基于遗传算法的骨骼结构模型概念创新设计[J].计算机应用,2011,31,(4):1155-1158.

[12]刘佳星,余隋怀.基于组合遗传算法的产品形态创新设计研究[J].计算机应用研究,2009,26(4):1244-1245,1268.

[13]刘涛.基于进化计算技术的剪纸图案创新设计研究与实现[D].济南:山东师范大学,2009.

[14]邱莉榕,刘弘.支持创新概念设计的多 agent系统[J].计算机集成制造系统,2003,9(Z1):38-42,52.

猜你喜欢
编码方式二进制外观
外观动作自适应目标跟踪方法
A Shopping Story to Remember
用二进制解一道高中数学联赛数论题
不论外观还是声音,它都很美 Yamaha(雅马哈)A-S3200合并功放
有趣的进度
二进制在竞赛题中的应用
方外观遗迹旧照
GCOA算法
可穿戴式多通道传感系统功能需求分析及设计
混合编码方式自适应差分进化算法优化设计宽带天线