تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 3 اولاول 123 آخرآخر
نمايش نتايج 11 به 20 از 26

نام تاپيک: پازل N

  1. #11
    آخر فروم باز فاطـمه's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    Mashhad
    پست ها
    1,755

    پيش فرض

    سلام
    من متاسفانه کامپایلر ندارم
    اگه خطا نداره که هیچی
    ولی اگه جواب نمی ده عجیب نیست
    چون پازل های N-PUZZLE همیشه به دو فضای حالت قابل حل و غیر قابل حل تقسیم می شوند. یعنی برای نصف حالت ها «به هیچ وجه» نمیشه به حالت هدف رسید.

    همچنین برای اون نصفی که میشه رسید، عمق درخت جستجو می تونه تا 24 (یعنی 24 حرکت) برسه. که فضای جستجو به صورت نمایی زیاد می شه . یعنی اگر هر حالت فقط دو حالت همسایه داشته باشد (که اینطور نیست و بعضی ها سه یا چهار حالت همسایه دارند)، 2 به توان 24 می شود خیلی!!! یعنی اصلاً شما برای اینکار هم حافظه و هم قدرت پردازش کم می آورید.
    در نتیجه bfs «در تئوری» برای همه حالات «قابل حل» جواب به دست می آورد ولی «در عمل» برای تعداد خیلی محدودی از اون نصف حالات قابل حل می تونه کار کنه. مثلاً برای اونایی که عمقشون 6-7 باشه (6-7 حرکت لازم داشته باشن تا برسن به حالت هدف).

    برای همینه که از روش های هوشمند مثل A* استفاده می شه. چون این روش ها فضای جستجو رو به میزان بسیار زیادی محدود می کنند و در نتیجه سرعت جستجو خیلی خیلی بالاتر می ره (البته A* مشکل حافظه داره و نه قدرت پردازش). یعنی بعد از مدتی حافظه رو پر می کنه. البته توی کتاب هوش مصنوعی راسل روش هایی برای حل این مشکل ارائه شده مثل ids و ...
    از پیگیری تون ممنون
    اینایی که می گین درست
    ولی من به کد خودم اطمینان ندارم
    ببینید من تابع dfs رو این جوری نوشتم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    استفاده بازگشتی به این صورت درسته؟
    با توجه به اینکه برنامه رو توی c++ نوشتم
    واسه اجراش خیلی محدودیت حافظه دارم
    فک کنم مجبور شم تبدیل به c# کنم
    اجرا که بیشتر از 1000 میشه سیستم هنگ میکنه واسه همین اون sw رو گذاشتم

  2. #12
    آخر فروم باز hamidreza_buddy's Avatar
    تاريخ عضويت
    Sep 2004
    محل سكونت
    شریف
    پست ها
    1,167

    پيش فرض

    اگه توی توربو سی پلاس پلاس نوشتین شاید حافظه کم بیاره ولی توی vc++ 6 کامپایلش کنین مشکلی از نظر حافظه نخواهد داشت و نسبت به سی شارپ هم سریع تر خواهد بود!

    حقیقتش من متوجه استفاده شما هز int a و متغییر path نشدم.

    فکر می کنم دارید سعی می کنید که مسیر رو ذخیره کنید.

    بهرته برای ذخیره مسیر هر وقت به حالت هدف رسیدید مثلاً 1 رو برگردونید و همین طور rewind کنید به بالا و اون حرکت رو ذخیره کنید.

    به نظر من به جای dfs ، سعی کنید ids رو پیاده سازی کنید. چون dfs همین طور الکی پایین میره و احتمال به جواب رسیدنش خیلی کمه!

    یعنی به جای متغییر سراسری sw، از یک متغییر به نام depth استفاده کنین که عمق رو حساب کنه و مثلاً اگه به عمق 25 رسید برگرده.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    وباید از مکان اولیه خونه خالی شروع کنی:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته من تصور می کنم که شما یک متغییر سراسری دارید که آرایه دو بعدیه توش جدول ذخیره شده.

    همچنین جدول تستو یه جدول با راه حله کوچیک (تو مایه های 2-3) بده ببین الگوریتم حلش می کنه. و کم کم حرکت اضافش کن ببین که چقدر طول می کشه که حل بشه. مثلاً فک کنم تا 7-8 حرکت رو بیشتر نکشه.

  3. #13
    آخر فروم باز فاطـمه's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    Mashhad
    پست ها
    1,755

    پيش فرض

    حقیقتش من متوجه استفاده شما هز int a و متغییر path نشدم.

    فکر می کنم دارید سعی می کنید که مسیر رو ذخیره کنید.
    بله از path برای ذخیره مسیر و از a برای نگهداری عمق استفاده کردم
    به نظر من به جای dfs ، سعی کنید ids رو پیاده سازی کنید. چون dfs همین طور الکی پایین میره و احتمال به جواب رسیدنش خیلی کمه!
    من باید به هر 4 الگوریتم dfs,bfs,a*,idf این برنامه رو بنویسم
    به نظر من به جای dfs ، سعی کنید ids رو پیاده سازی کنید. چون dfs همین طور الکی پایین میره و احتمال به جواب رسیدنش خیلی کمه!

    یعنی به جای متغییر سراسری sw، از یک متغییر به نام depth استفاده کنین که عمق رو حساب کنه و مثلاً اگه به عمق 25 رسید برگرده.
    خب همین برگردون رو چه جوری انجام بدم
    از روی path?!
    ---------
    کدتون جالبه

  4. #14
    آخر فروم باز فاطـمه's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    Mashhad
    پست ها
    1,755

    پيش فرض

    ببینید من ساختار ها رو این جوری تعریف کردم
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  5. #15
    آخر فروم باز hamidreza_buddy's Avatar
    تاريخ عضويت
    Sep 2004
    محل سكونت
    شریف
    پست ها
    1,167

    پيش فرض

    ببینید به کدی که من نوشتم دقیت کنید. هر وقت به جایی رسید که Goal باشه، 1 رو برمی گردونه. اینجوری همینجور مستقیم تا بالا می ره و می شه همه حرکات رو به یه لیست اضافه کرد.

    اگه a داره عمق رو حساب می کنه ، باید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    باشه.

    همچنین به جای swap تو کد من دقت کنید.

    همچنین به این دلیل گفتم ids رو اول پیاده سازی کنید این بود که بتونید الگوریتم رو امتحان کنید و نتایج رو ببینید که الگوریتم درسته یا نه.
    و بعد از اون محدودیت عمق رو حذف کنید تا بشه dfs!
    چون با dfs به نتیجه نمی رسه و نمی تونین متوجه شین که الگوریتم رو درست پیاده سازی کردین یا نه!

  6. 2 کاربر از hamidreza_buddy بخاطر این مطلب مفید تشکر کرده اند


  7. #16
    آخر فروم باز فاطـمه's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    Mashhad
    پست ها
    1,755

    پيش فرض

    از توضیحاتتون بازم ممنون به نکات ظریفی اشاره کردین که بهشون دقت نکرده بودم
    الان امتحانش می کنم

  8. این کاربر از فاطـمه بخاطر این مطلب مفید تشکر کرده است


  9. #17
    آخر فروم باز فاطـمه's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    Mashhad
    پست ها
    1,755

    پيش فرض

    سلام کد dfs رو اصلاح کردم حالا دارم bfs رو می نویسم
    ممکنه یه شبه کد واسه bfs هم مشابه اونی که واسه dfs گذاشتین بذارین

  10. این کاربر از فاطـمه بخاطر این مطلب مفید تشکر کرده است


  11. #18
    آخر فروم باز hamidreza_buddy's Avatar
    تاريخ عضويت
    Sep 2004
    محل سكونت
    شریف
    پست ها
    1,167

    پيش فرض

    برای پیاده سازی BFS باید یه صف queue داشته باشید:
    شبه کد کلیش. باید یه ساختمان داده صف و یا لیست پیوندی داشته باشید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  12. #19
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    من باید به هر 4 الگوریتم dfs,bfs,a*,idf این برنامه رو بنویسم
    سلام خسته نباشید میشه لطفاً بگید این dfs,bfs,a*,idf چی هستن؟
    و اینکه با چه زبانی این پروژه رو میخواین؟ممنون.

  13. #20
    آخر فروم باز فاطـمه's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    Mashhad
    پست ها
    1,755

    پيش فرض

    سلام دوست
    هر 4 تاش رو نوشتم البته با c++ ، البته با راهنمایی دوستان
    bfs : جست و جوی اول سطح
    dfs: اول عمق
    ids: اول عمق با عمق محدود
    a* : هوشمند
    Last edited by فاطـمه; 01-06-2009 at 11:58.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •