生成式藝術和算法創作11-Boids, Flocks, Swarms

復雜系統(Complex systems,自組織系統)由許多部分組成,雖然每個單元的行為很簡單,但整個系統的行為很復雜,并且在沒有通用控制算法的情況下,從單元的集體行為中浮現出來——稱為涌現(Emergence)現象。

例如在蟻群中,每只螞蟻都以化學氣味對來自幼蟲、其他螞蟻、入侵者、食物和廢物堆積的刺激作出反應,并留下化學痕跡,這反過來又為其他螞蟻提供刺激。每只螞蟻都是一個自主單位,它的反應僅取決于其當地環境和遺傳編碼的規則。盡管缺乏集中決策,但蟻群表現出復雜的行為。

Boids

Boids 是由 Craig Reynolds 于1986 年開發的人工生命項目,模擬鳥類的群聚行為。

與大多數人工生命模擬一樣,Boids 是涌現(emergent)行為的一個例子;也就是說,Boids 的復雜性源于各個智能體,它們遵循一系列簡單規則的交互。最簡單的 Boids 世界中的基礎規則如下:

  • 避免(Avoidance):移開以免距離太近
  • 模仿(Imitate):以附近其他單元的平均方向/速度飛行
  • 中心(Center):朝向群體中心,最大限度地減少對外部的暴露

還可以添加更復雜的規則,例如避障和追求目標。

一個 Boid 單元的當前速度計算公式為:

V_{new} = uV_{old}+(1-u)w_aV_{avoid}+w_iV_{imitate}+w_cV_{center}

其中,V_{new}V_{old} 是前后運動的速度向量;w_a, w_i, w_c 是權重因子,分離權重大于仿效和凝聚權重;u 是動量因子。

Boids 是復雜系統的典型例子,由簡單的智能體之間的響應式互動,通過局部空間配置或響應環境,產生了連貫的集體行為。每個智能體的行為都由行為規則之間的相互作用產生,多智能體系統的行為來自許多智能體與環境的交互。

第一部使用 Boids 制作的動畫是 1987 年的 Breaking the Ice。隨后在 Tim Burton 的電影「蝙蝠俠歸來」(1992 年)中首次亮相大屏幕,用計算機生成的蝙蝠群和企鵝軍隊在高譚市街頭游行。

Flocks

Flocking 是指一群鳥類在覓食或飛行時表現出來的行為。與魚的淺灘(shoaling)行為,昆蟲的蜂群(swarming)行為和陸地動物的群體(herd)行為有相似之處。用于模擬鳥類 flocking 行為的計算機模擬和數學模型,通常也可以應用于其他物種。

Flock 是大量自驅動智能體的集體運動,類似許多生物如鳥類、魚類、細菌和昆蟲的集體動物行為。它是由個體遵循的簡單規則引起的涌現行為,不涉及任何中心式的調控。

Flocks 的規則跟 Boids 本質上其實是一樣的:

  • 分離(Separation):在移動中避免距離其他 flock 單元太近
  • 對齊(Alignment):以附近其他 flock 單元的平均方向/速度飛行
  • 內聚(Cohesion):朝向群體平均位置(質心),最大限度地減少離群可能

Flocks 和 Boids 類似,因為可以模擬大量個體的群體行為,所以在很多領域都有應用,例如表示大量個體關系的數據可視化:

Moere A V (2004)

Swarms

群行行為(Swarm behaviour)、群行(Swarming)是一種集體動物行為,一群實體聚集在一起兜圈或朝特定方向行動。這是一個高度跨學科的主題,昆蟲、鳥類、魚類、水生動物、人與細菌都會出現 Swarms 行為。廣義上來看,機器等無生命實體的集群行動也可以用 Swarms 描述。

Swarm 行為最初是 1986 年模擬 Boids 的仿真程序。無論是 Boids、Flocks 還是 Swarms,基礎的規則都是:

  • 朝著與鄰居相同的方向前進(對齊區)
  • 保持與鄰居的關系(吸引區)
  • 避免與鄰居發生碰撞(排斥區)

為了深入了解動物為什么會進化出 Swarms 行為,科學家們已經轉向模擬進化動物種群的進化模型。通常這些研究使用遺傳算法來模擬許多代的進化。

Swarm 算法遵循拉格朗日方法或歐拉方法。歐拉方法將群體視為一個場,使用群體的密度并導出平均場屬性。它是一種流體動力學方法,可用于模擬大型群體的整體動態。不過大多數模型使用拉格朗日方法,這是一種基于智能體的模型,遵循構成群體的各個智能體(點或粒子)。

在現代娛樂產業中,電影和游戲的人群、戰爭、動物集群等大場景越來越都借助于 Swarm computing 的方式來生成。

Swarm Art

Swarm Art 探討與自組織、非消息驅動的交互和涌現等問題。 在 Swarm Art 中,群體或響應式智能體共同完成創造性任務。

Photogrowth 是 Penousal Machado 等人創作的一個進化系統,可以生成非真實的圖像渲染。靈感來自蟻群方法的繪畫算法,通過模擬在畫布上行進的人工螞蟻來產生新的渲染。螞蟻的蹤跡用連續的線條表示,就像畫筆一樣。所有痕跡的疊加和交織,以及它們在方向,寬度和顏色上的變化,都會從給定的圖像中產生富有表現力的渲染。

Artificial Ants 一書的作者 Nicolas Monmarche 探討了蟻群算法的進展和群體智能的新趨勢,并用算法創作了一系列作品。

SwarmPainter 是一個 3D swarm 繪畫程序,由 Christian Jacob 和 Gerald Hushlak 在 2004 年完成。

Casey Reas 是算法藝術的推動者,也是 Processing 社區早期的主要貢獻者之一。

闡述了用簡單圖形生成復雜作品的想法和實現方法

An Element is a simple machine that is comprised of a Form and one or more Behaviors. A Process defines an environment for Elements and determines how the relationships between the Elements are visualized.

Antoine Schmitt 是法國藝術家,在他 2015 年的作品「戰爭」系列中,使用了算法模擬蟻群般的像素軍隊之間的戰爭。

伏擊
死亡之吻

? War Antoine Schmitt

Ref


00 的文集

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容