or-gym翻译

摘要

强化学习 (RL) 已广泛应用于游戏,并在许多领域超越了人类的最佳表现,但在工业或商业环境中的用例很少。 我们介绍了 OR-Gym,这是一个开源库,用于开发强化学习算法以解决运筹学问题。
在本文中,我们将强化学习应用于背包、多维装箱、多梯队供应链和多周期资产分配问题,并针对 MILP 和启发式模型对 RL 解决方案进行了基准测试。 这些问题用于物流、金融、工程,并且在许多业务操作设置中很常见。 我们基于文献中的原型模型开发环境,并实施各种优化和启发式模型,以便对 RL 结果进行基准测试。 通过将一系列经典优化问题重新定义为 RL 任务,我们寻求为运筹学社区提供一种新工具,同时也为 RL 社区中的人开放 OR 领域的许多问题和挑战。

引言

强化学习 (RL) 是机器学习的一个分支,旨在做出一系列顺序决策以最大化奖励 [Sutton and Barto, 2018]。 该技术在游戏中受到了广泛关注,其中 RL 方法击败了一些围棋和 DOTA2 等领域世界上最好的人类玩家 [Silver et al. [2017],伯纳等人。 [2019]]。 越来越多的文献将 RL 技术应用于现有的 OR 问题。 库尔等人。 [2019] 使用具有注意力层的 REINFORCE 算法来学习旅行商问题 (TSP)、车辆路线问题 (VRP)、定向运动问题 (OP) 和奖品收集 TSP 变体的策略。 Oroojlooyjadid 等。
[2017] 使用深度 Q 网络 (DQN) 来管理啤酒游戏中的级别并获得接近最佳的结果。 巴拉吉等人。 [2019] 提供了在线装箱、新闻供应商和车辆路线问题的版本以及 RL 基准测试模型。 哈布斯等人。 [2020] 使用 RL 在不确定需求下调度单级化学反应器,其性能优于各种优化模型。 马丁内斯等人。 [2011] 使用表格 Q 学习解决灵活的作业车间调度问题,以优于其他算法。 Li [2017] 概述了 RL 的进展和发展,并回顾了许多不同的应用。
我们寻求为希望探索 RL 应用程序的研究社区提供一个标准化的库,方法是在之前的工作基础上构建并发布 OR-Gym,这是一个依赖熟悉的 OpenAI RL 接口的单一库 [Brockman 等人,2016 年 ],但包含与运筹学社区相关的问题。 为此,我们在 Balaji 等人中纳入了基准。 [2019],同时将库扩展到KP、多期资产配置、多梯队供应链库存管理、虚拟机分配。 RL 问题被表述为马尔可夫决策过程 (MDP),这意味着它们是顺序决策问题,通常本质上是概率性的,并且依赖于系统的当前状态来捕获所有相关信息以确定未来状态。 该框架在优化社区中并未广泛使用,因此在不失一般性的情况下,我们在重新制定许多优化问题以适应 MDP 模型时明确了我们的思考过程。 目前很多 RL 库,例如 OpenAI Gym,有很多有趣的问题,但这些问题与工业使用没有直接关系。
此外,许多这些问题(例如 Atari 套件)缺乏与经典优化问题相同类型的结构,因此主要适用于无模型 RL 技术,即 RL 算法在几乎没有或根本没有动力学先验知识的情况下学习 将经过充分研究的优化问题带到 RL 社区可能会鼓励更多地集成基于模型和无模型的方法,以降低样本复杂性并提供更好的整体性能。 我们的目标是,这项工作鼓励 RL 进一步发展并将其整合到优化和 OR 社区中,同时也让 RL 社区能够解决 OR 社区几十年来一直在努力解决的许多问题和挑战。
可以在 www.github.com/hubbs5/or-gym 上找到库本身以及实现可重复性的示例代码。

背景

