Download presentation
Presentation is loading. Please wait.
1
[c
2
استاد مربوطه : استاد سید محمد بیدکی
رنگ آمیزی گراف Graph Coloring ارائه دهنده : امین فقیه استاد مربوطه : استاد سید محمد بیدکی
3
بیان مسئله مسئله رنگ آمیزی m ، عبارت از یافتن همه ی راه های ممکن برای رنگ آمیزی یک گراف بدون جهت ، با استفاده از حداکثر m رنگ متفاوت است به طوری که هیچ دو رأس مجاوری هم رنگ نباشند . کاربرد : کاربرد مهم رنگ آمیزی گراف ، رنگ آمیزی نقشه هاست .
4
گراف مسطح گراف غیر مسطح گراف مسطح گراف مسطح
یک گراف را در صورتی مسطح می گویند که بتوان آن را روی صفحه رسم کرد به قسمی که هیچ دو یالی یکدیگر را قطع نکنند. گراف غیر مسطح گراف مسطح گراف مسطح
5
گراف مسطح متناظر با هر نقشه ، یک گراف مسطح وجود دارد . هر ناحیه از نقشه توسط یک رأس نشان داده می شود. مسئله رنگ آمیزی m برای گراف های مسطح ، تعیین تعداد شیوه های ممکن برای رنگ آمیزی نقشه با استفاده از حداکثر m است ، به طور که هیچ دو ناحیه مجاوری ، هم رنگ نباشند . v1 v3 v5 v2 v4
6
حل مسئله به روش عقبگرد یک درخت فضای حالت صریح برای مسئله رنگ آمیزی m ، درختی است که در آن هر رنگ ممکن برای رأس v1 در سطح 1 امتحان می شود ، هر رنگ ممکن برای رأس v2 در سطح 2 امتحان می شود و به همین ترتیب تا این که هر رنگ ممکن برای رأس vn در سطح n امتحان گردد. هر مسیر از ریشه به برگ یک حل کاندیدا به شمار می رود . با تعیین این که آیا هیچ یک از دو رأس مجاور هم رنگ هستند ، در مورد درستی حل کاندیدا تحقیق می کنیم. می توانیم در این مسئله ، از روش عقبگرد استفاده کنیم زیرا هر گره در صورتی غیر امید بخش است که یک رأس مجاور به رأسی که در گره رنگ آمیزی می شود ، قبلاً با همان رنگ ، رنگ آمیزی شده باشد.
7
چند نکته برای گراف روبرو رنگ آمیزی 3 یک حل برای مسئله محسوب می شود.
v1 v2 در گراف روبرو حلی برای رنگ آمیزی 2 ، برای این گراف وجود ندارد زیرا اگر بتوانیم حداکثر از 2 رنگ متفاوت استفاده کنیم ، راهی برای رنگ آمیزی رئوس وجود ندارد به قسمی که رئوس مجاور هم رنگ نباشند . v4 v3 برای گراف روبرو رنگ آمیزی 3 یک حل برای مسئله محسوب می شود.
8
درخت فضای حالت رأس رنگ آمیزی با V1 رنگ 1 V2 رنگ 2 V3 رنگ 3 V4 start V1
9
start رأس رنگ آمیزی با V1 رنگ 1 V2 رنگ 3 V3 رنگ 2 V4 2 3 V1 1 1 V2 2 3 1 2 V3 3 v1 v2 1 2 3 V4 v4 v3
10
رأس رنگ آمیزی با V1 رنگ 2 V2 رنگ 1 V3 رنگ 3 V4
start start رأس رنگ آمیزی با V1 رنگ 2 V2 رنگ 1 V3 رنگ 3 V4 2 3 1 V1 2 3 V2 1 1 2 3 V3 v1 v2 1 2 3 V4 v4 v3
11
رأس رنگ آمیزی با V1 رنگ 2 V2 رنگ 3 V3 رنگ 1 V4
start start رأس رنگ آمیزی با V1 رنگ 2 V2 رنگ 3 V3 رنگ 1 V4 2 3 1 V1 2 3 V2 1 1 2 3 V3 v1 v2 1 2 3 V4 v4 v3
12
رأس رنگ آمیزی با V1 رنگ 3 V2 رنگ 1 V3 رنگ 2 V4
start start رأس رنگ آمیزی با V1 رنگ 3 V2 رنگ 1 V3 رنگ 2 V4 2 3 1 V1 V2 1 2 3 1 2 3 V3 v1 v2 1 V4 2 3 v4 v3
13
رأس رنگ آمیزی با V1 رنگ 3 V2 رنگ 2 V3 رنگ 1 V4
start start رأس رنگ آمیزی با V1 رنگ 3 V2 رنگ 2 V3 رنگ 1 V4 2 3 1 V1 V2 1 2 3 1 2 3 V3 v1 v2 1 2 3 V4 v4 v3
14
الگوریتم مسئله : تعیین همه ی شیوه هایی که در آن رئوس یک گراف بدون جهت را می توان تنها با m رنگ ، رنگ آمیزی کرد به قسمی که هیچ دو رأس مجاوری هم رنگ نباشند . وردودی ها : اعداد مثبت و صحیح n و m و گراف بدون جهت حاوی n رأس ، گراف توسط یک آرایه ی دو بعدی W نشان داده می شود که سطرهای و ستون های آن از یک تا n اندیس گذاری شده اند و در آن w[i][j] دارای مقدار true است اگر بین رأس i ام و رأس jام یک یال وجود داشته باشد و در غیر این صورت دارای مقدار false است . خروجی ها : همه ی رنگ آمیزی های ممکن برای گراف با استفاده از حداکثر m رنگ ، به طوری که هیچ دو رأس مجاوری هم رنگ نباشند . خروجی مربوط به هر رنگ آمیزی یک آرایه vcolor است که از یک تا n اندیس گذاری شده است و در آن vcolor[i] رنگ نسبت داده شده به رأس iام (عدد صحیحی بین یک تا m ) است .
15
} { int color ; if ( promising (i)) if ( i == n)
void m_coloring (index i ) { int color ; if ( promising (i)) if ( i == n) cout << vcolor[1] through vcolor [n]; else for (color = 1; color ≤ m; color ++) { vcolor [ i + 1] = color ; m_coloring (i + 1); }
16
bool promising ( index i )
{ index j ; bool switch ; switch = true; j = 1; while ( j < i && switch ) { if ( W [i] [j] && vcolor [i] == vcolor[j]) switch = false ; j ++; } return switch ;
17
تعداد گره ها در درخت فضای حالت
تعداد گره ها در این درخت فضای حالت برای این الگوریتم برابر است با : 1+ m +m2 + …+mn= (mn+1-1)/(m-1)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.