26
Дискретна математика 2 Мастер теорема (Раздели и владеј)

P8-Razdeli i Vladej_2015

  • Upload
    -

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 1/26

Дискретна математика 2

Мастер теорема (Раздели и владеј)

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 2/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Раздели и владеј алгоритми ирекурентни релации

o Многу типови на проблеми можат да се решат сонамалување на проблем со големина n на некој број a однезависни потпроблеми, секој со големина ni..

o Нека за разделување на проблемот се потребни уштедополнителни  g (n) операции,

o Тогаш бројот на операции f (n) потребни да се реши целиот

проблем може да се моделира со равенката:

1

( ) ( ) ( )a

ii

f n f n g n=

= +∑

2

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 3/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Раздели и владеј алгоритми ирекурентни релации

o Алгоритамски проблеми можат да се решат сонамалување на проблем со големина n на решавање a

независни потпроблеми, секој со големинаn

/b

,каде a≥1 и b>1 се цели броеви

o Потребниот број на операции (временскатакомплексност) за решавање на вакви проблеми е

дадена со рекурентната релацијаf (n) = a·f (n/b) + g (n)

Време потребно да сераздели на потпроблеми

Време за секој потпроблем

3

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 4/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Раздели и владеј алгоритми ирекурентни релации

Како работат овие алгоритми?

o Го делат проблемот на потпроблеми со големина n/b.

o Ги решаваат овие проблеми (рекурзивно)

o Го добиваат решението во време f (n).

f(n)

a

f(n/b)

a

f(n/b)

a

f(n/b)

a

f(n/b)

a

f(n/b2)

af(n/b2) f(n/b2)

4

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 5/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Раздели и владеј алгоритми ирекурентни релации

5

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 6/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Раздели и владеј алгоритми

o Алгоритмите кои проблемот со големина n го разделуваат наеден или повеќе потпроблеми со големина значително помала одn, најчесто неколку пати помала од n, се познати како раздели павладеј алгоритми. Техниката на ваквите алгоритми може да се

опише со следниве чекори:o Раздели го проблемот во неколку потпроблеми, кои ќе бидат со

големина за неколку пати помала од основниот проблем;o Совладај ги потпроблемите така што прво рекурзивно ќе ги

решиш помалите проблеми;•

Основен случај: Ако потпроблемот е доволно мал, него горешаваме со т.н груба сила, односно определувајќи јавредноста во секој случај.

o Комбинирај ги решените потпроблеми за да го решишпоголемиот проблем, што би водело до решение наоригиналниот проблем.

6

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 7/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Пример 1 – пронаоѓање на“фалш” паричка

o Нека златарот има купче од еднакви златници, ситесо еднаква тежина. Но, некој во златниците муставил фалсификат, кој по ништо не се разликува од

останатите златници освен по својата тежина, која езначително помала од тежината на вистинскитезлатници. Златарот има вага со два таса за мерењена златниците и на секој тас од ваквата вага може дастави колку сака златници.

Како златарот може да го најде фалсификатот воln(n) мерења, ако вкупниот број на златници заедносо фалсификатот е n?

7

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 8/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Решение:

o Ако n е парен број, тогаш златарот може де ги подели златницитена половина и секоја половина да ја стави на еден од тасовите навагата.

• Фалсификатот се наоѓа на тасот со помала тежина.o Ако n е непарен број, тогаш златарот на секоја страна од вагата ќе

стави по n/2 од златниците.

• Ако вагата е во рамнотежа, тогаш фалсификатот е останататапаричка,

• Ако не е, тогаш повторно фалсификатот се наоѓа на тасот сопомала тежина.

o Според тоа, после едно мерење, златарот или ќе го најдефалсификатот, или проблемот ќе го намали на големина n/2.

8Пример 1 – пронаоѓање на

“фалш” паричка

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 9/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Псевдокод – пронаоѓање на“фалш” паричка

1 Влез: позитивен цел број n на златнициИзлез: фасификуваниот златникфункција фалсификат( множество од n златници)

ако n = 1 тогаш врати “паричката е фалсификат“.