该库中包括背包、垃圾箱包装、供应链、旅行推销员、车辆路线、新闻供应商、投资组合优化和旅行推销员问题。 我们使用 Ray 包提供 RL 基准测试,用于选择这些问题,以及启发式和最佳解决方案 [Moritz et al., 2018]。 此外,我们讨论了每个选定问题的环境设计注意事项。 我们提供的每个环境通过 OR-Gym 包可以通过配置字典轻松定制,这些字典可以在初始化时传递给环境。 这使图书馆能够在运筹学和强化学习方面被更广泛的研究社区利用。
所有数学编程模型都使用 Gurobi 8.2 和 Pyomo 5.6.2 在 2.9 GHz Intel i7-7820HQ CPU 上求解,除非另有说明(Gurobi Optimization LLC [2018]、Hart 等人 [2017])

2.1强化学习

强化学习 (RL) 是一种机器学习方法,它由代理在多个时间步长内与环境交互组成,由 t 索引,以最大化代理收到的累积总和或奖励 Rt(参见图 1,Sutton 和 Barto [ 2018])。
代理播放多个情节 - 环境的蒙特卡罗模拟 - 并且在情节内的每个时间步,观察环境的当前状态(St)并根据将状态映射到动作(在 )。 RL 的目标是学习获得高回报的策略。 这些问题被表述为 MDP,因此 RL 可以被视为一种随机优化的方法 [Bellman, 1957]。
深度强化学习使用多层神经网络来拟合具有参数 θ 的策略函数,它将状态映射到动作。 在这里,我们将使用近端策略优化 (PPO) 算法 [Schulman et al., 2016] 进行 RL 比较。 这是一个actor-critic方法,它由两个网络组成,一个在每个时间步产生动作(actor),另一个在每个时间步产生奖励的预测(critic)。
演员学习一个概率策略,该策略在可用动作上产生概率分布。 这种分布是在训练期间采样的,以鼓励对状态空间的充分探索。 评论家学习每个状态的值,评论家的预测值与从环境中收到的实际奖励之间的差异用于损失函数(L(θ))来更新网络的参数。 PPO 通过相对于之前的策略裁剪损失函数(方程 1)来限制网络参数的更新。
gongshi1
其中 rt(θ) 是先前策略 πk−1(θ) 与新策略 πk(θ) 之间的概率比,k 表示自初始化以来对策略参数的更新。 函数 clip 对概率比强制约束 1− ≤ rt(θ) ≤ 1+。 是一个限制策略更新的超参数,使得每次更新时输出的概率变化不超过±。 Aˆ t 表示状态的优势估计,即 t等式 2 中给出的 T 时间步长的折扣预测误差的总和。
gongshi2
其中δt是critic网络在每个时间步长t的预测误差,γ是贴现率。 对损失函数的这种修改显示出比跨多个环境的其他策略梯度方法更稳定的学习 [Schulman et al., 2016]。
我们依赖于 Ray 包中的 PPO 算法的实现 [Moritz et al., 2018]。 所有 RL 解决方案都使用相同的算法和 3 层全连接网络,每层有 128 个隐藏节点,用于演员和评论家网络。 虽然一些超参数调整是不可避免的,但我们试图最大限度地减少我们在这方面的努力,以减少过度拟合我们的结果。

3 背包问题

背包问题 (KP) 是由 Mathews [1896] 首次提出的,该问题的经典阐述可以在 Dantzig [1957] 中找到,其中一个徒步旅行者为徒步旅行打包行李作为激励示例。 KP 是一个组合优化问题,旨在最大化背包中包含的物品的价值,并受到重量限制。
KP 的明显应用包括确定将哪些货物装载到飞机或卡车上进行运输。 其他应用来自金融,我们可以想象一个资金有限的投资者正在寻求建立投资组合,或将该框架应用于零售商的仓库存储 [Ma et al., 2019]。
文献中有几个版本的问题,无界 KP、有界、多项选择、多维、二次和在线版本 [Kellerer et al., 2004]。 这个问题已经得到了很好的研究,并且通常通过动态规划方法或通过数学规划算法(例如分支定界)来解决。
我们提供了三个版本的背包问题,即二元(或 0-1)背包问题 (BinKP)、有界背包问题 (BKP) 和在线背包问题 (OKP)。
前两个是确定性问题,其中从一开始就知道完整的项目、权重和值集。 OKP 是随机的; 每个项目以给定的概率一次出现一个,并且必须被算法接受或拒绝。 Marchetti-Spaccamela 和 Vercellis [1995] 研究了在线版本,他们提出了一种近似算法,使得该算法与最优值之间的预期差异平均为 O(log3/2n)。 Lueker [1995] 后来通过一种算法改进了这个结果,该算法使用在线贪婪算法将差距平均缩小到 O(logn) 以内。

