انسان و ماشین: رویکرد جدید به هوش مصنوعی

چگونه می‌توان یک کامپیوتر را وا داشت مانند یک آدم فکر کند؟ پیشنهاد: آدم‌ها را به بخشی از برنامه‌کامپیوتری بدل کنید.

 یکی از عملی‌نشده‌ترین وعده‌های چشم‌انداز قرن بیستمی از آینده وعده هوش مصنوعی  (AI) بود. تصور بر این بود که AI به خلق کامپیوترهای منجر خواهد شد که نه تنها محاسبه و سازماندهی می‌کنند، بلکه به استدلال و تجزیه و تحلیل هم خواهند پرداخت؛ کامپیوترهایی که واقعا می‌تواننند فکر کنند، مانند HAL در "ادیسه 2001" (البته در طول فیلم معلوم می‌شود که روان‌پریشی آدمکش‌ است.)

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

اما در این ضمن یک نوع جایگزین برای سیستم کامپیوتری‌شده بوجود آمده، که واقعا گام‌های بلندی به سوی واداشتن کامپیوترها به فکرکردن مانند انسان‌ها برداشته است.
تیم اورایلی، ناشر، این شیوه را "تشدید هوش" (intelligence augmentation) یا IA       می‌نامد که در آن از تکنیکی بسیار زیرکانه استفاده می شود: کلاه گذاشتن.

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

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

در چند ماه گذشته شماری از نمونه‌هایی از این شیوه پیدار شده است:

