版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
算法分析與設計
主講:徐曉蓉
聯(lián)系電話/p>
郵箱:rortyrong@163.com
所在院系:計算機科學與技術(shù)學院第六章貪心法貪心法的學習提綱一般方法適合求解的問題基本思想(求解問題的過程)算法控制流程算法的正確性證明應用舉例背包問題帶時限的作業(yè)排序問題貪心算法的直觀含義
例1.如:找硬幣0.15元,要求硬幣數(shù)最少。找硬幣方法就是一種貪心算法.(1)面值;5分、2分、1分:(2)面值:11分、5分、1分:從此例可以看出:1,貪心法未必總能求得問題的最優(yōu)解;2,貪心算法總是作出在當前看來是最好的選擇.也就是說貪心算法不從整體最優(yōu)上加以考慮,它所作出的選擇只是在某種意義上的局部最優(yōu)選擇。雖然貪心算法不是對所有問題都能得到整體最優(yōu)解,但對范圍相當廣的許多問題它都能產(chǎn)生最優(yōu)解。如單源最短路徑問題,最小生成樹問題等。而且,在一些情況下,即使貪心算法不能得到整體最優(yōu)解,但其最終結(jié)果卻是最優(yōu)解的很好的近似解!3個5分(最優(yōu))1個11分4個1分(次優(yōu))6.1一般方法貪心方法適合的問題是最優(yōu)化問題。最優(yōu)化問題:有n個輸入,而它的解就由這n個輸入的滿足某些事先給定的約束條件的某個子集組成,而把滿足約束條件的子集稱為該問題的可行解。顯然,可行解一般來說是不唯一的,為了衡量可行解的好壞,問題還給出某個值函數(shù),稱為目標函數(shù),使目標函數(shù)取極值(極大或極小)的可行解,稱為最優(yōu)解。目標函數(shù):約束條件(函數(shù)):其中:可行解:如找硬幣問題可描述如下:
最優(yōu)化問題的解可表示成一個n元組X=(x1,x2…xn),其中每個分量取自某個值集S,所有允許的n-元組組成一個侯選解集。6.1一般方法貪心方法適合的問題是最優(yōu)化問題。最優(yōu)化問題:有n個輸入,而它的解就由這n個輸入的滿足某些事先給定的約束條件的某個子集組成,而把滿足約束條件的子集稱為該問題的可行解。顯然,可行解一般來說是不唯一的,為了衡量可行解的好壞,問題還給出某個值函數(shù),稱為目標函數(shù),使目標函數(shù)取極值(極大或極小)的可行解,稱為最優(yōu)解。最優(yōu)化問題的解是一個n元組貪心法是通過分步?jīng)Q策的方法來解決問題的。貪心法在求解問題的每一步上作出某種決策,產(chǎn)生n-元組的一個分量,貪心法要求根據(jù)題意,選定一種最優(yōu)量度標準,作為選擇當前分量的依據(jù),這種在貪心法每一步上用做決策依據(jù)的選擇準則被稱為最優(yōu)量度標準(貪心準則,也稱貪心選擇性質(zhì))。6.1一般方法貪心法的基本思想:
是依據(jù)題意選取一種量度標準,然后按照這種量度標準對這n個輸入進行排序,并按序一次輸入一個量,作為n-元組的一個分量,如果這個輸入量的加入不滿足約束條件,則不把此輸入加入到部分解向量中.貪心法求解問題的過程:選取最優(yōu)量度標準依最優(yōu)量度標準對n個輸入排序初始狀態(tài)下,解向量solution=φ中;按序一次取一個輸入量,作為n-元組的一個分量,若加入該分量滿足給定的約束條件,則加入,否則,不加入,繼續(xù)檢測下一個分量.
貪心方法的抽象化控制算法6.1貪心法的控制流程SolutionTypeGreedy(STypea[],intn){SolutionTypesolutions=φ
//將解向量solution初始化為空/
for(inti=0;i<n;i++){STypex=Select(a);if(Feasiable(solution,x))solutions=UNION(solution,x);}returnsolution;}從算法6.1可看出,一旦能選擇出某個問題的最優(yōu)量度標準,那么用貪心方法求解這個問題則特別簡單有效。n個輸入按某種量度標準排序……按序一次選擇一個輸入量。滿足約束條件,加入解解不滿足約束條件,揚棄…..
對于一個給定的問題,往往可能有好幾種量度標準。用其中的大多數(shù)量度標準作貪心處理所得到該量度意義下的最優(yōu)解并不是問題的最優(yōu)解,而是次優(yōu)。
選擇能產(chǎn)生問題最優(yōu)解的最優(yōu)量度標準是使用貪心法設計求解的核心問題。6.1一般方法貪心法小結(jié):適合求解的問題:解為n-元組的最優(yōu)化問題;貪心法是分步?jīng)Q策,每一步?jīng)Q策產(chǎn)生n-元組的一個分量貪心法并不是從整體上考慮最佳,而是做當前看來是最佳的選擇,這種選擇依賴于以前的選擇,但不依賴于以后的選擇和子問題,故它的特征是自頂向下一步一步地做出貪心決策.自頂向下:是以迭代的方式作出相繼的貪心選擇,每一次貪心選擇就將所求問題簡化為規(guī)模更小的子問題.1.最優(yōu)量度標準所謂貪心法的最優(yōu)量度標準,是指可以根據(jù)該量度標準,實行多步?jīng)Q策進行求解,雖然在該量度意義下所做的這些選擇都是局部最優(yōu)的,但最終得到的解卻是全局最優(yōu)的。因此,選擇最優(yōu)量度標準是使用貪心法求解問題的核心問題.6.2貪心法的基本要素當一個問題的最優(yōu)解包含其子問題的最優(yōu)解時,稱此問題具有最優(yōu)子結(jié)構(gòu)性質(zhì).問題的最優(yōu)子結(jié)構(gòu)性質(zhì)是該問題可用動態(tài)規(guī)劃算法或貪心算法求解的關鍵特征。2.最優(yōu)子結(jié)構(gòu)性質(zhì)6.3背包問題0-1背包問題:給定n種物品和一個背包.物品i的重量是Wi,其價值為pi,背包的容量為C.應如何選擇裝入背包的物品,使得裝入背包中物品的總價值最大?在選擇裝入背包的物品時,對每種物品i只有2種選擇,即裝入背包或不裝入背包.背包問題:與0-1背包問題類似,所不同的是在選擇物品i裝入背包時,可以選擇物品i的一部分,而不一定要全部裝入背包,1≤i≤n。這2類問題都具有最優(yōu)子結(jié)構(gòu)性質(zhì),極為相似,但背包問題可以用貪心法求解,而0-1背包問題卻不能用貪心法求解。6.3背包問題已知有n種物品和一個可容納M重量的背包,每種物品i的重量為wi.假定將物品i的一部分xi放入背包就會得到pixi的效益,這里,0≤xi≤1,pi>0.如果這些物品重量的和大于M,要求所有選中要裝入背包的物品總重量不得超過M,而裝入背包物品獲得的總效益最大.即
0≤xi≤l,pi>0,wi>0,0≤i≤n-1滿足約束條件的任一集合(x0,…,xn-1)是一個可行解(即能裝下),使目標函數(shù)取最大值的可行解是最優(yōu)解。背包問題描述:約束條件:
例6.1n=3,M=20,P=(25,24,15),W=(18,15,10)
假設物品可分,故有可行解無數(shù)個,其中的四個可行解是:
(x0,x1,x2)∑wixi∑pixi①(1/2,1/3,1/4) 16.5 24.25②(1,2/15,0) 20 28.2③(0,2/3,1) 20 31④(0,1,1/2) 20 31.5
在這四個可行解中,第④個解的效益值最大。但這個解是否是背包問題的最優(yōu)解,尚無法確定,但有一點是可以肯定的,即對于一般背包問題,其最優(yōu)解顯然必須裝滿背包。6.3背包問題貪心法求解背包問題選擇量度標準計算在此量度標準下的”最優(yōu)解”(1)選目標函數(shù)作為量度標準,
即”效益”優(yōu)先,使每裝入一件物品就使背包獲得最大可能的效益值增量.按物品收益從大到小排序0,1,2解為:(x0,x1,x2)=(1,2/15,0)收益:25+24*2/15=28.26.3背包問題非最優(yōu)解原因:只考慮當前收益最大,而背包可用容量消耗過快.M=20,P=(25,24,15)W=(18,15,10)貪心法求解背包問題選擇量度標準計算在此量度標準下的”最優(yōu)解”(2)選重量作為量度,使背包容量盡可能慢地被消耗.6.3背包問題按物品重量從小到大排序:2,1,0;解為:
(x0,x1,x2)=(0,2/3,1)
收益:
15+24*2/3=31非最優(yōu)解原因:雖然容量消耗慢,但效益沒有很快的增加.M=20,P=(25,24,15)W=(18,15,10)貪心馬法求津解背硬包問貫題選擇俱量度惜標準計算貝在此陸量度范標準葬下的”最優(yōu)叔解”(3層)選利潤/重量為量藍度使每編一次匆裝入島的物班品應陜使它法占用塊的每沈一單舞位容跨量獲列得當匙前最系大的煌單位劍效益端。6.第3背包歸問題M=我20賣,理P=(2恐5,逼2劉4,既1桃5)W=脆(美18,15,10錄)按物馬品的pi/wi重量泉從大否到小暑排序:1,逼2,天0;解為:(x0,x1,x2)=爺(0鄙,餐1,冶1輪/2講)收益:24意+1片5/雅2=妹31筑.5可見倦,可敘以pi/wi作為閑背包磚問題渠的最奶優(yōu)量利度標汗準.最優(yōu)夏解算法6.猶2以p[顆i]廁/w數(shù)[i塌]為最京優(yōu)量嘩度標嬌準的掏背包者問題膊的貪侮心算你法vo杏idGr魯ee霧dy穴Kn者ap鄭sa襲ck(f桶l(fā)o絹at*p,支fl甲oa敲t*w,肝fl遇oa瞧t隊M,in到tn,fl葵oa怠t*x){//前置撕條件頭:w[羊i]已按p[迫i]飾/w輝[i僻]的非兄增次渴序排百列fl磚oa噴tu=符M;指/頁/u為背稱包剩揮余載攻重量季,初課始時棄為mfo供r郵(in露ti=驕0;遷i資<n淚;頂i+伏+)x[膊i]比=0危;岸//對解仍向量x初始喚化fo葵r駛(i泳=0梅;富i<闖n;寸i潮++舟)栽//按最棒優(yōu)量南度標存準選性擇解城的分日量{if隊(脫w[霧i]盈>u欲)br嶼ea噸k;x[血i]哀=1編.0街;u=歸uw[i附];}if瓶(疏i<幟n)妨x相[i俯]=師u/付w[鳴i]禍;}6.路3背包火問題(1)由向此算崖法所疲得解知的形暖式為:(1貌,1孕,1重,…食.,疤1,汪xj,0茫,…標,0規(guī))(2)算胖法的道正確潔性:貪心緊法得卵到的席解是釋否是郊最優(yōu)鼻解需督要證優(yōu)明定理6.羅1如果p0/w0≥p1/w1≥…熱≥pn-參1/wn-斧1,則算弊法Gr蝦ee凡dy遵Kn襲ap欣sa急ck對于奔給定擋的背非包問益題實睜例生撐成一下個最敲優(yōu)解句。證明:設X=菌(x0,…,xn-惰1)是Gr韻ee揪dy浮Kn擔ap籮sa催ck所生錄成的弦解.設j是使x(州i)研≠1的最氧小下泰標。由算先法可鍵知,爪有:(1缺,…南.,柴1,xj,0,仰…,滑0)j(1)假久設X不是包最優(yōu)村解,戀另有速最優(yōu)擔解為Y=哭(y0,…,yn-喜1),則定裹有∑piyi>∑pixi。不失奏一般漸性,爬可以免假定∑wiyi=M。(2)設k是使妻得yk≠xk的最胃小下優(yōu)標。夢可以雜推得yk<xk。這可量從三合種可丑能發(fā)寫生的密情況協(xié),即k<款j,k=j或k>齒j分別干得證連明:①若k<劫j,(1勤,1巧,1蟲,…兩.,攝1,xj,0,搖…,礦0)K桂j因為yk≠xk,從而yk<xk。②若k=j,(1光,1孔,1蓋,…蓋.,炊1,xj,0,界…,古0)K=鐮j若yk>xk,顯然刑有∑wiyi>M,從而yk<xk。③若k>狂j,(1丘,1棕,1域,…盲.,括1,xj,0,酬…,熔0)j拜K反證眠法:所以,必有yk<xk若yk>xk,有東∑wiyi>M,是不堤可能圾的。(3彩)把yk增加淹到xk,那末永必須勻從(yk+觀1,…,yn-晉1)中減憂去同派樣多狀的量遇,使叔得所憐用的折總?cè)蔹c量仍抽是M。這導惠致一社個新亡的解Z=站(側(cè)z0,…,zn-遺1),其中歌,zi=xi,0≤綁i≤宰k,并且因此野,對春于Z有變換Z不比Y差,重復魄上面犁的討曠論,把Y轉(zhuǎn)換助成X,從而菊證明艷了X也是蕩最優(yōu)承解.證畢。對于0/施1背包姿問題浴,使沿用貪堤心法鐮,并巧不一送定能筒求得岸最優(yōu)化解,掏因此匪,貪螞心法振不能矮用來竊求解0/單1背包揭問題例,n=3,M=丸25,P=(3斑2,24,15日),W撤(1疊6,15,10字).P/放W=縣(2源,1唇.6勞,1軌.5技)X=員(0故)∑p禍=3艦2,釀CU愿=M綢-W面(0掛)=液9不能酒放下夾任何涂物品牙,顯寄然X=棟(0辜)不是庸最優(yōu)梳解。最優(yōu)笛解是(1展,2叛),利縮慧潤為39。6.毯3背包棍問題6.屆3帶有背限期蒙的作鋼業(yè)排爪序在一厭單機姐無其定他資泄源約評束的姑處理竹系統(tǒng)治中,督運行n個作錦業(yè),銜假設輝每個喪作業(yè)純運行1個單晨位時續(xù)間,逢且每畏個作癢業(yè)i都有一聚個截已止期民限di>0(它是帆整數(shù)),若抗作業(yè)i能在它賠的期旨限截乞止前柔被完竄成,嚇則可團獲得pi膜>0的效巷益。騙要求推找到行作業(yè)誼的子舊集X及X的一飯個排園列α,使糾得按α調(diào)度切作業(yè)須運行姐,X中的糖作業(yè)幸都能光如期糟完成虹,且水獲收欠益最跟大??尚欣U解:子集X中的療作業(yè)殺都能足如期質(zhì)完成順,則X為可蹄行解燙??尚兴饨獾溺娛找骟H:可行月解X中所騾有作業(yè)報的收塌益之友和,茂即棍。最優(yōu)同解:具有控最大古收益諒的可你行解渣就是罰最優(yōu)叉解。6.禿3.館1問題脾描述例6.曾2n=漠4,域(p0,p1,p2,p3)=(1鞏00竄,1喘0,昏15紗,2頭0)、(d0,d1,d2,d3)=燒(2剝,1柳,2謹,1鳥)可行遷解和枕它們頌的效帥益值談如下磨:可行率解派處理煤順序飯效益上值①(0衛(wèi))乎1百10籃0②滲(1據(jù))豈1膨10③云(2龜)被1懸15(3典)國1根20(0,1)尋1,0而1賽10(0,2)朵0,2或2,0丹11為5(0,3)院3,0據(jù)12捐0(1,2)哥1,2旺25解⑦是最尤優(yōu)的,所允聲許的貫處理菌次序礦是:先處欺理作宋業(yè)3,再處虹理作足業(yè)0.306.如3帶有奧限期通的作潮業(yè)排葬序6.把3.痕2貪心潛法求篩解(1斤),把目標帆函數(shù)作為亦量度.使用孤這一路量度,下一考個要困計入役的作財業(yè)將籃是使秀得在教滿足往所產(chǎn)鄉(xiāng)豐生的X是一倍個可撐行解企的限再制條膜件下待讓些得狠到最家大增樹加的徐作業(yè).(2貨),按pi的非駱增次渡序來卷考慮爛這些芽作業(yè);如例6.敞2,按pi的非螺增次撒序?qū)︻佔鳂I(yè)豈進行無排序(0,3,2,1)開始綱時:X=φ,,X={0短},p0=1池00作業(yè)0有最汽大效捆益X={0,3}汁p0+p3=1酸20作業(yè)3有第謙二大艦效益作業(yè)2,駛1都被溜舍棄6.劣3帶有肢限期仗的作讀業(yè)排書序算法6.囑3帶時略限作洲業(yè)排的序算暮法vo粉idGr煎ee抱dy劈燕Jo協(xié)b(in產(chǎn)t*d,in妙t*X,n){//作業(yè)捉按p0手≥p濾1≥宰…≥夸pn消-1的次漸序輸謎入,裳它們垂的期亞限值d(緞i)碗≥1,0≤巧i≤款n-證1,n≥耗1。X是在普它們晴的截爪止期誤限前孩完成顯的作艦業(yè)的旱集合//X←{0澇}fo究r職(in鍵ti=渴1;錘i<n;恢i+很+)if巴(X∪{i蔬}的所稿有作互業(yè)都膽能在層它們夜的截穿止期束限前仇完成)X敗=X艙∪眉{i晚}}6.控3帶有安限期款的作每業(yè)排痰序思考:1,該筆算法到能否勵得到憲最優(yōu)稅解?2,如泳何變臉為有辯效的困算法積?6.侮3.悠2貪心害法求邪解定理6.滔2算法6.爐3所描獵述的早貪心就方法單對于大作業(yè)可排序城問題益總是茫得到串一個紗最優(yōu)粥解。證明:設X=耳(x0,x1,…xk)是某靜個帶沫時限訴作業(yè)酸排序膜問題敵實例矩的貪膚心法挎求得插的解揪,若X不是滔最優(yōu)鬼解,秩假設抬另有Y臺=(燈y0,y1,…yr)是最蘇優(yōu)解.(1濁)假設X≠Y,必有杠且若卻,晴則Y不是享可行搬解;井否則長,Y是可枕行解辯,那皇么貪嗓心算釣法會養(yǎng)將屬懷于Y但不體屬于X的其傍他作餃業(yè)繼怎續(xù)加順入X。若村,則Y不是知最優(yōu)勁解;(2知)存在映排列α、β,使X、Y可行6.脂3帶有慈限期撿的作門業(yè)排絹序6.黎3.倆3算法辦正確鉛性--見-(璃1)該算料法能數(shù)否找丈到最間優(yōu)解?(3日)將α,β中的槽相同則作業(yè)違移到筋相同洗位置享。設x是既俘屬于X又屬脊于Y的一控個作往業(yè);又設x在α中在t到t+弱1時刻嘴被調(diào)么度,而在β中則答在t’到t’牢+1時刻婆被調(diào)侄度.可以感調(diào)換α或β中的竹作業(yè),使x在α和β中都在扁同一雷時刻滋被安母排.如果t<嫌t’,交換α中的x與y;t……盡………補………肥………樣…zxtxt’yt……營………固………信………蓮…xytzt’x如果t>搶t’,交換β中的x與z;重復幫使用扁,可裂使α和β中都國有的古作業(yè)乒在相沾同的得時刻創(chuàng)被安石排。6.姓3帶有擦限期襪的作針業(yè)排現(xiàn)序6.獵3.旁3算法頓正確象性--狐-(涌1)該算坐法能名否找噴到最揉優(yōu)解?(4軋)對于α和β中的貫不同符作業(yè)估,用α中的眨相同緞位置溉的作艘業(yè)替穩(wěn)換β中的泡作業(yè)止。設,并且渣作業(yè)a是使鎖得攤的一段個收唉益最控大的醋作業(yè)塊,那殿么,計對于乘任意涉作業(yè)b,,都捧有pa珠≥p酒b。否崖則作塵業(yè)b被程朝序6-壤3加入X中。之假定b是其斤中一閃個作理業(yè),辦它在β中的援位置默與a在α中的殿位置沉相同揚,用a取代β序列爐中的b,得到執(zhí)一個轎新序游列Y’,顯互然Y’的效灰益值壇不小傳于Y的效立益值紀,并蒜且Y’比Y少一鞋個與X不同時的作君業(yè)。重復麻使用工上述卵的轉(zhuǎn)傳換,錦將使Y能在唱不減低效益壇值的曠情況寸下轉(zhuǎn)氣換成X,因燦此X也必越定是顯最優(yōu)雅解。匹證畢先。t……睡………聯(lián)…a……渠………腐…bpa≥pb6.滾3帶有訓限期蛇的作愁業(yè)排墊序6.挑3帶有竟限期男的作倆業(yè)排喉序6.幼3.雪4可行局性判泄定--震-(霸2)如何瘦變?yōu)榫o有效旱算法?(1蓮)檢查倍某種壟排列a是否怒可行?只需傲檢查悲作業(yè)aj是否域滿足daj>=遷j+責1∵每個覆作業(yè)群執(zhí)行忘一個箏單位卸時間∴排阿列位倡置為j的作蓮業(yè)aj應在j+醬1時刻減執(zhí)行妻完畢(2粉)判斷X子集地是否插可行?只需格判斷興它的復一個特殊喜排列是否掉可行抗即可;這個喚特殊罪的排熊列就債是X中作捧業(yè)按弄時限輸?shù)姆枪慕荡捂@序的須排列算法6-愉3的核滲心步題驟是:判定集合X∪{i難}中的詢作業(yè)嘩是否飽能在茂截止籃期限絮前完話成,這一兼操作亮步驟拾也就竟是所謂市的可惕行性只判定.某一描作業(yè)股子集X是否霜是可德行解她,只智需找輔到一壓種X的排謠列a,如果X中的瞞作業(yè)武能按a的次堆序執(zhí)睡行而蕩不超央期,慣則X為可分行解.6.跳3帶有小限期壤的作潤業(yè)排藝序6.歪3.損4可行若性判另定--粥-(隔2)如何內(nèi)變?yōu)榇行{算法?定理6-喜3X=貧(x0,x1,…xk)是k個作翁業(yè)的環(huán)集合,a=嗓(a0,a1,a2…ak)是X的一即種特槍定排兼列,它使芒得da0<=丹da1<=類….dak,其中遠,daj是作乏業(yè)aj的時鳳限.X是一漢個可鑼行解謀當且燥僅當X中的堡作業(yè)棋能夠平按a次序少調(diào)度久而不折會有萬作業(yè)煩超期.證明:(1針)”滔”如果X中作始業(yè)能脖夠按死照a次序秧調(diào)度博而不細會有所作業(yè)耍超期,則X是可假行解.(2鋼)”俘->棍”如果X是可掛行解忽,則藏必存該在X的至應少一稱種排鈔列使拒得X中作跑業(yè)可譯以按炮該排油列執(zhí)警行而賠不會齡有超艇期,妻設β=晌(β0,β1,…βk),β≠塑α是這先樣的臺排列.令i是使食得αi≠βi的最獲小下百標,厘那么尖作業(yè)αi的時令限必飲然小旨于βi的時哥限,由于α和β是X中作潤業(yè)的延兩種然不同坑的排各列,所以β中必禮定也指包含營作業(yè)αi,很顯漁然,αi在β中的皺位置摩比它吼在α中的抖位置繁靠后.將β中的αi與βi交換舒位置,不會糟引起肌作業(yè)世超期.重復屯以上窗過程,最終黃將β變換囑成α,這就爺是說,按α次序杜調(diào)度鋼作業(yè)孫不會遣出現(xiàn)易超期,因此α是可微行的盆調(diào)度霧方案帶時時限的份且每帽個作差業(yè)運偷行單惡位時傅間的擾作業(yè)年排序餡過程:(1源),按收社益非敏增次館序?qū)η炎鳂I(yè)讓排序:p0≥p1≥…叔pn-懂1;(2嬸),按作扮業(yè)收籠益從淚大到銹小考脾察作驅(qū)業(yè);初始徐時,x拼[0滔]=目0,即X=睛{x陵[0個]}責;現(xiàn)在氏處理他作業(yè)j,假設叔已處芒理了I-畝1個作抖業(yè),其中希有k+踐1個作鍋業(yè)已牛計入情部分樸解向煙量X=定{x揭[0謎],陽x[陜1]煉…x瓶[k啊]}之中,且有d[魂x[椒0]判]≤鴿d[伙x[紹1]電]≤殺…≤兵d[近x[鉛k]芽]?!卟砍朔纸饨倏尚袣ⅰ郿[掌x[瀉i]院]≥斃i+法1(妥0≤兵i≤脾k)為了豈判斷XU細{j捉}是否慘可行,只需創(chuàng)看能月否找淺出按離期限素的非滋降次煙序插愧入作淘業(yè)j的適邁當位寇置r,使得敵作業(yè)j在此慎處插團入后財有d[斃X[陶r]弦]≥栗r+奇1,終0≤南r≤擋k.6.濫3帶有我限期捧的作證業(yè)排世序6.杜3.盈5作業(yè)綁排序架算法……便………駝…kj(3懶)判斷j是否慌允許券添加屬到部列分解搬向量X中將作非業(yè)j按時雕限的蔽非減乎次序臉插入嘉向量X=伴{x使[0星],后x[蹈1]搜…x芬[k芬]}中的從某個淘位置惜,使繞得作聲業(yè)j插入掘后,摟由k+負2個分盒量組峰成的綢部分故解向咳量仍賊按時比限的粥非減孝次序拍排列假設j被插史入于清下標r+家1處,為了嗎在r+騙1處插憶入j作業(yè)僚,x[誕r+艘1]灰…x定[k布]在向火量中侍的位制置都研要依杜次后針移一引位,扯形成哲一個倡新的防部分柄解向屠量.為了岸保證慘在添給加作量業(yè)j后的貿(mào)作業(yè)胖子集嶼仍構(gòu)扎成可碗行解澤,必舉須滿謠足:a,騰d塵[x粘[j摧]]填>j現(xiàn)+1幼(r構(gòu)+1鋸≤j歲≤k私)b,健d夠[j鋒]>社r+排1;6.梅3帶有爐限期總的作時業(yè)排柳序6.西3.杰5作業(yè)蒙排序踩算法【程序6-政4】帶時鉤限的刪作業(yè)忘排序刑程序in詞tJS姿(in穿t*d,in宅t*x,in墓tn){贈/畜/設p0≥p1≥底…≥pn1in巧tk=搞0;礎x憶[0槽]=頁0;fo財r顏(in股tj=許1;羅j簡<n范;襪j+壟+){in喉tr=照k;wh拉il聞e釀(r挎>=沫0蔬&&迎d含[x旱[r繭]]勒>d銹[j心]績&&版d團[x蒙[r來]]陡>r奧+1勝)r-志-;if壩((虹r<烤0喬||各d租[x曬[r共]]博<=遮d[棟j]般)挽&&鄭d塑[j這]>嫂r+繁1){fo昏r斑(in谷ti=活k;豪i>劫=r康+1螞;殲i-盲-)x[乏i+竹1]貝=x扮[i改];x[輩r+輛1]金=j懲;k+盛+;}}re醋tu洲r(nóng)n列k附;}6.筆3帶有犬限期孤的作廣業(yè)排碧序6.素3.矩5作業(yè)街排序銜算法n-疊1//分O(n)k+策1k-冰r每次坊迭代疼的總已時間狠為O(搭k)啄,若s是k的終瞇值,即s是最吳后所強得解諒的作蠅業(yè)數(shù).則JS所需勢的總趟時間設是O(sn).由于s<廣=n討,因此旅最壞第時間大是O(奸n2)(當di=n沙-i0≤屠i≤孤n-圖1時),所以蓋最壞甘時間張是:O(棄n2)復雜型度分屑析:對于JS,其復雜洗度參況數(shù)有餓兩個:即日作業(yè)炒數(shù)n和包釣含在揉解中吊的作附業(yè)數(shù)s.例n=待4,P=(1故00,20,15,10,)和d=領(2問,1恒,2軍,1店)01.旁X阿[0負]=勁0,碗k=害02.園j啊=1吉,r侮=k初=0痕,迫∵r>瘋=0&&d[爽x[方r]銹]=損2>鍬d[宴j]線=1&&d[講x[四r]些]>興r+話1∴痕r=搖r-雁1=艷-1∵紙r吳=-班1<嫌0&&d[稅j]漢=1血>r嘩+1∴可以畫后移,且j可以寶插入r魯+1處103.櫻j恒=2們,r蒸=k已=1曾,潮d[筒x[登r]宵]=易2=尤=d羅[j仗]且d[羊x[另r]原]=岔=r臟+1不可顫以后個移;賄又坦∵d[榜j]涌=買r+僚1扶∴可j不可低以插餐入。4.評j=嘉3,國r鳥=k羅=1磚,托d[庭x[佳r]生]=帖2>殃d[料j]互=1但d[央x[煩r]臥]=卵2=遙=r毀+1菌∴不可如以后豆移;繞又∵d[軟j]付=1敗<r望+1鉗∴太j不可簡以插歌入。X=經(jīng){1懂,守0}6.揉3帶有幅限期定的作顧業(yè)排足序6.豆3.浙5作業(yè)制排序外算法改進外的可筆行解蛇判定簽方法旱的主律要思戲想是:令b=挎mi共n{n根,霉ma織x{di|掘0≤搜i≤沖n-基1}歡}b為可巡壽行的刷作業(yè)及調(diào)度敏方案堵所需磁的最寶大時席間,b不會野超過遞作業(yè)快的最籮大時令限,也不膨會超愉過作溉業(yè)的有總數(shù)n∵b是可做行作廊業(yè)調(diào)另度方泥案所礙需的稀最大伏時間;∴可將b分成b個時臂間片蒙,每掀個時眉間片處一個爐單位;為了罩實現(xiàn)憂算法觀方便裳,引橋入了果虛擬樹時間賢片[-張1,澤0]闊,它不疑同用僻于時芹間分額配作業(yè)只排序六過程:(1碑),設作煤業(yè)已籠按收指益的討非增五次序厭排列(2煮),作業(yè)i的時農(nóng)限是di,為它財分配康的時卷間片腦是[r納-1尸,r指],其中隱,r是使0<無r≤d喜i的最帝大整判數(shù)且[r擺-1步,r姻]是空宅閑的6.淹3帶有食限期象的作光業(yè)排套序6.駱3.即6改進嘆的作疾業(yè)排褲序算揚法具體謙做法侄是:為收物益最壁大的0作業(yè)圣分配飼時間樂片[d笛0-啦1,艱d0焦],為收居益次吉大的電作業(yè)1分配找時間蘭片時家,首臘先考影慮時孩間片[d吳1-怕1,私d1滴],如果旬該時切間片銹已分扣配,再考吉慮前厲一時峽間片[d共1-壁2,饞d1請-1膠],依次什向前代尋找違第一做個空打閑的怒時間槳片分奪配之,如果d1之前棒的所佳有時頓間片踐均已牲分配隔,則輸作業(yè)1舍棄點,原則:盡可址能推貢遲對目作業(yè)萍的處箏理。6.壟3帶有癥限期證的作借業(yè)排存序6.參3.般6改進寬的作喂業(yè)排毛序算蝦法例6-確3奏n=孤5急(d貴0,釣d1爽,d咬2,養(yǎng)d3體,d除4)聯(lián)=(脆2,揀2,摟1,脊3,紐奉3)烘(加p0嫩,p所1,搏p2滋,p堤3,欠p4后)=墊(2擋0,姿15享,1部0,嫂5,第1)解:b=姐mi慚n{5,3}唉=3-101234103貪心客法--婦--愧--窩--總結(jié)勁與作殘業(yè)總結(jié)興與作終業(yè)總結(jié)糞:(1)適劣合求博解的寺問題--托-解為n-元組宏的最顫優(yōu)化搏問題問題名應該費具備潔的特脫征是:具有災最優(yōu)蒸量度問標準具有衰最優(yōu)將子結(jié)胸構(gòu)特邁性(2)貪穗心法軍的特扔征:自頂耕向下,多步薄決策,每次聯(lián)產(chǎn)生n-元組飽的一輕個分鐵量,貪心網(wǎng)法當刊前的堵選擇娃可能謀依賴編于已抄經(jīng)做飄出的掩選擇,但不佳依賴弱于尚暫未作墳出的斯選擇綱和子們問題(3)貪茶心法框求解個問題竹的過鑄程:選擇續(xù)最優(yōu)癥量度愛標準依最蛛優(yōu)量布度標欲準對禁輸入畏排序依最緒優(yōu)量揚度標釋準選絨擇輸邪入產(chǎn)福生解沉向量圍中的忽一個灑分量算法竭的正堡確性擴證明貪心紗法--真--洞--悅--總結(jié)飄與作標業(yè)總結(jié)弄與作傳業(yè)P1饅32:6-女1,6-甘2,褲6-鐵3,月6-鳳17作業(yè)寸:思考回:P1屑33:6-慌4定理6-擊3提供個了一材種高仇效的聞可行川解的場判定彼方法醒。使紅得在拉按最手優(yōu)量盾度標衛(wèi)準,協(xié)即按艘作業(yè)茄收益酒的非敲增次演序選大擇下狐一個迅作業(yè)盛后,導可以朱有效伯地判敬定是敏否可獅將該泛作業(yè)松加入薯已生林成的輔部分雖解向慮量X中,倘具體厭判定猛方法葡是:雹對任道意一潔個部請分解扒作業(yè)微子集X=(遠x0,x1,…xk),使X中的簡作業(yè)弄按期簡限的遷非降避次序憑排列倉,設a=氧(a0,a1,a2…ak),da均0≤糞da衛(wèi)1≤匆…≤d牌ak是X的這重樣的排列,為了侵判定a是否叉可行噸,只紅需對獵每個偷作業(yè)aj判斷da猾j》=留j+辯1是否品成立僅。作業(yè)i能否底加入X的充堂要條瘋件是尾,作窩業(yè)i能否幫加入銷這個顛序列配。……弦………啦…ki6.暢3帶有仰限期騾的作揉業(yè)排缺序6.訓3.擴5作業(yè)蔽排序卷算法假設約已處談理了I-顧1個作默業(yè),其中弟有k個作辮業(yè)已娘計人X(另0)醬,X術(shù)(1陶),議…,匠X(賄k)之中,且有D(好X(弦1)柱)≤識D(仔X(怠2)穴)≤騎…≤撈D(奏X(靈k)鑼),現(xiàn)在綱處理摔作業(yè)i.為了救判斷XU摟{i愉}是否??尚?只需要看能珠否找魯出按革期限礎的非擴降次擊序插魔入作譽業(yè)i的適陪當位雄置r,使得僅作業(yè)i在此羊處插旦入后飼有D(番X(郵r)泊)≥坊r,跌1≤咸r≤鵝k+凍1.……患………蠢…kirD(段X(粗r)練)≤鵲D(湊i)曉,作業(yè)i應該本放在r+看1處D(籌i)針〉r,作業(yè)i可以梳放在r+世1處,從r+向1到k的作茶業(yè)應殖向后秤移動臣。6.慎3帶有姻限期饞的作世業(yè)排怕序找作粥業(yè)i可能淘的插崖入位困置可紗如下蓮進行:將D(哥X(財k)挪),D(心X(狹k一1)錢),…,D(截X(強1)媽)逐個聽與D(蛾i)比較影,直逗到找襲到位局置r,它使勿得D(副X(惜r)劉)≤羊D(冬i),只要D(暖i)驢>節(jié)r,就可緣瑞將作郵業(yè)I在位洪置r+算1處插街入,從而外得到摩一個伶按期海限的引非降食次序青排列幅的含看有k+附1個作療業(yè)的蘿可行喚解。以上同過程割可反稅復進箭行到蘿對第n個作誼業(yè)處例理完刊畢,所得峰到的附貪心速解是表一個倉最優(yōu)胡解。這一各處理慚過程紹可用側(cè)算法6.炭3來描腦述.算法旨中引卻進了織一個姨虛構(gòu)遷的作賽業(yè)0,它放吃在X(題0)池,且D(尺X(墊0)光)=0.引入服這一崗虛構(gòu)芝作業(yè)叫是為仆了便窯于將明作業(yè)物插入飼位置1。6.脖3帶有什限期摟的作蠶業(yè)排穗序1.貪心慕選擇舌性質(zhì)所謂貪心頂選擇拍性質(zhì)是指老所求幅問題爆的整價體最把優(yōu)解很可以單通過勤一系性列局盞部最爸優(yōu)的休選擇屬,即刺貪心周選擇昌來達秒到。議這是巡壽貪心聽算法松可行捎的第蠅一個回基本澆要素怠,也墓是貪職心算擠法與例動態(tài)革規(guī)劃搭算法繞的主譜要區(qū)謀別。動態(tài)方規(guī)劃由算法罪通常過以自底尖向上的方蜂式解錫各子捉問題京,而綱貪心死算法栽則通老常以自頂增向下的方反式進便行,管以迭秒代的染方式析作出期相繼雜的貪獅心選鋼擇,傍每作迅一次蝕貪心砍選擇烈就將乎所求之問題探簡化蔬為規(guī)棗模更素小的圣子問提題。對于魄一個彩具體躍問題鵲,要爆確定餓它是屢否具舞有貪膛心選映擇性追質(zhì),律必須姜證明脹每一衛(wèi)步所丟作的瓶貪心睜選擇衡最終鍛導致份問題仆的整種體最標優(yōu)解漸。6.溪2貪心遭法的退基本殲要素當一播個問束題的紛最優(yōu)仰解包蘋含其批子問泄題的掃最優(yōu)作解時,稱此傘問題影具有突最優(yōu)雙子結(jié)寄構(gòu)性臉質(zhì).問題伯的最爪優(yōu)子傳結(jié)構(gòu)廉性質(zhì)喘是該追問題予可用窩動態(tài)鼻規(guī)劃隊算法逼或貪桐心算震法求陸解的東關鍵蔑特征競。2.最優(yōu)冒子結(jié)歷構(gòu)性犯質(zhì)6.珍2貪心及法的椒基本駐要素3.貪心應法與援動態(tài)蔽規(guī)劃古法的將異同共同舒點:都可樓用來絡求解博最優(yōu)詞化問還題;且要舒求問毒題具痛有最車優(yōu)子幼結(jié)構(gòu)毒性質(zhì).差異:貪心減法是蓋自頂產(chǎn)向下蛛的決愚策方難法,而動刮態(tài)規(guī)誰劃法枝使用贏自底施向上淹的決克策方夏法.對于使具有獄最優(yōu)皆子結(jié)稠構(gòu)的喬問題紅應該吼選用繁貪心凱算法案還是橡動態(tài)勤規(guī)劃怒算法墓求解?是否料能用榴動態(tài)勾規(guī)劃清算法天求解幟的問蜻題也映能用白貪心足算法嚇求解?當具壞有最念優(yōu)子致結(jié)構(gòu)笛特性尾的最爪優(yōu)化黎問題冷找不派到最闖優(yōu)量棍度標飽準時躍,可區(qū)以選妻用動歷態(tài)規(guī)蔬劃方倚法.定理6.蛇2算法6.簽3所描例述的繭貪心太方法泥對于鄙作業(yè)決排序躺問題黃總是羨得到鐵一個繞最優(yōu)枯解。證明:設X=眾(x0,x1,…xk)是某東個帶灑時限者作業(yè)掙排序墻問題席實例嚼的貪執(zhí)心法新求得磨的解芽,若X不是望最優(yōu)摸解,膽假設糊另有Y休=(手y0,y1,…yr)是最中優(yōu)解.(1件)假設X≠Y,必有悉且(2津)存在喪排列a,憂b使X,鄙Y可行(3頸)將a,還b中的尸相同各作業(yè)竭移到演相同產(chǎn)位置(4稻)對于蠶不同腹作業(yè)沾用X中的膛相同吧位置內(nèi)上的散作業(yè)告替換Y的作域業(yè)假定I≠紛X,因此,至少毀存在愉著這厭樣的漏兩個止作業(yè)a和b,使肥且,b∈拾Y且.由貪紙心方掏法可循以得救出,對于啞在Y中又輝不在X中的孝所有階作業(yè)b,都有pa≥pb.這是小因為非若pb>pa,則貪葡心方愚法會逃先于強作業(yè)a考慮態(tài)作業(yè)b并且沈把b計入澤到X中去.t……傷………煮…a……盲………箭…bpa≥pb6.速3帶有但限期樂的作衫業(yè)排秘序證明:設X=遇(x0,x1…xk)是某寄個帶脾時限售作業(yè)疼排序乏問題竊實例蠻的貪鑼心算谷法求炊得的權(quán)解,檔如果X不是勒最優(yōu)辨解,烤另有Y=統(tǒng)(y0,y1,…金yr)是最售優(yōu)解.設X≠承Y,則必走有點因吳為若盈則Y不是姿可行慌解;否則與,若Y是可仇行解酸,那潤么貪然心算糞法定逼會將暴屬于Y但不護屬于X的其保他作槽業(yè)繼殃續(xù)加消入X,若苦則營Y不燙是最刑優(yōu)解峰。因為擇X和布Y是守問題眾的兩程個可走行解泥,設君分別狐是X和Y的可謙行的慎作業(yè)異排列,也就些是說,按傲的次箭序調(diào)江度作守業(yè)執(zhí)開行,X和Y中的桌作業(yè)溪都不隱會超琴期.將滿中仔相同廣的作臟業(yè)移姜到相向同的波位置,并且同不影男響兩葉個排詠列的法可行痛解性若質(zhì).若存膨在作房誠業(yè)x,使得,x在序優(yōu)列坡中異的位銀置先簡于在瞎中的漠位置梅可將a序列齒中的x和z交換冶位置委,這泄樣不以會引淡起任萌何作掌業(yè)超娘期.定理6.湊2程序6-屈3的貪貝心方域法對厘于作葉業(yè)排駛序問澤題總諒是得持到一魂個最型優(yōu)解告。6.站3.腸3算法艱正確菌性--枝-(歌1)該算解法能氧否找優(yōu)到最厲優(yōu)解?………………………………yxtxzt’x與z交換前………………………………yztxxt’x與z交換后因為,則必夠存在內(nèi)兩個栗作業(yè)a和b,使得剃假草定作貞業(yè)a是使仙得霞的餃一個井收益減最大淚的作叼業(yè),校那么堅,由滲貪心勒法可湊知,貴對任森意作蚊業(yè)b,都有pa達≥p第b,否則州,作牽業(yè)b將被晨程序6-普3加入X中,質(zhì)假定b是其腎中一變作業(yè)蒜,它稍在覆中果的位饅置與a在絲式中扁的位提置相鳳同,貫現(xiàn)用a取代撕序列斷中的b,得到菠一個挪新序桃列,罪很顯蘇然誼新序乘列仍興然是區(qū)可行乓的且啦新序檢列的稿收益藍不低到于Y,可以肢重復隨這樣甜的替肌換,最終孫要么熟將Y轉(zhuǎn)換淡成X,要么移,證跡明Y不是拍可行同解.定理6.漫2程序6-抓3的貪胃心方網(wǎng)法對食于作碼業(yè)排攀序問闊題總指是得覽到一桶個最燈優(yōu)解保?!璦………………bpa≥pb………t………a………………apa≥pb用X中的果作業(yè)a替換Y中的雞作業(yè)b,得到堪新的砌作業(yè)芳集X’。6.梨3.薯3算法辭正確永性--伏-(斗1)該算仰法能糾否找膠到最赴優(yōu)解?下面極對程繞序6-放3的if語句將進一擴步細晌化。if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)業(yè)科技項目可行性研究合同
- 二零二五年度養(yǎng)老機構(gòu)聘用護工服務合同標準范本4篇
- 2025年全球及中國數(shù)字集中病人監(jiān)護系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國加密電子郵件服務行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 二零二五年度內(nèi)地居民離婚協(xié)議執(zhí)行監(jiān)督合同
- 書店裝修終止合同協(xié)議書
- 美容院裝修燈光設計合同
- 簡易網(wǎng)絡推廣居間合同
- 高考地理一輪專項復習必刷題:天氣與氣候(原卷版+解析版)
- 節(jié)能減排技術(shù)研發(fā)合同
- 《旅游資料翻譯》課件
- 《既有軌道交通盾構(gòu)隧道結(jié)構(gòu)安全保護技術(shù)規(guī)程》
- 2024年安徽省中考數(shù)學試卷含答案
- 2024年湖南省公務員錄用考試《行測》真題及答案解析
- 心尖球形綜合征
- DBJT 13-460-2024 既有多層住宅建筑增設電梯工程技術(shù)標準
- 中國證監(jiān)會證券市場交易結(jié)算資金監(jiān)控系統(tǒng)證券公司接口規(guī)范
- 2025屆天津市部分學校高三年級八校聯(lián)考英語試題含解析
- 微項目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學選擇性必修第一冊(魯科版)
- 廣東省廣州市黃埔區(qū)2024-2025學年八年級物理上學期教學質(zhì)量監(jiān)測試題
- 水產(chǎn)品冷凍加工原料處理與加工技術(shù)考核試卷
評論
0/150
提交評論