В по-простите системи се допуска само включване на нови елементи към работната памет. В по-сложните се допуска и изключване и изменение на елементи от работната памет. В най-простия случай не се допуска използването на променливи. Тогава правилата имат малка изразителна сила и в процеса на работа на интерпретатора е възможно единствено сравняване на съответните условия с елементите на работната памет с цел откриване на съвпадение, т.е. не се извършва съпоставяне в истинския смисъл на думата. Ако се използват и променливи, тогава правилата имат много по-голяма изразителна сила (могат да изразяват правила за извод, свързани с обобщения). В този случай е необходимо съпоставяне на съответните условия с елементи на работната памет и в резултат може да се извърши свързване на променливите от правилото с константите, с които те са били съпоставени. От гледна точка на работата на интерпретатора има значение дали в лявата част на правилата се допуска наличие само на едно или на произволен брой условия. При експертните системи, особено в последно време, се поставя едно важно допълнително изискване към базата знания и интерпретатора – наличие на средства за представяне и използване на непълни и/или неточни (несигурни) данни и знания. Този въпрос ще бъде разгледан подробно в точка 13 “Приложение на размитата логика в системите с изкуствен интелект”.
Софтуерни средства за изграждане на експертни системи
По-голяма част от софтуерните средства за изграждане на експертни системи попадат в една от следните пет категории:
1) Ядра на експертни системи – по същество това са абстракции на една или няколко приложни програми.
2) Езици за програмиране от високо ниво – скриват до известна степен детайлите при реализацията и освобождават програмиста от грижа на по-ниско ниво за ефективност при съхранение, достъп и манипулиране с данните.
3) Хибридни програмни среди – съдържат множество от софтуерни модули, които дават възможност на потребителя да смесва различни стилове на програмиране.
4) Скелетни системи – дават на специалиста по обработка на знания основни програми за решаване на задачи.
5) Допълнителни модули – служат за изпълнение на специфични задачи в рамките на определена архитектура за решаване на задачи.
Заслужава да се разгледа малко по-подробно всяка от тези групи и да се направи опит да бъдат посочени техните положителни страни и недостатъци.
Ядра на експертни системи
Ядрата са предназначени да позволят на непрограмистите да използват опита на програмистите от решаването на сходни задачи. Например средата EMYCIN позволява архитектурата на MYCIN да бъде прилагана към друга област от медицината, например за изследване на функционирането на белите дробове, както и за приложения извън медицината – например програмата за структурен анализ SACON и експертната система SOPHIE за откриване на грешки в
телекомуникационни мрежи.
За съжаление е трудно да се спазят стриктно някакви препоръки за това, кое ядро да бъде използвано при определена задача, понеже няма ясна представа колко широк може да бъде обхватът от експертни системи, които трябва да бъдат класифицирани. Например разликата между задачите за диагностика и конструиране, макар и интуитивно да е определена, не е съвсем ясна. Много задачи могат да бъдат решени по различни начини – например подходът към диагностицирането има много общи черти с решаването на конструктивни задачи, а действително трудните задачи често изискват смесен подход за решаването им.
По отношение на ядрата повечето от търговските продукти дават възможности на потребителя, които са подходящи само за малки пространства на търсене – например изчерпващ извод в обратна посока с ограничен брой управляващи възможности. Обикновено те са по-подходящи за задачи за класификация, отколкото за задачи за конструиране, макар че доставчиците на тези програми не винаги отбелязват това.
Явното предимство на повечето ядра на експертни системи е простотата на съответния език на представяне на знания, но те имат и редица недостатъци, както отбелязва Айкинс [5] в своята критика. Някои от тях са следните:
• Формализмът на продукционни правила затруднява различаването на отделните видове знания – евристични знания, контролни знания, знания относно очакваните стойности на параметрите.
• Относително неструктурираното множество от правила затруднява придобиването на нови знания, тъй като прибавянето на единствено правило към множеството е свързано с промени навсякъде в системата.
• Изчерпващото търсене в обратна посока, като основен режим на извод, включва правила от метаниво и обективно ниво и затруднява твърде много генерирането на лесно разбираеми правила.
Айкинс критикува не само конкретно приложение, но и изобщо функционалността на системите, основани на правила, и следователно всички ядра, които използват продукционни правила като главен език за представяне. Съществува значително количество експертност, състояща се от знания относно типични образци от дадни – в смисъл, че или са често срещани, или са идеализирани по определен начин. Експертите могат лесно да разпознаят познаните им образци от данни и са в състояние да класифицират, с възможни неточности непъл-ните образци чрез множество от протоидеали. Те имат интуиция за това, кои стойности на данните са интересни, важни или изненадващи и тези ключове допринасят за решенията, които взимат относно следващата стъпка при решаване на дадена задача. Тези интуитивни знания обаче не е лесно да бъдат представени чрез правила от вида условие – действие, освен ако формализмът не стане произволно сложен, което обесмисля едно от важните преимущества от използването на продукционни правила.
Друг недостатък относно ядрата засяга работата им с несигурности. Ядрото се предлага комплектовано с определен формализъм за неточни разсъждения – например фактори на сигурност. Обаче повечето, ако не и всички формализми, използвани от тези ядра, не са съвместими с теорията на вероятностите или имат свойства, които е трудно да бъдат анализирани. Макар, че в контекста на определено приложение третирането на несигурностите може да получи прагматична обосновка, твърде опасно е да се прилага изобщо само поради това, че този механизъм се съдържа в ядрото и работи добре за дадена област.
Голямо предимство на ядрата е, че те са достъпни за малки компютри. Често те са реализирани на езици, различни от тези на изкуствения интелект – например FORTRAN и PASCAL, което подпомага преносимостта и интерфейса с други системи. В сравнение с другите възможности ядрата са евтини. Едно ядро може да струва няколкостотин долара и това е за предпочитане пред цена от десетки хиляди долара, колкото може да струва едно комплексно програмно осигуряване, без да се споменават различията в хардуера и съответните изисквания. Една фирма би могла да си позволи да закупи няколко ядра, които могат да се изпълняват върху съществуващия хардуер, да експериментира с всяко и да определи найдоброто за конкретно приложение.
При интерес към уеб дизайн услугите на студио за изработка на сайтове Уеб дизайн Пловдив обадете се или пишете и разгледайте предложенията за изработка на бизнес сайтове, програмиране на системи и реклама и рекламни кампании в Интернет, SEO оптимизация на сайтове и Internet маркетинг.