4 虚拟机打包

5供应链库存管理

管理库存水平对于供应链的可持续性至关重要。 库存水平和订单履行服务水平之间存在明确的关系(即您拥有的库存越多,您就越能满足客户的要求)。 然而,高库存水平是有代价的,称为持有成本。 关键是在服务水平和持有成本之间取得平衡。 在本节中,我们提供了多梯队库存管理问题的两种变体,用于优化和训练 RL 代理。
在这些库存管理问题 (IMP) 中,零售商每天都面临着不确定的消费者需求,并且必须以一定成本持有库存以满足该需求。 如果零售商未能满足该需求,它将被标记为积压订单,因此它可能会在以后履行并降低利润 (InvManagement-v0),或者只是简单地记为零利润的销售损失 (InvManagement -v1)。 每天,零售商必须决定从其分销商购买多少库存,分销商将在给定的交货时间内制造产品并将其运送给零售商。 在多梯队情况下,分销商将有一个供应商,该供应商也可能有另一个供应商,依此类推,直到供应链终止于消耗产品所需原材料的原始方,M 步远离零售商。
在分散的供应链中,协调是有效管理供应链的关键。 每个阶段都面临后续阶段所需材料数量的不确定性。 缺乏阶段间协调会导致牛鞭效应 [Lee et al., 1997]。 在 IMP 中,每个阶段都根据自己独特的成本、约束和提前期进行操作。 然后面临的挑战是为供应链中的每个参与者制定再订购政策,以最大限度地降低成本并保持稳定的运营。
这里介绍的 IMP 环境基于 Glasserman 和 Tayur [1995] 的工作。 在这项工作中,使用了一个多梯队系统,每个阶段都有库存保持区和产能充足的生产区。 库存保持区域存储中间产品,这些中间产品在相应的生产区域中转化为其他中间产品或最终产品。 默认配置是在供应链的每个阶段都有库存和生产区域,除了零售商,它只持有最终产品库存,而最上游的供应商几乎可以无限制地访问原材料。
但是,如果需要,可以通过在这些阶段将生产成本设置为较大的值来移除生产区域。
行业中用于提高此类系统性能的标准方法是使用 IPA(无穷小扰动分析)来确定所需库存策略的最佳参数。 尽管公认基础油策略对于多级电容系统可能不是最佳的,但其简单性使其对实际实施具有吸引力。
Bertsimas 和 Thiele [2006]、Chu 等人的其他文献涉及 IMP 的其他方法。 [2015] 和 Mortazavi 等人。 [2015]。 在 Bertsimas 和 Thiele [2006] 的工作中,提出了一种通用优化方法,该方法使用针对有容量和无容量系统的稳健优化技术。 他们的工作包括对订单和库存的产能限制,但不包括对生产的产能限制。 他们的模型显示了以下好处可处理性的术语,并根据是否包含固定成本,作为线性程序 (LP) 或混合整数程序 (MIP) 解决。 楚等人。 [2015] 使用基于代理的建模与切割平面算法相结合,在模拟环境下优化具有 (r, Q) 再订购策略的多梯队供应链。 Monte Carlo 模拟用于确定预期,然后进行假设检验,以在接受改进时处理噪声影响。 莫塔扎维等人。 [2015] 开发了一个由零售商、分销商和制造商组成的四梯队供应链模型。 他们应用 Q-learning 来学习动态策略,以在 12 周的周期内重新订购库存,并从泊松分布中提取非平稳需求。 还有一些库存优化领域的论文。 值得注意的是 Eruguz 等人的那些。 [2016] 和 Simchi-Levi 和赵 [2012]。
IMP 的变体包括单期和多期系统,以及单产品和多产品系统。 当前可用的 IMP 环境(InvManagementv0 和 InvManagement-v1)支持具有固定需求和单个或多个时间段的单一产品系统。 假设产品不易腐烂并且以离散数量出售。 图 4 给出了多梯队系统的描述。第 0 阶段是零售站点,它是将最终产品销售给外部客户的库存位置。 如前所述,阶段1到M-1既有库存区又有生产区,阶段M只有生产区。 对于转换的每一单位存货,获得一单位中间产品或最终产品。 在一个阶段生产的材料被运送到它之后的阶段的库存区域。 在阶段之间的材料生产/转移中可能存在提前期。 每个制造基地的生产能力都是有限的。 每个库存保持区域也具有有限的保持容量。 假设最后一个阶段可以立即获得无限供应的原材料,因此该阶段没有指定有界库存区域。
5.1问题描述
在 IMP 中的每个时间段,都会发生以下事件序列:

  1. 阶段 0 到 M - 1 向各自的供应商下达补货订单。
    补货订单根据各自供应商的可用生产能力和可用库存填写。 阶段之间的提前期包括生产时间和运输时间。
  2. 阶段 0 到 M - 1 接收在相关提前期过后进入产品管道的进货库存补货货物。
  3. 客户需求发生在第 0 阶段(零售商),并根据该阶段的可用库存进行填充。
  4. 在每个阶段发生以下情况之一, (a) 未履行的销售和补货订单被积压,以罚款。 注意:积压销售在以下期间优先。
    (b) 未履行的销售和补货订单会因商誉损失罚款而丢失。
  5. 剩余库存按持有成本在每个阶段持有。
  6. 上一期末剩余的任何库存都将丢失。
    公式7
    六个方程控制着 IMP 的行为。前两个(公式 7a - 7b)分别是每个时期 n 开始时的现有库存 (I) 和管道 (T) 的物料平衡。下一期初各阶段m的现有库存等于当期初始库存加上到货再订货量(R,t-Lm期前放置),减去当期销售额(S)。下一期初各阶段的管道库存等于当期管道库存减去已交付的再订货量(t − Lm 期前放置),再加上当前再订货量。等式 7c 将接受的再订货量 ® 与请求的再订货量 (Rˆ) 联系起来。在阶段m以上的阶段没有生产能力(c)和库存限制的情况下,接受的再订货数量将等于请求的订货数量。但是,当这些限制存在时,它们会对可接受的再订购数量设置一个上限。在阶段 M − 1,可以忽略 I m+1 t 项或将其设为 ∞ 因为假设阶段 M 的原材料库存是无限的

