You are on page 1of 12

Algoritmuselmlet

Fggvnyek nagysgrendje, elgazs s korltozs, dinamikus


programozs

Katona Gyula Y.
Szmtstudomnyi s Informcielmleti Tanszk
Budapesti Muszaki

s Gazdasgtudomnyi Egyetem

1. eloads

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

1 / 23

Algoritmus fogalma

nem definiljuk rendesen az algoritmus fogalmt.


Egyelore
Eljrs, recept, mdszer.
Jl meghatrozott lpsek egymsutnja, amelyek mr elg
pontosan, egyrtelmuen

megfogalmazottak ahhoz, hogy gpiesen


vgrehajthatk legyenek.

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

2 / 23

A sz eredete

Al Khvarizmi (Mohamed ibn Msza) bagdadi matematikus a IX.

szzadban knyvet rt az egszekkel val alapmuveletek

vgzsrol.

algoritmus szmtgp program


vals problma = absztrakt modell = algoritmus = program
Cl: feladatokra hatkony eljrs kidolgozsa
Hatkony = gyors, kevs memria, kevs trhely

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

3 / 23

Milyen hatkony egy algoritmus?

Legtbbszr csak a lpsszm nagysgrendje rdekes.

Hogyan fgg a lpsszm az input mrettol?


Az input mrett legtbbszr n-nel jelljk.
A lpsszm ennek egy f fggvnye, azaz ha n mretu az input,
akkor az algoritmus f (n) lpst vgez.
Igazbl az f fggvny az rdekes.
100n vagy 101n, ltalban mindegy
n2 vagy n3 mr sokszor nagy klnbsg, de nha mindegy
n2 vagy 2n mr mindig nagy klnbsg

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

4 / 23

Pldul
Krds
Egy 1010 muvelet/mp

sebessgu szmtgp mennyi ideig dolgozik,


ha f (n) muveletet

kell vgrehajtani n mretu bemenetre?

n
10
102
106
109

f (n)
n
109
108
104
0,1

n2
108
106
100
3,1 v

Katona Gyula Y. (BME SZIT)

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 .

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

6 / 23

Pldk

100n + 300 = O(n)


Biz: 100n + 300 100n + n 101n cn, ha n 300, c = 101
5n2 + 3n = O(n2 )
Biz: 5n2 + 3n 5n2 + 3n2 8n2 cn2 , ha n 100, c = 8
n4 + 5n3 = O(n5 )
Biz: n4 + 5n3 6n4 n5 cn5 , ha n 6, c = 1

Katona Gyula Y. (BME SZIT)

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

Igaz-e, hogy n2 = O(n)?

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.

Katona Gyula Y. (BME SZIT)

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 )

Katona Gyula Y. (BME SZIT)

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 )

Katona Gyula Y. (BME SZIT)

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 )

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

12 / 23

Algoritmikus problmk megoldsa

Algoritmikus problma modell program


A: pontosts, egyszerusts,

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

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

13 / 23

Arthur kirly civilizcis trekvsei


Arthur kirly fnyes udvarban 150 lovag s
150 udvarhlgy l. A kirly, aki kzismert

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

Kzlekedsi lmpk temezse


 a 
b
  






lmpk: ac, ad, bc, bd, ec s ed


llapot: lmpk {P, Z }

"
"
A
"
"
A
3



   A A A
e

A

   A AU A
d  A c A

AA


Feladat: Mennyi a minimlis szm


llapot, ami biztonsgos s nem
okoz rk dugt?

ac

bc
! ec
!
II. !!! ,,III.

I. @

@
,
!!
!
@
,
!
I.!!! @ II. ,
@ ,

bd

ad

III.
ed

Grfelmleti nyelven: Mennyi G kromatikus szma?


Katona Gyula Y. (BME SZIT)

1. eloads

Algoritmuselmlet

15 / 23

Mobiltelefon-tjtszk frekvencia kiosztsa


Egy adott tjtszhoz egy adott frenkvencit rendelnek.
Egy telefon a kzelben levo tjtszk kzl vlaszt.
tjtszk frekvencija klnbzzn.
Kzel levo
A
A
C
C

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.

Bontsunk esetekre, azokat alesetekre, . . . = fa


rtkeljk az eseteket = bizonyos irnyokba nem kell tovbbmenni.
= (korltoz heurisztika)
Pl. sakkllsok

Feladat: Keressnk maximlis mretu fggetlen ponthalmazt egy adott


G grfban.
Nyilvnval mdszer:
Minden rszhalmazt vgignznk = O(2n ) lps

Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

17 / 23

Jobb algoritmus
akkor a
szrevtel: Ha G-ben minden pont foka legfeljebb ketto,

feladat lineris idoben


megoldhat: G izollt pontok, utak s krk
diszjunkt unija. = komponensenknt minden msodik" pontot
bevesszk a halmazba.
(izollt pontok)
r
rh
B
B
Br

r rh rh
h
@h
r

 rh r rh r
r

MF(G)

1. Ha G-ben minden pont foka 2, akkor MF(G) az elobbi


eljrs ltal
adott maximlis fggetlen halmaz, s a munkt befejeztk.
2. Legyen x G, fok (x) 3.
S1 := MF(G \ {x})
S2 := {x} MF(G \ {x s szomszdai}).
3. Legyen S az S1 s S2 kzl a nagyobb mretu,
illetve akrmelyik,
ha |S1 | = |S2 |.
4. MF(G) := S.
Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

18 / 23

Legyen T (n) az MF(G)-n (| V (G) | n) belli MF hvsok maximlis


szma, belertve MF(G)-t magt is.

Ttel

Van olyan c lland, hogy T (n) c n , tetszoleges


n termszetes
szmra, ahol a 4 3 1 = 0 egyenlet pozitv gyke ( 1, 381).

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.

Indukcival: t(n) c n igazn < 5-re elg nagy c-vel

= Ezutn, ha n 5, indukcis feltevsbol:


t(n) t(n 1) + t(n 4) c n1 + c n4 =
= c n4 ( 3 + 1) = c n4 4 = c n .
sszkltsg: O(nd T (n)) = O(nd n ) = O(1, 381n ).
Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

19 / 23

3-sznezs keresse

Feladat: Adott G, keressnk egy 3-sznezst.

Minden lehetsges sznezst vgignznk = O(3n ) lps

polinom
tlet: Bizonyos cscsokat kiszneznk pirosra, a tbbirol

idoben
el tudjuk dnteni, hogy kisznezhetok-e
kkkel s srgval.

sszkltsg: O(2n nc ).

Katona Gyula Y. (BME SZIT)

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?

Katona Gyula Y. (BME SZIT)

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

v (i, a) = max{v (i 1, a); vi + v (i 1, a si )}


ol

= Soronknt kitltheto = minden rtk kt felette levob


szmolhat.
sszkltsg: O(bL)
fgg (nem log b-tol!),
ha b sokjegyu szm, ez sok ido
b-tol
Katona Gyula Y. (BME SZIT)

Algoritmuselmlet

1. eloads

23 / 23

You might also like