割平面法只能求解纯整数规划吗_离散规划 解法
有限離散規劃 可列離散規劃
枚舉法 Hahaha
- 圖搜索枚舉
- 2color
- 樹搜索枚舉
- 深度優先
- 廣度優先
- 最大最小
- 蒙特卡洛
- 分支定界
- 剪枝
(混合)整數線性規劃 MILP
三維整數規劃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)
行生成法
連環約束, 逐鹿中原因線性規劃中一約束形式為一行不等式, 故稱行生成法.
導向最優解所需約束數目均遠少于原問題所含者: 需要時才把對應的約束加上
如何沿著梯度方向 (與目標函數的等勢亞空間垂直的矢量的方向)
行生成法:
而通過行生成方法, 可能只需很少的約束條件, 這種搜索約束條件的次序與問題應該存在某些關系, 考慮采用強化學習學到選擇約束的策略, 如果這個是與問題相關的確定性策略(固定則是人類史的一個重要結論)
TSP中, subtour elimination 約束數目是指數級的 (TSP 的 Complete Formulation 約束貌似沒這么多, 算了..), 故適用于行生成方法.
非凸優化問題如何轉化為凸優化問題的方法:
- 修改目標函數,使之轉化為凸函數
- 拋棄一些約束條件,使新的可行域為凸集并且包含原可行域
謹慎分割 (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
- 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 解算器所依賴的分支策略, 其僅在求解過程開始時計算強分支分數, 而後逐漸轉換為更簡單的啟發式方法:
- 沖突分數(con?ict score);
- 偽成本(pseudo-cost);
- 以上兩者的手工結合.
舉個栗子: 現在一個目標函數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極端情況, 不知道不需要的整數, 只砍掉中間實數:
實際是垂直于某一坐標軸的二分割:
Branch in MLPLearn 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.comStep:
列生成方法
與行生成法對偶?共軛? 增加變量個數
廣義 Dantzig-Wolfe 分解法(分解整數變量)
(Benders分解的對偶方法)
常用于有一部分約束條件有明顯的”對角線分塊“結構
使用子問題(primal problem)來尋找合適的約束不斷添加到松弛主問題(relaxed master problem)中。對于最小化問題,子問題可以給下界(LB),松弛主問題可以給上界(UB),不斷迭代就可以逐步找到最優解。
dual problem
Column Generation and Dantzig-Wolfe Decomposition?www.science4all.org返回(可能具有停滯性)的操作采取。該策略是我們想要使用 ML 學習的功能,我們在下面顯示了兩個動機如何自然地產生兩個學習設置。 在使用 ML 應用roximate 決策的情況下,由于演示,通常通過模仿學習來學習策略,因為預期的行為由專家(也)向 ML 模型顯示(演示)稱7B為預言器,即使它不一定是最佳的)
ML 與經典方法結合的切入點:
A狀態如果信息足以完全描述當時的環境,馬爾科夫決策過程設置。 端到端學習: 利用機器學習來解決離散優化問題的第一個想法是訓練 ML 模型直接從輸入實例輸出解決方案
Fig.7: Machine learning acts alone to provide a solution to the problem.OR學習
Fig.8: The machine learning model is used to augment an operation research algorithm with valuable pieces of information.序貫OR學習
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 de?nition.f
強化學習(Reinforcement Learning, RL) 與 B&B 框架 Марков 決策過程 (Markov Decision Process, MDP) 建模 由於 B&B 框架下的求解過程是序貫決策過程, 故可以同化為 MDP
Fig.決策過程的第t時刻, 解算器處於狀態
, 狀態依次包括整個決策樹, 最佳值, 當前節點, 訪問過節點的LP解, 訪問過節點的訪問次數等..., 分支器根據策略 在當前狀態下所有可選的分割變量 中選取一個變量(動作) ,解算器得到動作後:這樣構成了一個新的狀態
, 如此往復. 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 時刻的狀態 編碼為具有節點和邊兩要素的二部圖: 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;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: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問題:模型以二部圖狀態表示作為輸入, 并以兩個交織半卷積的形式執行單圖卷積. 根據輸入圖的二部結構, 圖卷積可以分解為兩個連續的過程 -- 變量到約束; 約束到變量:
On learning and branching: a survey?cerc-datascience.polymtl.ca
Strong Branch
Branch?orbi.uliege.behh
Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon
參考
總結
以上是生活随笔為你收集整理的割平面法只能求解纯整数规划吗_离散规划 解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32呼吸灯程序_学习STM32从点
- 下一篇: 开了gomod不识别gopath_笔记本