等式 7d 给出了每个时期的销售额 S,它等于阶段 1 到 M 的后续阶段接受的再订购数量,并等于零售商(阶段 0)满足的客户需求。满足的客户需求等于需求加上上一期间的积压,除非零售商的现有库存不足,在这种情况下,所有现有库存均已售出。未满足的需求 U 或未满足的再订购请求由等式 7e 给出。需要注意的是,Rˆ−1 t ≡ Dt + B0 t−1 。利润 P 由公式 7f 给出,该公式使用折扣因子 α 对利润(销售收入减去采购成本、未满足的需求成本和超额库存持有成本)进行贴现。p、r、k 和 h 分别是每个阶段 m 的单位销售价格、单位采购成本、未满足需求的单位惩罚和单位库存持有成本。对于阶段 M,Rm t ≡ S mt 和 rm 代表原材料采购成本。如果不允许积压,则任何未完成的需求或采购订单都将失去销售,并且所有 B 项都设置为 0。

供应链库存管理问题被建模为 MDP,代理必须决定在每个时间步骤从更高级别重新订购多少库存。在每个时间步长 t,在每个阶段 m 采取一个动作 amt ∈ A。该操作对应于供应链中每个阶段的每个再订购数量。这些动作是整数值,并保持 A ≤ C 形式的供应能力和库存约束。

状态由每个级别的现有库存以及每个 max(L) 时间步长的先前操作表示,以便捕获管道中的库存(参见图 5)。

RL 代理寻求最大化供应链的利润,如公式 7f 中给出的奖励函数中所定义。模拟持续 30 个周期(天),随着物料通过供应链进行转移并在零售商处完成订单,从一种状态转换到另一种状态。

5.2 OR方法