• Mozes Mob یک سرویس رایگان مستقر در تلفن‌های همراه است که برای پاسخ دادن به پرسش‌ها طراحی شده است. برای دیدن چگونگی عمل آن، یک پیام متنی حاوی سوالی را که یک انسان به راحتی می‌تواند پاسخ دهد، اما یک کامپیوتر در فهمیدن آن دچار مشکل خواهد شد (مثلا "آیا هوا در شهر میامی بهتر است یا شهر بوفالو؟) به شماره تلفن 66937 بفرستید. در پشت صحنه پرسش شما برای گروهی از داوطلبان فرستاده می‌شود و پاسخ معمولا در کمتر از چند ثانیه به موبایل شما فرستاده خواهد شد.

• عنوان دهنده تصاویر گوگل (images.google.com/imagelabeler)  یک بازی اعتیادآور آنلاین است که از این حقیقت بهره می‌برد که برای انسان‌ها بسیار ساده است که موضوع یک تصویر را تشخیص دهند ("این یک توله سگ است!" "اینها دو هواپیما و یک پرنده هستند!") اما برای یک کامپیوتر این کار تقریبا غیرممکن است.

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

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

Amazon Mechanical Turk  سیستمی است که به افراد دارای قدرت انجام وظایف خاص امکان می‌دهد که با افرادی که مشتاق اجرای آن وظایف بر مینای یک قیمت توافق‌شده هستند، ارتباط برقرار کنند.
 اخیرا شخصی 1.53 دلار به هر کسی می‌داد که یک پادکست 9 دقیقه‌ای را نسخه‌برداری کند و شخصی دیگر برای دانستن عنوان یک قطعه موسیقی پنج سنت می‌پرداخت. این سرویس را می‌توان نوعی eBay برای خرید و فروش قدرت مغز شمرد.

تقویت هوش خصوصیات مشترک زیادی با آن چه اورایلی "ساختار مشارکت" (architecture of participation) می‌نامد، دارد: هزاران نفری که گردهم می‌آیند تا برای مثال ویکی‌پدیا را خلق کنند. اما IA یک گام بیشتر در این مسیر برمی‌دارد. در اینجا دانش انسان به شکلی که در ویکی‌پدیا می‌بینیم، در صورت ظاهر و محور کار قرار ندارد؛ دانش انسانی پشت ظاهر یک برنامه کامپیوتری به شکل خودکار در آمده است، یک چرخ‌دنده کوچک انسانی در ژرفای ماشین.

  • کریس اسپورجن نویسنده این مقاله مقیم لس‌آنجلس است و کارش طراحی و ساخت وب‌ است. او در وبلاگش spurgeonworld.com می‌نویسد و تکتولوژی‌های متروک را بررسی می‌کند.
  • همشهری آنلاین- ترجمه علی ملائکه

منطق فازی

داشتن علم بهتر از داشتن ثروت است ولی نداشتن ثروت بدتر از نداشتن علم است
منطق فازی 38 سال پیش توسط دکتر لطفی در آمریکا مطرح و در اوایل دهه 1990 به عنوان سمبل فرهنگی و فنی خاستگاه تاریخی شرق، مطرح گردید و هم اکنون بیشتر کارخانه ها و شرکت ها در دنیا با پیاده سازی سیستم های فازی بر روی دستگاه های خود توانستند بازارهای زیادی را از آن خود کنند. این نظریه آن چنا ن گسترش یافت که سالانه هزاران کتاب و مقاله در مورد سیستم های فازی نوشته می شود به طوری که در حال تغییر تفکر از سیستم باینری به سیستم های فازی هستیم. در تفکر باینری که بر اساس منطق صفر و یک است همه چیز به صورت سیاه و سفید می باشد و همه جواب ها به صورت مطلق پاسخ داده می شود. این تفکر که از زمان ارسطو پابر جاست هم اکنون با تزلزل شدیدی مواجه گشته است . در زیر ، مثال های مختلفی آورده شده است که نشان دهنده فروپاشی تفکر باینری است. یک کارت بردارید و روی یک طرف کارت بنویسید جمله ی طرف دیگردرست است و روی طرف دیگر بنویسید جمله ی طرف دیگر نادرست است .
اگر جمله ی روی کارت درست باشد جمله ی پشت کارت هم درست است پس باید طبق جمله پشت کارت جمله ی روی کارت نادرست باشد ولی مشاهده می شود که این جمله درست است. در مثال معروف منطق دان بزرگ قرن بیستم برتراند راسل آمده است مرد سبیلو که مغازه سلمانی دارد بر روی مغازه خود شعاری بدین مضمون نصب کرده است :" من صورت همه را می تراشم به جز مردانی که خود صورتشان را می تراشند " بنابراین اگر این جمله درست باشد چه کسی صورت خود آن سلمان را می تراشد و اگر او صورت خودش را می تراشد بر اساس آن چه پشت در مغازه نوشته شده است نمی تواند این کار را بکند. در نظر بگیرید که روی سپر ماشینی برچسب" به من اعتماد نکنید "زده شده باشد حالا باید چه کار کرد، آیا می توانیم به راننده اعتماد کنیم در این حالت هم باید اعتماد بکنیم هم نکنیم که این حالت مخالف تفکر ارسطویی و باینری است. در تفکر فازی ، مجاز به بیان کلماتی از قبیل کاملا درست، کم وبیش درست و تقریبا غیر ممکن ، نه چندان و به ندرت می باشیم ولی در تفکر باینری جواب یا درست است یا غلط . در کامپیوتر ها که براساس منطق باینری است به همه سوال ها به صورت کاملا مطلق جواب داده می شود و وقتی از کامپیوتر سوال می کنید هیچ گاه جواب ممکن است ، شاید و تقریبا ندارد در حالی که بسیاری از مسایل به صورت نسبی بوده و نمی توان برای آن جواب باینری پیدا کرد. به طور مثال روزی دروغگویی از کرت گفت که همه کرتی ها دروغگو هستند در این مثال آن شخص طبق گفته ی او هم می تواند راستگو باشد و هم دروغگو ، یک شخص نمی تواند هم خوب باشد هم بد ، مشتریان یک شرکت نمی توانند از یک شرکت هم راضی باشند وهم ناراضی . بنابراین بسیاری از پدیده ها در تفکر باینری حذف می شوند . چند وقت پیش پس از قضیه ی 11 سپتامبر جورج بوش رییس جمهور آمریکا سخنرانی انجام داد. این سخنرانی براساس تفکر باینری بیان گردید که با مخالفت بسیاری از کشورهای دنیا مواجه گشت ،او در تقسیم بندی کشورها بر اساس تروریسم گفته بود یا کشورهای جهان با ما هستند یا بر ضد ما و در این تقسیم بندی کشورهایی که نه حامی آمریکا بودند و نه حامی تروریسم جایی نداشتند . ولی در تفکر فازی برخلاف باینری چیزهای فازی شبیه غیر چیزهای فازی هستند و مرزهای در هم و نامشخصی با متضاد خود دارند و هر چه یک چیز بیشتر شبیه متضاد خودش باشد فازی تر است به طوری که در سمبل قدیمی تائوئیست ها آمده است.
سمبل ین – یانگ در حقیقت سمبل تفکر فازی است این سمبل معرف جهانی از متضاد هاست ، جهانی که با عرفان شرقی همراه است. این سمبل زینت بخش پرچم کره جنوبی نیز است . در سال 1937 ماکس بلک مقاله ای راجع به آنالیز منطق به نام ابهام در مجله ی علم منتشر کرد که در این مقاله مجموعه های فازی با نمودار بلک مشخص شده است .
در نمودار بلک Aو نقیضAدر نقطه ی X2 همدیگر را قطع می کنند در این نقطه A و نقیضش باهم برابرند و بیشترین ابهام و یا بیشترین فازی بودن در این نقطه است. مثلا مطلب گرایی یا مدرک گرایی در کشورمان یک نقطه ی ابهام است و ما نمی دانیم که دانشجویان دنبال مطلب هستند یا دنبال مدرک و یا در جهانی شدن یا جهانی سازی نمی دانیم که کشورها به سمت جهانی شدن پیش میروند و یا بعضی از کشورها مانند آمریکا با در دست داشتن ، کشورهای دنیا را به سمت جهانی سازی پیش می برند. بنابراین فرآیند جهانی شدن یا جهانی سازی یک فرآیند فازی است.
در نقطه ی x=0 و نقیضش A دورترین فاصله را دارند این نقطه همان تفکر باینری است یعنی مثلا (مذکر – مونث) و وقتی از یک جمعی بپرسند چند نفر این جمع مونث و چند نفر مذکر هستند دقیقا مرزها مشخص است. حال هر چه از نقطه ی X1به سمت نقطه ی X2 پیش برویم فازی بودن بیشتر می گردد. در زمان یونانیان ، زنو دانه ای شن را از روی تپه ای برداشت و سپس به شاگردانش گفت که حال آیا این همان تپه است شاگردانش گفتند بلی سپس گفت که حال این شن ها را این قدر از روی تپه بردارید که دیگر اسم این تپه ناتپه شود در حقیقت زنو می خواست از نقطه ی X1 به X2 برسد و مجموعه ی تفکر فازی را به شاگردان خود بیاموزد . حال نمودارهایی را در نظریه مجموعه ها به یاد آورید که در دوران دبیرستان آموزش داده می شود.
در این نمودار که ناشی از تفکر باینری می باشد Aو نقیض A کاملا ازهم جدا هستند و هیچ همپوشانی با هم ندارند ولی در تفکر فازی بسیاری از مواقع A ونقیضش با هم همپوشانی دارند به طوری که ممکن است بتوانیم از راه هایی که به موفقیت ختم نمی شوند استفاده کرده و به موفقیت برسیم و یا راه هایی باشد که نباید روی میز مذاکره انجام دهیم و در مذاکره موفق شویم .
به طور مثال جمله ی معروف ادب از که آموختی از بی ادبان در حقیقت استفاده از نقاط فضای A=A´ است . یعنی به طور معمول بیشتر افراد از انسان های باادب درس می گیرند نه از انسان های بی ادب ولی می توان از انسان های بی ادب نیز درس گرفت مثل استفاده کردن از راه هایی که به موفقیت ختم نمی شوند تا به موفقیت برسیم (موفقیت فازی). بعضی از افراد وقتی سرما می خورند برای درمان زیر دوش آب سرد می روند به جای این که دوش آب گرم بگیرند از نقیض آن استفاده می کنند . عده ای وقتی مار آن ها را نیش می زند نیش مار را در آورده و آن را روی زخم خود می گذارند تا درمان شوند. استفاده از فضای فازی یا فضایی که A=A´ باشد بسیار خطرناک است به طوری که اگر در این فضا اشتباه کنید به سرعت با شکست مواجه می شوید حال به جمله ی زیر دقت کنید :
بایید رطب بخوریم تا بتوانیم منع رطب کنیم
حال اگر بخواهیم رطب خورده تا بتوانیم منع رطب نماییم بسیار باید با دقت عمل نماییم و برای بعضی از فضاها که مکان و زمان مناسبی باشد می توانیم از این مکان استفاده نماییم . به طور مثال بعضی از پدر و مادرها خود chat می کنند تا بعد ازدرک شرایط چت نگذارند فرزندشان چت های ناسالم داشته باشند . به طوری که پروفسور ویلیام هاکان در مورد خطرات استفاده از فضاهای فازی گفته است ((نظریه ی فازی اشتباه است . اشتباه و مخرب آن چه بدا ن نیاز داریم تفکری منطقی تر است نه تفکر کمتر منطقی . خطر منطق فازی این است که مشوق همان تفکر بی ارزش است که تا به حال این اندازه مشکل آفرین بوده است . منطق فازی ، کوکائین علم است ))بنابراین در استفاده از تفکر فازی به جای تفکر باینری باید به دقت عمل شود زیرا ممکن است در دام تیغ دولب استفاده از فضای A=A´ گرفتار شویم .
آن جا که قوانین ریاضی به واقعیات مربوط می شوند حتمی نیستند و آن جا که حتمی اند نمی توانند به واقعیت اشاره داشته باشند. آلبرت اینشتین

تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی(۴)

خلاصه ای دربارة 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-نمایش شیء گرا از محدوده اشیاء

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

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 یا یکی از زبانهای رقیب پیدا کنیم راضی و قانع خواهیم بود.


تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی(۳)

انعطاف پذیر بودن کنترل:

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

یکی از مهمترین و در عین حال قدیمی ترین نمونه های مربوط به ساخت یک برنامه AI سیستم تولید می باشد.

در سیستم تولیدی برنامه شامل یک سری قوانین می شود. در منطق اطلاعات این قوانین به گونه ای تنظیم می شود که بوسیله الگوی اطلاعات در یک نوع مسئله داده شده قابل تشخیص باشد.

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

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

بنابراین حائز اهمیت می باشد که یک زبان AI بتواند آن را مستقیما ایجاد کند و یا توسعه الگوی کنترل را ساده سازد.

در PROLOG یکی کردن و جستجوی الگوریتم ها در درون خود زمان ساخته می شوند و قلب و اساس PROLOG را تشکیل می دهند .

با استفاده از این یکی کردن الگوریتم ها به سادگی می توان هر نوع الگوی ساختاری کنترلی را ایجاد کرد .

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

یکی از مزایای این نظریه این است که الگوی تطبیق و کنترل ساختارهای همراه با آن ممکن است به سادگی برای تطبیق با نیازهای یک مسئله بخصوص خود را منطبق سازد.

اغلــــب نظـــریات فعلی در ارتباط با هوش مصنوعی همانند شبکه های عصبی عوامل تنظیم کننده و دیگر فرم های محاسبات ضروری ممکن است اجتناب از عملیات بر روی ساختارهای سمبولیک باشد.

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

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

 

پشتیبانی از روش های برنامه نویسی جستجویی.

مسائلی که AI به آن مرتبط می باشد همیشه پاسخگوی یک چنین نظریه های مهندسی نرم افزار استاندارد که شامل طراحی کامل و پردازش موفقیت آمیز و توسعه برنامه از خصوصیات و ویژگیهای دقیق است نمی تواند باشد. به دلیل طبیعت و ذات و نوع بخصوص AI  به ندرت این احتمال به وجود می آید که بتوان ویژگیهای درست و کاملی از شکل نهایی یک برنامه AI قبل از ساخت حداقل یک proto type بدست آورد. اغلب موارد شناخت مسئله برنامه مربوط می شود به حل موارد درگیر مسئله از طریق توسعه برنامه . دلایل آن عبارت است از :

1 بیشتر مسائل AI اصولا مشخصه های ضعیفی دارند.

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

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

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

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

2 نظریاتی که برای حل مسائل به آن پراخته می شود در محدوده بخصوصی قرار می گیرند.

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

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

3- ساختارها و اشکال بیان AIبه طور پیوسته باید توسعه و تجدید شود

توسعه AI یک پروسه تحقیقی مداوم است . توسعه سیستم های AI کاربردی در بسیاری از روشها بسط و توسعة این پروسه ها می باشند . گرچه تجربه عمدتاً به کاربرد زبان کمک می کند ولی عموماً هیچ جایگزینی برای کاربرد یک ایده و اینکه چگونه عمل می کند وجود ندارد .

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

چالش در برنامه نویسی AI ، پشتیبانی برنامه ریزی کشفی است . در بین خصوصیاتی که یک زبان برنامه نویسی باید ایجاد کند موارد ذیل وجود دارد :

1-   Modularity

2-   قابلیت گسترش

3- ساختارهای سطح بالای مفید

4- پشتیبانی از Prototype سازی اولیه

 5- قابل خواندن بودن برنامه

6- مترجم ها

7- پشتیبانی نرم افزاری برای برنامه نویسی جستجویی

ما این عناوین را در پاراگراف های زیر مورد بحث و بررسی قرار خواهیم داد :

     

1-قابلیت Modularity کدها

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

این شامل پرهیز از تأثیرات جانبی و متغیرهای جهانی (global) و اطمینان از رفتار هر Module واحد در شناخت برنامه باشد که بتواند به خوبی قابل تشخیص باشد.

برنامه های LISP به صورت مجموعة انتخابی از عملکردهای واحد می باشند در یک برنامه LISP که به صورت مطلوب نوشته شده باشد هر عملکرد کوچک می باشد که یک کارکرد خوب و واحد را شکل می دهند.

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

علاوه بر این LISP دسته بندی شی گرا را از طریق سیستم شیء LISP به صورت CLOS پشتیبانی می شود.

در PROLOG واحد اصلی برنامه روش و قانون است، قوانین PROLOG همانند عملکردهای LISP کوچک و ویژه هستند.

به دلیل اینکه محدوده و قیاس متغیرها در PROLOG اغلب محدود به یک شیوه و قانون شده اند، و زبان اجازه تغییرات جهانی را نمی دهد. توصیف کردن اصولاً ساده می باشد.

LISP و PROLOG شامل مشخصه های سهل و آسانی می باشند که هنگامی که با یک ساختار برنامه مشخص ترکیب شوند، موجب آسان شدن پرداخت آن می گردند.

 

2-قابلیت گسترش

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

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

اصـــولاً ایـــن نظـــریه که می گوید اگر شما ساختار نهایی یک برنامه را تشخیص ندهید می بایستی سعی کنید که ساختار زبان را توصیف کنید که به شما کمک خواهد کرد که آن ساختار را توسعه دهید.

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

LISP و PROLOG و همچنین توسعة شیء گرا آنها همانند CLOS همگی موجب می شوند که توصیف سادة اهداف، پیش بینی ها و عملکردهای جدید ، صورت پذیرد.

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

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

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

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

LISP و PROLOG همچنین موجب ساده شدن نوشتن توصیف متغیرهای ویژه یک زبان خاص می شوند. در LISP برنامه ها و اطلاعات به گونه ساختاری لیست می شوند. این باعــث ســادگی نوشتن برنامه ای می شود که از کد LISP به عنوان داده (Data) استفاده می کنند که در این صورت باعث ساده تر شدن توسعه، تصویفی می شوند.

بسیاری از زبانهایی که از نظر سابقه و همچنین اقتصادی در نوع زبانهای AI حائز اهمیت می باشند، مثل PLANNER و ROSIE و KEE و OPS بر اساس توانائی های LISP ساخته می شوند.

PROLOG این توانائی ها را در قالب تعدادی “meta – predicates” که قابل پیش بینی برای ترکیب با دیگر مشخصه های PROLOG باشند. ایجاد می کند که در این صورت باعث ساده شدن نوشتاری آن می گردد.

همراه با LISP تعدادی زبانهای سطح بالا AI بر اساس PROLOG ساخته شده اند که از این روش استفاده می کنند.

 

3-وجود ساختارهای مفید سطح بالا

برنا مه نویسی جستجویی به کمک یک ساختار قوی سطح بالا در زبان به وجود می آید،‌این ساختارهای قوی و کلــــی به  برنامه نویس اجازه توسعه سریع ساختارهای ویژه برای بیان اطلاعات توصیفی و کنترل برنامه را می دهند.

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

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

 

4-پشتیبانی برای ساخت Prototype اولیه

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

5-قابلیت خواندن برنامه و مستندسازی آن

به دلیل اینکه اغلب برنامه های AI به طور گسترده ای از طریق خودشان توصیف می شوند ولی این نکته حائز اهمیت است که کد بتواند قابل خواندن و قابل مستندسازی باشد. در عین حالیکه هیچ نوع جایگزینی برای محتوی زبانهای معمول در کد وجود ندارد، ولی با این حال زبـــان هـــای AI همـــراه بـا Moduleهای با ساختار سطح بالا باعث ساده شدن این عمل می شوند.

6-مفسرها

بیشتر زبانهای AI قبلاً ترجمه شده هستند نه اینکه در طول برنامه بخواهند ترجمه شوند. این بدان معنی است که برنامه نویس لازم نیست به مدت طولانی هر زمان که کد تغییر کرد برنامه را تعریف مجدد کند.

با توجه به مسائل عملکردی در ترجمه کد، زبانهای AI مدرن به Module های ویژه اجازه تعریف مجدد برای یک موقعیت متوسط را می دهند که از این طریق برنامه های سطح بالاتر بهتر تعریف می شوند. علاوه بر این بسیاری از کاربردها به برنا مه ها اجازه تکمیل شدن نهایی برنامه ها را می دهند.

7-محیطهای توسعه

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

Dynamic Binding and constraint propagation

زبانهای معمول نیاز به این دارند که بیشتر برنامه های مرتبط با آن در یک مدت زمان خاص تشخیص داده شوند.

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

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

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

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

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

 

6.   تعاریف مشخص و واضح

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

متأسفانه زبانهای برنامه نویسی معمول مثل Fortran و پاسکال دارای تعاریف مشکل و پیچیده ای هستند این موارد می تواند ناشی از واقعیت خود زبان باشد که اصولاً دارای خصوصیات ساختاری سطح بالایی در کامپیوتر دارند و در خودشان سیستم های فیزیکی و پیچیده ای دارند. به دلیل اینکه زبانهای AI دارای اساس و پایه ریاضی هستند مثل PROLOG و LISP ،‌آنها می بایستی معانی ساده تری باشند که دارای قدرت و ظرافت نهفته در ریاضی باشند.

این موجب می شود که این زبانها عمدتاً برای تحقیقات در محدودة به کارگیری دانش ابزارهای زبان، ایجاد برن امه درست،‌و اتوماتیک کردن تأثیر گذاری کد، مفید واقع شوند.

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

بلوک های بزرگ مرکب و پیچیده با کد مشخص دارای AI مناسب نمی باشند یک زبان خوب توصیف شده،‌یک ابزار مهم برای دریافت این اهداف می باشد.

 

تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی(۲)

خصوصیات مطلوب یک زبان 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 سوق دهد.

 

تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی(۱)

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

این انقلاب در اقتصاد امروز و نظم جامعه، به همان میزان  انقلاب صنعتی در قرن 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 می پردازیم .

وب معنایی

مقاله به بحث درباره موج آینده توسعه شبکه جهانی وب، موسوم به وب معنایی می پردازد. وب معنایی شیوه ای برای ایجاد یک وب است که در آن رایانه ها می توانند از شبکه ای از داده های منبع استفاده کرده، آنها را تعبیر، تحلیل و پردازش کرده و به کاربر ارائه نمایند. مقاله به اجمال به توصیف پنج سطح وب معنایی می پردازد شامل: 1) آدرس های منحصر به فرد- نشانگر متحدالشکل منبع (یو.آر.آی)؛ 2) فرانماها- فرانمای زبان نشانه گذاری توسعه پذیر (ایکس.ام.ال.){تعریف نوع سند(دی.ان.اس.)}/ فرانمای چارچوب وصیف منبع (آر.دی.اف)؛ 3) واژگان- هستی شناسی؛ 4)قواعد- منطق و برهان؛ 5)امنیت- اطمینان. مقاله با این نتیجه خاتمه می یابد که بایستی وب سایت های خود را به عنوان جزئی از یک کل در نظر بگیریم، نه در انزوا از دیگر سایت ها.

