You are on page 1of 44

‫ساختمانهای گسسته‬

‫‪Discrete Mathematics‬‬
‫فصل پنجم‬
‫روابط بازگشتي‬

‫‪H.R Imanikia‬‬ ‫‪1‬‬


‫فصل پنجم‬
‫روابط بازگشتي‬

‫‪ .1‬روابط بازگشتي‬
‫‪ .2‬حل روابط بازگشتي با استفاده از جايگذاري با تكرار‬
‫‪ .3‬حل روابط بازگشتي با استفاده از معادله مشخصه‬
‫‪ .1‬روابط بازگشتي همگن مرتبه دو‬
‫‪ .2‬روابط بازگشتي ناهمگن خطي با ضرايب ثابت‬

‫‪H.R Imanikia‬‬ ‫‪2‬‬


‫روابط بازگشتي‬
‫‪ ‬يك دنباله را به روشهاي متنوع مي توان تعريف نمود‪.‬‬
‫‪ (1‬نوشتن چندين جمله اول‪ ،‬به اميد رسيدن به يك الگو يا فرمول‬
‫عمومي‬
‫• مي تواند ابهام انگيز باشد‪.‬‬
‫‪ (2‬ارائه يك فرمول صريح براي جمله ‪n‬ام‬
‫• براي مثال )‪an=2n/(n+1‬‬
‫‪ (3‬استفاده از مفاهيم بازگشتي‬
‫• ارائه يك معادله به نام رابطه بازگشتي‪ ،‬كه‬
‫• در اين روش جمله ‪n‬ام به چندين جمله پيشين مرتبط مي شود‪ ،‬و‬
‫• مقادير چند جمله اول( به نام شرايط مرزي) نيز داده مي شود‪.‬‬
‫‪bn  bn1  bn2 n  2‬‬ ‫رابطه بازگشتي‬
‫‪‬‬
‫‪ b0  1‬‬ ‫‪b1  3‬‬ ‫شرايط مرزي‬

‫‪H.R Imanikia‬‬ ‫‪3‬‬


‫روابط بازگشتي‬
‫‪ ‬تعريف يك دنباله بصورت بازگشتي‪،‬‬
‫• مشابه اثبات قضايا به وسيله استقراي رياضي است‬
‫• شرايط مزري‪ ،‬مشابه پايه استقراء و‬
‫• خود رابطه بازگشتي مشابه مرحله استقراء است‪.‬‬

‫‪ ‬تعريف دقيق يك رابطه بازگشتي‬


‫• فرمولي است كه جمله ‪n‬ام را‬
‫• به ‪ k‬جمله پيشين‪ an-1, an-2, …, an-k ،‬مرتبط مي سازد‪.‬‬
‫• كه در آن ‪ ،k>=1‬يك عدد صحيح و ‪ n>=k‬است‪.‬‬
‫• شرايط مرزي‪ ،‬داشتن مقادير ‪ a0, a1, …, ak-1‬مي باشد‪.‬‬
‫• ‪ K‬مرتبه رابطه بازگشتي است‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪4‬‬


‫روابط بازگشتي‬
:‫ را بدست آوريد‬a2, a3, a4 ‫ مقادير‬،‫ در رابطه بازگشتي زير‬

an  an1  nan2  1 n  2



 a0  1 a1  2

a2  a1  2a0  1  2  2 *1  1  5
a3  a2  3a1  1  5  3 * 2  1  12
a4  a3  4a2  1  12  4 * 5  1  33

H.R Imanikia 5
‫روابط بازگشتي‬
‫‪ ‬در روابط بازگشتي زير‪ ،‬مقادير ‪ a1,a2, a3‬و ‪ b1,b2, b3‬را بدست آوريد‪:‬‬

‫‪an  3an 1‬‬ ‫‪n 1‬‬ ‫‪bn  3bn 1‬‬ ‫‪n 1‬‬
‫‪‬‬ ‫‪‬‬
‫‪ a0  2‬‬ ‫‪ b0  1‬‬

‫‪a1  3a0  3 * 2  6‬‬ ‫‪b1  3b0  3 *1  3‬‬


‫‪a2  3a1  3 * 6  18‬‬ ‫‪b2  3b1  3 * 3  9‬‬
‫‪a3  3a2  3 *18  54‬‬ ‫‪b3  3b2  3 * 9  27‬‬

‫… ‪: 2, 6, 18,54,‬دنباله ‪1‬‬ ‫… ‪: 1, 3, 9,27,‬دنباله ‪2‬‬

‫‪ ‬گرچه دو رابطه بازگشتي فوق‪ ،‬داراي صورت ظاهري يكساني هستند‪،‬‬


‫‪ ‬ولي بدليل شرايط مرزي متفاوت‪ ،‬دو دنباله كامال متفاوتي از آنها بدست آمده است‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪6‬‬


‫مفهوم بازگشتي‬

‫‪ ‬مفهوم بازگشتي‪ ،‬يكي از ايده هاي اساسي در علم كامپيوتر است‪.‬‬

‫‪ ‬حل يك مسئله بصورت بازگشتي‪ ،‬به معناي راهي براي شكستن مسئله‪ ،‬به‬

‫‪ ‬زير مسائلي كه صورت ظاهري آنها مشابه مسئله اوليه است‪.‬‬

‫‪ ‬اين روند براي مسائل كوچكتر آنقدر تكرار مي شود‪ ،‬تا‬

‫‪ ‬آخرين زير مسائل را بتوان به صورت ساده(و بدون بازگشتي) حل كرد‪.‬‬

‫‪ ‬در گام آخر‪ ،‬تلفيق و تركيب جوابهاي حاصل از زير مسائل كوچك تر با يكديگر‪،‬‬

‫‪ ‬جواب مسئله كلي را بدست خواهد داد‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪7‬‬


‫سنت تفكر بازگشتي‬
‫)‪(Recursive Paradigm‬‬
‫‪ ‬در حل مسائل بازگشتي‪ ،‬احتماالً مشكل ترين قسمت‪،‬‬
‫‪ ‬درك اين مطلب است كه با داشتن جواب براي زير مسائل كوچكتر‪،‬‬
‫‪ ‬چگونه مي توان به جواب اوليه رسيد‪.‬‬
‫‪ ‬اين فرض كه زير مسائل كوچكتر قبالً حل شده اند‪،‬‬
‫‪ ‬به سنت تفكر بازگشتي معروف است‪.‬‬
‫‪ ‬هر چند كه بعد از اين مرحله‪ ،‬درست در وسط مرحله دشوار ديگري قرار ميگيريد‪،‬‬
‫‪ ‬ولي نگران نباشيد‪ ،‬زيرا از اين مرحله به بعد‪ ،‬راه رسيدن به جواب نهايي كوتاه تر‬
‫است‪.‬‬
‫‪ ‬سنت تفكر بازگشتي‪ ،‬مشابه فرض استقرا در اثبات قضايا بوسيله استقراي رياضي‬
‫است‪.‬‬
‫‪H.R Imanikia‬‬ ‫‪8‬‬
‫برج هانوي‬
‫مطابق شكل‪ ،‬تعداد ‪ 64‬حلقه به ترتيب نزولي قطر آنها در ستون ‪ A‬قرار‬ ‫‪‬‬
‫دارند‪.‬‬
‫مي خواهيم آنها را به ستون ‪ С‬منتقل نماييم‪ ،‬نحوه انتقال و تعداد انتقال ها‬ ‫‪‬‬
‫را با شرايط زير بدست آوريد‪.‬‬
‫حلقه بزرگتر نبايستي روي حلقه كوچكتر قرار گيرد‪.‬‬ ‫‪‬‬
‫مي توان از ستون ‪ B‬به عنوان ستون كمكي استفاده نمود‪.‬‬ ‫‪‬‬

‫‪H.R Imanikia‬‬ ‫‪9‬‬


‫برج هانوي‬

‫يك روش كارا براي حل اين مسئله‪ ،‬انديشيدن بصورت بازگشتي است‪.‬‬

‫‪ ‬فرض كنيد!!! به گونه اي توانسته باشيد‪ ،‬توسط يك روشي كارا !!‬

‫‪ n- 1 ‬حلقه از يك ستون به يك ستون ديگر پيدا كرده باشيد‪ ( .‬با شرايط داده‬
‫شده)‬

‫‪ ‬حال سوال اينجاست‪ ،‬كه انتقال ‪ n‬حلقه چگونه انجام خواهد گرفت‪.‬‬
‫‪ ‬راه حل بدين صورت خواهد بود‪:‬‬

‫انتقال ‪ n-1‬حلقه از ستون ‪ A‬به ستون ‪B‬‬ ‫•‬

‫انتقال حلقه زيرين ستون ‪ A‬به ستون ‪С‬‬ ‫•‬

‫انتقال ‪ n-1‬حلقه (باقي مانده) از ستون ‪ B‬به ستون ‪ ( С‬به كمك ستون ‪)A‬‬ ‫•‬

‫‪H.R Imanikia‬‬ ‫‪10‬‬


H.R Imanikia 11
‫برج هانوي‬

‫‪ ‬فرض كنيد ‪ an‬حداقل تعداد انتقالهاي الزم براي جابجايي ‪ n‬حلقه باشد‪.‬‬

‫‪ ‬براي رسيدن از موقعيت (الف) به موقعيت (ب) تعداد ‪ an-1‬انتقال الزم است‪.‬‬

‫‪ ‬براي رسيدن از موقعيت (ب) به موقعيت (ج) فقط به يك انتقال نياز است‪.‬‬

‫‪ ‬و براي رسيدن از موقعيت (ج) به موقعيت (د) تعداد ‪ an-1‬انتقال ديگر نياز‬
‫است‪.‬‬

‫‪ ‬بنابراين‪:‬‬
‫•‬ ‫‪an=an-1 + 1 + an-1 = 2an-1 + 1 , n>=2‬‬
‫•‬ ‫‪} = 1‬تعداد انتقالهاي الزم براي جابجايي يك حلقه از ستوني به ستون ديگر{ = ‪a1‬‬
‫‪an  2an 1  1 , n  2‬‬
‫‪‬‬
‫‪ a1  1‬‬
‫‪H.R Imanikia‬‬ ‫‪12‬‬
‫اعداد فيبوناچي‬
‫‪ ‬از مسائل معروف روابط بازگشتي است‪.‬‬
‫‪ ‬منسوب به لئوناردو پيزا معروف به فيبوناچي‪ ،‬رياضيدان قرون وسطا است‪.‬‬
‫‪ ‬يك جفت خرگوش(نر و ماده) در ابتداي سال متولد مي شوند‪ ،‬با شرايط‬
‫زير‪:‬‬
‫هر جفت خرگوش‪ ،‬در ماه اول تولدشان بچه اي به دنيا نمي آورند‪.‬‬ ‫•‬
‫ولي پس از ماه اول‪ ،‬در آخر هر ماه ديگر‪ ،‬يك جفت خرگوش به دنيا‬ ‫•‬
‫مي آورند‪.‬‬
‫هيچ خرگوشي از بين نمي رود ( نمي ميرند)‬ ‫•‬
‫‪ ‬در انتهاي سال‪ ،‬چند جفت خرگوش وجود خواهد داشت؟‬

‫‪H.R Imanikia‬‬ ‫‪13‬‬


‫اعداد فيبوناچي‬
‫‪ ‬بازهم بكار گيري تفكر بازگشتي!‬
‫‪ ‬فرض كنيد تعداد خرگوشهاي موجود در انتهاي ماه قبل را ميدانيم!!‪،‬‬
‫‪ ‬حال تعداد خرگوشهاي موجود در انتهاي ماه جاري چقدر خواهد بود!!؟؟‬
‫‪ ‬چيزي كه بطور قطع ميدانيم اين است كه‬
‫تعداد جفت خرگوشهاي متولد شده در انتهاي ماه ‪n‬ام‪،‬‬ ‫‪‬‬
‫برابر با تعداد جفت خرگوشهاي موجود در انتهاي ماه ‪ n-2‬است‪.‬‬ ‫‪‬‬
‫(زيرا خرگوشهاي متولد شده در انتهاي ماه ‪ n-1‬هنوز توليد مثل نكرده اند‪).‬‬ ‫‪‬‬
‫‪ ‬بنابراين تعداد جفت خرگوشهاي موجود در انتهاي ماه ‪n‬ام برابر‪:‬‬
‫تعداد جفت خرگوشهاي موجود در انتهاي ماه ‪ ، n-1‬بعالوه‬ ‫‪‬‬
‫تعداد جفت خرگوشهاي متولد شده در انتهاي ماه ‪n‬ام ( مساوي تعداد‬ ‫‪‬‬
‫خرگوشهاي موجود در انتهاي ماه ‪ n-2‬است)‬

‫‪H.R Imanikia‬‬ ‫‪14‬‬


‫اعداد فيبوناچي‬
‫‪ ‬بنابراين‪ ،‬به رابطه بازگشتي زير ميرسيم‪:‬‬
‫‪Fn = Fn-1+Fn-2 , n>=2‬‬
‫‪F0=1 , F1=1‬‬

‫‪H.R Imanikia‬‬ ‫‪15‬‬


‫اعداد دودويي فاقد الگوي ‪11‬‬

‫‪ ‬فرض كنيد كه ‪ Sn‬تعداد اعداد دودويي ‪ n‬رقمي فاقد الگوي ‪ 11‬است‪.‬‬


‫الف)‪ S0, S1, S2, S3‬را به دست آوريد‪.‬‬ ‫•‬
‫ب) ‪ S10‬را به دست آوريد‪.‬‬ ‫•‬
‫‪ ‬الف) روش اول – فهرست كردن همه اعداد دودويي‬
‫صفر‪ ،‬يك‪ ،‬دو و سه رقمي و كنار گذاشتن اعداد حاوي ‪11‬‬ ‫•‬
‫صفر رقمي ‪ :‬تهي‬ ‫•‬
‫يك رقمي ‪0, 1 :‬‬ ‫•‬
‫دو رقمي ‪00, 01, 10, 11 :‬‬ ‫•‬
‫سه رقمي ‪000, 001, 010, 011, 100, 101, 110, 111 :‬‬ ‫•‬

‫‪H.R Imanikia‬‬ ‫‪16‬‬


‫اعداد دودويي فاقد الگوي ‪11‬‬
‫ب) براي محاسبه ‪ S10‬مي توان ‪ 1024=210‬عدد ‪ 10‬رقمي را ليست كرد و الگوي داده‬
‫شده را شمارش نمود‪.‬‬
‫‪ ‬روش مناسب تر استفاده از روش بازگشتي است‪.‬‬
‫‪ ‬فرض كنيد تعداد اعداد دودويي كمتر از ‪ n‬رقم و فاقد الگوي ‪ 11‬را مي دانيم‪.‬‬
‫‪ ‬حال همه اعداد دودويي ‪ n‬رقمي فاقد الگوي ‪ 11‬را در نظر بگيريد‪:‬‬
‫‪ ‬هر عدد در اين مجموعه يا با رقم ‪ 0‬و يا رقم ‪ 1‬شروع مي شود‪.‬‬
‫‪ ‬اگر رقم اول ‪ 0‬است‪ ،‬آنگاه ‪ n-1‬رقم با قيمانده‪،‬‬
‫مي توانند هر دنباله اي از ‪ 0‬و‪ 1‬باشند (مشروط بر اينكه فاقد الگوي ‪ 11‬باشند)‬ ‫•‬
‫‪ ‬اگر رقم اول ‪ 1‬باشد‪ ،‬آنگاه‪:‬‬
‫رقم دوم بايد ‪ 0‬باشد و‬ ‫•‬
‫‪ n-2‬رقم باقيمانده مي توانند شامل هر دنباله اي باشند( مشروط بر ‪)...‬‬ ‫•‬

‫‪H.R Imanikia‬‬ ‫‪17‬‬


‫اعداد دودويي فاقد الگوي ‪11‬‬
‫‪ ‬بنابراين خواهيم داشت ‪:‬‬
‫‪Sn = Sn-1 + Sn-2‬‬
‫‪S1 = 2, S2 = 3‬‬

‫‪H.R Imanikia‬‬ ‫‪18‬‬


‫تعداد افرازهاي ممكن‬
‫يك مجموعه ‪ n‬عضوي به ‪ r‬زير مجموعه‬
‫‪ ‬فرض كنيد كه ‪ Sn,r‬تعداد حالتهايي باشد كه يك مجموعه ‪ n‬عضوي را بتوان به ‪r‬‬
‫زير مجموعه(غير تهي) افراز نمود‪.‬‬
‫‪ ، Sn,r ‬به اعداد استرلينگ نوع دوم معروف هستند‪.‬‬
‫• بطور مثال براي مجموعه ‪ 3‬عضوي }‪{x1, x2, x3‬‬
‫• اگر بخواهيم آنرا به دو زير مجموعه افراز كنيم‪[S3,2=3]=? :‬‬
‫• يكي از زير مجموعه ها شامل يك عضو و ديگري شامل ‪ 2‬عضو خواهد بود‬
‫• (زيرا زير مجموعه ها نبايستي تهي باشند)‬
‫}‪{x1} , {x2, x3‬‬
‫}‪{x2} , {x1, x3‬‬
‫}‪{x3} , {x2, x1‬‬
‫‪S3,2=3‬‬
‫‪H.R Imanikia‬‬ ‫‪19‬‬
‫تعداد افرازهاي ممكن‬
‫يك مجموعه ‪ n‬عضوي به ‪ r‬زير مجموعه‬
‫‪ ‬براي مجموعه‬
‫}‪• S = {x1, x2, x3, x4‬‬
‫‪ ‬مقادير ‪ S4,1, S4,2, S4,3, S4,4‬را به دست آوريد‪.‬‬
‫• ‪ S4,1 = 1‬است‪،‬‬
‫• زيرا يك مجموعه ‪ 4‬عضوي را فقط به يك شكل مي توان افراز نمود‪.‬‬
‫}‪{x1, x2, x3, x4‬‬ ‫•‬

‫• به طريق مشابه نيز ‪S4,4 = 1‬‬


‫• زيرا تنها افراز ممكن ‪:‬‬
‫• }‪ {x1} {x2} {x3} {x4‬است‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪20‬‬


‫تعداد افرازهاي ممكن‬
‫يك مجموعه ‪ n‬عضوي به ‪ r‬زير مجموعه‬
‫‪ S4,2 = 7 ‬است‪ ،‬زيرا‬
‫• يك مجموعه ‪ 4‬عضوي را مي توان به دو صورت به دو زير مجموعه افراز نمود‪.‬‬
‫• در حالت اول – هر زير مجموعه از افراز شامل دو عضو و‬
‫• در حالت دوم يكي از زير مجموعه ها‪ ،‬داراي يك عضو و ديگري داراي ‪ 3‬عضو‬

‫}‪{x1, x2‬‬ ‫}‪{x3, x4‬‬ ‫}‪{x1‬‬ ‫}‪{ x2, x3, x4‬‬


‫}‪{x2‬‬ ‫}‪{ x1, x3, x4‬‬
‫}‪{x1, x3‬‬ ‫}‪{x2, x4‬‬
‫}‪{x3‬‬ ‫}‪{ x1, x2, x4‬‬
‫}‪{x1, x4‬‬ ‫}‪{x2, x3‬‬
‫}‪{x4‬‬ ‫}‪{ x1, x2, x3‬‬
‫بنابراين ‪:‬‬
‫‪S4,2 = 3 + 4 = 7‬‬
‫‪H.R Imanikia‬‬ ‫‪21‬‬
‫تعداد افرازهاي ممكن‬
‫يك مجموعه ‪ n‬عضوي به ‪ r‬زير مجموعه‬
‫‪ ‬و باالخره ‪ S4,3 = 6‬است‪ ،‬زيرا‬
‫• در افراز يك مجموعه ‪ 4‬عضوي به ‪ 3‬زير مجموعه‪ ،‬بايد‪:‬‬
‫• يكي از زير مجموعه ها داراي ‪ 2‬عضو و دو زير مجموعه ديگر هر كدام ‪ 1‬عضو باشند‬
‫• ‪ C24=6‬حالت مختلف مي توان ‪ 2‬عضو از چهار عضو را با هم در يك مجموعه داشت‪.‬‬

‫}‪{x1, x2‬‬ ‫}‪{x3} {x4‬‬


‫}‪{x1, x3‬‬ ‫}‪{x2} {x4‬‬
‫}‪{x1, x4‬‬ ‫}‪{x2} {x3‬‬
‫}‪{x2, x3‬‬ ‫}‪{x1} {x4‬‬
‫}‪{x2, x4‬‬ ‫}‪{x1} {x3‬‬
‫}‪{x3, x4‬‬ ‫}‪{x1} {x2‬‬
‫‪H.R Imanikia‬‬ ‫‪22‬‬
‫تعداد افرازهاي ممكن‬
‫يك مجموعه ‪ n‬عضوي به ‪ r‬زير مجموعه‬
‫‪ ‬يك رابطه بازگشتي براي ‪ Sn,r‬با شرايط مرزي به دست آوريد‪.‬‬
‫• فرض كنيم كه قبالً ‪ Sn-1,r-1‬و ‪ Sn-1,r‬را حساب كرده ايم‪.‬‬
‫• افراز يك مجموعه ‪ n‬عضوي مانند }‪ {x1, x2, …, xn‬به ‪ r‬زير مجموعه را‬
‫• مي توان به دو گروه افراز نمود‪.‬‬
‫• فرض مي كنيم ‪ xn‬نباشد و بخواهيم با }‪{x1, x2, …, xn-1‬‬
‫• افرازهاي ‪ r-1‬زير مجموعه اي بسازيم‪.‬‬
‫• تعداد اين افرازها برابر ‪ Sn-1,r-1‬است‪.‬‬
‫• حال مي توان }‪ {xn‬را بعنوان يك مجموعه افراز به هر كدام از آنها‬
‫اضافه كرد و‬
‫• افراز ‪ r‬زير مجموعه اي بدست آورد‪.‬‬
‫‪H.R Imanikia‬‬ ‫‪23‬‬
‫تعداد افرازهاي ممكن‬
‫يك مجموعه ‪ n‬عضوي به ‪ r‬زير مجموعه‬
‫• در حالت دوم هم فرض مي نماييم كه ‪ xn‬نباشد و بخواهيم با‬
‫• }‪ {x1, x2, …, xn-1‬افرازهاي ‪ r‬زير مجموعه اي بسازيم‪،‬‬
‫• تعداد چنين افرازهايي برابر ‪ Sn-1,r‬است‪.‬‬
‫• حال ‪ xn‬را مي توانيم به درون هر كدام از مجموعه ها اضافه نموده‬
‫• (كه البته تعداد زير مجموعه هاي افراز ثابت خواهد ماند)‬
‫• چون ‪ r‬تا زير مجموعه هاي افراز داريم‪ ،‬بنابراين تعداد كل حالتهايي ممكن براي‬
‫• اضافه كردن ‪ xn‬به درون زير مجموعه ها برابر ‪ r.Sn-1,r‬خواهد شد‪.‬‬
‫‪Sn,r = Sn-1,r-1 + rSn-1,r , 1=< r <= n‬‬
‫‪Sn,1 = 1,‬‬ ‫‪Sn,n = 1‬‬ ‫‪,‬‬ ‫‪n>=1‬‬

‫‪H.R Imanikia‬‬ ‫‪24‬‬


‫حل روابط بازگشتي‬

‫‪ ‬دنباله اي با يك رابطه بازگشتي و شرايط مرزي مفروض است‪.‬‬


‫‪ ‬گاهي اوقات‪ ،‬بداليل زير‪ ،‬الزم و يا سودمند است كه‬
‫‪ ‬يك فرمول صريح براي دنباله داشته باشيم‪:‬‬
‫• براي محاسبه جمالت با انديس باال – كه محاسبه بازگشتي زمانبر است‬
‫• براي تجزيه و تحليل خواص عمومي دنباله ها‬
‫‪ ‬چنين فرمول صريحي را جواب رابطه بازگشتي مي ناميم‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪25‬‬


‫حل روابط بازگشتي‬
:‫ رابطه بازگشتي زير را حل كنيد‬- ‫• مثال‬
an = an-1 + f(n) , n>=1
a0 ‫يك ثابت‬ , n=0
a1 = a0 +f(1)
a2 = a1 + f(2)
a3 = a2 + f(3)
.
.

an = an-1 + f(n)
an = a0 + f(1) + f(2) + … + f(n)
n
an  a0   f (k )
k 1
H.R Imanikia 26
‫حل روابط بازگشتي‬
:‫ رابطه بازگشتي زير را حل كنيد‬- ‫• مثال‬
an = can-1 + f(n) , n>=1
a0 ‫يك ثابت‬ , n=0
a1 = ca0 +f(1)
a2 = ca1 + f(2) = c[ca0 +f(1)] + f(2) =c2 a0 +cf(1) + f(2)
a3 = ca2 + f(3) = c[c2a0 +cf(1) + f(2)]+f(3) =c3a0 +c2f(1) + cf(2) + f(3)

an = can-1 + f(n) = c[cn-1 a0 + cn-2f(1)] + … + cf(n-2) + f(n-1)] + f(n)


