foundations of algorithms presented by: h.amerehie
DESCRIPTION
Foundations of algorithms Presented By: H.Amerehie. فصل اول: کارایی ، تحلیل و مرتبه الگوریتم ها. 3 از 35. الگوریتم 1-1: جست و جوی ترتیبی. Presented By:H.Amerehie. 4 از 35. تحلیل پیچیدگی زمانی جست و جوی ترتیبی در حالت میانگین. 5 از 35. - PowerPoint PPT PresentationTRANSCRIPT
Foundations of algorithms
Presented By:H.Amerehie
فصل اول:
کارایی ، تحلیل و مرتبه الگوریتم ها
Presented By:H.Amerehie
: جست و جوی ترتیبی1-1الگوریتم
Presented By:H.Amerehie
3 از
35
تحلیل پیچیدگی زمانی جست و جوی ترتیبی در حالت میانگین
Presented By:H.Amerehie
4 از
35
تحلیل پیچیدگی زمانی جست و جوی ترتیبی در حالت میانگین
Presented By:H.Amerehie
5 از
35
:محاسبه مجموع عناصر آرایه1-2الگوریتم
Presented By:H.Amerehie
6 از
35
تحلیل پیچیدگی زمانی محاسبه مجموع عناصر آرایه
Presented By:H.Amerehie
7 از
35
کلید را به ترتیب غیر نزولی مرتب سازی کنید.nمسئله:
:مرتب سازی تعویضی1-3الگوریتم
Presented By:H.Amerehie
8 از
35
تحلیل پیچیدگی زمانی مرتب سازی تعویضی
Presented By:H.Amerehie
9 از
35
: ضرب ماتریس ها1-4الگوریتم
Presented By:H.Amerehie
10 از
35
تحلیل پیچیدگی زمانی ضرب ماتریس ها
Presented By:H.Amerehie
11 از
35
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)
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)
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)
عمل اصلی : تعداد صدا زدن تابع به صورت بازگشتی
روش حل : ابتدا تابع را به فرم توابع ریاضی بازگشتی در آورده وسپس به
کمک اصول معادالت بازگشتی آن ها را حل می کنیم .
. ترسیم درخت بازگشتی 1
. روش جایگذاری 2
. برهان خلف 3
. روش استقرای ریاضی4
مرتبه اجرایی توابع بازگشتی
Presented By:H.Amerehie
15 از
35
int fact (int n)
if (n==1)
return 1;
Return (n* fact(n-1));
: الگوریتم بازگشتی محاسبه فاکتوریل1-5الگوریتم
Presented By:H.Amerehie
16 از
35
T(n)=1 n=1 اگر
T(n)=T(n-1)+C در غیر این صورت
T(n) = O(n)
مرتبه اجرایی الگوریتم بازگشتی محاسبه فاکتوریل
Presented By:H.Amerehie
17 از
35
: الگوریتم بازگشتی محاسبه سری 1-6الگوریتم فیبوناچی
Presented By:H.Amerehie
18 از
35
مرتبه اجرایی الگوریتم بازگشتی محاسبه سری فیبوناچی
Presented By:H.Amerehie
19 از
35
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
T (n) =
مرتبه اجرایی الگوریتم بازگشتی برج هانوی
1 n=1 اگر
T(n-1)+T(n-1)+1
n>1 اگر
T(n)=O( 2n )
Presented By:H.Amerehie
21 از
35
، فقط بستگی T(n)برای دسته ای از مسائل ساده که در آن ها
دارد.T(n-1)به
مثال
T(n) = nT(n-1)
T(1) = 1
حل روابط بازگشتی ساده با روش جایگذاری
Presented By:H.Amerehie
22 از
35
تعریف :
با kرابطه زیر را یک رابطه بازگشتی همگن خطی از درجه
ضرایب ثابت می نامیم .
T(n) = C1T(n-1) + C2T(n-2) + …. + CkT(n-k)
C1که ، C2،....،Ck اعداد ثابت حقیقی بوده وCk<>0. باشد
روابط بازگشتی همگن
Presented By:H.Amerehie
23 از
35
حل روابط بازگشتی همگن مرتبه اول
عموما روابط بازگشتی درجه اول با روش جایگذاری به سادگی
حل می شوند .
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
با حل معادله درجه دوم فوق یکی از سه حالت زیر پیش می آید :
، جواب رابطه بازگشتی به فرم داریم 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
: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
فرم کلی این روابط به صورت زیر است :
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
ی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
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
باش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
تfرکیب خطی از قواعfد اول، دوم و سfوم f(n)قاعfده چهfارم : اگfر
باشد جواب خاص نیز به فرم ترکیب خطی آن ها خواهد بود.
مثال :
T(n)=T(n-1) + 4n + 2n
ناهمگنروابط بازگشتی
Presented By:H.Amerehie
31 از
35
اگر فرم کلی یک رابطه بازگشتی به صورت زیر باشد :
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
: 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
: 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
: 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