five

QGym|排队网络数据集|资源管理数据集

收藏
arXiv2024-10-09 更新2024-10-11 收录
排队网络
资源管理
下载链接:
https://github.com/namkoong-lab/QGym
下载链接
链接失效反馈
资源简介:
QGym是一个用于可扩展开发和基准测试排队网络控制器的开源框架,由哥伦比亚大学开发。该数据集包含多种现实环境下的排队系统实例,如并行服务器、交叉、串联和重入网络,以及经过校准的医院排队系统。QGym通过事件驱动模拟器和广泛的排队策略基准测试,旨在解决资源分配和拥堵管理问题。数据集的创建过程结合了经典排队理论和强化学习方法,适用于制造、通信和医疗等多个领域。
提供机构:
哥伦比亚大学
创建时间:
2024-10-09
原始信息汇总

QGym: Scalable Simulation and Benchmarking of Queuing Network Controllers

概述

QGym是一个开源的仿真框架,旨在通过多样化和现实的问题实例来基准化排队策略。该框架支持多种环境,包括并行服务器、交叉、串联和重入网络。它提供了一个平台,用于比较无模型强化学习方法和经典排队策略。

亮点

  • OpenAI Gym接口:易于部署强化学习算法。
  • 事件驱动仿真:精确的时间记录和快速仿真。
  • 作业级跟踪:允许建模并行服务器系统。
  • 任意到达模式:模拟时间变化的到达模式。
  • 服务器池:快速仿真大量同类服务器。
  • 批量仿真:高效并行仿真多个轨迹。
  • 开源:可适应自定义需求。

文件结构

  • main
    • run_experiments.py:运行配置在configs/experiments中的批量实验。
    • trainer.py:定义Trainer类,包含训练和评估模型的方法。
    • env.py:带有OpenAI Gym接口的仿真器代码。
  • configs
    • experiments:每个目录包含一个或多个YAML文件,每个文件配置一个实验。
    • env:包含指定排队网络的YAML文件。
    • model:包含指定排队策略的YAML文件。
    • scripts:包含定义到达和服务模式的Python文件。
  • logs:包含实验的损失和切换日志。
  • policies:包含排队策略的实现。
  • utils:包含路由和绘图的实用函数。
  • RL:包含用于基准测试的PPO及其变体基线。
    • policies:包含各种PPO策略,如WC和Vanilla。
    • PPO:包含PPO算法的实现。
      • trainer.py:PPO训练器。
      • train.py:启动PPO实验的主脚本。
    • utils
      • rl_env.py:使排队环境兼容强化学习算法的包装器。
      • eval.py:强化学习模型的评估实用程序。
    • policy_configs:包含不同强化学习策略的YAML配置文件。

作为OpenAI Gym环境使用

用户可以使用main/env.py中的DiffDiscreteEventSystem类编写自定义实验代码,将其作为OpenAI Gym环境使用。用户可以通过resetstep方法与该环境交互。

用法

创建DiffDiscreteEventSystem实例并使用reset()方法初始化环境,使用step(action)方法模拟系统随时间的变化。

API参考

参数

  • network (torch.Tensor):网络拓扑。
  • mu (torch.Tensor):每个服务器的服务率。
  • h (float):队列中作业的单位时间持有成本。
  • draw_service (callable):绘制队列中作业服务时间的函数。
  • draw_inter_arrivals (callable):绘制每个队列的到达间隔时间的函数。
  • init_time (float, optional):初始仿真时间,默认为0。
  • batch (int, optional):并行仿真的批量大小,默认为1。
  • queue_event_options (torch.Tensor, optional):自定义队列事件选项。
  • straight_through_min (bool, optional):使用直通估计器进行最小操作,默认为False。
  • queue_lim (int, optional):最大队列长度。
  • temp (float, optional):Gumbel-Softmax的温度,默认为1。
  • seed (int, optional):随机种子,默认为3003。
  • device (str, optional):运行计算的设备,默认为"cpu"。
  • f_hook (bool, optional):启用调试钩子,默认为False。
  • f_verbose (bool, optional):启用详细输出,默认为False。

方法

  • reset(init_queues=None, time=None, seed=None):重置环境到初始状态。
  • step(action):根据动作执行一步仿真。
  • get_observation():获取系统状态的当前观察。
  • print_state():打印系统的当前状态。

运行实验

main目录中,运行run_experiments.py脚本,使用-exp_dir参数设置包含所需实验YAML文件的子目录名称。

定义实验

实验使用位于configs/experiments目录中的YAML文件进行配置。每个实验有自己的子目录,包含一个或多个指定环境、模型和脚本的YAML文件。

定义排队网络

