貪心演算法之證明要點 演算法導論16 2 5

2021-09-29 21:25:41 字數 634 閱讀 7663

貪心演算法之證明要點----演算法導論16.2---5

兩個性質:

貪心選擇性質:乙個全域性最優解可以通過區域性最優得到。即存在乙個最優解是以貪心選擇開始的。

最優子結構:乙個最優解包括期子問題的最優解。即乙個n的最優解分解成第一步的貪心選擇,和n-1的子問題,這個n-1的子問題也是最優的。

最後要說明,第一步的貪心選擇和n-1的子問題可以合併成乙個全域性最優解。

現以演算法導論16.2---5習題做說明

問題如下:給定數軸上的n個點,求最少能夠包含給定點的單位閉區間集合。

現證明這個可以得到最優解。

貪心選擇性質:

現假設一最優解a=為單位閉區間集合。對m個點以座標排序,從小到大。

現有乙個單位區間ak,從m個點中最小的點開始,長度為單位長度。a1的起始座標必然<=ak的起始座標(第一點的座標),a1覆蓋點的數目必然<=ak的數目(因為ak是從第乙個點開始的)(a-a1) u ak,(剪下黏貼)也是乙個最優解。

最優子問題性質:

做出第一步的貪心ak之後,a-ak是子問題m-1的最優解。

反證法:假設存在有乙個更優的解b,b u ak必然是比a更優的解,矛盾。

貪心選擇ak和子問題可以合併成乙個最優解。

演算法導論 第16章 貪心演算法

結論貪心演算法,顧名思義,貪心就完事了。對於這種抽象的演算法,我的一貫想法是通過例項將其具體化。下面給出乙個例子,好好感受 上題的解如下 鈔票支付問題 動態規劃法也可解 對於此問題需要注意的是,貪心法可能得出最優也可能無法得出全域性最優,這取決於硬幣的種類 include include using...

演算法導論 13 貪心演算法

與動態規劃類似,貪心演算法也將問題化簡為規模較小的子問題,並通過遞迴解決子問題來獲取整個問題的解。不同的是,貪心問題不對子問題進行比較,而是只生成乙個非空的子問題,而使選擇在當時看上去是最優的 即 貪心 的含義 幾個互相競爭的活動都要求以獨佔的方式占用某個公用資源 如選修課程對個人可支配時間的要求,...

演算法導論之貪心演算法

參考 下面請看示例題 有n個商品,每個商品的重量為wi,為 pi,現有乙個揹包,最多能裝 的重量 其中 0 i問 怎樣裝能使包中裝入的商品價值最高 對於每個商品可以只裝該商品的一部分 偽 引數分別為 n 物品數 m 揹包最多能裝的重量 v 價值陣列 w重量陣列 void knapsack int n...