【其他】结构技术优化算法--蚁群算法(ant colony optimization)

本文介绍了遗传基因算法、模拟退火算法和群体智能算法,重点讲解了蚁群算法的工作原理和应用。蚁群算法源于蚂蚁觅食行为,通过信息素的动态传播和挥发,实现全局搜索能力。文章还提到了群体智能算法中的粒子群优化算法,以及在结构设计优化领域的应用。
摘要由CSDN通过智能技术生成

目录

 

1 遗传基因算法

2 模拟退火算法

2.1爬山算法

2.2随机概率优化

3 群体智能算法

3.1蚁群算法

3.2粒子群算法

4总结


遗传基因算法

遗传算法(Genetic Algorithms,GA)由J.Holland教授(美国)1975年首先提出,是一种灵感源于达尔文自然进化理论的启发式搜索算法。该算法反映了自然选择的过程,即最适者被选定繁殖,并产生下一代。

运算过程为初始化→个体评价→选择运算→交叉运算→变异运算→终止条件判断,运算过程就如物竞天择、适者生存,只有被选择的个体才会把自己的基因传下去。下面就用一个有趣的例子,帮助大家理解。

我想让机器人小i画出我的梦中情人(最优解)。小i当然不知道我梦中情人长啥样。小i的内心是奔溃的,只能一张张试。先画一张,问我像不像?我说不像,小i就重新画一张,直到我觉得像。

然而小i又不会画画,只会填格子。于是小i准备了一张1000×1000的格子纸,每个格子可以填黑色或者白色。那么总共有21000000种画法。如果我能坚持到宇宙毁灭,那可以每张都看,然后找到那个最像的,显然我和我的梦中情人都坚持不到。

于是我只允许小i画10万张,画不出来我就砸了它。小i很紧张,开始想办法,终于想到了遗传算法。

第一轮,小i随机画了1万张(初始种群)。这1万张里面,各种乱七八糟,有像星空的,像猪的,像石头的,等等。然后小i让我挑最像的(个体评价)。我强忍怒火,挑出来一堆猪、猴、狗,好歹是哺乳动物(选择运算)

 

小i拿着我挑的“猪猴狗们”,如获至宝,开始第二轮,将这些画各种交叉变异一下。比如把一幅画的耳朵跟另一幅的鼻子换一下(交叉运算),或者再随机改个眼睛(变异运算)。然后又生成了1万张图让我挑。我挑出来一堆猴子猩猩,好歹是灵长类动物。

如此反复好多轮后,挑出来的开始像人了,虽然有男人、女人。慢慢地,开始有美女了。再慢慢地,就越来越像了。在画了10万张图后,终于找到一张还不错的。虽然可能不是梦中情人(精确解),但也很像了(次优解)

这就是遗传算法。

虽然我们已经知道了遗传基因算法的计算过程,但真正使用它,需要大量的编程。因此,对于普通结构设计人员,应用智能优化算法解决实际设计问题存在很大的难度。Grasshopper中开发了相应的优化算法模块,工程师可以利用这个模块便利的解决复杂问题,例如建筑设计中结构优化、幕墙优化等。

下面是一个二维运算的简单例子,介绍Grasshopper优化模块的原理。下图为一个山脉模型,这个模型包含了两个变量(近似看为X、Y坐标),他们可以同时变化。我们需要找出最高山峰处所对应的坐标值。

在一开始,电脑随即洒出一大堆随机点,我们假定为100个。随后选出位置较高的50个点,并在其周围再随即布置100个点,可以知道这100个点相对于他们上一代,更加靠近山峰。后面不断重复上一步,直到找到最顶峰的点。以上以二维山峰优化为例,计算机当然不止能运算二维变量,当我们初始变量不断增加时,也能得出最优解。当然,所需时间也更长。

2 模拟退火算法

2.1爬山算法

介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解中选择一个最优解作为当前解,直到达到一个局部最优解。

爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如下图所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。

这就是简单的爬山算法思想。

2.2随机概率优化

爬山法是完完全全的贪心法,每次都鼠目寸光的选择一个当前最优解,因此只能搜索到局部的最优值。模拟退火其实也是一种贪心算法,但是它的搜索过程引入了随机因素。模拟退火算法以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。以上图为例,模拟退火算法在搜索到局部最优解A后,会以一定的概率接受到E的移动。也许经过几次这样的不是局部最优的移动后会到达D点,于是找到更优的B点。

关于爬山算法与模拟退火,有一个有趣的比喻:

爬山算法:兔子朝着比现在高的地方跳去。它找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是爬山算法,它不能保证局部最优值就是全局最优值。

模拟退火:兔子喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了并朝最高方向跳去。这就是模拟退火。

同样,Grasshopper也提供了相应模块进行模拟退火算法。在实际应用中,推荐先采用遗传算法进行优化筛选,再结合类模拟退火算法可以提高了局部寻优的能力,采取分层优化的思想,提高运算效率。

3 群体智能算法

群体智能算法主要模拟了昆虫、兽群、鸟群和鱼群的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断地改变搜索的方向。群体智能优化算法的突出特点就是利用了种群的群体智慧进行协同搜索,从而在解空间内找到最优解。

常见的群体智能算法有蚁群算法(Ant Colony Optimization,简称ACO)[1992年提出];粒子群优化算法(Particle Swarm Optimization,简称PSO)[1995年提出]。下面小i简要介绍一下这两种算法。

3.1蚁

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值