基础储量政策已被证明在某些条件下对有能力的生产库存系统是最佳的 [Kapuscinski 和 Tayur,1999 年]。对于多级系统,这些条件是允许积压(不丢失销售),提前期是固定的,并且一个阶段的容量不超过其下级的容量。尽管基础储量策略在其他条件下不一定是最优的,但由于其简单性,它是实践中使用的有效 OR 方法之一。在此策略下,请求的再订购数量由公式 8 给出,其中 zm 是阶段 m 的基本库存水平,总和中的项是期间 t 开始时的当前库存状况。

工公式8

Glasserman 和 Tayur [1995] 提出了一种确定最佳基础油水平的数值方法,称为无穷小扰动分析 (IPA)。IPA 是一种梯度下降方法,可最小化样本路径上的预期成本。IPA 依赖于迭代扰动模拟样本路径,直到获得目标函数的所需改进。

显式计算或估计导数以提供梯度下降所需的更新。为了保证收敛,优化是离线执行的。在基本库存政策的 IPA 实施中,T 期的模拟样本路径以固定的基本库存水平运行。状态变量(库存位置、重新订购数量等)的梯度由等式 7a - 7f 中的递归关系确定。这些用于更新基本库存水平。更新后的级别应用于 T 周期内的相同模拟样本路径(迭代次数 2)。重复该过程,直到基本库存水平稳定或目标函数的变化低于某个容差

公式9

在目前的工作中,我们遵循优化样本路径的想法,但应用更稳健的优化方法。由于 IMP 的目标函数(样本路径上的归一化预期利润,方程 9)对于离散需求分布是不平滑且不可微的,因此基于 Wolfe 条件的线搜索算法 [Nocedal and Wright, 2006] 通常无法在确定经典 IPA 方法的步长时收敛。可以使用基于鲍威尔方法 [Powell, 1964] 的无导数优化 (DFO),而不是在确定步长时采用完整步长或使用临时方法。另一种可用于 IMP 的方法是混合整数规划 (MIP),它可以使用二元变量轻松表达模型方程中的不连续性,并且可以保证在样本路径上找到最佳基础油料水平。

使用 Powell 方法 [Powell, 1964] 的好处是它不依赖于梯度并且可以应用于不可微系统。由于需求分布是离散的,因此鲍威尔的方法要么将基本库存水平四舍五入到最接近的整数,要么执行局部搜索以找到最接近的最佳整数解。在后一种情况下,枚举用于将所有相邻整数解与鲍威尔方法找到的最优解进行比较。使用 Powell 方法的优点是求解速度比 MIP 替代方法(NP 难)要快得多。

在 MIP 方法中,IMP 系统被建模为混合整数线性程序 (MILP),并使用 MIP 求解器来寻找最佳基础油水平。由方程 7c - 7d 中的最小算子和方程 8 中的最大算子产生的析取被使用 Big-M 重构(方程 10a - 10f)重构为代数不等式。

此外,为了确保标准的多梯队条件 zm ≤ z m+1 ∀m ∈ M \ |M|,基础库存水平根据总库存水平 xm ≥ 0 在每个阶段(zm = Pm m0=1 x m0 )。

公式10

IMP 的第三种方法是使用动态重新排序策略,该策略通过在每个时间段内求解具有收缩范围 (SHLP) 的线性规划 (LP) 来确定。这种方法需要事先了解需求概率分布,并假设所有时间段的需求预期值。在模拟中求解当前时间段的优化后,执行为当前时间段找到的最佳重新排序操作。所有未来的重新排序操作都将被丢弃,并在下一个时间段重复该过程。收缩地平线模型没有二元变量作为结果的去除等式8的在不存在目标基地库存水平的,所请求的重新排序R数值米吨变得一样的接受订货数量室吨。因此,方程 7c 可以替换为 Rm t ≤ c m+1 和 Rm t ≤ I m+1 t,方程 7d 的第二部分可以替换为 S 0 t ≤ I 0 t + R0 t − Lm 和S 0 t ≤ Dt + B0 t − 1 。

5.3 结果

运行两个示例来比较库存管理问题中的 OR(DFO、MIP 和 SHLP)和 RL 方法。应该注意的是,DFO 和 MIP 方法使用静态基础油策略,而 SHLP 和 RL 方法使用动态重新排序策略。

