版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
計(jì)算理論與算法分析設(shè)計(jì)2024/7/52
of158前言旅行商問題TravelingSalesmanProblem(TSP):
設(shè)有n個城市,已知任意兩城市之間距離,現(xiàn)有一推銷員想從某一城市出發(fā)巡回經(jīng)過每一城市(且每城市只經(jīng)過一次),最后又回到出發(fā)點(diǎn),問如何找一條最短路徑。窮舉法的時間復(fù)雜性為O(n!)n=21時,21!=5.11×1019,設(shè)每條路徑需CPU時間為1ns
,則總共要1620多年才能完成。2024/7/53
of158前言Asurveyofalgorithmicdesigntechniques.Abstractthinking.Howtodevelopnewalgorithmsforanyproblemthatmayarise.Beagreatthinkeranddesigner.Not:Alistofalgorithms-Learntheircode-Tracethemuntilwork-Implementthem-beamundaneprogrammer2024/7/54
of158前言:學(xué)習(xí)算法的意義
Story-1
Seriousdamagetoyourpositionwithinthecompany!!!“Ican’tfindanefficientalgorithm,IguessI’mjusttoodumb.”2024/7/55
of158前言:學(xué)習(xí)算法的意義
Story-2
“Ican’tfindanefficientalgorithm,becausenosuchalgorithmispossible!”Unfortunately,provingintractabilitycanbejustashardasfindingefficientalgorithms!!!
Nohope!!!P
NP2024/7/56
of158前言:學(xué)習(xí)算法的意義
Story-3
“Ican’tfindanefficientalgorithm,butneithercanallthesefamouspeople”2024/7/57
of158前言:學(xué)習(xí)算法的意義
Story-4
“Anyway,wehavetosolvethisproblem.Canwesatisfywithagoodsolution?“2024/7/58
of158
(1)
皇后問題:這是高斯1850年提出的一個著名問題:國際象棋中的“皇后”在橫向、直向、和斜向都能走步和吃子,問在n×n格的棋盤上如何能擺上n個皇后而使她們都不能互相攻擊。
一些有趣的問題設(shè)n=4,試一試。當(dāng)n很大時,問題很難。
對于n=8,現(xiàn)已知此問題
共有92種解,但只有12
種是獨(dú)立的,其余的都
可以由這12種利用對稱
或旋轉(zhuǎn)而得到。2024/7/59
of158(2)背包問題1:有一旅行者要從n種物品中選取不超過b千克重的行李隨身攜帶,要求總價值最大。例:設(shè)背包的容量為50千克。物品1重10千克,價值60元;物品2重20千克,價值100元;物品3重30千克,價值120元。求總價值最大。(3)背包問題2:有一商人要從n種貨物中選取不超過b千克重的行李隨身攜帶,要求總價值最大。例:設(shè)背包的容量為50千克。物品1有60千克,每千克價值60元;物品2有20千克,每千克價值100元;物品3有40千克,每千克價值120元。求總價值最大。2024/7/510
of158過橋問題(4)有4個人打算過橋,他們都在橋的某一端。時間是晚上,他們只有一只手電筒。最多只能有兩個人同時過橋,而且必須攜帶手電筒。必須步行將手電筒帶來帶去。每個人走路的速度不同:甲過橋需要1分鐘,乙2分鐘,丙5分鐘,丁10分鐘。兩個人一起走的速度等于其中較慢的人的速度。要求過橋總時間最短。2024/7/511
of158(5)有八種化學(xué)藥品A、B、C、D、W、X、Y、Z要裝箱運(yùn)輸。雖然量不大,僅裝1箱也裝不滿,但出于安全考慮,有些藥品不能同裝一箱。在下表中,符號“×”表示相應(yīng)的兩種藥品不能同裝一箱。運(yùn)輸這八種化學(xué)藥品至少需要裝
箱。
藥品裝箱問題2024/7/512
of1582024/7/513
of158(5)著色:北京地圖2024/7/514
of158著色問題就是對圖G
的每個頂點(diǎn)指定一種顏色,使鄰接的結(jié)點(diǎn)著不同的顏色.G
的著色數(shù)記為x(G)。結(jié)點(diǎn)著色2024/7/515
of158韋爾奇
鮑威爾法(WelchPowell)1)將圖G
中的結(jié)點(diǎn)按度數(shù)遞減的次序進(jìn)行排列(相同度數(shù)的結(jié)點(diǎn)的排列隨意)。2)用第一種顏色,對第一點(diǎn)著色,并按排列次序?qū)εc前面結(jié)點(diǎn)不相鄰的每一點(diǎn)著同樣的顏色。3)用第二種顏色對尚未著色的點(diǎn)重復(fù)第2步,直到所有的點(diǎn)都著上顏色為止。2024/7/516
of158例試用韋爾奇
鮑威爾法對圖進(jìn)行著色。按度數(shù)遞減次序排列各點(diǎn)CABFGHDE
第一種顏色:
第二種顏色:
第三種顏色:解:C,A,GB,H,D,EF所以圖是三色的。另外圖不能是兩色的,因?yàn)閳D中有A,B,F兩兩相鄰,所以x(G)=32024/7/517
of158Y、X、D、A、B、C、W、Z2024/7/518
of158前言(5)續(xù)已知研究生選課情況,安排課程考試的日程研究生選課情況表
姓名選修課1選修課2選修課3
楊一算法分析(A)形式語言(B)計(jì)算機(jī)網(wǎng)絡(luò)(E)
石磊計(jì)算機(jī)圖形學(xué)(C)模式識別(D)
魏濤計(jì)算機(jī)圖形學(xué)(C)計(jì)算機(jī)網(wǎng)絡(luò)(E)人工智能(F)
馬耀先模式識別(D)人工智能(F)算法分析(A)
齊硯生形式語言(B)人工智能(F)2024/7/519
of158
課程關(guān)系圖DEFCBA頂點(diǎn):表示課程;
姓名選修課1選修課2選修課3
楊一算法分析(A)形式語言(B)計(jì)算機(jī)網(wǎng)絡(luò)(E)
石磊計(jì)算機(jī)圖形學(xué)(C)模式識別(D)
魏濤計(jì)算機(jī)圖形學(xué)(C)計(jì)算機(jī)網(wǎng)絡(luò)(E)人工智能(F)
馬耀先模式識別(D)人工智能(F)算法分析(A)
齊硯生形式語言(B)人工智能(F)邊:同一研究生選修的課程用邊連接----有邊連接的課程不能按排在同一時間考試;2024/7/520
of158◆課程考試按排問題轉(zhuǎn)化為圖的著色問題
--用盡可能少的顏色該圖的每個頂點(diǎn)著色,使相鄰的頂點(diǎn)著上不同的顏色;
---每一種顏色代表一個考試時間,著上相同顏色的頂點(diǎn)是可以安排在同一時間考試的課程;按頂點(diǎn)度數(shù)從大到小排列:FAECBD
F:藍(lán)色
;A,C:紅色;E,D:綠色;B:黃色;
即A,C可安排在同一時間考試,E,D可安排在同一時間考試;DEFCBAACEFBD2024/7/521
of158螞蟻問題(6)有一根10厘米的細(xì)木桿,在第2厘米、第4厘米、第5厘米、第8厘米、第9厘米這五個位置上各有一只螞蟻。木桿很細(xì),不能同時通過一只螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只能朝前走或調(diào)頭,但不會后退。所有螞蟻的速度都相同,均為1cm/s。當(dāng)任意兩只螞蟻碰頭時,兩只螞蟻會同時掉頭并且仍然按1cm/s朝相反方向走。求螞蟻掉下木桿的最小和最大時間。123456789abcde2024/7/522
of1585秒,a掉;6秒,e掉;8秒,b和d掉;9秒,c掉。1234567890.5s…3.5sabcdeabcde2024/7/523
of158本課程教材及主要參考書[1](教材)王曉東.計(jì)算機(jī)算法設(shè)計(jì)與分析(第3版),電子工業(yè)出版社,2007
ISBN:978-7-121-04278-2
[2](教材)HarryR.Lewis.計(jì)算理論基礎(chǔ)(第2版),清華大學(xué)出版社,2006ISBN:7-302-13288-7[3](美)科曼(Cormen,T.H.).潘金貴譯.算法導(dǎo)論(IntroductiontoAlgorithmsSecondEdition),機(jī)械工業(yè)出版社,2006.9[4]MichaelSipser.IntroductiontotheTheoryofComputation[M].Thomson,secondedition,2006.2024/7/524
of158課程內(nèi)容數(shù)學(xué)基礎(chǔ)、遞歸與分治、動態(tài)規(guī)劃、貪心法、回溯法、分支限界法、概率算法、線性規(guī)劃與網(wǎng)絡(luò)流、計(jì)算理論基礎(chǔ)(集合關(guān)系與語言、有窮自動機(jī)、圖靈機(jī)、不可判定性、計(jì)算復(fù)雜性、NP完全性)、近似算法等.課程安排
56學(xué)時成績平時成績30%,期末閉卷成績70%CH1算法概述2024/7/526
of158一、算法設(shè)計(jì)與分析的研究對象非數(shù)值問題二、什么是算法例1已知兩正整數(shù)m和n,求二者的最大公因子算法1.1歐幾里德(Euclid)算法輸入正整數(shù)m,n輸出m和n的最大公因子
算法概述2024/7/527
of158定理對任意正整數(shù)m和任意非負(fù)整數(shù)n,并且m>n≥0
有g(shù)cd(m,n)=gcd(n,mmodn)
如gcd(24,18)=gcd(18,6)=gcd(6,0)=62024/7/528
of158整除的基本性質(zhì)若a|b且a|c,則對任意的整數(shù)m,n,有a|(bm+cn).證明因?yàn)閍|b且a|c,故b=aq1和c=aq2.于是,
bm+cn=a(q1m+q2n),
所以,a|(bm+cn).2024/7/529
of158最大公約數(shù)(最大公因子)定理
設(shè)a和b都是正整數(shù),且a>b,
a=bq+r0<r<b
其中q和r都是正整數(shù).則:①a和b的任一公約數(shù)也是b和r的公約數(shù);
②b和r的任一公約數(shù)也是a和b的公約數(shù);
③(a,b)=(b,r);2024/7/530
of158a=bq+r
①a和b的公約數(shù)也是b和r的公約數(shù);證明①若d|a且d|b,則d|(a-bq)即d|r.這即表明:若d是a和b的公約數(shù),d必是b和r的公約數(shù).②若d|b且d|r,則:d|(bq+r)即d|a.這即是說若d是b和r的公約數(shù),d也必是a和b的公約數(shù).2024/7/531
of158S1求余數(shù):m除以n,令r是所得的余數(shù),轉(zhuǎn)S2S2判斷余數(shù):若r=0,則輸出n的當(dāng)前值,算法結(jié)束,否則轉(zhuǎn)S3S3代替:m←n,n←r,轉(zhuǎn)S12024/7/532
of158算法的五個特征1)有窮性2)確定性3)輸入4)輸出5)可行性算法的定義:Informally,analgorithmisanywell-definedcomputationalprocedurethattakessomevalue,orsetofvalues,asinputandproducessomevalue,orsetofvalues,asoutput.Analgorithmisthusasequenceofcomputationalstepsthattransformtheinputintotheoutput.
2024/7/533
of158評價算法的標(biāo)準(zhǔn)1)算法執(zhí)行的時間短(時間復(fù)雜性)2)算法需要的存儲空間小(空間復(fù)雜性)3)正確性
4)可讀性5)最優(yōu)性2024/7/534
of158算法的時間復(fù)雜性:處理一個問題規(guī)模為n的輸入,算法所需要的執(zhí)行次數(shù)(或執(zhí)行的步數(shù)),記為T(n)算法的空間復(fù)雜性:處理一個問題規(guī)模為n的輸入,算法所需要的空間數(shù),記為S(n)2024/7/535
of158例:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?
a+b+c=1005a+3b+c/3=100cmod3=02024/7/536
of158k=0;for(a=0;a<=n;a++){for(b=0;b<=n;b++){for(c=0;c<=n;c++){if((a+b+c==n)&&(5*a+3*b+c/3==n)&&(c%3==0)){
g[k]=a;//k為解的個數(shù),如第1組解為g[1]=10,…
m[k]=b;
s[k]=c;k++;}
}}}
a+b+c=1005a+3b+c/3=100cmod3=0內(nèi)循環(huán)的循環(huán)體執(zhí)行(n+1)(n+1)(n+1)=n3+3n2+3n+12024/7/537
of158算法改進(jìn)k=0;for(a=0;a<=n/5;a++){for(b=0;b<=n/3;b++){
c=n–a–b;if((5*a+3*b+c/3==n)&&(c%3==0)){
g[k]=a;
m[k]=b;
s[k]=c;k++;}
}}}
a+b+c=n5a+3b+c/3=ncmod3=0內(nèi)循環(huán)的循環(huán)體執(zhí)行(n/5+1)(n/3+1)=n2/15
+8n/15+12024/7/538
of158O、o、
、
、
第一種理解方法設(shè)f和g是定義域?yàn)樽匀粩?shù)N上的函數(shù)f(n)=O(g(n)).
若存在正數(shù)c和n0使得對一切n
n0
有0f(n)cg(n)f(n)=(g(n)).
若存在正數(shù)c和n0使得對一切n
n0有0cg(n)f(n)f(n)=o(g(n)).
若對任意正數(shù)c存在n0使得對一切n
n0有0f(n)<cg(n)f(n)=(g(n)).
若對任意正數(shù)c存在n0使得對一切n
n0有0cg(n)<f(n)f(n)=(g(n))
f(n)=O(g(n))且f(n)=(g(n))2024/7/539
of158O、o的區(qū)別設(shè)f和g是定義域?yàn)樽匀粩?shù)N上的函數(shù)f(n)=O(g(n)).
若存在正數(shù)c和n0使得對一切n
n0
有
0f(n)cg(n)f(n)=o(g(n)).
若對任意正數(shù)c存在n0使得對一切n
n0有0f(n)<cg(n)O(g(n))是對某個常數(shù)c>0成立;
o(g(n))是對所有常數(shù)c>0成立.2024/7/540
of158O、o、
、
、
第二種理解方法求復(fù)雜性函數(shù)階的極限方法例如,f(n)=n2/4,g(n)=n2,則n2/4=θ(n2)f(n)=logn,g(n)=n,則logn=o(n)o
2024/7/541
of158f(n)c0g(n)c1g(n)n0f(n)is
(g(n))
f(n)cg(n)n0f(n)isO(g(n))
f(n)cg(n)n0f(n)is
(g(n))
2024/7/542
of158例1:等式0.75n2=O(n)何時成立?等式3n1/2=O(n)在n=9時成立嗎?永不成立n=9時,雖然兩邊看似值相等,
但等式不成立2024/7/543
of158例2:60n2+5n+160n2+5n+1≤60n2+5n2+n2=66n2
對于n
≥1
所以60n2+5n+1=O(n2)
又60n2+5n+1≥60n2
對于n
≥1
所以60n2+5n+1=Ω(n2)綜上60n2+5n+1=Θ(n2)2024/7/544
of158例3:1+2+…+n
1+2+…+n
≤n+n+…+n=n2
對于n
≥1
所以
1+2+…+n=O(n2)
又1+2+…+n
≥1+1+…+1=n
對于n
≥1
所以1+2+…+n=Ω(n)綜上1+2+…+n=?2024/7/545
of158法1又1+2+…+n
≥
2024/7/546
of158法2:分割求和為方便起見,設(shè)n為偶數(shù),則
2024/7/547
of158
所以1+2+…+n=Ω(n2)綜上1+2+…+n=Θ(n2)練習(xí):
1、給出1k+2k+…+nk
的Θ表示
2、給出logn!的Θ表示
1、1k+2k+…+nk=Θ(nk+1)2、logn!=Θ(nlog
n)2024/7/548
of158標(biāo)準(zhǔn)復(fù)雜性函數(shù)的比較
O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)注意:1)不能劃等號2)以下若無特殊聲明,log是以2為底的對數(shù)3)上式只有在n較大的時候成立O(1)的含義?計(jì)算時間由一個常數(shù)(零次多項(xiàng)式)來限界多項(xiàng)式時間階指數(shù)時間階2024/7/549
of158指數(shù)時間一個算法的時間復(fù)雜性如果是O(2n),則稱此算法需要指數(shù)時間。多項(xiàng)式時間一個算法的時間復(fù)雜性如果是O(nk)(k為有理數(shù)),則稱此算法需要多項(xiàng)式時間。有效算法以多項(xiàng)式時間為限界的算法稱為有效算法。2024/7/550
of158TimetoFinishInputSize(n)O(nx)O(n)O(1)O(n
lg
n)O(an)2024/7/551
of158例例:算法A1,A2的時間復(fù)雜性分別是n,2n,設(shè)100μs是一個單位時間,求A1,A2在1s內(nèi)能處理的問題規(guī)模。已知lg2=0.301T(n)=nT(n)*10-4=1即n*10-4=1所以n=
104
2024/7/552
of158時間復(fù)雜性函數(shù)問題規(guī)模102030405060n10-52*10-53*10-54*10-55*10-56*10-5n210-44*10-49*10-416*10-425*10-436*10-4n310-38*10-327*10-364*10-3125*10-3216*10-3n510-13.224.31.7分5.2分13.0分2n.001秒1.0秒17.9分12.7天35.7年366世紀(jì)3n.059秒58分6.5年3855世紀(jì)2*108世紀(jì)1.3*1013世紀(jì)2024/7/553
of158
時間復(fù)雜性函數(shù)1小時可解的問題實(shí)例的最大規(guī)模計(jì)算機(jī)快100倍的計(jì)算機(jī)快1000倍的計(jì)算機(jī)nN1100N11000N1n2N210N231.6N2n3N34.64N310N3n5N42.5N43.98N42nN5N5+6.64N5+9.973nN6N6+4.19N6+6.292024/7/554
of158課堂練習(xí)假設(shè)某算法在輸入規(guī)模為n的時間復(fù)雜性為T(n)=3*2n。在某臺計(jì)算機(jī)上實(shí)現(xiàn)并完成該算法的時間為t秒?,F(xiàn)在另一計(jì)算機(jī),其運(yùn)行速度為第一臺的64倍,那么在這臺新機(jī)器上用同一算法在t秒內(nèi)能解輸入規(guī)模為多大的問題?2024/7/555
of158課堂練習(xí)解:設(shè)新機(jī)器用同一算法內(nèi)能解輸入規(guī)模為n1的問題,那么有3*2n=3*2n1/64,解得n1=n+6.數(shù)學(xué)符號2024/7/557
of158符號一、符號說明1.取整函數(shù)
x
:小于等于x的最大整數(shù)
x
:大于等于x的最小整數(shù)性質(zhì)
x-1<x
x
x
<x+12024/7/558
of158符號2024/7/559
of158符號
a/b
[a+(b-1)]/b
a/b
[a-(b-1)]/b2024/7/560
of158符號鴿巢原理(又名抽屜原理)
若n+1只鴿子飛入n個鴿巢,那么至少有一個鴿巢至少有2只鴿子.
若n只鴿子飛入m(n>m)個鴿巢,那么至少有一個鴿巢至少有
(n-1)/m+1只鴿子.2024/7/561
of158Halloweentreats
EveryyearthereisthesameproblematHalloween:Eachneighborisonlywillingtogiveacertaintotalnumberofsweetsonthatday,nomatterhowmanychildrencallonhim,soitmayhappenthatachildwillgetnothingifitistoolate.Toavoidconflicts,thechildrenhavedecidedtheywillputallsweetstogetherandthendividethemevenlyamongthemselves.Fromlastyear'sexperienceofHalloweentheyknowhowmanysweetstheygetfromeachneighbor.Sincetheycaremoreaboutjusticethanaboutthenumberofsweetstheyget,theywanttoselectasubsetoftheneighborstovisit,sothatinsharingeverychildreceivesthesamenumberofsweets.Theywillnotbesatisfiediftheyhaveanysweetsleftwhichcannotbedivided.
2024/7/562
of158SampleInput45(thenumberofchildrenandthenumberofneighbors,respectively.)123753671125131700SampleOutput35234Halloweentreats
2024/7/563
of158符號2對數(shù)
lg2=0.3012024/7/564
of158符號證明:2024/7/565
of158符號logb
N=loga
N/logablogeN=lnN
e=2.71828logab=1/logba2024/7/566
of158符號二、階乘
n!=o(nn)
n!=
(2n)logn!=(nlogn)2024/7/567
of158符號三、求和等比級數(shù)的求和公式2024/7/568
of158符號調(diào)和級數(shù)2024/7/569
of158利用積分2024/7/570
of1582024/7/571
of158遞歸式方法一:特征方程法2024/7/574
of158斐波那契數(shù)遞歸方程及其求解定義:給定一個數(shù)的序列T(0),T(1),…,
T(n),…,把T(n)和某些T(i)(0≤i<n)聯(lián)系起來的一個等式就叫做一個遞歸關(guān)系。如果一對大兔子每月能生一對小兔,而每對小兔
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源車輛贈予及充電設(shè)施安裝合同3篇
- 中國石化2024年度原料進(jìn)口協(xié)議模板版
- 2025年智能工廠車間場地租賃及維護(hù)服務(wù)合同范本4篇
- 二零二五年院落出租與非物質(zhì)文化遺產(chǎn)保護(hù)合同3篇
- 2025版智能門面房租賃服務(wù)合作協(xié)議4篇
- 2025版海外院校代理傭金合同標(biāo)準(zhǔn)范本4篇
- 二零二五版高速公路監(jiān)控系統(tǒng)光纜安裝合同3篇
- 2025年項(xiàng)目經(jīng)理入職及項(xiàng)目團(tuán)隊(duì)激勵方案合同3篇
- 現(xiàn)代醫(yī)療技術(shù)下的疾病預(yù)防策略
- 二零二五版美團(tuán)騎手薪酬福利及晉升體系合同4篇
- 【采購管理優(yōu)化探究文獻(xiàn)綜述3000字】
- 《大學(xué)生職業(yè)發(fā)展與就業(yè)指導(dǎo)》課程標(biāo)準(zhǔn)
- 第23課《出師表》課件(共56張)
- GB/T 3953-2024電工圓銅線
- 發(fā)電機(jī)停電故障應(yīng)急預(yù)案
- 接電的施工方案
- 幼兒阿拉伯?dāng)?shù)字描紅(0-100)打印版
- 社會組織等級評估報(bào)告模板
- GB/T 12173-2008礦用一般型電氣設(shè)備
- 新媒體研究方法教學(xué)ppt課件(完整版)
- 2020新版?zhèn)€人征信報(bào)告模板
評論
0/150
提交評論