随着城市化进程加快,城市人口密度提高,城市土地资源日益稀缺、高层建筑的合理布局和优化需求日益提高。由于我国不同城市具有不同的地方住宅建筑规范要求。此外,高层建筑之间存在地块内外的建筑日照叠加遮挡的影响,因此,高层住宅建筑的排布设计是一个以多约束求解问题为基础的复杂设计问题。建筑设计师需要对建筑布局进行多次人工调整和日照模拟计算,反复实验对比才能最终找到满足日照约束以及其他约束的合理布局[1]。整个高层建筑的布局设计过程是一个人力和时间高度消耗的过程。随着计算技术和机器学习方法的快速发展,利用计算机进行辅助建筑设计的需求也日益强烈,通过将设计工作中的可计算目标和有限操作维度的事务通过计算机来自动完成,可以提高设计工作的整体效率,降低设计所需时间,留出更多时间让建筑设计师进行创作性设计,也有利于提高设计品质。
国外对于自动布局的研究起步较早,在20世纪90年代,加勒就提出了在格网中房间的组合方式[2],随着研究的逐渐深入,杜阿尔特等人提出了基于规则的城市生成方法,通过对城市肌理模拟和其内部的功能来进行布局生成[3]。马丁等人通过限定拓扑关系对住宅内部布局进行生成,得到合理的布局[4]。
在国内的研究中,通过结合我国的设计规范和需求也有许多成果,如王诂等人在AutoCAD软件的基础上[5],设计出了针对于日照的分析软件,极大的提高了日照分析的效率,加速了布局调试的速度。齐轩宁等人提出基于渐进式追踪技术的寒地建筑采光性能优化设计方法,大幅降低采光性能优化设计耗时[6]。张播[7]等人对多栋建筑之间引发的复杂遮挡问题进行研究。闫循涛[8]等人将塔式高层住宅作为研究对象,得出影响高层建筑日照的主要因素。王佳莹[9]等人通过对高层建筑进行日照模拟分析,采用阴影轮廓线和日照等时线体现出最佳的高层建筑布局。樊伟胜[10]等人提出了对于高层建筑日照间距的科学体系。凌玲提出的日照间距系数法[11],对于行列式和周边式两种布局,通过计算日照间距系数来对建筑进行自动布局,但是此方法仅适用于多层建筑,不适用于高层建筑。为了解决高层建筑自动布局方法,孙澄宇等人提出了知识工程的方法[12],对不同布局类型和边界特征建立了一个数据库,在每次开始设计时,就在数据库中寻找类似的案例,然后通过参数化自适应模型进行微调便可得到一个布局,但是此类方法的约束并不严格,对于地块周边的复杂环境也无法应对。又如采用遗传算法和退火算法对多约束进行自动优化[13,14],这两种方法易在大量非法布局上浪费算力,由于日照约束比较复杂,个体和全局利益易产生冲突,随着建筑物数量的增多,求解时长飙升。为了解决上述问题,张馨元等人提出了多代理的方法[15],每个代理可以自行感知周边环境并做出移动判断,但是由于高层建筑日照计算比较复杂,所以此方法一般用于小规模优化问题。东南大学李彪副教授通过highFAR生成工具,对高层建筑的高密度布局进行了研究[16],但是其局限性在于将高层建筑简化成圆柱体,忽略了自遮挡问题和建筑之间日照影响的叠加问题。孙澄宇等人[17]提出了一种基于强化学习的自动布局方法,可输出一种满足多项建筑规范的最优布局。
由于建筑物间存在相互遮挡的问题导致日照计算十分复杂,因而现有的研究中会对日照或建筑物的形态进行简化,导致计算出的结果不完全满足高层建筑日照规范。对于周边环境比较复杂的情况,传统方法存在着求解时长较长的问题。本文将受建筑规范约束的建筑物排布问题建模为强化学习过程,将多种约束融合进奖励函数中,通过建筑物与环境的不断交互、累积经验、训练学习,自动、快速的输出多个符合各项约束条件的合理布局,然后对生成的多种符合约束的排布方案进行模式表示和聚类,提供给设计师多种去冗余后的建筑自动布局方案。
本节介绍该研究中考虑的三种建筑设计规范,分别是建筑退让道路红线、建筑防火间距和高层建筑日照规定,将这三种规范设计为算法中的奖励函数,以约束建筑单体在地块中的位置。
建筑退让道路红线指的是规定建筑物应距离城市道路或用地红线的程度,根据道路的宽度不同以及建筑的高度不同有相应的规定,如下表1所示。
表1 国内建筑红线规定
建筑防火间距指的是当一栋建筑物起火时,对面的建筑物在热辐射的作用下,即使没有任何保护措施,也不会起火的最小距离,根据《建筑设计防火规范》规定,距离如表2所示。
表2 国内防火规定
高层建筑日照间距需要对建筑的采光时间进行计算,《城市居住区规划设计规范》中要求对于不同气候区有不同的日照标准日、日照时长以及有效时间带,如表3所示。
表3 国内日照规定
通过棒影日照图计算一天中阴影部分的区域,棒影的长度和角度满足公式(1)、(2)关系:
其中,As为太阳方位角,hs为太阳高度角,两者的取值基于待计算地块位置的纬度和赤纬角。通过对一天中有效日照时间带建筑阴影的位置进行绘制,即可得到建筑的日照棒影图。采用高密度射线模拟日照加日照测试点评价日照的方法存在日照射线与日照测试点错开的问题。因此,本文采用棒影日照图的方法,将有效日照时间带以一小时为间隔进行划分,日照时间精度为1h。将高密度射线变为面,通过不同角度面与建筑单体的相交情况判断日照测试点是否被遮挡,可以直接得出建筑在有效日照时间带的遮挡情况,计算日照时间更加精确且提高计算效率。对建筑单体的日照评价,本研究采取的方式为选取各建筑物单体的南向两个端点及其连线的中心点作为日照测试点,通过计算日照测试点出现在棒影日照图阴影区的时长,进行合理的日照评价。
累计有效日照时间的计算过程如下:
设日照测试点的个数为N,有效日照时间带间隔数为S,建筑单体个数为B。
(1)对于每一个建筑单体,根据已知的特定地区在每个划分时刻的太阳方位角和太阳高度角,当前建筑的高度,采用公式(1)、(2)计算出影长和影的方位角,用所得结果与当前建筑的长和宽绘制出当前建筑在每个划分时刻形成的阴影区域。
遍历所有建筑单体重复步骤1,最终即可得到在每个划分时刻下,所有建筑单体的阴影区域,判断所有日照测试点在每个划分时刻是否处于某个建筑的阴影区域中,若是,则将计数器置为1,最终将得到一个N×S×B维的矩阵。将相同时刻且相同日照测试点的计数器进行或运算,将得到N×S的矩阵,代表当前布局的所有日照测试点在有效日照时间带中是否被遮挡。将矩阵沿列方向进行求和,即可得到N×1的矩阵,代表当前布局每个日照测试点的被遮挡时长,按照各地方居住区建筑规范对当前布局的日照时数是否合理做出判断。
本节首先介绍高层住宅建筑的自动布局设计方法的总体框架,后介绍各模块的具体实现,包括强化学习算法、建筑群的模式表示和自动聚类,实现高层住宅建筑的自动布局设计。
本文提出的高层住宅建筑的自动布局设计方法的整体框图如图1所示,主要包括两个阶段:建筑布局自动生成和建筑群的模式聚类。
图1 基于强化学习和模式聚类的住宅建筑自动布局设计总体框图
第一阶段采用强化学习的DDPG算法对建筑群进行排布,其中输入为建筑师给定的初始布局,输出为符合用地红线、日照和防火约束的合理布局。
输出多个合理布局后,进入建筑群的自动聚类模块,利用傅立叶描述子对建筑群进行模式表示,并采用K均值聚类算法(K-means)对这些合理布局进行聚类,分成不同种类的具有相似建筑群模式的类簇,供建筑师按自己的需求选择方案。
深度确定性策略梯度(Deep Deterministic Policy Gradient ,DDPG)[18,19],它是一种针对连续行为的策略学习方法,它需要两套神经网络,分别是当前网络和目标网络,并且两套网络都使用了Actor-Critic的架构,Actor负责在不同环境下给出动作,Critic负责评论该动作的好坏。两套网络的结构完全相同,参数不同。DDPG还且借鉴了深度Q网络的两个技巧:经验回放和固定Q网络(图2)。
图2 DDPG算法流程图
需要说明的是,动作集合可以设计为同时移动两个或多个单体,但出于算法时间复杂度的考虑,本文采用依次移动建筑单体、逐步找到合适的位置的策略,这样模型的训练和生成时间相对较短且更易收敛,可较快的输出大量方案。同时,本文采用的是固定建筑移动次序的方式,但是也可以采用次序随机的方法进一步增加解的多样性。在强化学习框架1)中,控制器选择其中一栋建筑单体进行移动,在移动n步后将其固定在原地并切换到下一个待排布建筑,依次进行,直至所有建筑物切换完毕所有建筑单体移动完成后,若所处位置均满足所有约束,即为一个合理方案,否则这个方案将不会被输出。随着训练次数的增加,会产生大量的解,保证了解的多样性,缓解陷入局部最优解的问题,最后由设计师根据其需求筛选方案。其中,每个建筑物固定好位置后,记录下当前位置所获得的奖励值,并将这些移动经验放入经验区。每达到预定更新的步数,从经验区中随机抽取N条数据,利用梯度下降法实现对网络参数的更新,以达到选择更优策略的目的。当所有建筑物全部切换好后,再重新学习,整个过程循环记录。随着迭代次数的增加,网络参数逐渐收敛,控制器给出的动作策略也逐渐稳定,奖励值不出现明显波动,输出多个合理布局。
算法流程如下:
(1)随机初始化actor当前网络μ(s |θμ)的参数θμ和critic当前网络Q(s,a |θQ)的参数θQ;
(2)采用随机初始化得到的当前网络的参数来初始化目标网络参数θμ'、θQ';
(3)初始化经验回放区B;
(4)初始化地块及周边建筑环境S1,通过主网络的策略,加上高斯扰动Nt,从建筑单体的动作集合A中选择的动作at对环境进行探索:
(5)建筑单体执行动作at,通过判断是否满足日照,防火以及建筑红线等约束来计算奖励rt和新的状态st+1。当前回合是否结束d,将(st,at,rt,st+1,d)存入经验回放池中;
(6)从经验回放集合B中随机采样M个样本计算当前目标Q值,结果表示为:
γ为折扣因子(γ∈(0,1))
(7)通过神经网络的梯度反向传播来更新critic的当前网络参数,损失函数使用均方差:
(8)采取策略梯度的方式对Actor网络的参数θμ进行更新:
(9)经过指定回合后,对目标网络的参数进行更新,τ为软更新系数
上述步骤中,移动n步使得建筑物可以到达地块中任一位置,即不会丢解。
2.2.1 奖励函数设计
建筑设计中需要考虑各个建筑规范要求,因此,本文考虑建筑红线,防火间距,日照时长的要求,奖励函数设计为:
建筑红线的奖励值c设计为当前建筑物以4个顶点围成的面积Sv与地块面积Sl的重合面积。
防火间距的奖励值d设计为以建筑物为中心,向外做圆角矩形使其每个点距离建筑单体的距离均为13m(通过上表可知高层建筑之间的防火间距为13m)作为其防火区域,计算当前正在排布的建筑物的防火区域Sc与其他建筑物的防火区域So重叠面积。
日照约束的奖励值e设计为在每一帧计算所有建筑物的日照测试点的日照时长,不满足日照时长的日照测试点的个数记为n,每个建筑物的遮挡时长记为Ti。
在建筑单体的移动过程中,会存在与其他建筑单体重合的情况,通过上述设定的防火间距的奖励值即可避免此问题,如果当建筑之间重合时,会给予其一个负的惩罚值。当一个回合结束时,如果奖励值最终不能达到0,即为不满足所有的约束条件,就不会输出该布局。
在计算当前回合的reward的值前,会将数据进行标准化处理,使得每个特征的重要性更加均衡。
2.2.2 动作空间与状态空间
为满足设计规范,建筑群在布局过程中,需要了解当前建筑物对其他建筑物的位置信息,所以状态空间被定义为1×(2N + 2)的向量,具体为当前建筑单体的x,y轴方向的速度(1×2),当前建筑单体的x,y轴的坐标点(1×2),其他建筑单体坐标减当前建筑单体的坐标作为相对位置(1×2N - 2)。
对环境状态的改变依赖于建筑单体的移动,建筑单体的动作空间定义为1×5维的向量,第一维无操作,2~3位为给定智能体x轴正负方向上的加速度axp、axn,4~5位为给定智能体y轴正负方向上的加速度ayp、ayn,当前状态空间中建筑单体在x,y轴的移动速度vx、vy,给定周期t = 0.1,
通过公式 (12)、(13)计算出更新后的智能体坐标(x'、y'):
建筑布局自动生成会输出多个合理布局,为提供给建筑师去冗余后的设计方案,采用傅立叶描述子进行建筑群模式表示,利用K-means进行自动聚类,实现基于建筑群模式识别的案例自动聚类。
2.3.1 建筑群的模式表示
由于所有输出的合理布局中的建筑物的本身形状均是完全一致的,因此,可将其抽象成空间点,着重关注建筑群的排布模式,利用质点构建多边形来同构建筑群的分布模式。主要步骤如下:
(1)按公式(14)计算地块的质心lp,以及各个建筑物的质心bp1、bp2、...... 、bp6,如图3(a)所示,其中,红色点表示地块中心,蓝色点表示各建筑物的质心:
其中,(xi,yi)表示多边形的各个点坐标,n为多边形的点个数。
(2)将各个建筑物的质心bp1、bp2、...... 、bp6按照地块质心lp的横轴正方向逆时针排序,当角度相同时,按照建筑物质心到中心质点的距离从小到大排序,如图3(b)所示。
(3)按照排序好的中心序列依次连接成闭合多边形如图3(c)所示,即将建筑群的分布模式同构成多边形,进而,将对建筑群的分布模式转为对多边形的形状识别。
将建筑群同构成多边形后,利用傅立叶描述子方法[20]对多边形的形状进行精确的描述。傅立叶描述子方法简单、精确,且不受平移、缩放、旋转变化的影响。多边形的轮廓可用离散坐标序列表示(x0,y0),(x1,y1),(x2,y2),……,(x5,y5),x轴为复数序列的实轴,y轴为复数序列的虚轴,多边形的复数形式可表示为:
由此,将二维问题转化为一维问题,闭合多边形可以在一维空间进行表示。对s(k)进行离散傅里叶变换为:
其中,a(u)为多边形的傅里叶描述子。由此,将建筑群中无序的各建筑物变为有序,进行精确描述和表示。由于使用傅里叶描述子对建筑群进行描述会有旋转不变性的特点,但实际上,建筑群的模式对于方向是敏感的,因此,需加入建筑群的方向。在进行建筑自动排布前,建筑师会按照经验给定一个初始布局及建筑朝向,通过移动建筑物,输出满足多约束条件的合理布局。因此,在进行建筑群模式聚类时,输出方案中各建筑单体的朝向均为固定,可将建筑物抽取为点,以各单体建筑质心构建建筑群的模式形状,取其最小外接矩形,将矩形的长轴方向与x轴正方向的夹角作为建筑群的方向特征。建筑群方向的计算方法为:
(1)计算建筑群模式表示出的多边形的最小外接矩形;
(2)以建筑群的质心作为原点,使用外接矩形的长轴和x轴正方向的夹角作为朝向θ,范围为0~180。
2.3.2 基于K-means的建筑布局聚类算法
将所得建筑群特征描述为一个1×7维的矩阵,[a(1),a(2),a(3),a(4),a(5),a(6),θ]前 六维为多边形的傅里叶描述子,第七维为建筑群群的方向,对数据进行标准化,利用K-means[21]算法进行自动聚类,K-means算法稳定性好,聚类效果佳,并与输入数据的顺序无关,可将具有相似建筑群模式的案例聚在一起,为建筑师提供去冗余、多元化的案例,主要步骤如下:
(1)样本集合即所有案例集合为D={ci}mi=1,其中,ci为每个案例建筑群的傅立叶描述子,m为案例的数量。给定聚类数K并在数据集中随机选取K个案例作为聚类初始中心点{μ1,μ2,μ3,…,μk}。
(2)计算案例cj与各中心点{μj}kj=1之间的欧式距离dij= ||ci-μj||2,将案例cj与K个中心点之间的距离进行排序,根据距离最近的中心点作为其的簇标记λj,并归到相应的簇Uλj中,即:
(3)将所有案例都划分好类簇后,计算新的类簇中心点μ'j。
(4)重复迭代上述过程,直至在一次迭代前后类簇中心点的变化很小,算法收敛结束,完成聚类。
基于傅立叶描述子的聚类算法流程见表4。将各案例的建筑群采用傅立叶描述子的方法进行模式表示后,采用K-means聚类算法便可将相同模式的建筑群自动聚类,给建筑师提供了多个类簇,供建筑师按自己的需求进行选择。
表4 基于K-means的建筑布局聚类算法流程
实验设计基于OpenAi发布的gym平台,创建实验环境与智能体,模拟高层住宅设计的真实环境。关于收敛的判断条件,本研究结合了奖励值状态和具体场景的一些指标,如,生成合理布局的速度相较于之前有明显提升,生成了大量的可行方案,同时奖励值较为稳定,就判断其达到收敛状态。实验的运算环境为Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz,模型训练时间约2小时,模型在48000回合后达到收敛,直到80000回合共输出了87组方案。选取了北京市内的一个真实地块设计高层住宅区,该地块面积大约为50400m2、容积率为4.7。为更充分考虑到住宅区周边环境的影响,将距离地块70m范围的周边环境也进行搭建,其中,包括2栋地块内的既定建筑和10栋周边既有建筑物,以展示本文提出的方法可考虑地块内外复杂真实环境的优越性。
根据容积率计算,建筑师设计6栋21层的高层建筑物,其中,建筑物长度均为60m,宽度均为30m。选取各建筑物的南向两个端点及其连线的中心点为日照测试点,共54个日照测试点。
通过查阅各项规范,其中,《城市居住区规划设计规范》中指出,北京地为Ⅱ类气候区,有效日照时间带为8:00~16:00,日照要求为大寒日累计日照时长至少达两小时。根据《建筑设计防火规范》高层住宅区的建筑之间防火间距为13m。根据当地规划局规定,建筑红线采取退让用地红线5m。由此构建环境如图4所示,其中,黑色实线为地块边界线,红色实线为建筑红线,黑色方块为地块内的既定建筑和地块外的周边既有建筑物,具体数据如表5所示。
表5 地块内外既定建筑物的详细数据
图4 北京市某高层住宅地块及周边环境
将6栋建筑物随机摆放在地块内作为初始状态,输入本文提出的建筑物自动排布模型中,从图5中可以看出,随着回合数的不断增加,奖励值逐渐上升,各建筑单体根据自身位置以及周边环境建立关系,从经验池中不断学习,不断调整自己的位置,来确定可以满足建筑间距及日照条件的位置,算法逐渐收敛,当各项约束的奖励值之和为0时,即说明满足各项约束条件,找到能够符合各项约束的合理布局,输出各建筑物的坐标,并随着回合数的继续增加,可以得到更多的合理建筑布局,建筑师可根据自己的需求暂停实验进程。
图5 回合数及奖励值的变化曲线
初始状态的随机给出也表明本方法既可以帮助有经验的建筑师,通过给出大致布局,经过模型的微调后给出合理布局,省去繁琐枯燥的人工微调环节,也可帮助没有经验的建筑师,只需要设计好建筑个数和建筑楼高,输入模型便可得到多个合理布局,更加节省时间和人工成本。
图6给出了模型输出的多个满足约束的布局,这些建筑布局具有不同的建筑群形态模式,为了更精确的描述建筑群形态特征,帮助建筑师节省数据分析的时间,建立更有依据的不同建筑群形态模式的自动推荐,采用了基于傅立叶描述子的建筑群形态表示方法和基于K-means的建筑群聚类方法。
图6 生成的满足设计约束的建筑布局
采用傅立叶描述子方法得到的建筑群模式表示如图7所示,实现了建筑群的从无序到有序的转换。
图7 建筑群的模式表示
将得到建筑群的特征表示,输入到K-means聚类算法中进行相似距离的计算和聚类,将具有相似建筑群模式的案例聚集,便可得到以下聚类结果。
由表6可以看出,在聚类类别为两类时,第一类的前五组方案,建筑群组成的六边形各边长较均匀,在空间分割层面上来看,大部分场地相对来说是对内的,周围留有较为均匀的对外场地。而后三组方案图形的其中一个建筑位置与场地边缘距离变远,使图形产生明显差异。
表6 二类聚类结果
由表7可以看出,在聚类类别为四类时,第三类与第四类的方案在建筑布局上相近,同样在保留内部场地的较大范围的同时,产生一个较大的集散场地,将其归为一类较合理。当聚类数目更多时,同样出现将相近布局拆分的情况。因此,建筑布局聚类划分为三类更为合理。如表8所示。
表7 三类聚类结果
表8 四类聚类结果
第一类,相对对内。六边形各边长较均匀,在空间分割层面上来看,大部分场地相对来说是对内的,周围留有较为均匀的对外场地。
第二类,极致对内。建筑中心点所构成的六边形,其长边在南北向相对平行;并且各顶点接近场地边缘;使对内的地空间尽量达到最大值。
第三类,内外兼顾。图形的其中一个顶点位置与场地边缘距离变远,使图形产生明显差异;这样就会在保留内部场地的较大范围的同时,产生一个较大的集散场地。
建筑师可根据不同的建筑群模式,选择自己所需要的合理建筑布局图。建筑师还可更高效地整合同类案例中蕴含的经验,并对具体设计做更充分的再创造。
本文针对高层建筑群的自动排布优化问题,采用强化学习的DDPG算法、建筑群模式表示方法以及K-mans聚类方法。将强化学习算法与高层建筑群排布相结合,设计状态及动作空间、奖励函数,其中,奖励函数的设计包含了建筑自动排步中的各项约束条件,通过建筑单体和环境的不断互动,累计经验,实现多约束条件下的建筑群自动排布并输出多个合理布局。本方法充分考虑了周围复杂的环境对建筑物排布的影响。实验结果证明了本文提出方法的可靠性和优越性,省去人工不断调整布局的繁琐过程,节省时间和人工成本。此外,计算机仅受设定好的约束条件限制,无人脑固有的局限性,因此,本方法具有超越人类建筑师的潜力,可以产生更优秀的布局方案。通过傅立叶形状描述子来进行建筑群的模式表示,将无序的建筑群分布转化为有序的表征,更精确的表示建筑群模式,并通过聚类算法,给建筑师提供更多元的案例参考,实现不同模式建筑群的自动推荐。算法简单且计算精确。
随着待排建筑数量的增加,需要适当增加A网和C网的网络层数与节点数,以适应更庞大输入层的求解需要,可根据实际情况,结合待排布案例,如周边的建筑个数,整个规划区的大小,通过实验来确定较合理的网络规模。此外,由于高层建筑之间存在互相遮挡的问题,导致日照计算十分复杂,对于每一个时刻每一个建筑单体都需要计算其是否被遮挡,所以需求的计算资源就会很高,但是随着硬件系统的成熟,这个问题会得到一定改善。
图、表来源
表1:北京地区建设工程规划设计通则;
表2:引自《高层民用建筑设计防火规范》GB50045952005版;表3:引自《城市居住区规划设计规范》;
其余图、表均由作者绘制。
注释
1)Actor和Critic的网络结构均含有两个隐藏层,每层64个神经元,Actor的输入是一个具体的状态,经过两层的全链接网络输出选择的动作策略,Critic网络的输入是当前状态,以及所有Agent当前的action信息,具体超参数如下表:
网络超参数设置