割平面法只能求解纯整数规划吗_离散规划 解法

4ed6097f47bf8ec7b2d70748d2704c50.png

有限离散规划 可列离散规划

枚举法 Hahaha

  • 图搜索枚举
    • 2color
  • 树搜索枚举
    • 深度优先
    • 广度优先
    • 最大最小
    • 蒙特卡洛
    • 分支定界
    • 剪枝

(混合)整数线性规划 MILP

89ca229ff0978c8b081c7df3e921b9cc.png
三维整数规划

MILP 定義 規劃問題中自变量集同時保有整数和實數的那類問題:

其中:

為客觀係數矢量,
為約束係數矩陣,
為約束偏置向量 与线性规划连续的
可行域 (可行解组成的集合) 不同,整数规划的可行域是离散的:

凸包定義

整数规划所有可行解的凸包围, 凸包是未知的.. 已知的是約束不等式 凸包是非常难求解的,或者形成凸包需要指数数量级的线性不等式(图中红线)。如果知道了凸包的所有线性表示,那么整数规划问题就可以等价为求解一个凸包表示的线性规划问题。

題归類

按可行域类型: 整数规划由于可行域是 极度非凸(Highly Nonconvex) 的,因此也可以看作是一类特殊的非凸优化 (Nonconvex Optimization) 问题 (可行域缩小, 反而不好求解了QAQ)

按時間复雜度: 求解整数规划的精确解(全局最优解) 是非多項式难(NP-Hard)問題, 只存在指数级算法复杂度(Exponential Time Solvable), 算法复杂度至少是O(2^n) 线性规划被认为是可以较为高效求解的, 其复杂度是多项式时间的 O(n^k) 每增加一个整数变量, 最坏情况下求解其精确解的运算速度就要增加一倍..,

如: 求解 n = 96 的混合整数规划问题要1min, 則求解 n = 100 的問題可能達到最高的16小时 指数爆炸是也

方法:

  • 行生成法
  • 列生成法
  • 其他 (Col-Row Generation)

行生成法

连环约束, 逐鹿中原

线性规划中一约束形式为一行不等式, 故称行生成法.

导向最优解所需约束数目均远少于原问题所含者: 需要时才把对应的约束加上

如何沿着梯度方向 (与目标函数的等势亚空间垂直的矢量的方向)

行生成法:

  1. 构造(如何: 不加约束, 只几个约束, ..)原问题的松弛问题, 作为 主问题 (Master Problem);
  2. 求解该松弛问题, 得到解;
    1. 若解是可行于原问题, 那么该解就是原问题的最优解
    2. 若解为空(无解, 无界), 或对原问题不可行 (栗: 解是(i42) 因为没有某些约束, 则此时加上失落的约束便可排除不可行解)
  3. 以此循环, 直到松弛问题的解可行, 那么该解也是原问题的最优解。

而通过行生成方法, 可能只需很少的约束条件, 这种搜索约束条件的次序与问题应该存在某些关系, 考虑采用强化学习学到选择约束的策略, 如果这个是与问题相关的确定性策略(固定则是人类史的一个重要结论)

TSP中, subtour elimination 约束数目是指数级的 (TSP 的 Complete Formulation 约束貌似没这么多, 算了..), 故适用于行生成方法.

非凸优化问题如何转化为凸优化问题的方法:

  • 修改目标函数,使之转化为凸函数
  • 抛弃一些约束条件,使新的可行域为凸集并且包含原可行域

697cc710643510df63436bbcb90d0fa0.png
Fig.2: 整数规划与割平面(割线) [视觉停留效应]

谨慎分割 (User Cut, 橙红线@Fig.2)

去掉外围实数解的分割(图中虚线部分), 逐渐得到整数向量集合的最小凸包 一般情况很难直接得到最小凸包, 但是可以割掉部分无用空间, 提升算法搜索效率.

Branch-and-Cut 是一族 User Cut

大致分割 (Lazy Cut, 橙黄线@Fig.2)

