• 1.摘要
  • 2.基本信息
  • 3.简介
  • 4.历史
  • 5.种类
  • 6.计算机模拟的优缺点
  • 7.发展过程
  • 8.基本方法
  • 9.离散时间模型的模拟
  • 10.离散事件模型的模拟
  • 11.连续系统模拟
  • 12.模拟语言
  • 13.应用
  • 14.举例说明

计算机模拟

计算机模拟是一种能用来帮助企业经理在不确定条件下进行决策的方法。企业经理必须在不完全了解事件的发生及其影响如何的情况下,从若干方案中选出一种行动方案来。如果出现特殊事件,将会有什么结果,这也有不确定性。在有些情况下,对结果本身的最终影响也不确定。所以就产生了决策树方法与计算机模拟这两种方法。

建立研究对象的数学模型或描述模型并在计算机上加以体现和试验。研究对象包括各种类型的系统,它们的模型是指借助有关概念、变量、规则、逻辑关系、数学表达式、图形和表格等对系统的一般描述。把这种数学模型或描述模型转换成对应的计算机上可执行的程序,给出系统参数、初始状态和环境条件等输入数据后,可在计算机上进行运算得出结果,并提供各种直观形式的输出,还可根据对结果的分析改变有关参数或系统模型的部分结构,重新进行运算。

基本信息

  • 中文名

    计算机模拟

  • 别称

    计算机仿真

  • 应用学科

    计算机科学

  • 解释

    用来模拟特定系统之抽象模型的计算机程序

  • 研究对象

    各种类型的系统

  • 种类

    离散模拟类比模拟基于探元的模拟随机过程或决定论模式的模拟

简介

计算机模拟,又称为计算机仿真,是指用来模拟特定系统之抽象模型的计算机程序。

历史

计算机模拟的发展与电脑本身的迅速发展是分不开的。它的首次大规模开发是著名的曼哈顿计划中的一个重要部分。在第二次世界大战中,为了模拟核爆炸的过程,人们应用蒙特·卡罗方法用12个坚球模型进行了模拟。计算机模拟最初被作为其他的方面研究的补充,但当人们发现它的重要性之后,它便作为一门单独的课题被使用得相当广泛。

种类

通常分为如下几类:

  • 离散模拟

  • 类比模拟

  • 基于探元的模拟

  • 随机过程或决定论模式的模拟

计算机模拟的优缺点

在应用计算机模拟进行风险分析的问题上,最后应当指出:这种方法要求取得投资支出、单位销售量、产品价格、投入要素价格、资产使用期限等许多变量的概率分布,并需要支出相当多的程序设计费用与计算机运转费用。因此,全盘模拟一般并不适用(但如关于扩建大型工厂或生产新产品等规模大而花钱多的计划的决策除外)。在这些例外情况下,即企业要决定是否实行一项需要支出千百万美元的大规模计划时,计算机模拟有助于深入评比各个可供选择的方案的优缺点。

发展过程

当人们设计和构造复杂的系统时,或研究自然界、人类社会中漫长的演变过程和不易重复试验的事物时,若对研究对象本身进行试验,从时间、人力、物力等因素考虑要付出昂贵的代价,甚至不可能进行。因此,需要制造一个模型来进行各种试验。

为了对系统模拟,首先要确定或表达所要研究的系统。用数学模型能较方便地确定一个系统,全面地反映对系统的已有认识或需要验证的假设,但缺乏直观性,也不便于进行试验。在数学模型的基础上,可进一步作出实物模型,它体现人们所要求的真实系统有关的性质,但在形式和规模上不必与真实系统完全一致。用实物模型试验比较直观、可信,但仍不够经济和方便。

