强化学习能否解决NP-Hard问题?

1,380 阅读15分钟

一个算法要被称为 "高效",它的执行时间必须受到输入大小的多项式函数的限制。人们很早就意识到,并不是所有的问题都可以这样快速处理,但很难确定哪些问题可以,哪些问题不可以。一些所谓的NP-hard问题被认为是不可能在多项式时间内回答的。NP-hard是指非决定性的多项式时间的硬度。本文将重点了解一些NP-hard问题,并尝试用强化学习来解决它们。以下是将要涉及的主题。

目录

  1. 理解NP问题
  2. 什么时候一个问题被归类为NP-hard?
  3. 解决NP-hard问题的强化学习

一个决策问题有一个单一的布尔输出。让我们进一步了解决策问题何时成为非决定性的。

了解NP问题

一般来说,那些可以在多项式时间下解决的决策问题集被归类为 "P"。可以在多项式时间内证明和验证问题的答案是 "是 "的决策问题被归类为NP。NP被直观地定义为可以证明 "是 "的决策问题的集合。

例如,电路可满足性问题就属于NP。如果一个给定的布尔电路是可满足的,那么产生True输出的m个输入值的每一个组合都证明了该电路是可满足的;该证明可以通过在多项式时间内评估该电路来检查。人们通常认为电路的可满足性不在P或co-NP中,尽管没有人肯定地知道。

如果问题的多项式时间算法意味着NP中每个问题都有多项式时间算法,那么这个问题就是NP难的。直观地说,如果一个特定的NP-hard问题可以被快速解决,那么任何具有易懂答案的问题都可以用那一个特殊问题的解决方案作为子程序来解决。NP-hard问题的难度至少与NP中的任何其他问题一样。

最后,如果一个问题既是NP-难的,又包含NP的一个元素,那么这个问题就被称为NP-完全的。非正式地讲,NP-完全问题是NP中最困难的问题。一个只针对一个NP-complete问题的多项式时间算法意味着一个针对所有NP-complete问题的多项式时间算法。

印度分析杂志

你是否在寻找一个完整的数据科学中使用的Python库。 在此查看.

当一个问题被归类为NP-hard时

一个还原论证可以用来证明任何问题都是NP-hard的。将问题A还原为另一个问题B,需要解释解决问题A的算法,同时假设解决问题B的算法已经存在。

为了证明你的问题是困难的,必须给出解决一个已经知道是困难的不同问题的有效方法,利用一个假想的有效程序,把问题当作一个黑箱子程序。矛盾的证明是核心逻辑。

这种还原表明,如果第一个问题很容易,那么第二个问题也会很容易,但事实并非如此。另外,由于前一个问题已知是困难的,还原法意味着当前的问题也同样是困难的;假设的有效方法并不存在。

例如,给定一个有限的整数集,需要找到其中任何非空的子集加起来为零。为了证明这个问题是一个NP-hard的问题,需要使用3CNF SAT。

  • 共轭正常形式(CNF)布尔公式是指那些表示为连词(AND)的句子,其中每个句子是一个或多个字词的解结(OR)。如果每个句子正好有三个不同的字词,那么布尔公式就是3-conjunctive normal form(3CNF SAT)。

还原方法建立了实例集和目标,给定了一个变量上的3CNF公式,每个分句恰好有三个不同的字面。要确定这个问题是NP-hard,必须有两个假设:第一,没有一个句子同时包含变量和它的否定,第二,每个变量至少出现在一个子句中。这将被视为一个NP-hard任务。

解决NP-hard问题的强化学习

强化学习者被教导一系列的决定。在一个不确定的、可能是复杂的环境中,代理人学习达到一个目标。该方法使用试验和错误来找到问题的解决方案。它的目标是使整体收益最大化。

奖励政策,也就是训练规则,是指定的,模型没有得到如何处理问题的线索或想法。由模型来选择如何完成工作以获得最大的回报,从完全随机的试验开始,到复杂的战术。

让我们举几个NP难题的例子,了解用强化学习来解决它们。

有容量的车辆路由问题

车辆路由问题是一个组合优化问题,其目的是为车队找到最具成本效益的路线,以服务给定的客户。尽管它很简单,但VRP属于NP-hard问题系列,其特点是随着问题规模的扩大,寻找解决方案的难度呈指数增长。

