foundations of algorithms presented by: h.amerehie

35
Foundations of algorithms Presented By: H.Amerehie

Upload: vern

Post on 11-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Foundations of algorithms Presented By: H.Amerehie. فصل اول: کارایی ، تحلیل و مرتبه الگوریتم ها. 3 از 35. الگوریتم 1-1: جست و جوی ترتیبی. Presented By:H.Amerehie. 4 از 35. تحلیل پیچیدگی زمانی جست و جوی ترتیبی در حالت میانگین. 5 از 35. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Foundations of algorithms Presented By: H.Amerehie

Foundations of algorithms

Presented By:H.Amerehie

Page 2: Foundations of algorithms Presented By: H.Amerehie

فصل اول:

کارایی ، تحلیل و مرتبه الگوریتم ها

Presented By:H.Amerehie

Page 3: Foundations of algorithms Presented By: H.Amerehie

: جست و جوی ترتیبی1-1الگوریتم

Presented By:H.Amerehie

3 از

35

Page 4: Foundations of algorithms Presented By: H.Amerehie

تحلیل پیچیدگی زمانی جست و جوی ترتیبی در حالت میانگین

Presented By:H.Amerehie

4 از

35

Page 5: Foundations of algorithms Presented By: H.Amerehie

تحلیل پیچیدگی زمانی جست و جوی ترتیبی در حالت میانگین

Presented By:H.Amerehie

5 از

35

Page 6: Foundations of algorithms Presented By: H.Amerehie

:محاسبه مجموع عناصر آرایه1-2الگوریتم

Presented By:H.Amerehie

6 از

35

Page 7: Foundations of algorithms Presented By: H.Amerehie

تحلیل پیچیدگی زمانی محاسبه مجموع عناصر آرایه

Presented By:H.Amerehie

7 از

35

Page 8: Foundations of algorithms Presented By: H.Amerehie

کلید را به ترتیب غیر نزولی مرتب سازی کنید.nمسئله:

:مرتب سازی تعویضی1-3الگوریتم

Presented By:H.Amerehie

8 از

35

Page 9: Foundations of algorithms Presented By: H.Amerehie

تحلیل پیچیدگی زمانی مرتب سازی تعویضی

Presented By:H.Amerehie

9 از

35

Page 10: Foundations of algorithms Presented By: H.Amerehie

: ضرب ماتریس ها1-4الگوریتم

Presented By:H.Amerehie

10 از

35

Page 11: Foundations of algorithms Presented By: H.Amerehie

تحلیل پیچیدگی زمانی ضرب ماتریس ها

Presented By:H.Amerehie

11 از

35

Page 12: Foundations of algorithms Presented By: H.Amerehie

F(n)=O(g(n)) Ǝ C , n0>0 : n>=n∀ 0 f(n)<= C g(n)

O(g(n)) شامل مجموعه ای از توابع پیچیدگی مانند : f(n) می باشد و یک cکه برای هریک از آنها حداقل یک ثابت حقیقی مثبت مانند

وجود دارد به طوری که برای هر Nعدد صحیح غیر منفی مانند n>=N : داشته باشیمf(n)<=c*g(n)

Big O

Presented By:H.Amerehie

12 از

35

F(n)

C*g(n)

Page 13: Foundations of algorithms Presented By: H.Amerehie

F(n)=Ω(g(n)) Ǝ C , n0>0 : n>=n∀ 0 f(n)>= C g(n)

Ω(g(n)) شامل مجموعه ای از توابع پیچیدگی مانند : f(n) می باشد و یک cکه برای هریک از آنها حداقل یک ثابت حقیقی مثبت مانند

وجود دارد به طوری که برای هر Nعدد صحیح غیر منفی مانند n>=N : داشته باشیمf(n)>=c*g(n)

f(n) ، می گوییم که Ω(g(n)) f(n) - اگرمی باشد. g(n)از امگای

- امگا یک حد پایین مجانبی بر روی یک تابع قرار می دهد

. استg(n) حداقل به بدی f(n) - تعریف شهودی :

Ω

Presented By:H.Amerehie

13 از

35

F(n)

C*g(n)

Page 14: Foundations of algorithms Presented By: H.Amerehie

F(n)=θ (g(n)) Ǝ c,d , n0>0 : n>=n∀ 0 c g(n)<=f(n)<=d g(n)

θ(g(n)) شامل مجموعه ای از توابع پیچیدگی مانند : f(n) می باشد ویک d و cکه برای هریک از آنها ثابت های حقیقی مثبت مانند

وجود دارد به طوری که برای هر Nعدد صحیح غیر منفی مانند n>=N : داشته باشیمc*g(n) <= f(n) <= d*g(n)

θ

Presented By:H.Amerehie

14 از

35

F(n)

C*g(n)

d*g(n)

Page 15: Foundations of algorithms Presented By: H.Amerehie

عمل اصلی : تعداد صدا زدن تابع به صورت بازگشتی

