X
تبلیغات
رایتل
سه‌شنبه 3 آبان‌ماه سال 1390

پدر هوش مصنوعی درگذشت

پدر هوش مصنوعی که در سال 1956 موضوعی به این نام را برای اولین بار در یکی از مقاله هایش مطرح کرده و زبان برنامه نویسی Lisp را ابداع کرده است، در سن 84 سالگی درگذشت.

به گزارش «مهر» زمانی که ابررایانه "دیپ بلو" در ماه می 1997 موفق شد قهرمان شطرنج جهان گری کاسپاروف را شکست دهد، این پیروزی به عنوان موفقیتی بزرگ برای هوش مصنوعی توصیف شد، اما جان مک کارتی، مردی که این اصطلاح را برای اولین بار خلق کرد و در توسعه هوش مصنوعی پیشگام شد، نظری متفاوت داشت، به اعتقاد او هوش مصونعی هنوز راه طولانی را در پیش داشت.



وی در سال 1956 نه تنها عبارتی جدید را به واژه نامه عمومی افزود، بلکه بنیانگذار عصری کاملا جدید از تحقیقات در زمینه علوم رایانه ای شد. وی در سالهای بعدی موفق به ابداع زبان Lisp، یکی از تاثیرگذارترین زبانهای برنامه نویسی رایانه ای در جهان شد و در توسعه سیستمهای اشتراک گذاری زمان نقشی کلیدی ایفا کرد، سیستمی که بدون آن اینترنت مدرن به وجود نمی آمد.

مک کارتی که برای چهار دهه در دانشگاه استنفورد مشغول به کار و مطالعه بود، در سل 1962 لابراتوار هوش مصنوعی استنفورد را پایه گذاری کرد. او در سال 2003 به شرکت گوگل پیوست تا در ساخت خودروهای خودکار این شرکت مشارکت داشته باشد.

بر اساس گزارش وایرد، بسیاری از متخصصان مک کارتی را اولین فردی می دانند که چاشنی محاسبات رایانه ای را به زبان ساده برنامه نویسی افزود و با این کار و ابداع زبان برنامه نویسی Lisp تاثیر بزرگی بر روی زندگی انسانها گذاشت.

سه‌شنبه 20 اسفند‌ماه سال 1387

سیستمهای خبره در کتابخانه و محیط اطلاعاتی

نویسنده (گان) : ملیحه بیگی  

چکیده :

این مقاله به بررسی اجمالی سیستمهای خبره در کتابخانه و محیط اطلاع رسانی می پردازد. در ابتدا ماهیت سیستمهای خبره را بررسی کرده و سپس ضمن بحث در مورد کاربردهای سیستمهای خبره در کتابخانه سیر تاریخی آن را نیز بیان می کند.

سه‌شنبه 20 اسفند‌ماه سال 1387

سیستم های خبره(متخصص)

هوش مصنوعی:

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

مغز انسان به بخش هایی تقسیم شده است که هر بخش وظیفه خاص خود را جدا از بقیه انجام می دهد. اختلال در کار یک بخش تاثیری در دیگر قسمت های مغز نخواهد گذاشت. در برنامه های هوش مصنوعی نیز این مسئله رعایت      می شود درحالی که در برنامه های غیر هوش مصنوعی مثل C یا Pascal تغییر در برنامه روی سایر قسمت های برنامه و اطلاعات تاثیر دارد.

مباحث کاربردی و مهم در تحقق یک سیستم هوش مصنوعی :

1-     سیستم های خبره(Expert Systems)

2-     شبکه های عصبی(Neural Network)

3-     الگوریتم های ژنتیک(Genetic Algorithms)

4-     سیستم های منطق فازی(Fuzzy Logic Systems)

چهارشنبه 27 شهریور‌ماه سال 1387

هوش مصنوعی

زیر بنای هوش مصنوعی:
در این فصل و فصل بعدی‌‌، تاریخچه مختصری از AI را ذکر می‌کنیم. اگر چه AI زمینه تازه‌ای است ، اما بسیاری از ایده‌ها، نقطه نظرات و تکنیکها را از قوانین دیگر به ارث برده است. پس از گذشت 2000 سال از پیدایش فلسفه، تئوریهای بسیاری در رابطه با استدلال و یادگیری بوجود آمده‌اند؛ با این تصور که ذهن توسط عملیات یک سیستم فیزیکی جانشین می‌شود . پس از گذشت 400 سال از علم ریاضی، ما تئوریهایی رسمی در مورد منطق، احتمال، تصمیم‌گیری و محاسبه‌پذیری داریم. از طریق علم روانشناسی ابزاری داریم که می‌توانیم در مورد ذهن انسان تحقیق کنیم و یک زبان علمی داریم که قادر است تئوریهای نتیجه شده را بیان کند. از زبان‌شناسی، تئوریهایی در رابطه با ساختار و مفهوم زبان داریم. بالاخره، از علم کامپیوتر، ابزارهایی داریم که با آن می‌توانیم AI را به واقعیت تبدیل کنیم.
مشابه با هر تاریخی، AI نیز مجبور شده است تا بر روی تعداد محدودی از افراد و حوادث تمرکز کرده و از بقیه که شاید مهم هم بوده باشند، غافل بماند. می‌خواهیم با مرتب کردن حوادث داستان چگونگی پیدایش قسمتهای مختلف AI مدرن را بازگو کنیم. مطمئناً خواستار آن نیستیم که عقیده جدیدی را مطرح کنیم، اگر چه روشی که بر پایه آن مولفه‌ها تماماً در کنار هم کار خواهند کرد به سوی ماحصل نهایی خود یعنی AI مطرح می‌گردند.