an = cn a0 + cn-1f(1) + … + c2f(n-2) + c1f(n-1) + f(n)
n
an  c n a0   c n  k f (k )
k 1

H.R Imanikia 27
‫حل روابط بازگشتي‬
:‫ رابطه بازگشتي براي برج هانوي را حل كنيد‬- ‫• مثال‬
an = 2an-1 + 1 , n>=1
a0 =0
c=2 , f(n)=1 n
an  c n a0   c n  k f (k )
k 1

n
an  2 * 0   2 n  k  2 n 1  2 n  2  ...  2 2  21  2 0
n

k 1

2n  1
an 
2 1
an  2 n  1

H.R Imanikia 28
‫حل روابط بازگشتي‬
‫• مثال – فرض كنيد كه ‪ ، Kn‬شكلي است كه از ترسيم‬
‫• يك ‪-n‬ضلعي و همه قطرهاي آن حاصل شده است‪.‬‬

‫‪K1‬‬
‫‪K2‬‬ ‫‪K3‬‬ ‫‪K4‬‬
‫‪K5‬‬
‫• مالحظه مي شود كه ‪ Kn‬را مي توان از روي ‪ Kn-1‬به صورت زير به دست‬
‫آورد‪.‬‬
‫• يك راس جديد رسم كرده و از اين راس جديد‬
‫• به همه رئوس ‪ n-1 ، Kn-1‬يال جديد رسم مي نماييم‪an  an1  (n  1) , n  1 .‬‬
‫‪‬‬
‫‪‬‬ ‫‪a0  0‬‬
‫• اگر ‪ a‬تعداد يالهاي(اضالع) ‪ K‬باشد ‪:‬‬
‫‪n‬‬ ‫‪n‬‬

