AnyLogic 建立谢林模型

  • 说明
    • 创建一个新模型
    • 创建代理人群体和离散空间
    • 双击 people 前的图标,编辑 Person
    • 设置 Agent 的形状(Person)
    • 在模型中启用离散时间,实现代理行为
    • 点击 Person,进行编辑
    • 点击运行按钮
    • 效果图

说明

我们将把 Schelling 的模型实现为一个基于离散空间/离散时间的代理模型。空间代表一个城市,每个单元格代表一个房子。
agent 是人,是两种颜色:黄色和红色。
最初,人是随机分布在城市中的。人比房子少,所以总是有一个人可能会移动。
这个模型中的 agent behavior 非常简单。
如果一个人的邻居中相同颜色的人的比例低于某个阈值,这个人就会感到不开心,并搬到随机选择的空房子里;否则,这个人就会很开心,什么都不做。
阈值(对同一颜色的偏好)将成为模型的一个参数。在这个模型中,最初假设的是离散时间:幸福感的评价和搬家是在离散的时间步长上进行的。

创建一个新模型

点击 File , 鼠标移动到 New , 点击 Model

修改模型名字和存储路径,点击 Finish

创建完成后页面显示如下:

创建代理人群体和离散空间


代理人群体名字:Person


点击 Next

选择 2D 作为动画,点击 Next

点击 Next

初始人口规模设置为8000,点击 Next

选择离散二维空间类型,点击 Finish

双击 people 前的图标,编辑 Person


添加一个新的参数 color


类型选择 Other …,选择 Color 作为参数的类型

在参数的默认值字段中输入以下表达式:

randomTrue(0.5)?red:yellow

设置 Agent 的形状(Person)

将矩形形状从演示调色板拖到Person(坐标原点)的编辑器中,并在其动态属性页的填充颜色字段中输入颜色以及设置大小


在模型中启用离散时间,实现代理行为

在 Main 中,创建一个新的参数,将参数名称设置为 “Preference”,将其类型设置为double,默认值为0.6


选择启用步骤

在main的属性页面,点击其他空白处,右边出现的属性框中,点击 Space and network,勾选 Enable steps


点击一下 people 前面的小人图标,选择模型演示

点击 Person,进行编辑

创建一个新的变量

增加一个初始值为 true 的布尔变量 happy



在 "Person "属性页面的代理操作选项卡中,在 "On before step "字段中键入以下代码

Agent[]neighbors=getNeighbors();
if(neighbors==null)
{happy=true;
}
else
{int nsamecolor=0;for(Agent a:neighbors)if( ( (Person)a).color.equals(color) )nsamecolor++;happy=nsamecolor>=neighbors.length*get_Main().Preference;
}

在 "Person "属性页面的代理操作选项卡中,在 "On step "字段中键入以下代码

if( ! happy )
jumpToRandomEmptyCell();

点击运行按钮


在弹出的新窗口中点击 Run

效果图

AnyLogic 建立谢林模型相关推荐

  1. 【从零开始的ROS四轴机械臂控制】(三) - 为机械臂添加摄像头和夹爪、解决gazebo模型抖动、使用gazebo建立sdf模型

    [从零开始的ROS四轴机械臂控制(三)] 五.在gazebo中添加摄像头 1.修改arm1.gazebo.xacro文件 2.修改arm1.urdf.xacro文件 3.查看摄像头图像 六.为模型添加 ...

  2. 筑算高程点提取插件_「教程」原来利用高程数据点建立地形模型,只需要一个键...

    ©版权申明 本文由大地老周原创,如有转载请联系我们 各位同学经过前几期的学习,有没有对地形模型这一块的知识有更深的理解,和自己的解读呢~ 小编休息了几期,好好沉淀了一番,精心为大家准备了第四期的课程 ...

  3. 【教程】利用libsvm-mat建立分类模型model参数解密【by faruto】

    原文地址:http://www.matlabsky.com/thread-12649-1-1.html 建议大家看这篇帖子之前先看一下以下几篇帖子: 如何使用libsvm进行分类[by faruto] ...

  4. EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测

    EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 bagging_clf = ...

  5. ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测

    ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 #预测模型选择的RF import numpy as ...

  6. ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程

    ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程 目录 实现结果 代码实例 实现结果 代码实例 import numpy as np import pylab as pl from s ...

  7. (软件工程复习核心重点)第九章面向对象分析-第三节:面向对象分析之建立动态模型和功能模型

    文章目录 一:建立动态模型 (1)概念 A:适用性 B:步骤 (2)编写脚本 A:定义 B:目的 C:内容 D:方法 (3)设想用户界面 A:重要性 B:目的 C:方法 (4)画事件跟踪图 A:必要性 ...

  8. R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、使用attributes函数查看线性回归模型的属性信息、获取模型拟合对应的残差值residuals

    R语言使用lm函数构建简单线性回归模型(建立线性回归模型).拟合回归直线.使用attributes函数查看线性回归模型的属性信息.获取模型拟合对应的残差值residuals 目录

  9. Kaggle泰坦尼克号生存预测挑战——模型建立、模型调参、融合

    Kaggle泰坦尼克号生存预测挑战 这是kaggle上Getting Started 的Prediction Competition,也是比较入门和简单的新人赛,我的最好成绩好像有进入top8%,重新 ...

  10. R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、可视化散点图并添加简单线性回归直线、添加模型拟合值数据点、添加拟合值点和实际数据点之间的线段表示残差大小、col参数自定义设置

    R语言使用lm函数构建简单线性回归模型(建立线性回归模型).拟合回归直线.可视化散点图并添加简单线性回归直线.添加模型拟合值数据点.添加拟合

最新文章

  1. vmware ESXI6.7 设置 Nvidia 显卡直通
  2. android xml 指纹动画,如何检查设备是否具有指纹功能并在Android中使用
  3. 如何添加团队成员,并为团队成员分配访问权限(转载)
  4. html遮罩实例,给原生html中添加水印遮罩层的实现示例
  5. 深入 Adobe Reader 保护模式 —— 第一部分 —— 设计
  6. Tip:强制执行exchange DAG节点之间的数据库副本移动
  7. ftp完成版本更新php,php – 将开发团队从FTP转换为版本控制系统
  8. 北邮 复习 软件工程_软件工程专业最厉害的32所大学,共分4个档次,第一档当之无愧!...
  9. LINUX编译alsa
  10. 快检员计算机知识,计算机检验员(初/中/高级/技师/高技)
  11. Matlab 三角函数输入
  12. 微信小程序超级占内存_微信小程序彻底拯救16GB手机 小程序与APP占用内存对比...
  13. 【Docker】Failed to get D-Bus connection: Operation not permitted解决
  14. 领航机器人广告段子_“满屏尽是段子手”,喜剧综艺如何从“笑声”中突围?...
  15. 天台人满为患,不如来看下这个Ramnit蠕虫DesktopLayer.exe分析
  16. 输出电阻与反馈网络的关系以及计算
  17. 转载:mongo常规操作 大于/小于/不等于……
  18. Win7/Win10双系统安装方法图文教程
  19. 「普通人VS程序员」电脑还可以这样关机,神操作 建议阅读
  20. RFID基础---频率、卡类型

热门文章

  1. JWT-JSON WEB TOKEN使用详解及注意事项
  2. win10固态硬盘分区 整数_固态硬盘怎么重装win10系统?Win10固态硬盘重装系统教程...
  3. ITIL 4 Foundation知识体系-第一章-介绍
  4. 16进制储存的农历信息的正确打开方式
  5. Pandas中DataFrame数据的常用操作(创建、转置、查询、排序、缺失、运算、合并、追加、修改、分组、压缩等)
  6. Tomcat的下载与安装
  7. ChinaPub地毯式搜索 - 数据库
  8. 搜狗拼音皮肤 php文件,搜狗输入法皮肤制作教程(组图版)
  9. 知物由学 | 人工智能、机器学习和深度学习如何在网络安全领域中应用?
  10. linux硬盘温度,linux查看硬盘温度和使用情况