first-fit_algorithm_first_fit_decreasing_演算法.ppt

上传人:wj 文档编号:30872145 上传时间:2024-09-13 格式:PPT 页数:46 大小:2.82MB
下载 相关 举报
first-fit_algorithm_first_fit_decreasing_演算法.ppt_第1页
第1页 / 共46页
first-fit_algorithm_first_fit_decreasing_演算法.ppt_第2页
第2页 / 共46页
first-fit_algorithm_first_fit_decreasing_演算法.ppt_第3页
第3页 / 共46页
first-fit_algorithm_first_fit_decreasing_演算法.ppt_第4页
第4页 / 共46页
first-fit_algorithm_first_fit_decreasing_演算法.ppt_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

first-fit_algorithm_first_fit_decreasing_演算法.ppt

《first-fit_algorithm_first_fit_decreasing_演算法.ppt》由会员分享,可在线阅读,更多相关《first-fit_algorithm_first_fit_decreasing_演算法.ppt(46页珍藏版)》请在冰豆网上搜索。

first-fit_algorithm_first_fit_decreasing_演算法.ppt

附錄附錄裝箱裝箱(BinPacking)問題問題裝箱問題裝箱問題問題陳述問題陳述不同大小的若干個物件擬裝入空間有限的容器中,使用不同大小的若干個物件擬裝入空間有限的容器中,使用最小數目最小數目的容器的容器盛裝盛裝Fornobjectswithsizess1,snwhere0k時,滿足時,滿足,則稱,則稱f是是O(g(x)“Beyondsomepointk,functionfisatmostaconstantctimesg(i.e.,proportionaltog)”O(g(x)為為漸近上限漸近上限(asymptoticupperbound)以以Big-O表示演算法的複雜度表示演算法的複雜度“fisatmostorderg”,or“fisO(g)”,or“f=O(g)”alljustmeanthatfO(g)k例例3n+2=O(n)可令可令c=4,k=2,使得,使得3n+24n10n2+5n+1=O(n2)可令可令c=11,k=6,使得,使得10n2+5n+111n27*2n+n2+n=O(2n)可令可令c=8,k=5,使得,使得7*2n+n2+n8*2n10n2+5n+1=O(n3)10n2+5n+1O(n2),而,而n2n3,故,故說說10n2+5n+1=O(n3)亦可亦可8Big-O範例範例複雜度分類複雜度分類解決裝箱問題的策略:

近似解決裝箱問題的策略:

近似(Approximation)演算法演算法近似演算法近似演算法針對針對NP-hard類的問題所提出的解決方案類的問題所提出的解決方案非非產產出最佳解,但所得之解常有一定的效益出最佳解,但所得之解常有一定的效益例:

例:

保證保證較最佳解差二倍以較最佳解差二倍以內內(noworsethantwicetheoptimal)輔輔以數學證以數學證明明Thefirst-fit(FF)strategyPlacethenextobjectinthelistSintothefirstbinwhichhasnotbeencompletelyfilledintowhichitwillfit.Whenbinsarefilledcompletelytheyareclosedandifanobjectwillnotfitintoanycurrentlyopenbin,anewbinisopened.Thefirst-fitdecreasing(FFD)strategySorttheobjectsindecreasingorderofsizesandthenruntheFFalgorithm10BinPackFirstFit(S,n,bin)1initializeallbjas0.0/spaceusedupinbinj2fori1tondo3forj1tondo4ifbj+si1.0then5Bij6bjbj+si7break8j19while(bj!

=0)do10jj+111return解題策略:

演算法解題策略:

演算法Binpackingproblem.5.7.5.2.4.2.5.1.61.1.5.4.6.2.7.2.5.5ItemstobepackedThebins;(capacity1)BinPacking(1-D)BinPacking(1-D)Binpackingproblem.5.7.5.2.4.2.5.1.61.1.5.4.6.2.7.2.5.5N0=4OptimalpackingNext-fit演算法運作結果.5.7.5.2.4.2.1.5N=6.5.7.5.2.4.2.5.1.6.1.5.4.2.7.2.5.5N0=4.6.6Next-FitAlgorithmBinpackingproblemFirst-fit演算法運作結果.5.7.5.2.4.2.1.5N=5.5.7.5.2.4.2.5.1.6Next-fitalgorithm.5.7.5.2.4.2.1.5.6.6(Proofomitted)First-FitAlgorithmFirstFitDecreasing演算法演算法12362353ABCDEF4Sorttheblocksintodescendingorderfirst233345162ABCDEFNowusethefirst-fitalgorithmFirstFitDecreasing演算法演算法23312ABCDEFNowusethefirst-fitalgorithm5436FirstFitDecreasing演算法演算法FirstFitDecreasing演算法演算法233162ABCDEFNowusethefirst-fitalgorithm5435FirstFitDecreasing演算法演算法233162ABCDEFNowusethefirst-fitalgorithm54434233162ABCDEFNowusethefirst-fitalgorithm543333FirstFitDecreasing演算法演算法23162ABCDEFNowusethefirst-fitalgorithm5433333FirstFitDecreasing演算法演算法2162ABCDEFNowusethefirst-fitalgorithm543333333FirstFitDecreasing演算法演算法162ABCDEFNowusethefirst-fitalgorithm54333222FirstFitDecreasing演算法演算法16ABCDEFNowusethefirst-fitalgorithm54333222222FirstFitDecreasing演算法演算法6ABCDEFNowweusethefirstfitalgorithm54333221Wehavepackedtheminto5bins.1FirstFitDecreasing演算法演算法FirstFitDecreasing(FFD)演算法演算法效能效能Lemma(輔助定理輔助定理)LetS=(s1,sn)beaninputI,innon-increasingorder,forthebinpackingproblemandletOPT(I)betheoptimalnumberofbinsforS.AlloftheobjectsplacedbyFFDinextrabins(i.e.,binswithindexlargerthanOPT(I)havesizeatmost1/3.證明:

略證明:

略LemmaForaninputS=(s1,sn),thenumberofobjectsplacedbyFFDinextrabinsisatmostOPT(I)-1.證明:

略證明:

略Lemma令令OPT(I)=m,則則FFD演算法所需的容器數相對於最佳解所需的演算法所需的容器數相對於最佳解所需的容器數比容器數比值值為為R(I)(4/3)+(1/3m).若若S無窮大,則無窮大,則R(I)=3/2.27FirstFitDecreasing(FFD)演算法效能演算法效能Theorem.ThereexistsapolynomialtimealgorithmFFDsuchthatForallinstancesSforthebinpackingproblem,namely28解題的其他策略解題的其他策略Theworst-fitstrategyOneplacestheitemintothatcurrentlyopenbinintowhichitwillfitwiththemostroomleftover.Therandom-fitstrategyRandomFitisasimplerandomizedvariantofFirstFit.WithRandomFit,eachtimeanitemistobeplacedinabinthebinsareindexedinanorderdeterminedbyapermutationchosenindependentlyanduniformlyatrandom.Eachitemissequentiallyplacedintothelowestindexedbinintowhichitwillt,orintoanemptybinifnosuchbinisavailable.29裝箱問題的策略:

小結裝箱問題的策略:

小結上述策略屬於貪婪演算法上述策略屬於貪婪演算法(greedymethod)根據近期而非長期作出選擇根據近期而非長期作出選擇直觀上而言,同學可能認為直觀上而言,同學可能認為first-fit策略能得到更好的結策略能得到更好的結果,果,然然實際上,它們的效能均相當接近實際上,它們的效能均相當接近已可證明:

已可證明:

FFD解決方案在最壞的情況為最佳解決方案的解決方案在最壞的情況為最佳解決方案的22%在實務上,在實務上,FFD解決方案通常比解決方案通常比22%的上界更接近最優的上界更接近最優結論:

只需一個簡單的經驗法則,可以近似最佳解結論:

只需一個簡單的經驗法則,可以近似最佳解反思反思FFD把物件由大到小排列,可否先把物件把物件由大到小排列,可否先把物件從小到大排序從小到大排序,再再執行執行First-fit擺法呢?

擺法呢?

http:

/bit.ly/2qmbNgA30二二維維裝箱裝箱(2DBinPacking)問題問題問題陳述問題陳述Givenasetofrectangularobjects(wi,hi),0inandfiniterectangularbinswithwidthWandheightH,theobjectiveofa2Dbinpackingproblemistominimizethenumberoftheusedbinssuchthatallrectanglescanbepackedintotheusedbins(andeveryrectangleshaveafixedpackingdirection.)解題策略?

解題策略?

3132二維裝箱問題二維裝箱問題vs.充分利用渡輪內空間擺放運送物充分利用渡輪內空間擺放運送物33裝箱問題裝箱問題在作業系統內亦有類似的考量在作業系統內亦有類似的考量34目標目標剩餘空間越少越好剩餘空間越少越好當程式當程式能能被被CPU執執行之前,作業系統行之前,作業系統需將其載入記憶體需將其載入記憶體以利以利CPU存取存取隨著之前的程式隨著之前的程式啟啟動與結束,原先程動與結束,原先程式佔用的記憶體空式佔用的記憶體空間逐漸形成不連續間逐漸形成不連續的片段區塊的片段區塊(破洞,破洞,hole)配置策略配置策略:

firstfit、bestfit與與nextfitAllocatinga16MBblockusing裝箱問題裝箱問題在作業系統內亦有類似的考量在作業系統內亦有類似的考量35哪一種配置策略的效能較佳?

哪一種配置策略的效能較佳?

諾諾亞的貝果亞的貝果問題問題NoahsBagelsProblem諾亞的貝果問題諾亞的貝果問題原文:

原文:

http:

/www.cs.technion.ac.il/hadas/PUB/fun98.pdf問題陳述問題陳述(problemstatement)諾亞是貝果諾亞是貝果(bagel)商人,擁有多家烘培坊,需決定旗下每家麵商人,擁有多家烘培坊,需決定旗下每家麵包店生包店生產產不同風味的貝果數量不同風味的貝果數量貝果的生貝果的生產產受制於店受制於店內內空間、原料、不同口味受顧客歡迎的程度空間、原料、不同口味受顧客歡迎的程度目標目標:

找到最大限度地提高收入的解決方案找到最大限度地提高收入的解決方案(收入收入問題問題),同時保,同時保證他的顧客滿意證他的顧客滿意(平衡問題平衡問題)重要結果重要結果為為裝箱問題裝箱問題的變形的變形收入問題收入問題與與平衡問題平衡問題均被證明為均被證明為NP-hard在某些條件下,每個問題存在多項式時間在某些條件下,每個問題存在多項式時間內內可找得最佳解決方案可找得最佳解決方案37公式化公式化(Formulation)(1/3)b1,b2,bN:

N家烘培坊家烘培坊f1,f2,fF:

F種口味種口味Qi:

烘培坊烘培坊bi每日生每日生產產貝貝果的最大數目果的最大數目(最大最大產產量量)每日生每日生產產貝果的最大總量貝果的最大總量Q=Q1+Q2+QNCi:

烘培坊烘培坊bi的的櫥櫥櫃數櫃數(生生產產貝果所需的原料存量貝果所需的原料存量)pi:

口味口味fi受顧客歡迎的程度受顧客歡迎的程度(比例比例)決定每一家決定每一家烘培坊烘培坊bi需生需生產產口味口味fi的的貝果數為多少貝果數為多少以二個以二個矩陣描述:

矩陣描述:

櫥櫥櫃矩陣櫃矩陣A、貝果分派矩陣、貝果分派矩陣B38公式化公式化(2/3)以二個以二個矩陣描述:

矩陣描述:

櫥櫥櫃矩陣櫃矩陣A、貝果分配矩陣、貝果分配矩陣B口味口味fi的原料存於烘培坊的原料存於烘培坊bj之中之中:

口味口味fi的的貝果由烘培坊貝果由烘培坊bj生生產產的個數的個數:

口味口味fi的的貝果被所有店家生貝果被所有店家生產產的總數的總數矩陣矩陣A、B滿足:

滿足:

收入問題收入問題(Revenueproblem)給定給定N,F,p1,pF,Q1,QN及及C1,CN,找到指派矩陣,找到指派矩陣A、B使得使得39最大化最大化Wj為piQ取整數且公式化公式化(3/3)平衡問題平衡問題(Balanceproblem)給定給定N,F,p1,pF,Q1,QN及及C1,CN,找到指派矩陣,找到指派矩陣A、B使得使得找到完美的指派使得收入最大且平衡最佳找到完美的指派使得收入最大且平衡最佳(ee=0)MOD(multimedia-on-demand)由中央處理器和由中央處理器和N個共享磁盤組成的系統,可依客個共享磁盤組成的系統,可依客戶戶需求同時撥需求同時撥放多個不同串流的影片放多個不同串流的影片F部影片部影片f1,f2,fF,每個影片的熱門度,每個影片的熱門度pi,磁碟磁碟j播送容量限制播送容量限制Qj(同時可撥放的影片數同時可撥放的影片數)磁碟磁碟j儲存空間的限制儲存空間的限制Cj(最多能存放的影片數最多能存放的影片數)決定哪些影片決定哪些影片(副本副本)放置於哪些磁碟,能滿足熱門度需求且同時放置於哪些磁碟,能滿足熱門度需求且同時播送的個數最大播送的個數最大40且且e最小最小最大收入最大收入vs.最大平衡最大平衡41C1=2Q1=20C2=1Q2=10W1=14W2=14W3=2演算法演算法定理定理.若各店的容量比例相同若各店的容量比例相同()且且,則完美分配存在並可於多項式時間,則完美分配存在並可於多項式時間內內找到找到解決方案解決方案Au針對烘培坊一個接著一個運算針對烘培坊一個接著一個運算針對每一個烘培坊針對每一個烘培坊bj,決定其,決定其產產量恰好為量恰好為Qj、口味至多、口味至多Cj種種烘培坊依其原料櫃多寡排序,烘培坊依其原料櫃多寡排序,C1C2CN,依序被考慮,依序被考慮不同口味的貝果需求依其數量多寡排序好不同口味的貝果需求依其數量多寡排序好W1W2WF將顧客的將顧客的剩餘剩餘需求存放於排序好的資料結構需求存放於排序好的資料結構R之中之中初始化初始化:

R1=W1,R2=W2,R1,R2,Rm,1mF,表示表示待待處理處理的的第一種口味的貝果需第一種口味的貝果需R1個,第二種口味需個,第二種口味需R2個,個,第第m種口味需種口味需Rm個個R陣列陣列內內容將隨著演算法執行而更新容將隨著演算法執行而更新Au=Greedy_filling+Moving_window程序程序4243below.Greedy_Filling()執行範例執行範例(板書手稿板書手稿)444546諾亞的貝果問題:

演算法諾亞的貝果問題:

演算法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1