Экспертная система — это компьютерная программа, созданная для выполнения тех видов деятельности, которые традиционно выполняются человеком-экспертом. Первой экспертной системой, получившей широкую известность, была система MYCIN для оказания помощи врачу при диагностики некоторых болезней. Она включала диалог и консультацию врача на основе имеющихся у нее правил. Следующую ступень в развитии экспертных систем представляет система TEIRESIAS. Это промежуточная программа (интерфейс), ведущая диалог с экспертом на естественном языке с целью освободить его от анализа отдельных частностей. Система TEIRESIAS может не только непосредственно использовать свои знания, но и заниматься их изучением, обобщением и обсуждением. Система DENDRAL предназначена для получения подробной формулы органического вещества исходя из его грубой формулы и масс-спектрограммы. Эти примеры – только маленькая часть достижений в области экспертных систем.
Всякая экспертная система базируется на определенной модели знаний. Большинство экспертных систем, разработанных в 80-е-90-е годы, использовали продукционную (или логическую) модель знаний. Строго говоря, это разные модели, но часто разницу между ними считают условной.
Продукционная экспертная система состоит из базы знаний, которая содержит множество продукционных правил, рабочего пространства (или базы фактов) и программного интерпретатора. Продукционная правило – это любое правило, в котором присутствует посылка и следствие. Рабочее пространство в начале работы содержит формулировку поставленной задачи, а затем в нем появляется множество фактов, которые программа смогла установить к текущему моменту. Это пространство играет роль кратковременной памяти. Оно образуется в результате применения правил к имеющимся изначально фактам, и этот процесс управляется следующими принципами:
— исчерпывающий перебор;
— выбор применяемого правила с помощью оценки;
— выбор правила с помощью правила, т.е. применение метаправил;
Общим для всех экспертных систем является сотрудничество с экспертом. Специфика деятельности эксперта состоит в не алгоритмизированном использовании знаний. Знания являются слабо структурированной или вовсе неформализованной информацией. Для того чтобы представить знания в продукционной форме и далее в форме предикатов, первого порядка, которые являются структурными единицами языка пролог, т.е. написать саму экспертную систему, знания нужно сначала хотя бы грубо формализовать, создав внутренне представление, промежуточную модель знаний. В этих целях используются модели знаний, предназначенные для понимания и описания естественного языка. К ним относятся семантические сети, скрипты, фреймы и, в последнее время, нечеткие модели.
Экспертные системы применяются там, где отсутствуют математические методы или алгоритмы, и компьютерная программа должна имитировать стратегию человека-эксперта.
Экспертные системы применяются в:
— Оценке займов, рисков страхования и капитальных вложений для финансовых организаций;
— Планирование, направленное на снижение налогового бремени;
— Помощи медикам в диагностике;
— Помощи химикам в нахождении верной последовательности реакций для создания новых молекул;
— Отладка программного и аппаратного обеспечения ЭВМ в соответствии с индивидуальными требованиями;
— Диагностике и обнаружение неполадок в телефонной сети на основании тестов и сообщений о неисправностях;
— Идентификации и ликвидация неполадок в локомотивах;
— Помощи геологам в расшифровке полученных с помощью контрольного оборудования данных;
— Помощь навигаторам в расшифровке данных от подводных звукоулавливателей;
— Получение молекулярной структуры вещества на основе опытов;
— Изучение и суммирование больших объемов быстро меняющихся данных, таких как телеметрические данные;
Экспертные системы, построенные на основе пролога, используют знания, имеющие по своему существу характер фактов и правил оперирования с ними. Такая (продукционная) модель знаний является точной во многих случаях, поскольку состоит из абсолютно автономных элементов, способных объединятся в цепочки бесконечно разнообразными способами. Объединение называется логическим выводом. В качестве примера запишем несколько правил и фактов:
Факты: u, r, w — все они представляют собой истинные утверждения;
Правила: если (y и w), то х; если (u и z), то у; если (r), то z;.
Совокупность правил и фактов называется продукционной системой. Создадим логическую цепочку. Сначала имеется только одно действующее правило r->z. Факт r находился среди хранимых истинных фактов, и, так как r подразумевает z, механизм вывода добавляет z к хранимому набору истинных фактов. Затем механизм ищет следующее правило, годное для выполнения. Факт u был дан как истинный в самом начале, только что был получен новый факт z. Имеется другое правило, которое подразумевает, что u+z->у. Механизм вывода находит и использует его. Таким образом, теперь еще у добавляется к хранимым истинным фактам и т.д. Это есть процесс прямой цепочки рассуждений. Большинство экспертных систем работает либо на прямой, либо на обратной цепочке рассуждений (т.е. от заключения к предпосылке). пролог основан на обратной цепочке рассуждений, он использует предикаты. Однако предикаты являются лишь другой записью правил и фактов. На прологе можно записать вышеприведенную продукционную систему так:
Факты: f(r).f(u). f(w). f истинно, если аргумент равен r (u,w).
Правило: если (у и w), то х
На прологе записывается так:
(это предложение можно прочитать так: х истинно (“:-“), если истинно и y, и f(w))
Правило: если (u и z), то у
На прологе:
Правило: если (r), то z.
На прологе:
Однако в категории «Программные продукты для статистического анализа данных (Statistical Analysis Software)» наивысшую оценку получает система STATISTICA, именно она наиболее подходит для создания экспертных систем и нейросетевого анализа
Необходимым элементом разработки экспертной системы является представление знаний в форме правил, что особенно эффективно, когда они уже формализованы и не являются текстом на естественном языке. Вот пример основы будущей экспертной системы, предназначенной, для определения может ли некто водить машину.
Может водить(),
если является водителем по закону(), может достать машину().
Является водителем по закону(),
если имеет права(), права еще не просрочены().
Имеет права(),
если достиг определенного возраста(), знает как водить(), прошел тест().
Может достать машину(),
если владеет машиной(), может взять ее взаймы(), может арендовать ее().
Если предметная область не требует специальных моделей для первичной формализации, то систему правил разрабатывается непосредственно на основе эвристик. Эвристика — это эмпирическое правило, с помощью которого человек — эксперт в отсутствии формулы или алгоритма пытается осуществить свои намерения.
Так, например, у игрока в футбол могут быть следующие эвристики:
Самое важное — это забить гол.
Команда на своем поле чаще выигрывает, чем на чужом.
Таким образом, для создания экспертной системы, которая может заменить человека-эксперта, требуется сначала записать его знания в форме эвристик, затем переписать эвристики в форме правил, то есть в виде предложений, построенных по схеме «если … то…«. Далее нужно переписать правила в виде определений истинности предиката. Теперь можно задавать экспертной системе вопросы, и она будет отвечать на них, используя заложенный в прологе механизм логического вывода.
Литература
1) В.В. Круглов, М.И. Дли, Р.Ю. Голунов. «Нечеткая логика и искусственные нейронные сети».
2) А.Ю. Дорогов, А.А. Алексеев. «Структурные модели и топологическое проектирование быстрых нейронных сетей». М., изд-во ПАИМС, 1996.
3) А.В. Напалков, Л.Л. Прагина. «Мозг человека и искусственный интеллект». М., изд-во Московского университета, 1985.