算法設計與分析試題
(中國科學院大學-陳玉福-2011秋)
一. 回答下列問題: (每小題5分)
1.陳述算法在最壞情況下的時間復雜度和平均時間復雜度;這兩種評估算法復雜性的方法各自有什么實際意義?
最壞情況下的時間復雜度稱最壞時間復雜度。一般不特別說明,討論的時間復雜度均是最壞情況下的時間復雜度。
這樣做的原因是:最壞情況下的時間復雜度是算法在任何輸入實例上運行時間的上界,這就保證了算法的運行時間不會比任何更長。
平均時間復雜度是指所有可能的輸入實例均以等概率出現的情況下,算法的期望運行時間。
2.闡述動態規划算法與貪心算法的區別,它們都有那些優勢和劣勢?
動態規划算法與貪心算法都要求問題具有最優子結構性質,這是二者的一個共同點。但是對於具有最優子結構的問題應該選擇前者還后者來解決?下面通過兩個經典的組合優化問題談談動態規划算法與貪心算法的主要差異
動態規划法與分治法和貪心法類似,它也是將原問題分解為若干個更小的、相似的子問題,並通過求解子問題產生一個全局最優解。與分治法和貪心法不同之處在於:
①使用貪心法時,當前的選擇可能要依賴於已經作出的所有選擇,但不依賴於有待於做出的選擇和子問題。因此貪心法是自頂向下(即從起點到終點),一步一步地作出貪心選擇。當然,如果當前的選擇可能要依賴於子問題的解時,則難以通過局部的貪心策略達到全局最優解。
②使用分治法時,由原問題分解出的各子問題通常是相互獨立的,即不包含公共的子問題,因此一旦遞歸地求出各子問題的解后,便可自下而上地將各子問題的解合並成問題的解。如果各子問題不是相互獨立的,則分治法要做許多不必要的工作,重復地求解公共的子問題。
③動態規划允許由原問題分解出的子問題之間相互依賴。每一個子問題只求解一次,並將結果保存起來,避免每次碰到此子問題時都要重復計算
3.闡述回溯算法與分枝限界算法的共同點和不同點,提高算法效率的關鍵是什么?

4.在對算法進行復雜性分析時,強調漸進復雜性的意義是什么?
算法的復雜性是算法效率的度量,是評價算法優劣的重要依據。一個算法的復雜性的高低體現在運行該算法所需要的計算機資源的多少上面,所需的資源越多,我們就說該算法的復雜性越高;反之,所需的資源越低,則該算法的復雜性越低。簡化算法復雜性分析的方法和步驟,即只要考察當問題的規模充分大時,算法復雜性在漸近意義下的階。與此簡化的復雜性分析方法相配套,問題復雜程度和規模的線性增長導致的時耗的增長和空間需求的增長,對低效算法來說,都是超線性的,決非計算機速度和容量的線性增長帶來的時耗減少和存儲空間的擴大所能抵銷。
二.(20分)試用Prim算法求解下面無向賦權圖的最小生成樹,指出最小生成樹及該樹中各邊被選中的先后次序;寫出算法的基本步驟。
解:根據Prim算法,從V1開始,選擇10 V1和V4加入集合
找出集合中頂點相鄰的最小權值點V7加入集合
依次為V 1 V4 V7 V8 V3V5 V2 V6
基本步驟:從第一個結點開始,加入集合A
每次選擇A中頂點與A外的頂點權值最小的頂點,加入集合A
直到集合A包含所有頂點
三.(20分)用LC-分枝限界算法求解0/1背包問題: ,物品重量和價值分別是:
w=(2,3,4,6,9) p=(8,9,10,12,18)
1.畫出由算法生成的狀態空間樹,並標明各節點的優先級的值;
2.給出各節點被選作當前擴展節點的先后次序;
3.給出最優解。
解:30
具體步驟就不寫了
四. (20分)已知一組數滿足,且被搜索的對象的概率分布是:
其中a表示被搜索對象在區間內的概率,b表示被搜索對象為的概率,
使用動態規划算法求該搜索問題的最優二叉搜索樹。
解:各子樹的根:
1 1 1 4 4
0 2 3 4 4
0 0 3 4 4
0 0 0 4 4
0 0 0 0 5
最優二叉樹結構:
k4是根
k1是k4的左孩子
d0是k1的左孩子
k3是k1的右孩子
k2是k3的左孩子
d1是k2的左孩子
d2是k2的右孩子
d3是k3的右孩子
k5是k4的右孩子
d4是k5的左孩子
d5是k5的右孩子
0.1 0.37 0.54 0.89 1.645 2.425
0 0.01 0.11 0.345 0.85 1.63
0 0 0.02 0.195 0.64 1.42
0 0 0 0.04 0.39 1.17
0 0 0 0 0.03 0.535
0 0 0 0 0 0.2
五.(20分) 假定已知"無向圖的Hamilton回路"問題是NPC問題,證明"旅行商判定問題"也是NPC問題。
解:首先,旅行商問題是NP的,因為對其解的任一猜想,要檢驗它是否是最優的,需要同所有其它的環游戲比較,這樣的環游會有指數個,因而不可能在多項式時間內完成
考慮圖的哈密頓回路問題,已知無向圖G |V|=n,構造其對應的旅行商問題為
Dij={1,if(vi,vj)屬於邊,2,否則}
顯然,這一變換可以在多項式時間內完成,而且,G有哈回路的充分必要條件是上述構建的旅行商問題有解,且解對應的路長度為N,因為,若G中不含哈回路,則路長至少為n+1 因為已知哈回路問題是NPC問題,並且上述變換為多項式變換,所以旅行商問題也為NPC問題
有問題直接回復即可!
