更新於 2024/11/01閱讀時間約 3 分鐘

The Nature of Code閱讀心得與Python實作:5.1 Forces from Within

自主代理人指的是一種實體(entity),這種實體在沒有任何人指揮以及事先規劃好的情形下,能夠自主決定在身處的環境中要怎麼行動。

在這本書的模擬世界中,自主代理人的「行動」,指的是在畫面上「移動」。所以,在這一章中的設計重點,就會放在怎麼設計出有能力、甚至有慾望,會自己決定要怎麼移動的自主代理人。我們設計出來的自主代理人,能夠自己決定是要接近或遠離目標,就像餓虎看到羊群或是老鼠看到貓時,會自己決定是要撲上去或是躲得老遠一樣。

同樣是作用力,驅使粒子移動的重力、風力等力量,是來自粒子外部,但驅使自主代理人移動的力量,卻是來自於自主代理人的內部,這是自主代理人與無生命物體間最大的不同點。不過,者兩者雖然有這麼大的差異,但基本的程式寫法卻差異不大,先前處理重力、風力等作用力的寫法,都可以應用到自主代理人的設計上來。

原書在設計自主代理人時,會讓他有下列三個特徵:

  • 自主代理人具有有限度的環境感知能力。這也就是說,自主代理人可以根據環境來進行決策。不過,要注意的是,這裡的「環境」,指的不僅僅是外部環境,它還包括了代理人的內部狀態,如位置、速度,乃至於情緒等等其他模擬出來的特質。至於「有限度」,指的是代理人並非全知全能,可以感知到所有內在、外在的環境狀態;畢竟真實世界中的我們也是如此。在真實世界中我們能夠看到東西,但僅限於一定距離內的某些東西。距離太遠的,我們看不到;體積太小的,像是細菌、病毒,我們也看不到。讓自主代理人的能力有所限制,這樣子模擬出來的效果,會比較真實一些。
  • 自主代理人會利用環境中的各種資訊來計算出該採取的行動。
  • 自主代理人不受任何人指揮。之所以會讓自主代理人具有這個特徵,主要是為了模擬由一群自主代理人所組成的複雜系統(complex system),其所呈現出來的群體行為(group behaviors)特性。這種複雜系統中所出現的群體行為,並不是因為有人發號施令,而是組成複雜系統的個體間互相影響的結果。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.