【发布时间】:2014-04-12 14:42:11
【问题描述】:
我正在考虑对物质流网络进行建模。有以一定速度运行的进程、可能溢出或下溢的缓冲区以及它们之间的连接。
我认为使用全局事件队列以经典的离散事件模拟 (DES) 方式对此进行建模没有任何问题。我尝试在没有队列的情况下对系统进行建模,但在早期阶段失败了。我仍然不明白为什么需要队列的根本原因,至少对于起源于网络“内部”的事件来说不是。
无队列 DES 的想法是将整个网络视为一个函数,它从外部世界获取事件流并返回状态变化流。网络中的每个节点都应该只受到直接连接到它的节点的影响。总的来说,我对 Haskell 的箭头和函数响应式编程 (FRP) 寄予了一些希望,但我仍在学习。
对我来说,事件队列看起来太“全球化”了。如果我的网络分成两个子网,它们之间没有连接,我只询问一个子网的状态变化,另一个子网根本不应该做任何计算。在这种情况下,我可以使用两个事件队列。但是,一旦我连接了两个子网,我就必须将所有事件放入一个队列中。我不喜欢这样的想法,即我需要知道网络的拓扑结构才能设置我的队列。
所以
- 有人知道不需要全局队列的 DES 算法吗?
- 这有什么困难甚至不可能的原因吗?
- FRP 在 DES 环境中有用吗?
【问题讨论】:
标签: functional-programming simulation reactive-programming frp