排队网络的参数在configs/env目录下的文件中定义。每个YAML文件包含以下键:

  • network:定义网络拓扑。
  • mu:定义到达率。
  • lam_params:定义到达参数。
  • server_pool_size:定义服务器池大小。
  • h:定义每个队列的持有成本。
  • queue_event_options:定义每个到达或服务事件的队列变化。
  • train_T, test_T:每个仿真轨迹的步数。
  • init_queues:初始队列长度。

定义到达和服务模式

到达和服务模式在configs/scripts目录中定义。定义一个返回每个队列的下一个到达或服务时间的任意时间函数。

定义排队策略

使用policies/<policy>.py文件定义策略的逻辑。每个策略文件包含一个实现策略的类。该类在configs/scripts/<script>.py中使用。

定义训练/测试超参数

排队策略的参数在configs/model目录下的文件中定义。每个YAML文件包含以下重要超参数:

  • test_batch_size:测试集的批量大小。
  • num_epochs:训练策略的轮数。
  • test_policy, train_policy:分配算法,支持linear_assignmentsinkhornsoftmax

运行强化学习训练和评估

提供代码库来训练和评估多个强化学习基线。在RL/PPO目录中运行以下命令: bash python train.py <policy-config-name> <queue-env-name>

基准测试结果

Criss-cross

Network $cmu$ MW MP FP PPO PPO BC PPO WC
Criss Cross BH $16.1 pm 0.0$ $mathbf{15.3 pm 0.0}$ $8.3 ext{E+}3 pm 0.0$ $29.3 pm 0.0$ $8.6 ext{E+}3 pm 4.6$ $24.0 pm 0.2$ $mathbf{15.4 pm 0.2}$

Reentrant-1 [Exponential]

$L$ $cmu$ MW MP FP PPO PPO BC PPO WC
2 $19.0 pm 0.0$ $14.8 pm 0.0$ $18.9 pm 0.0$ $1.0 ext{E+}3 pm 0.0$ $1.8 ext{E+}3 pm 6.6$ $25.1 pm 0.6$ $mathbf{13.6 pm 0.4}$
3 $mathbf{21.6 pm 0.0}$ $24.8 pm 0.0$ $30.9 pm 0.0$ $8.1 ext{E+}3 pm 0.0$ $1.0 ext{E+}4 pm 21.6$ $48.2 pm 0.5$ $22.6 pm 0.4$
4 $30.1 pm 0.0$ $32.1 pm 0.0$ $40.3 pm 0.0$ $4.3 ext{E+}3 pm 0.0$ $1.8 ext{E+}4 pm 41.7$ $183.4 pm 5.2$ $mathbf{29.7 pm 0.4}$
5 $51.3 pm 0.0$ $50.0 pm 0.0$ $52.2 pm 0.0$ $9.8 ext{E+}3 pm 0.0$ $2.7 ext{E+}4 pm 84.4$ $135.2 pm 3.1$ $mathbf{38.7 pm 0.4}$
6 $54.7 pm 0.0$ $49.2 pm 0.0$ $59.1 pm 0.0$ $1.2 ext{E+}4 pm 0.0$ $5.9 ext{E+}4 pm 315.3$ $358.0 pm 9.7$ $mathbf{4.85 pm 0.5}$
7 $56.4 pm 0.0$ $mathbf{54.4 pm 0.0}$ $70.5 pm 0.0$ $2.9 ext{E+}4 pm 0.0$ $4.4 ext{E+}4 pm 208.1$ $526.6 pm 8.7$ $56.3 pm 8.2$
8 $mathbf{59.4 pm 0.0}$ $68.0 pm 0.0$ $81.4 pm 0.0$ $1.7 ext{E+}4 pm 0.0$ $5.9 ext{E+}4 pm 315.2$ $868.5 pm 6.0$ $65.8 pm 6.2$
9 $72.7 pm 0.0$ $mathbf{64.4 pm 0.0}$ $90.8 pm 0.0$ $5.3 ext{E+}4 pm 0.0$ $1.1 ext{E+}5 pm 2219.7$ $1304.5 pm 10.1$ $75.8 pm 0.7$
10 $87.7 pm 0.0$ $mathbf{80.1 pm 0.0}$ $100.5 pm 0.0$ $6.3 ext{E+}4 pm 0.0$ $1.6 ext{E+}5 pm 852.8$ $3809.1 pm 10.4$ $83.1 pm 0.7$

Reentrant-2 [Exponential]

