热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

求教:求一个教室疏散人群的算法代码

假设针对某间教室,试设计一算法模拟同学下课后疏散离开教室的过程(如图1,四周为墙壁,灰色长条区域为课桌,黑色实心圆代表同学)。疏散过程中考虑2个因素影响:(1)每个同学首先选择最近的出口进行疏散;(2
假设针对某间教室,试设计一算法模拟同学下课后疏散离开教室的过程(如图1,四周为墙壁,灰色长条区域为课桌,黑色实心圆代表同学)。疏散过程中考虑2个因素影响:(1)每个同学首先选择最近的出口进行疏散;(2)当该出口聚集了大量同学形成拥塞,这时可能考虑离次近的出口进行疏散。这两方面的权重分别为0.7和0.3。

疏散规则:
(1)    将教室离散成为大小相等的网格,每个同学在单位时间内只能移动一个网格或者保持不动,并且移动方向只能时上、下、左、右(如图2);
(2)    如果某个同学选择的移动目标网格被其他同学占用,那么该同学选择等待;
(3)    如果多个同学同时竞争同一网格,随机选择其中一个同学占用该网格,其余同学保持不动;
(4)    同学不能移动到桌子占用的网格,并且只能通过出口处进行疏散;
(5)    当所有同学疏散完成后,算法结束。

8 个解决方案

#1


无非就是将疏散路径转变成图,然后依次迭代模拟。

#2


  真牛逼,先关注下,算法什么的都是高手啊

#3


那么咋个转换喃

#4


数学60分水平者遗憾飘过……

#5


呵呵~~这题不简单。。

#6


这不是基于元胞模型的教室疏散么,采用的是冯诺依曼邻域,格子划分应该是40cm*40cm,利用Ansgar Kirchner等人的Floor Field模型就可以实现,当然也可以有其他模型

#7


这不是什么算法题,没有算法,就是简单的 loop循环嵌套一个for 循环。

你只要有一个基本的数据表格,然后再内层for循环里循环模拟“一个”学生的单独一步(你的规则的2、3、4随便选一)就行了。然后看结果。

这在古老的basic入门课程中,是一个简单的入门“游戏”,供中学生们学习编程。(不包括初始化数据表的代码、打印数据表代码,剩下的控制部分代码)用10~20行左右的代码搞定。

#8


你随便找本20年前的国内流行的Basic或者Pascal或者Fortran的编程科普读物(不是专业读物),例如谭浩强编写的一系列书,都有这类几乎一模一样的题目。(只不过改为细菌的生死问题之类的)

推荐阅读
author-avatar
大绿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有