Netlogo建模基础知识讲解 14302010008 秦奕深.

Slides:



Advertisements
Similar presentations
元大京華證券 組員名單 : A 楊之奇 A 廖本揚 A 宋俊承 A 陳冠廷 A 郭峻瑋 A 指導教授 : 許素華 副教授.
Advertisements

许瑞云医师 你已经很努力地注意饮食、作息、运动, 为什么身体还不能恢复健康 ? 细节 答案就在「 细节 」裡, 唯有掌握关键的一步, 养生才能达到真 正的功效 ! 现在就让我们跟着曾是全球知名的哈 佛医院主治医师的许瑞云, 学习最正确 的养生方法, 轻松打下健康满分的基础 !
達悟族報告 作者 : 林琪崴, 許原碩 座號 :13 號,14 號 原碩負責 : 簡介, 傳說, 圖驣, 達悟族飛魚季, 琪崴 : 地理位置, 土地利用方式, 飲食文化, 豐收祭.
營養滿分 ~ 健康講座 軒泰食品有限公司 營養師李錦惠 桃園縣內海國民小學. 飲食金字塔 每日所需的飲食建議量 目的 : 提供均衡的營養與熱量 建議量 :1. 五榖根莖類 :3~6 碗 2. 蔬菜類 :3 碗 3. 水果類 :2 碗 4. 蛋豆魚肉類 :3~4 份 5. 奶類 :1~2 杯 6.
主讲:张天明 影像艺术工程师. 声音的聆听 指出听到的是什么物体发出的声音,这一 声音是在什么样的空间环境中传播的。 一、 答案: 1 、打气筒打气的声音 2 、手打打气筒给足球打气的声音 3 、手打打气筒给自行车轮胎打气的声音 4 、七次(七声)打气筒打气的声音 5 、(气流)摩擦的声音 6 、猪在发急时的叫声.
概念導向命題技巧與試題分析 臺灣師大地理系 陳國川. 教學評量是一種『抽樣調查』 實施教學評量時,需具備二項條件: 其一,瞭解命題的理論及其實踐的方法; 其二,瞭解各種題型的功能與命題方式。 壹、前言.
第十八章 林肯大郡 第十八章 林肯大郡災變緊急搶救應變措施 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊造成二十八人罹難八十戶住宅倒塌的慘劇 此災變要喚起國人的重視 本章介紹搜救行動緊急應變措施。
高峰植物園行前解說 2005/12/07 By 羽明. 陽性先驅物種 陽性植物 --- 陽光需求量大 陰性 ( 或耐蔭性 ) 植物 --- 陽光需求量少, 或 日照太強反而無法生存 先驅植物 --- 森林大火或土石流地震後產生的 裸露空地, 先生長出來的植物.
報 告 人 : 胡 嘉 琪 ˙ˇ˙ 、 王 紫 庭 = ˇ = 台灣夜市文化 作者: 郭明澤‧私立明道高中‧綜二 4 班 馬炯修‧私立明道高中‧綜二 4 班.
5 ˙ 1 第五章 生物的協調作用 5 ‧ 1 神經系統. 5 ˙ 1 人體的神經系統 1. 協調動物生理反應的系統: 神經 系統、 內分 泌 系統。 2. 神經系統負責 統整 和 協調 。分為 中樞 神經 和 周圍 神經。 (1) 中樞神經包括 腦 和 脊髓 。 (2) 周圍 神經包括 腦神經 和.
文学灵感论 蓦然回首,那人却在灯火阑珊处 ……. 生活中、科学中的灵感 运动鞋 电梯 阿基米德与皇冠 牛顿的三大定律.
从《西游》看大学生的成长 主讲人:颜廷学 时间: 地点:演艺大楼流行剧场.
新员工培训 设计部 思安新能源股份有限公司 主讲人: 韩少华 时 间:
前言:河流的主要功能 1. 交通運輸 優點-運費低廉,維護費用低 缺點-速度慢,裝載費時,不能到達生產區或消費區 的末端,需要轉載。 尚受到河流網路,河口位置,水量變化,河床 狀況,冰封時期 2. 水資源系統.
幽夢影~張潮 小佑子工作室 關於《幽夢影》 作者張潮,記寫他個人對人生世事之體驗透悟的 書。 書中文字,全為「語錄」形式,屬於格言,也是 最精鍊的隨筆。 全書可分為九卷:論才子佳人、論人與人生、論 朋友知己、論讀書、論閒情逸趣、論立身處世、 談文論藝、論四時佳景、論花鳥蟲魚。
實踐國中綜合活動. 我們的團隊 輔導 — 邱敏芳主任、洪穎馨組長、朱孝安組 長、徐維莉師、蔡嘉容師、蔡燕娟師 童軍 --- 蘇月琴團長、蔡盟玉師 家政 --- 阮雅倩師、李怡慧師、蔡佩瑩師.
成人高考高起点 语文 冲刺班 主讲老师:邓君媚. 复习指导 高考语文含四大块内容: 语言知识和语言表达,古代诗文阅读,现 代文阅读,写作。 在全面复习的前提下,按照《考试大纲》 的要求,要做好思路整理,建立高考的整体框 架的工作。认真归纳整理基础知识、培养基本 能力,复习做到有的放矢。 复习指导.
老师,我可以不 爱 吗? 山东省淄博市张店区实验中学 杜桂兰 星期一的早晨,我紧张而又兴奋,因为 我的赛教课就要开始了。 这是一次级别很 高 的竞赛。
财政部 国家税务总局 中国人民银行(央行) 银监会 证监会 保监会. 法定存款准备金率 利率 税率 政府投资 楼继伟,周小川,易纲.
油蔴菜籽 指導老師:陳瑜霞 學生: 商設一甲 謝旻璇 車輛三乙 許勝傑 工管四甲 彭凱雲. 作者介紹: 廖輝英( 1948 年生)臺大中文系畢業。 從初三開始寫作,早期作品多以散文為主,大四 畢業時才暫時封筆。畢業後進了廣告界,成為廣 告文案好手,後為企畫主管,在廣告界縱橫十餘 年,也曾任職於建設公司,辦過社區報高雄一周。
蘭嶼情人洞傳說 林庭羽製 林庭羽製. 台灣的蘭花特別多,台灣有個蘭 嶼島,島上面的蘭花更多.所以 叫蘭嶼.這裡留下了動人的傳說。
職業訪談報告. 成員 : 鐘怡君 劉沛君 謝明達 賴映辰.
南台科大幼保實習課程 見習幼兒園心得報告 夜四技幼保四甲 998i0021 黃欣婷.
第一章 生殖 1‧2 無性生殖.
高教三十条 — 科技创新能力提升 科技创新能力提升工程方案起草小组 2013年7月4日.
你不可不知之 十二年國教二三事 教務主任:傅瑞琪.
鞋 楦 的 材 質.
最古怪的15種動物.
走! 一起去拜訪筏子溪.
都是作假惹的禍 假 GO ~.
台灣文學館之旅.
單車環島之旅 組員: 495D0072 胡閎智 495D0074 何冠緯 495D0020 王怡雯 495D0047 葉亭君
 耕地分割 及 執 行 內政部地政司 視察:林玲女.
