تبلیغات
...::: پایگاه اطلاعات رسانی ICT :::... - تكنیك ها وزبانهای برنامه نویسی هوش مصنوعی 1
...::: پایگاه اطلاعات رسانی ICT :::...
...::: پایگاه اطلاعات رسانی ICT :::...

.:: خوش آمدید تنها خواهشی که دارم اینه حتمأ نظر بدین تا در پیشرفت وبلاگ بمن کمک کرده باشید با تشکر مدیر وبلاگ:سجاد بابازاده ::.

بازدید : مرتبه
تاریخ : پنجشنبه 5 اسفند 1389

ما در عصری زندگی می كنیم كه جامعه شناسان آن را عصر انقلاب كامپیوتر نام نهاده اند و مانند هر انقلاب واقعی دیگر، انقلابی است گسترده و فراگیر و تأثیر پایداری برجامعه خواهد داشت.

این انقلاب در اقتصاد امروز و نظم جامعه، به همان میزان  انقلاب صنعتی در قرن 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   اصولاً به صورت جستجوی است . برنامه اغلب به صورت ماشینی است كه از طریق آن ما می توانیم دامن مسئله را كشف كنیم و روش های حل مسئله را كشف كنیم در حقیقت ابزاری است كه با آن به شناخت مسئله نائل می شویم .

ادامه دارد.................



طبقه بندی: علمی،  مقاله،  تخصصی...، 
برچسب ها: تكنیك ها وزبانهای برنامه نویسی هوش مصنوعی،
ارسال توسط سجاد بابازاده
ارتباط مستقیم با مدیر
نمایش آب و هوا
آپلود فایل
آرشیو مطالب
نظر سنجی
وبلاگ رو در چه سطحی میبینید؟





پیوند های روزانه
لینکهای داغ اینترنت