Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Giao Trinh Phan Tich Giai Thuat

Giao Trinh Phan Tich Giai Thuat

Ratings: (0)|Views: 8 |Likes:
Published by Kara Tsuboi

More info:

Published by: Kara Tsuboi on Sep 06, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/05/2010

pdf

text

original

 
Collected by
The_Wall
(11/10/2005)Giáotrình môn PnchGi
i Thu
t –

I

C C
 
N TH
 
........................................................................ Trang 1
1. M
c tiêu2. Ki
n th
 
c c
 
b
n c
n có

h
c ch
 
ng này3. Tài li
u tham kh
o có liên quan

n ch
 
ng4. N
i dung:I.1 - S
 
c
n thi
t ph
i phân tích gi
i thu
t.I.2 - Th
 
i gian th
 
c hi
n c
a gi
i thu
t.I.3 - T
su
t t
ng và

ph
 
c t
p c
a gi
i thu
t.I.4 - Cách tính

ph
 
c t
p.I.5 - Phân tích các ch
 
ng trình

quy.5. V
n

nghiên c
 
u c
a trang k
ti
pTrong ch
 
ng này chúng ta s
nghiên c
 
u các v
n

sau:
· S
c
n thi
t ph
i phân tích các gi
i thu
t.· Th
 
i gian th
c hi
n c
a ch
 
ng trình.· T
su
t t
ng và

ph
c t
p c
a gi
i thu
t.· Tính th
 
i gian th
c hi
n c
a ch
 
ng trình.· Phân tích các ch
 
ng trình

quy.
I.1- S
 
C
N THI
T PH
I PHÂN TÍCH GI
I THU
T
Trong khi gi
i m
t bài toán chúng ta có th
có m
t s
gi
i thu
t khác nhau, v
n

là c
n ph
i
ánh giá các gi
i thu
t
ó

l
a ch
n m
t gi
i thu
t t
t (nh
t). Thông th
 
ng thì ta s
c
n c
vào cáctiêu chu
n sau:1.- Gi
i thu
t
úng

n.2.- Gi
i thu
t
 
n gi
n.3.- Gi
i thu
t th
c hi
n nhanh.V
 
i yêu c
u (1),

ki
m tra tính
úng

n c
a gi
i thu
t chúng ta có th
cài

t gi
i thu
t
óvà cho th
c hi
n trên máy v
 
i m
t s
b
d
li
u m
u r
i l
y k
t qu
thu
 
c so sánh v
 
i k
t qu

ãbi
t. Th
c ra thì cách làm này không ch
c ch
n b
 
i vì có th
gi
i thu
t
úng v
 
i t
t c
các b
d
li
uchúng ta
ã th
nh
ng l
i sai v
 
i m
t b
d
li
u nào
ó. V
l
i cách làm này ch
phát hi
n ra gi
i thu
tsai ch
ch
a ch
ng minh
 
c là nó
úng. Tính
úng

n c
a gi
i thu
t c
n ph
i
 
c ch
ng minh
 
ng toán h
c. T
t nhiên

u này không
 
n gi
n và do v
y chúng ta s
không

c
p

n

ây.Khi chúng ta vi
t m
t ch
 
ng trình

s
d
ng m
t vài l
n thì yêu c
u (2) là quan tr
ng nh
t.Chúng ta c
n m
t gi
i thu
t d
vi
t ch
 
ng trình

nhanh chóng có
 
c k
t q
a , th
 
i gian th
c hi
nch
 
ng trình không
 
c

cao vì dù sao thì ch
 
ng trình
ó c
ng ch
s
d
ng m
t vài l
n mà thôi.Tuy nhiên khi m
t ch
 
ng trình
 
c s
d
ng nhi
u l
n thì thì yêu c
u ti
ït ki
m th
 
i gian
 
Collected by
The_Wall
(11/10/2005)Giáotrình môn PnchGi
i Thu
t –

I

C C
 
N TH
 
........................................................................ Trang 2
th
c hi
n ch
 
ng trình l
i r
t quan tr
ng

c bi
t

i v
 
i nh
ng ch
 
ng trình mà khi th
c hi
n c
n d
li
u nh
p l
 
n do
ó yêu c
u (3) s
 
c xem xét m
t cách k
càng. Ta g
i nó là hi
u qu
th
 
i gian th
chi
n c
a gi
i thu
t.
I.2- TH
 
I GIAN TH
 
C HI
N C
A GI
I THU
TI.2.1- Th
 
i gian th
 
c hi
n ch
 
ng trình.I.2.2-
 
