论文部分内容阅读
本文以笔者亲身参与的火灾现场逃生模拟程序开发经验,以及期间对Erlang语言技术的探究以及应用该技术实现一个真实的计算机仿真系统的实践经验为基础,论述了基于Erlang的并发火灾现场人员逃生模拟系统的设计和实现过程。论文首先介绍了Erlang及相关概念和工具;其次分析了系统的需求,基于需求给出了系统体系架构设计;再次,重点介绍了系统核心功能及模块的解决方案和核心算法实现;最后,给出源代码统计和系统运行界面效果。论文最末总结了本项目的得失和未来发展,并总结了面向并发编程的实践经验和技巧;探讨了解决实际的并行处理问题的思维方式和方法论。本系统的开发环境为跨操作系统平台,Windows2003或Linux系统(论文中采用Fedora Release12); Erlang Runtime R13B01, Eclipse 3.5加erlIDE 0.7。完成后的系统力图为建筑设计人员和消防安全人员提供更好的事前模拟和预案决策支持,以期提高建筑设计装修布局的合理性和安全性。本文的主要工作包括如下内容:1.综述了本课题的研究现状、发展趋势及意义,介绍了并行处理的理论及方法论,以及计算机仿真模拟的相关理论知识;介绍erlang语言的主要特点及相关成功应用案例;2.作为本文论述的重点,首先介绍火灾模拟应用项目的背景和详细需求,作为消防部门做事前灾害模拟,逃生预案设计的辅助工具,本系统需要能够满足模拟大规模场景的能力,模拟的实体应尽量接近真实客观的对象,同时场景应该可以灵活设置。基于Erlang语言,分析该系统的需求,最终整体架构上采用了模型/视图/控制(MVC)的模式,所有模块在逻辑和功能上分为这三大组,模块组之间做到功能的高内聚性,依靠Erlang的消息传递机制,模块组群之间又能实现低耦合度的意图。模型负责保存系统运行时的数据,视图负责展示数据,控制是各个模块组群之间以及用户和系统间交互的功能串联;3.考虑到代表性,重点介绍系统实现中的两个核心算法,以及相关有价值的实现技巧细节。其一,基于Monte Carlo思想的无规则叠加图形面积的计算,该算法应用了Monte Carlo的概率统计思想,结合Erlang多进程并发编程的特点,既简洁又高效地实现了不定形状图形的面积计算,为统计场景中的过火面积等面积计算提供了支持;其二,人员行进方向决策算法,通过维护一个权重矩阵,权重值考虑各项因素对决策的影响,调整权重值,从而最终给出一个唯一的行进方向。该算法简单直接,并且相当灵活,可以很方便地增减参考因素,提升模型的逼真程度。4.最后分析了目前实现中有待改进和增强的方面,以及未来对本课题的研究和进一步应用进行了全面总结。