5 инаку{

Стави на двата краја од вагата по n/2 златници иизмери ги.

ако вагата е во рамнотежа10 фалсификат(од останатиот еден златник);

инакуфалсификат(n/2-те полесни златници);

}

(Колку циклуси ќе изврши овој алгоритам?)

9

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 10/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Примери за раздели и владејалгоритми

o Бинарно пребарување: Проблемот се редуцира на 1потпроблем (имено, пребарување во половиналиста, значи a=1) со големина n/2 (значи b=2).

• Според тоа  f (n) = f (n/2)+2   ( g (n)=2)

o Merge сотрирање: листа со должина n се дели на 2

подлисти (a=2), секоја со големина

n/2

(b=2), сесортираат, а потоа се спојуваат во т(n) = Θ(n) време

• Значи f(n) =2 f (n/2) + cn   (грубо, за некое c)

10

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 11/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

o Барање на максимум и минимум на низа

Ја разгледуваме низата a1 , a2 , …an, за n>1.

Ја делиме низата на два дела. Ако n е парен тогаш дветеподнизи се со иста должина, ако n е непарен едната имаеден елемент повеќе. Решението се сведува сега набарање минимум и максимум на двете поднизи икомбинирање на решението.

Ако n е парен број, бројот на потребни споредби е, f (n)=2 f (n/ 2)+2 ,

односно а=2 , g (n)=2.

Примери11

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 12/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

o Нека f (n) е монотоно растечка функција која ја задоволуварекурентната релација

f (n) = af (n/b) + c

o Притоа b е делител на n, a 

1 , b > 1 и c е реален број.o Тогаш,

o Ако n = bk, за k позитивен цел број,

Теорема 112

log( ) ako 1( )

(log ) ako 1

b aO n af n

O n a

  >=  

=

log1 2

1 2

( )

каде

(1) и C1 1

b af n C n C

c cC f 

a a

= +

−= + =

− −

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 13/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Доказ на Теорема 1

Прво да ја решиме рекурентната релација. Нека n = bk, за k позитивен целброј, решавајќи ја рекурентната релација

добиваме

Бидејќи n/bk = 1

13

1

( ) ( ) ( )a

ii

f n f n g n=

= +∑

2 2

3 3 2 2

1

0

( ) ( / ) ( )

( / ) ( / ) ( )

( / ) ( / ) ( / ) ( )

( / ) ( / )k

k k j j

 j

f n af n b g n

a f n b ag n b g n

a f n b a g n b ag n b g n

a f n b a g n b−

=

= +

= + +

= + + +

= + ∑

1

0

( ) (1) ( / )k

k j j

 j

f n a f a g n b−

=

= + ∑

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 14/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Доказ на теорема 1

I. Прво да го разгледаме случајот кога a = 1.

I.1 Нека n = bk, за k позитивен цел број, ако ставиме g(n) = cво релацијата

добиваме

Бидејќи a =1

, добиваме f (n) = f (1

) + ck. Од n = bk

следуваk = log bn. Според тоа

14

1( ) ( ) ( )

a

iif n f n g n== +∑

1 1

0 0

( ) (1) (1) .k k

k j k j

 j j

f n a f a c a f c a− −

= =

= + = +∑ ∑

( ) (1) logbf n f c n= +

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 15/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

I.2 Ако n не е степен на b, тогаш постои позитивенцел број k таков што bk< n < bk+1 . Бидејќи f(n) е

монотоно растечкаf (n) < f (bk+1) = f (1) + c(k + 1) =

(f (1) + c) + ck < (f (1) +c) + c logb n.

Според тоа и во двата случаи кога a = 1

f (n) е О(log n).

Доказ на теорема 115

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 16/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

II. Нека сега a > 1.

II.1 Нека n = bk, за k позитивен цел број. Тогаш

имајќи предвид дека и декадобиваме

Доказ на теорема 116

1

0

1

, за 11

nn j

 j

r r r 

+

=

−= ≠

−∑

log1 2

1 2

( 1)( ) (1) [ (1) ]

1 1 1

.

Каде (1) , и1 1

b

kk k

a

c a c cf n a f a f  

a a a

C n C

c cC f C

a a