Network $cmu$ MW MP FP PPO PPO BC PPO WC
2 $26.01 pm 0.00$ $17.45 pm 0.00$ $2.49 ext{E+}4 pm 0.00$ $mathbf{1.76 pm 0.00}$ $9.04 ext{E+}3 pm 41.13$ $30.62 pm 0.37$ $13.72 pm 0.22$
3 $26.27 pm 0.00$ $26.65 pm 0.00$ $4.00 ext{E+}4 pm 0.00$ $2.12 ext{E+}3 pm 0.00$ $1.82 ext{E+}4 pm 37.23$ $48.59 pm 0.56$ $mathbf{22.09 pm 0.29}$
4 $27.62 pm 0.00$ $34.10 pm 0.00$ $3.99 ext{E+}4 pm 0.00$ $5.54 ext{E+}3 pm 0.00$ $1.77 ext{E+}4 pm 52.30$ $79.20 pm 1.06$ $mathbf{29.90 pm 0.47}$
5 $44.82 pm 0.00$ $40.34 pm 0.00$ $4.99 ext{E+}4 pm 0.00$ $9.72 ext{E+}3 pm 0.00$ $2.58 ext{E+}4 pm 63.54$ $91.65 pm 1.37$ $mathbf{38.01 pm 0.52}$
6 $mathbf{54.48 pm 0.00}$ $46.63 pm 0.00$ $1.00 ext{E+}5 pm 0.00$ $1.65 ext{E+}4 pm 0.00$ $4.02 ext{E+}4 pm 349.64$ $526.57 pm 8.74$ $46.80 pm 0.47$
7 $70.25 pm 0.00$ $77.93 pm 0.00$ $9.98 ext{E+}4 pm 0.00$ $1.39 ext{E+}4 pm 0.00$ $5.78 ext{E+}4 pm 116.92$ $352.02 pm 6.68$ $mathbf{55.51 pm 0.57}$
8 $70.32 pm 0.00$ $72.96 pm 0.00$ $1.00 ext{E+}5 pm 0.00$ $2.73 ext{E+}4 pm 0.00$ $4.79 ext{E+}4 pm 208.70$ $1332.68 pm 7.82$ $mathbf{63.15 pm 0.70}$
9 $mathbf{65.80 pm 0.00}$ $77.34 pm 0.00$ $1.00 ext{E+}5 pm 0.00$ $6.53 ext{E+}4 pm 0.00$ $6.54 ext{E+}4 pm 491.49$ $1574.86 pm 9.34$ $70.30 pm 0.86$
10 $81.35 pm 0.00$ $mathbf{82.00 pm 0.00}$ $1.50 ext{E+}5 pm 0.00$ $9.36 ext{E+}4 pm 0.00$ $8.11 ext{E+}4 pm 355.34$ $1876.54 pm 89.20$ $80.36 pm 0.79$

Reentrant-1 [Hyperexponential]

| L

AI搜集汇总
数据集介绍
main_image_url
构建方式
QGym数据集通过一个开放源代码的排队网络模拟框架构建,该框架旨在为排队网络控制器提供可扩展的模拟和基准测试。该框架允许研究人员在其初始实例基础上构建,提供了包括并行服务器、交叉、串联和再入网络等多种环境,以及一个经过现实校准的医院排队系统。QGym框架通过模块化设计,使得研究人员能够轻松比较多种策略,包括无模型强化学习方法和经典排队策略。
使用方法
QGym数据集的使用方法包括定义新的排队系统或使用现有的基准系统,定义一个策略来接收观察结果并输出排队优先级预测,以及使用选定的策略模拟排队系统轨迹。用户可以通过.yaml文件和.py文件来定义排队系统的各个元素,并通过OpenAI Gym接口轻松部署和测试各种强化学习算法。
背景与挑战
背景概述
QGym数据集由哥伦比亚大学的研究团队开发,旨在解决排队网络控制中的资源分配问题。该数据集的核心研究问题是如何在制造业、通信和医疗等领域中有效管理稀缺资源以应对拥堵。QGym通过提供一个开源的排队模拟框架,使得研究人员能够在现实问题实例中对排队策略进行基准测试。该框架允许研究人员在其初始实例基础上构建,涵盖了并行服务器、交叉、串联和再入网络等多种环境,并包括一个经过现实校准的医院排队系统。QGym的发布时间可追溯至2024年,由Haozhe Chen、Ang Li等研究人员主导,其代码已在GitHub上公开。
当前挑战
QGym数据集面临的挑战主要集中在排队网络控制领域的独特问题上。首先,排队系统在连续时间内运行,具有高度的随机性和长时间的不稳定性(延迟爆炸)。其次,构建过程中遇到的挑战包括如何处理非平稳的工作负载和复杂的网络结构,如半导体制造中的多阶段处理和通信网络中的多服务器类型。此外,现有的强化学习算法在处理这些高随机性和长时间不稳定性的环境中表现出不稳定性和显著的随机噪声。QGym通过提供一个灵活的模拟框架来应对这些挑战,但仍需进一步的方法创新以提升算法的稳定性和效率。
常用场景
经典使用场景
QGym数据集的经典使用场景在于其为排队网络控制算法提供了一个可扩展的仿真和基准测试平台。该数据集特别适用于研究制造、通信和医疗保健等领域中的资源分配和拥堵管理问题。通过QGym,研究人员可以构建和测试各种排队策略,包括无模型强化学习方法和经典的排队策略,从而推动解决排队网络中连续时间操作、高随机性和长时间不稳定性的独特挑战。
解决学术问题
QGym数据集解决了排队网络控制中的多个学术研究问题,特别是在处理连续时间系统、高随机性和长时间不稳定性的挑战方面。它提供了一个模块化的框架,允许研究人员在现实问题实例中基准测试排队策略,从而弥补了传统上基于理想化设置的算法评估与实际应用之间的差距。此外,QGym的开放源代码特性促进了方法论的进步,并为排队网络控制领域的研究提供了新的视角和工具。
实际应用
QGym数据集在实际应用中具有广泛的前景,特别是在需要动态资源分配和拥堵管理的行业中,如半导体制造、通信网络、云计算设施、呼叫中心、医疗保健系统和共享出行平台。通过提供一个灵活的排队仿真框架,QGym使得企业能够测试和优化其资源分配策略,从而提高服务质量和效率,减少处理延迟和平衡工作负载。
数据集最近研究
最新研究方向
在排队网络控制领域,QGym数据集的最新研究方向主要集中在利用强化学习(RL)技术来优化资源分配,以应对制造、通信和医疗等行业中的拥堵问题。传统的排队网络控制方法虽然在理论上有良好的性能保证,但在处理复杂网络和非平稳工作负载时显得力不从心。因此,研究者们正致力于开发基于数据驱动的RL方法,这些方法能够更好地适应现实环境中复杂的排队网络结构和动态变化的工作负载。QGym框架通过提供一个开放的排队模拟平台,使得研究人员能够在一个统一的基准上比较不同的策略,包括传统的排队策略和RL算法,从而推动了这一领域的方法论进步。
相关研究论文
  • 1
    QGym: Scalable Simulation and Benchmarking of Queuing Network Controllers哥伦比亚大学 · 2024年
