Министерство образования РФ
ЛЕНИНГРАДСКОГО ГОСУДАРСТВЕННОГО
УНИВЕРСИТЕТА
(филиал)
Курсовая работа
по дисциплине: «Интеллектуальные системы»
на тему:
«Разработка экспертной системы»
«Роликовые коньки – помощь чайнику»
Выполнил студент группы П-41д:
профессор
Москва 2004
ОГЛАВЛЕНИЕ
Введение
1. Экспертные системы
1.1. Основные понятия и термины
1.2. Структура экспертной системы
1.3. База знаний (модели представления знаний)
1.4. Механизм логического вывода
1.5. Технология получения знаний
2. Программа VP-EXPERT, ее основные характеристики и возможности
2.1. Постановка задачи
2.2. Инструментальные средства VP-EXPERT
3. Реализация
Заключение
ВВЕДЕНИЕ
Аналитические технологии - это методики, которые на основе каких-либо моделей, алгоритмов, математических теорем позволяют по известным данным оценить значения неизвестных характеристик и параметров.
Аналитические технологии нужны в первую очередь людям, принимающим важные решения - руководителям, аналитикам, экспертам, консультантам. Доход компании в большой степени определяется качеством этих решений - точностью прогнозов, оптимальностью выбранных стратегий.
Простейший пример аналитической технологии - теорема Пифагора, которая позволяет по длинам сторон прямоугольника определить длину его диагонали. Эта технология основана на известной формуле с2=а2+b2.
Другим примером аналитической технологии являются способы, с помощью которых обрабатывает информацию человеческий мозг. Уникальность мозга состоит в том, что он способен обучаться решению новых задач - игре в шахматы, вождению автомобиля и т. д. Тем не менее, мозг плохо приспособлен к обработке больших объемов числовой информации - человек не сможет найти даже квадратный корень из числа 463761 в уме, не используя калькулятора или алгоритма вычисления в столбик. На практике же часто встречаются задачи о числах, гораздо более сложные, чем извлечение корня. Таким образом, человеку для решения этих задач необходимы дополнительные методики и инструменты.
В качестве таких инструментов применяются «Традиционные технологии», которые, в свою очередь, делятся на «Детерминированные технологии» и «Вероятностные технологии».
Детерминированные технологии основаны на применении алгоритма. Особенностью данного алгоритма является то, что он может быть применим только для задач которые полностью описаны определенной детерминированной моделью (некоторым набором известных функций и параметров). Примерами решения таких задач являются разработанные формулы, теоремы и алгоритмы для определения объемов, решения систем линейных уравнений, поиска корней многочленов.
Вероятностные технологии применяются для задач, связанных с наблюдением случайных величин (например, задача прогнозирования курса акций).
К сожалению, классические методики оказываются малоэффективными во многих практических задачах. Это связано с тем, что невозможно достаточно полно описать реальность с помощью небольшого числа параметров модели, либо расчет модели требует слишком много времени и вычислительных ресурсов.
Вероятностные технологии также обладают существенными недостатками при решении практических задач.
Из-за описанных выше недостатков традиционных методик в последние 10 лет идет активное развитие аналитических систем нового типа. В их основе - технологии искусственного интеллекта, имитирующие природные процессы, такие как деятельность нейронов мозга или процесс естественного отбора.
Наиболее популярными и проверенными из этих технологий являются нейронные сети. Первые коммерческие реализации на их основе появились в 80-х годах и получили широкое распространение в развитых странах.
Нейронные сети в каком-то смысле являются имитациями мозга, поэтому с их помощью успешно решаются разнообразные "нечеткие" задачи - распознавание образов, речи, рукописного текста, выявление закономерностей, классификация, прогнозирование. В таких задачах, где традиционные технологии бессильны, нейронные сети часто выступают как единственная эффективная методика решения. По данным фирмы Ward Systems Group, в 1998 году программные продукты на основе нейронных сетей использовались более чем в 500 крупнейших компаниях мира из списка Fortune 1000.
К области применения нейросетей можно отнести задачи как: классификация, кластеризация и поиск зависимостей, прогнозирование.
Классификация
Отметим, что задачи классификации (типа распознавания букв) очень плохо алгоритмизуются. Если в случае распознавания букв верный ответ очевиден для нас заранее, то в более сложных практических задачах обученная нейросеть выступает как эксперт, обладающий большим опытом и способный дать ответ на трудный вопрос.
Примером такой задачи служит медицинская диагностика, где сеть может учитывать большое количество числовых параметров (энцефалограмма, давление, вес и т. д.). Конечно, «мнение» сети в этом случае нельзя считать окончательным.
Кластеризация и поиск зависимостей
Помимо задач классификации, нейросети широко используются для поиска зависимостей в данных и кластеризации.
Например, нейросеть на основе методики МГУА (метод группового учета аргументов) позволяет на основе обучающей выборки построить зависимость одного параметра от других в виде полинома. Такая сеть может не только мгновенно выучить таблицу умножения, но и найти сложные скрытые зависимости в данных (например, финансовых), которые не обнаруживаются стандартными статистическими методами.
Кластеризация - это разбиение набора примеров на несколько компактных областей (кластеров), причем число кластеров заранее неизвестно. Кластеризация позволяет представить неоднородные данные в более наглядном виде и использовать далее для исследования каждого кластера различные методы. Например, таким образом можно быстро выявить фальсифицированные страховые случаи или недобросовестные предприятия.
Прогнозирование
Задачи прогнозирования особенно важны для практики, в частности, для финансовых приложений и других экономических прогнозов.
1. ЭКСПЕРТНЫЕ СИСТЕМЫ
1.1. Основные понятия и термины
Экспертная система - это интеллектуальная программа, способная делать логические выводы на основании знаний в конкретной предметной области и обеспечивающая решение специфических задач. Поэтому ее необходимо наделить функциями, позволяющими решать задачи, которые в отсутствие эксперта (специалиста в конкретной предметной области) невозможно правильно решить. Следовательно, необходимым этапом в ее разработке является приобретение соответствующих знаний от эксперта. Если перечислить требования к экспертным системам, то получим следующее:
· использование знаний, связанных с конкретной предметной областью;
· приобретение знаний от эксперта;
· определение реальной и достаточно сложной задачи;
· наделение системы способностями эксперта.
Нас окружают различные эксперты - это врачи, преподаватели, адвокаты, переводчики, секретари, программисты, проектировщики, консультанты и др. Все они обладают общими качествами:
· имеют огромный багаж знаний, касающихся конкретной предметной области;
· имеют довольно большой опыт в этой области;
· умеют точно сформулировать и правильно решить задачу.
И все же когда задача, ставящая в затруднительное положение обычного человека, весьма легко решается экспертом, мы сомневаемся, не ошибся ли он. Экспертные системы призваны заменить специалиста в конкретной предметной области, т. е. решить задачи в отсутствие экспертов.
1.2. Структура экспертной системы
Знания и их представление

