有效集法(Active Set Method, ASM)是一種用於求解二次規劃(Quadratic Programming, QP)問題的算法。它是單純形法(Simplex Method)的升級版,後者是由「線性規劃之父」George Dantzig提出的。這兩種算法的核心思想都是通過疊代點沿著約束邊界前進,直到達到問題的最優點。
在有效集法中,有效集是指那些在最優點處起作用的不等式約束所組成的集合。算法從初始點開始,通過解決一系列子問題來尋找最優解。在每個疊代步驟中,算法計算一個方向向量p,該向量指向目標函式值減小的方向,同時確保所有非有效約束仍然得到滿足。如果計算得到的p為0,則檢查是否滿足KKT(Karush-Kuhn-Tucker)條件。如果滿足,則當前點是最優點;如果不滿足,則選擇違反KKT條件最嚴重的約束進行刪除或修改,然後重新計算方向向量。
有效集法的一個重要特點是,它通常需要解決一系列子問題,這些子問題的規模可能隨著問題的複雜度而變化。因此,算法的效率和效果取決於初始點的選擇、有效集的更新策略以及如何處理非有效約束。
有效集法的一個主要優勢是它能夠處理具有大量不等式約束的問題。然而,它的缺點包括可能需要在每個疊代步驟中解決複雜的二次方程,以及在處理大量約束時可能會變得計算密集。此外,算法的性能對初始點的選擇非常敏感。
總的來說,有效集法是一種強大的算法,適用於求解二次規劃問題。它通過明確地處理和更新有效集來工作,能夠在有限步驟內找到最優解。然而,它的套用和性能受到多種因素的影響,包括問題的具體性質和初始點的選擇。