شنبه 17 شهریور‌ماه سال 1386

گذری بر سیستم‌های خبره‌ (Expert Systems)

اشاره :
<استدلال> در میان اهل فن و صاحبان اندیشه تعاریف و تفاسیر متنوعی دارد. در نگاهی کلی، استفاده از دلیل و برهان برای رسیدن به یک نتیجه از فرضیاتی منطقی با استفاده از روش‌های معین، تعریفی از استدلال تلقی می‌شود؛ تعریفی که البته با دیدگاه‌های فلسفی و گاه ایده‌آل‌گرایانه از استدلال تفاوت دارد. با این حال موضوع مهم و اساسی در اینجا بحث در چیستی و چرایی این دیدگاه‌ها نیست، بلکه در مورد نحوه طراحی سیستم‌های با قدرت استدلال، با هر تعریفی، برای رسیدن به مجموعه‌ای از تصمیمات منطقی‌ ‌ با استفاده از مفروضات یا به طور دقیق‌تر دانشی است که در اختیار آن‌ها قرار می‌گیرد. سیستم‌هایی خبره (expert systems) اساسا برای چنین هدفی طراحی می‌شوند. در حقیقت به واسطه الگوبرداری این سیستم‌ها از نظام منطق و استدلال انسان و نیز یکسان بودن منابع دانش مورد استفاده آن‌ها، حاصل کار یک سیستم خبره می‌تواند تصمیماتی باشد که درحوزه‌ها و عرصه‌های مختلف قابل استفاده، مورد اطمینان و تاثیرگذار هستند. بسیاری بر این باورند که سیستم‌های خبره بیشترین پیشرفت را در هوش مصنوعی به وجود آورده‌اند. آن‌چه درادامه می‌خوانید نگاهی کوتاه به تعاریف و سازوکار سیستم‌های خبره و گذری بر مزایا و محدودیت‌های به کارگیری این سیستم‌ها در علوم و فنون مختلف است. طبیعتاً مباحث کاربردی‌تر و عملی‌تر درباره سیستم‌های خبره و بحث درباره نحوه توسعه و پیاده‌سازی آن‌ها، نیازمند مقالات جداگانه‌ای است که در آینده به آن‌ها خواهیم پرداخت.


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

یکی از اهداف هوش مصنوعی، فهم هوش انسانی با شبیه‌سازی آن توسط برنامه‌های کامپیوتری است. البته بدیهی است که "هوش‌"‌ را می‌توان به بسیاری از مهارت‌های مبتنی بر فهم، از جمله توانایی تصمیم‌گیری، یادگیری و فهم زبان تعمیم داد و از این‌رو واژه‌ای کلی محسوب می‌شود.

بیشتر دستاوردهای هوش مصنوعی در زمینه تصمیم‌گیری و حل مسئله بوده است که اصلی‌ترین موضوع سیستم‌های خبره را شامل می‌شوند. به آن نوع از برنامه‌های هوش مصنوعی که به سطحی از خبرگی می‌رسند که می‌توانند به جای یک متخصص در یک زمینه خاص تصمیم‌گیری کنند، expert systems یا سیستم‌های خبره گفته می‌شود. این سیستم‌ها برنامه‌هایی هستند که پایگاه دانش آن‌ها انباشته از اطلاعاتی است که انسان‌ها هنگام تصمیم‌گیری درباره یک موضوع خاص، براساس آن‌ها تصمیم می‌گیرند. روی این موضوع باید تأکید کرد که هیچ‌یک از سیستم‌های خبره‌ای که تا‌کنون طراحی و برنامه‌نویسی شده‌اند، همه‌منظوره نبوده‌اند و تنها در یک زمینه محدود قادر به شبیه‌سازی فرآیند تصمیم‌گیری انسان هستند.

به محدوده اطلاعاتی از الگوهای خبرگی انسان که به یک سیستم خبره منتقل می‌شود، task domain گفته می‌شود. این محدوده، سطح خبرگی یک  سیستم خبره را مشخص می‌کند و نشان می‌دهد ‌که آن سیستم خبره برای چه کارهایی طراحی شده است. سیستم خبره با این task ها یا وظایف می‌تواند کارهایی چون برنامه‌ریزی، زمانبندی، و طراحی را در یک حیطه تعریف شده انجام دهد.

به روند ساخت یک سیستم خبره، knowledge engineering یا مهندسی دانش گفته می‌شود. یک مهندس دانش باید اطمینان حاصل کند که سیستم خبره طراحی شده، تمام دانش مورد نیاز برای حل یک مسئله را دارد. طبیعتاً در غیراین‌صورت، تصمیم‌های سیستم خبره قابل اطمینان نخواهند بود.