کلید واژه ها :وب معنایی

متن مقاله :

مقدمه

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

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

در موج جدید پیشرفت تلاش می شود تا هر شیی اطلاعاتی موجود در جهان اطلاعات به واسطه موضوع، محل، پدیدآورنده، تاریخ و دیگر ویژگی هایش توصیف شود. این نوع اطلاعات پیشتر تنها در یک بانک اطلاعاتی ذخیره می شد اما اکنون ممکن است در یک سند ذخیره شود.
وجه تمایز میان یک پیشینه در یک پایگاه اطلاعاتی و یک سند هر روز کم رنگ تر می شود. اطلاعات ممکن است در ابربرچسب (Metatag) ها در راس یک صفحه HTML قرار گیرد یا یک سند کامل ممکن است با استفاده از XML با بخش های مفصل نظیر عنوان، چکیده، روش ها، و نتایج کدگذاری شود.

این موج تازه پیشرفت را "وب معنایی"( Semantic web) می نامند. وب معنایی شیوه ای است برای ایجاد یک وب که در آن رایانه ها می توانند از شبکه ای از داده های منبع استفاده کرده، آنها را تعبیر، تحلیل و پردازش کرده و به کاربر ارائه نمایند. این امر ممکن است از بازیابی اسناد گرفته تا جمع بندی عناصر برنامه ای مختلف برای خلق یک نرم افزار کاربردی را دربر گیرد. تیم برنرزلی (Tim Berners-Lee) {ابداع کننده وب معنایی.م.}عقاید خود را درباره این امکانات در { http://www.w3.org/2000/talks/1206-xml2k-tbl }مطرح کرده است.

وب معنایی شامل پنج سطح است:
1. آدرس های منحصر به فرد- نشانگر متحدالشکل منبع (URI) ،
2. فرانماها- فرانمای زبان نشانه گذاری توسعه پذیر (XML Schema) {تعریف نوع سند(DTD) }/ فرانمای چاچوب توصیف منبع (RDF Schema) ،
3. واژگان- هستی شناسی،
4. قواعد- منطق و برهان،
5. امنیت- اطمینان.

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

آدرس های منحصر به فرد- نشانگر متحدالشکل منبع (یو.آر.آی)

نقطه آغاز برای اطلاعات وب، آدرس منحصر به فرد آن است- اما آیا واقعاً منحصر به فرد است؟ ما با مکان نماهای متحدالشکل منبع (URL) به عنوان شیوه توصیف محل ها آشنا هستیم اما با ایجاد تغییر در اسامی حوزه ها و بسته شدن سایت ها، نشانگرهای منحصر به فرددیگری اتخاذ می شوند نظیر نشانگر دیجیتالی شئی (DOI) یا یو.آر.ال ثابت (برای جزئیات بیشتر نگاه کنید به http://www.purl.org). راه حل های گوناگونی وجود دارد، این موارد را می توان به صورت کلی تر به عنوان URI ها توصیف کرد که این مزیت رادارند که اگر آدرس وب نهایی تغییر کند، URI هنوز به محلی اشاره می کند که نهایتاً به محل اصلی منبع منتهی می شود.

فرانماها- فرانمای زبان نشانه گذاری توسعه پذیر (ایکس.ام.ال.)/ فرانمای چاچوب توصیف منبع (آر.دی.اف)

زبان نشانه گذاری توسعه پذیر قبلاً در مقاله دیگری توصیف شده است(1). تولید برونداد در قالب XML ازیک بانک اطلاعاتی چه به عنوان یک صفحه وب ثابت یا یک نتیجه جستجوی پویا امر بسیار ساده ایست. این برونداد می تواند توسط یک برنامه کاربردی دیگر مورد استفاده قرر گیرد و امکان تبادل، ترکیب یا پردازش داده ها را فراهم نماید (برای جزئیات نگاه کنید به http://www.xml.org).

XML شیوه ای برای برچسب گذاری داده هاست. با این حال نیازمند یک فرانما (طرح) برای اعتبار بخشی به محتوای برچسب (Tag) هایی است که هر جزء از داده ها را توصیف می کنند. پدیدآورنده، عنوان و سال ممکن است به عنوان برچسب در سندی که توسط یک فرانما یا تعریف نوع سند (DTD) توصیف شده است درج شوند. زبان نشانه گذاری توسعه بین المللی (IDML) می تواند مثال خوبی باشد (برای اطلاعات بیشتر نگاه کنید به http://www.idmlinitiative.org/).
مادامیکه به سمت یک نظام خودکار که در آن رایانه ها داده ها را تعبیر می کنند پیش می رویم، لازم است برچسب هایی برای کنترل پردازش داده ها و اطمینان از استاندارد سازی محتوا وجود داشته باشد؛ این همان جایی است که آر.دی.اف اهمیت می یابد. آر.دی.اف یک استاندارد است که گاه برای تبادل داده میان بانک های اطلاعاتی مورد استفاده قرار می گیرد.
یکی دیگر ازسیستم های کدگذاری که برای کمک به تبادل محتوا به زبان های مختلف ایجاد شده است، Unicode است. یونی کد استانداردی است برای مشخص نمودن حروفی که خارج از مجموعه کدهای ASCII قرار دارند. یونی کد یک استاندارد جهانی برای نمایش حروف و علائم فراهم نموده و تبادل ساده آنها با دیگر برنامه های کاربردی را بدون بروز اشکال در مورد حروف دارای اکسان (علائم صوتی) میسر می نماید (برای جزئیات بیشتر نگاه کنید به http://www.unicode.org/).

واژگان- هستی شناسی

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

قواعد- منطق و برهان

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

امنیت- اطمینان

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

وب معنایی چگونه بر نظام شما اثر می گذارد؟

همه گروه های فراهم کننده اطلاعات روی وب پیشاپیش با انتخاب ابربرچسب های بکار رفته در صفحات وب خود، به نحوی در ایجاد نوعی وب معنایی مشارکت کرده اند. با انتخاب برچسب ها، به عنوان نمونه برچسب های پیشنهادی Alta Vista یا Dublin Core (http://www.purl.org/dc/) شیوه هایی جهت توصیف پدید آورنده، عنوان وموضوع یک سند فراهم می شود. انتخاب کلیدواژه موضوعی احتمالاً مشکل تر است. اگر در یک شرکت کشاورزی کار می کنید ممکن است به عنوان مثال از AGRIS یا CAB Thesaurus یا سیاهه کلید واژگان خاص خودتان استفاده کنید.

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

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

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

مدیریت پیچیدگی

ایجاد و ابداع فنون و تکنیک‌های لازم برای مدیریّت پیچیدگی را باید به عنوان هستۀ بنیادین تلاش‌های علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینه‌های علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد. شیوه‌ها و تکنیک‌های هوش مصنوعی، در واقع، برای حلّ آن دسته از مسائل به وجود آمده است که به طور سهل و آسان توسط برنامه‌نویسی تابعی (Functional programming)، یا شیوه‌های ریاضی قابل حلّ نبوده‌اند.

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

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

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

هر چند مثال ما در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره می‌برند.

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

مباحث هوش مصنوعی پیش از بوجود آمدن علوم الکترونیک، توسط فلاسفه و ریاضی دانانی نظیر بول (Boole) که اقدام به ارائه قوانین و نظریه‌هایی در باب منطق نمودند، مطرح شده بود. در سال ۱۹۴۳، با اختراع رایانه‌های الکترونیکی، هوش مصنوعی، دانشمندان را به چالشی بزرگ فراخواند. بنظر می‌رسید، فناوری در نهایت قادر به شبیه سازی رفتارهای هوشمندانه خواهد بود.

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

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

در سال ۱۹۵۰ آلن تورینگ (َAlain Turing)، ریاضی دان انگلیسی، معیار سنجش رفتار یک ماشین هوشمند را چنین بیان داشت: «سزاوارترین معیار برای هوشمند شمردن یک ماشین، اینست که آن ماشین بتواند انسانی را(و حتی یک محقق) توسط یک پایانه (تله تایپ) به گونه‌ای بفریبد که آن فرد (و حتی یک محقق) متقاعد گردد با یک انسان روبروست.»

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

آزمایش تورینگ از قرار دادن انسان و ماشینید، از تفکری انسانی برخوردار است.

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

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

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

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