欢迎光临散文网 会员登陆 & 注册

GH小学堂之浅析Galapagos运算器与计算机方案模拟优化

2020-03-30 09:52 作者:HongChen0123  | 我要投稿

那么今天第一篇文章我们将进入GH小学堂,和大家简单聊聊一个非常有趣并且与众不同的运算器:Galapagos运算器

Part 1

 基本介绍


相信大家如果是了解GH的话,肯定会其中的一个运算器印象深刻。

首先不同与其他运算器默认的灰色,这个运算器从外观上就与众不同,呈现出一个靓丽的紫色。


并且虽然它有两个输入端,但是不同于一般GH运算器输入端位于两侧,它有一个输入端竟然是位于下侧,除此之外当大家尝试像其他运算器一样把数值连接到这些输入端的话,童鞋们会吃惊的发现无论我们连接什么数据,这两个接口就像是加了盖子一样的无法连接。


那么这个处处都显得和别人不一样的运算器就是咱们今天课程的主角,位于Prm-util组中的Galapagos运算器




Part 2

 功能与使用


因为Galapagos运算器如此的不同,众多GH新手都对它感到困惑和不解,但是对于熟悉GH的人都知道,这个运算器对于咱们Gh中的方案优化是有着不可代替的重要地位的,所以下面小编就将向大家解析下这个运算器具体的功能和用法。


Galapagos运算器,全名Galapagos Evolutionary Solver运算器。以我自己的看法,它的主要功能是通过遗传算法或者退火算法,根据fitness段输入值的极值设置,通过对于Genome端的值的测试遍历,查找出极值状态下对应的Genome端参数


当然这样说相信小伙伴们大多会像我之前在流动的美丽:极小曲面的制作一文中介绍极小曲面一样,处于一个懵圈状态。


所以下面,我们通过一个非常简单的案例来帮助大家了解一下Galapagos运算器的基本工作原理和具体使用方法。


我们先在GH中任意绘制一个圆形



重参之后,使用evaluate curve在上面使用0-1变化的slider滑竿,随机提取三个点。



下面我们将这三个点使用polyline(注意C端布尔值要设置为TRUE)连接成一个三角形,使用area运算器求出他的面积。



很明显当我改变三个滑竿数值的时候我们三角形的面积也在变化,那么这个时候如果我们想求得三个滑竿在什么数值下围合成的三角形面积最大该怎么操作了?



虽然如果大家对于基础几何有一定掌握的话应该都知道答案,但是在这咱们能不能通过计算机的操作帮助我们求出解了?按照基本思路,我们需要测试三个滑竿在值改变的时候对应的面积,通过比较来找出最大值(更准确的说我们只需要一个点不动的情况下测试另外两个点位置的变化,这样才有唯一解,否则会有无数解,最大三角形沿圆转动),但这样毋庸置疑会花费很多很多的时间,并且如果大家没有掌握正确的测试方法的话,测试本身也是很难进行下去的。而这个时候我们的Galapagos运算器就能发挥它的用处了。


大家还记得我之前对于Galapagos运算器功能的总结吗?通过遗传算法或者退火算法,根据fitness段输入值的极值设置,通过对于Genome端的值的测试遍历,查找出极值状态下对应的Genome端参数。


那么对照咱们的测试需求,很明显我们需要的是根据三角形面积的最大值,找出对于两个slider的数值(控制点的位置)。所以我们需要把面积值链接到fitness,而把两个滑竿链接到genome。但是对于Galapagos运算器,大家需要注意的就是,他的链接不是由panel或者slider链接过去,相反大家要先点击Galapagos运算器本身的端口,反向链接到输入端运算器


链接好了之后,我们就可以双击Galapagos运算器,进入编辑界面。



在这虽然有很多参数,但是最为重要的实际上是Fitness中的极值选择,因为一般对于类似Galapagos运算器这样的优化,我们都会追求一个最大值或者最小值的极值状态。以这个例子为例,我们追求的是三角形面积的最大情况,所以我们选择Maximize.



之后点击solver,我们需要选择我们到底采用那种算法进行优化结算,第一个是遗传算法第二种是退火算法,对于他们具体的区别和适用范围本次教程就不再展开了,假设我们选择退火算法。



点击start solver,大家可以看到,滑竿的数值就开始自行变化进行模拟优化了。并且三角形的形状经过短暂的测试就到了一个近似等边三角形的状态,可以看到退火算法的效率还是相当之高的。


并且我们可以看到解算的时候右下角的数值(三角形面积值)是在不断变化修正的。


经过多次演算优化之后,当大家发现最高数值不再改变之后就可以点击stop solver停止运算。选择最高的那个数值,点击Reinstate.


大家可以发现你的slider滑竿就停留在极值所对应的数值上,你也就在GH中得到了三角形面积最大时所对应的点的位置了。




Part 3

 建筑优化


相信通过这个例子,大家对于Galapagos运算器的功能和基本用法已经有了一个大致的大致的了解,但是在实际的设计过程中我们又是如何使用Galapagos运算器来优化我们的建筑方案的了?相信这应该也是大部分学生会感到困惑的事情。


当然在这需要说明一下,真正实际设计过程中的计算机的方案优化是非常复杂并且也是非常占据计算机资源的,并且还涉及到众多复杂的建筑分析,学生阶段的大家无论是软件技能还是计算机硬件基本上是很难企及到的,所以在这,我们通过一个最简单的理想情况下建筑优化例子给大家说明一下设计过程中的我们如何通过特定的参量对建筑进行优化。


首先说明下限制条件,我们要设计一个200平米的建筑,假设建筑为单层矩形,我们可以改变的参数是建筑的长宽比和建筑的旋转角度



然后我们要求出在什么样的长宽比和旋转角度下建筑四周墙体的有害太阳辐射最低


首先我们使用Honeybee的seperate by normal提取我们的墙体。



之后我们使用Ladybug计算我们墙体在冬季和夏季分别的辐射量(这部分涉及到部分Ladybug的基本操作,本次教程就不做展开了)


对于有害辐射的计算我们就简单的使用有害的夏季辐射减去有利的冬季辐射,结果的差值就是我们的有害辐射值,很明显咱们需要通过我们建筑长宽比以及选择角度的调整求出这个差值的最小值。



下面就要用到我们的Galapagos运算器,类似于之前的三角形,我们把这个辐射的差值链接到fitness端。Genome端链接我们可以改变的长宽比和角度值。



最后我们只要双击进入Galapagos运算器,选择最小值。


选择一个解算方法,点击start solver我们就可以根据辐射值进行优化求解了。


虽然就像之前说的,现实项目中计算机方案优化远远比这个复杂很多,但是抛砖引玉,相信通过这两个例子的介绍,大家对于Galapagos运算器的使用和计算机方案优化应该也有了一个大致的了解,这也是本次小学堂想实现的目的。


GH小学堂之浅析Galapagos运算器与计算机方案模拟优化的评论 (共 条)

分享到微博请遵守国家法律