ساختار یک سیستم خبره‌
هر سیستم خبره از دو بخش مجزا ساخته شده است: پایگاه دانش و موتور تصمیم‌گیری.
پایگاه دانش یک سیستم خبره از هر دو نوع دانش مبتنی بر حقایق ‌(factual) و نیز دانش غیرقطعی (heuristic)  استفاده می‌کند. Factual knowledge، دانش حقیقی یا قطعی نوعی از دانش است که می‌توان آن را در حیطه‌های مختلف به اشتراک گذاشت و تعمیم داد؛ چراکه درستی آن قطعی است.

در سوی دیگر، Heuristic knowledge قرار دارد که غیرقطعی‌تر و بیشتر مبتنی بر برداشت‌های شخصی است. هرچه حدس‌ها یا دانش هیورستیک یک سیستم خبره بهتر باشد، سطح خبرگی آن بیشتر خواهد بود و در شرایط ویژه، تصمیمات بهتری اتخاذ خواهد کرد.

دانش مبتنی بر ساختار Heuristic در سیستم‌های خبره اهمیت زیادی دارد این نوع دانش می‌تواند به تسریع فرآیند حل یک مسئله کمک کند.

البته یک مشکل عمده در ارتباط با به کارگیری دانشHeuristic آن است که نمی‌توان در حل همه مسائل از این نوع دانش استفاده کرد. به عنوان نمونه، نمودار (شکل 1) به خوبی نشان می‌دهد که جلوگیری از حمل سموم خطرناک از طریق خطوط هوایی با استفاده از روش Heuristic امکانپذیر نیست.
 

شکل 1

اطلاعات این بخش از سیستم خبره از طریق مصاحبه با افراد متخصص در این زمینه تامین می‌شود. مهندس دانش یا مصاحبه‌کننده، پس از سازمان‌دهی اطلاعات جمع‌آوری‌شده از متخصصان یا مصاحبه شوندگان، آ‌ن‌ها را به قوانین قابل فهم برای کامپیوتر به صورت (if-then) موسوم به قوانین ساخت (production rules) تبدیل می‌کند.

موتور تصمیم‌گیری سیستم خبره را قادر می‌کند با استفاده از قوانین پایگاه دانش، پروسه تصمیم‌گیری را انجام دهد. برای نمونه، اگر پایگاه دانش قوانینی به صورت  زیر داشته باشد:

دفتر ماهنامه شبکه در تهران قرار دارد.

تهران در ایران قرار دارد.

سیستم خبره می‌تواند به قانون زیر برسد:

‌ دفتر ماهنامه شبکه در ایران قرار دارد.

استفاده از  منطق فازی
موضوع مهم دیگر در ارتباط با سیستم‌های خبره، پیوند و ارتباط آن با دیگر شاخه‌های هوش مصنوعی است. به بیان روشن‌تر، برخی از سیستم‌های خبره از Fuzzy Logic یا منطق فازی استفاده می‌کنند. در منطق غیرفازی تنها دو ارزش درست (true) یا نادرست (false) وجود دارد. چنین منطقی نمی‌تواند چندان کامل باشد؛ چراکه فهم و پروسه تصمیم‌گیری انسان‌ها در بسیاری از موارد، کاملا قطعی نیست و بسته به زمان و مکان آن، تا حدودی درست یا تا حدودی نادرست است. در خلال سال‌های 1920 و 1930، Jan Lukasiewicz فیلسوف لهستانی منطقی را مطرح کرد که در آن ارزش یک قانون می‌تواند بیشتر از دو مقدار 0 و 1 یا درست و نادرست باشد. سپس پروفسور لطفی‌زاده نشان داد که منطق Lukasiewicz را می‌توان به صورت "درجه درستی" مطرح کرد. یعنی به جای این‌که بگوییم: "این منطق درست است یا نادرست؟" بگوییم: "این منطق چقدر درست یا چقدر نادرست است؟"

از منطق فازی در مواردی استفاده می‌شود که با مفاهیم مبهمی چون "سنگینی"، "سرما"، "ارتفاع" و از این قبیل مواجه شویم. این پرسش را در نظر بگیرید : "وزن یک شیء 500 کیلوگرم است، آیا این شیء سنگین است؟" چنین سوالی یک سوال مبهم محسوب می‌شود؛ چراکه این سوال مطرح می‌شود که "از چه نظر سنگین؟" اگر برای حمل توسط یک انسان بگوییم، بله سنگین است. اگر برای حمل توسط یک اتومبیل مطرح شود، کمی سنگین است، ولی اگر برای حمل توسط یک هواپیما مطرح شود سنگین نیست.

در اینجاست که با استفاده از منطق فازی می‌توان یک درجه درستی برای چنین پرسشی در نظر گرفت و بسته به شرایط گفت که این شیء کمی سنگین است. یعنی در چنین مواردی گفتن این‌که این شیء سنگین نیست
(false) یا سنگین است (true) پاسخ دقیقی نیست.