Пользовательский интерфейс
Ввод данных Заключения
Советы
Объяснения
![]() |
Рис. 1.2. Пример структуры экспертной системы
На рис. 1.2 показана базовая структура экспертной системы, ниже перечислены функции, которые должны выполнять ее структурные элементы.
Во-первых, необходим механизм представления знаний в конкретной предметной области и управления ими. Для реализации этих функций используется механизм, называемый базой знаний. Во-вторых, необходим механизм, который на основании знаний, имеющихся в базе знаний, способен делать логические выводы. Этот механизм называется механизмом логических выводов. В-третьих, необходим интерфейс для правильной передачи ответов пользователю. В противном случае пользоваться такой системой крайне неудобно. Механизмом, реализующим эту функцию, является пользовательский интерфейс. В-четвертых, необходим механизм получения знаний от эксперта, поддержки базы знаний и дополнения ее при необходимости. Механизмом, реализующим эти функции, является модуль приобретения знаний. В-пятых, необходим механизм, который не только способен давать заключение, но и представлять различные комментарии, прилагаемые к этому заключению, и объяснять его мотивы. В противном случае пользователю будет трудно понять заключение. Такое понимание необходимо, если заключение используется для консультации или оказания помощи при решении каких-либо вопросов. Механизм, реализующий эти функции, называется модулем советов и объяснений.
Перечисленные структурные элементы являются наиболее характерными, хотя в реальных экспертных системах их функции могут быть усилены соответствующим образом, или расширены. Кроме того, что механизм объяснений играет весьма важную роль, он важен не только для пользователя системы, но и для эксперта, предоставляющего знания в конкретной предметной области. Это обусловлено тем, что с его помощью эксперт определяет, как работает система, и позволяет точно выяснить, как используются знания, предоставленные им. Э. Фейгенбаум, который в 1977 г. ввел понятие инженерии знаний, отмечал в своих трудах: «По опыту нам известно, что большая часть знаний в конкретной предметной области" остается личной собственностью эксперта. И это происходит не потому, что он не хочет разглашать своих секретов, а потому, что он не в состоянии сделать этого - ведь эксперт знает гораздо больше, чем сам осознает».
Иначе говоря, необходимо извлечь знания, которыми подсознательно владеет специалист, и для этого используется модуль советов и объяснений. Например, если этот процесс выполняется с помощью реальной совокупности тестовых данных, но заключение получается непонятным, специалист обходит острые углы. Однако данный механизм работает таким образом, что помогает объяснить причину неправильного заключения. Это позволяет сделать осознанными знания, которыми до сих пор он владел подсознательно. В конечном итоге возникает ситуация «я знаю, что я знаю», позволяющая более эффективно использовать знания специалиста.
Язык представления знаний, используемый для разработки экспертной системы, называется языком разработки экспертной системы, а система программного обеспечения, включающая указанные выше функции, называется инструментом для разработки экспертной системы.
1.3. База знаний (модели представления знаний)
Человек понимает речь и изображения и для решения всевозможных задач использует знания в конкретной предметной области. Для выполнения аналогичной работы компьютером эти знания необходимо представить в какой-нибудь форме и составить нужную программу. С помощью используемых в прошлом методов процедурного программирования на языках типа Фортран, Паскаль и других эти знания помещались в прикладную программу, с которой и составляли единое целое. Однако подобные методы затрудняли понимание, каким образом используются знания и какую роль они выполняют. Кроме того, разработка и сопровождение таких программ также были не легким делом. Иначе говоря, специальные знания приобретаются из каталогов по данной предметной области и от соответствующих специалистов, однако чем выше степень сложности задачи, тем крупнее и сложнее для понимания становятся программы, поэтому затрудняется их разработка и модификация.
Представление знаний - это формализация истинных убеждений посредством схем, записей или языков. Представлению знаний присущ пассивный аспект, например, книга, таблица. Однако нас в искусственном интеллекте интересует активный аспект представления знаний: знать в нашем понимании - это операция, позволяющая не только запоминать, но и извлекать (представленные) знания для выполнения умозаключений на их основе.
Рассмотрим модели трех видов представления знаний: логического, сетевого и объектного.
Правила продукций
Наиболее распространенным методом представления знаний являются правила продукций или продукционные правила. Этот метод широко используется в разработке информационных систем.
Вначале правила продукций имели вид:
ЕСЛИ<условия>ТО<действие>
Слова в угловых скобках являются посылками или утверждениями. В дальнейшем они приобрели более общую форму.
Наряду с написанной используются следующие формы:
ЕСЛИ<предшествующий>ТО<последующий>
ЕСЛИ<основание>ТО<гипотеза>
Таким образом, правило состоит из двух частей: часть ЕСЛИ указывает "условия", "предшествующий" или "основание", и часть ТО представляет соответственно "заключение", "последующий" или "гипотезу". Перечисленные элементы второй части генерируются при истинности условий первой части.
Гипотетический силлогизм означает, что когда заключение одного правила является посылкой другого правила, то можно установить третье правило с посылкой из первого правила и заключением из второго. Другими словами:
условие ЕСЛИ X ТО Y
условие ЕСЛИ Y ТО Z
заключение ЕСЛИ X ТО Z
Таблицы принятия решений
Таблица принятия решений (таблица решений) является табличной формой представления множества продукционных правил. Таблицы решений применяются с 60-х годов в различных областях, например, в задачах автоматизации проектирования технологических процессов.
Идея таблиц решений заключается в использовании их в качестве алгоритмов в постановках задач и одновременно в качестве средства программирования на исходном языке, т. е. чтобы этап алгоритмизации задачи являлся одновременно и этапом программирования. Постановка задачи с использованием таблиц является четкой и недвусмысленной.
Рассмотрим таблицу решений (Таблица 1.3.1), которая является алгоритмом проектирования элементарного технологического процесса для цилиндрических поверхностей вращения применительно к условиям некоторого завода. В зависимости от характеристик поверхности: класса точности, класса чистоты, вида термообработки и несоосности выбирается соответствующий этим характеристикам план ее обработки, т. е. операции токарная, шлифовальная и т. п. Таблица разделяется двойной горизонтальной линией на область условий и область действий. Двойной вертикальной линией таблица также разделяется на две части: в левой части находится колонка с названием "операнд" и символы операций. Справа от двойной линии размещаются колонки правила, которые содержат правые части отношений и операнды операторов (в примере - метки оператора перехода). Полученную таблицу называют таблицей принятия решений (ТР).
Таблица 1.3.1. Таблица принятия решений
Операнд 1 | Оп | 1 | 2 | 3 | 4 | 5 | 6 |
Класс точности | ³ | 4 | 2 | 2 | 1 | 3 | 1 |
Класс чистоты | £ | 6 | 8 | 8 | 9 | 12 | 12 |
Вид термообработки | = | - | 01,02 | 03,04 | - | 01,02 | - |
Несоосность | ³ | 0,1 | 0,02 | 0,01 | 0,01 | - | - |
Перейти к | П1 | П2 | ПЗ | П4 | П5 | П6 |
Таблица интерпретируется следующим образом:
ЕСЛИ класс точности >= 4
И класс чистоты <= 6
И несоосносность >= 0.01
ТО операция 1:= токарная
ЕСЛИ класс точности >= 2
И класс чистоты <= 8
И вид термообработки 01 ИЛИ 02
И несоосносность >= 0.02
ТО операция 1:= токарная, операция 2:= шлифовальная
Нетрудно заметить, что столбцы таблицы являются продукционными правилами.
Таблицу решений выгодно составлять в том случае, когда множество продукционных правил содержит одинаковые условия (посылки), на основе знаний которых принимаются заключения.
По сравнению с блок-схемой алгоритма и записью на алгоритмическом языке в таблице достигнута более высокая степень формализации процесса принятия решения. Она нагляднее, чем запись на алгоритмическом языке, в то же время по сравнению с блок-схемой записана на входном табличном языке.
Семантические сети
В отличие от логических моделей представления знаний семантические сети позволяют успешно структурировать информацию. Граф, который лежит в основе семантической сети, собирает вокруг одного узла всю информацию по некоторому объекту. Такие модели позволяют наглядно представить круг решаемых проблем в большей степени, чем множество правил, относящихся к ним.
Семантическая сеть состоит из множества концептуальных графов. Концептуальный граф соответствует некоторой логической формуле, имена и аргументы предикатов которой изображается двумя типами узлов. Прямоугольники соответствуют аргументам, а круги - именам предикатов. Круг соединяется стрелкой с прямоугольником, если они соответствуют имени и аргументу некоторого предиката. Таким образом, прямоугольники используются для представления аргументов, событий и состояний. А круги - для увязывания этих понятий.
Разработка семантических сетей относится к 1960г., когда они использовались для моделирования обработки естественного языка.
![]() |
Рис. 1.3.1. Концептуальный граф
Логическая формула «Поставка (Интеграл, Луч, Схема_14)» формализует фразу «Завод Интеграл поставляет Схему_14 фирме Луч». На Рис. 1.3.1 изображен концептуальный граф для этой логической формулы.
Семантической сетью называют направленный граф с помеченными вершинами и дугами, в котором вершинам соответствуют конкретные объекты, а дугам - семантические отношения между ними. Имена вершин определяют объекты из некоторой объектной области, например, станок, робокар, деталь и т. д. Метки дуг обозначают элементы множества отношений.
В семантических сетях используются четыре основных типа объектов: понятия, события, свойства и значения.
Понятия представляют собой сведения об абстрактных или физических объектах предметной области. Они могут быть заданы множеством доменов (параметров или констант).
События - это действия, которые могут перевести предметную область из текущего состояния в некоторое новое. Можно перевести предметную область в определенное желаемое (целевое) состояние, поставить задачу, отыскать на семантической сети путь событий, приводящих к целевому состоянию.
Свойства используются для характеристики (уточнения) понятий, событий, процессов и т. д. Свойствами понятий могут быть цвет, размеры, качество, а свойствами действий - время, продолжительность, место и т. д.
Значения - это значения из какого-нибудь множества, которые могут принимать свойства.
Рассмотрим пример семантической сети (Рис. 1.3.2), которая соответствует действию "Иванов руководит Петровым". Она представляется одним событием РУКОВОДИТ и двумя вершинами понятий ИВАНОВ и ПЕТРОВ. Дуги, соединяющие вершины-события и вершины-понятия, указывают роли понятий в событиях. Так, в событии РУКОВОДИТ понятие ИВАНОВ играет роль агента, а ПЕТРОВ - объекта воздействия. Свойством понятия ИВАНОВ является ДОЛЖНОСТЬ со значением ПРОФЕССОР.
![]() |
Рис. 3.4. Пример семантической сети
Объектное (фреймовое) представление
Теорию фреймов опубликовал в 1975г. М. Минский. Эта теория относится к психологическим понятиям и касается способов понимания того, как мы воспринимаем (видим, слышим) явления, процессы, объекты и т. п.
В основе теории фреймов лежит восприятие фактов посредством полученной извне информации о некотором явлении с уже имеющимися данными, накопленными опытным путем или полученными в результате вычислений. Когда человек попадает в новую ситуацию, он вызывает из своей памяти основную структуру, называемую фреймом. Фрейм (рамка) - это единица представления знаний, запомненная в прошлом, детали, которой могут быть изменены согласно текущей ситуации. Класс некоторых объектов (процессов) может определяться одним типичным (базовым) объектом, который включает наиболее существенные характеристики объектов данного класса. Так некоторую характеристику объекта можно представить тройкой (Объект, атрибут _j, значение _j).
Собрав все тройки, касающиеся данного объекта, получим объектное представление области рассуждений, относительно данного объекта. Общая форма этого представления такова:
Объект (атрибут _ i значение _ i), j=1,…m
Таким образом, вместо построения различных независимых формул строим более крупную структуру полной информации об объекте, которую называют фреймом. Если требуется информация о некотором объекте, то обращаются к соответствующему фрейму, внутри которого находятся свойства и факты относительно рассматриваемого объекта. Заметим, что объектное представление можно получить как из логического, так и из других представлений знаний.
Например:
Фрейм, соответствующий понятию «Поставка (Интеграл, Луч, Схема_14)»имеет следующий вид:
ФРЕЙМ (объект) | ||
Поставка | Интеграл | (Слот-1) |
Потребитель | Луч | (Слот-2) |
Товар | Схема_14 | (Слот-3) |
Здесь каждая пара (атрибут, значение) является слотом. Нетрудно заметить, что фрейм содержит различные (наиболее важные) слоты, характеризующие данный объект «поставка».
Фрейм содержит как информационные, так и процедурные элементы, которые обеспечивают преобразование информации внутри фрейма и связи его с другими фреймами. Элементами фрейма являются так называемые слоты (от англ. slot-щель), которые могут быть пустыми и заполняться в процессе активизации фрейма в соответствии с определенными условиями. Таким образом, фреймы представляют собой декларативно-процедурные структуры, т. е. совокупность описаний и (возможно) связанных с ними процедур, доступ к которым выполняется прямо из фрейма.
Фрейм состоит из произвольного числа слотов, среди которых имеются системные слоты и слоты, определяемые пользователем. Каждый слот характеризуется определенной структурой и уникальным именем внутри данного фрейма. В качестве системных могут, например, быть определены следующие слоты: указатель фрейма-родителя, указатель прямого дочернего фрейма, пользователь фрейма, дата определения фрейма и его последней модификации, а также некоторые другие. Системные слоты используются при редактировании БД и управлении выводом.
Понятие «наследование свойств» позволяет фреймам заимствовать свойства, которые имеют другие фреймы. УКАЗАТЕЛИ НАСЛЕДОВАНИЯ касаются только фреймовых систем иерархического типа, основанных на отношениях «абстрактное – конкретное». Они показывают, какую информацию об атрибутах слотов во фрейме верхнего уровня наследуют слоты с такими же именами во фрейме нижнего уровня. Типичные указатели наследования:
U (unique - уникальный); S (same - такой же); R (range - установление границ); О (override - переопределить) и др. Указатель наследования U показывает, что каждый фрейм должен иметь слоты с различными значениями; S - все слоты имеют одно значение; R - значения слотов фрейма нижнего уровня должны находиться в пределах указанных значений слотов фрейма верхнего уровня; О - при отсутствии указания значение слота фрейма верхнего уровня становится значением слота фрейма нижнего уровня.
Структура данных фрейма. Фрейм можно представить в виде таблицы (отношения), строки которой соответствуют слотам фрейма, а столбцы - атрибутам (характеристикам) объекта. Имя таблицы является именем фрейма, и оно уникально. Каждый слот содержит следующие атрибуты: имя слота, указатель наследования, тип данных, значение слота, демон.
ТИП ДАННЫХ определяет, что слот либо имеет численное значение, либо является именем другого фрейма. К типам данных относится: FRAME (указатель); INTEGER (целый); REAL (действительный); BOOL (булев); LISP (присоединенная процедура); ТЕХТ (текст); LIST (список); ТАBLЕ (таблица); ЕХРRESSION (выражение) и др.
ЗНАЧЕНИЕ СЛОТА соответствует указанному типу данных этого слота; кроме того, должно выполняться условие наследования. Значениями слотов могут быть имена других фреймов, что обеспечивает связь (вложенность) между фреймами.
ДЕМОН - автоматически запускаемая процедура при обращении к слоту и выполнении некоторого условия. Например, демон типа IF-NEEDED запускается, если в момент обращения к слоту его значение не было установлено; IF-ADDED запускается при подстановке в слот значения, IF-REMOVED - при стирании значения слота.
Присоединенная процедура может использоваться в качестве значения слота и запускаться по сообщению, переданному из другого фрейма. Когда мы говорим, что фреймы, как модели представления знаний, объединяют декларативные и процедурные знания, то считаем демоны и присоединенные процедуры процедурными знаниями.
Свойства фреймов.
· Базовый тип. Базовые фреймы используются для указания наиболее важных объектов, позволяют добиться быстрого понимания сущности данного предмета. На основании базовых фреймов строятся фреймы для новых состояний. При этом каждый фрейм содержит слот-указатель подструктуры, что позволяет различным фреймам совместно использовать одинаковые части.
· Процесс сопоставления. Во фреймовой системе осуществляется поиск фрейма, который соответствует (релевантен) цели (данной ситуации). Другими словами, сопоставляются значения (ограничения) слота фрейма во фреймовой системе со значениями атрибутов цели. Процесс сопоставления осуществляется следующим образом:
а) Сначала с помощью предложения и интуиции выбирается некоторый базовый фрейм с учетом выявленных особенностей, релевантности, т. е. посредством подфреймов, данный фрейм подтверждает или нет свою релевантность. При этом в соответствии с текущей целью определяется какое ограничение слота следует использовать при сопоставлении. Если фрейм подходит, то процесс сопоставления завершается, в противном случае выполняется пункт б).
б) Если в данном фрейме имеется слот, значение которого отрицательно влияет на сопоставление, то нужно присвоить слоту надлежащее значение.
в) Если два предыдущих шага не дают результата, то управление передается другому надлежащему фрейму этой или другой фреймовой системы. Если последнее сопоставление заканчивается безрезультатно, то задача не имеет решения.
· Иерархическая структура. Фрейм обычно соответствует некоторой иерархической структуре, особенность которой состоит в том, что значения атрибутов фрейма верхнего уровня совместно используются всеми фреймами нижних уровней, связанных с верхними. Такая структура позволяет удобно систематизировать и записать схожие понятия, добавлять новые понятия или знания в соответствующие позиции иерархии, упрощает обнаружение противоречий в знаниях, просмотр знаний и делает фреймовую систему более гибкой.
1.4. Механизм логического вывода
В системах, основанных на концепциях искусственного интеллекта и инженерии знаний, знания в конкретной форме, а имеющаяся база знаний позволяет их легко определять, модифицировать и пополнять. Функция решения задач с помощью логических выводов, делаемых на основании знаний, хранящихся в базе знаний, реализуется автономным механизмом логических выводов (аналогично функционально независимому от СУБД механизму управления файлами, которые используются в прикладных программах). Однако, несмотря на то, что оба этих компонента системы с точки зрения ее структуры являются независимыми, они, тем не менее, находятся в тесной связи. Определение модели представления знаний накладывает ограничения на выбор соответствующего механизма логических выводов. Другими словами, при проектировании подобных систем необходимо параллельно анализировать оба указанных компонента. В большом словаре знания определяются как «результат, полученный познанием», или, более подробно, «система суждений с принципиальной и единой организацией, основанная на объективной закономерности». Исследователи, придающие особую важность научным подходам, предпочитают первое определение, а исследователи, для которых главное - это обязательная гарантия последовательности суждений (люди с логическим мышлением), предпочитают второе. В то же время с точки зрения искусственного интеллекта и инженерии знаний определение знаний необходимо увязать с логическим выводом. Другими словами, можно дать еще одно определение: «знания - это формализованная информация, на которую ссылаются или используют в процессе логического вывода». Процесс решения задач с помощью простейшей модели показан на Рис. 1.4.1. В данном случае знания - это информация, на которую ссылаются, когда делают различные заключения на основании имеющихся данных с помощью логических выводов. Если эта работа выполняется программным путем, то знания - это обязательно информация, представленная в определенной форме.
![]()
![]()
вывод вывод
![]() | ![]() |
Знания Знания
Рис. 1.4.1. Связь между знаниями и выводом при решении интеллектуальной проблемы
1.5. Технология получения знаний
Как отмечалось выше, экспертная система включает базу знаний, решающий блок, подсистему общения, подсистему объяснений и подсистему накопления знаний.
Через подсистему общения с экспертной системой связаны: конечный пользователь - непрограммирующий специалист; эксперт - квалифицированный специалист, опыт и знания которого намного превосходят знания и опыт рядового конечного пользователя; инженер по знаниям, владеющий языками описания знаний.
С экспертной системой на этапе наполнения знаний работают инженер по знаниям и эксперт, а на этапе эксплуатации и использования — конечный пользователь. Знания, которыми должна быть заполнена экспертная система, включают знания первого и второго рода.
Знания первого рода - это общезначимые факты, явления, закономерности - истины, признанные в данной предметной области и зафиксированные в книгах, статьях, справочниках и т. п. Знания второго рода - эмпирические правила, интуитивные соображения и факты, которые, как правило, не публикуются, но которые дают возможность опытному эксперту эффективно принимать решения даже в условиях неполных и противоречивых исходных данных.
Знания в экспертной системе фиксируются в базе знаний, в которой условно можно выделить интенсиональную и экстенсиональную (собственно базу данных) части.
Важное значение имеет подсистема объяснения - основное отличие экспертных систем от других диалоговых человеко-машинных систем. Подсистема объяснения отвечает на вопросы, «как» и «почему» конечный пользователь с помощью экспертной системы принял то или иное решение. В сложных системах подсистема объяснения может быть преобразована в хорошо известную в исследовании операций систему анализа решений. Помимо подсистем объяснения, в экспертных системах начали развиваться специальные подсистемы доверия.
Как известно, знания разделяются на декларативные и процедурные, образующиеся в результате осуществления процедур (алгоритмов, программ, аналитических преобразований и т. п.) над фактами как исходными данными.
Успех в реализации экспертных систем тем больше, чем выше удельный вес знаний первого рода по отношению к знаниям второго рода. Если преобладают знания второго рода, значит, имеют место такие трудности:
· эксперт не может четко сформулировать правила принятия решений;
· эксперт просто не желает передавать кому-либо свои знания, методы и правила, сохраняя за собой статус уникального специалиста;
· в исследуемой предметной области трудно найти эксперта.
Определенным разрешением этих трудностей является использование подсистемы накопления знаний, позволяющей в автоматическом или полуавтоматическом режиме формировать эмпирические зависимости из неполных данных. Подсистема накопления знаний должна из знаний второго рода строить знания первого рода, порождать теорию и затем выводить новые факты. Идея такого подхода, основанная на принципах индуктивного обобщения в машинном обучении. Таким образом, имеет место принципиально новый подход к разработке экспертных систем.
Экспертные системы нельзя разрабатывать по обычной схеме «заказчик-исполнитель». Дело в том, что знания находятся именно у заказчика и заказчик, с помощью инженеров по знаниям, будет заполнять конкретными знаниями так называемые пустые экспертные системы, которые разрабатываются исполнителями.
Помимо этого, в распоряжении исполнителя должна быть инструментальная экспертная система или экспертная система для проектирования пустых и отчасти проблемно-ориентированных экспертных систем. Инструментальные экспертные системы представляют собой средства конструирования пустых и проблемно-ориентированных систем.
2. ПРОГРАММА VP-EXPERT,
ЕЕ ОСНОВНЫЕ ХАРАКТЕРИСТИКИ И ВОЗМОЖНОСТИ
VP-EXPERT - интеллектуальная программа, способная делать логические выводы на основании знаний в конкретной предметной области и обеспечивающая решение специфических задач. VP-EXPERT и другие экспертные системы призваны заменить специалиста в конкретной предметной области, т. е. решать задачи в отсутствии эксперта. VP-EXPERT обладает такими функциями как:
· Механизм предоставления знания в конкретной области и управление ими;
· Механизм, который на основании имеющихся в базе знаний, способен делать логические выводы;
· Интерфейс для правильной передачи ответов пользователю и т. д.
· Для решения различных задач, получения выводов необходимо иметь определенные знания (базу знаний) в этой области. Знаниями принято называть хранимую в ЭВМ информацию, формулируемую в соответствии с определенными структурными правилами, которую ЭВМ может использовать при решении проблем по таким алгоритмам как логические выводы. В VP-EXPERT реализована модель представления знаний основанная на использовании правил (продукционная модель).
Экспертная система VP-EXPERT состоит из множества несвязанных между собой правил и множества фактов, накапливающихся по мере функционирования экспертной системы. База знаний состоит из конечного набора правил (П) и набора фактов (А):
П={P1,……..Pm }
A={a1,……....am}
Таких, что условия применимости любого из правил Pi состоит в одновременном наличии фактов ai1……..ain, следовательно любая продукция Pi из П имеет вид:
Pi: a1Ùa2Ù…..Ùais ® am
где Ù — знак конъюнкции; аm - новый факт, выведенный из фактов-условий аi1, .... аis.
К области применения экспертных систем, разработанных на VP-EXPERT, можно отнести: медицинскую диагностику, оказание помощи пользователям в различных предметных областях, проверку и анализ П/О, анализ риска в политике, экономике и т. д.
2.1. Постановка задачи
Развитие человечества бесспорно связано с развитием прогресса. Думаю, не многие смогут оспорить то, что только за XX-й век человечество совершило огромный скачек в своем развитии. Однако такое гипер-развитие несет не только благо, но и новые проблемы, которые человечество, зачастую, не успевает решать, пытаясь угнаться за прогрессом. Например, к таким проблемам можно отнести, относительно не давно, возникшую проблему экологии. Но темой данного курсового является проблема, которая сопутствует человечеству уже с давних времен, и с развитием прогресса только усугубилась. Это проблема пьянства – алкоголизма.
На данный момент алкоголизм является одной из важнейших проблем человечества. К сожалению, приверженность человека к алкоголю может быть вызвана множеством факторов, например, таких как: глобальные проблемы демографии и экономики, а так же проблемы на уровне быта самого человека (личные проблемы, семейные проблемы) и т. д. В связи с этим алкоголизму подвержены все слои общества, он не различает человека ни по половому, ни по национальному, ни по расовому признаку.
Существует множество различных методов и подходов к борьбе с алкоголизмом. Но все они основываются на одном бесспорном положении – человек страдающий данным «недугом» должен искренне хотеть избавиться от него. Т. Е. другими словами, сам человек должен сделать осознанный выбор и принять решение о лечении.
И именно по этому, целью данного курсового проекта являлась разработка экспертной системы, направленной на непосредственный контакт с самим человеком, а также способной дать оценку его действиям.
2.2. Инструментальные средства VP-EXPERT
EXECUTE - этот оператор начинает режим консультации немедленно после команды Consult.
BKCOLOR = <номер цвета> - настраивает фон экрана на цвет, соответствующий номеру (0-7).
0 - черный | 6- коричневый | 12 - светло-красный |
1 - синий | 7- белый | 13 - розовый |
2 - зеленый | 8 - серый | 14 - желтый |
3 - циан | 9 - голубой | 15 - ярко-белый |
4 - красный | 10 - салатный | |
5 - бордовый | 11- светлый циан |
COLOR = <номер цвета> - настраивает цвет текста согласно его номеру (0-15)
ACTIONS - <предложение1>
<предложение2>
и т. д.
Ключевое слово ACTIONS определяет начало блока ACTIONS, который упорядочивает список операции для VP-EXPERT Consultation (режим консультации) в режиме листинга одного или большего числа предложений, которые будут выполняться по порядку, в течение консультации.
Когда все предложения будут выполнены, консультация будет закончена. В добавление к выполнению предложений блок ACTIONS, может присваивать значения переменным.
FIND <переменная> - предложение FIND, выполняясь, направляет механизм вывода на поиск значения указанной переменной. Если предложение FIND встречается многократно в блоке ACTIONS или в правиле, то VP-EXPERT пытается найти значение для каждой из переменных в той последовательности, в которой они появляются. Механизм вывода передвигается к следующему предложению FIND только после нахождения значения для переменной, указанной в предыдущем предложении FIND или после того, как значение переменной не может быть найдено.
DISPLAY “<текст>~” – выводит на экран данный текстовый блок информации для пользователя (до 1000 символов). Текст должен быть внутри двойных кавычек, а если требуется вывести значение переменной, то в тексте пишется имя этой переменной в фигурных скобках {}.
Имя переменной внутри фигурных скобок со значком # выводится на экран со своим фактором доверия (смотри ниже).
display"{#z}~";
На экран будет выведено: детские_раздвижные CNF 70
RULE <название правила> - ключевое слово RULE, и следующий за ним пробел и метка правила длиной до 20 символов, идентифицирует начало базы знаний. Правило состоит из имени правила (ключевое слово RULE плюс пробел плюс метка правила); посылка (ключевое слово IF и следующие за ним одно или нескольких условий разделенные операторами AND или OR); заключение (ключевое слово THEN и следующие за ним одно или более заключений) и точка с запятой, означающая конец правила.
RULE 1
IF <переменная1>=<значение1>
THEN <переменная2>=<значени2>;
Если значение переменной состоит из нескольких слов, то слова должны быть соединены значком «_». Например: детские_раздвижные CNF 70. Иногда перед точкой с запятой вводится фактор доверия - CNF - это числа используемые для подсчета истинного значения порога доверия. Например, в нижеследующем примере фактор доверия указывает, что заключение получается с 70% доверием.
RULE 7
if a=меньше_9 and
time1= or
time2= or
time3= or
time4=
then z=детские_раздвижные CNF 70
z1=Exo1*Raider*PlasmaX
z2=Orlando*NewOrleanVel
z3=MicroBladeXT
z4=ZElite
z5=2800*3100*2400
z6=2750*3200
z7=3400
z8=3500;
Если фактор доверия не указан, то ему присваивается значение 100%.
ASK <переменная1>: “<текст>” - когда для выведения умозаключения машина не может найти правила, чтобы присвоить значение переменной, она ищет оператор ASK, в котором упоминается эта переменная. Если он найден, оператор ASK выводит на экран текст находящегося в нем сообщения. Затем машина ожидает ответа пользователя. Значение поступившее от пользователя, присваивается данной переменной.
Иногда после оператора ASK следует оператор:
CHOICES <переменная1>:<значение1>,<значение2> - этот оператор выводит на экран меню выбора из <значение1> и <значение2>. Если оператора CHOISES не введено, то значение переменной нужно вводить вручную.
Интерфейс VP-EXPERT выглядит следующим образом:

