Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   حل مسائل معروف هوش مصنوعي (http://artificial.ir/intelligence/forum102.html)
-   -   برنامه حل بازي 8 كد شده با سي شارپ (http://artificial.ir/intelligence/thread9183.html)

maaheno ۰۶-۱۳-۱۳۹۰ ۱۱:۳۰ قبل از ظهر

نقل قول:

نوشته اصلي بوسيله limak (پست 19840)
دوست عزیز ورژن سی شارپتون رو میگین ؟ با این پروژه شما من زیاد کار دارم خوشبختانه:38:

چطور مگه، ورژنش براتون مهمه ؟!!
با ویزوال استودیو 2008 نوشتم
ضمنا همچین یه کمی مشکوک گفتید که با این پروژه زیاد کار دارم!!!:39::4:

amir_askary69 ۰۸-۲۸-۱۳۹۰ ۰۷:۱۷ بعد از ظهر

سلام دوست من
خیلی ممنون که سورس رو هم گذاشتی.(یه سوال:این عکسه آخونده خودتی؟)
خب برم سر اصل مطلب :
من الگوریتم رو متوجه شدم و مشکلی ندارم فقط یه قسمتش برام هنوز مبهمه و نفهمیدم-->
وقتی یه گره بررسی میشه و هدف نیست و از صف خارج میشه خب اگه بعدا گره هدف از فرزندای همین گره بود ما چطوری میتونیم مسیر راه حل رو پیدا کنیم با توجه به اینکه گره پدرش حذف شده؟
به عبارت دیگه بعد از رسیدن به نود هدف مراحل پیدا کردن مسیر(راه حل) رو لطفا توضیح بدید.اول تو الگوریتم A* بعد هم تو برنامه خودتون.
(یه چیزی که به ذهن خودم میرسه اینه که رشته عملیات اعمال شده تو هر گره ذخیره بشه یعنی هر گره مسیر گره ریشه تا خودش رو فقط با علائمی مثل UP_Down_Right_Left تو یه string ذخیره کنه.)
خیلی ممنون

maaheno ۰۸-۲۹-۱۳۹۰ ۰۱:۳۹ بعد از ظهر

اگر سوال اولت جدی بود باید بگم که نه قرار نیست توی آواتار عکس خودم باشه دوما یعنی شما امام موسی صدر رو نمیشناسین؟!!

در مورد سوال فنی؛ به نظر میاد باید یه بار دیگه خود الگوریتم *A رو بررسی کنید. توی این الگوریتم روش کار به این صورت هست (البته توی مسئله خودمون): برای هر گره مقدار تابع هیورستیک رو محاسبه می کنه ضمنا هر گره دارای یک مقدار هست که هزینه رسیدن به این گره رو از ابتدای حرکت مشخص می کنه.
تابع نهایی مورد استفاده از جمع این دو تا حاصل میشه و براساس مقدار این تابع توی یک صف اولویت قرار می گیره هر گره ای که مقدار کمتری داشته باشه در ابتدای صف قرار میگیره .

ابتدای کار هیچ گرهی توی صف نیست و بعد از محاسبه دو مقدار بالا حالت کنونی وارد صف شده و چون تنها حالت موجود هست پس این گره از صف خارج شده و فرزندان این گره تولید شده و مقدار تابع محاسبه شده و براساس اولویت توی صف قرار می گیرند. حالت پدر به عنوان یک گره بازدید شده علامت می خوره (با قرار دادن هزینه تابع زیاد برای اون گره) که اگر احیانا در ادامه کار دوباره این گره تولید شد به دلیل تکراری بودن وارد صف نشه که توی حلقه گیر کنیم. (بنابراین هیچ گرهی حذف نمیشه)

برای یافتن مسیر، هر گره یک آرایه داره که نشون می ده از ابتدای مسیر چطور به این گره رسیدیم. و توی این آرایه مثلا از عبارات UP_Down_Right_Left که اشاره کردید استفاده میشه.
پس بعد از اینکه به جواب رسیدیم می تونیم محتوای این آرایه رو از ابتدا روی حالت اولیه اجرا کنیم تا به جواب برسیم.
امیدوارم متوجه شده باشی

amirmeraji ۱۲-۱۴-۱۳۹۰ ۰۵:۲۵ بعد از ظهر

سلام خسته نباشید
 
میخواستم اگه میشه توضیح بیشتری راجع به برنامتون بدید مثلا چه جوری درخت رو تشکیل میده واز روی درخت به جواب میرسه یعنی با یه مثال توضیح بدید .ممنون:3:

mozhdeh_9 ۰۲-۳۱-۱۳۹۱ ۰۸:۳۴ بعد از ظهر

salam mishe begid in masalaro chejur mishe ba memetic algorithm hal kard???????
plzzzzzzzzzzz


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۷:۴۵ بعد از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.