مزایا و محدودیت‌های سیستم‌های خبره
دستاورد سیستم‌های خبره را می‌توان صرفه‌جویی در هزینه‌ها و نیز تصمیم‌گیری‌های بهتر و دقیق‌تر و بسیاری موارد تخصصی‌تر دیگر عنوان کرد. استفاده از سیستم‌های خبره برای شرکت‌ها می‌تواند صرفه‌جویی به همراه داشته باشد.

در زمینه تصمیم‌گیری نیز گاهی می‌توان در شرایط پیچیده، با بهره‌گیری از چنین سیستم‌هایی تصمیم‌های بهتری اتخاذ کرد و جنبه‌های پیچیده‌ای را در مدت زمان بسیار کمی مورد بررسی قرار داد که تحلیل آنها به روزها زمان نیاز دارد.

از سوی دیگر، به‌کارگیری سیستم‌های خبره محدودیت‌های خاصی دارد. به عنوان نمونه، این سیستم‌ها نسبت به آنچه انجام می‌دهند، هیچ <حسی> ندارند.  چنین سیستم‌هایی نمی‌توانند خبرگی خود را به گستره‌های وسیع‌تری تعمیم دهند؛ چراکه تنها برای یک منظور خاص طراحی شده‌اند و پایگاه دانش آن‌ها از دانش متخصصان آن حوزه نشات گرفته و از این‌رو محدود است.

چنین سیستم‌هایی از آنجا که توسط دانش متخصصان تغذیه اطلاعاتی شده‌اند، در صورت بروز برخی موارد پیش‌بینی نشده، نمی‌توانند شرایط جدید را به درستی تجزیه و تحلیل نمایند.  

کاربرد سیستم‌های خبره‌
از سیستم‌های خبره در بسیاری از حیطه‌ها از جمله برنامه‌ریزی‌های تجاری، سیستم‌های امنیتی، اکتشافات نفت و معادن، مهندسی ژنتیک، طراحی و ساخت اتومبیل، طراحی لنز دوربین و زمانبندی برنامه پروازهای خطوط هوایی استفاده می‌شود. دو نمونه از کاربردهای این سیستم‌ها در ادامه توضیح داده‌شده‌اند.

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

تصمیم‌گیری‌های مالی‌
 صنعت خدمات مالی یکی از بزرگ‌ترین کاربران سیستم‌های خبره است. نرم‌افزارهای پیشنهاددهنده نوعی از سیستم‌های خبره هستند که به عنوان مشاور بانکداران عمل می‌کنند. برای نمونه، با بررسی شرایط یک شرکت متقاضی وام از یک بانک تعیین می‌کند که آیا پرداخت این وام به شرکت برای بانک مورد نظر صرفه اقتصادی دارد یا نه. همچنین شرکت‌های بیمه برای بررسی میزان خطرپذیری و هزینه‌های موارد مختلف، از این سیستم‌ها استفاده می‌کنند.

چند سیستم خبره مشهور
از نخستین سیستم‌های خبره می‌توان به Dendral اشاره کرد که در سال 1965 توسط Edward Feigenbaum وJoshun Lederberg پژوهشگران هوش مصنوعی در دانشگاه استنفورد ساخته شد.

وظیفه این برنامه کامپیوتری، تحلیل‌های شیمیایی بود. ماده مورد آزمایش می‌توانست ترکیبی پیچیده از کربن، هیدروژن و نیتروژن باشد. Dendarl می‌توانست با بررسی آرایش و اطلاعات مربوط به یک ماده، ساختار مولکولی آن را شبیه‌سازی کند. کارکرد این نرم‌افزار چنان خوب بود که می‌توانست با یک متخصص رقابت کند.

از دیگر سیستم‌های خبره مشهور می‌توان به MYCIN اشاره کرد که در سال 1972 در استنفورد طراحی شد. MYCIN برنامه‌ای بود که کار آن تشخیص عفونت‌های خونی با بررسی اطلاعات به دست آمده از شرایط جسمی بیمار و نیز نتیجه آزمایش‌های او بود.

برنامه به گونه‌ای طراحی شده بود که در صورت نیاز به اطلاعات بیشتر، با پرسش‌هایی آن‌ها را درخواست می‌کرد تا تصمیم‌گیری بهتری انجام دهد؛ پرسش‌هایی چون "آیا بیمار اخیرا دچار سوختگی شده است؟" (برای تشخیص این‌که آیا عفونت خونی از سوختگی نشات گرفته یا نه. MYCIN ( گاه می‌توانست نتایج آزمایش را نیز از پیش حدس بزند.

سیستم خبره دیگر در این زمینه Centaur بود که کار آن بررسی آزمایش‌های تنفسی و تشخیص بیماری‌های ریوی بود.

یکی از پیشروان توسعه و کاربرد سیستم‌های خبره، سازمان‌های فضایی هستند که برای مشاوره و نیز بررسی شرایط پیچیده و صرفه‌جویی در زمان و هزینه چنین تحلیل‌هایی به این سیستم‌ها روی آورده‌اند.

Marshall Space Flight Center) MSFC) یکی از مراکز وابسته به سازمان فضایی ناسا از سال 1994 در زمینه توسعه نرم‌افزارهای هوشمند کار می‌کند که هدف آن تخمین کمّ و کیف تجهیزات و لوازم مورد نیاز برای حمل به فضا است.

