分治法
設計思想:掃瞄技術,即採用一定的策略將待求解問題的所有元素依次處理一次,從而找出問題的解;
關鍵——依次處理所有元素。
典型問題應用:
1、查詢問題
順序查詢,o(n)
串匹配(bfo(n*m),kmpo(n+m), bmo(n*m))
2、排序問題
選擇排序,o(n2)
氣泡排序,o(n2)
3、組合問題
生成排列物件 ,o(n!)
生成子集 ,o(2n)
0/1揹包
任務分配
4、圖問題
哈密頓迴路,tsp問題
5、幾何問題
最近對問題o(n2),凸包問題o(n3)
分治法
設計思想:將要求解的原問題劃分成k個較小規模的子問題,對這k個子問題分別求解。如果子問題的規模仍然不夠小,則再將每個子問題劃分為k個規模更小的子問題,如此分解下去,直到問題規模足夠小,很容易求出其解為止,再將子問題的解合併為乙個更大規模的問題的解,自底向上逐步求出原問題的解。
步驟:(1)劃分(2)求解子問題(3)合併
典型問題應用:
歸併排序,快速排序,最大子段和,最近對問題,凸包問題,這五種問題的分治演算法的時間複雜度為o(nlog2n)
棋盤覆蓋,迴圈賽日程安排為o(4k)
典型問題應用:
折半查詢,二叉樹查詢,堆排序,選擇問題,淘汰賽冠軍問題,假幣問題;
以上問題的時間複雜度,如果減治是每次減小為原來規模的1/2,則時間複雜度一般為o(log2n)
將待求解問題分解成若干個相互重疊的子問題,每個子問題對應決策過程的乙個階段,將子問題的解求解一次並填入表中,當需要再次求解此子問題時,可以通過查表獲得該子問題的解而不用再次求解。
步驟:將原始問題分解為相互重疊的子問題,確定動態規劃函式;
求解子問題,填表;
根據表,自底向上計算出原問題的解。
典型問題應用:
tsp,多段圖的最短路徑問題,0/1揹包,最長公共子串行問題,最優二叉查詢樹,近似串匹配問題;
多段圖的最短路徑問題: o(n+m)
0/1揹包問題: o(n×c)
貪心法在解決問題的策略上目光短淺,只根據當前已有的資訊就做出區域性最優選擇,而且一旦做出了選擇,不管將來有什麼結果,這個選擇都不會改變。
貪心法的關鍵在於決定貪心策略。
典型問題應用:
最小生成樹問題的兩種演算法:最近頂點策略(prim演算法),最短邊策略(kruskal演算法)
揹包問題,活動安排問題,多機排程問題,哈夫曼編碼。
步驟:確定解向量和分量的取值範圍,構造解空間樹;
確定剪枝函式;
對解空間樹按深度優先搜尋,搜尋過程中剪枝;
從所有的可能解中確定最優解。
典型問題應用:
屬於組合問題和排列問題中求最優解的問題都可以用回溯法解決,例如:圖著色問題,哈密頓迴路問題,八皇后問題(4皇后問題),批處理作業排程問題。
1)首先確定乙個合理的限界函式,並根據限界函式確定目標函式的界[down,up] ,並確定限界函式;
2)然後按照廣度優先策略遍歷問題的解空間樹,在分支結點上,依次搜尋該結點的所有孩子結點,分別估算這些孩子結點的限界函式的可能取值;
3)如果某孩子結點的限界函式可能取得的值超出目標函式的界,則將其丟棄;否則,將其加入待處理結點表(以下簡稱表pt)中;
4)依次從表pt中選取使限界函式的值是極值的結點成為當前擴充套件結點;
5)重複上述過程,直到找到搜尋到葉子結點,如果葉子結點的限界函式的值是極值,則就是問題的最優解,否則,找到其他極值結點重複擴充套件搜尋。
步驟:確定解空間樹
確定限界函式
按廣度優先搜尋解空間樹,計算限界函式的值,填入pt表
從pt表中尋找極值,繼續擴充套件結點,直到找到限界函式值為極值的葉子結點。
典型問題應用:
tsp問題,多段圖的最短路徑問題,任務分配問題,批處理作業排程問題,0/1揹包問題。
掌握任務分配問題的分支限界法(p195-197),習題9-5
掌握0/1揹包問題的分支限界法(p184-185),習題9-6
掌握批處理作業問題的分支限界法(p198-200),習題9-7
XML基礎小結
1 xml代表擴充套件的標記語言 extensible markup language 2 xml由w3c聯盟發展維護 3 xml是一種元語言,可以用來定義其它語言 4 xml沒有定義任何標記,它提供了一種工具定義標記以及它們之間的結構關係 5 xml是一種用於結構化文字交換的標記語言 6 xml代...
dp基礎小結
kuangbin帶你飛系列,基礎dp 總共20多道題,就不一一說了 說一下學會的關鍵的思路 第1點 有的時候某一狀態的值的得出,可能會要我們列舉已經計算過的值,一一比較取最值,但如果真的去列舉的話就會超時,這時我們可以把狀態的含義設為前i項的最值,計算的時候只需要多比較一項,即和前一項比較一下就可以...
Html Css 基礎小結
html css基本部分個人小結 table table border cellspacing cellpadding bgcolor caption caption 最頂部 thead th th thead 頭部 tfoot td td tfoot table 可以套 列表可以套列表 乙個是在t...