提问人:Marco 提问时间:11/17/2023 最后编辑:Marco 更新时间:11/18/2023 访问量:27
队列理论:如何识别数据中的智能体?
Queue theory: how to recognize Agents in data?
问:
我正在处理队列工具库,用于刺激单节点 M/D/1 系统,其中请求到达时到达时间定义如下:
def slow_arr(t): return t + random.expovariate(1.5)
及服务时间:
def ser(t): return t + 0.5
在模拟过程中,我需要模拟到达时间较短的其他请求的到达:
def fast_arr(t): return t + random.expovariate(0.15)
根据我从文档中得到的内容,我定义了两个代理(请求),如下所示:
ag_slow = qt.Agent(
agent_id = (1, 1), # edge 1, agent 1
arrival_f = slow_arr,
)
ag_fast = qt.Agent(
agent_id = (1, 2),
arrival_f = fast_arr
)
和队列(在我的模拟中只有一个):
q = qt.QueueServer(
num_servers = 1,
collect_data = True,
service_f = ser,
)
现在,我将第一个 Agent 注入服务器并模拟 10 个事件并检查数据(以防万一)
q.set_active() # accept agents
ag_slow.queue_action(queue=q)
q.simulate(n=10)
q.fetch_data()
一切似乎都是对的。 然后我注入了第二个代理(到达时间较短的请求):
ag_fast.queue_action(queue=q)
q.simulate(n=10)
然后,我将数据移植到数据帧中,结果如下:
编号 | 到来 | 服务 | 离开 | num_queued | num_total | q_id |
---|---|---|---|---|---|---|
0 | 1.967303 | 1.967303 | 2.467303 | 0.0 | 1.0 | 0.0 |
1 | 2.093401 | 2.467303 | 2.967303 | 1.0 | 2.0 | 0.0 |
2 | 5.400844 | 5.400844 | 5.900844 | 0.0 | 1.0 | 0.0 |
3 | 5.765601 | 5.900844 | 6.400844 | 1.0 | 2.0 | 0.0 |
4 | 8.493998 | 8.493998 | 8.993998 | 0.0 | 1.0 | 0.0 |
5 | 9.035278 | 9.035278 | 9.535278 | 0.0 | 1.0 | 0.0 |
6 | 9.874867 | 9.874867 | 10.374867 | 0.0 | 1.0 | 0.0 |
7 | 10.542173 | 10.542173 | 11.042173 | 0.0 | 1.0 | 0.0 |
8 | 11.993661 | 11.993661 | 12.493661 | 0.0 | 1.0 | 0.0 |
9 | 13.107135 | 13.107135 | 0.000000 | 0.0 | 1.0 | 0.0 |
10 | 13.565815 | 0.000000 | 0.000000 | 1.0 | 2.0 | 0.0 |
现在我有两个问题(或更多? 首先,我模拟网络的方式可以吗?(请不要烤我)。
其次,有没有办法获取有关代理的信息?(比如,“这是来自到达时间较短的人的代理吗?也许应该实施这样的事情?就像一个标签。
感谢您的帮助。
答: 暂无答案
评论