以上内容由AI搜集并总结生成
用户留言
有没有相关的论文或文献参考?
这个数据集是基于什么背景创建的?
数据集的作者是谁?
能帮我联系到这个数据集的作者吗?
这个数据集如何下载?
点击留言
数据主题
具身智能
数据集  4098个
机构  8个
大模型
数据集  439个
机构  10个
无人机
数据集  37个
机构  6个
指令微调
数据集  36个
机构  6个
蛋白质结构
数据集  50个
机构  8个
空间智能
数据集  21个
机构  5个
5,000+
优质数据集
54 个
任务类型
进入经典数据集
热门数据集

中国食物成分数据库

食物成分数据比较准确而详细地描述农作物、水产类、畜禽肉类等人类赖以生存的基本食物的品质和营养成分含量。它是一个重要的我国公共卫生数据和营养信息资源,是提供人类基本需求和基本社会保障的先决条件;也是一个国家制定相关法规标准、实施有关营养政策、开展食品贸易和进行营养健康教育的基础,兼具学术、经济、社会等多种价值。 本数据集收录了基于2002年食物成分表的1506条食物的31项营养成分(含胆固醇)数据,657条食物的18种氨基酸数据、441条食物的32种脂肪酸数据、130条食物的碘数据、114条食物的大豆异黄酮数据。

国家人口健康科学数据中心 收录

Figshare

Figshare是一个在线数据共享平台,允许研究人员上传和共享各种类型的研究成果,包括数据集、论文、图像、视频等。它旨在促进科学研究的开放性和可重复性。

figshare.com 收录

MOOCs Dataset

该数据集包含了大规模开放在线课程(MOOCs)的相关数据,包括课程信息、用户行为、学习进度等。数据主要用于研究在线教育的行为模式和学习效果。

www.kaggle.com 收录

Breast Cancer Dataset

该项目专注于清理和转换一个乳腺癌数据集,该数据集最初由卢布尔雅那大学医学中心肿瘤研究所获得。目标是通过应用各种数据转换技术(如分类、编码和二值化)来创建一个可以由数据科学团队用于未来分析的精炼数据集。

github 收录

UniMed

UniMed是一个大规模、开源的多模态医学数据集,由穆罕默德·本·扎耶德人工智能大学等机构创建,包含超过530万张图像-文本对,涵盖六种不同的医学成像模态:X射线、CT、MRI、超声、病理和眼底。数据集通过利用大型语言模型(LLMs)将特定模态的分类数据集转换为图像-文本格式,并结合现有的医学图像-文本数据,实现了可扩展的视觉-语言模型(VLM)预训练。UniMed旨在解决医学领域中公开可用的大规模图像-文本数据稀缺的问题,适用于多种医学成像任务,如零样本分类和跨模态泛化。

arXiv 收录