~完備、周密、迅速 ~ 行政院農業部畜產試驗所
建筑设计基础讲义 (02-1) 建筑水彩渲染.
主題─ 悌 授課教師:謝宛琳.
♥走馬瀨露營心得分享 二年七班 19號 鄭宜欣.
客家围龙屋 想知道梅州有哪些好吃好玩的吗?那接下来就让我带你去看吧!!GO。。。 梅州游乐篇.
新竹二日遊 準備出發囉!!GO.
2014年 服務學習 財金一C 林秀薇.
腦筋要變通,舉一反三的創意; 和其他東西結合,馬上就有創意; 動詞用一下,就可以變花樣; 其實,創意超簡單,有用心就有創意。
再發現 埔頂好樣「戀戀古橋」風華再現 (埔頂二號公園) 雇工購料實作成果 埔頂社區發展協會.
天 狗 郭沫若.
樂 樂 西 玩 西 玩 門 門.
‘‘色彩計畫 期末作業’’ 企業色彩識別系統分析 4950Z003 陳美菱 4971C001 林立婷 指導老師:呂裕文.
食字路口 飲食看燈行 營養姐姐廖澍君 1.
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
台灣廢物物處理機構 邱騰煥 8 號.
為孩子編織一個支持網  台北市家庭暴力暨性侵害防治中心.
我的心得報告 經過篩選,挑中我們 十多位學生由學校推薦進入公司,開始他們的學習之旅 學習的過程中有想像不到的意外驚喜
綜合活動活動學習領域的教學應用 愛的路上 EZ GO !!.
光隆家商 優質化計畫 簡報 校 長 楊瑞明 教務主任 高美麗
飛天小女警遊縣警局.
主題樂園的開發評估與規劃.
如何提高研训教师职业素养 阜新市教师进修学院 王晓秋
光華女中97高中優質化輔助方案 光華女中優質團隊.
花蓮二日遊 花蓮兩天一日遊 製作人 :吳佳育.
復興國中95學年度生涯檔案製作簡介.
世界看遍 终归回到纯水岸 波托菲诺08年终总结. 世界看遍 终归回到纯水岸 波托菲诺08年终总结.
複詞三胞胎(偏義複詞、同義複詞、反義複詞)
圖畫成語 Go !Go ! Go ! 遊戲說明.
遠 流 商 用 英 語 學 程 主講人:陳世宗先生 地 點:清雲科技大學 (清雲館804教室) 日 期:
「與校長有約」 with普二速
響應立法院親民黨團擴大舉辦向全民徵文 《若我有8800億,要怎麼改造台灣!?》
學生端 操作說明.
神秘方塊.
網路資源的應用-抓圖 李俊賢.
全台灣最美的日出好美…好美… 這就是傳說中的潑墨二寮,耳聞她的日出有如國畫般 所以稱為潑墨二寮
天澤堂兒童三色GO 高小級主日學 導師:李志誠 黃少華 2011年10月8日
作文教學--遊記篇 適用年級:五年級 教學者:鄭文娟老師.
Presentation transcript:

