zoukankan      html  css  js  c++  java
  • 柴夥說算法(3)--交替迭代

    變化越少,解決越易。

                                --題記

            多變量問題(比如方程組求解,或者優化目標函數,這裏不妨假設有個變量)是經常涉及到的一類問題,相較於單變量的優化問題,顯然這類問題更難以求解。交替迭代方法的基本思想是將多變量問題轉化爲單變量問題的求解,即,在一步計算時,保持其他的變量固定不變,只求解一個變量的問題,下一步時,再固定個變量,並尋找另一個變量求解,如此進行下去,直到得到問題的解。

           這裏面有一個關鍵的理論問題需要說明。交替迭代的數值結果,一定收斂到問題的精確解嗎?有沒有什麼判別條件能夠保證這種收斂?更進一步地,有沒有可能迭代求解次的結果就是問題的精確解呢?

           限於知識的廣度,這裏只舉兩個算法進行說明。第一個算法是求解線性方程組的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,強烈推薦

  • 相关阅读:
    [GDKOI2010] 圈地计划(网络流)
    jzoj3454 表白(love)解题报告(01分数规划+DP)
    数论之卢卡斯定理
    POJ1180 Batch Scheduling 解题报告(斜率优化)
    BZOJ 球形空间产生器 解题报告(高斯消元)
    你是怎么封装一个view的
    沙盒目录结构是怎样的?各自用于那些场景?
    这个写法会出什么问题: @property (copy) NSMutableArray *array;
    怎么用 copy 关键字?
    @property后面可以有哪些修饰符?
  • 原文地址:https://www.cnblogs.com/liuyc/p/9216346.html
Copyright © 2011-2022 走看看