n v

o th
 
i gian th
 
c hi
n.I.2.3- Th
 
i gian th
 
c hi
n trong tr
 
ng h
 
p x
u nh
t.
M
t ph
 
ng pháp

xác

nh hi
u qu
th
 
i gian th
c hi
n c
a m
t gi
i thu
t là l
p trình nó và
o
 
ng th
 
i gian th
c hi
n c
a ho
t

ng trên m
t máy tính xác

nh

i v
 
i t
p h
 
p
 
c ch
n l
c các

li
u vào.Th
 
i gian th
c hi
n không ch
ph
thu
c vào gi
i thu
t mà còn ph
thu
c váo t
p các ch
th

a máy tính, ch
t l
 
ng c
a máy tính và k
x
o c
a ng
 
i l
p trình. S
thi hành c
ng có th

uch
nh

th
c hi
n t
t trên t
p

c bi
t các d
li
u vào
 
c ch
n.

v
 
t qua các tr
 
ng
i này, cácnhà khoa h
c máy tính
ã ch
p nh
n tính ph
c t
p c
a th
 
i gian
 
c ti
p c
n nh
m
t s

o l
 
ng c
  
n s
th
c thi c
a gi
i thu
t. Thu
t ng
tính hi
u qu
s

c
p

n s

o l
 
ng này và

c bi
t

i
 
i s
ph
c t
p th
 
i gian trong tr
 
ng h
 
p x
u nh
t.
I.2.1- Th
 
i gian th
 
c hi
n ch
 
ng trình.
Th
 
i gian th
c hi
n m
t ch
 
ng trình là m
t hàm c
a kích th
 
c d
li
u vào, ký hi
u T(n) trong
ó nlà kích th
 
c (

l
 
n) c
a d
li
u vào.
Ví d
1-1
: Ch
 
ng trình tính t
ng c
a n s
có th
 
i gian th
c hi
n là T(n) = cn trong
ó c là

t h
ng s
.Th
 
i gian th
c hi
n ch
 
ng trình là m
t hàm không âm, t
c là T(n)
0
n
0.
I.2.2-
 
n v

o th
 
i gian th
 
c hi
n.
 
 
n v
c
a T(n) không ph
i là
 
n v

o th
 
i gian bình th
 
ng nh
gi
 
, phút giây... mà th
 
ng
 
c xác

nh b
 
i s
các l
nh
 
c th
c hi
n trong m
t máy tính lý t
 
ng.
Ví d
1-2
: Khi ta nói th
 
i gian th
c hi
n c
a m
t ch
 
ng trình là T(n) = cn thì có ngh
  
a làch
 
ng trình
y c
n cn ch
th
th
c thi.
I.2.3- Th
 
i gian th
 
c hi
n trong tr
 
ng h
 
p x
u nh
t.
Nói chung thì th
 
i gian th
c hi
n ch
 
ng trình không ch
ph
thu
c vào kích th
 
c mà cònph
thu
c vào tính ch
t c
a d
li
u vào. Ngh
  
a là d
li
u vào có cùng kích th
 
c nh
ng th
 
i gian th
chi
n ch
 
ng trình có th
khác nhau. Ch
ng h
n ch
 
ng trình s
p x
p dãy s
nguyên t
ng d
n, khi tacho vào dãy có th
t
thì th
 
i gian th
c hi
n khác v
 
i khi ta cho vào dãy ch
a có th
t
, ho
c khi tacho vào m
t dãy
ã có th
t
t
ng thì th
 
i gian th
c hi
n c
ng khác so v
 
i khi ta cho vào m
t dãy
ãcó th
t
gi
m.Vì v
y th
 
ng ta coi T(n) là th
 
i gian th
c hi
n ch
 
ng trình trong tr
 
ng h
 
p x
u nh
t trên

li
u vào có kích th
óc n, t
c là: T(n) là th
 
i gian l
 
n nh
t

th
c hi
n ch
 
ng trình

i v
 
i m
i d
li
u vào có cùng kích th
 
c n.
I.3- T
SU
T T
NG VÀ

PH
 
C T
P C
A GI
I THU
T
 
Collected by
The_Wall
(11/10/2005)Giáotrình môn PnchGi
i Thu
t –

I

C C
 
N TH
 
........................................................................ Trang 3
I.3.1- T
su
t t
ngI.3.2- Khái ni
m

ph
 
c t
p c
a gi
i thu
tI.3.1- T
su
t t
ng
Ta nói r
ng hàm không âm T(n) có

