توانايي شكل گيري خلاصه برداري از تجربيات از توانمند ترين و اساسي ترين توانائي هاي ذهن انسان است. خلاصه پردازي به ما حس شناخت خانه هاي متفاوت را مي دهد . يك تصوير ممكن است بياني قوي تر از هزاران كلمه داشته باشد ، اما يك خلاصه مشخصاً بيان كنندة خصوصيات مهم يك كليت از نوع تصوير است . خلاصه سازي يكي از ابزارهاي اساسي شناخت و ارزيابي كليت هاي جهان اطراف ما و همچنين ساختار ذهني ما است در حقيقت اين پروسه به طور مداوم براساس دانش و اطلاعات صورت مي گيرد . دانش و اطلاعات نيز در لايه ها و بخش هايي از خلاصه پردازي ساخته مي شود كه از مكانيسم هايي كه ساختار را فشرده ساخته و از حس اوليه به سمت يك سري تئوري هاي علمي سوق داده مي شود و در نهايت بيشتر اين ايده ها دربارة ايده هاي ديگر و نشأت گرفته از آنها مي باشد .
خلاصه پردازي طبقه بندي شده (سلسله مراتبي)
ساختار و سازمان آزمايش و تجربه در ارتباط با توصيفات كلاس هاي خلاصه سازي يكي از ابزارهاي شناخت رفتار و ساختار سيستم هاي مركب است كه شامل برنامه هاي كامپيوتر مي شوند . همانند رفتار يك حيوان كه ممكن است بدون توجه به فيزيولوژي سيستم عصبي نهفته در پشت آن مورد مطالعه قرار گيرد . يك الگوريتم داراي خصوصيات مربوط به خود مي باشد كه كاملاً آن را از برنامه اي كه آن را به كار مي برد جدا مي سازد .
به عنوان مثال دو نوع كاربر متفاوت جستجوي باينري را در نظر بگيريد . يكي از آنها يعني Fortran از محاسبات و طبقه بندي استفاده مي كند و ديگري يعني++C از Pointer استفاده مي كند كه مي تواند در جستجوي درون شاخه هاي binary كاربرد داشته باشد. در سطح نشانه تصميمات درباره ساختارها صورت مي گيرد كه براي بيان و ايجاد دانش مورد استفاده قرار مي گيرند. انتخاب يك زبان براي بيان يك مورد مربوط به سطح نشانه مي باشد. زبان بيان نه تنها مي بايستي توانايي بيان اطلاعات مورد لزوم براي كاربر را داشته باشد بلكه مي بايستي خلاصه و قابل توصيف و داراي كاربرد مؤثر باشد و مي بايستي به برنامه نويس براي دستيابي و سازماندهي اصل و اساس اطلاعات كمك كند.
وقتي كه بين سطح اطلاعات و سطح نشانه يك برنامه تمايز به وجود آمد ما مي توانيم بين سطح نشانه و الگوريتم و ساختمان داده ها مورد استفاده براي كاربرد آن نيز تمايز قايل شويم. به عنوان مثال بدون تاثيرگذاري رفتار و عملكرد يك تحليل گر برنامه كه اساس منطقي داشته باشد مي بايستي تاثير ناپذير از انتخاب بين يك سري جزئيات و يك مجموعه و دسته بايزي باشد تا بتواند يك جدول مربوط به نشانه ها را به كار برد.
بسياري از الگوريتم و ساختمان داده ها در كاربرد بيان زبان AI به كار مي روند كه از روشهاي معمول علم كامپيوتر مي باشند مثل شاخه ها و جداول باينري.
ديگر موارد در رابطه با AI بسيار تخصصي هستند و به گونه يك كه مستعار بيان مي شوند كه از طريق متن و بخش هاي مربوط به LISP و PROLOG بيان مي شوند . در سطح پائين تر مربوط به الگوريتم و ساختمان داده ها ( سطح زبان ) واقع شده است در اين جا ست كه زبان كاربردي براي برنامه مشخص مي شود .
محدوديت هاي فيزيكي كامپيوتر مي بايستي بر روي منابعي همچون حافظه و سرعت پردازشگر تأكيدكند.روش هايPROLOG,LISP در جهت متعادل كردن نيازهاي سطح نشانه و نيازهاي نهفته در ساختار هر دو منبع مورد استفاده مي باشند و هم چنين يك هدف هوشمند و ذهني با اهميت مي باشند . در دنباله ما از ساختارهاي سطح اطلاعات در محيطهاي برنامه نويسي بر روي يك زبان كاربردي صحبت خواهيم كرد و سپس به مصرفي زبانهاي عمده AI يعني PROLOG , LISP مي پردازيم .
خصوصيات مطلوب يك زبان AI
يكي از خصوصيات و ويژگيهاي مهم خلاصه سازي سلسله مراتبي در ساختار برنامه غير حساس بودن سطوح بالاتر نهفته در كاربرد زبان مي باشد .
اين مشاهده در عمل سنجيده مي شود كه همراه با سيستم هاي موفق دانش مدار مي باشد كه در زبانهاي برنامه نويسي مختلفي مثل Pascal , C , C++، Java , PROLOG , LISP و حتي Fortran به كار مي رود . برنامه هاي مختلفي اصولاً در PROLOG , LISP و سپس در C به كار گرفته مي شوند تا بتواند تاثيرپذيري و انتقال پذيري بهتر ايجاد كنند. در هر دوي اين موارد رفتار و عملكرد در سطح نشانه به طور قطع بي اثر مي باشد.
با اين حال محدوديتهاي خلاصه سازي در يك برنامه جامع بيان مي شود كه كامل نمي باشد . ساختار سطح بالاتر باعث ايجاد ساختارهاي قوي بر روي لايه هاي زيرين مي شود و نياز به اين دارد كه برنامه نويسي AI بر روي سطح نشانه اي قرار گيرد كه در سطح زبان تكرار مي شوند.توسعه AI لزوما در طبيعت به صورت كشف و تجزيه و آزمايش است.اين نياز هم چنين وابسته به يك زبان و ابزارهايي است كه بايد فراهم ساخت . يك زبان نه تنها مي بايستي متناسب با كاربرد ساختارهاي سطح بالا باشد بلكه مي بايستي يك ابزار مناسب براي انتقال كل چرخه نرم افزار از آناليز و تجزيه و تحليل تا حصول برنامه باشد.
در پنــج زير گـــروه بعدي ما به صورت جزئي و كامل در مورد نيازهايي كه ساختارهاي سطح نشانه اي برنامه هاي AI كه بر روي كاربرد زبان دارند بحث مي كنيم.اين موارد عبارتند از :
1. پشتيباني از محاسبه سمبوليك
2. انعطاف پذيري كنترل
3. پشتيباني از متدولوژي و روش هاي برنامه نويسي جستجويي
4. پويايي
5. مستنند سازي خوب و واضح
6. پشتيباني براي ساخت Prototype اوليه
7. قابليت خواندن برنامه و مستندسازي آن
8. محيطهاي توسعه
خلاصه اي دربارة LISP و PROLOG
به وسيله برآورده كردن نيازهاي گفته شده، LISP و PROLOG هر دو داراي زبانهاي برنامه نويسي غني و كاملي هستند وقتي كه اين زبانها را فرا مي گيريم.
PROLOG
PROLOG يكي از بهترين نمونه و مثال يك زبان برنامه نويسي منطقي است. ايده استفاده توصيفي محاسبه اوليه براي بيان خصوصيات حل مسئله يكي از محوريت هاي مشاركتPROLOG مي باشد كه براي علم كامپيوتر به طور كلي و به طور اخص براي زبان برنامه نويسي هوشمند مورد استفاده قرار مي گيرند. نفع استفاده از محاسبه اوليه براي برنامه نويسي شامل يك ساختار ظريف و ساده و قابل معني مي شود.
به دليل همين خصوصيات است كه PROLOG به عنوان يك محرك اصلي و مفيد براي تحقيقاتي مثل موارد برنامه نويسي آزمايشي به عنوان يك كد، متغير كردن برنامه و طراحي ويـــژگيهـاي زبان سطح بالا، مطرح است. PROLOG و ديگر زبانهاي منطقي يك سبك برنامه نويسي مشخصي را دنبال مي كنند كه در آنها برنامه ها به صورت دستورات پشت سرهم و متوالي براي ايجاد يك الگوريتم، نوشته مي شوند. اين نوع برنامه اصولاً به كامپيوتر مي گويد كه «چه چيزي درست است» و «چه چيزي بايد صورت گيرد» و اين به برنامه نويس اجازه مي دهد كه بر روي حل مسئله به صورت يك سري خصوصيات از يك محدوده تأكيد كند تا اينكه بخواهد به جزئيات نوشتاري سطح پائين ساختارهاي الگوريتمي براي بعد بپردازد.
مزيت اين زبان به وسيله پروژه هايي كه براي ارزيابي و گسترش قدرت بيان برنامه هاي منطقي نوشته شده اند، اثبات شده است.
بحث دربارة يك چنين كاربردهايي مي تواند در سمينار و گردهمائي هاي مربوط به زبان برنامه نويسي هوش مصنوعي در سطح بين المللي مطرح شود.
LISP
LISP اولين بار به وسيله JACK MCCARTHY در اواخر دهه 1950 مطرح شد اين زبان به عنوان يك مدل پيوسته محاسباتي بر اساس تئوري عملكرد مجدد،معرفي شد.در مقالات اولية مك كارتي (1960) اهداف خود را مشخص مي كند: ايجاد يك زبان سمبوليك تا يك زبان محاسباتي. ايجاد زباني كه بتوان از آن به عنوان يك مدل محاسباتي بر اساس تئوري عملكرد مجدد استفاده كرد و از آن بتوان براي تعريف دقيق يك ساختار و تعريف زباني استفاده كرد.
در حقيقت اين مدل برنامه نويسي طوري مؤثر بوده است، كه تعدادي از ديگر زبانها بر اساس عملكرد برنامه نويسي آن واقع شده اند مثل FP ، ML و SCHEME .اين ليست اساس برنامه ها و ساختارهاي اطلاعاتي در LISP است، LISP خلاصه شده نام پروسه LIS است. اين برنامه يك سري ليست هاي عملكردي درون ساختاري دارد.
LISP به برنامه نويس قدرت كامل براي اتصال به ساختارهاي اطلاعاتي را مي دهد.اصولاً LISP يك زبان كامل است كه داراي عملكردها وليست هاي لازمه براي توصيف عملكردهاي جديد، تشخيص تناسب و ارزيابي معاني مي باشد.تنها هدف كنترل برنامه بازگشت و شرايط منحصر به فرد است. عملكردهاي كامل تر هنگامي كه لا زم باشد در قالب اين اصول تعريف مي شوند. در طي زمان بهترين عملكردها به عنوان بخشي از زبان مي شوند. پروسه توسعة زبان به وسيلة اضافه كردن عملكردهاي جديد موجب توسعه محورهاي زيادي از LISP مي شوند كه اغلب شامل صدها عملكرد بخصوص براي ايجاد اطلاعات كنترل برنامه، خروجي و ورودي، Edit كردن عملكردهاي LISP مي شوند.اين ارتباطات محركه اي هستند كه به وسيله LISP از يك مدل ساده و ظريف به يك مدل قوي و غني و عملكردي براي ساخت سيستم هاي نرم افزاري بزرگ، تبديل مي شود.
يكي ازمهم ترين برنامه هاي مرتبط با LISP برنامه SCHEME مي باشد كه يك تفكر دوباره دربارة زبان در آن وجود دارد كه به وسيله توسعه AI وبراي آموزش اصول مفاهيم علم كامپيوتر مورد استفاده قرار مي گيرند.
برنامه نويسي شيء گرا
برخلاف برنامه LISP و PROLOG ،برنامه شيء گرا ريشه در مهندسي نرم افزار دارد. اولين بار در سال 1970 توسعه يافته كه به وسيله Alan Kay اين تحقيقات صورت گرفته است.ساخت ايده ها از محرك، كه زبان نروژي تظاهر مي كند در سال 1960 و مقاله Symour در استفاده از LOGO براي آموزش كودكان، صورت پذيرفته است.استفاده از Dyna book براي اولين بار به عنوان يك كامپيوتر، كه افرادي به غير متخصصان علم كامپيوتر با آن سروكار داشتند.بـــه دليل اينكه كاربر افراد معمولي بودند سيستم عملكرد و كاربرد نرم افزار نبايد تكنيكي مي بود و به سادگي قابل تشخيص بود. راه حل آنها براي اين مسئله يك مداخلة گرافيكي است با استفاده از منوها و آيكون هاي گرافيكي و اشاره گرها، يك موس يا يك سري برنامه ها براي اديت كردن، داده ها مي باشد.
دخالت كاربر در طراحي يك notebook متأثر از طراحي كاربرها براي يك سري كامپيوترهاي تخصصي مثل سيستم هاي به كارگيري كامپيوتر شخصي مثل مكينتاش، ماكروسافت و محل هاي مربوط به ويندوز مي باشد.در يك برنامه small talk ،همه چيز در قالب هدف و يك ساختار قابل محاسبه مرك و قراردادي مطرح مي شود. اهداف نه فقط شامل انواع اطلاعات براي محاسبه بلكه شامل انواع روشهاي لازم براي محاسبه حالت و وضعيت هدف نيز مي شوند.ارزشهاي يك هدف به صورت كلاس ها بيان مي شود. اهداف ممكن است اهداف طبقه بندي شده كه توصيف كنندة تمامي مواد يك نمونه باشد و بيانگر نوع ذات و توصيف تما مي موارد يا مواردي كه بيانگر يك عضو واحد هستند را شامل شود.
وقتي مواردي از يك نوع اطلاعات به وسيله اهداف توصيف مي شود اين موارد ذاتاً داراي نوع توصيف و روشهاي توصيفي از عملگرهايشان مي باشند،براي شكل دادن يك عمليات بر روي يك هدف، يك پيام به سمت هدف فرستاده شده كه حاصل روش مناسبي مي باشد. به عنوان مثال، اضافه كردن 3 و 4 پيام 4+ به سمت شيء 3 فرستاده مي شود و 3 پاسخ مي دهد مي شود 7 .به وسيله ايجاد انواع تركيب اطلاعات و عمل بر روي آنها در يك عمل واحد مربوط به هدف، small talk از كد Modular (پيمانه اي) توسعه و نوع كاربرد براي عناصر اطلاعات و كد مربوط به تكثير آنها، پشتيباني مي كند.به دليل اينكه اهداف small talk در قالب يك كلاس شبكه اي همراه با اهداف كاملاً ويژه كه بخشي از تمامي روش هــاي كاملاً كلي است ، بسيار ساده است كه يك ساختار جديد برنامه اي توصيف كنيم كه عملاً با اهداف موجود در برنامه همراه باشد. بنابراين يك برنامه اصولاً مي تواند قدرت كامل يك سيستم باشد كه شامل گرافيك،بازنگري و ارتباط است.
علاوه بر اين روش هاي توسعه نرم افزاري مثل ارائه اطلاعات و زبانهاي نهفته، فشار بر اپراتور و استفاده از كدها از طريق يك گروه اصلي و زبانهاي نهفته در قالب يك مدل رايج پشتيباني مي شوند.زبانهاي شيءگرا همراه با بسياري از خصوصيات مندرج در يك كلاس اطلاعاتي، شامل كلاس اصلي و توانايي پاسخ در ساختار اطلاعات مي شود به همين دلايل زبانهاي شيءگرا در برنامه نويسي AI استفاده مي شوند.
محيطهاي هيبريد
نياز به برنامه نويسي اطلاعاتي موجب توسعة تعدادي برنامه نويسي و تكنيك هاي زبان، شامل سيستم هاي توليد،قوانين و كلاس شيءگرا مي شود.
يك سيستم هيبريد بيانگر نمونه هاي چند منظوره در قالب يك محيط برنامه نويسي خاص مــي باشد. گر چه محيطهاي هيبريد متفاوت مي باشد. ولي عموماً شامل خصوصيات ذيل مي شوند.