从“计算几何”谈起

文摘   其他   2023-07-22 22:26   上海  

自从尝试用代码原型辅助处理设计问题开始,我就觉得有必要系统地学习《计算几何》,于是下载了英文原版书,但是零基础看起来真的很费劲。幸好有朋友推荐了清华邓俊辉老师的网课,我才算是找到了一个适合自己的入门教程。我花了一个月的时间只看完了前4章,分别是凸包,几何相交,三角剖分和Vonoroi图,但收获远远超过预期。

工作中用到的优先级排序,分桶理论等在计算几何的问题处理中都有提及。用DCEL数据结构存储Vonoroi图的边,顶和面以及它们相互之间的关系,也让我想明白了之前用grasshopper里的电池生成Vonoroi图,炸开之后在边线上放置点,为什么总是方向相反。除了具体知识,更令我触动的是一整套思考问题、界定边界、寻找方法,优化流程的思路。

- 如何简化问题

学习如何简化问题是计算几何求解的底层思路。比如任何一个计算几何问题都可以归结为凸包的求解,而判断凸包又可以转化为在一堆点中选出对构造凸包有价值的点,再转化为判断某个点是否对凸包有贡献,再一步步简化为判断一个点是在直线的右侧还是左侧。最终只需要一系列布尔值就可以处理最初看起来无比复杂的几何问题。

- 明确复杂度

对于每一个问题,都不应该上来就去盲找解决方案,而是要先评估问题的复杂度,即这个问题到底有多难,解决它的复杂度下界是多少,如何归约,如何证明。搞清楚问题的难度,就可以知道后续的任何一个算法到底是不是最优,还有没有比这个更好的方法。

- 逐步寻找更有效的解决办法

很多几何问题都不是一开始就能直接找到最优解的,比如凸包问题,从遍历所有点与点的连线到Granham Scan,复杂度可以逐步从n的四次方降低到nlogn。有些被证明为NP困难的问题,在多项式时间内是找不到最优解的,但是如果放弃最优解,去寻求一个相对较优解则是有可能的,甚至是容易的。


我常常在想,到底什么样的知识能真正打动我?以前在欧洲游学看过很多建筑大师作品,什么马赛公寓啦,密斯馆啦,法国国家图书馆啦,同学们都很激动,也不知道是真激动还是假激动,我也就跟着一起激动,但内心深处其实毫无波澜,只想看完赶紧去吃饭。反而是巴塞罗那、纽约的城市设计难以忘怀,看似千篇一律的网格背后充满变数和奇迹。

本科时候那么多课程,我现在唯一的印象就是吴璟老师对着一组模型讲解什么叫丰富,不是把毫无关系的东西堆在一起就叫丰富,统一中有变化才叫丰富。研究生阶段接触了用ArcGIS和空间句法做城市设计的分析,意识到图纸是生成的而不是画出来的,生成的背后是一套逻辑自洽的规则。

之前我以为每个阶段吸引自己的东西都在变化,现在看来其实是一以贯之的。包括工作学习之余我喜欢的植物的分形,铺装里的图形组合,古典园林里瓦片拼出的花窗,那些打动我的细节,都归结为“如何由简单规则演化出丰富系统”。计算几何也是这一套思维方式在某个方面的呈现,所以才会吸引我一章一章学下去。

前几天看到澎湃新闻发了一篇文章《“失落”的建筑设计师们》,讲述了困在加班里,忍受欠薪的中年设计师因为维权被行业封杀,最终绝望跳楼的前因后果以及设计院和整个建筑设计行业的令人堪忧的现状。

这让我想起一年半以前,自己进入设计院工作没多久就已经感觉到了幻灭。当时在一个项目上花费数月时间反复去改塔楼立面的分隔形式,十几个方案在我看来没有任何区别,不了解实际情况,说不出前因后果,仅仅是为了不同而不同,熬夜搞的一堆PPT也不知道有什么用,甚至真实价值还不如一堆白纸。任何一个领导的任何一句随意之语都有可能导致项目被推翻重来,且对方不用付出任何成本。这和我信仰的“简单规则演化出复杂系统”的原则是完全背道而驰的。在那样一种工作体系里,只会把简单的事情复杂化,把复杂的事情混乱化,把混乱的事情停滞化。效率的提升不仅不能解决问题,还会使得情况变得更加糟糕。

曾经有人说过,现行中国建筑设计体系里的问题,不值得也不配用技术手段去解决。对于这个观点,我很意外的并不排斥。一个“方法论”从教学到实践全面缺席的领域,最终必然走向消亡,只是时间迟早的问题。至于自己将来的路要如何走,我只能很失败地说,给不出一个明确的结论。


寻常
在千千万万寻常的日子里,看过简单的风景,听过温暖的歌,偶尔还是忍不住停下来,回头看看,你是否还在……