تالار گفتمان مانشت
جستجوی عمقی - نسخه‌ی قابل چاپ

جستجوی عمقی - tabassomesayna - 24 دى ۱۳۹۲ ۱۲:۵۸ ب.ظ

سلام
جدول زیر زمان نخستین ملاقات و زمان آخرین ملاقات را در جستجوی DFS یک گراف نمایش می دهد.در این صورت در این گراف کدامیک از یالهای زیر نمیتواند وجود داشته باشد؟
[تصویر:  237099_Photo0174.jpg]
۱-d,e
۲-a,g
۳-h,b
۴-f,e
اینم پاسخ :
[تصویر:  237099_graph.jpg]
برای کشیدن گراف مشکلی ندارم , فقط میخوام بدونم چجوری از روی این گراف تشخیص داده که h,b نمی تونه یال این گراف باشه ؟

RE: جستجوی عمقی - tarane.68 - 25 دى ۱۳۹۲ ۰۹:۳۹ ب.ظ

دقیقا منم با این نوع سوال مشکل دارم HuhHuh
اگه کسی از دوستان میتونه توضیح بده ممنون میشم

RE: جستجوی عمقی - Riemann - 25 دى ۱۳۹۲ ۰۹:۵۱ ب.ظ

چون اگه یال hb وجود داشته باشه وقتی که ما به h میرسیم از اونجا میریم و b رو ملاقات میکنیم و دیگه زمان های f,d گره b 13 14 نمیشن و میشن ۱۰و۱۱ و زمان f گره h هم میشه ۱۳/ البته فکر کنم!

RE: جستجوی عمقی - tabassomesayna - 26 دى ۱۳۹۲ ۱۲:۵۹ ق.ظ

(۲۵ دى ۱۳۹۲ ۰۹:۵۱ ب.ظ)Riemann نوشته شده توسط:  چون اگه یال hb وجود داشته باشه وقتی که ما به h میرسیم از اونجا میریم و b رو ملاقات میکنیم و دیگه زمان های f,d گره b 13 14 نمیشن و میشن ۱۰و۱۱ و زمان f گره h هم میشه ۱۳/ البته فکر کنم!

ببخشید من فراموش کردم گزینه هاشو بذارم..با توجه به گزینه ها , میتونید بگید چرا مثلا" d,e یا f,e میتونه یال گراف باشه ؟؟

Re: جستجوی عمقی - Donna - 26 دى ۱۳۹۲ ۰۹:۳۷ ق.ظ

یه نکته داره که باید بهش توجه بشه. زمان خروج از یه گره یا همون آخرین ملاقاتش باید بیشتر از زمان خروج از یالهای مجاورش باشه.یعنی ما لیست مجاورای گره u رو داریم.آخرین ملاقات وقتیه که اون لیست رو تمام کرده باشیمو تمام مجاوراشو ملاقات کرده باشیم و دیگه کاری با گره u و مجاوراش نداشته باشیم. مثلا در de بررسی کنیم. به d میتونیم در زمان ورود ۲ وارد شیم و بررسی میکنیم میبینیم زمان آخرین ملاقات d بیشتر از زمان اولین ملاقات e هست. و چون زمان آخرین ملاقات e کمتر از زمان خروج از dهست یعنی قبل از اینکه d وقتش تموم شه e رو هم میتونیم ببینیم.پس این یال میتونه باشه. نباید زمان آخرین ملاقات d کمتر از e باشه چون در جستجوی عمقی وقتی d رو ملاقات میکنیم تموم مجاوراش میرن تو پشته تا وقتی یکی از مجاوراش یعنی e رو بررسی کنیم خود e هم باید کامل مجاوراش بررسی شده باشن و بعدا برگردیم و به گره مجاور بعدی d.
امیدوارم خوب توضیح داده باشم.



Sent from my GT-S5660 using Tapatalk 2

RE: جستجوی عمقی - tabassomesayna - 26 دى ۱۳۹۲ ۰۱:۲۸ ب.ظ

(۲۶ دى ۱۳۹۲ ۰۹:۳۷ ق.ظ)Arshad93 نوشته شده توسط:  یه نکته داره که باید بهش توجه بشه. زمان خروج از یه گره یا همون آخرین ملاقاتش باید بیشتر از زمان خروج از یالهای مجاورش باشه.یعنی ما لیست مجاورای گره u رو داریم.آخرین ملاقات وقتیه که اون لیست رو تمام کرده باشیمو تمام مجاوراشو ملاقات کرده باشیم و دیگه کاری با گره u و مجاوراش نداشته باشیم. مثلا در de بررسی کنیم. به d میتونیم در زمان ورود ۲ وارد شیم و بررسی میکنیم میبینیم زمان آخرین ملاقات d بیشتر از زمان اولین ملاقات e هست. و چون زمان آخرین ملاقات e کمتر از زمان خروج از dهست یعنی قبل از اینکه d وقتش تموم شه e رو هم میتونیم ببینیم.پس این یال میتونه باشه. نباید زمان آخرین ملاقات d کمتر از e باشه چون در جستجوی عمقی وقتی d رو ملاقات میکنیم تموم مجاوراش میرن تو پشته تا وقتی یکی از مجاوراش یعنی e رو بررسی کنیم خود e هم باید کامل مجاوراش بررسی شده باشن و بعدا برگردیم و به گره مجاور بعدی d.
امیدوارم خوب توضیح داده باشم.



Sent from my GT-S5660 using Tapatalk 2

بله خیلی خوب بود ممنون
و طبق توضیحات شما h,b نمی تونه یال این گراف باشه چون h در لحظه ۱۰ تموم شده و b در لحظه ۱۳ شروع شده که b نمیتونه مجاورش باشه چون بعد از تموم شده h اومده