去掉那些不需要的整数, (比如图中方向求x-y最大值, 显然用平行x+y的线来割更有意义) 在实际问题中,最优解所需要的约束条件往往远远小于原问题的约束条件个数。例如几万个约束条件,实际只有几百个是用来刻画最优解的。那么这个时候,割平面方法便可以大大提速线性规划的求解。求最小约束集1


平束法 (Cutting Planes Mθd. 割平面法; Gomory Cuts)

世界被切割成数学的收束线

平束法主要用于求解整数(或混合整數)线性规划问题的方法 (平束这一线性约束条件, 是指用于切割原空间的相对原空间的平直亚空间), 可以看作是一种行(线性不等式)生成方法

核心思路: 先不考虑问题的整数性约束上, 求解相应的线性规划问题. 若线性规划问题的最优解恰好是整数解,则此解即为整数规划问题的最优解。若否, 则增加一个新的约束条件, 称为割平面, 其须有两条性质:

  • 从线性规划问题的可行域中至少割掉目前的非整数最优解
  • 不割掉任何整数可行域,然后在缩小的可行域上继续解线性规划问题。重复以上做法,经有限次切割后,必可在缩小的可行域的一个整数极点上达到整数规划问题的最优解4
https://blog.csdn.net/raby_gyl/article/details/52128642​blog.csdn.net
  • cutting-plane oracle 切平面预言器 (找到切平面)
    • Neutral and deep cuts
    • Unconstrained minimized
  • localization algorithms 定位算法
  • specific cutting -plance methods 特定切平面法
  • epigraph cutting-plane method 上镜图切平面法

对于纯整数线性规划问题:

割平面法首先考虑原问题抛却整数约束後的线性规划问题(这里特称为原问题的线性松弛规划 Linear Relaxation Problem, LRP):

因为

的可行域(凸限空间)超过
的可行域(可列点集), 故其最优解所应目标函数
min值有:

平束法每次找到(选取)满足

的解的一行线性约束:
不同的平束法的优劣, 在于线性约束选取的次数

记整数间隙 (additive integrality gap):


由于可行域不断缩减, 所以:

定义积分差距闭合(Integrality Gap Closure)比率 (可通过专业解算器解算评估):

Gomory's Integer Cut:

是不是要在Cut类型上做文章? 能不能得到贴合图的 Cut 类型

比较切割平面方法的典型方法是通过在整个算法中添加的剪切次数:更好的方法是在添加较少数量的切割后终止的方法。然整数规划的算法复杂度关联于:

  • 整数变量的个数n (指数关系)
  • 约束不等式的个数m

平划法 (Branch Mθd. 分支定界法; Strong Branch Rules)

full strong branching

three machine learning branchers:

  • learning-to-score approach
  • ExtraTrees learning-to-rank approach SVMRANK
  • LMART SVMrank[27]andaLambdaMART

分支定界法框架 (Branch and Bound Algorithm, B&B) 分支定界法是解決整数规划問題最核心的精确算法框架. 假设問題目的是求解目标函数最小化, 其核心思想便是把这个NP难的问题分解成求解一个个 LP 问题 (均是P問題), 并且在求解的过程中实时追踪原问题的上界(最优可行解)和下界(最优线性松弛解). B&B 算法中的一个关键步骤是选择一个分數量去分支, 其或显著影响生成的搜索树的大小.因此, 分支规则是流行的組合優化解算器(combinatorial optimization solvers)的核心, 是广泛研究的重点. 分支规则 强分支(Strong Branching): 一種分支策略始终致使生成最小的 B&B 树. 它通过在分支之前计算每個候选变量的预期邊界改进来达到此要求, 但卻需要为每个候选项解决LP×2. (实践中難以接受), 混合分支(Hybrid Branching): 流行的 B&B 解算器所依賴的分支策略, 其僅在求解过程开始时计算强分支分数, 而後逐渐转换为更简单的启发式方法:

  • 冲突分数(conflict score);
  • 伪成本(pseudo-cost);
  • 以上两者的手工結合.

1fe22616f1df8674aae315493b6b53ad.png

