RL+CO survey :Reinforcement Learning for Combinatorial Optimization: A Survey

N. Mazyavkina, S. Sviridov, S. Ivanov, and E. Burnaev, ‘Reinforcement Learning for Combinatorial Optimization: A Survey’. arXiv, Dec. 24, 2020. Accessed: Jul. 19, 2023. [Online]. Available: http://arxiv.org/abs/2003.03600

目录

首先,什么叫做 CO问题?

为什么使用 RL来解决组合优化(CO)问题?

如何使用RL来解决 CO问题,其通用的基本思想?


这篇paper主要讲的是将RL应用于解决组合优化问题(combinatorial optimization,CO)的一些基本思想和对于几个 经典问题的RL解决算法的进展。此篇Blog旨在总结前半部分的思想,对于后文经典问题进展部分暂时忽略。

首先,什么叫做 CO问题?

简单数学解释,对于一个函数f有一个可行域V,要找到一组V里的元素 让函数值f达到最优。注意V是一个有限的集合。 说人话:就是求一个问题的最优解时,它的决策变量是 离散的,一般是整数 integer或者 二元变量(binary variable),对于混合整数规划,即决策中既有连续变量也有离散变量,也算是 CO问题。

为什么使用 RL来解决组合优化(CO)问题?

一般CO问题都是NP-hard的,因而在时间多项式之内找不到最优解。传统方法一般是设计一些启发式算法去找CO问题的次优解,然而这需要人工去设计启发式算法,而且还会涉及到很多参数设计之类的,RL提出了一种很好的替代方法,通过以监督或自监督的方式训练智能体来自动化启发式的搜索过程。

注:私以为RL算法解决CO的优势在于RL训练的是一个策略而非一个solution,对于原问题的扰动性更不敏感,即即使原问题的一小部分数据发生了微小变动,RL仍然可以找到一个相对不错的解,而启发式一般必须 从头开始重新计算。

如何使用RL来解决 CO问题,其通用的基本思想?

用RL解决CO问题的通用流程:

1.将CO问题建模为MDP问题,即需要定义问题的 state, action, reward.


 state: CO问题的状态空间通常以两种方式之一来定义。其中一组方法增量地构造解,将其定义为问题(例如, TSP问题的部分构造方法)的部分解的集合。另一组方法从一个问题的次优解开始,对其进行迭代改进(例如, TSP的次优巡游) 。

action:动作表示添加部分或更改完整解(例如,改变TSP中节点的游览顺序) 

reward:回报表示在特定状态下选择的动作如何改善或恶化问题(即TSP的一个游程长度)的解。

transition function:在组合优化中,转移动态通常是确定性的,并且是事先已知的。


2.需要定义states 的encoder。即一个参数函数,该函数对输入状态进行编码并输出一个数值向量(每个动作的Q值或概率)。

state 是表示关于问题的一些信息,如给定的图或TSP的当前行程,而Q值或动作是数字。因此,强化学习算法必须包含一个编码器,即一个将一个状态编码为一个数的函数。许多编码器被提出用于CO问题,包括循环神经网络RNN、图神经网络GNN、基于注意力的网络(attention-based networks)和多层感知器(multi-layer perceptrons)。

3.让agents学习encoder的参数并且为MDP做决策。

4.在智能体选择了一个action之后,环境移动到一个新的state,agent收到它所做的动作的reward。

paper讲述了这几个经典问题的RL应用进展 Travelling Salesman Problem (TSP), Maximum Cut (Max-Cut) problem, Maximum Independent Set (MIS), Minimum Vertex Cover (MVC), Bin Packing Problem (BPP),有兴趣者可阅读原文。

猜你喜欢

转载自blog.csdn.net/qq_38480311/article/details/131822858