11.Galapagos遗传算法运算器

 

今天我们来讲一讲Grasshopper中最高冷的运算器——galapagos。这么怪异的名字,可以说为其奠定了一个逼格十分高的基础。先看一下这个单词的简介,Galapagos,中文翻译叫做“大龟群岛”,又名加拉帕戈斯群岛,是达尔文发现物种起源进化论的起源地。因此对于Galapagos的翻译,叫做“遗传算法”,似乎是最合适不过的了。除此之外,它还有迭代法,穷举法等名称。尽管大家叫他的名字五花八门,但它却是Grasshopper中最独树一帜的运算器之一了,且掌握了它以后大家可以制作各种牛到不能行的方案,分析图,等等从而极大程度上增加你们的图面信息量。

Galapagos的样子。他不但没有输出端,而且他还有一个底部输入端。是不是够奇葩?

图片1

那么Galapagos可以干嘛呢?Galapagos可以算最优解,在建筑自发展论中提到过最优解;Galapagos可以做视线规避,这对于规划和景观的学生甚至比建筑学学生还重要;Galapagos也可以对建筑形体进行统领性的控制。

国内的朋友请先观看下方这个视频(视频源为优酷)。

国外的朋友请点击第二个视频链接,视频源为我网站的服务器(位于美国),并且可以直接下载该视频。国内的朋友也可以下载,但是速度未知:

看完了以后请大家把张开的下巴合拢,小心脱臼。现在在想想我在第一讲中我提到的我们和国外建筑的差距,大家明白了吗?不仅仅是国外更会做“奇奇怪怪的建筑”,而是人家还有一套完整的理论做支持。所以大家都要努力才对。至于需要出国的同学,想要做一本高质量的和国外的设计风格相关的,不那么“设计院”风的,想要真正做一本“作品集”而非“作业本”的同学们,更需要努力学好参数化这个工具和Galapagos算法了(当然还可以来Singularity Arch Portfolio Studio报名接受我的一对一作品集辅导哈哈! )。

 

那么回到Galapagos,我们简单的介绍一下它。由于这是零基础入门的初级篇教程,我们只进行简单的普及及案例演示。像复杂的视线规避算法,最短路径算法等在建筑/景观/环艺中经常使用到的内容我们会放在《Grasshopper从入门到精通》的提高篇来讲解。

首先,这个运算器是干嘛的呢?它是在设立好整个“操作手法”以后,通过对“自变量”进行不断调节,来测试众多的结果,然后选取最优解的。比如我们设置x+5=8,x取值范围是(1,2.5),那么Galapagos会自动用这些值去比对然后选出当x趋近于2.5的时候得到的是最符合我们设定的条件“x+2.5=8”的。我们也可以用三个点ABC来求当A点在哪里时,线段AB和AC的距离总和最大。由于Galapagos在运算的时候采用的是穷举法,所以我们可以设置一些限制条件,比如最多运算多久,样本间隔和密度是多少来确保计算机不会无限运算下去(因为有些问题只有越来越精确,而没有固定值,我们将会在高级篇中讲到具体复杂的案例,现在大家稍安勿躁因为大家还看不懂)

下面我们就来用这个“距离最大”的问题来向大家演示一下Galapagos的运算过程。

图片2

 

如图,这是整个程序的图。其中有两点需要注意的。1,Galapagos的屁股,也就是下边的输入端,是用来连接需要找最优解的端口。但是要注意大家如果把加法的R输出端拖出电线连Galapagos是连不上的,必须用Galapagos的Fitness拉出来电线连加号的R输出端才可以。2,Genome输入端是用来连接需要改变的自变量的。刚才我们讲到,Galapagos就是通过改变自变量,不断改变然后观察Fitness的数据哪一个更符合最优解,一旦发现最优解就立刻停止运算了。当然,这里也需要从Genome拉出电线连到拉棒上。我们这时候要同时修改这个点的x,y两个坐标,因此我们需要把第一个x坐标拉棒连上后,按住Shift从Genome拉出第二根电缆连上y坐标拉棒。

