Professional Documents
Culture Documents
Katona Gyula Y.
Szmtstudomnyi s Informcielmleti Tanszk
Budapesti Muszaki
s Gazdasgtudomnyi Egyetem
1. eloads
Algoritmuselmlet
1. eloads
1 / 23
Algoritmus fogalma
Algoritmuselmlet
1. eloads
2 / 23
A sz eredete
vgzsrol.
Algoritmuselmlet
1. eloads
3 / 23
Algoritmuselmlet
1. eloads
4 / 23
Pldul
Krds
Egy 1010 muvelet/mp
n
10
102
106
109
f (n)
n
109
108
104
0,1
n2
108
106
100
3,1 v
log10 n
1010
2 1010
6 1010
9 109
2n
1,02 107
4 1012 v
3,1 10301.012 v
sok v
Algoritmuselmlet
n!
3,6 104
2.9,10140 v
2,6 105.565.691 v
sok v
1. eloads
5 / 23
Fggvnyek nagysgrendje
Definci
Ha f (n) s g(n) az R+ egy rszhalmazn rtelmezett, vals rtkeket
felvevo fggvnyek, akkor f = O(g) jelli azt a tnyt, hogy vannak
olyan c, n0 > 0 llandk, hogy |f (n)| c|g(n)| teljesl, ha n n0 .
Algoritmuselmlet
1. eloads
6 / 23
Pldk
Algoritmuselmlet
1. eloads
7 / 23
Pldk
n1000 = O(2n )
Biz: Teljes indukcival, legyen c = 1, n0 = 106 .
6
n = 106 -re igaz, mert 106000 (24 )6000 210 .
Tegyk fel, hogy k -ra igaz.
6 akkor
Felhasznljuk,
hogy
ha
k
10
1000
1000i = 1000 1000i1 1000i1 1000i1 =
i
= (106 )i1 k i1 .
1000i
(k + 1)1000 = k 1000 + + 1000
k
+ k 1000 + +
i
k i1 k 1000i + k 1000 + 1000k 999 2 k 1000 2 2k = 2k +1 ,
ha k 106 .
log1000
(n) = O(n)
2
vehetjk a fentiek
Biz: Mivel a logaritmus fggvny monoton no,
logaritmust.
2n = O(n!)
n! = O(nn )
Katona Gyula Y. (BME SZIT)
Algoritmuselmlet
1. eloads
8 / 23
Pldk
Nem.
Biz: Indirekt, tegyk fel, hogy ltezik olyan c, n0 , hogy n2 cn teljesl
minden n n0 esetn.
Ekkor n c teljesl minden n n0 esetn, ami nyilvn nem igaz, ha
n > c.
Algoritmuselmlet
1. eloads
9 / 23
Fggvnyek nagysgrendje
Definci
Ha f (n) s g(n) az R+ egy rszhalmazn rtelmezett, vals rtkeket
felvevo fggvnyek, akkor f = (g) jelli azt a tnyt, hogy vannak
olyan c, n0 > 0 llandk, hogy |f (n)| c|g(n)| teljesl, ha n n0 .
Pldul:
100n 300 = (n), hiszen n > 300, c = 99-re teljeslnek a
felttelek
5n2 3n = (n2 )
n4 5n3 = (n4 )
2n = (n1000 )
Algoritmuselmlet
1. eloads
10 / 23
Fggvnyek nagysgrendje
Definci
Ha f = O(g) s f = (g) is teljesl, akkor f = (g).
Pldul:
100n 300 = (n)
5n2 3n = (n2 )
n4 5n3 = (n4 )
1000 2n = (2n )
1. eloads
Algoritmuselmlet
11 / 23
Fggvnyek nagysgrendje
Definci
Legyenek f (n) s g(n) a pozitv egszeken rtelmezett, vals rtku
fggvnyek. Ekkor az f = o(g) jellssel rvidtjk azt, hogy
f (n)
0, ha n .
g(n)
Pldul:
100n + 300 = o(n2 ), hiszen
100n+300
n2
0 ha n
5n2 + 3n = o(n3 )
n4 + 5n3 = o(n4 log2 n)
n1000 = o(2n )
Algoritmuselmlet
1. eloads
12 / 23
absztrakci, lnyegtelen
elemek kiszurse,
a lnyeg kihmozsa
Modell: sokfle lehet, elg tg, de elg egyszeru,
formalizlt,
pontos
B: hatkony algoritmus, bemeno adatok eredmny,
rdemes foglalkozni a kapott algoritmus elemzsvel,
rtkelsvel, megvizsglva, hogy a mdszer mennyire
hatkony
Algoritmuselmlet
1. eloads
13 / 23
elhatrozza, hogy
civilizcis erofesztseir
ol,
meghzastja j lovagjait s szp udvarhlgyeit. Mindezt persze embersgesen szeretn
tenni. Csak olyan prok egybekelst akarja,
amelyek tagjai klcsnsen vonzalmat reznek
egyms irnt. Hogyan fogjon hozz?
Termszetesen prtfogjhoz, a nagyhatalm varzslhoz, Merlinhez
fordul. Merlin rgvest felismeri, hogy itt is binris szimmetrikus
viszonyok brzolsrl van sz.
s nekilt egy pros grfot rajzolni.
Nagy darab pergament vesz elo,
A kirlyi parancs teljestshez Merlinnek lek egy olyan rendszert
hogy a kivlasztott lek kzl a grf
kell kivlasztania a grf leibol,
minden pontjhoz pontosan egy csatlakozzon. A kivlasztott lek
felelnek meg a tervezett hzassgoknak. A grfelmlet nyelvn teljes
prostst kell keresnie.
Katona Gyula Y. (BME SZIT)
Algoritmuselmlet
1. eloads
14 / 23
"
"
A
"
"
A
3
A A A
e
A
A AU A
d A c A
AA
ac
bc
! ec
!
II. !!! ,,III.
I. @
@
,
!!
!
@
,
!
I.!!! @ II. ,
@ ,
bd
ad
III.
ed
1. eloads
Algoritmuselmlet
15 / 23
A
B
B
A
Katona Gyula Y. (BME SZIT)
Algoritmuselmlet
1. eloads
16 / 23
Elgazs s korltozs
Legtbbszr van c n -es algoritmus, de nem mindegy mekkora c.
Algoritmuselmlet
1. eloads
17 / 23
Jobb algoritmus
akkor a
szrevtel: Ha G-ben minden pont foka legfeljebb ketto,
r rh rh
h
@h
r
rh r rh r
r
MF(G)
Algoritmuselmlet
1. eloads
18 / 23
Ttel
Bizonyts.
Legyen t(n) := T (n) + 1.
T (n) T (n 1) + T (n 4) + 1, ha n > 4. =
t(n) t(n 1) + t(n 4), ha n > 4.
Algoritmuselmlet
1. eloads
19 / 23
3-sznezs keresse
polinom
tlet: Bizonyos cscsokat kiszneznk pirosra, a tbbirol
idoben
el tudjuk dnteni, hogy kisznezhetok-e
kkkel s srgval.
sszkltsg: O(2n nc ).
Algoritmuselmlet
1. eloads
20 / 23
Dinamikus programozs
Optimum meghatrozsa kisebb rszfeladatok optimumainak
felhasznlsval.
ltalban egy tblzat kitltse, az j elemeket a korbban kitlttt
szmoljuk.
elemekbol
Binomilis egytthatk kiszmtsa
0
0
0
1
1
2
0
3
2
1
3
4
3
3
3
2
4
2
2
4
2
4
3
4
4
0
1
0
2
0
3
0
4
0
1
1
2
1
3
1
4
1
2
2
3
2
4
2
3
3
4
3
4
4
Ttel
n
n1
n1
=
+
k
k 1
k
Katona Gyula Y. (BME SZIT)
Algoritmuselmlet
1. eloads
21 / 23
Htizsk problma
Problma
Adottak az s1 , . . . , sm slyok, a b slykorlt s a v1 , . . . , vm rtkek.
(Minden rtk pozitv P
egsz.) MelyikP
az az I {1, . . . , m} rszhalmaz,
melyre teljesl, hogy iI si b s iI vi maximlis?
Algoritmuselmlet
1. eloads
22 / 23
Eloszr
kisebb problmra oldjuk meg: v (i, a) a maximlis elrheto
rtk az s1 , . . . , si slyokkal, v1 , . . . , vi rtkekkel s a slykorlttal
megadott feladatra.
Ekkor v (0, a) = v (i, 0) = 0 a, i-re
cl v (m, b)
a
0
b
0
i p p p p p p p p p p
p
p
`p
p`
p
v (i, a)
p p p p p p p p p p p p p p p p p p p
m?
p
p
p
p
p
p
p
p
p
p
p
keresett
rtk
Algoritmuselmlet
1. eloads
23 / 23