PDA

View Full Version : آموزش: پازل 9 خانه اي و هوش مصنوعي



MAHDIACTION
دوشنبه 03 آبان 1389, 21:36 عصر
سلام به دوستان عزيز

مدت ها پيش براي درس هوش مصنوعي مقطع ليسانسم يه برنامه پازل 9 خانه اي نوشته بودم ،كه هم اون موقع كه داشتم روش كار مي كردم خيلي انگيزه و اشتياق براي اتمام نوشتن الگوريتم هايي كه به ذهنم مي رسيد داشتم،كه هنوز هم اين برنامه رو مي بينم با هاش حال مي كنم، ديدم توي هاردم داره خاك مي خوره گفتم بزارم دوستاني كه دارن دنبال چنين برنامه هايي مي گردند يا شايد براي دوستانمون هم جالب باشه ،‌البته توصيه هاي اينجانب به عزيزاني كه دنبال چنين برنامه اي مي گردند كه به استاد تحويل بدند،اينه كه سعي كنيد از اين برنامه در حد امكان الگو بگيريد و مستقيم كپي نزنيد كه پيش استادتون ببريد و نمره بگيريد، توي اين برنامه از هيچ كدام از الگورتيم هاي بهينه سازي استفاده نشده والگوريتم حل پازل برنامه از برداشت هاي شخصي و محاسبات خودم مي باشد.

محيط برنامه

http://barnamenevis.org/forum/attachment.php?attachmentid=59022&stc=1&d=1288030956
نحوه كار:
لطفا گول ظاهر برنامه رو نخوريد كه آيا توي اين برنامه بايد پردازش تصوير هم انجام بديم؟
تصاويري رو كه داخل برنامه مي بينيد عكس هايي هستند كه متناظر با عددي كه داخل آرايه قرار گرفته بايد اون تصوير Load بشه.
در ابتدا بگم كه تمام اين برنامه با آرايه هاي دوبعدي كار مي كنه ، و بيشتر وقت برنامه روي جستجوي قرارگيري اعداد در جاي اصلي خودشون داخل آرايه دو بعدي مي باشد.




مثلا آرايه بالا شكل آن در برنامه به شكل زير مي شود.

http://barnamenevis.org/forum/attachment.php?attachmentid=59023&stc=1&d=1288031675

در اين برنامه 4 تا آرايه داريم كه تعداد انتخاب آن بنا به موقعيت قرار گيري خانه خالي پازل و حركت آن به طرف بهترين حالت كم وزياد مي شود يعني بعضي وقت ها از 2 آرايه و بعضي وقت ها از 3 آرايه و بعضي وقت ها از 4 آرايه استفاده مي كنيم .
در برنامه 4 آرايه 3*3 تعريف مي كنيم.
چه موقع تعداد آرايه ها براي پردازش كم و زياد مي شود.
فرض كنيد پازل ما به شكل زير است.

http://barnamenevis.org/forum/attachment.php?attachmentid=59024&stc=1&d=1288031732
آرايه اين شكل به صورت زير مي باشد.





براي حركت بعدي دو راه داريم يا جاي 0 با 4 را عوض كنيم يا جاي 0 با هفت در اين هنگام ما دو آرايه براي نگهداري موقعيت جديد نياز داريم.
محل قرارگيري عكس4
حال با يك پيمايش در آرايه مي سنجيم كه چند عدد در محل درست خود قرار گرفته اند هر ارايه اي كه مقدار آن بيشتر بود آن مسير را انتخاب مي كنيم در صورت برابر بودن از يك Random استفاده مي كنيم.