可编程序的数字计算机出现以后,因它具有很强的数学运算和数据处理能力,可把数学模型编制成计算机程序,提供新的、通用的试验方法。计算机也可用于模拟与运筹有关的活动,例如,可以模拟参加竞争的双方所采取的步骤和最终的结局。它的应用领域很快就扩展到各种类型的系统,从规模巨大的系统一直到小型的系统,这些系统的数学描述常常非常复杂,要给出完全的解析解或精确的数值解非常困难。计算机模拟通过反复试验,帮助人们了解系统的性能,检验预想的假设,进行系统分析、设计、预测或评估,还可提供相当逼真的环境,借以培养和训练人员。计算机模拟已成为工程研制、自然学研究、经济和社会问题研究、教学训练活动、军事研究、组织管理等许多领域中的一个有力的工具。

基本方法

计算机模拟一般从形成问题到最后模型确认须经过许多步骤。①形成问题,明确模拟的目的和要求。②尽可能收集和处理系统有关的数据。③形成数学模型,找出组成系统的各个部件,并描述它们在各时刻的状态的有关变量(一般包括输入变量、状态变量和输出变量)或参数;确定各部件之间相互作用和影响的规则,即这些描述变量之间的函数关系。选择参数和变量的时候,还须考虑它们能否辨识或求解,以及模型最后是否适于根据真实系统的数据进行检验。④根据收集的数据确定或估计模型中的参数,并选择模型的初始状态。⑤设计逻辑或信息的流程图,直至编制出计算机程序。⑥程序验证,检验程序与数学模型之间的一致性,以及输入量的合理性。⑦进行模拟试验,对给定的输入在计算机上执行程序。⑧结果数据分析,收集和整理试验结果并作出解释。必要时可改变输入量或部分模型结构,重新进行试验。⑨模型确认,检验由模型所得的结果与真实系统的性能数据的一致性程度。这是关系到计算机模拟是否有效的关键问题,它依赖于对真实系统本身进行试验的水平、能否获得足够的观测数据和判别一致性的准则。模型有效的级别可分为:重现有效的,即模型可重现真实系统的性能;预测有效的,即模型能有效地预测真实系统的未来性能;构成有效的,即模型能反映真实系统内部的结构。由于系统本身是随时间变化的,或者具有随机性,对真实系统数据和模型试验结果的比较常常需要采用时间序列分析方法或统计分析的方法。

离散时间模型的模拟

离散时间模型中的时间表示为整数序列(代表某一时间单位的整数倍),只考虑系统在这些时刻上的状态变化。这种模型的一个典型模拟程序包括下列步骤:①置模拟时间T的初始值为t0。②置状态变量的初始值。③给出当前模拟时间输入变量的值后,根据模型中的状态转移函数,确定在下一时刻T=t+h状态变量的值。再根据模型中的输出函数确定在该时刻输出变量的值。 ④把模拟时间T推进一个单位时间h。⑤检查模拟时间T是否达到预定终止时刻。若已达到即停止;否则转移到步骤③。

离散事件模型的模拟

在离散事件模型中,系统的状态改变只出现在离散的时刻,称为离散事件。以排队系统为例,建立这种模拟模型的基本步骤和方法是:①确定系统中包含的所有有关的“实体”及其属性,系统状态改变的一切“事件”及其前因后果。实体是系统的组成部件,每个实体的属性由表示其性质的数值表示,构成系统的状态。在排队系统中最基本的实体是一定数量的“服务站”和要求服务的“顾客”,它们的属性分别为“服务站”的“服务速率”和“顾客”的服务优先级、到达服务系统的时刻等。基本的“事件”包括:新实体进入系统或现有实体离开系统、实体属性发生变化、调度的时刻表变化等。②确定模拟时间推移的方法。如果把时间按等间隔划分,顺序考察在这些时刻系统是否出现事件,称为固定时距方法;如果时间每次推移的长度以下一次事件发生的时刻为依据,称为可变时距方法或“下一事件”方法。③由于系统中事件的出现常具有随机性,服从一定的概率分布,因而在计算机上需要产生这些分布的随机数。④为了灵活有效地记录系统的状态,进行事件的调度,积累有关性能数据并形成报表,保存和自动管理未来事件文件,在程序设计中采用数据库技术非常适宜。