官术网_书友最值得收藏!

2.3 計算機仿真工具

能夠實現復雜適應系統仿真的工具有Swarm、Repast、MASON和NetLogo,下面將針對本研究中所使用的Repast平臺和NetLogo平臺加以簡單介紹。

2.3.1 Repast平臺

1.Repast簡介

Repast(Recursive Porous Agent Simulation Toolkit)是由芝加哥大學的社會科學計算研究所中心開發研制的一個基于主體的計算機仿真軟件架構。它是一種在Java語言環境下用以設計生成基于主體的模擬模型的軟件架構,提供了一系列用以生成、運行、顯示和從一個基于主體的模擬平臺收集數據的類庫。此外,Repast還能夠對運行中的模型進行“快照”,以及生成模型運行的影響資料。

圖2-1 Repast建模流程

用Repast進行計算機建模,其建模的步驟如圖2-1所示。第1步,對模型中的主體進行抽象并分析主體之間的關系;第2步,選擇用哪種方式來控制模型的執行;第3步,封裝主體的屬性和行為;第4步,構建主體賴以生存的空間類;第5步,確定輸入輸出;第6步,進行仿真。

Repast仿真工具為開源項目,可聚集眾多開發者的智慧,任何個人或機構都可以為完善軟件平臺貢獻力量。由于Repast采用純Java語言實現,因此與其他軟件的兼容性強,具有良好的可擴展性,其本身還集成了多個第三方的Java類庫。例如,它集成了可以高效生成多種分布類型的隨機數類庫Colt,還集成了遺傳算法類庫jgap,用戶在建立Repast仿真模型時還可以使用其他類庫。Repast平臺不僅為多主體仿真提供了大量的基礎性功能,還為仿真模型的實現提供了一個編程框架。它大量采用了模板方法、抽象工廠等軟件設計模式來提高編程框架的通用性,軟件設計模式的采用也提高了仿真模型的模塊化程度。Repast平臺的技術支持力度高,擴展性好,且易于使用。

2.Repast運行原理

Repast模型有兩種運行方式:批處理運行方式和非批處理運行方式(也稱為圖形交互方式)。批處理運行需要一個特殊格式的參數文件,在這個文件中要詳細給出模型各個參數的起始值、增量值和終止值,以及運行的次數等。有了參數文件后,模型就可以無須用戶干預而自動連續重復運行。而非批處理運行則需要通過圖形用戶界面來交互地啟動和終止模型。用戶可以通過圖形界面來設定模型的初始參數值,還可以在運行中監控主體和模型的各種狀態。

Repast建模相當于設計一個狀態機,狀態機的核心狀態是模型中的所有成員的集體狀態屬性集合。成員則分為底層結構和表層結構。底層結構是各種各樣用于運行模型、顯示和收集數據等架構的機制;表層結構是設計者創立的模型。底層機構的狀態就是模型的種種顯示狀態、數據收集對象的狀態等;表層結構的狀態指模型的描述狀態,比如所有主體變量的當前值,模擬環境空間的當前狀態值。在這種狀態機模式下,所有對狀態機的改變都通過同一對象界面接口來實現。

2.3.2 NetLogo平臺

1.NetLogo簡介

NetLogo是美國西北大學網絡學習和計算機建模中心(CCL)推出的一個基于多主體的可編程建模平臺。它是一個基于計算機建模和仿真的軟件包,能對自然系統和社會系統進行仿真,尤其適合隨時間演變的復雜系統的建模。建模者可以讓幾百甚至幾千個獨立主體接收指令同時運作。這使得研究微觀層面的個體行為與由于這些個體之間的相互作用而涌現出來的宏觀現象之間的聯系成為可能。

NetLogo不但可以基本實現各種復雜的社會現象仿真,而且能提供友好的界面來保證易學性和易用性。它使用了目前所有仿真平臺中最高級的編程語言——Logo語言,非常接近人類的自然語言,因此能幫助沒有太多計算機編程基礎的研究者較快掌握使用技巧,進而實現研究設想。

2.NetLogo運行原理

在NetLogo中,主體分為三類:海龜(turtles)、塊(patches)和觀察員(observer)。其中,海龜和塊構成仿真世界,觀察員可以觀察和控制仿真世界的運行。海龜可以代替現實世界中的任何一種有活動特性的物體,如一只昆蟲、一輛汽車、一個人或一棵樹;而塊則代表了海龜所生存的環境,若干個塊構成整個環境(canvas),如一片綠葉、一條道路、一個城市或一片土地。通過對海龜和塊進行編程,即為之設定各種屬性和運行規則,就可以并行地控制成千上萬的海龜和塊,使其具有自己的變化方式,并彼此進行交互作用。這里的交互作用包括海龜和塊的交互及海龜和海龜的交互,前者體現了主體與環境的關系,后者則體現了主體之間的關系。

主站蜘蛛池模板: 盘锦市| 额尔古纳市| 舒兰市| 襄汾县| 佛冈县| 神农架林区| 浦东新区| 大城县| 中卫市| 淄博市| 澄城县| 大庆市| 青川县| 罗甸县| 环江| 定远县| 崇左市| 武功县| 阿尔山市| 团风县| 贵定县| 会理县| 旬阳县| 天柱县| 穆棱市| 阳信县| 天津市| 体育| 新干县| 朔州市| 叶城县| 孙吴县| 瑞昌市| 策勒县| 张家港市| 巴彦县| 霞浦县| 尚义县| 惠水县| 辉南县| 永川市|