این برنامه‌های کامپیوتری با پیشنهاد راهکارهایی در این زمینه از بار کاری کارمندان بخش‌هایی چون ISS (ایستگاه فضایی بین المللی)  می‌کاهند و به گونه‌ای طراحی شده‌اند که مدیریت‌پذیرند و بسته به شرایط مختلف، قابل تعریف هستند.

مرکز فضایی MSFC، توسط فناوری ویژه خود موسوم به 2G به ایجاد برنامه‌های ویژه کنترل هوشمندانه و سیستم‌های مانیتورینگ خطایاب می‌پردازد. این فناوری را می‌توان هم در سیستم‌های لینوکسی و هم در سیستم‌های سرور مبتنی بر ویندوز مورد استفاده قرار داد.

آنچه در نهایت می‌توان گفت آن است که یکی از مزیت‌های سیستم‌های خبره این است که می‌توانند در کنار متخصصان انسانی مورد استفاده قرار بگیرند که ماحصل آن تصمیمی مبتنی بر تخصص انسانی و دقت ماشینی است. این فناوری از دید تجاری نیز برای توسعه‌دهندگان آن سودآور است.

هم‌اکنون شرکت‌های بسیاری به فروش سیستم‌های خبره و پشتیبانی از مشتریان محصولات خود می‌پردازند. درآمد یک شرکت کوچک فعال در زمینه فروش چنین محصولاتی می‌تواند سالانه بالغ بر پنج تا بیست میلیون دلار باشد. بازار فروش و پشتیبانی سیستم‌های خبره در سراسر جهان نیز سالانه به صدها میلیون دلار می‌رسد.

منبع:http://alisalar.blogsky.com/?Cat=7
چهارشنبه 14 شهریور‌ماه سال 1386

کاربرد سیستم های خبره کامپیوتری در کنترل فرایند نیروگاهها

چندین دهه است که تحقیقات هوش مصنوعی برای پدیدآوری کامپیوترهایی که بتوانند فکر کنند، آغاز گردیده است و در این میان انسان در جستجوی سیستمهایی مشابه انسانهای کارشناس می باشد. لذا بعنوان شاخه ای از رشته وسیع هوش مصنوعی، تصور سیستم خبره، تصور برنامه کامپیوتری بود که توانایی جایگزینی با فرد خبره در رشته علمی یا عملی خاصی، مثلاً در کنترل فرایندها در کار تصمیم گیری، را داشته باشد و توضیحاتی را برای افراد خبره یا غیرخبره ارائه دهد.

 کاربردهای پیچیده یا غیرکلاسیک در سیستمهای خبره مطرح می باشند و شامل کاربردهایی هستند که دربردارنده فعالیتها در دامنه های غیرکلاسیک می باشند. دامنه های غیرکلاسیک، دامنه های پویا و جدیدتری هستند که دو مبحث کاملاً متمایز "کنترل فرایند" (سیستمهای مربوط به ایمنی) ـ که در ادامه مورد بررسی قرار می گیرد ـ و "امور مالی"  به این دامنه  ها تعلق دارند. بهرحال از دید فنی در مقابل دامنه های کلاسیک، این دامنه ها آنهایی هستند که: هنگام تداوم استدلال، هدف استدلال ممکن است تغییر یابد، یا امکان دارد پاسخ در محدوده زمانی معینی مورد نیاز باشد، و توصیف کامل این سیستمها یا در دسترس نبوده (بویژه در امور مالی) و یاناقص وبسیار پیچیده باشد.

امروزه سیستمهای خبره در سیستمهای کنترل بکار می روند و مثلاً یک کارخانه فرایندی را کنترل می کنند. این کاربرد حتی برای نوع نظامی این سیستمها که گاهی موضوعی وحشت انگیز می باشد نیز موضوعی مورد درخواست می باشد. از اینرو، این نوع از برنامه ها برای بوجود آوردن نوعی مشارکت با گردانندگان کارخانه و متصدیان تعمیر پدید آمده اند تا آنها را در برشناختن کارخانه و کنترل بهتر کارخانه و در یافتن کاستی ها و تعمیر آنها توان نمایند. علت آن این است که کل طرح بمنظور دستیابی بهتر به اهداف مد نظر می باشد. وقتی پالایشگاهی برای کنترل درنظرگرفته شود و مثلاً انسان با 100,000 بشکه نفت در روز سروکار داشته باشد، او با پتانسیل انفجاری عظیمی  روبرو می باشد. اگر کسی که گرداننده چنین کاری است مرتکب اشتباهی شود آن زمان است که نتایج این اشتباه، انسان را کاملاً وحشت زده خواهد ساخت.

 

١.  سیستمهای خبره و تحلیل هشدار

وقتی در اینجا امکانات در نظر گرفته شود، مبحث سیستمهای خبره به مسیر دیگری در پیشرفت خود می رسد. پس از سالهای نخست دهه 1970، راه طولانی ای بسوی تحلیل آشفتگی و هشدار وجود داشت. درعمل در اواخر دهه 1960، پروژه بزرگی درباره نیروگاه هسته ای ویلفا موجود بود. این سیستم قادر به آزمودن الگوهای هشداری بود که از فرایند (در این نیروگاه هسته ای) منتج شده بودند و از این الگو، استنتاجاتی چند (راجع به آنچه که غلط عمل می کند و بویژه درباره آنچه که در ارتباط با این هشدارها بایستی بتوان انجام داد) را ایجاد نمود.

