هوش مصنوعی

۱- معرفي :
برنامه هاي هوشمند مشتمل بر ۹۹% علم كامپيوتري و ۱% هوش مصنوعي است . هوش مصنوعي با بيش از ۴۰ سال سابقه مورد بحث و انتقادات زيادي قرار گرفته است. شايد بتوان گفت كه مشكلترين و سخت ترين نوع بحث اين باشد كه ‌هوش مصنوعي نتوانسته است به وعده هاي خود عمل .
عموما يك برنامه هوش به عنوان يك سيستم مستقل تصميم گيرنده محسوب مي شود كه در محيط آن عمل قرار ميگيرد.

۲- سيستم هاي عامل :
منظور از سيستم عامل اين است كه از يك عامل به صورت انتزاعي استفاده شده است .
و سيستم هاي عامل ممكن است شامل يك كاربر باشد. منظور از سيستم عامل سيستمي است كه ، شامل موارد زير باشد:
استقلال داخلي (AUTONAMY) :
سيستم هاي عامل برخي از برنامه ها را خلاصه ميكنند و درباره چگونگي وضعيت بدون دخالت بشر يا سايرين تصميم گيري مي كنند.

فعاليت (Reactivity) :
عامل ها در يك محيط واقع شده اند و قادر هستند به تغييراتي كه در آن رخ مي دهد پاسخ دهند.
فعاليت حرفه اي : ( Pro- activeness)
سيستم هاي عامل به آساني در پاسخ به محيطشان عكس العمل نشان نمي دهند . آنها قادر هستند كه با حركت اوليه رفتار هدف گرايي را ارايه دهند.

توانايي اجتماعي : ( Social abitity)
سيستم هاي عامل با ديگر عامل ها ( برنامه و شايد انسانها) از طريق نوع زبان ارتباطي ،‌در ارتباط هستند و به عنوان نمونه آنها قادر هستند تا در فعاليت هاي اجتماعي (مثل حل مسئله يا مذاكره) جهت رسيدن به اهدافشان به كارگرفته نشوند. همچنين از سيستم انتظار داريم كه زبانهاي برنامه نويسي سطح پايين را به صورت كوركورانه اجرا كند. بدين ترتيب هنگام وقوع شرايط غير قابل پيش بيني از سيستم انتظار داريم كه متعاقبا و سر موقع به وضعيت جديد پاسخ مناسبي دهد.
۱-۲ ) سيستم هاي عامل به عنوان سيتم هاي منطقي يك مشكل مشهود اين است كه چگونه به شرح سيستم هايي كه توانايي رفتار منطقي دارند بپردازيم . يكي از موفقيت آميز ترين روش هاي

براي رفع اين مشكل در نظر گرفتن سيستم هاي عامل به عنوان سيستم هاي ارادي است كه عملكردشان با اصطلاحات رفتاري از قبيل عقيده ميل و قصد مي تواند پيش بيني و توضيح داده شود . اين حالت ارادي از آنجائيكه رفتار يك سيستم پيچيده از طريق صفات حالت از قبيل اعتقاد و اميال درك مي شود را در ابراز انتزاعي مي گويند . حال بيشتر علم كامپيوتر به تحقيق درباره مكانيزم هاي انتزاعي گرايش دارد تا آنجائيكه به برنامه نويسان اجازه مي دهد تا با آرامش كامل به كنترل پيچيدگيها بپردازد .

AOP مي تواند به عنوان يك برنامه نويسي بعد از اخبار در نظر گرفته شود . در برنامه نويسي توابع گفتن اين كه يك سيستم چه بايد انجام دهد مشمول اين است كه با نوشتن يك الگوريتم دقيق دقيقا گفته شود چگونه بايد اين كار را انجام دهد. در AOP ، مثل برنامه ريزي اخباري عقيده بر اين است كه اهداف را بيان كرده و اجازه دهيم تا مكانيزم كنترل داخلي چگونگي كسب نتيجه را محاسبه كند. در اين مورد بهر حال مكانيزم كنترل مدل هايي از برنامه هاي منطقي را پياده سازي مي كند .
خوشبختانه اين مدل كامپيوتري با فهم اوليه عقايد و اميال ما مطابقت دارد .
۳- ويژگي ها :
فرايند توسعه نرم افزار با پرداختن به الزامات مشتري شروع مي شود . وقتي اين فرايندكامل است كه عملكرد سيستم جديد تنظيم شود . سيستم هاي عامل اطلاعاتي درباره محيطشان دارند. اين ما را به تقاضا راهنمايي مي كند كه چارچوب ويژگي هاي سيستم عامل بايدقادر به ارائه وضعيت محيط خودش و اطلاعاتي كه ‌سيستم عامل درباره آن محيط دارد باشد . ارزش ارائه نظر درباره اين

كه چه خواصي ممكن است داراي اين اطلاعات باشد وجود دارد . اولا اطلاعاتي كه يك سيتم عامل دارد ممكن است اشتباه باشد . سنسورهاي سيستم عامل ممكن است داراي نقص باشد . اطلاعات ممكن است به روز نباشد يا سيستم عامل ممكن است عمدا يا تصادفا اطلاعات غلطي را ارئه داده باشد . ثانيا اطلاعاتي را كه يك سيستم عامل دارد مستقيما در دسترس ديگر سيستم

عامل ها نباشد . سيستم عامل ها اطلاعاتي را به اشتراك نگذارند و به ساختارهاي اطلاعاتي شخص ديگري دسترسي نداشته باشند.ثالثا محيط ممكن است شامل سيستم عامل هاي ديگاطلاعاتي درباره ديگر عوامل باشدكه هر كدام اطلاعات مربوط به خود از محيط دارند .
سيستم هاي نرم افزاري به ۲ نوع تقسيم مي شوند : فعاليتي و تابعي ( كنشي و واكنشي )
يك سيستم تابعي سيستمي است كه وروديها را گرفته بعداري محاسبات روي وروديها انجام م

ي دهد و در آخر خروجيها را ارائه مي كند.
اين قبيل سيستم ها مي توانند به صورت تابع I O :F Ic كه ورودي و o خروجي است نشان داده شوند. مثال كلاسيك اين نوع سيستم كامپايلر يا مترجم برنامه مي باشد.
به طور كلي برنامه هاي تابعي براي بيان طراحي وپياده سازي از سيستم هاي واكنشي راكتيو (Reactive) ساده تر هستند.
از آنجائيكه سيستم هاي تابعي پايان مي يابند استفاده از قالب هاي پيش شرط و پس شرط براي استدلال آنها ممكن مي باشد. بر عكس سيستم راكتيو خاتمه نمي يابد اما با محيط پيرامونش بر هم واكنش مداوم دارد. بنابر اين استفاده از قالب هاي پس شرط و پيش شرط از قبيل منطق Hoare براي استدلال آنها ممكن نمي باشد در عوض سيستم هاي Reantive بايد بر اساس رفتار مداوم آنها مشخص و تعيين شوند.
شاخص سوم هاي سيستم هاي عاملي كه به بحث درباره آن پرداختيم قابليت توانايي اجتماعي مي باشد كه به منظور ما از آن اين مي باشد كه سيستم هاي عامل قادر به ارائه رفتار هدف گرايي هستند در آخر سيستم هاي عامل بايد قادر به عمل باشند. به طور نمونه سيستم هاي كنترل كامل روي محيطشان را ندارند اما عموما قادر به تاثير گذاري بر روي محيطشان از طريق انجام يك سري اعمال هستند و ممكن است كنترل هاي مطمئني روي قسمت هايي از آن داشته باشند . خلاصه اين كه بسته هاي نرم افزاري سيستم عامل بايد قادر به كنترل حداقل شاخص هايي زير از يك سيستم عامل باشد .
 عقايدي كه برنامه هايي دارند.
 سيستم هاي عاملي كه بر هم كنش مداومي با محيطشان دارند.

 اهدافي را كه سعي بر اكتساب آنها دارند.
 اقداماتي كه سيستم هاي عامل انجام مي دهند واثرات اين سيستم هاي عامل دارند.
يك مدل منطقي موقت قادر به تعيين اين شاخص هاي سيستم مي باشد . يك بسته نرم افزاري سيستم عامل با مدل موقتي شامل موارد زير مي باشد :
 حرف ربط منطقي براي نشان دادن عقايد سيستم عامل
 حروف ربط منطقي براي نشان دادن پويايي سيستم و رفتار مداوم آن

 حروف ربط منطقي براي نشان دادن كنش ها ( مثل اميال ، مقاصد و اجبارها )
 تعدادي دستگاه براي نشان دادن عملياتي كه سيستم هاي عامل انجام مي دهند.
 شاخص هاي اطلاعاتي : دانش ،‌عقيده ،‌نقطه نظرات اطلاعاتي مشترك
 شاخص هاي موقتي : خطي در مقابل شاخه اي متراكم در مقابل جدا از هم ، مرجع مستقيم در مقابل اپراتورهاي جدي نقطه اي در مقابل فاصله اي .
شاخص هاي تابعي:
ميل ،‌قصد ، اجبار ،‌انتخاب ، نقطه نظرات جمعي
اعمال:
نمايش مستقيم ، ارائه مجازي ( ضمني )
با ارائه اين الزامات ابعاد زياد زير ديگري وجود دارد كه بسته نرم افزاري سيستم هاي عامل مي تواند تفاوت داشته باشد كه برخي از اين ابعاد در بالا ذكر شد . به هيچ وجه توافق نظري روي خواص مورد نياز چيزي را كه ما به آن تئوري سيستم هاي عامل مي گوئيم وجود ندارد.
به عنوان مثال دو تا از معروفترين تئوري هاي عامل تئوري نظري cohen- levesque مدل عقيده ، ميل و نظر Rao- Georgeff مي باشد . مدل cohen- levesque كه اصلي ترين است در طرز فكر دارد :
عقايد و اهداف ديگر طرز فكرها از اين ساخته شده اند در مقابل Rao- Georgeff از قصد به علاوه عقايد و اهداف به عنوان اصلي ترين ها ياد مي كند. همچنين cohen- levesque از مدل موقت خطي اقتباس مي كند، زمان شاخه اي شدن براي مدل Rao- Georgeff كم يا زياد ضروري نمي باشد . در نتيجه هر دو قالب اگر چه خيلي بهم نزديكند ولي ناسازگارند .

زبانهاي اختصاصي سيستم هاي عامل به مراتب پيچيده تر از زبانهاي modal
و موقتي هستند كه در علم كامپيوتر معمولي مي باشند . در واقع آنها منطق هاي موقتي هستند كه توسط گروهي از حروف ربط اضافي و مدال وضعيت ذهني يك عامل اشباع شده اند . هنگامي كه اجزا موقتي اين منطق ها مي خواهد تا حدي استاندارد باشد علم معناي حروف ربط مدال مدون اضافي در منطق مدال نظرات گوناتگوني مي دهد . بنابر اين براي مثال به اطلاعات داده

شده به سيستم عامل عقايد يك سيستم عامل در بعضي مواقع توسط يك سري وضعيت هاي گوناگون طبقه بندي مي شود كه هر كدام از آنها يك امكان را شناسايي مي كنند كه دنيا چگونه مي توانند باشد . باز هم بدين ترتيب اميال عامل در بعضي موقعيت ها توسط يك سري وضعيت هايي كه با اميال سيستم سازگار مي باشد طبقه بندي مي شود . مفاهيم نيز زير بهمين صورت نشان داده مي شوند مزاياي زيادي براي مدل هاي ممكن جهاني وجود دارد و مكانيزم هاي بكار گرفته شده بسيار زيبا و ظريف است . به هر حال تعدادي اشكال جدي به معناي دنياهاي ممكن مي باشد .
اولا : اين معنا اشاره دارد به اين كه عوامل از لحاظ منطقي استدلال كننده هاي كاملي هستند و آنها منابع نامحدودي براي استدلال در دسترس دارند. هيچ برنامه واقعي مصنوعي يا غيره اين خصوصيات را ندارند .
ثانيا : معاني دنياهاي ممكن عموما بي اساس است بدين معني كه هيچ ارتباط دقيقي بين روابط انتزاعي كه براي طبقه بندي وضعيت برنامه ها استفاده مي شود و هر مدل محاسبه اي دقيق وجود ندارد .

۴- پياده سازي :
خصوصيات ،‌پايان داستان توسعه نرم افزاري نيست به محض ارائه خصوصيات ما بايد يك سيستمي رات پياده سازي كنيم كه نسبت به خصوصاتش صحيح باشد . مسئله بعدي حركت از خصوصيات انتزاعي به مدل محاسبه اي دقيق است حداقل سه امكان براي كسب اين تغيير وجود دارد ۱- تصحيح دستي مشخصات به فرم قابل اجرا از طريق برخي از اصول ها ، اما فرايند تصحيح

سازي غير رسمي ( چنانكه در توسعه اكثر نرم افزاري هاي كنوني اين يك اصل است )
۲- اجرا و تحريك كردن خصوصيات انتزاعي به صورت مستقيم و تا حد ممكن
۳- ترجمه يا كامپايل خصوصيات به شكل محاسباتي دقيق با استفاده از تكنيك ترجمه اتوماتيك تا حد ممكن .
۲-۴ : اجراي ويژگي هاي برنامه به طور مستقيم : يكي از منابع عمده روش هاي تصحيح دستي اين است كه آنها امكان خطا را معرفي مي كنند اگر هيچگونه دليلي براي نشان دادن اين كه هر مرحله از تصحيح يك تصحيح واقعي است مشاهده شود سپس صحت فرايند پياده سازي كمي بيشتر به فراست شركت برنامه نويس بستگي دارد . واضح ايت كه اين وضعيت مطلوبي از امور در خواستي كه صحت يك موضوع اساسي است مي باشد . يك راه ممكن براي گير انداختن اين مشكل كه به طور وسيعي در علم كامپيوتر شناسايي شده اين است كه از شر فرايند تصحيح سازي خلاص شده و همزمان ويژگيها را مستقيما اجرا كنيم .
يك راه مناسب جهت تفكر درباره اجرا اين است كه انگار برنامه در حال بازي در مقابل محيط است . خصوصيات هدف بازي را نشان مي دهد .
برنامه بايد هدف را رضايت بخش نگه دارد . هنگامي كه محيط سعي مي كند جلوي كاربرنامه را بگيرد بازي توسعه برنامه ومحيط بي نوبت براي ساخت يك محيط انجام مي شود . اگر ويژگيها در مدل غلط باشند برنامه مي بارد . در سيستم هاي اكتيو واقعي هيچ وقت بازي تمام نمي شود يك استراتژي موفق براي مدل سازي از ويژگي هاي برنامه در حضور ورودي اختيار از محيط يك الگورتيم اجرايي براي منطق است .

ميتايم چند منظوره : يك زبان برنامه نويسي براي سيستم هاي چند عاملي است كه بر اساس نظريه اجراي خطي مستقيم ويژگي هاي برنامه منطقي موقتي مي باشد. يك سيستم ميتاتيم چند منظوره شامل يك سري برنامه هاي اجرايي چند منظوره است كه هر كدام از آنها با ارائه ويژگي هاي منطقي موقتي رفتاري كه برنامه بايد ارايه دهد برنامه ريزي مي شود .
تكنيك هاي استنتاجي اتوماتيك متشابهي براي توسعه ساختار سيستم هاي چند منظوره از ويژگي هاي منطقي بكار گرفته شده است .WolperوManna الگوريتيمي را كه يك ويژگي منطب