−= + = + −

− − −

= +

= + = −− −

log logb bn aka a n= =

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 17/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

II.2 Ако n не е степен на b, тогаш постои позитивен цел бројk таков што bk < n < bk+1. Од тука следува k < logbn < k+1.Бидејќи f (n) е монотоно растечка

Според тоа добиваме дека f (n) е

o

Доказ на теорема 117

1 11 2

log1 2

log1 2

( ) ( )

( )

( )

b

b

k k

n

a

f n f b C a C

C a a C

C a n C

+ +≤ = +

≤ +

≤ +

log( )b aO n

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 18/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Мастер теорема

o Нека f (n) е монотоно растечка функција која за a ≥ 1,цел број b > 1 и реален броj c > 0, ја задоволуварелацијата

f (n) = af (n/b) + g(n)f (1)=c

Ако g(n) = Θ(nd) за d ≥ 0. Тогаш:

log

( ) ako

( ) ( log ) ako

( ) akob

d d

d d

a   d

n a b

f n n n a b

n a b

Θ <

= Θ =Θ >

18

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 19/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

oМастер теоремата не може да се примени

• ако f (n) не е монотона, на пример: f (n) = sin(n)

• ако g (n) не е полиномна, на пример :f (n) = 2f (n/2) + 2n

• ако b не може да се претстави како константа, например: f (n) = f (√n)

oДа забележиме уште дека Мастер теоремата не јарешава рекурентната релација .

Забелешки за Мастертеоремата

19

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 20/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Мастер теорема –специјален случај

o Нека f (n) е монотоно растечка функција која за ситеn = bk за k∈Z+ ја задоволува рекурентната релација

f (n) = af (n/b) + cnd

за a ≥ 1, цел број b > 1 и реални броеви c > 0, d ≥ 0.Тогаш:

log

O( ) ako

( ) O( log ) ako

O( ) akob

d d

d d

a   d

n a b

f n n n a b

n a b

  <

= = >

20

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 21/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

oНека f (n) = f (n/2) + (1/2)n2 + n

Тогаш, a = 1, b = 2, d = 2, и бидејќи 1 < 22 , важипрвиот услов и се применува првиот случај,па добиваме

f (n) e Θ(nd) = Θ(n2)

Пример 121

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 22/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

o Нека

Тогаш параметрите сеa = 2

b = 4

d = 1/2

Бидејќи 2 = 41/2 се применува вториот случај и добиваме

Пример 222

( ) 2 ( )4

nf n f n= + + 42

( ) e ( log ) ( log ).df n n n n nΘ = Θ

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 23/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

oНека

Тогаш параметрите се :a = 3

b = 2

d = 1Бидејќи 3 > 21, важи третиот услов и добиваме дека

Пример 323

3( ) 3 ( ) 1

2 4

nf n f n= + +

2log   log 3( ) e ( ) ( )b af n n nΘ = Θ

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 24/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

o Рековме дека Мастер теоремата не може да јаприменуваме ако функцијата g (n) не е полином. Меѓутоапостои и ограничен 4. случај на Мастер теоремата кој

овозможува да разгледуваме и полилогаритамскифункции. Имено важи следната

o Последица:

Дополнителен 4. случај24

log

log   1

Ако ( ) e ( log ) за некој 0, тогаш

( ) e ( log )

b

b

a   k

a   k

 g n n n k

f n n n+

Θ ≥

Θ

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 25/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

o Нека е дадена следната рекурентна релација

o Јасно е дека a = 2, b = 2  и g (n) не е полином.

Но g (n) e Θ (n log n), за k = 1, односно исполнет е условотод специјалниот случај и добиваме дека

f (n) e Θ (n log2n)

Пример 425

( ) 2 ( ) log

2

nf n f n n= +

8/16/2019 P8-Razdeli i Vladej_2015

http://slidepdf.com/reader/full/p8-razdeli-i-vladej2015 26/26

www.finki.ukim.mk www.facebook.com/FINKI.ukim.mk www.twitter.com/FINKIedu

Да се определи сложеноста на алгоритмите

а) за бинарно пребарување

б) Merge сортирање

Примери26