نویسنده (گان) : ملیحه بیگی |
چکیده : این مقاله به بررسی اجمالی سیستمهای خبره در کتابخانه و محیط اطلاع رسانی می پردازد. در ابتدا ماهیت سیستمهای خبره را بررسی کرده و سپس ضمن بحث در مورد کاربردهای سیستمهای خبره در کتابخانه سیر تاریخی آن را نیز بیان می کند. |
هوش مصنوعی:
هوش مصنوعی روشی است در جهت هوشمند کردن کامپیوتر تا قادر باشد در هر لحظه تصمیم گیری کرده و اقدام به بررسی یک مسئله نماید. هوش مصنوعی، کامپیوتر را قادر به تفکر می کند و روش آموختن انسان را تقلید می نماید. بنابراین اقدام به جذب اطلاعات جدید جهت بکارگیری مراحل بعدی می پردازد.
مغز انسان به بخش هایی تقسیم شده است که هر بخش وظیفه خاص خود را جدا از بقیه انجام می دهد. اختلال در کار یک بخش تاثیری در دیگر قسمت های مغز نخواهد گذاشت. در برنامه های هوش مصنوعی نیز این مسئله رعایت می شود درحالی که در برنامه های غیر هوش مصنوعی مثل C یا Pascal تغییر در برنامه روی سایر قسمت های برنامه و اطلاعات تاثیر دارد.
مباحث کاربردی و مهم در تحقق یک سیستم هوش مصنوعی :
1- سیستم های خبره(Expert Systems)
2- شبکه های عصبی(Neural Network)
3- الگوریتم های ژنتیک(Genetic Algorithms)
4- سیستم های منطق فازی(Fuzzy Logic Systems)
زیر بنای هوش مصنوعی:
در این فصل و فصل بعدی، تاریخچه
مختصری از AI را ذکر میکنیم. اگر چه AI زمینه تازهای است ، اما بسیاری
از ایدهها، نقطه نظرات و تکنیکها را از قوانین دیگر به ارث برده است. پس
از گذشت 2000 سال از پیدایش فلسفه، تئوریهای بسیاری در رابطه با استدلال و
یادگیری بوجود آمدهاند؛ با این تصور که ذهن توسط عملیات یک سیستم فیزیکی
جانشین میشود . پس از گذشت 400 سال از علم ریاضی، ما تئوریهایی رسمی در
مورد منطق، احتمال، تصمیمگیری و محاسبهپذیری داریم. از طریق علم
روانشناسی ابزاری داریم که میتوانیم در مورد ذهن انسان تحقیق کنیم و یک
زبان علمی داریم که قادر است تئوریهای نتیجه شده را بیان کند. از
زبانشناسی، تئوریهایی در رابطه با ساختار و مفهوم زبان داریم. بالاخره،
از علم کامپیوتر، ابزارهایی داریم که با آن میتوانیم AI را به واقعیت
تبدیل کنیم.
مشابه با هر تاریخی، AI نیز مجبور شده است تا بر روی
تعداد محدودی از افراد و حوادث تمرکز کرده و از بقیه که شاید مهم هم بوده
باشند، غافل بماند. میخواهیم با مرتب کردن حوادث داستان چگونگی پیدایش
قسمتهای مختلف AI مدرن را بازگو کنیم. مطمئناً خواستار آن نیستیم که عقیده
جدیدی را مطرح کنیم، اگر چه روشی که بر پایه آن مولفهها تماماً در کنار
هم کار خواهند کرد به سوی ماحصل نهایی خود یعنی AI مطرح میگردند.
اشاره : | |||
سیستم خبره چیست؟ ساختار یک سیستم خبره
اطلاعات این بخش از سیستم خبره از طریق مصاحبه با افراد متخصص در این زمینه تامین میشود. مهندس دانش یا مصاحبهکننده، پس از سازماندهی اطلاعات جمعآوریشده از متخصصان یا مصاحبه شوندگان، آنها را به قوانین قابل فهم برای کامپیوتر به صورت (if-then) موسوم به قوانین ساخت (production rules) تبدیل میکند. ●دفتر ماهنامه شبکه در تهران قرار دارد. ●تهران در ایران قرار دارد. ● دفتر ماهنامه شبکه در ایران قرار دارد. مزایا و محدودیتهای سیستمهای خبره کاربرد سیستمهای خبره ● طراحی و زمانبندی ●تصمیمگیریهای مالی چند سیستم خبره مشهور |
چندین دهه است که تحقیقات هوش مصنوعی برای پدیدآوری کامپیوترهایی که بتوانند فکر کنند، آغاز گردیده است و در این میان انسان در جستجوی سیستمهایی مشابه انسانهای کارشناس می باشد. لذا بعنوان شاخه ای از رشته وسیع هوش مصنوعی، تصور سیستم خبره، تصور برنامه کامپیوتری بود که توانایی جایگزینی با فرد خبره در رشته علمی یا عملی خاصی، مثلاً در کنترل فرایندها در کار تصمیم گیری، را داشته باشد و توضیحاتی را برای افراد خبره یا غیرخبره ارائه دهد.
کاربردهای پیچیده یا غیرکلاسیک در سیستمهای خبره مطرح می باشند و شامل کاربردهایی هستند که دربردارنده فعالیتها در دامنه های غیرکلاسیک می باشند. دامنه های غیرکلاسیک، دامنه های پویا و جدیدتری هستند که دو مبحث کاملاً متمایز "کنترل فرایند" (سیستمهای مربوط به ایمنی) ـ که در ادامه مورد بررسی قرار می گیرد ـ و "امور مالی" به این دامنه ها تعلق دارند. بهرحال از دید فنی در مقابل دامنه های کلاسیک، این دامنه ها آنهایی هستند که: هنگام تداوم استدلال، هدف استدلال ممکن است تغییر یابد، یا امکان دارد پاسخ در محدوده زمانی معینی مورد نیاز باشد، و توصیف کامل این سیستمها یا در دسترس نبوده (بویژه در امور مالی) و یاناقص وبسیار پیچیده باشد.
امروزه سیستمهای خبره در سیستمهای کنترل بکار می روند و مثلاً یک کارخانه فرایندی را کنترل می کنند. این کاربرد حتی برای نوع نظامی این سیستمها که گاهی موضوعی وحشت انگیز می باشد نیز موضوعی مورد درخواست می باشد. از اینرو، این نوع از برنامه ها برای بوجود آوردن نوعی مشارکت با گردانندگان کارخانه و متصدیان تعمیر پدید آمده اند تا آنها را در برشناختن کارخانه و کنترل بهتر کارخانه و در یافتن کاستی ها و تعمیر آنها توان نمایند. علت آن این است که کل طرح بمنظور دستیابی بهتر به اهداف مد نظر می باشد. وقتی پالایشگاهی برای کنترل درنظرگرفته شود و مثلاً انسان با 100,000 بشکه نفت در روز سروکار داشته باشد، او با پتانسیل انفجاری عظیمی روبرو می باشد. اگر کسی که گرداننده چنین کاری است مرتکب اشتباهی شود آن زمان است که نتایج این اشتباه، انسان را کاملاً وحشت زده خواهد ساخت.
١. سیستمهای خبره و تحلیل هشدار
وقتی در اینجا امکانات در نظر گرفته شود، مبحث سیستمهای خبره به مسیر دیگری در پیشرفت خود می رسد. پس از سالهای نخست دهه 1970، راه طولانی ای بسوی تحلیل آشفتگی و هشدار وجود داشت. درعمل در اواخر دهه 1960، پروژه بزرگی درباره نیروگاه هسته ای ویلفا موجود بود. این سیستم قادر به آزمودن الگوهای هشداری بود که از فرایند (در این نیروگاه هسته ای) منتج شده بودند و از این الگو، استنتاجاتی چند (راجع به آنچه که غلط عمل می کند و بویژه درباره آنچه که در ارتباط با این هشدارها بایستی بتوان انجام داد) را ایجاد نمود.
دلیل چنین رهیافتی آن بود که در بسیاری از این نیروگاههای بزرگ، تعداد هشدارهایی که در طول عملیات معمولی روزانه ممکن بود روی دهد در حد نهایت خود یا بیش از حدّی بود که گرداننده کارخانه می توانست با آن سر و کار داشته باشد. این مسئله، موضوعی بود که حتی برای آشفتگی های جزئی نیز وجود داشت و بمحض اینکه رویداد بسیار مهمی یا پیشامدی یا چیزی شبیه آن روی می داد، شمار هشدارها بسرعت افزایش یافته بطوریکه گردانندگان نمی توانستند به توانایی خود در دستکاری آنها امیدوار باشند. این امر، ایده کاربست کامپیوتر در کاهش تعداد هشدارها را پدید آورد. این فکر، واقعاً ایده بزرگی بود اما تنها در سالهای اخیر بود که این ایده، عملی شده و درست کار می کند. در اینجا برخی از علل مربوط به دشواریها موجود در ایجاد سیستمهای هشدار کامپیوتری توصیف می گردد ولی هنوز هم سیستمهای بسیاری از این گونه وجود دارند که ناموفق می شوند.
در یک نیروگاه هسته ای مثلاً شاید 2.000 هشدار وجود داشته باشد و در یک رویداد مهم، تعداد 1.000 تا از این هشدارها شروع به اعلام خطر می نمایند بنابراین حتی نمی توان انتظار داشت که گرداننده یا حتی گروههای گرداننده نیروگاه، در کل توانایی تفسیر این مسائل را داشته باشند. دسته اول مشکلات، آن است که کار تحلیل هر چیزی از این مجموعه فی نفسه مستعد خطای بسیاری می باشد.
مبحث تحلیل هشدار در طی دهه 1970 توسعه یافت و در جهت تحلیل آشفتگی ای تغییر جهت داد و در آن نه تنها اطلاعات هشداری ای که بکار می روند وجود دارد بلکه اطلاعات مربوط به فرایند نیز وجود دارد. مشکلات پیچیدگی کار، محققین را متوجه ایده گریز از تحلیل منطقی هشدار نمود و در عوض متوجه ایده پشتیبانی از گرداننده کارخانه ساخت. در سراسر دهه 1970، توسعه این ایده را می توان در توانایی کمک به انسان و دادن رایزنی به آنهایی که یک کارخانه فرایندی را کنترل می کنند مشاهده نمود. ولی مسائل اساسی پیچیدگی اطلاعاتِ هشدار و برشناخت هنوز حل نشده بودند، اما مشکلات مربوط به اعتبار ابزارها وسیستمهای تحلیل سخت تر می شد.
پیشرفت تحلیل آشفتگی در اوایل سالهای 1980 با مفهوم سیستم خبره مقارن گردید. امروزه تکنولوژیی وجود دارد که در دسترس بوده و در جستجوی کاربرد می باشد، کاربردی بدنبال تکنولوژی. در واقع این وضعیت، موقعیتی ایده آل است، و گام بعدی چگونه باهم آوردن این دو و چگونگی بکار گرفتن این سیستم ها برای آن کاربردها می باشد.
سیستمهای خبره بعنوان سیستمهای کنترل
بعدها به سرعت آشکارگردید که عامل با لقوی در ساختن سیستمهای خبره، جهت کاربرد در کنترل فرایند، وجود دارد. کاربردهای بسیاری وجود دارند که به کنترل واقعی مربوط می شوند ولی آنها در حوزه هایی واقع می شوند که در آنها این کنترل بخوبی تحقق نمی یابد و یعنی مثلاً: برای دسته ای از موضوعات می باشد که در آنها هنوز کنترل دستی بکار برده می شود، و در جایی که انسان هنوز سوپاپ ها و درجه حرارت ها را با فرایندی مرموز، دقیقتر تنظیم می کند. در این مورد، مهندسین واقعاً نمی دانند که گردانندگان چگونه کارخانه را اداره می کنندو نمی توانند آن را توضیح دهند. و در اینجا هرگاه در جهت خودکار ساختن آن تلاش نمودند غالباً این کاربردها موفق نبودند.
در اواخر دهه 1970 و اوایل سالهای 1980، استفاده از کنترل مشکک ـ پیشرفتی که به سیستمهای خبره، بسیار مربوط می باشد ـ آغاز گردید. در آن زمان این تصور، در اتخاذ تجربه ای به شکل قواعد کنترل (که گردانندگان در حال استفاده از آنها بودند و بی درنگ آن را بکار می بردند) بود. مثلاً در دانمارک کاربرد بسیار مطلوبی از این نوع کنترل، آمیختن شن برای ریخته گری، وجود داشت. این کار فرایندی بسیار پیچیده می باشد زیرا خواص مواد خام ـ یعنی شن باز مصرفی، پلاستیک و موادچسبی ـ و خواص فیزیکی در پس آن، آنچنان پیچیده هستند که واقعاً شاید هیچ کس حتی نمی تواند انتظار توصیف تفصیلی آنها را داشته باشد. اما انسانهای کاردانی که این مواد را در طی سالیان بسیاری بکار برده اند می توانند مکشوفات برخی قواعد مفید را عملی نموده و چگونگی درست آمیزه سازی و چگونگی ساخت افزودنی های درستی را (بطوری که نتیجه مفیدی را بدست آورند) بیان می کنند. تفاوت بین شخصی کاردان، که با مواد ریخته گری سر و کار دارد، با کارگر غیرماهر آنچنان زیاد است که بدون مهارت واقعاً هیچ کاری را نمی توان انجام داد. اکنون بخوبی قابل درک است که چگونه آن دسته از موضوعات، می توانند سیستم خبره ای را تشکیل دهند.
سیستمهای خبره و برشناخت آشفتگی
قدرمسلم آن است که گسترده ترین کاربردهای کنترلی سیستمهای خبره در برشناخت، بمنظور پشتیبانی از گردانندگان کارخانه در طول آشفتگی بوده است. در اینجا رده کاملاً متفاوتی از مسائل و مشکلات را می توان ملاحظه نمود زیرا تلاشی که برای انجام دادن رایزنی در اینجا می شود درباره چگونگی کنترل کارخانه ای است که از چند جنبه خارج از کنترل بوده و از چند جهت بسوی موقعیتی خطرناک به حرکت در آمده است. در اینجا این حقیقت نا گوار وجود دارد که اگر چنین رایزنی موفق نشود، پس از آن، مسئله بسیار بدتری وجود خواهد داشت. قبلاً مشکلاتی چند در راه اینکه گرداننده کارخانه قادر شود تا بجا و بموقع با آشفتگی های بزرگ سر و کار داشته باشد وجود داشت. هشدارهای زیادی به او داده شده است و او در موقعیت پیچیده ای، ناگزیر به تصمیم گیری بسیار سریع می باشد. اغلب موقعیت هایی وجود دارند که ممکن است گردانندگان برای آن اوضاع آموزشی ندیده باشند زیرا هیچ کس نمی تواند این افراد را برای هر آشفتگی و هر وضع ممکنی تعلیم دهد. بنابرچنین پیشنهاد شده است که از طریق فراهم سازی رایزنی از کامپیوتر برای گرداننده، مشکلات وی کاهش داده شود اما این امر، مسئله جدیدی را پدید می آورد زیرا اگر آن رایزنی موفق نباشد یا اشتباه باشد آنگاه چه روی می دهد ؟
بعلاوه می توان به کاربردهایی که مخاطراتی را دربرندارند اشاره نمود. پس از آنکه پیشامدی روی داد کاربرد دیگر سیستمهای خبره باید آن باشد که گرداننده را در حصول اداره دوباره کارخانه قادر سازد. رهیافت دیگر، استفاده از سیستمها در پیشگویی پیشامدها (مثلاً بهنگام طراحی نیروگاه برای اجتناب از پیشامدها) می باشد.
بهرحال هر چند مسائل و مشکلاتی راجع به کاربرد سیستمهای خبره در مقاصد ایمنی وجود دارند ولی با این حال بنظر می رسد که آنها می توانند فوائد مستقیمی را در جهت افزایش ایمنی و کاهش خطر فراهم سازند.
منبع: وستا
محیطهای هیبرید
نیاز به برنامه نویسی اطلاعاتی موجب توسعة تعدادی برنامه نویسی و تکنیک های زبان، شامل سیستم های تولید،قوانین و کلاس شیءگرا می شود.
یک سیستم هیبرید بیانگر نمونه های چند منظوره در قالب یک محیط برنامه نویسی خاص مــی باشد. گر چه محیطهای هیبرید متفاوت می باشد. ولی عموماً شامل خصوصیات ذیل می شوند.
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 یا یکی از زبانهای رقیب پیدا کنیم راضی و قانع خواهیم بود.
منابع و مآخذ
خلاصه ای دربارة 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 استفاده می شوند.