ق خطي از قسمت هماهنگ يك سيستم چند منظوره را به عنوان ورودي گرفته و اسكلت يك برنامه cps كه ويژگي ها را تشخيص مي دهد به عنوان خروجي توليد مي كند. تابعيت يك سيستم چند منظوره مي تواند به دو دسته تقسيم شود : يك قسمت تابعي كه محاسبات مورد نياز در برنامه را انجام مي دهد و يك قسمت هماهنگ كننده كه از همكاري صحيح اجزاي سيستم اطمينان حاصل مي كند.
نظريه ماشين هاي جايگزين :
شناخته شده ترين مثال از اين شيوه براي بسط برنامه الگوي نظريه ماشين هاي جايگزين KAELBLING andRosenchein است . در ااين شيوه برنامه شامل دو جز مي باشد :
يك قسمت دركي كه مسئول مشاهده محيط و به روز كردن وضعيت داخلي برنامه است
يك قسمت فعال كه مسئول تصميم گيري براي انجام كار مورد نظر بر اساس وضعيت داخلي برنامه است .
فرايند تصميم گيري انجام كاري در شرايط محاسباتي كه شامل هيچگونه استدلالي نمي باشد بسيار ساده است تكنيك هاي تصحيح ساختاراما غير رسمي ، تكيه گاه اصلي مهندسي نرم افزار دنيا حقيقي هستند . دگر تكنيك هاي برنامه اي قرار باشد كه در خارج جامعه آكادميك مورد استفاده قرار بگيرد ،
نتيجه روش هاي ساختاري و غير رسمي براي توسعه برنامه هاي ضروري خواهد بود . يك اسكان براي اين قبيل تكنيك ها كه توسط luch andDinverno دنبال شده است استفاده از يك تكنيك ويژه استاندارد و استفاده از روش هاي تصحيح سنتي ( توسعه متغيري) براي تبديل ويژگي ها به يك پياده سازي است اين روش داراي اين مزيت است كه با تكنيك هاي بر اساس كاربر آ

شنايي بيشتري نسبت به تكنيك هاي جديدتر دارد.
زمان اختصاصي برنامه كه بر اساس ميتاتيم چند منظوره مي باشد داراي يك مدل محاسبه اي دقيق و الگوريتم اجرائي نسبتا ساده است . به طور كلي اين مدهاها معناي محضي دارند بدين معني كه ساختارهاي معنايي كه از اين منطق ها پشتيباني مي كنند هيچ ترجمه محاسبه اي دقيقي ندارد . در نتيجه واضح نييست كه چگونه اين قبيل زبانهاي اختصاصي برنامه ممكن است اجرا شود . ديگر شكل محرز اين است كه تكنيك هاي اجرايي بر پايه اثبات فرضيه هاي محدود مي شود. به هر حال پيچيدگي مسئله اي است كه حتي در مورد گزاره اي نيز وجود دارد .
۵- تاييد (verifcation) :
به محض اين كه يك سيستم دقيق را ما رشد مي دهيم نياز است كه نشان دهيم كه اين سيستم در ارتباط با ويژگي هاي اصلي آن درست است اين فرايند به عنوان تاييد شناخته شده است و در صورت معرفي فرايند توسعه اهميت آن بيشتر خواهد بود .
۱-۵ :روش هاي بديهي :
تاييد بديهي مستلزم اين است كه ما برنامه دقيق مان را گرفته و از اين برنامه يك تئوري منطق كه رفتار برنامه را نشان مي دهد اخذ كنيم .
به اين برنامه تئوري يا فرضيه مي گوئيم.
اگر تئوري برنامه در زبان منطقي مشابهي مانند ويژگي هاي اصلي بيان شود پس تاييد به مسئله اثبات كاهش مي يابد .
معارفه در زبان چند عاملي :
اصولا نظريه بر اساس استفاده از منطق اعتقادي موقت براي معارفه خصوصيات زبان هاي برنامه نويسي چند عامله بود.
با فرض اين قبيل معارضه يك تئوري برنامه اي كه خصوصيات سيستم را نشان مي دهد مي تواند به صورت سيستماتيك استنتاج شود.
يك منطق اعتقادي موقت به دو دليل استفاده مي شود :
اول اين كه يك جز موقتي مورد نياز است زيرا ما نياز به دستيابي رفتار مداوم سي

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