變化越少,解決越易。
--題記
多變量問題(比如方程組求解,或者優化目標函數,這裏不妨假設有個變量)是經常涉及到的一類問題,相較於單變量的優化問題,顯然這類問題更難以求解。交替迭代方法的基本思想是將多變量問題轉化爲單變量問題的求解,即,在一步計算時,保持其他的變量固定不變,只求解一個變量的問題,下一步時,再固定個變量,並尋找另一個變量求解,如此進行下去,直到得到問題的解。
這裏面有一個關鍵的理論問題需要說明。交替迭代的數值結果,一定收斂到問題的精確解嗎?有沒有什麼判別條件能夠保證這種收斂?更進一步地,有沒有可能迭代求解次的結果就是問題的精確解呢?
限於知識的廣度,這裏只舉兩個算法進行說明。第一個算法是求解線性方程組的Jacobi迭代法和Guass-Siedel迭代法,只要線性方程組的係數矩陣滿足一定的條件,可以在理論上證明,這兩種迭代法是收斂的;第二個算法是機器統計學習中的前向分步算法,它能夠將多個變量的優化問題簡化爲逐次求解各個變量的優化問題,儘管要求解的目標函數有限制,但是這樣的算法還是讓人眼前一亮的。另外,值得一提的是,交替迭代法是優化問題中常見的有效算法之一,比如ADMM算法。
至於說交替迭代失敗的例子,典型的如分叉現象。比如2分叉現象,它將形成一個兩個數交替出現的數列,而不是收斂到某一個點;更複雜的情形,就是大名鼎鼎的混沌問題了,它也是目前最熱門的數學難題之一。
參考資料:
[1] Gauss-Siedel Method
https://en.wikipedia.org/wiki/Gauss%E2%80%93Seidel_method
[2] 統計學習方法,李航著,清華大學出版社,2012:143-146
[3] matlab作出分叉與混沌分支圖
https://blog.csdn.net/cantjie/article/details/72836172
[4] Alternating direction method ofmultipliers(ADMM)
http://stanford.edu/~boyd/admm.html
數學大家的Homepage,強烈推薦