دلیل چنین رهیافتی آن بود که در بسیاری از این نیروگاههای بزرگ، تعداد هشدارهایی که در طول عملیات معمولی روزانه ممکن بود روی دهد در حد نهایت خود یا بیش از حدّی بود که گرداننده کارخانه می توانست با آن سر و کار داشته باشد. این مسئله، موضوعی بود که حتی برای آشفتگی های جزئی نیز وجود داشت و بمحض اینکه رویداد بسیار مهمی یا پیشامدی یا چیزی شبیه آن روی می داد، شمار هشدارها بسرعت افزایش یافته بطوریکه گردانندگان نمی توانستند به توانایی خود در دستکاری آنها امیدوار باشند. این امر، ایده کاربست کامپیوتر در کاهش تعداد هشدارها را پدید آورد. این فکر، واقعاً ایده بزرگی بود اما تنها در سالهای اخیر بود که این ایده، عملی شده و درست کار می کند. در اینجا برخی از علل مربوط به دشواریها موجود در ایجاد سیستمهای هشدار کامپیوتری توصیف می گردد ولی هنوز هم سیستمهای بسیاری از این گونه وجود دارند که ناموفق می شوند.

در یک نیروگاه هسته ای مثلاً شاید 2.000 هشدار وجود داشته باشد و در یک رویداد مهم، تعداد 1.000 تا از این هشدارها شروع به اعلام خطر می نمایند بنابراین حتی نمی توان انتظار داشت که گرداننده یا حتی گروههای گرداننده نیروگاه، در کل توانایی تفسیر این مسائل را داشته باشند. دسته اول مشکلات، آن است که کار تحلیل هر چیزی از این مجموعه فی نفسه مستعد خطای بسیاری می باشد.

مبحث تحلیل هشدار در طی دهه 1970 توسعه یافت و در جهت تحلیل آشفتگی ای تغییر جهت داد و در آن نه  تنها اطلاعات هشداری ای که بکار می روند وجود دارد بلکه اطلاعات مربوط به فرایند نیز وجود دارد. مشکلات پیچیدگی کار، محققین را متوجه ایده گریز از تحلیل منطقی هشدار نمود و در عوض متوجه ایده پشتیبانی از گرداننده کارخانه ساخت. در سراسر دهه 1970، توسعه این ایده را می توان در توانایی کمک به انسان و دادن رایزنی به آنهایی که یک کارخانه فرایندی را کنترل می کنند مشاهده نمود. ولی مسائل اساسی پیچیدگی اطلاعاتِ هشدار و برشناخت هنوز حل نشده بودند، اما مشکلات مربوط به اعتبار ابزارها وسیستمهای تحلیل سخت تر می شد.

پیشرفت تحلیل آشفتگی در اوایل سالهای 1980 با مفهوم سیستم خبره مقارن گردید. امروزه تکنولوژیی وجود دارد که در دسترس بوده و در جستجوی کاربرد می باشد، کاربردی بدنبال تکنولوژی. در واقع این وضعیت، موقعیتی ایده آل است، و گام بعدی چگونه باهم آوردن این دو و چگونگی بکار گرفتن این سیستم ها برای آن کاربردها می باشد.

 

سیستمهای خبره بعنوان سیستمهای کنترل

بعدها به سرعت آشکارگردید که عامل با لقوی در ساختن سیستمهای خبره، جهت کاربرد در کنترل فرایند، وجود دارد. کاربردهای بسیاری وجود دارند که به کنترل واقعی مربوط می شوند ولی آنها در حوزه هایی واقع می شوند که در آنها این کنترل بخوبی تحقق نمی یابد و یعنی مثلاً: برای دسته ای از موضوعات می باشد که در آنها هنوز کنترل دستی بکار برده می شود، و در جایی که انسان هنوز سوپاپ ها و درجه حرارت ها را با فرایندی مرموز، دقیقتر تنظیم می کند. در این مورد، مهندسین واقعاً نمی دانند که گردانندگان چگونه کارخانه را اداره می کنندو نمی توانند آن را توضیح دهند. و در اینجا هرگاه در جهت خودکار ساختن آن تلاش نمودند غالباً این کاربردها موفق نبودند.

