感谢博主的辛苦成果
为什么要仿真
说起为什么需要仿真,理由可以列举很多,简要来说,它是在纯数学建模和实际系统的优缺点之间的一个折中。相对数学模型来说,仿真不需要高深的数学技巧,也不需要作过多的简化和假设,并且在求解复杂系统时,不会面对状态和空间爆炸的问题。再者,仿真也可以用来验证数学模型的正确性。而相比实际系统,仿真的成本要小得多,并且容易取得更多的统计信息。有时候,实际系统甚至是不可得的,比如对于Peer-to-Peer (P2P)网络的研究者来说,大部分时候,大部分人都不可能获得一个拥有上百万用户的P2P网络的控制,如果没有仿真,只怕很多做研究的都要无事可做了。
如何仿真
要进行仿真,首先需要对被仿真的系统进行建模。系统的模型由若干实体以及实体间的关系组成。实体的属性构成了系统的状态,而事件是引起系统状态发生改变的行为。通常来说,系统的状态随着时间的不断发生而不断变化。因此,要模拟一个系统的行为,最重要的就是模拟系统中的事件。
一般说来,仿真模型分为两中,一种称为周期驱动模型,也称为时间驱动,系统以固定的时间间隔增量累积时间,每次时钟的走动要求某些动作必须发生,这种模型的好处是非常简单,但真实性比较差;另一种是事件驱动模型,在这种模型中,系统状态的改变仅仅由事件的发生引发,系统时间也由事件的发生时间来确定,由于事件发生时间的随机性,系统时间的推进步长也是随机的。由于两个相邻事件之间的时间内系统状态不会发生改变,所以系统时钟可以直接从一个事件发生的时间推进到下一个事件的发生时刻。事件驱动的仿真模型能够比较精确地模拟复杂的系统&