su
t t
ng (growth rate)
f(n) n
u t
n t
i các h
ng s
cvà n
0
sao cho T(n)
f(n) v
 
i m
i n
n
0
.Ta có th
ch
ng minh
 
c r
ng “
Cho m
t hàm không âm T(n) b
t k
, ta luôn tìm
 
c t
su
t t
ng f(n) c
a nó
”.
Ví d
1-3
: Gi
s
T(0) = 1, T(1) = 4 và t
ng quát T(n) = (n+1)
2
.

t n
0
= 1 và c = 4 thì v
 
i m
in
1 chúng ta d
dàng ch
ng minh r
ng T(n) = (n+1)
2

4n
2
v
 
i m
i n
1, t
c là t
su
t t
ng c
a T(n)là n
2
.
Ví d
1-4
: T
su
t t
ng c
a hàm T(n) = 3n
3
+ 2n
2
là n
3
. Th
c v
y, cho n
0
= 0 và c = 5 ta d
dàng ch
ng minh r
ng v
 
i m
i n
0 thì 3n
3
+ 2n
2

5n
3
I.3.2- Khái ni
m

ph
 
c t
p c
a gi
i thu
t
Gi
s
ta có hai gi
i thu
t P1 và P2 v
 
i th
 
i gian th
c hi
n t
 
ng
ng là T1(n) = 100n
2
(v
 
i t
su
t t
ng là n
2
) và T2(n) = 5n
3
(v
 
i t
su
t t
ng là n
3
). Gi
i thu
t nào s
th
c hi
n nhanh h
 
n? Câu tr
 
i ph
thu
c vào kích th
 
c d
li
u vào. V
 
i n < 20 thì P2 s
nhanh h
 
n P1 (T2<T1), do h
s
c
a 5n
3
nh
h
 
n h
s
c
a 100n
2
(5<100). Nh
ng khi n > 20 thì ng
 
c l
i do s
m
c
a 100n
2
nh
h
 
n s
m

a 5n
3
(2<3).

ây chúng ta ch
nên quan tâm

n tr
 
ng h
 
p n>20 vì khi n<20 thì th
 
i gian th
chi
n c
a c
P1 và P2

u không l
 
n và s
khác bi
t gi
a T1 và T2 là không
áng k
..Nh
v
y m
t cách h
 
p lý là ta xét t
su
t t
ng c
a hàm th
 
i gian th
c hi
n ch
 
ng trình thayvì xét chính b
n thân th
 
i gian th
c hi
n.Cho m
t hàm T(n), T(n) g
i là

ph
 
c t
p
f(n) n
u t
n t
i các h
ng c, N
0
sao cho T(n)
cf(n) v
 
i m
i n
N
0
(t
c là T(n) có t
su
t t
ng là f(n)) và kí hi
u T(n) là O(f(n)) (

c là “ô c
a f(n)”)
Ví d
1-5
: T(n)= (n+1)
2
có t
su
t t
ng là n
2
nên T(n)= (n+1)
2
là O(n
2
)
Chú ý
: O(c.f(n))=O(f(n)) v
 
i c là h
ng s
.

c bi
t O(c)=O(1)Nói cách khác

ph
c t
p tính toán c
a gi
i thu
t là m
t hàm ch
n trên c
a hàm th
 
i gian. Vì

ng nhân t
c trong hàm ch
n trên không có ý ngh
  
a nên ta có th
b
qua vì v
y hàm th
hi
n

ph
c

p có các d
ng th
 
ng g
p sau:
log
2
n, n, nlog
2
n, n
2
, n
3
, 2
2
, n!, n
n
.
Ba hàm cu
i cùng ta g
i là d
nghàm m
, các hàm khác g
i là hàm
a th
c. M
t gi
i thu
t mà th
 
i gian th
c hi
n có

ph
c t
p là m
thàm
a th
c thì ch
p nh
n
 
c t
c là có th
cài

t

th
c hi
n, còn các gi
i thu
t có

ph
c t
phàm m
thì ph
i tìm cách c
i ti
n gi
i thu
t.Khi nói

n

ph
c t
p c
a gi
i thu
t là ta mu
n nói

n hi
u qu
c
a th
 
i gian th
c hi
n c
ach
 
ng trình nên ta có th
xem vi
c xác

nh th
 
i gian th
c hiên c
a ch
 
ng trình chính là xác

nh

ph
c t
p c
a gi
i thu
t.
I.4- CÁCH TÍNH

PH
 
C T
PI.4.1- Qui t
c c
ngI.4.2- Qui t
c nhân

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->