Netlogo建模基础知识讲解 14302010008 秦奕深

NetLogo简介 1.基本情况 NetLogo是一个用来对自然和社会现象进行仿真的可编程建模环境建模仿真集成环境 由美国西北大学连接学习与计算机建模中心(Center for Connected Learning and Computer-Based Modeling,CCL)开发。 2002年发布了1.0版本,用户手册为4.0.2版本,最新为4.1.1版本

2. 主要功能 多主体建模(重点) 运行控制 仿真输出 实验管理 系统动力学仿真 参与式仿真 模型库 多个移动Agent分布在二维空间中,每个Agent自主行动,所有主体并行异步更新,整个系统随着时间推进而动态变化。 运行控制 仿真输出 提供了多种手段实现仿真运行监视和结果输出 实验管理 BahaviorSpace,自动管理仿真运行,并记录结果。 系统动力学仿真 参与式仿真 HubNet 模型库

3.软件特色 完全可编程 简单语言结构 是LOGO语言的扩展,支持智能体和网络结构 可以定义无限个智能体和变量 多种内置命令帮助使用 支持整型和双精度型浮点数计算 跨平台、可复用的应用。

二、NetLogo仿真框架 1. NetLogo软件

2.模型的抽象 总体: 大量的可移动主体在二维空间中交互作用,随着时间推进,微观个体的属性不断发生变化,系统的宏观特征也因此而变化。 从三个方面理解: 主体 空间表达 仿真推进