در اواخر دهه 1970 و اوایل سالهای 1980، استفاده از کنترل مشکک ـ پیشرفتی که به سیستمهای خبره، بسیار مربوط می باشد ـ آغاز گردید. در آن زمان این تصور، در اتخاذ تجربه ای به شکل قواعد کنترل (که گردانندگان در حال استفاده از آنها بودند و بی درنگ آن را بکار می بردند) بود. مثلاً در دانمارک کاربرد بسیار مطلوبی از این نوع کنترل، آمیختن شن برای ریخته گری، وجود داشت. این کار فرایندی بسیار پیچیده می باشد زیرا خواص مواد خام ـ یعنی شن باز مصرفی، پلاستیک و موادچسبی ـ و خواص فیزیکی در پس آن، آنچنان پیچیده هستند که واقعاً شاید هیچ کس حتی نمی تواند انتظار توصیف تفصیلی آنها را داشته باشد. اما انسانهای کاردانی که این مواد را در طی سالیان بسیاری بکار برده اند می توانند مکشوفات برخی قواعد مفید را عملی نموده و چگونگی درست آمیزه سازی و چگونگی ساخت افزودنی های درستی را (بطوری که نتیجه مفیدی را بدست آورند) بیان می کنند. تفاوت بین شخصی کاردان، که با مواد ریخته گری سر و کار دارد، با کارگر غیرماهر آنچنان زیاد است که بدون مهارت واقعاً هیچ کاری را نمی توان انجام داد. اکنون بخوبی قابل درک است که چگونه آن دسته از موضوعات، می توانند سیستم خبره ای را تشکیل دهند.

 

سیستمهای خبره و برشناخت آشفتگی

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

بعلاوه می توان به کاربردهایی که مخاطراتی را دربرندارند اشاره نمود. پس از آنکه پیشامدی روی داد کاربرد دیگر سیستمهای خبره باید آن باشد که گرداننده را در حصول اداره دوباره کارخانه قادر سازد. رهیافت دیگر، استفاده از سیستمها در پیشگویی پیشامدها (مثلاً بهنگام طراحی نیروگاه برای اجتناب از پیشامدها) می باشد.

بهرحال هر چند مسائل و مشکلاتی راجع به کاربرد سیستمهای خبره در مقاصد ایمنی وجود دارند ولی با این حال بنظر می رسد که آنها می توانند فوائد مستقیمی را در جهت افزایش ایمنی و کاهش خطر فراهم سازند.

منبع: وستا

سه‌شنبه 15 خرداد‌ماه سال 1386

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

محیطهای هیبرید

نیاز به برنامه نویسی اطلاعاتی موجب توسعة تعدادی برنامه نویسی و تکنیک های زبان، شامل سیستم های تولید،‌قوانین و کلاس شیء‌گرا می شود.

یک سیستم هیبرید بیانگر نمونه های چند منظوره در قالب یک محیط برنامه نویسی خاص مــی باشد. گر چه محیطهای هیبرید متفاوت می باشد. ولی عموماً شامل خصوصیات ذیل می شوند.

 

 

 1-نمایش شیء گرا از محدوده اشیاء

یک چنین سیستم هایی ذاتاً ویژگیهای کلاس را پشتیبانی می کنند و اغلب شامل یک مکانیسم انتقال پیام برای عکس العمل هدف می باشند.

2-قوانین نمایش اطلاعات neuristic

گر چه چهارچوب اهداف به معنی توصیف طبقه بندی اهداف، می باشند. قوانین به عنوان عمدة نظر توصیف مسائل اطلاعاتی می باشند.

ساختار then …. if .. مناسب شیوة تخصص انسانی است که بیانگر پروسة تصمیم گیر است. قوانین دریافت اطلاعاتی از اهداف را دارند که با استفاده از یک زبان که مستقیماً در چارچوب یک هدف می خواند و می نویسد و یا به وسیلة استفاده از پیام که مستقیماً وارد هدف می شود صورت می پذیرد.

3-پشتیبانی از انواع روش های جستجو

بیشتر سیستم های پشتیبانی از جستجوی اولیه و انتهایی حمایت می کنند عموماً بیان یک هدف در قالب جستجویی ،‌تغییر به سمت عقب می باشد . علاوه بر این یک واقعیت تازه دربارة حافظه کارکرد ممکن است ایجاد علت های اولیه از قوانین کند که به وسیله این واقعیت جدید پشتیبانی می شوند.

4-توصیف دامنة کاربرد عملکرد متقابل و تأثیرات جانبی

یک demon فـــرآیندی اســـت که به وسیله عملکردهای جانبی بعضی از اعمال مشخص می شود. یک نمونه از استفاده demon کنترل در یک سیستم زمانی است که بیانگر دوره ای در مانیتور یک چاپگر و یا دیگر وسایل می باشد.

demon به وسیله یک زمان مشخص می شود. محیطهای AI این ایده را توسعه می دهند و باعث ایجاد demon می شوند که هنگامی که هدف تولید یا توصیف شود به کار می آیند.

چنین demonهایی برای به زمان نگه داشتن یک نشانگر در پاسخ به تغییر مقدار مورد استفاده قرار می گیرند. Demon های مهم و مطرح اصولاً دارای مقادیری متغیر می باشد که هنگامی که ارزش متغیر تغییر کند demon خوانده شده و وقتی که این اتفاق افتاد demon ایجاد و خلق می شود که این وقتی اتفاق می افتد که یک مقدار خلق شده باشد و ارزش ها در قالب گرافیکی فعال می شوند که این فعالیت می تواند متغیر باشد.

5-تداخلگرهای گرافیکی