روش حل : ابتدا تابع را به فرم توابع ریاضی بازگشتی در آورده وسپس به

کمک اصول معادالت بازگشتی آن ها را حل می کنیم .

. ترسیم درخت بازگشتی 1

. روش جایگذاری 2

. برهان خلف 3

. روش استقرای ریاضی4

مرتبه اجرایی توابع بازگشتی

Presented By:H.Amerehie

15 از

35

Page 16: Foundations of algorithms Presented By: H.Amerehie

int fact (int n)

if (n==1)

return 1;

Return (n* fact(n-1));

: الگوریتم بازگشتی محاسبه فاکتوریل1-5الگوریتم

Presented By:H.Amerehie

16 از

35

Page 17: Foundations of algorithms Presented By: H.Amerehie

T(n)=1 n=1 اگر

T(n)=T(n-1)+C در غیر این صورت

T(n) = O(n)

مرتبه اجرایی الگوریتم بازگشتی محاسبه فاکتوریل

Presented By:H.Amerehie

17 از

35

Page 18: Foundations of algorithms Presented By: H.Amerehie

: الگوریتم بازگشتی محاسبه سری 1-6الگوریتم فیبوناچی

Presented By:H.Amerehie

18 از

35

Page 19: Foundations of algorithms Presented By: H.Amerehie

مرتبه اجرایی الگوریتم بازگشتی محاسبه سری فیبوناچی

Presented By:H.Amerehie

19 از

35

Page 20: Foundations of algorithms Presented By: H.Amerehie

void Hanoi (int n,A,B,C)

if (n==1) Move a disk from A to C;

else

Hanoi(n-1,A,C,B);

move a disk from A to C;

Hanoi(n-1,B,A,C);

: الگوریتم بازگشتی برج هانوی1-7الگوریتم

Presented By:H.Amerehie

20 از

35

Page 21: Foundations of algorithms Presented By: H.Amerehie

T (n) =

مرتبه اجرایی الگوریتم بازگشتی برج هانوی

1 n=1 اگر

T(n-1)+T(n-1)+1

n>1 اگر

T(n)=O( 2n )

Presented By:H.Amerehie

21 از

35

Page 22: Foundations of algorithms Presented By: H.Amerehie

، فقط بستگی T(n)برای دسته ای از مسائل ساده که در آن ها

دارد.T(n-1)به

مثال

T(n) = nT(n-1)

T(1) = 1

حل روابط بازگشتی ساده با روش جایگذاری

Presented By:H.Amerehie

22 از

35

Page 23: Foundations of algorithms Presented By: H.Amerehie

تعریف :

با kرابطه زیر را یک رابطه بازگشتی همگن خطی از درجه

ضرایب ثابت می نامیم .

T(n) = C1T(n-1) + C2T(n-2) + …. + CkT(n-k)

C1که ، C2،....،Ck اعداد ثابت حقیقی بوده وCk<>0. باشد

روابط بازگشتی همگن

Presented By:H.Amerehie

23 از

35

Page 24: Foundations of algorithms Presented By: H.Amerehie

حل روابط بازگشتی همگن مرتبه اول

عموما روابط بازگشتی درجه اول با روش جایگذاری به سادگی

حل می شوند .

T(n) = CT(n-1) مثال

حل روابط بازگشتی همگن مرتبه دوم با ضرایب ثابتفرم کلی این روابط به صورت زیر است :

CnT(n) + Cn-1T(n-1) + Cn-2T(n-2) = 0

معادله مشخصه : Cnr2 + Cn-1r + Cn-2 = 0

حل روابط بازگشتی همگن

Presented By:H.Amerehie

24 از

35

Page 25: Foundations of algorithms Presented By: H.Amerehie

با حل معادله درجه دوم فوق یکی از سه حالت زیر پیش می آید :

، جواب رابطه بازگشتی به فرم داریم r2و r1 . دو جواب حقیقی و مجزای 1

زیر خواهد بود:

T(n) = C1r1n + C2r2

n

داریم ، جواب رابطه بازگشتی به فرم زیر r1 . یک ریشه حقیقی مضاعف 2

خواهد بود:

T(n) = C1r1n + C2nr1

n

جواب رابطه بازگشتی به فرم زیر را داریم ، r2و r1ریشه های مختلط .3

خواهد بود:

T(n) = C1r1n + C2r2

n

حل روابط بازگشتی همگن

Presented By:H.Amerehie

25 از

35

Page 26: Foundations of algorithms Presented By: H.Amerehie

:1مثال

T(n) = T(n-1) + 2T(n-2)

مقادیر اولیه :

T(0) = 2

T(1) = 7

:2مثال

T(n+2) = 4T(n+1) – 4T(n)

مقادیر اولیه :

T(0) = 1

T(1) = 3

حل روابط بازگشتی همگن

Presented By:H.Amerehie

26 از

35

Page 27: Foundations of algorithms Presented By: H.Amerehie

فرم کلی این روابط به صورت زیر است :

