26
بط بازگشتی رواfaradars.org/fvsft120 مدرس: فرشید شیرافکن تهراننشگاه دانشجوی دکتری دا( سی ارشد کارشنا کارشناسی و: م افزار کامپیوتر نر( ) دکتری: نفورماتیک بیو ا) بط بازگشتی روا1 ﻓﺮادرسFaraDars.org

آموزش روش های حل روابط بازگشتی - بخش یکم

Embed Size (px)

Citation preview

Page 1: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

:مدرس

فرشید شیرافکن

دانشجوی دکتری دانشگاه تهران (بیو انفورماتیک: دکتری( )کامپیوتر نرم افزار: کارشناسی و کارشناسی ارشد )

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

1

فرادرس

FaraDars.org

Page 2: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

سرفصل

(تکرار با جایگذاری-حدس)روشهای حل -رابطه های بازگشتی -1

درخت بازگشت-2

تغییر متغیر -قضیه اصلی -3

همگن و ناهمگن-4

2

فرادرس

FaraDars.org

Page 3: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

: اولفصل روابط بازگشتی

(تکرار با جایگذاری-حدس)روش های حل

3

فرادرس

FaraDars.org

Page 4: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

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

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

fact (n){if (n==0)

return 1;else

return n*fact(n-1);}

1)1(1

00)(

nnT

nnT

4

فرادرس

FaraDars.org

Page 5: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

.بنویسیدراT(n)بازگشتیرابطهباشد،f(n)توسطشدهچاپهایستارهتعدادT(n)اگر

void f(int n){

if (n>=2){

f(n-1);print "**";f(n-2);print "***";

}}

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

مثال

فرادرس

FaraDars.org

Page 6: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

مثالزوجآندرشدهظاهرصفرهایتعدادکهاستمعتبرزمانیnطولبا2و1و0ارقامشاملتاییسهکدی.دآوریبدستراهستندمعتبرکهnطولبهکدهایتعدادبازگشتیرابطه.باشد

n کدهای معتبرتعداد

کدهای معتبر

1 1,2 2

2 00,11,22,12,21 5

3 100,111,122,112,121,200,211,222,212,221,010,020,001,002 14

n 1T(n) T(n 1) 3 T(1) 2

6

فرادرس

FaraDars.org

Page 7: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

مثال

سمتبهفقطمجازهایحرکت.برویمBنقطهبهAنقطهازخواهیممیزیرشطرنجیصفحهدر

راBبهAازممکنمسیرهایتعدادکهبنویسیدبازگشتیرابطهیک.باشدمیباالیاراست

.کندمشخص

7

فرادرس

FaraDars.org

Page 8: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

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

حدس-1

جایگذاریباتکرار-2

بازگشتدرخت-3

اصلیقضیه-4

ناهمگنوهمگن-5

8

فرادرس

FaraDars.org

Page 9: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

روش حدس

آناساسبروکردهپیدااولیهمقدارچندازایبهراتابعجواب.زنیممیحدسرامعادلهجواب

(.کردثابتراآناستقراکمکبهبایدالبته)

9

فرادرس

FaraDars.org

Page 10: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

(است2ازمضربیn).کنیدحلفرضبارابازگشتیرابطه T(n) T(n 2) 1 T(0) 0

:نتیجهn

T(n)2

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

T(2)=T(0)+1=0+1=1 T(4)=T(2)+1=1+1=2 T(6)=T(4)+1=2+1=3

10

مثال

فرادرس

FaraDars.org

Page 11: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

مثال

(n>1واست2ازتوانیn).کنیدحلفرضبارابازگشتیرابطه nT(n) T( ) 1

2 T(1) 0

T(2) T(1) 1 0 1 1

T(4) T(2) 1 1 1 2

T(8) T(4) 1 2 1 3

T(n):نتیجه lgn

11

فرادرس

FaraDars.org

Page 12: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

(n>1واست2ازتوانیn)..کنیدحلفرضبارابازگشتیرابطه nT(n) 7T( )

2T(1) 1

T(2)=7T(1)=7

T(4)=7T(2)=27

T(8)=7T(4)=

12

مثال

37

فرادرس

FaraDars.org

Page 13: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

جایگذاری روش تکرار با

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

.دشومیاستفادههمروشاینازبازگشتیهایرابطهدقیقجوابکردنپیدابرای

13

فرادرس

FaraDars.org

Page 14: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

.کنیدحلفرضبارابازگشتیرابطه T(n) T(n 1) n T(1) 1

n

i 1

T(n) n T(n 1)

n (n 1) T(n 2)

n (n 1) (n 2) T(n 3)

....

n (n 1) (n 2) ... 2 T(1)

n (n 1) (n 2) ... 2 1

n(n 1)i

2

14

مثال

فرادرس

FaraDars.org

Page 15: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

15

فرادرس

FaraDars.org

Page 16: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

:جواب رابطه ی و برابر است با T(n) kT(n 1) c T(1) c

nk 1T(n) c

k 1

T(1) 1

16

T(n) 2T(n 1) 1

فرادرس

FaraDars.org

Page 17: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

مثال

17

فرادرس

FaraDars.org

Page 18: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

.رابطه بازگشتی را با فرض حل کنید T(n) 3T(n 1) 2 T(1) 2

: طبق نکته n

n3 1T(n) 2 3 1

3 1

18

مثال

فرادرس

FaraDars.org

Page 19: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

19

مثال

فرادرس

FaraDars.org

Page 20: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

:آنگاه،اگر kT(n) T(n 1)

n T(n) k.ln(n)

:مثال

2T(n) T(n 1)

n

T(1) 0

T(n) 2lnn

20

فرادرس

FaraDars.org

Page 21: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

21

مثال

1 1 1 11 ... lnn

2 3 n 1 n

فرادرس

FaraDars.org

Page 22: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

22

مثال

ni 0 1 2 n n 1

i 0

2 2 2 2 ... 2 2 1

فرادرس

FaraDars.org

Page 23: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

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

T(n) T(n k) b

T(0) c

nT(n) b c

k T(n) (n)

nT(n) T( ) b

a

T(1) c ,a 1

naT(n) lg b c T(n) (lgn)

aT(n) T(n 1)

n T(n) a.ln(n) T(n) (lgn)

T(n) aT(n 1) b

T(0) c

nna 1

T(n) b a ca 1

nT(n) (a )

:جمع بندی

23

فرادرس

FaraDars.org

Page 24: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

T(n) aT(n 1) f (n)

T(0) c

nn n i

i 1

T(n) a c a .f (i)

.جواب رابطه را با فرض مشخص کنید:مثال T(n) 3T(n 1) n T(0) 10

n nn n i n n i n

i 1 i 1

1 43 n 3T(n) 3 10 3 i 3 10 3 i( ) 3

3 4 2 4

24

فرادرس

FaraDars.org

Page 25: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

25

فرادرسپایان فصل اول

FaraDars.org

Page 26: آموزش روش های حل روابط بازگشتی - بخش یکم

روابط بازگشتیfaradars.org/fvsft120

این اسالید ها بر مبنای نکات مطرح شده در فرادرس« آموزش روابط بازگشتی و روش های حل آنها»

.تهیه شده است

.برای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه نمایید

faradars.org/fvsft120

فرادرس

FaraDars.org