这两种方法都与 oracle 模型进行了比较,这是一个 LP 模型,它通过使用每个时间段的实际需求值来确定该运行的最佳动态重新排序策略。InvManagement-v0 是一个 30 期、4 阶段的积压供应链。对平均为 20 的需求使用泊松分布。使用 97% 的货币时间价值贴现因子(3% 贴现)。第二个问题 InvManagement-v1 与 InvManagement-v0 相同,只是它没有积压。表 3 中给出了两种环境中使用的阶段特定参数。

图 6 给出了两种环境 v0 和 v1 的训练曲线,以及 oracle、SHLP 和 MILP 模型的平均值。

对于 InvManagement-v0 环境,RL 模型优于静态策略模型,但优于收缩范围模型,实现了 1.2 的性能比(表 4)。图 7 中给出了每个比较模型的每日奖励,从中可以看出,RL 模型的奖励与预言机和 SHLP 模型密切相关,然后在剧集结束时趋于平稳。该模型这样做是因为它已经接受了 30 天的训练,并且与静态基本库存策略模型不同,它不需要在运行结束时继续订购额外的库存,因为持有成本变得很大并且额外的库存不会在剧集范围内出售,这是值得的。这种行为显示在图 8 中给出的库存图中,其中 RL 库存水平随着事件的进展而降低,这在 oracle 和 SHLP 模型中也观察到,它们也知道有限的范围。

静态策略模型不会表现出这种行为,而是继续以最佳基础库存水平为目标,这会增加持有成本并导致利润受损。然而,在实际应用中,供应链很可能会超过30天内有效,并且库存下降对运行结束时将不利于供应链“的表现超出了30天。RL 模型可以在一个逐月循环的连续环境中进行训练,从相同的概率分布中提取需求,以避免在实际应用中出现这种行为。

InvManagement-v1 中的 RL 模型(无积压订单)的性能比 Oracle 稍差,性能比为 1.3(表 4)。在 InvManagement-v0 中观察到的相同的剧集结束动态也在图 9 中可见。

对于这两种环境变化,RL 模型优于静态策略模型,性能比在 1.2-1.3 之间。这显示了 RL 学习多阶段库存管理问题的竞争性动态策略的潜力。

6 资产配置

7 结论

我们已经开发了包括经典操作的强化学习环境,研究和优化问题库。RL传统上依赖于环境中被配制成马尔可夫决策过程(MPDS)。这些是连续决策过程其中在一个状态的决定或影响作用过渡到后续状态。在许多优化问题,顺序决定需要做出RL简单适用的问题。硬约束可以在RL剂经由动作掩蔽,从而与选择的动作,这将导致违反约束相关联的概率被设置为0以确保不选择这些动作的罚款。使用行动掩蔽减少了搜索空间,既可以提高学习的政策,减少模型所需的培训时间。此外,我们四个问题类显示了RL,启发式和优化模型的结果提供基准。在所有情况下,RL是能够学习一个称职的政策。RL优于许多更复杂和困难的环境中的不确定性起到了显著作用的标杆,并能够以类似,工业应用提供价值。RL并没有离线背包问题跑赢启发式模型。这没有什么好考虑到背包,该背包问题已经充分研究了几十年,无数启发式已发展到解决问题和提高国家的最先进的解决方案完全是个意外。在这样的情况下,额外的复杂性和RL的计算成本可能不值得,但是请注意,在离线背包问题制定,不确定因素也没有发挥作用。RL为解决上述各种问题的总框架。每个系统使用三个层,并且每个和次要超参数调谐为一个标准库中的学习率和熵损失128个节点的相同的算法来解决。随着新的工具,如雷,RL成为解决地方最优化模型不存在,或者是开发和在线计算太贵了不确定性条件下的经典优化问题,以及工业当量越来越接近。它可能会提取来自RL的政策规则制定每个问题的更好解决方案的启发式。此外,考虑到这些问题,并指出它们存在的最优化模型的事实结构,它是充满了混合RL和数学规划方法的探索可与从数学规划,以提高结果的解决方案和RL的速度和灵活性结合起来时间的解决方案。另一个有趣的途径去追求是利用图形神经网络和RL,这或许能够从这些模型的结构中受益。最后,OR-健身房库包含从文献中experimentation.1额外的环境

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值