(1)主体(Agents) 虚拟世界由主体构成,主体能够接受命令,进行活动,所有主体的行为并行发生。 NetLogo中共有三类主体, turtles(海龟) patches(瓦片) observer(观察者)

主体类型 turtles指能够在世界中移动的主体。 世界是二维的,划分为由patches组成的网格,每个patch占据一个矩形小块。 patch和turtle一样可以有自己的属性和行为 observer是一个全局主体,它观察着由turtles和patches构成的世界,能够执行指令获取世界全部或部分的状态,或实现对世界的控制。

虚拟世界

(2)空间表达 每个patch有二维坐标(pxcor,pycor)坐标值为整数。 默认情况下,二维世界的水平、垂直坐标范围为(-17,17) 每个turtle也有坐标(xcor,ycor) turtle坐标不必是整数,因此turtle不一定正好位于某个patch的中心。 一个patch上也可以同时有多个turtles。 实际上对turtle而言,NetLogo的空间是连续的。

(3)仿真推进 没有明确的仿真时钟变量,也没有提供特定的事件处理机制 仿真推进是通过不断重复执行某个例程实现的 模型中至少要有初始化例程和仿真执行例程 初始化例程实现对模型初始状态的设置,生成所需的turtles,设置其状态,以及其它工作。 仿真的执行通过例程go实现,在go例程中编写所需执行的各种指令,完成一个仿真步的工作。 需要在Interface页中建立一个按钮与go例程相联系,该按钮是一个永久(forever)按钮,点击后将不断重复执行go例程,直到遇到stop指令或用户再次点击该按钮则仿真终止。

2.建模基本过程 NetLogo模型包括可视化部件和例程两部分,二者具有紧密联系。 先在Interface中创建可视化控件,然后在Procedures中实现相应的代码,通过设置控件的属性将二者联系起来。

Interface中主要有三类部件 Procedure中的例程分为两类: 运行控制 参数控制 仿真显示 命令(command)例程 报告(reporter)例程

仿真的基本框架 初始化to setup 对所有Turtle循环 ask turtles 每一个仿真周期to go 每个Turtle做出决策forward 1 是否结束? 否 是 结束

三、编程指南

breed [ ] turtles-own [ ] globals [ ] to setup [ ] end to go [ ] end ask turtles [ set pcolor white ] set-default-shape turtles "person" setxy random-xcor random-ycor set turtles-own random set age ( 22 + random 53 ) set age ( age + 1 ) set house 0 clear-all(ca) forward(fd) 1 create-turles 100 sprout-breeds number [ ] sprout number [ ] hatch number [ ] hatch-breeds number [ ] ask one-of men [set breed ] if ifelse

四、生态系统建模示例 假设要模拟一个简单的生态系统, 该系统中有一种生物以青草为食,通过吃草获取能量、 该类生物经历成长、繁殖、死亡过程。

1. 初始化 创建生物群体,并将它们随机分布在空间中。 例程(demo1) to setup ;;定义例程setup clear-all ;;设置整个世界为初始状态 ;;创建100个turtles,创建后各turtle默认坐标是(0,0) create-turtles 100 ;;命令所有turtle执行语句setxy random-xcor random-ycor ;;各turtle 坐标随机产生,实现turtles在空间中的随机分布 ask turtles [setxy random-xcor random-ycor] end

2.仿真执行例程 实现turtle随机移动 实现go例程,与forever按钮联系 go 调用move-turtles例程

增加代码: (demo2) to go ;;定义仿真执行例程go move-turtles ;;调用例程move-turtles end to move-turtles ;;定义例程move-turtles ;;所有turtle执行[ ]中的命令序列 ask turtles[ right random 360 ;;右转一个角度,度数随机产生 forward 1 ;;前进距离1 ]

