BFS DFS : درخت یک گراف همبند بدون دور است. جنگل یک گراف بدون دور است. پس هر مولفه همبندی جنگل درخت است. هر راس درجه 1 در درخت را یک برگ مینامیم.
یک درخت فراگیر از گراف G یک زیردرخت فراگیر از ان است که درخت باشد. درخت با یک راس را درخت بدیهی مینامیم. 3 قضیه: درخت T دارای n راس و 1-n یال است. قضیه: بین هر دو راس از درخت دقیقا یک مسیر وجود دارد. نتیجه: هر یال درخت یک پل است. قضیه: هر درخت غیر بدیهی دارای حداقل برگ است. قضیه: اگر بزرگترین درجه راسی درخت T برابر با باشد انگاه T دارای حداقل برگ است. 4
درخت جهتدار T گراف جهتداری است که گراف زمینه ان درخت باشد. درخت ریشهدار T درخت جهتداری است که راسی مانند r به نام ریشه داشته باشد به طوری که از ریشه به هر راس دیگر مسیر جهتداری وجود داشته باشد. 5 اگر T یک درخت ریشه دار باشد معمول است T طوری رسم شود که ریشه در باالترین سطح ان در سطح یک و به همین صورت راسهای مجاور راسهای هر (سطح صفر) راسهای مجاور سطح i در سطح 1+i قرار گیرند. در این صورت جهت کمان ها در نمایش حذف میشود. بزرگترین سطح در درخت را ارتفاع درخت مینامیم. 6
r اگر T قضیه: جهتدار T درخت تنها و اگر است دار ریشه مانند راسی شامل که طوری به باشد id(u) داشته باشیم = 1 u و برای هر راس دیگر id(r) = 0 اثبات: اگر T درخت ریشه دار باشد حکم به وضوح برقرار است. ایده فرض کنید T درخت جهتدار با شرط داده شده باشد. یک راس دلخواه u انتخاب کنید. = 1 id(u) سپ کمان ورودی (v,u) وجود دارد. اگر v = r مساله حل شده است. در غیر این صورت v هم یک کمان ورودی دارد. با ادامه این روند مسیری جهتدار از r به u تعیین میشود. 7 در درخت ریشه دار T اگر کمان (w,v) وجود داشته باشد v فرزند w و w پدر v است. اگر مسیر جهتداری از u به v وجود داشته باشد u جد v و V نوه u است. زیردرخت ریشهداری که از راس u و همه نوادگان ان تشکیل میشود زیردرخت ماکسیمال T با ریشه u نام دارد و با نماد ) u )T نشان داده میشود. 8
ان حداکثر m فرزند داشته باشد. درخت ریشه دار T را m -تایی مینامیم هرگاه هر راس درخت m -تایی درخت m -تایی را تام مینامیم هرگاه هر راس m یا صفر فرزند داشته باشد. را متعادل مینامیم هرگاه همه برگهای اگر =m باشد درخت را دودویی مینامیم. ان در سطح h یا 1-h قرار داشته باشند. 9 10
قضیه: هر درخت m- تایی تام با i راس داخلی دارای mi+1 راس است. نتیجه: هر درخت دودویی با i راس داخلی دارای 1+i برگ است. قضیه: اگر T یک درخت دودویی با ارتفاع h و p راس باشد انگاه اثبات: ایده h + + p 1 کران پایین برای مسیر جهتدار به طول 1-p برقرار است. h 1 1 در هر درخت دودویی تعداد راسها در هر سطح حداکثر دو برابر تعداد راسها در سطح قبل است. 11 DFS ورودی: گراف G خروجی: جنگل فراگیر T (برای حفظ اطالعات پدر و فرزندی در جنگل از متغیر pred استفاده میکنیم.) به هر راس u اندیس dfi(u) نسبت داده میشود 1
DFS O(max{n,m}) -1 به ازای هر راس u قرار دهید dfi(u)= 0 و = 0 pred(u). - قرار دهید = 1 k. -3 یک راس r با = 0 dfi(r) انتخاب کنید. قرار دهید dfi(u) = k u = r و k+1 k = 4- تا زمانی که u r مراحل زیر را تکرار کنید. اگر همه راسهای مجاور u مشاهده شدهاند قرار دهید pred(u) =u. در غیر این صورت فرض کنید v راس مجاور u و مشاهده نشده باشد قرار دهید k = و k+1 u = v و dfi(v) = k pred(v) = u 5- اگر برای هر راس u داریم 0 dfi(u) الگوریتم تمام شده. در غیر این صورت به مرحله 3 بروید. 13 -DFS 14
-DFS 15 DFS 16
BFS ورودی: گراف G خروجی: یک جنگل فراگیر از گراف G برای هر راس یکی از وضعیت های مشاهده نشده پردازش شده (status=3) وجود دارد. (status=1) درحال پردازش (status=1) و معموال در پیاده سازی این الگوریتم از ساختمان داده صف استفاده میشود. 17 BFS -1 برای هر راس u در G قرار دهید = 1 status(u) و = 1.k - یک راس دلخواه u با status(u)= 1 انتخاب کنید قرار دهید status(u)= u را در صف وارد کنید و قرار دهید = 0.pred(u) 3- تا زمانی که صف خالی نشده --3 1-3- یک راس v از ابتدای صف بردارید. همه همسایگان v که وضعیت 1 دارند به وضعیت ببرید و در صف وارد کنید. قرار دهید = 3 status(v) pred(v) =u bfi(v) = k و.u=v و k+1.k = 4- اگر راسی در گراف با وضعیت 1 باقی مانده است به مرحله بروید. در غیر این صورت الگوریتم تمام شده است. 18
-BFS 19 BFS 0
زيرگرافي فراگير از گراف G كه درخت است درخت فراگير نام دارد. ا يا هر گرافي داراي درخت فراگير است ا يا هر گراف همبندي داراي درخت فراگير است چرا ا يا درخت فراگير گراف يكتاست چطور مي توان درخت فراگير براي يك گراف ساخت 1 در گراف وزن دار وزن يك زيرگراف برابر با مجموع وزن يالهاي ان است.
براي گراف وزن دار داده شده درخت فراگيري با كمترين :(MST) کوچکترین درخت فراگیر مساله وزن بيابيد. در یک گراف وزندار درخت فراگير لزوما يكتا نيست. در هر گراف كه وزن يالها متمايز است MST يكتاست. بهترین الگوریتمها برای حل مساله الگوریتمهای حریصانه هستند. كاربرد: طراحي شبكه هاي خدمات شهري بسياري از كاربردهاي تئوري 3 در گرافهای بدون وزن (یا وزن همه یال ها برابر باشد.) الگوریتم BFS الگوریتم DFS در گرافهای وزن دار الگوریتم کروسکال الگوریتم پریم الگوریتم بروفکا (در صورتی که وزن همه یالها متمایز باشد.) 4
1. ] مقدار دهی اوليه S مجموعه يالهای کوچکترين درخت فراگير است.] S φ e S بدون< } دورe است. U{ S قرار < دهيد و. ] مجموعه S افزايش می يابد.] فرض کنيد e يالی با کمترين وزن است 3. ] اين مرحله بررسی میکند } e { کوچکترين S درخت فراگير S ساخته شده.] اگر 1 p S = خروجی S است. در غير اين صورت به مرحله بازگرديد. 5 - y y G 5 3 6 w x 4 5 T 3 x w u 1 v u 1 v 6
قضيه: در هر گراف وزن دار الگوريتم كروسكال كوچكترين درخت فراگير را توليد مي كند. ايده اثبات: فرض كنيد T خروجي الگوريتم و T يك كوچكترين درخت فراگير باشد. اولين يال T كه در T نيست را e i بناميد. T +e i داراي دور است. يك يال e كه در T نيست از اين دور برمي داريم. e- T +e i يك درخت فراگير است. اگر )<w(e ) w(e i باشد w(t)>w(t ) مي شود كه امكان ندارد. اگر )>w(e ) w(e i باشد e در الگوريتم انتخاب مي شود. پس w(t)=w(t ) و w(e i )=w(e ) 7 ] تعيين درخت اوليه] u را يک راس دلخواه از G درنظر بگيريد و ] به روز کردن درخت T] فرض کنيد e يالی با کمترين وزن است که به راسی از T و راسی که در T نيست وصل است و قرار دهيد ] تشخيص این که کوچکترين درخت فراگير ساخته شده یا نه.] اگر 1- p E(T) = خروجی E(T) است. در غير اين صورت به مرحله برويد..1..3 8
- G 5 y x 5 T y x 3 6 4 3 w w u 1 v u 1 v 9