اینها شامل یک طیفی از امکاناتی می باشند که اجازه تداوم و دنبال کردن موارد را می دهند. به عنوان مثال نشانگرهای گرافیکی می توانند ساختار قوانین یک اصل اطلاعاتی را به صورت یک درخت توصیف دهند. یکی از مهمترین خصوصیات محیطهای هیبرید،‌توانائی اتصال با استفاده از demon می باشد که به صورت یک نشانگر گرافیکی متصل به شیء و هدف می باشد. که این موجب عملکرد گرافیکی برای بیان زمان واقعی نشانگر می باشد که در حقیقت بیشتر محیط ها دارای یک پشتیبانی سطح بالای از داده های گرافیکی می باشند.

6-اجتناب از زبانهای زیرین

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

7-توانائی ترجمه اطلاعات جهت اجرای سریعتر یا تحویل روی یک ماشین کوچکتر

وقتی که برنامه شیء گرا کامل شد. یک محیط کامل و توسعه یافته اغلب ، بلندی است که به تدریج افول می کند و پائین می آید بیشتر محیط های مدرن AI اجازه کاربرد سریعتر و ساده تر را که اغلب کوچکتر و ارزانتر است را در یک ماشین ترجمه ایجاد می کنند.

8.   یک نمونه هیبرید

بسیاری از نمونه های مطلوب اصولاً از طریق اشیا، ارتباطات و کنش و واکنش متقابل بین آنها واقع می شود در شکل زیر یک نمونه اتصال به وسیله باطری همراه با یک سوئیچ برای یک لامپ (شکل 364) در نظر گرفته شده است.

لامپ، باطری و سوئیچ ممکن است هر کدام به وسیله کلاسها بیان شوند که بیانگر ویژگیهای باطری، سوئیچ و لامپ باشد . مشخصه های الکترونیکی شکل 2 ممکن است به عنـــوان موارد بخصوصی از این کلاس های کلی بیان می شوند. توجه داشته باشید که نمونه ها دارای مقادیر نمونه ای مربوط به کلاس خاص شیء مربوط به خود می شوند به عنوان مثال اگر سوئیچ 1 در حالت خاموش قرار گیرد. قسمت کنترل که مربوط می شود به لامپ 1 تحت تأثیر قرار خواهد گرفت که این موارد در شکل زیر نشان داده شده اند.

یک قانون ممکن است در اینجا به وجود بیاید که :

اگر نور وارد AND نشود، سوئیچ AND را بسته و باطری درست است بنابراین باید به قسمتی که ممکن است آسیب دیده باشد مراجعه کرد.

در نمایش هیبرید قوانین دارای ویژگیهایی هستند که بیشتر بیانگر مقدار اهمیت کلاسها و اشیاء می باشند.که در شکل 3 به آن اشاره شده است. این قانون ممکن است به عنوان بخشی از قانون اولیه سیستم در تلاش برای به جریان انداختن این مدار باشد که در جای دیگر برای راه اندازی سوئیچ کنترل برای حالات متغیر است.

9.   انتخاب زبان کاربردی

همانگونه که هوش مصنوعی به مرحله رشد می رسد وقابلیت های خود را در طیف وسیعی از مسائل کاربردی به اثبات می رساند اعتماد به LISP و PROLOG نیز مدنظر می باشد، ‌موارد مربوط به توسعة نرم افزاری، همانند نیاز به تداخلگرها به صورت ساده وآ‌سان همراه با یک کد منطقی تا استفاده از AI در Moduleهای کوچکتر و یا بزرگتر در برنامه ها و نیاز به ایجاد توسعه استاندارد متأثر از مشتریان دولتی و یا گروهی موجب توسعة سیستم های AI در انواع زبانهای مثل C ،  , C++ Java و Smalltalk شده است.

کــه زبــانهای LISP و PROLOG کار خود را در محدودة توسعه و Prototype سازی سیستم های  AI در صنعت و دانشگاهها دنبال می کنند.

یـــک اطلاعات و دانش کاربردی مربوط به این زبانها به عنوان بخشی از مهارت هر برنامه نویس AI می باشد. علاوه بر این، این زبانها به عنوان زمینه ای برای بسیاری از این خصوصیات می باشند که در ادامه همکاری با زبانهای برنامه نویسی جدید می باشند.

احتمالاً بهترین نمونه از این زبانها Java میباشد که متناسب با استفاده اولویت دینامیکی اش، دارای مدیریت حافظه اتوماتیک و دیگر خصوصیاتی است که در زبانهای که ترجمه شده وجود دارد به نظر می رسد که دیگر زبانهای برنامه نویسی برای رسیدن به حد مطلوب از استانداردهای این زبانها استفاده می کنند.

هم چنانکه این تکامل صورت می پذیرد و ادامه می یابد دانش مربوط به LISP و PROLOG یا Small talk و روش های برنامه نویس قادرند تنها از نظر مقدار توسعه یابند.

بنابراین، از اینکه از یکی از این زبانهای AI استفاده کنیم یا خود را در برنامه نویسی با زبانهای C++ و C و Java یا یکی از زبانهای رقیب پیدا کنیم راضی و قانع خواهیم بود.

 

منابع و مآخذ

کتاب Artificial intelligence structures & strategies for complex problem solving
سه‌شنبه 15 خرداد‌ماه سال 1386

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

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