3.青草的模拟 为模拟青草的存在设置patches为绿色 改写setup 例程,其中调用了两个新的例程setup-turtles和setup-patches,分别设置turtle和patch的初始状态

demo3 to setup clear-all setup-patches ;;调用例程setup-patches setup-turtles ;;调用例程setup-turtles end to setup-patches ;;命令所有patches执行指令set pcolor green ;;该指令将patch颜色设置为绿色 ask patches[set pcolor green] to setup-turtles create-turtles 100 ask turtles[setxy random-xcor random-ycor]

4.主体行为 现在增加一些行为,假设turtle以青草为食,通过吃草获得能量,移动时要消耗能量。 patch代表青草,绿色表示有,黑色表示无。 为实现这样的模型,需要重新定义turtles的属性和行为,然后重写go例程。 首先给turtle增加变量energy以存储当前能量值, 另外添加吃草获取能量的例程, 还要修改移动例程以反映能量消耗。

自定义turtle变量,修改go turtles-own[energy] ;;声明turtle变量energy to go move-turtles ;;turtle随机移动,消耗能量 eat-grass ;;吃草获取能量 end

定义eat-grass turtle吃草获取能量 修改patch颜色表示草的有无 to eat-grass ask turtles[ if pcolor = green[ set pcolor black set energy (energy+10) ] end

修改原来的move-turtles例程,添加能量消耗指令。 to move-turtles ask turtles [ right random 360 forward 1 set energy energy - 1 ;;移动后能量减少1 ] end

假设turtle能量小于等于0就死亡,当能量大于50就繁殖;青草以一定的恢复率再生。由于主体行为发生了改变,需重新定义go例程, to go move-turtles ;;移动 eat-grass ;;吃草 reproduce ;;繁殖 check-death ;;死亡 regrow-grass ;;青草再生 end

to reproduce ask turtles[ if energy > 50[ ;;如果能量大于50则繁殖 set energy energy-50 ;;母体能量减少50 hatch 1 [set energy 50] ;;产生一个后代,初始能量50 ] end to check-death if energy<=0 [die] ;;如果能量小于等于0则死亡 to regrow-grass ask patches[ ;;青草以0.03的概率再生 if random 100<3 [set pcolor green]

5.监视仿真运行 监视器控件(monitor) 主体标签 显示turtle数量,monitor表达式“count turtles” 每个主体有一个变量lable

6.图形输出 在Interface中创建Plot控件,在Procedures中编制绘图例程。 绘图概念 每个Plot控件必须指定一个唯一名,在绘图时通过Plot名指定在哪个Plot上绘图 绘图时必须使用某个画笔,画笔默认是黑色实线,也可以创建自定义画笔

绘制turtles数量和青草数量曲线 添加Plot控件 创建两个画笔,分别指定颜色 添加do-plots例程 修改 setup和go例程

to setup clear-all setup-patches setup-turtles do-plots ;;绘制初始点 end to go move-turtles eat-grass reproduce check-death regrow-grass do-plots ;;随仿真运行绘制图形 to do-plots set-current-plot “totals” ;;选定plot控件 set-current-plot-pen “turtles” ;;选定画笔turtles plot count turtles ;;绘制turtles数量 set-current-plot-pen “grass” ;;选定画笔grass plot count patches with [pcolor=green] ;;绘制青草数量

7.仿真参数控制 参数控件 开关(switch)、滑动条(slider)、选择器(chooser) 这些控件都对应一个全局变量,在Procedures中将这些全局变量作为参数使用在程序中,就能实现仿真参数的控制。

例如:选择仿真时长 用滑动条设置仿真时长,对应变量名terminate-time 添加全局变量ticks 修改go例程, 当ticks=terminate-time时停止

代码 globals [ticks] ;;声明全局变量ticks … to go if ticks >= terminate-time [stop] ;;判断是否应停止 move-turtles eat-grass reproduce check-death regrow-grass do-plots set ticks ticks+1 ;;时钟推进 end