T(n) = C1T(n-1) + C2T(n-2) + …. + CkT(n-k) + f(n)

Unیکی از روش های حل معادله فوق استفاده از جواب عمومی )

( است. Pn ( و جواب خصوصی )

مثال

T(n) = 3T(n-1) + 5 * 7n

مقادیر اولیه

T(0) = 39/4

ناهمگنروابط بازگشتی

Presented By:H.Amerehie

27 از

35

Page 28: Foundations of algorithms Presented By: H.Amerehie

یfک kباشfد ) f(n) = kqnقاعfده اول : اگfر در رابطfه بازگشfتی نfاهمگن ،

یfک رfیشfه fمfعادلfهf مfشخصfهf نfباشfد آfنfگfاه fجfواب qثfابfتf معلfوم fاسfت (f fو

صfورfت بfه fرا رfابطfهPn= Cqn fخfاص در جایfگfذاری fآن گfیریfم fوبfا مfی

را بدست می آوریم .Cبازگشتی ناهمگن ، مقدار

یfک ریشfه سfاده معادلfه مشخصfه باشfد qنکتfه : اگfر در معادلfه نfاهمگن

در نظر می گیریم . Cnqnجواب خاص را به صورت

مثال :

T(n)=3T(n-1) + 5 * 3n

مقدار اولیه

T(0)=2

ناهمگنروابط بازگشتی

Presented By:H.Amerehie

28 از

35

Page 29: Foundations of algorithms Presented By: H.Amerehie

kباشد ) f(n) = knqقاعده دوم : اگر در رابطه بازگشتی ناهمگن ،

یfک ، ریشfه معادلfه مشخصfه نباشfد یfک ثfابت معلfوم اسfت ( و عfدد

آنگاه جواب خاص به صورت زیر است :

Pn = C0 + C1n + C2n2 + … + Cqnq

نکتfه : اگfر عfدد یfک، ریشfه سfاده معادلfه مشخصfه باشfد جfواب خfاص

است. را به صورت زیر

Pn = C0n + C1n2 + … + Cqnq+1

مثال

T(n) = 3T(n-1) - 2T(n-2) + n4

ناهمگنروابط بازگشتی

Presented By:H.Amerehie

29 از

35

Page 30: Foundations of algorithms Presented By: H.Amerehie

باشfد ) یعfنی f(n) = kقاعfده سfوم : اگfر در رابطfه بازگشfتی نfاهمگن

= Pnعدد ثابتی باشد ( در واقع حالت خاصی از قاعده دوم بوده و

C دارfاهمگن مقfتی نfه بازگشfذاری در رابطfا جایگfه بfد کfمی باش C

بدست می آید.

مثال :

T(n+1) = 2T(n) + 1

مقدار اولیه

T(0)=0

ناهمگنروابط بازگشتی

Presented By:H.Amerehie

30 از

35

Page 31: Foundations of algorithms Presented By: H.Amerehie

تfرکیب خطی از قواعfد اول، دوم و سfوم f(n)قاعfده چهfارم : اگfر

باشد جواب خاص نیز به فرم ترکیب خطی آن ها خواهد بود.

مثال :

T(n)=T(n-1) + 4n + 2n

ناهمگنروابط بازگشتی

Presented By:H.Amerehie

31 از

35

Page 32: Foundations of algorithms Presented By: H.Amerehie

اگر فرم کلی یک رابطه بازگشتی به صورت زیر باشد :

T(n) = aT(n-k) + b

در حل رابطه داریم :

a<>1 T(n) = O( an/k )اگر :

a = 1 T(n) = O( n )اگر :

مثال :

T(n) = 3T(n-2)

روابط بازگشتی

Presented By:H.Amerehie

32 از

35

Page 33: Foundations of algorithms Presented By: H.Amerehie

: 1حالت

T(n) = aT(n/b) θ (n logb

a) (a<>1)

T(n) = 1 θ (logbn) (a = 1)

مثال :

T(n) = T(n/2)

روابط بازگشتی از مدل تقسیم و غلبه

Presented By:H.Amerehie

33 از

35

Page 34: Foundations of algorithms Presented By: H.Amerehie

: 2حالت

T(n) = aT(n/b) + cnk θ (n logb

a) (a>bk)

T(n) = c θ (nk log2n) (a=bk)

θ (nk) (a<bk)

مثال :

T(n) = 2T(n/2) + 1

T(n) = 3T(n/3) + n2

روابط بازگشتی از مدل تقسیم و غلبه

Presented By:H.Amerehie

34 از

35

Page 35: Foundations of algorithms Presented By: H.Amerehie

: 3حالت

O (n logb

a) ( n logb

a > O(f(n)) )

T(n) = aT(n/b) + cf(n) O (f(n)) ( n logb

a < O(f(n)) )

log n * O(f(n)) (a=b)

مثال :

T(n) = 4T(n/2) + log n

T(n) = 2T(n/2) + n log n

روابط بازگشتی از مدل تقسیم و غلبه

Presented By:H.Amerehie

35 از

35