1、介绍
实体空间优化摆放是指在给定约束条件下,在三维空间中给定区域内,在同一时间内,自动且最优的确定多个实体各自的摆放位置和朝向。优化摆放的要求是:实体间无重叠、实体大部分位于摆放区域内、多个实体同时摆放。
在“基于 Ontology 的文本中空间关系的三维可视化”研究中,提出分为三个阶段实现实体空间摆放的方法。第一个阶段是摆放区域确定,即根据摆放约束条件以及实体的图形知识,确定所有实体的定位空间。第二个阶段是多实体优化定位,即基于最优解保持遗传算法搜索摆放区域,确定实体的最佳摆放方位,包括三维位置坐标和朝向,使区域内多实体的摆放符合人类审美。第三个阶段是摆放结果可视化,即利用 Contona SDK将实体空间摆放结果显示。
2、遗传算法的介绍
2.1 简单遗传算法
遗传算法(Genetic Algorithms)是一种建立在自然选择和群体遗传学基础上的全局优化算法,它是1962年由美国Michigan大学的J.H.Holland创立的。随后,遗传算法迅速被推广到工程优化、机器学习、模式识别、人工智能、工程控制、图像处理等应用领域。
简单遗传算法的基本求解过程如下:
(1) 采用某种编码方式将解空间映射到编码空间,每个编码对应问题的一个可能解,称为个体。许多个体的集合称为种群,代表了解的集合;
(2) 随机产生一个初始种群;
(3) 在初始种群基础上通过选择、交叉、变异等遗传操作算子产生新的一个群体,称为其子代。
(4) 对子代进行评价,判断其中是否有个体达到了最优解得要求。如果有则退出循环,否则继续产生下一代个体,如此进化下去,直到产生满足期望条件的个体。
遗传算法经过几十年的发展,已经从最初的简单遗传算法(SGA)不断改进,产生了最优解保持遗传算法(OMSGA)、自适应遗传算法(AGA)等。
2.2 最优解保持遗传算法
最优解保持遗传算法的实质是在简单遗传算法的基础上加入了精英模型:把当代的最优个体(称为精英)传递到下一代,这样,子代的最优个体的适应度,一定不会低于其父代的最优个体的适应度,从而保证了算法最终能得到符合条件的全局最优解。而简单遗传算法则无法做到这点。
最优解保持遗传算法的算法流程图如图所示:
2.3 遗传算法实现的关键
(1)问题编码
利用遗传算法求解问题必须首先采用某种编码方式将解空间映射到编码空间。遗传算法常用的编码方式有:二进制编码,实数编码、浮点数编码、网格编码以及嵌入编码等方法。
(2)适应度函数
适应度函数是遗传算法与具体优化问题之间的纽带。 对于一个给定的优化问题,在编码后,根据问题定义一个适应度函数F,计算群体中每个个体相应的适应度值fi,fi越大,表示该个体越优秀。这个计算种群中每个个体适应度的过程称为对个体的评价。对于参数优化问题,通常将适应度函数直接定义为问题的目标函数,从而利用遗传算法找到最优解ÿ