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

خلاصه ای دربارة LISP و PROLOG

به وسیله برآورده کردن نیازهای گفته شده، LISP و PROLOG هر دو دارای زبانهای برنامه نویسی غنی و کاملی هستند وقتی که این زبانها را فرا می گیریم، دانشجو در ذهن و فکر دربارة روشهایی که آنها به وسیله ویژگیهای خاص هر زبان پشتیبانی می کنند، نیازها را نگه داری می کنند.

 

PROLOG

PROLOG یکی از بهترین نمونه و مثال یک زبان برنامه نویسی منطقی است. یک برنامه منطقی دارای یک سری ویژگیهای قانون و منطق است . PROLOG از محاسبة اولیه استفاده می کند. در حقیقت خود این نام از برنامه نویسی PRO در LOGIC می آید یک مفسر برنامه را بر اساس یک منطق می نویسد. ایده استفاده توصیفی محاسبه اولیه برای بیان خصوصیات حل مسئله یکی از محوریت های مشارکتPROLOG می باشد که برای علم کامپیوتر به طور کلی و به طور اخص برای زبان برنامه نویسی هوشمند مورد استفاده قرار می گیرند. نفع اسفتاده از محاسبه اولیه برای برنامه نویسی شامل یک ساختار ظریف و ساده و قابل معنی می شود.

به دلیل همین خصوصیات است که PROLOG به عنوان یک محرک اصلی و مفید برای تحقیقاتی مثل موارد برنامه نویسی آزمایشی به عنوان یک کد، متغیر کردن برنامه و طراحی ویـــژگیهـای زبان سطح بالا، مطرح است. PROLOG و دیگر زبانهای منطقی یک سبک برنامه نویسی مشخصی را دنبال می کنند که در آنها برنامه ها به صورت دستورات پشت سرهم و متوالی برای ایجاد یک الگوریتم، نوشته می شوند. این نوع برنامه اصولاً به کامپیوتر می گوید که «چه چیزی درست است» و «چه چیزی باید صورت گیرد» و این به برنامه نویس اجازه می دهد که بر روی حل مسئله به صورت یک سری خصوصیات از یک محدوده تأکید کند تا اینکه بخواهد به جزئیات نوشتاری سطح پائین ساختارهای الگوریتمی برای بعد بپردازد.

اولین برنامه PROLOG در مارسی فرانسه در اوایل 1970 به عنوان بخشی از زبان معمول یک پروژه نوشته شد. تئوری نهفته در پشت این زبان در کارهای کوالسکی،‌هیز و دیگران آورده شده است. عمدة  توسعة PROLOG بین سالهای 1975 تا 1979 در بخش هوش مصنوعی دانشگاه ادینبورگ صورت گرفت.

در آنجا یک گروه مسئولیت کاربرد اولین PROLOG را به عهده داشتند که آقای David H.D مسئول آن بود. این گروه اولین  PROLOG را ساخت که می توانست محاسبات کلی را انجام دهد. این محصول بر اساس سیستم DEC-10 ساخته شده بود و می توانست در مدهای توصیفی و مقایسه ای کارآئی داشته باشد.

مزیت این زبان به وسیله پروژه هایی که برای ارزیابی و گسترش قدرت بیان برنامه های منطقی نوشته شده اند،‌ اثبات شده است.

بحث دربارة یک چنین کاربردهایی می تواند در سمینار و گردهمائی های مربوط به زبان برنامه نویسی هوش مصنوعی در سطح بین المللی مطرح شود.

 

LISP

LISP اولین بار به وسیله JACK MCCARTHY در اواخر دهه 1950 مطرح شد این زبان به عنوان یک مدل پیوسته محاسباتی بر اساس تئوری عملکرد مجدد،‌معرفی شد.

در مقالات اولیة مک کارتی (1960) اهداف خود را مشخص می کند: ایجاد یک زبان سمبولیک تا یک زبان محاسباتی. ایجاد زبانی که بتوان از آ‌ن به عنوان یک مدل محاسباتی بر اساس تئوری عملکرد مجدد استفاده کرد و از آن بتوان برای تعریف دقیق یک ساختار و تعریف زبانی استفاده کرد.

گر چه LISP یکی از قدیمی ترین زبانهای محاسباتی است که هنوز فعال است، ولی دقت کافی در برنامه نویسی و طراحی توسعه باعث شده که این یک زبان برنامه نویسی فعال باقی بما ند.

در حقیقت این مدل برنامه نویسی طوری مؤثر بوده است، که تعدادی از دیگر زبانها بر اساس عملکرد برنامه نویسی آن واقع شده اند مثل FP ، ML و SCHEME .

این لیست اساس برنامه ها و ساختارهای اطلاعاتی در LISP است، LISP خلاصه شده نام پروسه LIS است. این برنامه یک سری لیست های عملکردی درون ساختاری دارد.

 

LISP به برنامه نویس قدرت کامل برای اتصال به ساختارهای اطلاعاتی را می دهد.

اصولاً LISP یک زبان کامل است که دارای عملکردها ولیست های لازمه برای توصیف عملکردهای جدید، تشخیص تناسب و ارزیابی معانی می باشد.

تنها هدف کنترل برنامه بازگشت و شرایط منحصر به فرد است. عملکردهای کامل تر هنگامی که لا زم باشد در قالب این اصول تعریف می شوند. در طی زمان بهترین عملکردها به عنوان بخشی از زبان می شوند. پروسه توسعة زبان به وسیلة اضافه کردن عملکردهای جدید موجب توسعه محورهای زیادی از LISP می شوند که اغلب شامل صدها عملکرد بخصوص برای ایجاد اطلاعات کنترل برنامه، خروجی و ورودی، Edit کردن عملکردهای LISP می شوند.

این ارتباطات محرکه ای هستند که به وسیله LISP از یک مدل ساده و ظریف به یک مدل قوی و غنی و عملکردی برای ساخت سیستم های نرم افزاری بزرگ، تبدیل می شود.

یکی ازمهم ترین برنامه های مرتبط با LISP برنامه SCHEME می باشد که یک تفکر دوباره دربارة زبان در آن وجود دارد که به وسیله توسعه AI وبرای آموزش اصول مفاهیم علم کامپیوتر مورد استفاده قرار می گیرند.

 

7.   برنامه نویسی شیء گرا

برخلاف برنامه 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 استفاده می شوند.

 

نظرات 1 + ارسال نظر
حیدری یکشنبه 3 تیر‌ماه سال 1386 ساعت 03:06 ق.ظ

با سلام
من مطالبی که نوشتی را خواندم و یک کمکی در انجام پروژه ی هوش مصنوعی با زبان پرولوگ را از شما می خواهم. اگر موافقید برای من ایمل بزنید و تا روز سه شنبه بیشتر فرصت ندارم .

با تشکر
حیدری

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد