X
تبلیغات
پیکوفایل
رایتل
سه‌شنبه 15 خرداد‌ماه سال 1386

تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی- قسمت چهارم

خصوصیات مطلوب یک زبان AI

یکی از خصوصیات و ویژگیهای مهم خلاصه سازی سلسله مراتبی در ساختار برنامه غیر حساس بودن سطوح بالاتر نهفته در کاربرد زبان می باشد .

این مشاهده در عمل سنجیده می شود که همراه با سیستم های موفق دانش مدار می باشد که در زبانهای برنامه نویسی مختلفی مثل Pascal ,  C , C++ , 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 , LISP که موجب می شود که کاربر را با عناصر اطلاعاتی و عملیاتی برای دستیابی و تاکید بر آنها در درون یک سری ساختارهای پیچیده مهیا سازد. در حالیکه PROLOG مستقیما به محاسبات پیش بینی شده وابسته است و شامل یک سری لیست به عنوان ابزارهای بیان می شود.

LISP لیست را به عنوان اصول انواع داده ها و برنامه ها مورد استفاده قرار می دهد. تمامی ساختارهای LISP از لیست ها ساخته می شوند و زبان فراهم کردن یک سری ابزارهای قوی برای ترکیب اینها (ساختارها) را به عهده دارد و توصیف کننده عملیات جدید برای ایجاد توسعه و تغییر آنها است. یک شکل کردن ساختار LISP   و توانائی توسعه آن توصیف هر نوع زبانی را برای ساختار آن ساده می سازد . بوسیله پرداختن به نظریه جمع آوری اطلاعات فشرده برنامه نویس LISP می تواند ساختارهای نشانه را توصیف کند و عملیات مورد نیاز هر نوع شکل گیری سطح بالا شامل کنترل کننده های جستجو حل کننده های تئوریهای منطقی و دیگر اظهارات سطح بالا می باشد.
نظرات (0)
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
نام :
پست الکترونیک :
وب/وبلاگ :
ایمیل شما بعد از ثبت نمایش داده نخواهد شد