1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        五大常用算法:貪心算法

        共 2013字,需瀏覽 5分鐘

         ·

        2021-05-20 17:55

        點擊上方小白學視覺”,選擇加"星標"或“置頂

        重磅干貨,第一時間送達

        本文轉(zhuǎn)自|視覺算法


        一、基本概念:


        所謂貪心算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解。


        貪心算法沒有固定的算法框架,算法設(shè)計的關(guān)鍵是貪心策略的選擇。必須注意的是,貪心算法不是對所有問題都能得到整體最優(yōu)解,選擇的貪心策略必須具備無后效性,即某個狀態(tài)以后的過程不會影響以前的狀態(tài),只與當前狀態(tài)有關(guān)。


        所以對所采用的貪心策略一定要仔細分析其是否滿足無后效性。


        二、貪心算法的基本思路:


        1.建立數(shù)學模型來描述問題。


        2.把求解的問題分成若干個子問題。


        3.對每一子問題求解,得到子問題的局部最優(yōu)解。


        4.把子問題的解局部最優(yōu)解合成原來解問題的一個解。


        三、貪心算法適用的問題


        貪心策略適用的前提是:局部最優(yōu)策略能導致產(chǎn)生全局最優(yōu)解。


        實際上,貪心算法適用的情況很少。一般,對一個問題分析是否適用于貪心算法,可以先選擇該問題下的幾個實際數(shù)據(jù)進行分析,就可做出判斷。


        四、貪心算法的實現(xiàn)框架


        從問題的某一初始解出發(fā);


        while (能朝給定總目標前進一步)
        {
        利用可行的決策,求出可行解的一個解元素;
        }


        由所有解元素組合成問題的一個可行解;


        五、貪心策略的選擇


        因為用貪心算法只能通過解局部最優(yōu)解的策略來達到全局最優(yōu)解,因此,一定要注意判斷問題是否適合采用貪心算法策略,找到的解是否一定是問題的最優(yōu)解。


        六、例題分析


        下面是一個可以試用貪心算法解的題目,貪心解的確不錯,可惜不是最優(yōu)解。


        [背包問題]有一個背包,背包容量是M=150。有7個物品,物品可以分割成任意大小。


        要求盡可能讓裝入背包中的物品總價值最大,但不能超過總?cè)萘俊?/span>


        物品 A B C D E F G
        重量 35 30 60 50 40 10 25
        價值 10 40 30 50 35 40 30


        分析:


        目標函數(shù):∑pi最大


        約束條件是裝入的物品總重量不超過背包容量:∑wi<=M( M=150)


        (1)根據(jù)貪心的策略,每次挑選價值最大的物品裝入背包,得到的結(jié)果是否最優(yōu)?


        (2)每次挑選所占重量最小的物品裝入是否能得到最優(yōu)解?


        (3)每次選取單位重量價值最大的物品,成為解本題的策略。


        值得注意的是,貪心算法并不是完全不可以使用,貪心策略一旦經(jīng)過證明成立后,它就是一種高效的算法。


        貪心算法還是很常見的算法之一,這是由于它簡單易行,構(gòu)造貪心策略不是很困難。


        可惜的是,它需要證明后才能真正運用到題目的算法中。


        一般來說,貪心算法的證明圍繞著:整個問題的最優(yōu)解一定由在貪心策略中存在的子問題的最優(yōu)解得來的。


        對于例題中的3種貪心策略,都是無法成立(無法被證明)的,解釋如下:


        (1)貪心策略:選取價值最大者。反例:


        W=30
        物品:A B C
        重量:28 12 12
        價值:30 20 20


        根據(jù)策略,首先選取物品A,接下來就無法再選取了,可是,選取B、C則更好。


        (2)貪心策略:選取重量最小。它的反例與第一種策略的反例差不多。
        (3)貪心策略:選取單位重量價值最大的物品。反例:


        W=30
        物品:A B C
        重量:28 20 10
        價值:28 20 10


        根據(jù)策略,三種物品單位重量價值一樣,程序無法依據(jù)現(xiàn)有策略作出判斷,如果選擇A,則答案錯誤。


        下載1:OpenCV-Contrib擴展模塊中文版教程
        在「小白學視覺」公眾號后臺回復:擴展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

        下載2:Python視覺實戰(zhàn)項目52講
        小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

        下載3:OpenCV實戰(zhàn)項目20講
        小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

        交流群


        歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


        瀏覽 32
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本精品免费一区二区三区 | 内谢无套少妇毛片免费看 | m.m视频在线观看 | 天天做天天操 | 新疆女人1级毛片 | 高潮添下面视频免费看 | 欧美日韩大片 | 国产美女作爱全过程免费视频 | 伊人久久五月天 | 韩国电影黄色片 |