舉個栗子: 現在一個目標函數Z取最小, Z有m个k自由度整变量和n個實數變量 n个k自由度整变量, 最坏的情况需要n^kd次分支(子线性规划问题)。。。 我們一開始鬆弛所有變量,通過綫性規劃得到鬆弛的最小下界(鬆弛最優解),并維護一個臨時的全局上界 每次決定展開一個系列分支(增加一個變量的約束條件), 若當前節點解高過上界或者無解則不展開分支 每次展開到葉子節點(加滿約束), 將解與上界比較, 若低於上界, 則更新其為新的上界。 s B&B 收斂性 (Convergence) 在解空間無窮大時,当上界和下界非常接近时,可结束迭代: 上界-下界 < Δ or (上界-下界)/上界 < Δ


空間無限大,還是需要提升搜索效率:

  • 近似算法 (Approximation Algorithms)
  • 启发式算法 (Heuristic Algorithms)
  • 遗传算法 (Generic Algorithm)
  • Evolutionary Algorithms

這些算法不能求得整数规划的最优解,但是却能在短时间(通常多项式时间)内给出一个较好的可行解

割平面方法 (Cutting Planes Method) 增加分支定界效率的一個重要技巧:

7

极端情况, 不知道不需要的整数, 只砍掉中间实数:

实际是垂直于某一坐标轴的二分割:

8de2e4c6fbb9cb424f08cf8297f35b24.png
Branch in MLP

Learn to Cut ..;

CO 中使用 ML 的两个动机。
研究人员假定对 CO 算法的决策有理论和/或经验性知识,但希望通过机器学习来近似其中一些决策来减轻计算负担。
专家的知识并不令人满意,ML 可以通过反复试验来训练模型。
CO 算法所使用的算法决策, 其函数称为 策略(Policy),即,在给定所有可用信息的情况下,

Branch & Cut

B&B + Cut Selection

干货 | 10分钟掌握branch and cut(分支剪界)算法原理附带C++求解TSP问题代码​www.cnblogs.com
一族规划问题中, 搜索复杂度天然地与变量数目
与约束数目
呈正相关.

不同规划问题, 搜索复杂度还与约束函数的形式复杂度相关...
线性规划的复杂度和连续变量呈多项式级关系, 其还与约束数目呈关系 整数规划的复杂度和整数变量的个数 n 近呈指数关系; 其还与约束数目呈一定关系.
整数规划 可以看作于 线性规划 上 增加变量为整数这一复杂形式的规划, 也可以看成 定义域的改变, 找到一个 同等看待的视角正是证明
的关键 -- 王漫超
  • 如何选取初始约束
  • 如何一步步地增加约束(feasibility cut和optimality cut)

Benders分解在整数 (Benders Decomposition, BDec; Benders, J.F.)

使用 子问题 (primal problem) 来寻找合适的约束不断添加到 松弛主问题 (relaxed master problem) 中。子问题可以给上界(UB),松弛主问题可以给下界(LB),不断迭代就可以逐步找到最优解

固定复杂变量(无关痛痒?), 解决简单变量构成的子问题

线性规划是以复杂变量为参数, 利用割平面将线性规划问题作为参变量, 使得

Benders' Decomposition: 把整数和实数变量隔离做分解, 未完待续

BENDERS DECOMPOSITION WITH GAMS​web.stanford.edu

问题模型:

展开:

拆开来写:

主问题:

以及包含求最优函数的次问题 (这里是泛函问题. 注: 解空间无穷的规划问题中,

不可逆):

对偶问题 (尝试给约束增加系数来使得问题明了, 于是问题变为找到合适的系数):

参考:

天津炭栗:数论(二) 对偶与备份​zhuanlan.zhihu.com
f58330fbcfed0966568711ab39a0049d.png