举几个VRP的例子,考虑一下电子商务巨头亚马逊,它每年运送25亿个包裹,同时不断尝试优化过程中的每一步,包括确定他们的司机应该采取的最佳路线,以尽可能低的成本准时运送包裹。Uber的问题是VRP的一个变种,公司希望为司机分配最佳路线来接送客户。

CVRP的目的是用一个同质的车队来满足每个客户的需求,所有的车辆都从一个被称为仓库的特定节点出发,并有一个确定的运载量。一辆货车将逐一拜访每个客户,完成他们的订单,并在整车货物交付后返回车厂。两个节点之间的旅行成本仅仅是它们之间的欧几里得距离。

印度分析杂志

库房由方形节点表示,客户由圆圈节点表示,网络是完全链接的,没有方向性。虚线表示建议方案中没有选择的路径。两个节点之间的欧几里得距离是与每条边相关的成本。突出显示的路径反映了一个可行的解决方案,因为所有五个客户都被访问过,而且两次旅行中每次完成的总金额小于或等于配送车辆的容量Q。

CVRP可以被看作是一个顺序决策问题,在这个问题上,车辆必须在每个时间步长中选择下一个目的地,以完成为所有客户提供服务的任务。从这个角度看,可以表示出RL问题的组成部分。状态、行动和奖赏空间 图中每个客户的节点都与他们当前的需求以及他们的位置有关。当车辆访问一个节点时,不管是为了满足客户的需求还是为了补充仓库里的卡车,图都可以被更新以代表系统的当前状况。

库房的位置是至关重要的,特别是当卡车快空了,需要返回库房补货时。根据仍在卡车上的物品数量,选择一个离仓库较近的节点可能是有利的,因为卡车很快就需要到达那里。因此,车辆中目前的负载也必须反映在状态空间中。每个节点的位置和卡车的当前位置是提供给学习代理的关键信息,以便它能掌握从一个节点到另一个节点的旅行成本。

最后,每个客户的当前需求有助于确定哪些节点还没有被访问,是卡车下一个目的地的候选者。更多的信息,如行驶的距离或先前的位置,可以添加到状态空间。可能帮助政策的神经网络做出最佳选择的信息越多越好。然而,有一个权衡需要考虑:如果有太多的信息,"维度诅咒"将是一个问题,而且训练很可能会花费太长时间。

行动空间是一个有限的行动集合,决定了车辆下一步访问哪个节点。原则上,该策略可以在任何时间段选择任何节点。然而,在有足够的负载为至少一个以上的客户提供服务的情况下,返回同一节点或前往车场是非常低效的。这两种策略将被用来引导决策过程。

  • 当卡车目前的装载量不足以满足客户需求时,在行动选择过程中,相关节点会被屏蔽掉,以确保这些节点不会被选中。
  • 当客户节点的需求得到满足时,它就会被屏蔽掉,直到运行结束。

这种新的逻辑有助于RL算法的探索阶段,并适用于所有CVRP实例。该问题的奖励信号与MIxed整数编程(MIP)的表述相当:目的是确定卡车行驶的最便宜路线,RL的目的是使累积奖励最大化,因此我们使用总行驶距离的逆值。

RL算法受制于各种问题设置,有一组固定的节点,每次都在不同的地方。将学习代理暴露在大量的情况下,可以使学到的政策具有普遍性,并防止对单一CVRP实例的过度拟合。运行开始时,所有客户的需求都没有得到满足,卡车在仓库里;然后代理通过访问节点与环境互动,直到所有客户的需求都得到满足。只有在每一集结束后,才会对所选择的路线进行评估,从而得出本次运行的奖项。

因为掩蔽方法只允许挑选特定的节点,所以保证了训练过的策略的解决方案是实用的。然而,不能保证提出的解决方案是最优的;算法学会了减少旅行的距离,但不知道可能达到的最小值;因此,算法的探索阶段可能朝着理想的解决方案前进,也可能被困在一个局部最小值。因此,RL技术只能被归类为启发式方法。

图形挖掘

异质信息网络(HINs)可以用来模拟现实世界数据中的复杂互动关系,如社会网络、生物网络和知识图谱。HINs通常与众多类型的对象/节点和元关系相连。

图片来源

以之前说明的异质学术网络为例,它有四类节点:论文、作者、机构和出版场所,以及这些节点之间的八种元关系。

由于HINs的复杂语义和非欧几里得性质,传统的机器学习技术很难为其建模。通过连续的探索和利用,深度强化学习代理可以根据给定的目标,为每个节点自适应地创建最佳的元路径。这对具有复杂语义的HINs来说是很有吸引力的,也是可行的。