Help – вызывает системный помощник (help).
Induce – создает рабочую базу знаний из таблицы ввода, содержащейся в тексте, базе данных или в файле рабочего листа.
Edit – вызывает редактор (Editor) и загружает текущую базу знаний.
Consult – загружает текущую базу знаний в память и воспроизводит на экране консультационное меню (Consult menu).
Tree – воспроизводит на экране меню выбора для просмотра результатов прохождения консультации.
Filename – помогает вам заменить текущую активную базу знаний.
Path – назначает путь к директории, используемой для доступа к файлам базы знаний.
Quit – выход из программы.
Для получения более подробных сведений о каждом пункте меню необходимо воспользоваться системным помощником.
Ниже будет приведен пример программы, содержащей базу знаний и инструкции консультационного меню.
3. РЕАЛИЗАЦИЯ
Запуск режима консультации: программа писалась в HEX-редакторе. Рабочий файл сохранялся с расширением. kbs. Запускаем VP-EXPERT выбираем Edit и находим в списке файл. Консультация начинается с нажатия кнопки Consult.
Пример работы в режиме консультации

Вывод результата в виде таблицы

Текст программы экспертной системы «Роликовые коньки – помощь Чайнику»
runtime;
execute;
bkcolor=1;
actions
color=15
display "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Роликовые коньки - помощь чайнику
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
~"
find z
find z1
find z2
find z3
find z4
display"
-
Совет: {#z}
--
Ваши Ролики
--
фирма| модель
--
K2: {z1}
Roces: {z2}
RollerBlade: {z3}
Salomon: {z4}
--
--
фирма| стоимость (в рублях)
--
K2: {z5}
Roces: {z6}
RollerBlade: {z7}
Salomon: {z8}
--~";
RULE 0
if time<=2399
then z=подкопите_денег CNF 100
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 1
if time>=2400 and
time<=3999
then time1=;
RULE 2
if time>=4000 and
time<=5999
then time2=;
RULE 3
if time>=6000 and
time<=7999
then time3=;
RULE 4
if time>=8000 and
time<=9999
then time4=;
RULE 6
if time>=10000
then z=можно_дешевле CNF 100
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 7
if a=меньше_9 and
time1= or
time2= or
time3= or
time4=
then z=детские_раздвижные CNF 70
z1=Exo1*Raider*PlasmaX
z2=Orlando*NewOrleanVel
z3=MicroBladeXT
z4=ZElite
z5=2800*3100*2400
z6=2750*3200
z7=3400
z8=3500;
RULE 8
if a=больше_10
then a1=bolshe10;
RULE 9
if b=менее_75
then b1=menee75;
RULE 10
if b=более_76
then b2=bolee76;
RULE 11
if c=нет
then c1=newmen;
RULE 12
if c=катаюсь_иногда
then c2=luzer;
RULE 13
if c=большой_опыт
then c3=profi;
RULE 14
if d=не_быстрой_спокойной
then d1=recreation;
RULE 15
if d=спортивной_быстрой
then d2=fitness;
RULE 16
if d=агрессивной
then d3=aggressive;
RULE 17
if d=слалом
then d4=race;
RULE 18
if e=около_2_часов
then e1=okolo2;
RULE 19
if e=более_3_часов
then e2=bolee3;
RULE 20
if f=побыстрее
then f1=fast;
RULE 21
if f=хорошая_фиксация
then f2=goodfix;
RULE 22
if g=мужской
then g1=men;
RULE 23
if g=женский
then g2=women;
RULE 24
if time1= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c1=newmen and
d1=recreation and
e1=okolo2 and
f1=fast and
g1=men
then z=подшипники_ABEC-3 CNF 70
z1=CadenceLS
z2=нет
z3=Fusion*SpiritBlade
z4=нет
z5=3900
z6=нет
z7=3900*2500
z8=нет;
RULE 25
if time1= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c1=newmen and
d1=recreation and
e1=okolo2 and
f1=fast and
g2=women
then z=подшипники_ABEC-3 CNF 70
z1=CadenceLS
z2=нет
z3=SpiritBladeW
z4=нет
z5=3900
z6=нет
z7=2500
z8=нет;
RULE 26
if time2= or
time3= or
time4= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c1=newmen or
c2=luzer or
c3=profi and
d1=recreation or
d2=fitness or
d3=aggressive or
d4=race and
e1=okolo2 or
e2=bolee3 and
f1=fast and
g1=men or
g2=women
then z=хорошая_фиксация CNF 100
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 27
if time1= and
a1=bolshe10 and
b1=menee75 and
c1=newmen and
d1=recreation and
e1=okolo2 and
f2=goodfix and
g1=men
then z=подшипники_ABEC-3 CNF 70
z1=Exo3*Echo2*CadenceLS
z2=NewYorkCity
z3=GeoBlade1.3*Evo
z4=нет
z5=3700*3100*3900
z6=3850
z7=3600*3700
z8=нет;
RULE 28
if time1= and
a1=bolshe10 and
b1=menee75 and
c1=newmen and
d1=recreation and
e1=okolo2 and
f2=goodfix and
g2=women
then z=подшипники_ABEC-3 CNF 70
z1=Exo3*Echo2*CadenceLS
z2=нет
z3=GeoBlade1.3*Evo
z4=нет
z5=3700*3100*3900
z6=нет
z7=3600*3700
z8=нет;
RULE 29
if time1= and
a1=bolshe10 and
b1=menee75 and
c1=newmen and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men
then z=подшипники_ABEC-3-5 CNF 70
z1=CadenceLS*ImpulseLS
z2=NewYorkCity
z3=Evo
z4=нет
z5=3900*3050
z6=3850
z7=3700
z8=нет;
RULE 30
if time1= and
a1=bolshe10 and
b1=menee75 and
c1=newmen and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g2=women
then z=подшипники_ABEC-3-5 CNF 70
z1=CadenceLS*ImpulseLS
z2=нет
z3=Evo
z4=нет
z5=3900*3050
z6=нет
z7=3700
z8=нет;
RULE 31
if time1= and
a1=bolshe10 and
b1=menee75 and
c2=luzer and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men
then z=подшипники_ABEC-3-5 CNF 70
z1=Ascent*CadenceLS
z2=NewYorkCity
z3=Evo
z4=нет
z5=3700*3900
z6=3850
z7=3700
z8=нет;
RULE 32
if time1= and
a1=bolshe10 and
b1=menee75 and
c2=luzer and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g2=women
then z=подшипники_ABEC-3-5 CNF 70
z1=Ascent*CadenceLS
z2=нет
z3=Evo
z4=нет
z5=3700*3900
z6=нет
z7=3700
z8=нет;
RULE 33
if time1= and
a1=bolshe10 and
b2=bolee76 and
c1=newmen or
c2=luzer and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men
then z=подшипники_ABEC-3-5 CNF 70
z1=CadenceLS
z2=NewYorkCity
z3=Evo
z4=нет
z5=3900
z6=3850
z7=3700
z8=нет;
RULE 34
if time1= and
a1=bolshe10 and
b2=bolee76 and
c1=newmen or
c2=luzer and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g2=women
then z=подшипники_ABEC-3-5 CNF 70
z1=CadenceLS
z2=нет
z3=Evo
z4=нет
z5=3900
z6=нет
z7=3700
z8=нет;
RULE 35
if time1= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c1=newmen or
c2=luzer or
c3=profi and
d2=recreation or
d3=fitness or
d3=aggressive or
d4=race and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подкопите_денег CNF 100
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 36
if time2= and
a1=bolshe10 and
b1=menee75 and
c1=newmen or
c2=luzer and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-3 CNF 70
z1=нет
z2=Munich*Dublin
z3=Core05*Geoblade1.5
z4=нет
z5=нет
z6=4200*4800
z7=5100*4400
z8=нет;
RULE 37
if time2= and
a1=bolshe10 and
b1=menee75 and
c3=profi and
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men
then z=подшипники_ABEC-5-7 CNF 70
z1=SpireXP*Power6
z2=нет
z3=Evo08
z4=OptimaAlu*Deflector2
z5=5200*5950
z6=нет
z7=4950
z8=5650*5900;
RULE 38
if time2= and
a1=bolshe10 and
b1=menee75 and
c3=profi and
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g2=women
then z=подшипники_ABEC-5-7 CNF 70
z1=SpireXP*Power6
z2=нет
z3=нет
z4=OptimaAlu*Deflector2
z5=5200*5950
z6=нет
z7=нет
z8=5650*5900;
RULE 39
if time2= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c3=profi and
d3=aggressive and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-5-7 CNF 70
z1=FattyProUFS*FattyUFS
z2=M12*Five-K
z3=нет
z4=нет
z5=5400*4800
z6=4900*5950
z7=нет
z8=нет;
RULE 40
if time2= and
a1=bolshe10 and
b2=bolee76 and
c1=newmen or
c2=luzer and
d1=recreation or
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-3 CNF 70
z1=нет
z2=Munich*Dublin
z3=Core05*EvoSL
z4=нет
z5=нет
z6=4200*4800
z7=5100*4600
z8=нет;
RULE 41
if time2= and
a1=bolshe10 and
b2=bolee76 and
c3=profi and
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-5-7 CNF 70
z1=SpireXP*Power6
z2=нет
z3=нет
z4=OptimaAlu*Deflector2
z5=5200*5950
z6=нет
z7=нет
z8=5650*5900;
RULE 42
if time2= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c1=newmen or
c2=luzer and
d3=aggressive and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=мало_опыта CNF 70
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 43
if time2= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c1=newmen or
c2=luzer or
c3=profi and
d4=race and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подкопите_денег CNF 70
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 44
if time2= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c3=profi and
d1=recreation and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=катайтесь_быстрее CNF 70
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 45
if time3= and
a1=bolshe10 and
b1=menee75 and
c2=luzer or
c3=profi and
d2=fitness and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-5-7 CNF 70
z1=нет
z2=нет
z3=Aero9
z4=ThunderMax*Motion8Ti
z5=нет
z6=нет
z7=6300
z8=7200*7700;
RULE 46
if time3= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c2=luzer or
c3=profi and
d3=aggressive and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-5-7 CNF 70
z1=PatLennen*Transfer
z2=нет
z3=TrsAlpha*TrsAccess
z4=StProUFS*St80
z5=7100*7200
z6=нет
z7=6600*6900
z8=7100*6200;
RULE 47
if time3= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c2=luzer or
c3=profi and
d2=fitness or
d4=race and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-7 CNF 70
z1=нет
z2=нет
z3=нет
z4=ThunderMax
z5=нет
z6=нет
z7=нет
z8=7200;
RULE 48
if time3= or
time4= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c1=newmen and
d1=recreation or
d2=fitness or
d3=aggressive or
d4=race and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=необходим_опыт CNF 70
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 49
if time3= or
time4= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c2=luzer or
c3=profi and
d1=recreation and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=катайтесь_быстрее CNF 70
z1=нет
z2=нет
z3=нет
z4=нет
z5=нет
z6=нет
z7=нет
z8=нет;
RULE 50
if time4= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c2=luzer or
c3=profi and
d2=fitness or
d4=race and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-7 CNF 70
z1=нет
z2=нет
z3=нет
z4=DeeMax3*Pilot9Ti
z5=нет
z6=нет
z7=нет
z8=9400*9100;
RULE 51
if time4= and
a1=bolshe10 and
b1=menee75 or
b2=bolee76 and
c2=luzer or
c3=profi and
d3=aggressive and
e1=okolo2 or
e2=bolee3 and
f2=goodfix and
g1=men or
g2=women
then z=подшипники_ABEC-5-7 CNF 70
z1=нет
z2=нет
z3=нет
z4=RThompson*VinMinton
z5=нет
z6=нет
z7=нет
z8=9400*8900;
ask time: "Сколько вы планируете потратить денег (в рублях)?";
ask a: "Укажите свой возраст?";
choices a: меньше_9,больше_10;
ask b: "Какой у вас вес (в кг)?";
choices b: менее_75,более_76;
ask c: "Имеете ли вы опыт катания на роликах?";
choices c: нет, катаюсь_иногда, большой_опыт;
ask d: "Для какой езды вы покупаете ролики?";
choices d: не_быстрой_спокойной, спортивной_быстрой, агрессивной, слалом;
ask e: "Сколько времени вы планируете проводить на роликах?";
choices e: около_2_часов, более_3_часов;
ask f: "Что для вас предпочтительнее при одевании роликов?";
choices f: побыстрее, хорошая_фиксация;
ask g: "К какому полу вы относитесь?";
choices g: мужской, женский;
ЗАКЛЮЧЕНИЕ
Результатом выполнения данного курсового проекта стала разработка Экспертной системы «Роликовые коньки – помощь Чайнику».
Экспертная система предоставляет возможность пользователю интересующийся роликовыми коньками, в режиме консультации получить совет, марку (фирму) и модель роликовых коньков с их стоимостью наиболее удовлетворяющие запросы пользователя.







