PDA

View Full Version : چند تا از معماها و بازی های هوش مصنوعی....



Cancer
پنج شنبه 13 بهمن 1390, 17:14 عصر
سلام سلام سلام
اول 8Puzzle:
http://barnamenevis.org/showthread.php?131898-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D9%BE%D8%A7%D8%B2%D9%84-8-%D8%AF%D8%B1%D8%B3-%D9%87%D9%88%D8%B4-%D9%85 (http://barnamenevis.org/showthread.php?131898-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D9%BE%D8%A7%D8%B2%D9%84-8-%D8%AF%D8%B1%D8%B3-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C)
%D8%B5%D9%86%D9%88%D8%B9%DB%8C (http://barnamenevis.org/showthread.php?131898-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D9%BE%D8%A7%D8%B2%D9%84-8-%D8%AF%D8%B1%D8%B3-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C)
اینجا یه دوست عزیزی یه برنامه گذاشته، خوب هم زحمت کشیده. اگه قبلاً دانلودش نکردین حتماً بگیرین یه نگاهی بندازین.
ولی یه سری مشکلات داره: (یکم نقد برنامه)
اول برنامه نویسیش:
باید ورودی رو کاربر وارد کنه و نه رندم باشه، تست برنامه اینطوری دقیق تر می شه.
بعدش الگوریتمش:
زیاد کداشو نگاه نکردم ببینم دقیقاً چی نوشته، ولی سرعتش کمه، مخصوصاً برای وقتایی که تعداد گام ها تا هدف بالا بره برنامه تقریباً می ره واسه خودش.
http://www.8puzzle.com/
به این آدرس یه سری بزنین یه برنامه نوشته گذاشته، برنامه نویسیش خوبه حالت ورودی رو کاربر وارد می کنه و برای 9 فاکتوریل حالت ورودی هم کار می کنه.
ولی:
الگوریتمش مشکل داره یکم.
سرعتش پایینه. برای تستش می تونین (بیشتر تعداد گام فاصله ورودی با هدف 30 تا است) شما می تونین همچین ورودی رو وارد کنید و بعد ببینید که 2 ، 3 چند ثانیه ای وقت می گیره تا به جواب برسه.

می خواستم یکم در مورد روش های بدست آوردن جواب توضیح بدم که یادم اومد توی همون سایته خیلی خیلی خوب توضیح داده.
و حالا هم:
81921
این برنامه رو من خیلی وقت پیش نوشتم (با C++‎ نوشتم)، یکم الگوریتمش (اون موقع زیاد وارد نبودم، ماله دوران بچگیه) ناقصه. ولی برای 9 فاکتوریل حالت ورودی کار می کنه و سرعت خیلی بالاتری هم نسبت به برنامه های دیگه داره.
و حتی می شه سرعت رو از این هم بالاتر برد، ولی دیگه حوصله تکمیلشو ندارم.
راستی موقع وارد کردن ورودی خوب هواستون رو جمع کنید چون (حوصله نداشتم) برنامه اصلاً ظاهر کاربر پسند نداره و برای وارد کردن ورودی از بالا سمت چپ شروع کنید اعداد رو وارد کنید و خونه ی خالی رو صفر بذارید.
مثال:
اگر بود:
81922
شما وارد می کنید:
81923

به همین سادگی. هواستون باشه که اشتباه وارد نکنید چون اصلاً برنامه چک نمیکنه که ورودی درست است یا نه و اگه اشتباه وارد کنین برنامه می ره واسه خودش.

تشکر.

Cancer
پنج شنبه 13 بهمن 1390, 17:19 عصر
برنامه سودوکو:
چند روز پیش یه به چشمم خورد گفتم اینجا آپ کنم شاید بعضیا لازم داشته باشن.
81924
برنامه هیچ الگوریتم خاصی نداره فقط یه جستجوی اول عمق.
و یه کار دیگه که می کنه اینه که میاد بین حالات موجود یه حالت رندم رو انتخاب می کنه.

Cancer
پنج شنبه 13 بهمن 1390, 17:23 عصر
Maze:
هم بازگشتیش، هم با پشته ولی فکر کنم بقیه با پشته یه جور دیگه بنویسنش.
81925
چه باهال می شد اگه می شد برنامه بنویسیم که بتونه یه هزارتو درست کنه.

Cancer
پنج شنبه 13 بهمن 1390, 17:25 عصر
اینم یه فاکتوریل برای اعداد تا 4 رقمی که با اشاره گرها نوشته شده. من ننوشتمش یکی از دوستام نوشته بودش.
81926

Cancer
پنج شنبه 13 بهمن 1390, 17:33 عصر
دیگه اینکه برنامه دیگه ای یادم نیومد بذارم.
تو فکر بودم که یک بازی دو نفره بنویسم مثلاً x-o یا Renju یا شطرنج یا یه همچین چیزی که بتونیم برد و مساوی رو تضمین کنم.
در مورد x-o صد درصد می شه برد و مساوی رو تضمین کرد. (زیاد ارزش نوشتن نداره)
Renju رو مطمئن نیستم.
شطرنج رو هم که می دونین نمیشه تضمین کرد. (ولی باید یه راهی داشته باشه، مثلاً اینکه بیاد رفتار طرف مقابل رو زیر نظر بگیره و اینطوری شاید.... ولی بازم صد درصد نیست).
---------
این ویندوز جدیده ی ماکروسافت که بعضی ها اسمش رو گذاشتن 8.
یه نسخه آزمایشیش اومده بود و ما هم نصب کردیم، یه بازی Renju داره که خوب هوش مصنوعی داره، خوب احتمالات رو محاسبه می کنه، سرعتشم خوبه، تازه سعی می کنه که همیشه متفاوت بازی کنه که انسان نتونه پیش بینیش کنه. خواستن خیلی شبیه انسان فکر کنه.
ولی اگه خوب Renju یاد داشته باشین می تونین به راحتی شکستش بدین.
ولی بازم خیلی خوب نوشتنش(امیدوارم تو نسخه اصلیش بهترش کنن)
خیلی تو فکر نوشتن یه بازی دو نفره هستم که بشه برد و مساوی رو تضمین کرد. اگه کسی پایه بود من هستم. (ولی چیزی که ارزش نوشتن رو داشته باشه)
ولی بازی هایی که مساوی ندارن و فقط برد و باخت رو نمیشه کاریش کرد.
مثل بازی نیم، که مثلاً اگه تعداد مهره ها x تا باشه و کسی که اول شروع کنه می تونه برد خودش رو تضمین کنه.
در مورد مکعب روبیک هم که اگه کسی خواست بنویسه، اصلاً به جستجو فکر نکنه چون همه می دونین که الگوریتم های مشخصی داره و اگه از اونا استفاده کنه خیلی سریع تر به جواب می رسه، ولی تو کتاب هوش مصنوعی فکر کنم راسل بود که در مورد روبیک نوشته بود جستجو و فکر کنم نوشته بود که یه یارویی هم یه تابع هیوریستیک براش داده و از این حرفا. (دیگه خود دانید)
http://s1.picofile.com/file/7278167739/khalilian_thesis_Design_and_Implementation_a_Frame work_to_Construct_the_Database_of_Classic_Problems _in_Artificial_Intelligence.pdf.html

این pdf رو یه نگاهی بندازین «مسائل کلاسیک هوش مصنوعی» هر کدوم رو خواستین روش بحث کنیم. (چیزی که سر کلاس ها معمولاً اتفاق نمی افته)
در مورد هوش مصنوعی فقط باید بحث بشه نه اینکه به هر چیزی که توی کتابها نوشته شده متکی بود.
------
دیگه همین.
تشکر.

یوسف زالی
جمعه 14 بهمن 1390, 12:36 عصر
سلام.
من هم با بحث موافقم.
به نظرم مباحث شبکه های عصبی خوب باشه. مثلا تشخیص صدا.
من هستم.

Cancer
جمعه 14 بهمن 1390, 17:30 عصر
سلام سلام سلام
من امروز یهو زد به سرم که شطرنج رو بنویسم. (تازه فکر کن که من شطرنج هم زیاد وارد نیستم:لبخند:)
ولی فکر کنم چیزیه که می ارزه بخوایم بنویسیم.

یه شطرنج نوشته بودن که استاد بزرگ شطرنج رو شکست داده بود. یادتون میاد دیگه حتماً. ولی من زیاد یادم نمی یاد. (یه چیزایی در موردش می گفتن: مثل اینکه چند سری اول از استاد بزرگه می باخته و بعد از چند سری بازی که اون استاد بزرگه کمی از نظر فکری خسته شده بود، بعدش تونسته برنده بشه.)
کسی اطلاعات کاملتری داره؟



به نظرم مباحث شبکه های عصبی خوب باشه. مثلا تشخیص صدا.
عنوان تاپیک: معما ها و بازی ها.
این شبکه های عصبی خوبه.
در مورد بازی دو نفره اگه بیایم رفتاره طرف مقابل رو (چطوریشو نمی دونم) زیره نظر بگیریم، اون وقت یه قدم جلوتریم.

راستی کسی تا حالا شطرنج رو ننوشته یکم از تجربیاتش استفاده کنیم؟:متفکر:

یوسف زالی
شنبه 15 بهمن 1390, 18:58 عصر
اسم اون برنامه Deep Blue بود.
از نظر تئوری بازیکنی که با سفید شروع می کنه همیشه می تونه برنده باشه.
اما از نظر عملی محدودیت بوجود میاد و تعداد بک ترک ها اونقدر بالا می ره که عملا درخت ایجاد شده رو در سطح محدود می کنند.
شبکه های عصبی برای مواقعی خوبه که همش بخواهیم با یک نفر بازی کنیم.
شما استارت بزن، ما هم هستیم.

Cancer
یک شنبه 16 بهمن 1390, 17:42 عصر
سلام
راستش منم یه جستجوی کردم یه چیزایی دیدم.
"دیپ بلو کامپیوتر (http://fa.wikipedia.org/wiki/%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1) شطرنجبازی (http://fa.wikipedia.org/wiki/%D8%B4%D8%B7%D8%B1%D9%86%D8%AC) است که توسط شرکت آی‌بی‌ام (http://fa.wikipedia.org/wiki/%D8%A2%DB%8C%E2%80%8C%D8%A8%DB%8C%E2%80%8C%D8%A7%D 9%85) ساخته شده و در ماه مه ۱۹۹۷ (http://fa.wikipedia.org/wiki/%DB%B1%DB%B9%DB%B9%DB%B7_%28%D9%85%DB%8C%D9%84%D8% A7%D8%AF%DB%8C%29) با شکست گری کاسپاروف (http://fa.wikipedia.org/wiki/%DA%AF%D8%B1%DB%8C_%DA%A9%D8%A7%D8%B3%D9%BE%D8%A7% D8%B1%D9%88%D9%81) با نتیجه ۳٫۵-۲٫۵ در ۶ مسابقه نخستین کامپیوتری شد که توانسته‌است قهرمان شطرنج جهان را شکست دهد.
دیپ بلو سال قبل در مسابقه رودروی پیشین خود با کاسپاروف ۴-۲ نتیجه را واگذار کرده‌بود. نسخه سال ۱۹۹۷ دیپ بلو توانایی محاسبه ۲۰۰ میلیون پوزیسیون (http://fa.wikipedia.org/w/index.php?title=%D9%BE%D9%88%D8%B2%DB%8C%D8%B3%DB% 8C%D9%88%D9%86_%28%D8%B4%D8%B7%D8%B1%D9%86%D8%AC%2 9&action=edit&redlink=1&preload=%D8%A7%D9%84%DA%AF%D9%88:%D8%A7%DB%8C%D8%A C%D8%A7%D8%AF+%D9%85%D9%82%D8%A7%D9%84%D9%87/%D8%A7%D8%B3%D8%AA%D8%AE%D9%88%D8%A7%D9%86%E2%80%8 C%D8%A8%D9%86%D8%AF%DB%8C&editintro=%D8%A7%D9%84%DA%AF%D9%88:%D8%A7%DB%8C%D8 %AC%D8%A7%D8%AF+%D9%85%D9%82%D8%A7%D9%84%D9%87/%D8%A7%D8%AF%DB%8C%D8%AA%E2%80%8C%D9%86%D9%88%D8%A A%DB%8C%D8%B3&summary=%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF+%DB%8C%DA%A 9+%D9%85%D9%82%D8%A7%D9%84%D9%87+%D9%86%D9%88+%D8% A7%D8%B2+%D8%B7%D8%B1%DB%8C%D9%82+%D8%A7%DB%8C%D8% AC%D8%A7%D8%AF%DA%AF%D8%B1&nosummary=&prefix=&minor=&create=%D8%AF%D8%B1%D8%B3%D8%AA+%DA%A9%D8%B1%D8%AF %D9%86+%D9%85%D9%82%D8%A7%D9%84%D9%87+%D8%AC%D8%AF %DB%8C%D8%AF) را در هر ثانیه (http://fa.wikipedia.org/wiki/%D8%AB%D8%A7%D9%86%DB%8C%D9%87) داشت.":کف::گیج::گریه::افسرده:
الان اون شطرنجی که توی ویندوز 7 هستش رو اگه بالاترین سطحش بذاری می شه ازش برد. (فایده ای نداره)
شیطونه می گه یه برنامه بنویسیم بزنیم رو دسته این deep blue بعد روی ابر کامپیوتر عمه ی منم پیادش کنیم.
یه چیزه دیگه: اون با همه اون IBM بودنش 7 سال وقت گذاشت تا تونست به نتیجه برسه.
ما فکر کنم اگه از الان شروع کنیم تا 2050 با اون رباتای فوتبالیست انشاا... بتونیم بدیم بیرون.
حیف نمی تونم از فکرش بیام بیرون.
اگه این درسهای بیخودی نبودن، 25 ساعت در روز وقتمو می ذاشتم روش.