当前位置: 首页 > 知识库问答 >
问题:

在Anylogic中分配随机GIS位置

尹庆
2023-03-14

我目前正在Anylogic中研究一个基于代理的模型,该模型由多个商店组成,每个商店都有一个分配给每个商店的驱动程序和下订单的客户,然后这些订单从最近的商店交付给他们。

我已经创建了一个具有一定订单频率事件的代理类型“客户”。我知道anygic允许通过在GIS地图上放置一个节点、在地图上搜索位置的名称或通过以编程方式定义位置来为代理分配GIS位置(setLoce(INodenode)、setLoce(Point point)、setLoce(Agent代理)

但是,我希望在每次生成订单时为客户分配一个随机的地理信息系统位置“地理信息系统节点”。我想知道是否有一个特定的功能,我可以用来做这件事或任何其他方式。

任何帮助都非常感谢。

共有2个答案

谢胤
2023-03-14

我认为你不想在全世界随便找一个地方,因为你在太平洋中部、珠穆朗玛峰顶端、白宫或南极的某个地方没有顾客。

所以你真正想做的是定义一个地理信息系统区域,这是你可以在找到地理信息系统点的同一个地方找到的元素之一,你可以在地图上选择你的客户可以存在的区域,然后你可以选择一个随机的点:

region.randomPointInside()

但是请记住,必须计算到每个随机点的路线,因此如果您有太多的随机点和到这些点的交付,这可能会非常慢,因为路线每次都是计算的。。。

党星鹏
2023-03-14

您可以在以下位置使用此代码:代理操作,启动时:

Point pt = get_Main().region.randomPointInside();
setXYZ( pt.x, pt.y, pt.z );

如果您得到无法解析的“区域”,您应该在主树、演示文稿、地图中选中,如果“区域”名称不存在,则表示您还没有创建它。您可以转到托盘、空间标记并使用GIS区域来绘制您想要的区域。

 类似资料:
  • 我正在创建一个模型,在该模型中,我在GIS空间中拥有大量代理。我也有位于设定GIS点的区域。我想为初始模型创建一个自定义分布,以便群体中的个体的原始值是其中一个区域,这是代理开始的位置。我已经创建了一个选项列表,并为其分配了分发值。但是,它无法从原点(键入表单选项列表)转换为区域。人口的来源类型region的值是自定义分布,但它会引发 自定义分布类型不匹配:无法从Origin转换为Area。 我如

  • 我目前正在研究城市环境下最后一英里交付领域的论文。 我想了解Anylogic软件的功能,我们正在开发一个基于agent的城市环境中最后一英里交付的模拟模型。在我们的模型中,最重要的模拟领域之一是在我们的分析中使用驾驶员从A点移动到B点所需的时间和距离。 因此,我们正在询问Anylogic是否能够为用户“我们”提供从A点移动到B点所需的时间,而不假设驱动程序的速度,类似于从软件(如Google Ma

  • 每个应用实例都被持久地映射到一个随机的整数或小数,根据在该项目中定义的键。 > 假设与一样,该值对于所有生成的百分位数(即那些没有密钥的百分位数和有密钥的百分位数)持续存在,直到卸载应用程序为止。这是一个正确的假设吗? 如果一个条件映射到一个<=50的随机百分位,然后我将该条件更改为仅目标<=10(但不修改与该随机百分位相关联的键),我希望11-50的百分位现在在下一个条件上匹配(可能是默认值),

  • 最终编辑-这是AnyLogic中路由回归的一个错误,在下一次更新中得到修复。 我正在开发一个城市模拟,让行人代理在它周围移动。我使用的GIS区域数据是从加载。osm文件处于步行交通模式,我在该地区随机生成建筑代理。 起初,他们在城市里走得很好,但在到达目的地的半路上,他们突然以高速直线飞越城镇,到达目的地。他们似乎到达了离大楼最近的地理信息系统节点,然后走了最后几米。我相信我试过的每个行人都会这样

  • > 如果我给它分配50%的值,那么它是否在我的总受众的50-50%以上进行A/B测试? 如果我在远程配置中有两个参数,并且每个参数都有一个不同的“User in Random Percentile”值,那么firebase是为两个参数分配一次随机值,然后将相同的值传递给两个参数还是为每两个参数计算两次?

  • 我对Android/Java编程比较陌生。我正在创建一个基于文本的社交游戏,并创建了一个包含ID、名称和角色的SQLite数据库。 角色将由应用程序分配并存储在相关的SQLite表中。 由于角色是随机的,我想也许一个随机数生成器从1-7(2个独特的角色,2个相同的角色和3个相同的角色) 我被困在哪里开始和如何实现此功能,任何帮助/建议将不胜感激。