‫‪H.R Imanikia‬‬ ‫‪29‬‬


‫حل روابط بازگشتي‬
‫مثال – مرتب سازي ادغامي‬
‫‪ ‬يك روش بازگشتي براي مرتب سازي است‪.‬‬
‫‪ ‬نخست آرايه نامرتب به دو زير آرايه تقسيم و‬
‫‪ ‬سپس اين زير آرايه ها به صورت بازگشتي مرتب مي شوند‪.‬‬
‫‪ ‬پس از آن اين زير آرايه ها‪ ،‬با هم ادغام مي شوند‪.‬‬
‫‪ ‬در شكل مراحل تقسيم و ادغام براي آرايه ]‪[5, 4, 0, 9, 3, 2, 8, 23, 21‬‬
‫آورده شده است‪.‬‬
‫‪ ‬هزينه مرتب سازي اين الگوريتم‪،‬‬
‫• بر حسب تعداد مقايسه ها انجام شده محاسبه ميشود‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪30‬‬


‫حل روابط‬
‫بازگشتي‬

‫‪H.R Imanikia‬‬ ‫‪31‬‬


‫حل روابط بازگشتي‬
‫‪ ‬اگر ‪ ،an‬حداكثر تعداد مقايسه هاي الزم براي مرتب سازي يك آرايه ‪n‬‬
‫عنصري باشد‬
‫• آنگاه ‪:‬‬
‫) ‪an = 2an/2 + ( n-1‬‬ ‫‪n>=2, n=2m‬‬
‫‪a1 = 0‬‬
‫‪ ،an/2 ‬حداكثر تعداد مقايسه هاي الزم‬
‫• براي مرتب سازي يك آرايه ‪ n/2‬عنصري‬
‫‪ ‬و )‪ (n-1‬تعداد مقايسه هاي الزم براي‬
‫• ادغام دو آرايه مرتب شده كه هر كدام ‪ n/2‬عنصر دارند‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪32‬‬


‫حل روابط بازگشتي‬
:‫ اين رابطه بازگشتي را نيز مي توان با روش جايگذاري با تكرار حل كنيم‬
an = 2an/2 + n- 20
2an/2 = 2 [2an/4 + n/2 -1 ] = 22an/4 + n – 21
22an/4 = 22 [2 an/8 + n/4 -1] = 23an/8 + n – 22
…..

an - 2an/2 = n- 20
2an/2 - 22an/4 = n – 21
22an/4 - 23an/8 = n – 22

2m-1an/2m-1 - 2man/2m = n – 2m-1


________________________________________

an = (n- 20) + (n- 21) + (n- 22) + …+ (n- 2m-1)


an = mn-(20 + 21 + 22 + …+ 2m-1 ) = mn – (2m -1) = mn – m + 1
an = nlog2n – n +1
H.R Imanikia 33
‫حل روابط بازگشتي‬
‫با استفاده از معادله مشخصه‬
‫‪ ‬فرض كنيد‬

‫• ‪ k‬يك عدد صحيح و مثبت‬


‫• ‪ cn, cn-1 , cn-2 , …, cn-k‬همگي مخالف صفر و اعداد حقيقي باشند‬
‫• و ‪ an‬يك دنباله باشد‪.‬آنگاه ‪:‬‬
‫)‪cn an + cn-1 an-1 + … + cn-k an-k = f(n‬‬ ‫‪n>=k‬‬
‫• يك رابطه بازگشتي(با ضرايب ثابت) از مرتبه ‪ k‬است‪.‬‬
‫• اگر ‪ f(n)=0 ،n ≥ 0‬آنگاه رابطه بازگشتي را همگن ( متجانس) و‬
‫• در غير اينصورت ناهمگن گوييم‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪34‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬
‫‪ ‬يك رابطه بازگشتي همگن مرتبه دو بصورت زير است‪:‬‬
‫‪cn an + cn-1 an-1 + cn-2 an-2 = 0 , n>=2‬‬

‫• با قرار دادن ‪ an = crn‬كه در آن ‪ с<>0, r<>0‬در رابطه باال‪:‬‬


‫‪cn crn + cn-1 crn-1 + cn-2 crn-2 = 0‬‬
‫‪Cn r2 + cn-1 r + cn-2 = 0‬‬
‫• اين معادله به نام ”معادله مشخصه“ خوانده ميشود‪.‬‬
‫• فرض كنيم كه ‪ r1, r2‬ريشه هاي اين رابطه باشند‪.‬‬
‫• سه حالت مختلف براي تعيين جوابهاي اين معادله وجود دارد‪.‬‬
‫• دو جواب حقيقي متمايز‬
‫• دو ريشه مختلط‬
‫• يك ريشه مضاعف‬
‫‪H.R Imanikia‬‬ ‫‪35‬‬
‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬

‫ريشه ها‪ ،‬اعداد حقيقي و متمايز‬


‫‪ ‬جواب عمومي بصورت‬
‫‪an = c1 r1n + c2 r2n‬‬
‫‪ ‬كه در آن ‪ c1, c2‬ثابت هاي دلخواهي هستند كه‬
‫‪ ‬در صورت معلوم بودن شرايط مرزي‪ ،‬قابل محاسبه اند‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪36‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬
‫‪ ‬مثال – جواب رابطه بازگشتي زير را به دست آوريد‪.‬‬
‫‪an + an-1 -6an-2 = 0 , n>=2‬‬
‫‪a0 = 1 , a1=2‬‬
‫‪ ‬با در نظر گرفتن تعريف بازگشتي‪ ،‬معادله مشخصه رابطه فوق‬
‫‪r2 + r - 6 = (r+3)(r-2) = 0‬‬
‫‪Cn‬‬ ‫‪r2‬‬ ‫‪+ cn-1 r + cn-2 = 0‬‬
‫‪r2=-3 , r1=2‬‬

‫جواب عمومي بصورت‬ ‫•‬


‫‪• an = c1 2n + c2 (-3)n‬‬
‫با جايگذاري شرايط مرزي‪ ،‬معادالت زير حاصل خواهد شد‪:‬‬ ‫•‬

‫‪H.R Imanikia‬‬ ‫‪37‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬

‫‪a0 = c1 20 + c2 (-3)0 = c1 + c2 = 1‬‬


‫‪a1 = c1 21 + c2 (-3)1 = 2c1 – 3 c2 =2‬‬
‫‪c1 = 1 , c2=0‬‬
‫‪ ‬لذا جواب معادله بصورت خواهد شد‪:‬‬

‫‪an = 2n‬‬

‫‪H.R Imanikia‬‬ ‫‪38‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬
‫‪ ‬مثال – جواب رابطه بازگشتي رشته فيبوناچي را به دست آوريد‪.‬‬
‫‪Fn - Fn-1 -Fn-2 = 0 , n>=2‬‬
‫‪F0 = 0 , F1=1‬‬ ‫‪Cn r2 + cn-1 r + cn-2 = 0‬‬

‫‪ ‬با در نظر گرفتن تعريف بازگشتي‪ ،‬معادله مشخصه رابطه فوق‬


‫‪r2 - r - 1 = 0‬‬ ‫‪1 5‬‬ ‫‪1 5‬‬
‫‪r1 ‬‬ ‫‪, r2 ‬‬
‫‪2‬‬ ‫‪2‬‬
‫‪n‬‬ ‫‪n‬‬
‫‪ ‬جواب عمومي بصورت‬
‫‪1‬‬ ‫‪5‬‬ ‫‪1 5 ‬‬
‫‪Fn  c1 ‬‬ ‫‪  c2 ‬‬
‫‪‬‬ ‫‪ 2 ‬‬
‫‪‬‬
‫‪ 2‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬
‫‪‬با جايگذاري شرايط مرزي‪ ،‬معادالت زير حاصل خواهد شد‪:‬‬

‫‪H.R Imanikia‬‬ ‫‪39‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬
F0  c1  c2  0

 1 5  1 5
F1  c1  2   c2  2  1

    

1 1 5  1 1 5 
c1    , c   
5  2  5  2 
2

:‫ لذا جواب معادله بصورت خواهد شد‬


1  1  1 5  
n 1 n 1
5
Fn    

 
 2  
5  2    

H.R Imanikia 40
‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬

‫مثال – محاسبه تعداد عبارات محاسباتي مجاز در يك زبان برنامه نويسي‬


‫‪ ‬بدون استفاده از پرانتز‬
‫‪ ‬استفاده از ارقام ‪ 0‬تا ‪9‬‬
‫‪ ‬استفاده از اعمال ‪ * ،+‬و ‪/‬‬
‫‪ ‬براي مثال عبارات ‪ 4+3‬و ‪ 2+3*5‬مجاز‬
‫‪ ‬ولي عبارت ‪ 8+*9‬غير مجاز مي باشد‪.‬‬

‫‪H.R Imanikia‬‬ ‫‪41‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬
‫‪ ‬فرض كنيد كه ‪ an‬تعداد عبارات مجاز روي ‪ n‬عالمت باشد‪.‬‬
‫‪ ‬بديهي است كه ‪( a1 = 10‬فقط ارقام ‪ 0‬تا ‪ 9‬را مي توان بكار برد)‬
‫‪ ‬و همچنين ‪( a2 = 100‬فقط عبارات ‪ 00‬تا ‪ 99‬مجاز هستند)‬
‫‪ ‬براي ‪ n>=3‬دو حالت براي ‪ an‬متصور است‪:‬‬
‫‪ .A‬اگر ‪ x‬يك عبارت محاسباتي متشكل از )‪ (n-1‬عالمت است‬
‫آنگاه عالمت آخر بايستي يك رقم باشد‪.‬‬ ‫•‬
‫در اين حالت با اضافه كردن يك رقم به سمت راست ‪،x‬‬ ‫•‬
‫‪ 10an-1‬عبارت محاسباتي متشكل از ‪ n‬رقم‪،‬‬ ‫•‬
‫كه دو عالمت آخر آنها رقم است به دست خواهد آمد‪.‬‬ ‫•‬

‫‪H.R Imanikia‬‬ ‫‪42‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬
‫‪ .B‬اگر ‪ y‬يك عبارت محاسباتي متشكل از )‪ (n-2‬عالمت است‬
‫براي به دست آوردن يك عبارت محاسباتي با ‪ n‬عالمت‬ ‫•‬
‫كه در بخش قبل منظور نشده است ‪:‬‬ ‫•‬
‫به سمت راست ‪ y‬يكي از ‪ 29‬عبارت دو عالمتي زير را اضافه‬ ‫•‬
‫ميكنيم‬
‫‪+0 ،+9 ،... ،+2 ،+1‬‬ ‫•‬
‫‪*0 ،*9 ،... ،*2 ،*1‬‬ ‫•‬
‫‪/9 ،... ،/2 ،/1‬‬ ‫•‬

‫‪H.R Imanikia‬‬ ‫‪43‬‬


‫حل روابط بازگشتي‬
‫روابط بازگشتي همگن مرتبه دو‬
‫‪ ‬بنابراين با توجه به دو حالت فوق‪ ،‬داريم‪:‬‬
‫‪an = 10an-1 + 29an-2 , n>=3‬‬
‫‪a1= 10 , a2 = 100‬‬
‫‪ ‬در نتيجه‪ ،‬معادله مشخصه ‪ r2-10r-29‬است‬
‫‪ ‬كه ريشه هاي آن ‪ 5  3 6‬هستند‬
‫‪ ‬لذا‬
‫‪5‬‬
‫‪an ‬‬ ‫] ‪[(5  3 6 ) n  (5  3 6 ) n‬‬
‫‪3 6‬‬

‫‪H.R Imanikia‬‬ ‫‪44‬‬

You might also like