Step:

  1. 求解当前问题的松弛主问题 RMP, 得到y*∈Y, 得到的q*用来更新下界LB。
  2. 将y*代入对偶子问题(DSP)求解. (求解DSP的最优解时介入网络):
  3. 若DSP存在最优解,假设是在极点α'处取得,则用 α'(b-By) + fy' 更新上界UB,并且给主问题MP 添加约束条件 α'(b-By) ≤ q (可以用 RL 做 α', )
  4. 若DSP存在无界最优解,假设是在极线α'处取得,则 给主问题MP 添加约束条件 α'(b-By) ≤ 0 (可以用 RL 做 α')
  5. 直至LB ≥ UB, 否则回到 1
problem,比如10个,然后有个subproblem,用来add constraints on the fly.如此循... Benders应用得很成功的案例,比如multi-commodity network flow problem.


列生成方法

与行生成法对偶?共轭? 增加变量个数

广义 Dantzig-Wolfe 分解法(分解整数变量)

(Benders分解的对偶方法)

常用于有一部分约束条件有明显的”对角线分块“结构
使用子问题(primal problem)来寻找合适的约束不断添加到松弛主问题(relaxed master problem)中。对于最小化问题,子问题可以给下界(LB),松弛主问题可以给上界(UB),不断迭代就可以逐步找到最优解。

两种规划分解​blog.csdn.net

dual problem

Column Generation and Dantzig-Wolfe Decomposition​www.science4all.org
返回(可能具有停滞性)的操作采取。该策略是我们想要使用 ML 学习的功能,我们在下面显示了两个动机如何自然地产生两个学习设置。 在使用 ML 应用roximate 决策的情况下,由于演示,通常通过模仿学习来学习策略,因为预期的行为由专家(也)向 ML 模型显示(演示)称7B为预言器,即使它不一定是最佳的)

ML 与经典方法结合的切入点:

A状态如果信息足以完全描述当时的环境,马尔科夫决策过程设置。 端到端学习: 利用机器学习来解决离散优化问题的第一个想法是训练 ML 模型直接从输入实例输出解决方案

a7fcb8941f5d39185feb06f05296cada.png
Fig.7: Machine learning acts alone to provide a solution to the problem.

OR学习

9d78776e100710ecf359df8dc92ecb6f.png
Fig.8: The machine learning model is used to augment an operation research algorithm with valuable pieces of information.

序贯OR学习

eb9fe7659ecd8d4904ba628a55474f3e.png
The combinatorial optimization algorithm repeatedly queries the same ML model to make decisions. The ML model takes as input the current state of the algorithm, which may include the problem definition.

f

b75c6d1389fc41a91e6ccdf9cf46dbbb.png

强化學習(Reinforcement Learning, RL) 與 B&B 框架 Марков 决策过程 (Markov Decision Process, MDP) 建模 由於 B&B 框架下的求解過程是序貫決策過程, 故可以同化为 MDP

a9ef4041b2ae2ee181303187939464a7.png
Fig.

決策過程的第t時刻, 解算器處於狀態

, 狀態依次包括整個決策樹, 最佳值, 當前節點, 訪問過節點的LP解, 訪問過節點的訪問次數等..., 分支器根據策略
在當前狀態下所有可選的分割變量
中選取一個變量(動作)
,解算器得到動作後:
  1. 扩展了 B&B 树
  2. 解决两个子LRP (进行任何内部启发式)
  3. 选择要拆分的下一个叶节点 (在必要的情况下修剪树)

這樣構成了一個新的狀態

, 如此往復. MDP 中 B&B 是周期制的,其中每个周期都相当于解决一個MILP的实例. 初始状态
对应于在感興趣的群中采样的实例; 最终状态
标记优化过程的结束. 轨迹
的概率為:
实践中, 力圖寻找
最小化运行时间的策略. 同時其他较少依赖硬件的措施也是優化的目標, 如: 快速 查找整数解的上界积分; 快速 收紧 MILP 松弛的负下界积分; 对偶间隙积分(在组合优化领域中常用来度量求解器的质量) 以上度量可以表示为期望的长期收益, 對應適當的回報函数
, 这种情况下的分支等价于控制问题
定义回報函数并不容易: 有时,一个人希望定义一个非常稀疏的奖励,例如当座席解决问题时,1,其余时间为0。由于其底层的动态编程过程,RL 自然能够信任导致未来奖励的州/行动。尽管如此,在代理(随机或通过高级方法)解决问题之前,它无法提供学习机会,因此,上述设置具有挑战性。此外,当策略近似(例如,通过线性函数)时,不保证学习收敛,并可能落入局部最小值。例如,自动驾驶汽车可能决定不在任何地方行驶,因为害怕撞到行人,并收到巨大的负面奖励。这些挑战与上述 exploration 困境密切相关。 至此, 将解算器视为环境, 将分支器视为智能體, 問題可以藉助强化學習RL來解決, 但還存些現實的工程問題, 可采用模仿学习方案来规避.

RUA! [1]Exact Combinatorial Optimization with Graph Convolutional Neural Networks 文章結合了模仿学习和专用图形卷积神经网络模型, 給出了在 MILP 中解决 B&B 變量選擇问题的方法.

  • 采用标准强化学习算法在早期通常非常缓慢: 随机初始化策略执行不佳,導致周期過長;
  • MDP 非常大: 一旦选择了与实例对应的初始状态, 该过程的其余部分就被实例特化.

模仿學習 這裏使用强分支规则通过行为克隆(behaiver cloning)进行训练 (计算成本高, 但会产生小 B&B 树). 記錄下專家策略(狀態-動作對:

), 通過最小化交叉熵
得到最優策略:
狀態編碼 文獻将 B&B 过程 t 時刻的状态
编码为具有
节点和边兩要素的二部图:

9047d28281a4f1b461c49f054908d853.png
Fig.3: bi-Graph for B&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;B state

二部图 (described in Figure 3) 的一边是与 MILP 中的约束相对应的节点, 在当前节点的 LRP 中每行一个, 其特征矩阵为

; 另一边是与milp中的变量相对应的节点,每个lp列一个,其特征矩阵为
; 边 (i, j) ∈ E 连接一个约束节点i和一个变量节点j, 注: B&B 树中的所有 LP 的图结构都是相同的 (降低特征提取成本), 每個圖只是解算器真實狀態的子集, (部分可观察MDP), 但不妨礙求解. We encode the state
sof the B&B process at time tas a bipartite graph with node and edge features:

f7c335564ccfc866d980b31bef4e36fc.png

On one side of the graph are nodes corresponding to the constraints in the MILP, one per row in the current node’s LP relaxation, with C ∈ R[m×c] their feature matrix. On the other side are nodes corresponding to the variables in the MILP, one per LP column, with V ∈ R[n×d] their feature matrix. An edge (i,j) ∈ E connects a constraint node i and a variable node j if the latter is involved in the former, that is if A[i,j]≠0, and E ∈ R^[m×n×e]represents the (sparse) tensor of edge features. Note that under mere restrictions in the B&B solver (namely, by enabling cuts only at the root node), the graph structure is the same for all LPs in the B&B tree, which reduces the cost of feature extraction. The exact features attached to the graph are described in the supplementary materials. We note that this is really only a subset of the solver state, which technically turns the process into a partially-observable Markov decision process [6], but also that excellent variable selection policies such as strong branching are able to do well despite relying only on a subset of the solver state as well. 策略參數化 文獻将变量选择策略

参数化为图卷积神经网络(GCNN; 消息传递神经网络). 图结构数据选择該网络需要滿足一些性質, 對於MILP问题:
  1. 无论输入图的大小如何,它们都是明确定义的;
  2. 它们的计算复杂度直接与图的密度相关,这使得它是处理通常稀疏的理想选择;
  3. 它们是置换不变的,即无论节点的出现顺序如何,它们总是产生相同的输出.

模型以二部圖状态表示作为输入, 并以两个交织半卷积的形式执行单图卷积. 根據输入图的二部结构, 图卷积可以分解为两个连续的过程 -- 变量到约束; 约束到变量:


On learning and branching: a survey​cerc-datascience.polymtl.ca

Strong Branch

Branch​orbi.uliege.be

hh

Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon

参考

  1. ^Exact Combinatorial Optimization with Graph Convolutional Neural Networks
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值