USING INDUCTION TO DESIGN 使用歸納法設計演算法 [12/14]

來源:互聯網
上載者:User

接上文:http://blog.csdn.net/jj12345jj198999/article/details/6631122

稠密圖中的最優匹配【Q9】【標題3】

在無向圖G=(V,E)中一個匹配也就是一個沒有公用頂點的邊的集合。(一條邊對應於兩個點,一個點不可能對應於多餘一個頂點)最大匹配是一個無法拓展的問題,意味著所有其他的邊都至少與一個匹配的頂點相連。一個最大匹配也就是一個最大集。(一個最大匹配總是最大的,但是反過來說卻未必正確)在圖中一個擁有n條邊和2n個點的匹配被稱為最優匹配。(顯然也是最大的)在這個例子中我們考慮一種很有限的情況。我們假設圖中有2n個點,所有頂點的度都至少為n。可知在這些條件下總存在一個最優匹配。我們首先給出這個事實的證明,然後展示如何去修改這個證明從而得到一個尋找最優匹配的演算法。

證明採用的是最大的反例。考慮一個圖G=(V,E),其中|V|=2n每個頂點的度至少為n。如果n=1那麼這個圖僅僅有一條邊串連兩個頂點,這就是一個最優匹配。假設n>1時不存在這樣一個最優匹配。考慮到最大匹配M屬於E。由假設知|M|<n,同時由於任意一條邊自己就是一個匹配顯然有|M|≥1。既然M不是完全的(不包括所有的點),那麼就存在至少兩個不相鄰點v1和v2不被包含在M中(即它們不對應M中的一條邊)。這兩個點至少有2n個不同的邊從它們射出。所有這些邊通向那些包含在M中的頂點,否則這樣的邊就不可能被加入到M中。由於M中邊的數目小於n而且從v1到v2有2n條邊與之相連,M中至少有一條邊,假定為(u1,u2),與從v1到v2的三條邊相連。為了不失一般性,我們假設這三條邊是(u1,v1),(u1,v2)和(u2,v1)(見圖6)。很容易可以看到通過從M中移除(u1,u2)加上邊(u1,v2)和(u2,v1)我們能夠得到一個更大的匹配,這與之前最大的假設相矛盾。

 

插入圖6

 

 

 

第一眼看上去這個證明好像無法產生一個演算法,因為證明是從一個最大匹配開始的。一旦我們知道如何去尋找這樣一個匹配我們就能夠解決這個問題。然而,使用反證法適用於任何最大化的匹配,這裡展示的只是用於最大匹配而已。尋找一個最大化的匹配要比尋找一個最大匹配簡單。我們只需要簡單的添加不相連的邊(即那些沒有公用頂點的邊)直到不存在這樣的邊的可能。然後我們使用上面描述的步驟把該匹配轉換為一個更大的匹配。通過上面的證明我們可以不斷反覆執行直到找到一個最優匹配。

其他證明技巧【標題2】

在這篇論文中我們關注於基于歸納法的證明技巧。這裡有很多其他的技巧和更多的類比,一些事很明顯的,一些則不那麼明顯。許多數學定理的證明是使用一系列的前提得到的,這直接對應於在標準設計和結構化編程的思想。證明中使用反證法在演算法設計中也有類似的地方。研究那些使用“類似的論據”證明的類比是很有趣的一件事。

我們這裡簡要列出四個證明技巧(其中的三個是基于歸納法的)以及它們的類比。更多的例子和類比可以在參考文獻[12]中找到。

縮減法【標題3】

在證明定理和設計演算法時,在問題之間使用縮減是一種很強大的技巧。如果問題A被指明是問題B的特例,那麼解決B的演算法可以被當成一個黑盒用來解決A。這個技巧對於解決下界和對問題進行分類也很有效(例如NP-完全問題)。如果已知問題A很難,那麼問題B也至少一樣難。

雙倍歸納法【標題3】

這是一種使用歸納法針對一次多餘一個變數的方法。它可用於在歸納法最佳序列不明確的情況,同時在針對幾個變數依據一個特定的步驟在其中進行選擇時,該方法也很容易使用到。例如,如果問題包含n個物品和一個k維空間時,我們可能想在演算法執行時減少物品的數量或者物品尺寸的數量【見例4】。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.