تالار گفتمان مانشت
کاریی و مشخصات این دو الگوریتم: *RBFS vs SMA - نسخه‌ی قابل چاپ

صفحه‌ها: ۱ ۲
کاریی و مشخصات این دو الگوریتم: *RBFS vs SMA - lonelyforever - 25 آذر ۱۳۹۰ ۰۹:۳۱ ق.ظ

سلام‌، کسی از دوستان می تونه در مورد کاریی و مشخصات این دو الگوریتم جستجو راهنمایی‌ام کنه؟
تا یه حدی نحوه کار کردشون رو می دونم اما از لحاظ کاریی میخواستم باهم مقایسه کنیم‌، کدوم بهتره‌، حافظه کمتری نیاز داره و ...

RBFS vs SMA* - Mohammad-A - 25 آذر ۱۳۹۰ ۰۶:۴۴ ب.ظ

ببینید مطمئناً SMA محدودیت حافظه‌ای داره. به نظر من این بستگی به مسئله٬ گراف٬ تعداد محدودیت‌های SMA - مقادیر تخمینی گره‌ها و... بستگی داره.

باز هم بسته به نوع مسئله حتا ممکنه SMA پاسخی برای یه مسئله‌ی خاص نداشته باشه ولی خب مشخصاً RBFS اینطور نیست.

RBFS vs SMA* - pos - 25 آذر ۱۳۹۰ ۰۷:۰۴ ب.ظ

از لحاظ مصرف حافظه sma* حافظه کمتری مصرف می کنه.

RE: RBFS vs SMA* - mosaferkuchulu - 26 آذر ۱۳۹۰ ۰۸:۰۵ ب.ظ

(۲۵ آذر ۱۳۹۰ ۰۷:۰۴ ب.ظ)pos نوشته شده توسط:  از لحاظ مصرف حافظه sma* حافظه کمتری مصرف می کنه.

