تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي
تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي
مقدمه
تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي
ما در عصري زندگي مي كنيم كه جامعه شناسان آن را عصر انقلاب كامپيوتر نام نهاده اند و مانند هر انقلاب واقعي ديگر، انقلابي است گسترده و فراگير و تأثير پايداري برجامعه خواهد داشت.
اين انقلاب در اقتصاد امروز و نظم جامعه، به همان ميزان انقلاب صنعتي در قرن 19 تأثير دارداين تحولات قادر است الگوي فكري و فرم زندگي هر فرد را تغيير دهد.
انقلاب كامپيوتر توان ذهني ما را گسترش مي دهد.
عملكرد اولية برنامه نويسي هوش مصنوعي (AI) ايجاد ساختار كنترلي مورد لزوم براي محاسبه سمبوليك است خصوصيات اين ساختارها به مقدار زيادي موجب تشخيص خصوصياتي مي شود كه يك زبان كاربردي مي بايستي فراهم كند.
در اين مقدمه به يك سري خصوصيات مورد نظر براي زبان برنامه نويسي سمبوليك مي پردازيم و زبانهاي برنامه نويسي LISP و PROLOG را معرفي خواهيم كرد.
اين دو زبان علاوه بر اين كه از مهمترين زبانهاي مورد استفاده در هوش مصنوعي هستند، خصوصيات semantic و syntactic آنها نيز باعث شده كه آنها شيوه ها و راه حل هاي قوي براي حل مسئله ارئه كنند.
تأثير قابل توجه اين زبانها بر روي توسعه AI از جمله توانائي آنها به عنوان «ابزارهاي فكر كردن» مي باشد كه از جمله نقاط قوت آنها در زبانهاي برنامه نويسي مي باشد.
همان طور كه هوش مصنوعي مراحل رشد خود را طي مي كند زبانهاي LISP و PROLOG بيشتر مطرح مي شوند.
اين زبانها كار خود را در محدودة توسعه و prototype سازي سيستم هاي AI در صنعت و دانشگاهها دنبال مي كنند.
اطلاعات در مورد اين زبانها به عنوان بخشي از مهارت هر برنامه نويس AI مي باشد ما به بررسي اين دو زبان در هوش مصنوعي مي پردازيم.
آنــــچه را كـــه نمي دانيم موجب دردسر و گرفتاري ما نخواهد شد، بلكه دردسرها از دانسته ها سرچشمه مي گيرند.
W.ROGERS
زبان ، شناخت و خلاصه پردازي
توانايي شكل گيري خلاصه برداري از تجربيات از توانمند ترين و اساسي ترين توانائي هاي ذهن انسان است خلاصه پردازي به ما اين اجازه را مي دهد كه به فهم جزئيات از يك محدوده ي كلي اطلاعات مربوط به يك خصوصيت كلي سازمان و رفتار برسيم . اين خلاصه ها به ما اجازه شناخت و درك كامل موارد دريافت شده در حوزه خاص را مي دهند . اگر ما وارد يك خانه شويم كه به خوبي ساخته شده باشد ، راههاي خود را به اطراف پيدا خواهيم كرد . ساختار خصوصيات اطاق نشيمن ، اطاق خواب ،آشپزخانه و حمام عموماً از ويژگيهاي يك مدل خانة استاندارد مي باشد .
خلاصه پردازي به ما حس شناخت خانه هاي متفاوت را مي دهد . يك تصوير ممكن است بياني قوي تر از هزاران كلمه داشته باشد ، اما يك خلاصه مشخصاً بيان كنندة خصوصيات مهم يك كليت از نوع تصوير است .
وقتي كه ما به تئوري براي توصيف كلاس هاي يك پديده مي پردازيم ، خصوصيات و ويژگيهاي كمي و كيفي مربوط به كلاس از كل جزئيات خلاصه مي شود .
كه اعضاء به خصوص خود را مشخص مي كند . اين كاهش جزئيات به وسيله قدرت توصيف و پيش بيني يك نظريه ارزشمند جبران مي شود .
خلاصه سازي يكي از ابزارهاي اساسي شناخت و ارزيابي كليت هاي جهان اطراف ما و همچنين ساختار ذهني ما است . در حقيقت اين پروسه به طور مداوم براساس دانش و اطلاعات صورت مي گيرد . دانش و اطلاعا نيز در لايه ها و بخش هايي از خلاصه پردازي ساخته مي شود كه از مكانيسم هايي كه ساختار را فشرده ساخته و از حس اوليه به سمت يك سري تئوري هاي علمي سوق داده مي شود و در نهايت بيشتر اين ايده ها دربارة ايده هاي ديگر و نشأت گرفته از آنها مي باشد .
خلاصه پردازي طبقه بندي شده (سلسله مراتبي ) :
ساختار و سازمان آزمايش و تجربه در ارتباط با توصيفات كلاس هاي خلاصه سازي يكي از ابزارهاي شناخت رفتار و ساختار سيستم هاي مركب است كه شامل برنامه هاي كامپيوتر مي شوند .
همانند رفتار يك حيوان كه ممكن است بدون توجه به فيزيولوژي سيستم عصبي نهفته در پشت آن مورد مطالعه قرار گيرد .
يك الگوريتم داراي خصوصيات مربوط به خود مي باشد كه كاملاً آن را از برنامه اي كه آن را به كار مي برد جدا مي سازد .
به عنوان مثال دو نوع كاربر متفاوت جستجوي باينري را در نظر بگيريد .
يكي از آنها يعني Fortran از محاسبات و طبقه بندي استفاده مي كند و ديگري يعني Ctt از Pointer استفاده مي كند كه بتواند در جستجوي درون شاخه هاي binary كاربرد داشته باشد .
اگر دقيق تر نگاه كنيم اين برنامه ها مثل هم مي باشند چون اگر جز اين باشد كاربردهاي آنها نيز تفاوت خواهد شد . جداسازي الگوريتم از كه مورد استفاده در كاربرد آن يكي از نمونه هاي خلاصه سازي سلسله مراتبي مي باشد .
Allen New ell بين سطح دانش و سطح نشانه ها براي توصيف يك سيستم هوشمند تفاوت قائل شده است.
سطح نشانه ها همراه سازماندهي به خصوصي مورد توجه قرار گرفته كه براي بيان اطلاعات حل مسئله مورد استفاده قرار مي گيرد. بحث مربوط به توجه به منطق به عنوان يك زبان يك نمونه از مواردي است كه به سطح نشانه پرداخته است.
علاوه بر سطح نشانه سطح دانش است كه توجه آن به مقدار و محتوي اطلاعات يك برنامه و شيوه استفاده از آن اطلاعات مي باشد.
اين نوع تمايز در ساختار و معماري سيستم هايي كه بر اساس دانش و اطلاعات و سبك توسعه اي كه آن را پشتيباني مي كتد منعكس مي گردد.
به دليل اينكه كاربرها برنامه ها را در قالب دانش و توانايي خودشان مي شناسند بنابراين حائز اهميت است كه برنامه هاي AI داراي يك سطح خصوصيات اطلاعاتي باشند.
جداسازي اصل دانش و اطلاعات از ساختار كنترل اين نظريه را آشكار مي سازد و توسعه رفتار سطح دانش را ساده مي سازد.
همانند اين نيز سطح نشانه اي يك زبان توصيفي را تشريح مي كند كه شبيه قوانين و روشهاي توليد يا منطق براساس دانش و اطلاعات مي باشد.
جداسازي آن از سطح و دانش و اطلاعات نه برنامه نويس اين اجازه را مي دهد كه به سمت خلاصه پردازي ت،ثير پذيري و راحتي برنامه نويسي سوق پيدا كندكه در ارتباط با رفتار و عملكرد بالاي برنامه نمي باشد.
كاربرد بيان سطح نشانه اي شامل يك سطح دوره پائين تر از ساختار برنامه مي شود و بيانگر يك سري ملاحظات طراحي اضافي مي شود.
اهميت نظريه چند مرحله اي نسبت به طراحي سيستم نمي تواند بيش از اين مورد توجه قراار گيرد.
يعني اينكه به برنامه نويس اجازه مي دهد كه با پيچيدگي نهفته شده در سطوح پائين تر خود را درگير نكند و توجه و تاكيدش بر روي منابع مناسب با سطح فعلي خلاصه پردازي كند.
همچنين موجب مي شود كه اصول تئوري هوش مصنوعي عاري از كاربردهاي خاص يا زبان برنامه نويسي باشد . اين همچنين به ما قدرت توصيف يك كاربرد را مي دهد و تاثير گذاري خود را بر روي ماشين ديگر اثبات مي كند بدون اينكه بر رفتارش در سطوح بالاتر تاثير بگذارد .
سطح اطلاعات توصيف كننده توانائي هاي يك سيستم هوشمند است. محتوي دانش و اطلاعات مستقل از شكل پذيري مورد استفاده براي بيان آن است به همان اندازه كه زبان بيان كاملا مؤثر مي باشد .
توجه به سطح دانش شامل سؤالاتي از اين قبيل است:
از اين سيستم چه چيزي ساخته خواهد شد؟ چه اشيا و چه ارتباطي در آن محدوده مؤثر و مفيد است ؟ چگونه يك اطلاعات جديد به سيستم اضافه مي گردد؟
آيا واقعيات در طي زمان تغيير مي كنند؟ چگونه و چطور سيستم نيازمند است كه دلائل اطلاعات خود را ثابت كند؟ آيا محدوده ارتباطي داراي يك طبقه بندي درست و شناخته شده است؟
آيا اين محدوده شامل يك سري اطلاعات نادرست و غير ممكن است؟
تجزيه و تحليل دقيق در اين سطح يك گام مبهم در طراحي كلي ساختار يك برنامه مي باشد.
در سطح نشانه تصميمات درباره ساختارها صورت مي گيرد كه براي بيان و ايجاد دانش مورد استفادده قرار مي گيرند. انتخاب يك زبان براي بيان يك مورد مربوط به سطح نشانه مي باشد.
منطق يكي از چندين نوع اشكال است كه اصولا در حال حاضر براي بيان دانش و اطلاعات در دسترس مي باشد.
زبان بيان نه تنها مي بايستي توانايي بيان اطلاعات مورد لزوم براي كاربر را داشته باشد بلكه مي بايستي خلاصه و قابل توصيف و داراي كاربرد مؤثر باشد و مي بايستي به برنامه نويس براي دستيابي و سازماندهي اصل و اساس اطلاعات كمك كند.
وقتي كه بين سطح اطلاعات و سطح نشانه يك برنامه تمايز به وجود آمد ما مي توانيم بين سطح نشانه و الگوريتم و ساختمان داده ها مورد استفاده براي كاربرد آن نيز تمايز قايل شويم. به عنوان مثال بدون تاثيرگذاري رفتار و عملكرد يك تحليل گر برنامه كه اساس منطقي داشته باشد مي بايستي تاثير ناپذير از انتخاب بين يك سري جزئيات و يك مجموعه و دسته بايزي باشد تا بتواند يك جدول مربوط به نشانه ها را به كار برد.
اين تصميمات كاربردي هستند و مي بايستي در سطح نشانه قابل رؤيت باشند . بسياري از الگوريتم و ساختمان داده ها در كاربرد بيان زبان AI به كار مي روند كه از روشهاي معمول علم كامپيوتر مي باشند مثل شاخه ها و جداول بايزي.
ديگر موارد در رابطه با AI بسيار تخصصي هستند و به گونه يك كه مستعار بيان مي شوند كه از طريق متن و بخش هاي مربوط به LISP و PROLOG بيان مي شوند .
در سطح پائين تر مربوط به الگوريتم و ساختمان داده ها ( سطح زبان ) واقع شده است در اين جا ست كه زبان كاربردي براي برنامه مشخص مي شود .
با اين حال سبك برنامه نويسي مطلوب احتياج به اين دارد كه ما يك خلاصه داده اي بسازيم كه بين خصوصيات ويژه يك زبان برنامه نويسي و لايه هاي بالاي آن قرار گيرد . نيازهاي منحصر به فرد برنامه نويسي سطح نشانه اي تأثير به روي طراحي و استفاده از زبانهاي برنامه نويسي AI ايجاد مي كند . علاوه بر اين طراحي زبان مي بايستي در برگيرنده و مطابق با ساختار آن كه بر گرفته از سطوح پائين تر ساختمان كامپيوتر كه شامل زبان اسمبلي و سيستم عامل و دستور العملهاي ماشين و سطوح سخت افزار ي باشد .
و محدوديت هاي فيزيكي كامپيوتر مي بايستي بر روي منابعي همچون حافظه و سرعت پردازشگر تأ كيد كند . روش هاي PROLOG , LISP در جهت مستعاذل كردن نيازهاي سطح نشانه و نيازهاي نهفته در ساختار هر دو منبع مورد استفاده مي باشند و هم چنين يك هدف هوشمند و ذهني با اهميت مي باشند . در دنباله ما از ساختارهاي سطح اطلاعات در محيطهاي برنامه نويسي بر روي يك زبان كاربردي صحبت خواهيم كرد و سپس به مصزفي زبانهاي عمده AI يعني PROLOG , LISP مي پردازيم .
خصوصيات مطلوب يك زبان AI
يكي از خصوصيات و ويژگيهاي مهم خلاصه سازي سلسله مراتبي در ساختار برنامه غير حساس بودن سطوح بالاتر نهفته در كاربرد زبان مي باشد .
اين مشاهده در عمل سنجيده مي شود كه همراه با سيستم هاي موفق دانش مدار مي باشد كه در زبانهاي برنامه نويسي مختلفي مثل Pascal , C , Ctt , Java , PROLOG , LISP و حتي Fortran به كار مي رود .
برنامه هاي مختلفي اصولاً در PROLOG , LISP و سپس در C به كار گرفته مي شوند تا بتواند تاثيرپذيري و انتقال پذيري بهتر ايجاد كنند. در هر دوي اين موارد رفتار و عملكرد در سطح نشانه به طور قطع بي اثر مي باشد.
با اين حال محدوديتهاي خلاصه سازي در يك برنامه جامع بيان مي شود كه كامل نمي باشد . ساختار سطح بالاتر باعث ايجاد ساختارهاي قوي بر روي لايه هاي زيرين مي شود و نياز به اين دارد كه برنامه نويسي AI بر روي سطح نشانه اي قرار گيرد كه در سطح زبان تكرار مي شوند.
به عنوان مثال ساختارهاي اطلاعاتي مورد لزوم براي ادغام سمبوليك خود را مقيد به اشكال تكراري مثل فلش ها و ليست ها نمي كنند.
اهداف و پيش بيني هاي منطقي ابزارهاي كاربردي طبيعي تر و انعطاف پذيرتر خواهند بود.
علاوه بر اين به دليل مشكلات موجود در بسياري از مسائل مربوط به AI اغلب توسعه را قبل از اينكه يك شناخت كامل از نهايت فرم برنامه داشته باشيم شروع مي كنيم.
توسعه AI لزوما در طبيعت به صورت كشف و تجزيه و آزمايش است.
اين نياز هم چنين وابسته به يك زبان و ابزارهايي است كه بايد فراهم ساخت . يك زبان نه تنها مي بايستي متناسب با كاربرد ساختارهاي سطح بالا باشد بلكه مي بايستي يك ابزار مناسب براي انتقال كل چرخه نرم افزار از آناليز و تجزيه و تحليل تا حصول برنامه باشد.
در پنــج زير گـــروه بعدي ما به صورت جزئي و كامل در مورد نيازهايي كه ساختارهاي سطح نشانه اي برنامه هاي AI كه بر روي كاربرد زبان دارند بحث مي كنيم.
اين موارد عبارتند از :
1. پشتيباني از محاسبه سمبوليك
2. انعطاف پذيري كنترل
3. پشتيباني از متدولوژي و روش هاي برنامه نويسي جستجويي
4. پويايي
5. مستنند سازي خوب و واضح
`پشتيباني از محاسبات سمبوليك
گرچه روش هاي زيادي براي سازماندهي اطلاعات در يك سطح نشانه وجود دارد . ولي تمامي آنها نهايتاً به عنوان عملكردهايي بر روي نشانه ها به كار مي روند .
اين روش در تئوري نشانه هاي آقاي Simon , Newell آمده است . تئوري هاي سيستم فيزيكي نشانه نياز اصلي براي زبان برنامه نويسي است كه كاربردهاي يك سري از عمليات سمبوليك را آسان مي كند .
حتي شبكه هاي عصبي و ديگر شكل هاي ضروري محاسبه مي بايستي شامل اطلاعات سمبوليك در وروديها و خروجي هايشان باشند . انواع كاربردها و اطلاعات دادهاي عددي تاكيد شان بر روي زبانهاي برنامه نويسي معمول است كه براي كاربردهاي جستجوي الگوريتمي يا بيان زبان AI مناسب نمي باشند.
علاوه بر اين يك زبان AI مي بايستي ساختار ايجاد نشانه هاي اوليه را ساده سازد و بر روي آنها كار كند. اين يكي از مهمترين نيازهاي يك زبان برنامه نويسي AI مي باشد.
محاسبات و پيش بيني يكي از قوي ترين و عمومي ترين ابزارهاي ايجاد ساختار كيفي يك محدوده از مسئله مي باشد.
خصوصيات بارز يك محدوده ممكن است به گونه يك سري واقعيات منطقي بيان شود. از طريق استفاده از متغيرها امكان ايجاد واقعيات كلي درابره ارتباط بين اهداف در يك محدوده به وجود مي آيد.
PROLOG يك زبان برنامه نويسي كلي است كه بر اساس پيش بيني محاسباتي است.
به عنوان يك كاربرد رسمي منطق PROLOG بعضي اوقات مستقيما به عنوان يك زبان در سطح نشانه مورد استفاده قرار مي گيرد.
با اين حال قدرت واقعي آن به عنوان يك زبان براي كاربرد دقيق تر و كامل همانند چهارچوب ها و شبكه ها در يك روش سيستماتيك و فشرده مي باشد بسياري از ساختارهاي سطح نشانه اي به سادگي با استفاده از ساختارهاي سطح بالاي PROLOG ساخته مي شوند.
PROLOG ممكن است براي كاربرد در جستجوي الگوريتم ها يك سيستم محافظ و يك شبكه سمانتيكي مورد استفاده قرار گيرد.
يك ابزار مهم ديگر براي ساخت ساختارهاي نشانه ليست مي باشد يك ليست شامل يك سري عناصر مي شود كه در آن هر عنصر ممكن است حتي يك ليست و يك نشانه باشد.
چند نمونه از ليست ها با استفاده از ساختار برنامه نويسي LISP عبارتند از :
(اين يك ليست است)
(اين هست) (يك ليست) (از ليست ها)
(زمانها (بعلاوه 13)(بعلاوه 23) )
((123)(456)(789))
توجه داشته باشيم كه اينها نمونه هايي مي باشند كه شامل ليستهاي درون ليست هاي ديگر مي شود اين موجب مي شود كه ارتباطات ساختاري ايجاد گردد. قدرت ليست ها عمدتا در نتيجه توانايي بيان هر نوع ساختار نشانه اي بدون در نظر گرفتن پيچيدگي يا عملكردهايي كه مي بايد از آن پشتيباني كند مي باشد.
اين شامل شاخه ها گراف هاي اوليه يك سري مشخصه هاي منطقي جهت ها اصول اطلاعاتي كليدي مي شود. به طور خلاصه هر نوع ساختار ممكن است بر اساس يك تركيب مناسب متشكل از ليست ها و عملكردهاي واقع شده بر روي آنها حاصل شوند.
ليست ها يك سري بلوك هاي مهم مي باشند كه PROLOG , LASP كه موجب مي شود كه كاربر را با عناصر اطلاعاتي و عملياتي براي دستيابي و تاكيد بر آنها در درون يك سري ساختارهاي پيچيده مهيا سازد. در حاليكه PROLOG مستقيما به محاسبات پيش بيني شده وابسته است و شامل يك سري ليست به عنوان ابزارهاي بيان مي شود.
LISP ليست را به عنوان اصول انواع داده ها و برنامه ها مورد استفاده قرار مي دهد. تمامي ساختارهاي LISP از ليست ها ساخته مي شوند و زبان فراهم كردن يك سري ابزارهاي قوي براي تركيب اينها (ساختارها) را به عهده دارد و توصيف كننده عمليات جديد براي ايجاد توسعه و تغيير آنها است. يك شكل كردن ساختار LISP و توانائي توسعه آن توصيف هر نوع زباني را براي ساختار آن ساده مي سازد . بوسيله پرداختن به نظريه جمع آوري اطلاعات فشرده برنامه نويس LISP مي تواند ساختارهاي نشانه را توصيف كند و عمليات مورد نياز هر نوع شكل گيري سطح بالا شامل كنترل كننده هاي جستجو حل كننده هاي تئوريهاي منطقي و ديگر اظهارات سطح بالا مي باشد.
انعطاف پذير بودن كنترل:
يكي از مشخصه هاي اساسي رفتار هوشمند قابليت انعطاف پذيري آن مي باشد . در حقيقت مشكل بتوان تصور كرد كه هوشمندي مي تواند از طريق توسعه گام به گام مراحل ثابت كه بوسيله برنامه هاي معمول كامپيوتري نشان داده مي شود حاصل شود. خوشبختانه اين تنها راه سازماندهي محاسبات نمي باشد.
يكي از مهمترين و در عين حال قديمي ترين نمونه هاي مربوط به ساخت يك برنامه AI سيستم توليد مي باشد.
در سيستم توليدي برنامه شامل يك سري قوانين مي شود. در منطق اطلاعات اين قوانين به گونه اي تنظيم مي شود كه بوسيله الگوي اطلاعات در يك نوع مسئله داده شده قابل تشخيص باشد.
قوانين توليد مي تواند به هر گونه كه پاسخگوي آ“ موقعيت خاص باشد برنامه ريزي شود. بدين طريق يك سيستم تولسد مي تواند ايجاد كننده انعطاف پذيري و ارتباط لازم براي رفتار هوشمند باشد.
بنــــابراين AI از يك تعداد متفاوتي ساختارهاي كنترلي استفاده مي كند كه بسياري از انها مرتبط با سيستم هاي توليد مي باشند و همه آنها تابع الگو مي باشند . كنترل الگويي موجب مي شود كه اطلاعات با توجه به نياز به خصوصيات يك نوع مسئله خاص به كار گرفته شود. الگوي الگوريتم هاي انطباقي مثل به صورت واحد در آوردن باعث مي شود كه بتواند تشخيص دهد كه چه موقع خصوصيات يك مسئله منطبق با يك برنامه اطلاعاتي است كه بر اين اساس اطلاعات لازم براي كاربرد در مسئله را انتخاب مي كند.
بنابراين حائز اهميت مي باشد كه يك زبان AI بتواند آن را مستقيما ايجاد كند و يا توسعه الگوي كنترل را ساده سازد.
در PROLOG يكي كردن و جستجوي الگوريتم ها در درون خود زمان ساخته مي شوند و قلب و اساس PROLOG را تشكيل مي دهند .
با استفاده از اين يكي كردن الگوريتم ها به سادگي مي توان هر نوع الگوي ساختاري كنترلي را ايجاد كرد .
LISP مستقيماً الگوي انطبقي ايجاد نمي كند اما محاسبات سمبوليك آن موجب گسترش ساده مربوط به زبان ساده ساختار الگوي منطق شونده و توصيف كننده اوليه ساختار مي شود.
يكي از مزاياي اين نظريه اين است كه الگوي تطبيق و كنترل ساختارهاي همراه با آن ممكن است به سادگي براي تطبيق با نيازهاي يك مسئله بخصوص خود را منطبق سازد.
اغلــــب نظـــريات فعلي در ارتباط با هوش مصنوعي همانند شبكه هاي عصبي عوامل تنظيم كننده و ديگر فرم هاي محاسبات ضروري ممكن است اجتناب از عمليات بر روي ساختارهاي سمبوليك باشد.
ولي آنها نياز به يك كنترل انعطاف پذير را نفي نمي كنند. شبكه هاي عصبي مي بايستي توانايي حركتي شكل گيري خودشان را داشته باشند . عوامل متكي به پيام هستند كه از بين ماحوبهاي مختلف مي گذرد.
الگوريتم هاي ژنتيكي نياز به ايجاد واحد هاي شمارش به عنوان جمعيت كانديد شده حل مسئله دارند. توانايي زبان هاي AI براي ايجاد مشخصه تركيب ساده طبقه بندي اتوماتيك حافظه امكان اطلاع رساني ساده ايجاد متغيرها و روش هاي پويا و شكل هاي قوي ايجاد برنامه مثل يك برنامه شيء گرا موجب خواهد شد كه آنها را به سمت استفاده گسترده در كاربرد اين ابزارهاي جديدتر AI سوق دهد.
پشتيباني از روش هاي برنامه نويسي جستجويي.
مسائلي كه AI به آن مرتبط مي باشد هميشه پاسخگوي يك چنين نظريه هاي مهندسي نرم افزار استاندارد كه شامل طراحي كامل و پردازش موفقيت آميز و توسعه برنامه از خصوصيات و ويژگيهاي دقيق است نمي تواند باشد. به دليل طبيعت و ذات و نوع بخصوص AI به ندرت اين احتمال به وجود مي آيد كه بتوان ويژگيهاي درست و كاملي از شكل نهايي يك برنامه AI قبل از ساخت حداقل يك proto type بدست آورد. اغلب موارد شناخت مسئله برنامه مربوط مي شود به حل موارد درگير مسئله از طريق توسعه برنامه . دلايل آن عبارت است از :
1 – بيشتر مسائل AI اصولا مشخصه هاي ضعيفي دارند.
به دليل اينكه پيچيدگي زيادي براي پشتيباني از سطح اطلاعات لازم مي باشد به ندرت احتمال مشاهده يك مسئله و تشخيص كامل بودن نظريه دقيق كه بايد در جايگاه خودش باشد وجود دارد.
بهترين ساختارهاي سطح نشانه اي كه در يك مسئله مورد استفاده قرار گيرند به ندرت در مشخصه هاي سطح دانش قرار مي گيرند. اين نوع پيچيدگي و نامفهومي خود را به روش هاي معمول مربوط به نرم افزارهاي مهندسي مرتبط نمي دانند چون كه در اين نوع برنامه ها لازمه اش اين است كه مشخصه هاي مربوط به توسعه به خصوص مسئله قبل از اينكه مرحله كدبندي آغاز شود شكل مي گيرد.
يك عملكرد منطقي خود ذاتا براي مشخصه ها و خصوصيات معمولش بسيار مشكل تر از عملكرد نوعي طبقه بندي ليست يا ايجاد يك فايل سيستم است . حقيقتا اين به چه معني است؟
به عنوان مثال براي طراحي يك مدار يا بهبود يك بيماري اين به چه معني است؟ چگونه يك انسان ماهر و متخصص اين عمليات ها را شكل مي دهد؟ سطح رضايت بخش ايجاد يك محدوده مسئله داده شده چه چيزي است؟ چه نوع دانش و اطلاعاتي لازم مي باشد؟ چه مشكلاتي ممكن است به دلايل نبود و يا غير واقعي بودن اطلاعات پيش بيايد؟ به دليل جوابهاي به اين قبيل سؤالات و ديگر سؤالات كه در يك دوره كلي مطرح مي شود و بسيار تخصصي مي باشند و هر وقت اين طور باشد ساختار آن نيز عميق تر و پيچيده تر مي شود به همين نسبت حل آن نيز به دقت بيشتري نياز دارد.
2 – نظرياتي كه براي حل مسائل به آن پراخته مي شود در محدوده بخصوصي قرار مي گيرند.
گر چه چهار چوب هاي كلي براي حل مسائل AI وجود دارد به عنوان مثال سيستم توليد جستجو در زبان دامنه و محدوده هر مسئله نيازمند روش هاي خاص خود مي باشد.
بنابراين راه حل موفقيت آميز مسئله به ندرت به طور كامل براي محدوديتهاي جديد عموميت و كاربرد دارد هر كاربرد تا حدودي يك نوع مسئله جديد مي باشد .
3- ساختارها و اشكال بيان AIبه طور پيوسته بايد توسعه و تجديد شود
توسعه AI يك پروسه تحقيقي مداوم است . توسعه سيستم هاي AI كاربردي در بسياري از روشها بسط و توسعة اين پروسه ها مي باشند . گرچه تجربه عمدتاً به كاربرد زبان كمك مي كند ولي عموماً هيچ جايگزيني براي كاربرد يك ايده و اينكه چگونه عمل مي كند وجود ندارد .
به همين دليل AI اصولاً به صورت جستجوي است . برنامه اغلب به صورت ماشيني است كه از طريق آن ما مي توانيم دامن مسئله را كشف كنيم و روش هاي حل مسئله را كشف كنيم در حقيقت ابزاري است كه با آن به شناخت مسئله نائل مي شويم .
|