حتما در دوران کودکی بازی O - X را انجام دادید . به طور مثال شما با حرف O و دوستتون با حرف X خونه های یه جدول 9 خونه ای را پر میکردید. و هرکس که میتونست با حرف مربوط به خودش سه خونه پشت هم رو پر کنه برنده میشد!
حالا حالات ممكن صفحه را در حين اجراي بازي در نظر بگيريد. . اين حالات محدود و قابل پيشبيني هستند و تعداد آنها 19683 حالت است (براي محاسبه، براي هر يك از 9 تا خانه جدول ميتوان سه حالت خالي، X و O را در نظر گرفت پس تعداد كل حالات 9^3 خواهد بود).
میشه برنامهاي نوشت كه تمام اين حالات را در نظر ميگيرد و در ازاي هر حالت خاص، رفتاري هوشمندانه را انجام ميدهد. شايد عدد 9 ^3 به نظرتون بزرگ بيابيد. اما حقيقت اين است كه با در نظر گرفتن قوانين بازي ميتوان اين حالات را خلاصهتر كرد. نكتهي مهم در اين برنامه، محدود بودن حالات ممكن است. ببرای همین میشه برنامه ی اين بازي را به گونهاي نوشت كه هيچگاه بازنده نباشد. (در نظر بگيريد كه نوشتن چنين برنامهاي براي بازي شطرنج تقريباً غيرممكن است).
درست است كه اين الگوريتم در بازي در برابر حريف شكست نميخورد و همواره هوشمندانهترين رفتار را از خود نشان ميدهد اما اين هوشمندي برنامهنويس است كه در قالب دستورات الگوريتميك به كامپيوتر القا شده است و برنامه به خودي خود هيچگونه خلاقيت و هوشمندي در اجراي بازي نداشته و فقط از يك مجموعه بايد و نبايد و دستور كه برنامهنويس به آن داده، تبعيت كرده است.
پس ما از يك برنامهي هوشمند و يا بهعبارت ديگر هوش مصنوعي، قابليتهاي مختلفی مثل استنتاج، حدس، خلاقيت و يادگيري را انتظار داريم. اما آيا بواقعا میشه چنين انتظارهايي را از برنامههاي كامپيوتري داشت؟
عدهاي از رياضيدانان و دانشمندان علوم كامپيوتر معتقد بودند چنين كاري غيرممكن است به اين علت كه كامپيوتر صرفاً ميتواند دستورهاي برنامهنويس را - كه در قالب يك الگوريتم به آن داده ميشود -انجام دهد. پس نميتوانيم از يك برنامه، انتظار انجام كاري را داشته باشيم كه در قالب الگوريتم به او دستور داده نشده است. در حقيقت برنامههاي كامپيوتري نميتوانند كارهايي غيرقابل پيشبيني انجام دهند، پس نميتوانند خلاقيت داشته باشند.
پاسخ اين ادعاي درست، ادعاي درست ديگري است كه تمام فعاليتهاي انجام شده در زمينهي هوش مصنوعي را توجيه ميكند. اگر بتوانيم
استنتاج، خلاقيت و يادگيري را در قالب الگوريتم و دستورها به كامپيوتر بدهيم و انتظار داشته باشيم تا با تبعيت از اين دستورها، رفتاري هوشمندانه داشته باشد، چيزي خلاف گفتهي بالا انجام نگرفته است.
در حقيقت دستورهايي كه كامپيوتر در قالب الگوريتمهاي هوش انجام ميدهد، چنين معنايي خواهند داشت:
- هوشمندانه رفتار كن.
- استنتاج كن.
- ياد بگير.
- خلاقيت داشته باش.
- يك اشتباه را دوبار تكرار نكن.
- از تجربههايت درس بگير.
پس بهطور كلي، روند كار، همانندسازي برنامه با مغز انسان است؛ هر چند اين كار بهطور كامل ممكن نيست. اما نتايج خوبي مثل
شبكههاي عصبي از محصولات همين فعاليتهاي نه چندان كامل و دقيق است.
مهمترين نكته در علم هوش مصنوعي اين است كه بتوانيم تعريف دقيقي از آنچه دقيقاً در مغز انسان طي يك فعاليت هوشمندانه رخ ميدهد ارائه كنيم. به عنوان مثال سعي كنيد دقيقاً بيان كنيد كه در حين اثبات يك قضيهي رياضي چه اتفاقي در مغزتان ميافتد. كار خیلی سختی به نظر میاد، اما جنبههايي از هوش هستند كه سادهتر قابل بيانند.
فرض کنید میخواهیم الگوریتمی برای یک بازی بنویسیم . قبل از هر چیز باید روش های حل مسئله رو بررسی کنیم.
برای شروع فرض کنید این سوال یکی از سوالات امتحانی شما باشه . و میخواید با استفاده از هوش مصنوعی یه الگوریتم براش بنویسید. اول باید فکر کنیم که چه راه حل هایی برای حل این مساله وجود داره.
سوال :
سه کشيش و سه آدم خوار در يک طرف رودخانه قرار دارند و هم چنين قايقي که میتواند يک يا دو نفر را حمل کند. راهي را بيابيد که هر نفر به سمت ديگر رودخانه برود، بدون آنکه تعداد کشيشها در يکجا کمتر از آدم خوارها شود. (20 نمره) !
اگه راهی به ذهنتون رسید میتونید در ادامه اضافه کنید.
------------------------
منبع : ماهنامه رشد