لزوما این طور نیست!
الگوریتم RBFS در صورتی که از یک مسیر رفت و دید بهترین جواب در مسیری که داره می ره بیشتر از مقدار مسیر های دیگه بشه اون مقدار رو به نود پدر برمی گردونه و مسیر و بر می گرده(گره هایی که تولید و گسترش داده رو هم فراموش می کنه)
بنابراین حداکثر به اندازه ی( O(bd می تونه از فضا استفاده کنه و حتی بیشتر از اون هم اگر فضایی باشه نمی تونه ازش استفاده کنه!
اما تو الگوریتم SMA هر مقدار فضا بهش بدین از تمام اون مقدار فضا استفاده می کنه!چه فضا ۱کیلو بایت باشه چه ۱ ترابایت!
بنابر این نمی شه گفت که این الگوریتم لزوما فضای کمتر یا بیشتری مصرف می کنه!
هر چند که الگوریتم sma یه جاهایی گیر می کنه که اگر با الگوریتم های دیگه با فرض حافظه‌ی نا محدود جستجو انجام بشه براحتی به جواب می رسن!!!


در ضمن تو کتاب راسل به صراحت گفته الگوریتم RBFS از محدودیت حافظه رنج می بره!

RBFS vs SMA* - pos - 26 آذر ۱۳۹۰ ۰۹:۳۸ ب.ظ

فرض کنین طول مسیر مورد نظر ۳ باشه. sma-star به هیچ وجه در طول مسیریابیش بیشتر از سه خانه را در حافظه نگه نمیداره. ولی rbfs ممکن هست نیاز داشته باشه بیش از این مقدار گره را در حافظه نگه داره. ضمن اینکه sma-star کاربردش در مواقعی هست که حافظه کمی در اختیار داریم وگرنه اصلا چه نیازی به sma-star هست(اگر قرار باشه حافظه زیاد باشه که sma-star میشه همان a-star).

(۲۶ آذر ۱۳۹۰ ۰۸:۰۵ ب.ظ)mosaferkuchulu نوشته شده توسط:  هر چند که الگوریتم sma یه جاهایی گیر می کنه که اگر با الگوریتم های دیگه با فرض حافظه‌ی نا محدود جستجو انجام بشه براحتی به جواب می رسن!!!
خوب این به کارایی الگوریتم برمیگرده ضمن اینکه همانطور که گفتم اگر حافظه نامحدود باشه استفاده از sma-star بیخود هست چون نه تنها گره ای را از حافظه حذف نمی کنه بلکه مرتبا باید حافظه را چک کنه تا در صورت لزوم گره ای را خارج کنه که میشه کار اضافی.


(۲۶ آذر ۱۳۹۰ ۰۸:۰۵ ب.ظ)mosaferkuchulu نوشته شده توسط:  در ضمن تو کتاب راسل به صراحت گفته الگوریتم RBFS از محدودیت حافظه رنج می بره!
نا امیدم کرد Big Grin
اشتباه چاپی نبوده؟

RBFS vs SMA* - mosaferkuchulu - 26 آذر ۱۳۹۰ ۱۰:۴۵ ب.ظ

در مورد اینکه مربوط به کارایی هست که اس‌ام آ گیر می کنه!درسته من فقط یه توضیخ کلی داشتم می دادم.

در مورد فضای حافظه هم درسته که برای فضاهای خیلی کم کمتر مصرف می کنه اما همون طور که گفتم لزوما این طور نیست!به هر حال این الگوریتم رو می تونیم تو هر فضایی به کار ببریم!حتی اگر منطقی نباشه!

و در مورد اون جمله هم نه خیر!اشتباه تایپی نیست!اما شما نا امید نباشید!یه دور مرور کنین یاد اوری می شه و به ذهنتون می مونه!Big Grin

RBFS vs SMA* - pos - 27 آذر ۱۳۹۰ ۰۱:۰۶ ق.ظ

نمی دانم والا. ولی فکر کنم یکجا یک سوال بود در همین مورد که گفته بود از بین الگوریتم های زیر کدام حافظه کمتری لازم داره؟ که این دوتا مدل هم بینشان بود و جواب داده بود sma*. فکر کنم کتاب آقای رهنمون بود. اگر پیداش کردم میگذارم که یک موقع اشتباهی پیش نیاد. شاید تو کنکور ازش سوال اومد.
(۲۶ آذر ۱۳۹۰ ۱۰:۴۵ ب.ظ)mosaferkuchulu نوشته شده توسط:  و در مورد اون جمله هم نه خیر!اشتباه تایپی نیست!اما شما نا امید نباشید!یه دور مرور کنین یاد اوری می شه و به ذهنتون می مونه!Big Grin

از خودم که نا امید نشدم از راسل نا امید شدم Big Grin

RBFS vs SMA* - Mohammad-A - 27 آذر ۱۳۹۰ ۰۱:۱۰ ق.ظ

به نظر من کلاً بستگی به مسئله داره. توی یه مسئله‌ای ممکنه RBFS تو اولین جستجو مسیر بهینه رو پیدا کنه ولی توی گراف دیگه‌ای الزاماً اینطور نیست.

SMA هم بستگی به تعاریف مسئله٬ میتونه کامل نباشه اما چیزی که هست٬ RBFS اینطور نیست. ضمن اینکه حتا SMA میزان مراجعه‌ش به حافظه (برای حذف گره‌ای که ارزش کمتری داره) میتونه زیاد باشه. هر چند این توی RBFS در بیشتر٬ وضعیت بدتری داره.

RBFS vs SMA* - mosaferkuchulu - 27 آذر ۱۳۹۰ ۰۲:۰۳ ق.ظ

من یه نگاهی به تست های پوران انداختم!تست شماره‌ی ۷ از فصل ۳ گفته الگوریتم‌ها رو بر اساس پیچیدگی مرتب کنین(پیچیدگی فضایی) !گزینه‌ی دو رو انتخاب کرده که به این صورت هست:
breadth first--->A*----->RBFS------>SMA


بر طبق این تست اس‌ام آ پیچیدگیش کمتره!
لطفا اگر کتاب تست دیگه ای دارین چک کنین!(جواب های خودم و نقض کردمBig Grin به این می گن شهامت)
البته من هنوز فکر می کنم الزاما اینطور نیست!

RE: RBFS vs SMA* - Masoud05 - 27 آذر ۱۳۹۰ ۰۲:۲۰ ق.ظ

(۲۷ آذر ۱۳۹۰ ۰۲:۰۳ ق.ظ)mosaferkuchulu نوشته شده توسط:  من یه نگاهی به تست های پوران انداختم!تست شماره‌ی ۷ از فصل ۳ گفته الگوریتم‌ها رو بر اساس پیچیدگی مرتب کنین(پیچیدگی فضایی) !گزینه‌ی دو رو انتخاب کرده که به این صورت هست:
breadth first--->A*----->RBFS------>SMA
بر طبق این تست اس‌ام آ پیچیدگیش کمتره!
لطفا اگر کتاب تست دیگه ای دارین چک کنین!(جواب های خودم و نقض کردمBig Grin به این می گن شهامت)
البته من هنوز فکر می کنم الزاما اینطور نیست!
تست اعصاب خورد کنیه! من از روی کتاب گسترش علوم هم نگاه کردم چیز خاصی دستگیرم نشد.
شاید بشه گفت RBFS ممکن است در مسیری طولانی قرار بگیرد و بعدا متوجه بشه که باید به عقب برگشت پس تا اینجا کلی نود ذخیره کرده اما در SMA ممکن است با فضای اندک جواب رو در سطح نزدیک به ریشه پیدا کنه در حالی که در RBFS اول یه مسیر طولانی رو بررسی کرده و بعدا بازگشت کرده
البته این استدلال منه . نمی دونم درسته یا نه Huh
البته با دوستان موافقم که بسته به مسئله داره . بنظرم در حالت کلی می تونیم بگیم مصرف sma بیشتره چون محدودیت بر روی سخت افزاره اما در RBFS همیشه از مرتبه خطی از اندازه مسئله حافظه مصرف میکنه یعنی حتی اگه هم بتونیم حافظه بیشتری بهش بدیم نمیدونه چیکارش کنه! .

RBFS vs SMA* - pos - 27 آذر ۱۳۹۰ ۰۲:۳۵ ق.ظ

(۲۷ آذر ۱۳۹۰ ۰۲:۰۳ ق.ظ)mosaferkuchulu نوشته شده توسط:  لطفا اگر کتاب تست دیگه ای دارین چک کنین!(جواب های خودم و نقض کردمBig Grin به این می گن شهامت)

خیلی خوابم میاد. اون تستی هم که من می گفتم همین بود. شاید من هم تو پوران دیده بودم. فردا نگاه می کنم.

RBFS vs SMA* - pos - 27 آذر ۱۳۹۰ ۰۶:۱۷ ب.ظ

مهندسی کامپیوتر سال ۸۷ )در مقایسه بین روش های مختلف جستجو از نظر حافظه بری اگر بخواهیم روش‌ها را از پیچیده ترین تا ساده ترین(از نظر پیچیدگی حافظه ای) مرتب کنیم کدام گزینه در اغلب موارد صحیح است؟

همان تستی هست که شما گذاشتین. اینجا هم گزینه دو را انتخاب کرده. یعنی:
breath first ->a-start -> RBFS -> SMA-Start

جواب آقای رهنمون‌: روش های rbfs و sma-star هر دو برای بهبود مدیریت حافظه در a-star طراحی شده اند. rbfs حداکثر میتوانداز O(bd) خانه حافظه در حین اجرا استفاده کند، حال آنکه sma-star قادر است از تمامی حافظه موجود استفاده کند و از این رو مدیریت بهتری نسبت به rbfs برای حافظه ارائه میدهد. شاید بهتر بود طراح پرسش بجای واژه‌ی حافظه بری از واژه های دیگری همانند "مدیریت حافظه" یا تخصیص حافظه مناسبتر استفاده می کرد. مسلما روش غیرآگاهانه اول - سطح نیاز به فضای مصرفی O(b^d) دارد که از دیگر روش‌ها ضعیف‌تر است.

RBFS vs SMA* - mosaferkuchulu - 27 آذر ۱۳۹۰ ۱۱:۲۵ ب.ظ

خوب این طور که من فهمیدم گفته که مدیریت حفظه تو اس‌ام آ بهتره!اما لزوما نمی شه گفت کمتر یا بیشتره!درسته؟

RBFS vs SMA* - pos - 27 آذر ۱۳۹۰ ۱۱:۳۷ ب.ظ

درسته. منم همین به نظرم رسید. اون جمله کتاب راسل هم که گفته بودین به نظرم منظورش همین قسمت بوده که گفته فقط می تواند به اندازه O(bd) حافظه مصرف کند. اما باز به نظرمن sma مصرف حافظش کمتره ولی همانطور که میگین همیشه اینطور نیست.

RBFS vs SMA* - Mohammad-A - 28 آذر ۱۳۹۰ ۱۲:۳۸ ق.ظ

دوستان من تعابیر راسل رو اینجا میارم٬ در این موارد هم اگر موافق باشید٬ بحث کنیم:

۱. RBFS از مشکل تولید مجدد گره‌های زیاد رنج می‌برد.
۲. RBFS از استفاده‌ی بسیار اندک از حافظه نیز رنج می‌برد. (میشه این رو با مورد ۱ مقایسه کرد)
۳. MA* و SMA* دو الگوریتمی هستند که از تمامی حافظه‌ی قابل دسترس استفاده می‌کنند.
۴. مسائلی که عملاً در A* با فرض حافظه‌ی نامحدود قابل حل هستند٬ برای SMA* مهارنشدنی هستند.