Professional Documents
Culture Documents
Chapter #4
Chapter #4
Recurrences
واللي هو اشي أخذنا عنه مقدمة بشابترRecurrences بهذا الشابتر رح نتعمق بشيء اسمه-
.. Recursive Algorithms للTime Complexity واللي يتعلق بموضوع حساب ال2
فبالتالي، هي عملية تبسيط المشكلة إلى مشاكل أصغرRecursive ذكرنا إنه عملية ال-
لحد ما.... Smaller Input بستدعي نفس الفنكشن عدد من المرات وكل مرة بستدعيه ب
... Recursion ويتوقف عن عملية الBase Case يوصل الفنكشن ل
c n 1
T ( n)
2T n cn n 1
2
.. Algorithm اللي بتستغرقه الTime بتعبر عن الT(n) ذكرنا سابقًأ إنه -
: وطلع معه التاليTime وحسب الها الAlgorithm فاآلن هون أعطانا مثال ل
.. Constant Time رح يوخذ: Base Case عند ال
𝑛
.. 2𝑇 ቀ ቁ + 𝑐𝑛 معه إنهTime طلع ال: General Case عند ال
2
https://web.facebook.com/groups/IntelligenceGroup.CS/
2
معناه إنه داخل هاي ال Algorithmفي عنده 2 Recursive Callوكل Callمنهم رح -
𝑛
من ال ... Problem Size يوخذ
2
-وفي كمان ( )cnيعني في Other Stepsموجودة بالفنكشن وبتستغرق ... Linear Time
اآلن لو بتالحظوا هذا ال ) T(nبشبه مين من ال Algorithmsاللي أخذناهم بشابتر .! 2+1
الجواب هو ال ... Merge Sort
𝑛
وبس يخلص هاي
2
فال Merger Sortكان يعمل 2 Recursive Callوكل مرة يبعث -
العملية ،كان يستدعي فنكشن ال Mergeاللي كان يعمل عملية Combineللعناصر وكان
يستغرق ... Linear Time
Recurrence Examples:
الحظوا باألمثلة فوق ،إنه مش شرط داي ًما يكون الفنكشن ببعث نصف ال Input Size
𝑛
من ال ... Problem Sizeممكن يكون ببعث يعني مش كل ال Algorithmsببعثوا
2
n – 1وممكن يكون في Other Functionsوالخ ....
https://web.facebook.com/groups/IntelligenceGroup.CS/
3
هون بحكيلك إنه رح نتعلم بهذا الشابتر ككل؛ كيفية حل وحساب ال Time Complexity
لل .. Recursive Algorithms
-يعني الحظوا األمثلة فوق ،رح نحول الفنكشن من صورة ) T(n/2إلى صورة ) T(nعشان
نقدر نستخدم ال ..... Asymptotic Notation
-واحنا اولريدي أخذنا بشابتر 2عملية التحويل واللي كانت عبارة عن تعويض المعادلة في
نفسها لحد ما نوصل ل General Formulaبحيث تكون على صورة ) T(nوليس )T(n/2
وبالتالي تطلع معنا المعادلة بداللة .n
بس اآلن رح نشوف طريقتين للحل ورح نطلع ب Formulaعشان تريحنا من إنه كل مرة
نعوض في المعادلة وكذا ..
We will discuss two methods for solving recurrences
- Iteration method.
- Master method.
https://web.facebook.com/groups/IntelligenceGroup.CS/
4
بالبداية حكينا رح نعوض بالمعادلة ) T(nلحد ما نوصل أو لحد ما نليها ... in term of k
)T(n) = c + T(n-1
-اآلن رح نعوض ) (n-1في المعادلة ( ...اللي باألحمر)
)T(n) = c + c + T(n-1-1
)= 2c + T(n-2
لما عوضنا ) (n-1طلعت معنا هاي المعادلة ...
اآلن خلونا نعوض ) (n-2بدل كل ( )nفي المعادلة ... -
)T(n) = 2c + c + T(n-2-1
)= 3c + T(n-3
https://web.facebook.com/groups/IntelligenceGroup.CS/
5
اآلن المفروض الحظنا ال General Formulaلهذا الفنكشن ...أال وهو .. -
)T(n) = k.c + T(n-k
احنا لحد اآلن أوجدنا أول خطوة من ال Iteration Methodاللي هو ال ... Term of k -
الخطوة الثانية نشوف ال .. Stop Condition
-لو رجعنا لل ) T(nالموجودة بالسؤال ،ف رح نالقي إنه عندما n = 0رح يتوقف الفنكشن
عن استدعاء نفسه ،بالتالي ال Stop Conditionهو لما .n = 0
يعني لما n – k = 0رح تتوقف عملية ال ... Recursive
)T(n) = k.c + T(n-k
==> n-k = 0
So, n=k
الخطوة الثالثة :بالتعويض بالمعادلة رح يصير
)T(n) = n.c + T(n-n
= c.n + T(0) = c.n + 0 = c.n
)Thus T(n) = (n
وهيك بنكون أوجدنا ال Time Complexityلهاي ال ... Recursive Algorithm
---------------------------------------------------------------------------------------
EXAMPLE 2 : 0 n0
T ( n)
n T (n 1) n 0
بالبداية رح نعوض بالمعادلة ) T(nلحد ما نوصل أو لحد ما نليها ... in term of k
)T(n) = n + T(n-1
https://web.facebook.com/groups/IntelligenceGroup.CS/
6
-الحظوا إنه nبتنقص كل مرة بمقدار 1وكل مرة بجمع هذا المقدار بالتالي أنا عندي مجموع
بهاي الحالة ،ابتدا ًء من ) (n-k+1إلى (.)n
𝑛
الحظوا إنه كل ال Termsاللي قبل ) T(n-kهي عبارة عن عملية جمع nمع ال n-1
بعدها مع ال n-2الخ ....
يعني هو عبارة عن مجموع ،بس بالمعادلة ظهر عنا المجموع بالعكس ،يعني بدل ما يبدأ
من 1إلى ، nهو بدأ من nوبدأ يحسب المجموع لحد ما وصل ... 1
ليش حط i = n-k+1؟
https://web.facebook.com/groups/IntelligenceGroup.CS/
7
https://web.facebook.com/groups/IntelligenceGroup.CS/
8
𝑘−1
https://web.facebook.com/groups/IntelligenceGroup.CS/
9
https://web.facebook.com/groups/IntelligenceGroup.CS/
10
https://web.facebook.com/groups/IntelligenceGroup.CS/
11
EXAMPLE 4 : c n 1
T (n ) n
2T c n 1
3
T(n) = 2 T(n/3) + c 1
= 2(2 T(n/3/3) + c) + c 2
= 22 T(n/32) + 2c + c
= 22(2 T(n/32/3) + c) + (22-1)c 3
= 23 T(n/33) + 4c + 3c
= 23 T(n/33) + (23-1)c
= 23(2 T(n/33/3) + c) + 7c 4
= 24 T(n/34) + (24-1)c
= 2k T(n/3k) + (2k - 1)c
... اآلنStop Condition ال
==> n/3k = 1
So, n=3k && log3(n) = k
.. 3 الحظوا هون إنه األساس هو-
... Evaluation نكمل عملية ال
T(n) = 2log3n T(n/3 log3n) + (2 log3n -1)c
= nlog32 T(n/n) + (nlog32-1)c
= nlog32 T(1) + (nlog32-1)c || T(1) = c ()من السؤال
= n log32.c + n log32.c – c
https://web.facebook.com/groups/IntelligenceGroup.CS/
12
= 2cn log32 - c
Thus T(n) = ( nlog32.c)
----------------------------------------------------------------------------------
EXAMPLE 5 : c n 1
T (n ) n
3T 2 c n 1
T(n) = 3T(n/2) + c
= 3[3T(n/2/2) + c]+c = 32 T(n/22) + (22-1)c
https://web.facebook.com/groups/IntelligenceGroup.CS/
13
الحظوا إنه جميع األمثلة اللي حليناها كانت على صورة : -
c n 1
T ( n)
2T n c n 1
2
-انسوا الرقم 2بس حطوا مكانهم ..... a,bكل األمثلة السابقة كان مجموع Constant Cلل
) .. T(n/2وبس وهللا ..
----------------------------------------------------------------------------------
اآلن نوخذ شكل مختلف ..يعني مش شرط داي ًما اللي يكون مجموع ل ) T(n/2إنه يكون
... Constant cممكن يكون Linearوممكن يكون تربيعي وغيره ...
EXAMPLE 6:
https://web.facebook.com/groups/IntelligenceGroup.CS/
14
What if a = b?
.... Term of n ونشوف شو الFormula ونعوض في الa = b نشوف حالة إنه -
على الصورة اللي محطوطة فيT(n) بس ال تنسوا الشرط !!!!!! الشرط إنه يكون من-
... السؤال
What if a < b?
- Recall that
(xk + xk-1 + … + x + 1) = (xk+1 -1)/(x-1)
- So:
a k a k 1
a
1
a b 1
k 1
1 a b
k 1
1
b k b k 1 b a b 1 1 a b 1 a b
بس اللي صار إنه عمل شوية حسابات وطلع معه،لألمانة ما فهمت شو عمل هون بالضبط
.(n) يساويTime Complexity وطلع معنا الTerm of n
What if a > b?
a k a k 1
a
1
a b k 1 1
a b
k
b k b k 1 b a b 1
اآلن بس نشوف فنكشن على الصورة اللي فوق ،ف مباشرة رح نقارن aمع bكالتالي: -
…==> So
n ab
T (n) n log b n ab
n logb a
ab
-ضروري نركز بالصورة المكتوبة عليها ) T(nعشان نقدر نسخدم هذول القوانين.
الصورة المكتوبة عليها ) T(nأال وهي :
عندما <== n = 1ف رح تستغرق ... Constant Time
عندما <== n > 1ف رح تستغرق Linear Timeباإلضافة لل ... Recursive Call
اآلن بس تشوف مثال مكتوب على الصورة اللي ذكرناها فوق ،بتقارن aمع bومباشرة بتحدد
ال Time Complexityبدون حسابات ...
EXAMPLE 8:
7 n 1
n
T (n) 5T
7n n 1
5
- Since 5 = 5
---------------------------------------------------------------------------------------
EXAMPLE 9:
8 n 1
T (n) 7T n 8n n 1
3
- Since 7 > 3
T (n) nlog3 7
---------------------------------------------------------------------------------------
https://web.facebook.com/groups/IntelligenceGroup.CS/
18
-في ال Iteration Methodلما استخدمنا ال Formulaاللي وصلنا الها بعد جهد جهيد؛
كان عنا شرط إنه الزم يكون الفنكشن اللي مع ) aT(n/bالزم يكون ... Linear
n
If )T (n) aT f (n Where a ≥ 1 && b > 1
b
Then
logb a
n
f (n) O n logb a
logb a 0
T (n) n lg n f ( n) n
logb a
c 1
f (n) f ( n) n
logb a
&
af (n / b) cf (n) for large n
https://web.facebook.com/groups/IntelligenceGroup.CS/
19
==> RHS = n2
... RHS وبين الf(n) هي المقارنة بين: ثالث خطوة
f(n) = n
RHS = n2
f(n) = O(n2) بالتالي بقدر أكتبه على صورةf(n) ≤ RHS بالمقارنة رح نالقي إنه-
... Case 1 ف رح نالقي إنه احنا في ال... اللي كتبناها فوقFormula وبالرجوع لل
https://web.facebook.com/groups/IntelligenceGroup.CS/
20
ً
أصال ؟ -بس ضلت شغلة ال كيف رح نحسبها ؟ أو شو هي
صح احنا طلع معنا ) f(n) = O(n2يعني بقدر أكتبها على صورة :
f(n) ≤ RHS
n ≤ n2-e
هي القيمة اللي رح تخلي المعادلة دائ ًما صحيحة. -ال
اللي هاي المتباينة صحيحة دائ ًما ؟ اآلن شو قيمة
ف رح تصير المعادلة غير صحيحة إلنه رح تصير nأكبر .. يعني لو كانت = 3
فلذلك قيمة ال رح تكون محصورة ==< 0 < < 1
إلنه رح تصير المعادلة غير صحيحة ،بالتالي ما رح أقدر أوجد -يعني ممنوع تكون > 1
ال Timeالدقيق والصحيح.
فالزم أحط هذا الشرط أال وهو إنه ... 0 < < 1
https://web.facebook.com/groups/IntelligenceGroup.CS/
21
F(n) ≥ RHS
n2 logn ≥ n0+e
-شو قيمة اللي بتخلي هاي المتبانية صحيحة ؟ الجواب هو 0 < < 2
-الحظوا إنه احنا طبقنا Case 3بس الحالة الثالثة كان الها شرطين نتحقق منهم وليس
شرط واحد ..الشرط األول تحققنا منه وت َ ْم.
-نيجي للشرط الثاني ،اللي هو إنه نوجد قيمة Cوتكون هاي ال ... C < 1
)==> af(n/b) < cf(n) && c < 1 (Page 18 in this file and Slide 25
==> a = 9 , b = 3 , f(n) = n3
==> log 3 9 = 2
==> RHS = n2
https://web.facebook.com/groups/IntelligenceGroup.CS/
23
==> a = 1 , b = 2 , f(n) = 1
==> log 2 1 = 0
==> RHS = n0
. بهاي الحالةMaster Method بتحقق المعادلة فبالتالي ما بقدر استخدم ال وبما إنه ما في -
https://web.facebook.com/groups/IntelligenceGroup.CS/
24
مختلفة عن األمثلةn مش موجودة بشكل واضح وحتى الb بهذا المثال الحظوا إنه قيمة-
خلينا نحولها ل الصورة الطبيعية اللي بنعرفها عشان تكون، عشان نس ّهل على حالنا الحل،السابقة
: فاللي رح نعمله هو التالي...... واضحينb وa عنا المعادلة واضحة و
- Simplify it by letting m = lg n n = 2m
T (2m ) 2T (2m / 2 ) m
https://web.facebook.com/groups/IntelligenceGroup.CS/
25
Master Method بنبلش نحل المعادلة بنا ًء على ال، اآلن بعد ما حولناها للشكل الطبيعي-
... Iteration Method أو من خالل ال
T(n) = T(2m)
= S(m)
= (m log(m))
= ( log(n) log(logn) ==> T(n) = ( log(n) log(logn)
Albara Fwaz
#Intelligence Group
https://web.facebook.com/groups/IntelligenceGroup.CS/