我经常在计算机科学中看到仿真和仿真。这两个术语似乎是同义词。仿真和仿真有什么区别吗?
发布于 2012-02-13 11:51:16
是的,概念是不同的。
simulation
是一个行为类似于其他东西的系统,但实现方式完全不同。它提供了系统的基本行为,但可能不一定遵守所模拟的系统的所有规则。它是为了让你对事物的运作方式有一个了解。
以飞行模拟器为例。它看起来和感觉就像你在驾驶一架飞机,但你与驾驶飞机的现实完全脱节,你可以在你认为合适的情况下弯曲或打破这些规则。例如,在伦敦和悉尼之间倒飞一架空中客车A380而不破坏它。
emulation
是一个系统,它的行为与其他东西完全一样,并遵循被模拟的系统的所有规则。它实际上是对另一个系统的完全复制,一直到二进制与被仿真系统的输入和输出兼容,但在一个与原仿真系统的环境不同的环境中工作。规则是固定的,不能更改,或者系统失败。
M.A.M.E.系统就是围绕这一前提而建立的。所有那些早已被遗忘的旧拱廊系统,它们几乎完全是在硬件中实现的,或者是在硬件系统的固件中实现的,它们都可以被模仿到当你达到最高得分时会发生的最初的错误和崩溃。
发布于 2012-02-13 08:06:29
模拟是一种由其他东西构建的模型,它复制了该事物的一些特性,而将其他特性排除在外--显然,您希望保留与查询相关的特性,而忽略不相关的特性。
例如,对清晨通勤者交通的模拟忽略了通勤者的姓名,甚至可能忽略了他们的身份(使用一个计数器变量而不是一组实际的Commuter
对象),但它不能忽视他们的到达率。
仿真是在平台B上运行为平台A创建的软件X,而不改变软件本身。这需要构建一个运行在B上的A的模型,而且很明显,它必须对涉及代码执行的关于A的一切进行建模。(理论上,您可以省略对操作码的支持,因为您知道这个特定的软件永远不会使用,但这是很少见的-做仿真器是一项艰苦的工作,做一项彻底的工作并拥有一些可重用的东西比只适用于S.)
发布于 2012-02-13 08:01:06
两者都意味着做其他事情的工作。
不同之处在于,“模拟”发生在一个有意识的层次(对用户而言),并且通常是在没有触及现实本身的情况下预测现实的结果。
“仿真”发生在一个无意识的层次上,其目的是将底层组件替换为-in与用户相关的另一个不同的组件--像旧组件一样工作。
换句话说,模拟发生在“平行世界”,而仿真发生在“替代世界”。
https://softwareengineering.stackexchange.com/questions/134746
复制相似问题