一个MDP的主要组成部分是一个状态的集合,一组行动,一个决策策略和一个奖励函数。用最大的时间步数构建一个元路径,该路径可以被描述为一个循环的决策过程,可以被自然地视为一个MDP。初始节点的特征为状态,选择一个关系是扩展元路径的第一步。按照扩展后的元路径,建立适当的元路径实例,供算法学习节点表征,用于下游的预测任务,获得奖励分数。元路径设计方法的正式表述如下。

状态空间被用来帮助决策策略确定在扩展元路径时应用哪种关系。在现有的元路径中记录所有相关信息是至关重要的。因此,状态被配置为记住参与元路径的所有节点。

一个状态的行动空间由HIN中可访问的关系类型集以及独特的行动STOP组成。从初始节点开始,决策策略预测最有希望扩展当前元路径的关系,以反复获得更高的奖励分数。它可能会接近最大的时间步长,或者发现一个节点表示,元路径中任何更多的关系都会损害下游工作的节点演示的性能,在这种情况下,决策策略选择行动STOP来完成路径设计过程。

一个MDP的决策策略寻求将状态空间中的状态映射到行动空间中的行动。元路线设计过程中的状态空间和行动空间分别是连续空间和离散空间。为了估计行动-价值函数,我们利用了一个深度神经网络。此外,由于每个随机行动总是一个正整数,因此采用了DQN Q网络作为决策策略网络。作为Q网络的深度神经网络,使用了MLP。输出表示通过选择行动空间中的其他关系来扩展元路径的可能性。

奖励是指导RL代理的一个重要方面,鼓励它达到更大和更稳定的性能。因此,奖励被定义为相对于以前的表现,在某一任务上的表现的改善。目标工作是节点分类,评价性能是基于它在验证集上的准确性。

根据上面的描述,建议的节点在时间段的元路由设计过程包含三个阶段。

  • 获取时间段的状态
  • 根据当前状态预测一个行动,以扩展元路径
  • 更新当前状态

采用反向传播和梯度下降法,通过最小化损失函数来改进Q网络参数。

旅行推销员问题

旅行推销员问题(TSP)是一个算法问题,其目标是发现必须访问的点和地方集合之间的最短路径。推销员可以访问的城市由问题陈述中的点来表示。推销员的目标是使旅行支出和旅行距离最小化。

TSP RL解决方案有一个编码器-解码器设计。第一个要访问的城市是随机选择的,因为旅行应该对初始城市没有影响。因此,求解器的决策开始于一个大于2的时间步长。在翻译中,可以通过评估最近访问的城市的相对位置而不是原来的绝对坐标来进一步利用不变性。RL解算器的输入只包括两个比特的信息。

  • 现在的部分旅游信息只需要第一次访问的城市的相对预处理位置。因为最近访问过的城市总是由原点代表,所以它可以被省略。
  • 剩下的TSP实例信息与未访问过的城市的相对预处理位置以及第一个和最后一个访问过的城市有关。

相对预处理的位置被保存在一个矩阵中,其中包括最近访问的城市。因为它代表了剩余图形节点的标签,在这些节点上应该完成游览。

该模型的编码器由图形神经网络(GNN)和多层感知器(MLP)组成,前者计算相对城市位置的嵌入,后者计算首次访问城市的嵌入。GNN封装了描述其余TSP问题的图形信息。作为一个GNN,它对其输入的顺序是不变的,而其输出则取决于图的结构和信息(即城市位置)。

MLP对所访问城市的信息进行编码。由于第一个和最后一个城市(不包括)之间的访问城市的独立性。对于编码所访问城市的位置,该模型不需要任何复杂的架构,如LSTM。因为只需要第一个城市的相对位置,一个基本的MLP就足够了。

在计算完嵌入后,选择下一个城市访问的概率是用传统的注意力机制来计算的,相对位置和第一个城市分别作为钥匙和查询。解码器产生一个可训练的权重向量。然后,该向量使用softmax变换被转化为概率分布。

结论

强化学习需要一个训练阶段,在这个阶段中,算法在接触到各种配置后会学习到最佳行动方案。由于其简单性,只需定义问题的规则,而算法则通过试错来学习如何解决问题。通过这篇文章,我们已经了解了NP-hard问题以及通过强化学习解决这些问题。

参考文献