注意:由于点A点B我都设置在了平面XY上,也就是z都是0.如果我们是在三维坐标系中,还需要再给z输入端加一个拉棒,同时用Galapagos连上。

 

好了,程序做好了,我们怎么进行遗传运算呢?我们需要双击Galapagos紫色的运算器,然后会显示出它的运算面板。我们只选择几个常用的讲解,复杂的留给提高班的教程。

图片3

大家可以看到第一个方框是让我们选择最优解的判定条件的。其中Maximize是最大,Minimize是最小。而Threshold是临界值,在临界值外的数据将会被忽略。我们可以用这个功能来查找大于或小于某值的点的组合。

Runtime Limit就是我刚才说的Galapagos的保护措施,大家选择了Enable之后就可以设置在几小时几分钟后自动停止运算了。下边的内容则是样本频率样本间隔等内容,这里大家暂时不需要知道,到了规避算法的时候自然会讲解。

点击Solvers选项卡,会出现Solvers面板。

图片4

我们看一下最右边的四个图标,从左到右分别是,每进行一次运算(对于这个按理来说就是x或y进行改变)都会实时显示点的变化,你会发现屏幕上飞快的出现一大堆点同时拉棒数值飞速变化;第二个是只显示最优解,其余非优解都不显示,一直显示目前运算出来的最优解直到它被更优解刷新;第三个则是什么也不显示。这里我推荐大家平时选择第二个,也就是我现在选择的这个即可,比较省机器资源。不过对于这个案例来说大家可以选择第一个,因为这个案例不会卡,机器配置再差都能运算的动;其次大家更能通过拉棒的不停变化和点的不停变化来直观感受Galapagos的运算机制。

第四个比较有意思,是Galapagos的Logo,其中大家可以看到它2011年就出现了,所以说Galapagos是自成一派的很有意思的运算器。

图片5

好的,现在让我们点击黄色的三角,Start Solver开始运算。

图片6

运算时候的Galapagos界面,其中1粗略可以理解为公差的程度,黄色面积越小说明运算越接近最优解。2可以理解为运算的离散程度,和1类似。3也表示离散程度。4表明我们所求的最优解,也就是在我设置的拉棒范围(-10,10)内两线段AB和AC距离最大值,这个值目前我们从运算数据上来看是无限接近于50.477701mm。5是显示模式,分别是显示100%,50%,25%,10%,0%的穷举的数值。实际上对大家最有用的是4窗口了。我们来看一下从运算最开始到结束4窗口的变化,大家可以发现当3中数据成为一条线的时候,1中黄色面积最小,2中离散程度也最小,我们得到的4中的距离和也最大。

图片7

图片8

图片9

同样的方法我们还可以求距离最小值。大家知道怎么做吗?作为一道作业布置在课后,希望大家尝试。

 

Galapagos是一个非常赞的运算器,希望大家可以自行改变问题,做一些衍生的小练习来加深理解。同时,Params的基础运算器部分就讲解完毕了,接下来我们要讲解的就不仅仅是简单的起着“承载物件桥梁”的作用了,而是更多属于“操作手法”部分的操作型运算器了。这部分的运算器在按照我写好的提纲进行讲解的同时,也希望开始报课的各位小伙伴踊跃投稿踊跃提问。在教程完全完成前进行提问并且踊跃投稿,在群内写出你的疑难杂症,你最关心最难懂的问题就很有可能被我编成案例文件作为课稿进行讲解并放入初级篇当中。这也算是对预售期间报名支持我的你们的特殊福利把~最后祝大家学业有成!

 

爱你们的小黄人君 么么哒!

DanielJin

Galapagos作业

 

———————————————————————————————————————————————————————

本文所有内容版权均属于作者所有

欢迎您扫描下方二维码关注小黄人君的微信公众账号

二维码新

3 Comments on “11.Galapagos遗传算法运算器

发表评论

邮箱地址不会被公开。 必填项已用*标注