Реферат Курсовая Конспект
Введение в экспертные системы - раздел Образование, Оглавление Предисловие.................................................
|
Оглавление
Предисловие............................................................................................................................................ 5
1. Введение в экспертные системы.................................................................................................... 6
1.1. Структура экспертных систем........................................................................................................................................... 11
1.2. Классификация систем, основанных на знаниях.......................................................................................................... 14
1.3. Интерпретация данных........................................................................................................................................................ 15
1.4. Диагностика............................................................................................................................................................................ 15
1.5. Мониторинг............................................................................................................................................................................. 16
1.6. Проектирование..................................................................................................................................................................... 16
1.7. Прогнозирование................................................................................................................................................................... 17
1.8. Планирование......................................................................................................................................................................... 17
1.9. Обучение.................................................................................................................................................................................. 18
1.10. Управление......................................................................................................................................................................... 18
1.11. Поддержка принятия решений...................................................................................................................................... 18
1.12. Классификация по связи с реальным временем........................................................................................................ 19
1.13. Классификация по типу ЭВМ........................................................................................................................................ 20
1.14. Классификация по степени интеграции с другими программами....................................................................... 20
1.15. Этапы разработки экспертных систем....................................................................................................................... 21
1.16. Представление знаний в экспертных системах........................................................................................................ 27
Контрольные вопросы....................................................................................................................................................................... 28
2. Формальные основы экспертных систем.................................................................................... 31
2.1. Исчисление предикатов....................................................................................................................................................... 31
2.2. Доказательство с введением допущения......................................................................................................................... 35
2.3. Доказательство приведением к противоречию............................................................................................................. 36
2.4. Доказательство методом резолюции............................................................................................................................... 38
2.5. Применение метода резолюций для ответов на вопросы........................................................................................... 41
2.6. Эвристики для поиска доказательства............................................................................................................................ 46
2.7. Подстановка и унификация................................................................................................................................................. 47
Контрольные вопросы....................................................................................................................................................................... 50
3. Представление знаний предметной области.............................................................................. 51
3.1. Семантические сети.............................................................................................................................................................. 51
3.2. Фреймы..................................................................................................................................................................................... 54
3.3. Правила продукций............................................................................................................................................................... 56
Контрольные вопросы....................................................................................................................................................................... 59
4. Методы стратегии поиска решений............................................................................................. 60
4.1. Поиск решения задач в пространстве состояний......................................................................................................... 61
4.2. Методы поиска решений в одном пространстве.......................................................................................................... 62
4.3. Процессы поиска на графе.................................................................................................................................................. 65
4.4. Эвристический поиск............................................................................................................................................................ 70
4.5. Экспертная система на правилах..................................................................................................................................... 78
4.6. Экспертные системы, базирующиеся на логике........................................................................................................... 81
Контрольные вопросы....................................................................................................................................................................... 88
5. Системы с доской объявлений..................................................................................................... 89
5.1. Принцип организации систем с доской объявлений.................................................................................................... 89
5.2. Система HEARSAY.............................................................................................................................................................. 91
5.3. Использование источников знаний в системе HEARSAY.......................................................................................... 94
Контрольные вопросы....................................................................................................................................................................... 97
6. Вывод в условиях неопределенности или неполных знаний................................................... 98
6.1. Виды неопределенности...................................................................................................................................................... 98
6.2. Байесовский метод.............................................................................................................................................................. 100
6.3. Биполярные схемы для коэффициентов определенности........................................................................................ 112
6.4. Теория свидетельств Демпстера-Шефера.................................................................................................................... 114
6.5. Нечеткие множества и нечеткая логика........................................................................................................................ 121
6.6. Многоступенчатые рассуждения................................................................................................................................... 127
6.7. Процесс распространения в сети.................................................................................................................................... 130
Контрольные вопросы..................................................................................................................................................................... 134
7. Нейросетевая технология............................................................................................................ 135
7.1. Особенности нейросетей................................................................................................................................................... 135
7.2. Свойства нейрона................................................................................................................................................................ 137
7.3. Использование нелинейных элементов......................................................................................................................... 141
7.4. Сеть Хопфилда..................................................................................................................................................................... 146
7.5. Многослойные сети............................................................................................................................................................ 148
7.6. Динамика обучения и поведения.................................................................................................................................... 151
7.7. Обучение многослойных сетей........................................................................................................................................ 155
7.8. Проблемы и перспективы.................................................................................................................................................. 159
7.9. Применение нейросетевой технологии......................................................................................................................... 161
Контрольные вопросы..................................................................................................................................................................... 169
8. Инструментальный комплекс G2............................................................................................... 170
8.1. База знаний........................................................................................................................................................................... 171
8.2. Сущности и иерархии классов........................................................................................................................................ 173
8.3. Структура данных БЗ........................................................................................................................................................ 175
8.4. Объекты.................................................................................................................................................................................. 178
8.5. Связи и отношения.............................................................................................................................................................. 181
8.6. Исполняемые утверждения БЗ......................................................................................................................................... 182
8.7. Машина вывода................................................................................................................................................................... 184
8.8. Планировщик........................................................................................................................................................................ 186
8.9. Моделирование.................................................................................................................................................................... 188
8.10. Естественно- языковой текстовый редактор........................................................................................................... 191
8.11. Изображения.................................................................................................................................................................... 195
8.12. Управляющие воздействия........................................................................................................................................... 195
8.13. Сообщения........................................................................................................................................................................ 197
8.14. Управление доступом.................................................................................................................................................... 198
8.15. Создание опций меню.................................................................................................................................................... 199
8.16. Перевод опций меню...................................................................................................................................................... 199
8.17. Средства инспекции и отладки................................................................................................................................... 199
8.18. Интерфейс с внешним окружением............................................................................................................................ 200
9. Информационные - ресурсы Интернет..................................................................................... 206
Приложение 1..................................................................................................................................... 207
Приложение 2..................................................................................................................................... 208
Приложение 3..................................................................................................................................... 218
Приложение 4..................................................................................................................................... 222
Приложение 5..................................................................................................................................... 228
Литература........................................................................................................................................... 230
Предисловие
В книге сделана попытка систематизировать знания и опыт, накопленные в области экспертных систем, и представить их в виде сжатого курса по методологии экспертных систем и их применения в реальных условиях.
Глава 1 содержит обзор состояния рынка систем искусственного интеллекта, структуру экспертной системы (ЭС), этапы разработки ЭС и представления знаний.
Глава 2 посвящена рассмотрению двух системы логики - исчислению высказываний и исчислению предикатов. Описана формальная система доказательства формул исчисления высказываний и предикатов.
В главе 3 описаны методы представления знаний предметной области – семантические сети, фреймы, правила продукций.
Глава 4 посвящена методам решения задач и приведены программы с использованием эвристических оценочных функций.
Главы 5 и 6 знакомят с некоторыми принципами организации ЭС и вероятностными рассуждениями при поиске решений в условиях неопределенности и выводе в сети при наличии конкурирующих гипотез.
Комбинированное использование экспертной системы и аппарата искусственных нейронных сетей, описанных в главе 7, обеспечивает необходимую гибкость и самообучение на основе знаний.
Описание оболочки G2- графической, объектно – ориентированной среды для построения и сопровождения экспертных систем реального времени, предназначенных для мониторинга, диагностики, оптимизации, планирования и управления динамическими процессами, приведено в главе 8.
Информационные ресурсы Интернет, используемые при подготовке данного пособия перечислены в главе 9.
Введение в экспертные системы
В начале восьмидесятых годов в исследованиях по искусственному интеллекту сформировалось самостоятельное направление, получившее название "экспертные системы" (ЭС). Цель исследований по ЭС состоит в разработке программ, которые при решении задач, трудных для эксперта-человека, получают результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом. Исследователи в области ЭС для названия своей дисциплины часто используют также термин "инженерия знаний", введенный Е. Фейгенбаумом [15] как "привнесение принципов и инструментария исследований из области искусственного интеллекта в решение трудных прикладных проблем, требующих знаний экспертов".
Программные средства (ПС), базирующиеся на технологии экспертных систем, или инженерии знаний (в дальнейшем будем использовать их как синонимы), получили значительное распространение в мире. Важность экспертных систем состоит в следующем:
- технология экспертных систем существенно расширяет круг практически значимых задач, решаемых на компьютерах, решение которых приносит значительный экономический эффект;
- технология ЭС является важнейшим средством в решении глобальных проблем традиционного программирования: длительность и, следовательно, высокая стоимость разработки сложных приложений; высокая стоимость сопровождения сложных систем, которая часто в несколько раз превосходит стоимость их разработки; низкий уровень повторной используемости программ и т.п.;
- объединение технологии ЭС с технологией традиционного программирования добавляет новые качества к программным продуктам за счет обеспечения динамичной модификации приложений пользователем, а не программистом; большей "прозрачности" приложения (например, знания хранятся на ограниченном естественном языке (ЕЯ), что не требует комментариев к знаниям, упрощает обучение и сопровождение); лучшей графики; интерфейса и взаимодействия.
По мнению ведущих специалистов [7], в недалекой перспективе ЭС найдут следующее применение:
- ЭС будут играть ведущую роль во всех фазах проектирования, разработки, производства, распределения, продажи, поддержки и оказания услуг;
- технология ЭС, получившая коммерческое распространение, обеспечит революционный прорыв в интеграции приложений из готовых интеллектуально- взаимодействующих модулей.
ЭС предназначены для так называемых неформализованных задач, т.е. ЭС не отвергают и не заменяют традиционного подхода к разработке программ, ориентированного на решение формализованных задач, которые обладают одной или несколькими из следующих характеристик:
- задачи не могут быть заданы в числовой форме;
- цели не могут быть выражены в терминах точно определенной целевой функции;
- не существует алгоритмического решения задач;
- Неформализованные задачи обычно обладают:
- ошибочностью, неоднозначностью, неполнотой и противоречивостью исходных данных;
- ошибочностью, неоднозначностью, неполнотой и противоречивостью знаний о проблемной области и решаемой задаче;
- большой размерностью пространства решения, т.е. перебор при поиске решения весьма велик;
- динамически изменяющимися данными и знаниями.
Следует подчеркнуть, что неформализованные задачи представляют большой и очень важный класс задач.
Экспертные системы и системы искусственного интеллекта отличаются от систем обработки данных тем, что в них в основном используются символьный (а не числовой) способ представления, символьный вывод и эвристический поиск решения (а не исполнение известного алгоритма).
По качеству и эффективности решения экспертные системы не уступают решениям эксперта-человека. Решения экспертных систем обладают "прозрачностью", т.е. могут быть объяснены пользователю на качественном уровне. Это качество экспертных систем обеспечивается их способностью рассуждать о своих знаниях и умозаключениях. Экспертные системы способны пополнять свои знания в ходе взаимодействия с экспертом.
Технология экспертных систем используется для решения различных типов задач: интерпретация, предсказание, диагностика, планирование, конструирование, контроль, отладка, инструктаж, управление. Применяется в самых разнообразных проблемных областях, таких, как финансы, нефтяная и газовая промышленность, энергетика, транспорт, фармацевтическое производство, космос, металлургия, горное дело, химия, образование, целлюлозно-бумажная промышленность, телекоммуникации и связь и др.
Коммерческие успехи к фирмам-разработчикам систем искусственного интеллекта (СИИ) пришли не сразу. На протяжении 1960 - 1985 гг. успехи ИИ касались в основном исследовательских разработок, которые демонстрировали пригодность СИИ для практического использования. Начиная примерно с 1985 г. (в массовом масштабе с 1988 - 1990 гг.), в первую очередь ЭС, а в последние годы системы, воспринимающие естественный язык (ЕЯ-системы), и нейронные сети (НС) стали активно использоваться в коммерческих приложениях.
Рисунок 1.1 отражает [54] различные аспекты состояния рынка ИИ: инвестиции в разработку в области ИИ (США, Европа, Япония) (Рисунок 1.1, а); доля систем ИИ в информатике (программном обеспечении) (Рисунок 1.1, б); доходы от продаж традиционных языков программирования (Рисунок 1.1, в); инвестиции только в программное обеспечение (США) (Рисунок 1.1, г).
Надо отметить, что на заре появления ЭС специфика используемых в них языков, технологии разработки приложений и используемого специального оборудования (например, Lisp-машины) давала основания предполагать, что интеграция ЭС с традиционными, программными системами является сложной и, возможно, невыполнимой задачей при ограничениях, накладываемых реальными приложениями.
Прирост % в год % от рынка информатики
220 28
100 Европа
Япония
80 США 0,16
1984 87 89 91 93 1985 90 2000
а б
млн $ млн $
Языки ИИ
420 480 ПО для ИИ
Язык для ЭС
230 для ПЭВМ 650
ЕЯ интерфейс
Языки для
20 mainframe ЭВМ Распознавание
270 Речи
1984 88 92 94 96 1986 90 94
в г
Рисунок 1.1. Состояние и перспективы рынка ИИ
Однако в настоящее время коммерческие инструментальные средства (ИС) для создания ЭС разрабатываются в полном соответствии с современными технологическими тенденциями традиционного программирования, что снимает проблемы, возникающие при создании интегрированных приложений.
Причины, приведшие СИИ к коммерческому успеху, следующие.
Интегрированность. Разработаны инструментальные средства искусственного интеллекта (ИС ИИ), легко интегрирующиеся с другими информационными технологиями и средствами (с CASE, СУБД, контроллерами, концентраторами данных и т.п.).
Открытость и переносимость. ИС ИИ разрабатываются с соблюдением стандартов, обеспечивающих открытость и переносимость.
Использование языков традиционного программирования и рабочих станций. Переход от ИС ИИ, реализованных на языках ИИ (Lisp, Prolog и т.п.), к ИС ИИ, реализованным на языках традиционного программирования (С, C++ и т.п.), упростил обеспечение интегрированности, снизил требования приложений ИИ к быстродействию ЭВМ и объемам оперативной памяти. Использование рабочих станций (вместо ПК) резко увеличило круг приложений, которые могут быть выполнены на ЭВМ с использованием ИС ИИ.
Архитектура клиент-сервер. Разработаны ИС ИИ, поддерживающие распределенные вычисления по архитектуре клиент-сервер, что позволило: снизить стоимость оборудования, используемого в приложениях, децентрализовать приложения, повысить надежность и общую производительность (так как сокращается количество информации, пересылаемой между ЭВМ, и каждый модуль приложения выполняется на адекватном ему оборудовании).
Проблемно/предметно-ориентированные ИС ИИ. Переход от разработок ИС ИИ общего назначения (хотя они не утратили свое значение как средство для создания ориентированных ИС) к проблемно/предметно-ориентированным ИС ИИ [9] обеспечивает: сокращение сроков разработки приложений; увеличение эффективности использования ИС; упрощение и ускорение работы эксперта; повторную используемость информационного и программного обеспечения (объекты, классы, правила, процедуры).
Классификация систем, основанных на знаниях
Класс ЭС сегодня объединяет несколько тысяч различных программных комплексов, которые можно классифицировать по различным критериям [54]. Одна из возможных классификаций (Рисунок 1.3).
Планирование
Под планированием понимается нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В таких ЭС используются модели поведения реальных объектов с тем, чтобы логически вывести последствия планируемой деятельности. Примеры:
- Планирование поведения робота – STRIPS.
- Планирование промышленных заказов – ISIS.
- Планирование эксперимента – MOLGEN.
Управление
Под управлением понимается функция организованной системы, поддерживающая определенный режим деятельности. Такого рода ЭС осуществляют управление поведением сложных систем с заданными спецификациями.
Примеры:
- Помощь в управлении газовой котельной – GAS.
- Управление системой календарного планирования – Project Assistant.
Классификация по связи с реальным временем
Статические ЭС разрабатываются в предметных областях, в которых база знаний и интерпретируемые данные не меняются во времени. Они стабильны.
Пример:
- Диагностика неисправностей в автомобиле.
Квазидинамические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени.
Пример:
- Микробиологические ЭС, в которых снимаются лабораторные измерения с технологического процесса один раз в 4-5 часов (например, производство лизина) и анализируется динамика полученных показателей по отношению к предыдущему измерению.
Динамические ЭС работают в сопряжении с датчиками объектов в режиме реального времени с непрерывной интерпретацией поступающих в систему данных.
Примеры:
- Управление гибкими производственными комплексами, мониторинг в реанимационных палатах.
- Программный инструментарий для разработки динамических систем – G2.
Классификация по типу ЭВМ
На сегодняшний день существуют:
- ЭС для уникальных стратегически важных задач на супер-ЭВМ – CRAY, CONVEX.
- ЭС на ЭВМ средней производительности типа Mainframe.
- ЭС на символьных процессорах и рабочих станциях SUN, Silicon Graphics, APOLLO.
- ЭС на мини- и супермини-ЭВМ VAX, micro-VAX.
- ЭС на персональных компьютерах.
Классификация по степени интеграции с другими программами
Автономные ЭС работают непосредственно в режиме консультаций с пользователем для специфических «экспертных» задач, для решения которых не требуется привлекать традиционные методы обработки данных (расчеты, моделирование и т.д.).
Гибридные ЭС представляют программный комплекс, агрегирующий стандартные пакеты прикладных программ (ППП) (например, матстатистика, линейное программирование, СУБД) и средства манипулирования знаниями. Это может быть интеллектуальная надстройка над ППП или интегрированная среда для решения сложной задачи с элементами экспертных знаний.
Несмотря на внешнюю привлекательность гибридного подхода, следует отметить, что разработка таких систем представляет собой задачу, на порядок более сложную, чем разработка автономной ЭС. Стыковка не просто разных пакетов, а разных методологий (что происходит в гибридных системах) порождает целый комплекс теоретических и практических трудностей.
Контрольные вопросы
1. Для каждой из перечисленных программ решите, является ли она ЭС
- Программа прогнозирования местной погоды.
- Программа для обнаружения неисправности, если автомобиль не заводится.
- Программа для определения стратегии гонки в режиме реального времени .
- Программа для определения оптимального маршрута коммивояжера.
- Программа помощи по телефону доверия, когда необходимо определить яд, который мог быть принят звонящим.
- Программа получения трехмерного изображения дома на основании словесного описания устройства и размеров дома.
Формальные основы экспертных систем
Доказательство с введением допущения
Для доказательства импликации вида А→В допускается, что левая часть А истинна, т.е. А принимается в качестве дополнительной посылки, и делаются попытки доказать правую часть, В.
Сам метод опирается на две важные теоремы о доказательствах [60].
Теорема 1. А ├ В тогда и только тогда, когда ├ А→ В.
Эта теорема утверждает, что доказуемость заключения В из допущения А эквивалентна доказуемости импликации А→ В без каких-либо дополнительных допущений.
Теорема 2. А1,А2,...,Аn ├ В тогда и только тогда, когда
├(А1А2...An) → В.
Эта теорема получается из предыдущей и того факта, что все посылки А1,...,Аn истинны тогда и только тогда, когда истинна их конъюнкция (основное свойство связки И).
Наконец, очень полезная эквивалентность |= (X→(Y→Z))↔(XY→Z).
Она легко доказывается с помощью соотношений булевой алгебры так как левая и правая части сводятся к ~X~YZ.
Рассмотрим пример доказательства с введением допущения.
Если А1. А2,..., Аn, Р ├Q,
то ├А1А2...АnР→Q) в силу теоремы 2,
откуда ├А1A2...Аn)→(P→Q) в силу эквивалентности,
откуда ├А1,А2,...,Аn ├Р→Q) в силу теоремы 2.
Контрольные вопросы
1). Изучите следующие правила вывода:
a →m | b → p | d и a → n |
f → y | b и c → l | x и a → z |
e → p | c и m → x | p и y → w |
2). Известно, что a, b и c истинны. Докажите истинность z и w.
3). Напишите факты правила с помощью которых можно установить ЕСЛИ А и В учатся в одной группе ТО знают друг друга.
4). Напишите факты правила с помощью которых можно установить ЕСЛИ А и В супруги ТО С и D брат и сестра.
5). Докажите с помощью метода резолюций истинность утверждений:
a) P Q | b) ~B A | |
A B | C B | |
(A ~P) v(B) | ~C | |
B истинно? | A истинно? |
Представление знаний предметной области
Фреймы
Принцип организации свойств некоторого объекта или события для формирования прообраза реализуется с помощью нотации вида <фрейм>. Для иллюстрации этого опишем сведения о служащем компании, как это сделано в предыдущем разделе. Достоинство системы, использующей фреймы, заключается в том, что те элементы, которые традиционно присутствуют в описании объекта или события, группируются и благодаря этому могут извлекаться и обрабатываться как единое целое. Первый пример касается понятия <руководитель> (см. рис. 3.4) и иллюстрирует некоторые особенности фреймов.
имя: РУКОВОДИТЕЛЬ |
специальность: СЛУЖАЩИЙ |
имя: ________________________ |
возраст:______________________ |
адрес: _______________________ |
отдел:_______________________ |
заработная плата:_____________ |
дата начала: _________________ |
до: _________________________ |
Рисунок 3.4 Скелетный фрейм для понятия <РУКОВОДИТЕЛЬ>
Во-первых, фрейм имеет имя для идентификации описываемого им понятия. Во-вторых, его описание составляется из ряда описаний, приведенных на рисунке слева, которые получили название <слоты>. С помощью слотов идентифицируются основные структурные элементы понятий. За слотами следуют шпации (промежутки), в которые помещают некоторые объекты, представляющие текущие значения слотов.
имя: РУКОВОДИТЕЛЬ
специальность: СЛУЖАЩИЙ
имя: агрегат (фамилия, имя, отчество)
возраст; агрегат (годы)
адрес: АДРЕС
отдел: диапазон (производство, администрация)
заработная плата: ЗАРПЛАТА
дата начала: агрегат (месяц, год)
до: агрегат (месяц, год) (по умолчанию: теперь)
Рисунок 3.5 Фрейм для общего понятия <РУКОВОДИТЕЛЬ>
На рис. 3.5 дан тот же фрейм, что и на рис. 3.4, но только с заполненными слотами. При этом часть из них заполнена некими объектами, а не простыми именами. В данном примере фигурируют три различных типа таких заполнителей слотов. Заполнитель слота может быть или константой, или именем другого фрейма. Простейшими из них являются те, что представлены прописными буквами (например, АДРЕС, ЗАРПЛАТА). Это имена других фреймов данной системы, на которые делается ссылка. Кроме того, существуют обозначения <агрегат> и <интервал>. В процессе обработки систем фреймов иногда необходимо наложить ограничения на тип объекта, который может быть использован для заполнения некоторого слота. Обозначение <агрегат> указывает на то, что должны быть заданы определенные объекты, а обозначение <диапазон> - на то, что должен быть выбран один из множества объектов.
Фреймы сравнительно легко реализуются с помощью структуры языка Лисп в виде списка свойств, рассмотренного ранее в связи с обращением к семантическим сетям.
Существует ряд языков, специально разработанных для облегчения конструирования на основе фреймов различных процедур обработки знаний.
Контрольные вопросы
1. Представьте географические данные Украины (столица(областной центр, районный центр), широта, долгота, население, язык, мужчины, женщины, национальность, количество национальность), используя методы представления данных в виде:
- семантической сети;
- продукционных правил;
- фреймов.
-
Контрольные вопросы
1. Вызовите экспертную систему, базирующуюся на правилах, для выбора породы собаки. Введите различные последовательности ответов "yes" и "no", наблюдая, как работает программа.
2. Модифицируйте базирующуюся на правилах экспертную систему для выбора породы собаки, добавив гипотетическую породу. Напишите продукционное правило для этой породы собаки и включите правило в программу. Ваши характеристики собаки должны быть комбинацией характеристик уже существующих в программе, но комбинация должна отличаться от комбинаций для других пород.
3. Вызовите программу экспертной системы для выбора породы, основанную на логике. Проведите несколько консультаций и понаблюдайте, как работает система.
4. Модифицируйте программу, включив информацию о другой породе собаки. Напишите соответствующее утверждение логики предикатов, содержащее ее характеристики в виде списка целых чисел. Убедитесь, что каждый список уникален.
5. Напишите все правила трансформации, описывающие операции в задаче "Восьмерка". Руководствуйтесь правилом, приведенным в этой главе.
6. Напишите предикат для вычисления расстояния Хемминга между двумя списками целых чисел. Первые два аргумента должны быть списками, а третий - расстоянием.
7. Проанализируйте игру крестики-нолики на поле 4х4. Для выигрыша нужно поставить подряд четыре знака. Какую хорошую эвристику можно придумать для этой игры?
Контрольные вопросы
1. Что такое источник знаний в системе с доской объявлений?
2. При каких условиях можно считать оправданным усложнение системы, используюшей модель с доской объявлений.
3.
Вывод в условиях неопределенности или неполных знаний
Контрольные вопросы
1. Допустим, в задаче на все вопросы получены ответы ДА или НЕТ. Сосредоточим внимание на двух конкретных вопросах, которые назовем "вопрос А" и "вопрос В". Потребители имеют тенденцию отвечать на эти вопросы одинаково, т.е. те, кто ответил ДА на вопрос А, вероятно, так же ответят и на вопрос В, а те, кто ответил НЕТ на вопрос А, вероятно, так же ответят и на вопрос В.
Пусть р(А) - вероятность ответа ДА на вопрос А.Известно, что р(А) = .6
и ответы на оба вопроса значительно коррелируют друг с другом, поэтому:
p(В | А)=.9; р(А | В)=.8; p (не В | не А) =.85.
Вычислите следующие вероятности: p(В); р(не А | не В); р(А и В).
Какова вероятность того, что в любом испытании ответы на вопросы А и В будут одинаковы?
2. Укажите, будет ли обратимым каждое из следующих правил:
Если команда делает хорошие броски, то она хорошо играет.
Если человек жив, то в нем течет кровь.
Если были ранние заморозки, то урожай персиков будет плохим.
3. Дано: Если (не X), то С; и ct(X) ~ .8. ct( импликация) = .7(nrev)
Каков коэффициент определенности посылки для этого правила? Какова определенность заключения?
Нейросетевая технология
Контрольные вопросы
1. Допустим,
Сущности и иерархии классов
Класс в G2 является основой представления знаний. Все, что хранится в БЗ и чем оперирует система, является экземпляром того или иного класса. Все синтаксические конструкции G2 тоже являются классами. Для сохранения общности даже базовые типы данных- символьные, числовые, булевские и истинностные значения нечеткой логики представлены соответствующими классами. Описание класса (тоже экземпляр специального класса) включает ссылку на суперкласс (is-a-иерархия) и перечень атрибутов, специфичных для класса (part-of-иерархия).
Концептуально иерархия классов G2 берет свое начало от корневого класса, именуемого item-or-value (сущность или значение). Класс item-or-value сам по себе не может иметь экземпляров. Однако так как он является корнем всей иерархии классов, он определяет основное поведение всех классов G2. Item-or-value имеет два производных класса - value (хотя концептуально ветвь value представляется классом, в действительности это типы данных G2) и item. Каждый из этих классов имеет свои производные классы. Сущность (item) является корнем разветвленной иерархии классов. Наиболее важные ветви этой иерархии могут быть сгруппированы в небольшое число категорий.
Иерархия модулей и рабочих пространств
G2-приложение не представляет собой единый блок. Оно структурируется с помощью модулей и рабочих пространств на легко управляемые куски. Несмотря на то, что функции модулей и рабочих пространств похожи, между ними есть существенные различия.
Приложение в G2 может быть организовано в виде одной БЗ или в виде нескольких БЗ, называемых модулями. В последнем случае говорят, что приложение модуляризировано (структурировано на модули). Модули приложения организованы в древовидную иерархию с одним модулем верхнего уровня. Модули следующего уровня состоят из тех модулей, без которых не может работать модуль предыдущего уровня. Эти модули называют "непосредственно требуемые модули".
Существуют 2 способа создать G2-приложения.
1. Разрабатывается одномодульное приложение, которое затем при необходимости разделяется на отдельные модули.
2. Приложение изначально создается как состоящее из нескольких модулей. Некоторые из этих модулей разрабатываются впервые, а другие могут выбираться из библиотеки знаний.
Структурирование приложения на модули обеспечивает следующие преимущества:
- позволяет разрабатывать приложение одновременно нескольким группам разработчиков;
- упрощает разработку, отладку и тестирование;
- позволяет изменять модули независимо друг от друга;
- упрощает повторное использование знаний.
Рабочие пространства являются контейнерным классом, в котором размещаются другие классы и их экземпляры, например объекты, связи, правила, процедуры и т.д. Каждый модуль (база знаний) может содержать любое количество рабочих пространств. Рабочие пространства образуют одну или несколько древовидных иерархий с отношением is-a-part-of (является частью). С каждым модулем (базой знаний) ассоциируется одно или несколько рабочих пространств верхнего (нулевого) уровня, каждое из этих рабочих пространств является корнем соответствующей древовидной иерархии. В свою очередь, с каждым объектом (определением объекта или связи), расположенным в нулевом уровне, может быть ассоциировано рабочее пространство первого уровня, связанное с ним отношением "является частью", и т.д.
Различие между модулями и рабочими пространствами состоит в следующем. Модули разделяют приложение на отдельные базы знаний, совместно используемые в различных приложениях. Динамические модули (аналог библиотек динамического связывания) могут подгружаться и вытесняться из оперативной памяти во время исполнения программно и одновременно использоваться несколькими приложениями. Рабочие пространства выполняют свою роль при исполнении приложения. Они содержат в себе (и в своих подпространствах) различные сущности и обеспечивают разбиение приложения на небольшие части, которые легче понять и обрабатывать. Например, весь процесс разбивается на подпроцессы, и с каждым подпроцессом ассоциируется свое подпространство.
Рабочие пространства могут устанавливаться (вручную или действием в правиле-процедуре) в активное или неактивное состояние (т.е. сущности, находящиеся в этом пространстве и в его подпространствах, становятся невидимыми для механизма вывода). Механизм активации (деактивации) рабочих пространств используется, например, при наличии альтернативных групп правил, когда активной должна быть только одна из альтернативных групп.
Кроме того, рабочие пространства используются для задания пользовательских ограничений, определяющих поведение приложения для различных категорий пользователей.
Перевод опций меню
G2 позволяет перевести имена любых опций меню с английского на другой язык. Это обозначает, что разработчик G2 может заменить некоторые опции с одного языка на другой. Например,
in Russian:
table = таблица
move = переместить
edit = редактировать.
Приложение 1
% Cуществует ли связь между X и Y ?
domains
city=string
% Описание предикатов
predicates
dconnect(city,city)
connect(city,city)
wopros
% База знаний
clauses
% Факты, описываюшие дерево
dconnect (a,b). dconnect (a,c). dconnect (b,d). dconnect (b,e).
dconnect (c,f). dconnect (c,q). dconnect (f,h). dconnect (f,i).
% Правила вывода
connect(X,Y) if dconnect(X,Y).
connect(X,Y) if dconnect(X,Z), dconnect(Z,Y).
wopros:-
write(" Bведите от- "), readln(X),
write(" Bведите до- "), readln(Y), connect(X,Y),nl,
write (" от ",X," до ",Y," есть связь "),
nl,!.
wopros:- write(" НЕТ РЕШЕНИЙ! ").
% Внутренняя цель
goal
makewindow(1,120,7," ответ ",16,0,8,60),
wopros.
Приложение 2
DOMAINS
toch=string
km,ml=real
Int=integer
slist=string*
sslist=slist*
rlist=real*
/* Основные и служебные базы данных */
DATABASE - sosed
sosed(toch,toch,km,ml)
DATABASE - lists
lists(slist)
DATABASE - sum
sum(real)
PREDICATES
connect(toch,toch,km,ml,slist,slist)
wopros
start
autoload
working(Int)
main_menu
par(toch,toch,Int)
repeat
find(string,slist)
add(slist,string,slist)
result(slist,slist,slist)
adds(slist)
writelist(slist)
min(rlist,real,integer,integer,real,integer)
createSum(real,real)
summa(slist,real,real,real,real)
dcon(toch,toch,real,real)
createListR(rlist,rlist)
addr(rlist,real,rlist)
createListS(sslist,sslist)
addss(sslist,slist,sslist)
first(rlist,real)
writeN(sslist,integer)
writeall(sslist)
GOAL start.
CLAUSES
writelist([]).
writelist([X|L]):-write(" ",X), writelist(L).
dcon(X,Y,M,N) :- sosed(X,Y,M,N);sosed(Y,X,M,N).
summa([_],N,S,_,_) :- S=N.
summa([X,Y|L],N,S,Км,Бензин) :-bound(Км),dcon(X,Y,M,_), K=M+N, summa([Y|L],K,S,Км,Бензин);
bound(Бензин), dcon(X,Y,_,M), K=M+N, summa([Y|L],K,S,Км,Бензин).
add(L1,S,[S|L1]).
adds(X) :- lists(X), !.
adds(X) :- assertz(lists(X)).
createSum(Км,Бензин) :- lists(X), summa(X,0,Suma,Км,Бензин),
assertz(sum(Suma)), fail.
createSum(_,_).
addr(L1,R,[R|L1]).
createListR(R,L) :- not (sum(_)), R=L.
createListR(R,L) :- sum(X),
addr(L,X,M),retract(sum(X)),createListR(R,M).
addss(L1,R,[R|L1]).
createListS(R,L) :- not (lists(_)), R=L.
createListS(R,L) :- lists(X), addss(L,X,M), retract(lists(X)),
createListS(R,M).
first([X|_],N) :- N=X.
min([],Tmp,Cnt,_,Min,N) :- Min=Tmp, N=Cnt.
min([X|L],Tmp,Cnt,K,Min,N) :- Tmp>X, C=K, KK=K+1, MM=X,
min(L,MM,C,KK,Min,N);
KK=K+1, min(L,Tmp,Cnt,KK,Min,N).
writeN([L|_],0) :- writelist(L).
writeN([_|L],N) :- M=N-1, writeN(L,M).
find(R,[R|_]).
find(R,[_|T]) :- find(R,T).
result([_],L,R) :- R=L.
result([X|L],M,R) :- add(M,X,L1), result(L,L1,R).
writeall([]).
writeall([X|L]) :- writelist(X), nl, writeall(L).
/* Основная процедура start */
start:-
autoload,
main_menu.
% Процедура connect
connect(X,Y,_,_,M,R) :-
sosed(X,Y,AA,BB), R=M;
sosed(Y,X,AA,BB), R=M.
connect(X,Y,Км,Бензин,L,R) :-
sosed(X,Z,_,_),
not (find(Z,L)), add(L,Z,M), connect(Z,Y,Км,Бензин,M,R);
sosed(Z,X,_,_),
not (find(Z,L)), add(L,Z,M),
connect(Z,Y,Км,Бензин,M,R).
par(X,Y,'1'):-removewindow(15,1),L=[X,Y],connect(X,Y,_,_,L,R),
result(R,[Y],M), adds(M), fail.
par(_,_,'1'):- not(lists(_)), write("НЕТ ПУТИ").
par(_,_,'1'):-createSum(0,_), createListR(L1,[]), first(L1,Z),
min(L1,Z,0,0,M,N), write("Минимальное расстояние = ",M,"км."),createListS(R,[]),
nl,write("Траектория пути - "),writeN(R,N).
par(X,Y,'2'):- removewindow(15,1),L=[X,Y],connect(X,Y,_,_,L,R),
result(R,[Y],M), adds(M), fail.
par(_,_,'2'):- not(lists(_)), write("НЕТ ПУТИ").
par(_,_,'2'):-createSum(_,0), createListR(L1,[]), first(L1,Z),
min(L1,Z,0,0,M,N), write("Минимальный расход бензина = ",M," мл."),
createListS(R,[]),nl, write(" Траектория пути - "),writeN(R,N).
par(X,Y,'3'):- removewindow(15,1),L=[X,Y], connect(X,Y,_,_,L,R),
result(R,[Y],M), adds(M),fail.
par(_,_,'3'):- not(lists(_)),write("НЕТ РЕШЕНИЙ").
par(_,_,'3'):- write("Все маршруты :"),nl,createListS(R,[]),writeall(R).
% Процедура wopros
wopros :-
retractall(_,lists),
retractall(_,sum),
write("Ищем путь с параметрами"),nl,
write("От"),nl,readln(X),write("До"),nl,readln(Y),
makewindow(15,$1E,$2F," ВВОД ПАРАМЕТРОВ ",6,18,9,40),
write(" 1 - Расстояние"),nl,
write(" 2 - Расход бензина"),nl,
write(" 3 - Все пути"),nl,
write(" ->"),
readchar(N),
clearwindow,
par(X,Y,N),
removewindow(15,0).
wopros :- removewindow(15,0).
/* Процедура автоматической загрузки баз данных */
autoload:-
retractall(_,sosed),
consult("pal.ddd",sosed).
autoload:-
makewindow(2,74,79,"ОШИБКА",6,18,8,40),
cursor(2,10),
write("Нет базы на диске"),
sound(70,294),
removewindow,
!.
/* Главное меню */
main_menu:-
repeat,
makewindow(1,$1E,$2F,"ТРАЕКТОРИЯ ПУТИ РАЗНОСЧИКА ПИЦЦЫ",0,0,25,80),cursor(7,0),
write(" 1 - Сохранение базы"),nl,
write(" 2 - Добавление пункта доставки"),nl,
write(" 3 - Удаление пункта доставки"),nl,
write(" 4 - Просмотр базы"),nl,
write(" 5 - Решение задачи"),nl,
write(" 6 - Выход из программы"),nl,
write(" ->"),
readint(C),
clearwindow,
working(C),
clearwindow,
C = 6,
retractall(_),
removewindow(1,0).
/* Процедура сохранения базы данных */
working(1):-
makewindow(5,$5F,$5F," СОХРАНЕНИЕ БАЗЫ ",8,20,9,40),
sound(5,220),
repeat,
save("pal.ddd",sosed),nl,nl,
write(" База сохранена"),nl,nl,nl,
write(" Нажмите любую клавишу..."),nl,
readchar(_),
clearwindow,
!,
removewindow.
/* Процедура Добавления связей */
working(2):-
makewindow(6,$1E,$2F," ДОБАВЛЕНИЕ ПУНКТА ДОСТАВКИ ",0,0,25,80),
sound(5,220),
cursor(9,0),
write(" введите имя 1 пункта ->"),readln(P1),
write(" введите имя 2 пункта ->"),readln(P2),
write(" введите расстояние (в км.) ->"),readreal(Км),
write(" введите расход бензина (в мл.) ->"),readint(Бензин),
assertz(sosed(P1,P2,Км,Бензин)),
clearwindow,!,
removewindow(6,0).
/* Процедура Удаление связей */
working(3):-
makewindow(7,26,$4F," УДАЛЕНИЕ ПУНКТА ДОСТАВКИ ",0,0,25,80),
sound(5,220),
cursor(9,0),
write(" Bведите имя 1 пункта ->"),nl,
readln(P1),
write(" Bведите имя 2 пункта ->"),nl,readln(P2),
retract(sosed(P1,P2,_,_)),
clearwindow,
!,removewindow.
/* Процедуры просмотра баз данных */
working(4):-
makewindow(9,$1E,$2F," ПРОСМОТР БАЗЫ ДАННЫХ ",0,0,25,80),nl,
write(" г==============================================================¬"),nl,
write(" ¦ База данных ¦"),nl,
write(" ¦==============T=============T============T====================¦"),nl,
write(" ¦ Пункт #1 ¦ Пункт #2 ¦ Расстояние ¦ Расход бензина ¦"),nl,
write(" ¦ ¦ ¦ ¦ ¦"),nl,
write(" ¦==============+=============+============+====================¦"),nl,
sosed(P1,P2,Км,Бензин),cursor(Z,_),
cursor(Z,0),write(" ¦ ",P1),
cursor(Z,15),write(" ¦ ",P2),
cursor(Z,29),write(" ¦ ",Км),
cursor(Z,42),write(" ¦ ",Бензин),
cursor(Z,63),write(" ¦"),nl,fail.
working(4):-
write(" L==============¦=============¦============¦====================-"),
nl,cursor(22,26),
write("Нажмите на любую клавишу"),
readchar(_),
removewindow,!.
% Процедура решения задачи
working(5) if
makewindow(10,26,48,"Решение задачи",0,0,25,80),
nl,nl,
sound (5,220),wopros,sound(5,220),
cursor(22,26),
write("Нажмите на любую клавишу"),
readchar(_),
removewindow(10,1),!.
/* Процедура выхода из программы */
working(6):- removewindow(1,1).
working(_):-
makewindow(11,$4E,$4F,"ОШИБКА ВВОДА",6,18,8,40),
nl,
write(" Введите число от 0 до 6,"),nl,
write(" соответствующее выбранному пункту"),nl,nl,nl,
write(" Нажмите на любую клавишу"),
sound(20,494),
sound(30,392),
readchar(_),
removewindow(11,1).
/* Процедура repeat */
repeat.
repeat:- repeat.
Приложение 3
% Эксперт по породам собак. Продукционная система, базирующаяся на правилах
domains
database
xpositive(symbol,symbol)
xnegative(symbol,symbol)
predicates
do_expert_job
do_consulting
ask(symbol,symbol)
dog_is(symbol)
it_is(symbol)
positive(symbol,symbol)
negative(symbol,symbol)
remember(symbol,symbol,symbol)
clear_facts
goal
do_expert_job.
clauses
/* Система пользовательского интерфейса */
do_expert_job :-
makewindow(1,7,7,"AN EXPERT SYSTEM",1,16,22,58),
nl,write("* * * * * * * * * * * * * * * * * * * *"),
nl,write(" WELCOME TO A DOG EXPERT SYSTEM "),
nl,write(" "),
nl,write("This is a dog identification system. "),
nl,write("Please answer the question about "),
nl,write("the dog you would like by typing in "),
nl,write("'yes' or 'no'. "),
nl,write("* * * * * * * * * * * * * * * * * * * *"), nl,nl,
do_consulting,
write("Press space bar."),nl,
readln(_),
removewindow, exit.
do_consulting :-
dog_is(X),!,nl,
write("the dog you have indicated is a(n)",X,"."),nl,
clear_facts.
do_consulting :-
nl,write("Sorry I can't help you ! "),
clear_facts.
ask(X,Y) :-
write(" Question :- ",X," it ",Y," ?"),
readln(Reply),
remember(X,Y,Reply).
/* МЕХАНИЗМ ВЫВОДА */
positive(X,Y) :- xpositive(X,Y),!.
positive(X,Y) :-
% not
not( negative(X,Y)),!,
ask(X,Y).
negative(X,Y) :-
xnegative(X,Y),!.
remember(X,Y,yes) :-
asserta(xpositive(X,Y)).
remember(X,Y,no) :-
asserta(xnegative(X,Y)), fail.
clear_facts :-
retract(xpositive(_,_)), fail.
clear_facts :-
retract(xnegative(_,_)), fail.
/* ПРОДУКЦИОННЫЕ ПРАВИЛА */
dog_is("English Bulldog") :-
it_is("short-haired dog"),
positive(has,"height under 22 inches"),
positive(has,"low-set tail"),
positive(has,"good natured personality"),!.
dog_is("Beagle") :-
it_is("short-haired dog"),
positive(has,"height under 22 inches"),
positive(has,"longer ears"),
positive(has,"good natured personality"),!.
dog_is("Great Dane") :-
it_is("short-haired dog"),
positive(has,"low-set tail"),
positive(has,"good natured personality"),
positive(has,"weight over 100 lb"),!.
dog_is("American Foxhound") :-
it_is("short-haired dog"),
positive(has,"height under 30 inches"),
positive(has,"longer ears"),
positive(has,"good natured personality"),!.
dog_is("Cocker Spaniel") :-
it_is("long-haired dog"),
positive(has,"height under 22 inches"),
positive(has,"low-set tail"),
positive(has,"longer ears"),
positive(has,"good natured personality"),!.
dog_is("Irish Setter") :-
it_is("long-haired dog"),
positive(has,"height under 30 inches"),
positive(has,"longer ears"),!.
dog_is("Collie") :-
it_is("long-haired dog"),
positive(has,"height under 30 inches"),
positive(has,"low-set tail"),
positive(has,"good natured personality"),!.
dog_is("St. Bernard") :-
it_is("long-haired dog"),
positive(has,"low-set tail"),
positive(has,"good natured personality"),
positive(has,"weight over 100 lb"),!.
it_is("short-haired dog") :-
positive(has,"short-haired"),!.
it_is("long-haired dog") :-
positive(has,"long-haired"),!.
Приложение 4
% Демонстрация работы экспертной системы, базирующейся на логике
% Эксперт по породам собак
% Демонстрация работы экспертной системы, базирующейся на логике
% состоит из базы знаний (БЗ), механизма вывода (МВ)
% и системы пользовательского интерфейса (СПИ).
% База знаний располагается в оперативной памяти
domains
CONDITIONS = BNO *
HISTORY = RNO *
RNO, BNO, FNO = INTEGER
CATEGORY = SYMBOL
database
/* Предикаты базы данных */
rule(RNO, CATEGORY, CATEGORY,CONDITIONS)
cond(BNO, STRING)
yes(BNO)
no(BNO)
topic(string)
predicates
/* Предикаты системы пользовательского интерфейса */
do_expert_job
show_menu
do_consulting
process(integer)
info(CATEGORY)
goes(CATEGORY)
listopt
erase
clear
eval_reply(char)
/* Предикаты механизма вывода */
go(HISTORY, CATEGORY)
check(RNO, HISTORY, CONDITIONS)
notes(BNO)
inpo(HISTORY, RNO, BNO, STRING)
do_answer(HISTORY, RNO, STRING, BNO, INTEGER)
goal
do_expert_job.
clauses
/* База знаний (БЗ) */
topic("dog").
topic("short-haired dog").
topic("long-haired dog").
rule(1, "dog", "short-haired dog", [1] ).
rule(2, "dog", "longt-haired dog", [2] ).
rule(3, "short-haired dog","English Bulldog ", [3,5,7] ).
rule(4, "short-haired dog","Beagle", [3,6,7] ).
rule(5, "short-haired dog","Great Dane", [5,6,7,8] ).
rule(6, "short-haired dog","American Foxhound",[4,6,7] ).
rule(7, "long-haired dog", "Cocker Spaniel", [3,5,6,7] ).
rule(8, "long-haired dog", "Irish Setter", [4,6] ).
rule(9, "long-haired dog", "Collie", [4,5,7] ).
rule(9, "long-haired dog", "St. Bernard", [5,7,8] ).
cond(1, "short-haired" ).
cond(2, "long-haired" ).
cond(3, "height under 22 inches" ).
cond(4, "height under 30 inches" ).
cond(5, "low-set tail" ).
cond(6, "longer ears" ).
cond(7, "good natured personality" ).
cond(8, "weight over 100 lb" ).
/* Система пользовательского интерфейса */
do_expert_job :-
makewindow(1,7,7," DOG EXPERT SYSTEM ",0,0,25,80),
show_menu,
nl,write(" Press space bar. "),
readchar(_), exit.
show_menu :-
write(" "),nl,
write(" * * * * * * * * * * * * * * * * * * "),nl,
write(" * DOG EXPERT * "),nl,
write(" * * "),nl,
write(" * 1. Consultation * "),nl,
write(" * * "),nl,
write(" * * "),nl,
write(" * 2. Exit the system * "),nl,
write(" * * "),nl,
write(" * * * * * * * * * * * * * * * * * * "),nl,
write(" "),nl,
write("Please enter your choice: 1 or 2 : "),nl,
readint(Choice),
process (Choice).
process(1) :- do_consulting.
process(2) :-
removewindow, exit.
do_consulting :-
goes(Mygoal), go([],Mygoal), !.
do_consulting :-
nl, write(" Sorry I can't help yuo."), clear.
do_consulting.
goes(Mygoal) :-
clear, clearwindow,
nl,nl, write(" "),nl,
write(" WELCOME TO THE DOG EXPERT SYSTEM "),nl,
write(" "),nl,
write("This is a dog identification system. "),nl,
write("To begin the process of choosing a "),nl,
write("dog, please type in 'dog'. If you "),nl,
write("wish to see the dog types, please "),nl,
write("type in a question mark (?). "),nl,
write(" "),nl,
readln(Mygoal), info(Mygoal),!.
info("?") :-
clearwindow, write("Reply from the KBS."),nl,
listopt, nl,write("Please any key. "),
readchar(_), clearwindow,
exit.
info(X) :- X >< "?".
listopt :-
write("The dog types are : "),nl,nl, topic(Dog),
write(" ",Dog),nl, fail.
listopt.
inpo(HISTORY,RNO,BNO,TEXT) :-
write("Question :- ",TEXT," ? "),
makewindow(2,7,7,"Response",10,54,7,20),
write("Type 1 for 'yes' ,"),nl,
write("Type 2 for 'no' : "),nl,
readint(RESPONSE), clearwindow,
shiftwindow(1),
do_answer(HISTORY,RNO,TEXT,BNO,RESPONSE).
eval_reply('y') :-
write(" I hope you have found this helpful !").
eval_reply('n') :-
write(" I am sorry I can't help you !").
go(_,Mygoal) :-
not(rule(_,Mygoal,_,_)),!,
nl,write(" The dog you have indicated is a(n) ",
Mygoal,"."),nl,
write("Is a dog you would like to have (y/n) ?"),
nl,readchar(R),
eval_reply(R).
/* Механизм вывода */
go(HISTORY, Mygoal) :-
rule(RNO,Mygoal,NY,COND),
check(RNO,HISTORY,COND),
go([RNO|HISTORY],NY).
check(RNO,HISTORY,[BNO|REST]) :-
yes(BNO),!,
check(RNO,HISTORY,REST).
check(_,_,[BNO|_]) :- no(BNO),!,fail.
check(RNO,HISTORY,[BNO|REST]) :-
cond(BNO,NCOND),
fronttoken(NCOND,"not",COND),
frontchar(COND,_,COND),
cond(BNO1,COND),
notes(BNO1),!,
check(RNO,HISTORY,REST).
check(_,_,[BNO|_]) :-
cond(BNO,NCOND),
fronttoken(NCOND,"not",COND),
frontchar(COND,_,COND),
cond(BNO1,COND),
yes(BNO1),
!,fail.
check(RNO,HISTORY,[BNO|REST]) :-
cond(BNO,TEXT),
inpo(HISTORY,RNO,BNO,TEXT),
check(RNO,HISTORY,REST).
check(_,_,[]).
notes(BNO) :- no(BNO),!.
notes(BNO) :- not(yes(BNO)),!.
do_answer(_,_,_,_,0) :- exit.
do_answer(_,_,_,BNO,1) :-
assert(yes(BNO)),
shiftwindow(1),
write(yes),nl.
do_answer(_,_,_,BNO,2) :-
assert(no(BNO)), write(no),nl, fail.
erase :- retract(_),fail.
erase.
clear :- retract(yes(_)),retract(no(_)),fail,!.
clear.
Приложение 5
domains
mesto=a(integer,integer,symbol)
spisok= mesto*
predicates
a(integer,integer,symbol)
путь(mesto,spisok,spisok)
member(mesto,spisok)
можем_идти(mesto,spisok)
clauses
a(1,1,стена).a(1,2,стена).a(1,3,стена).a(1,4,стена).
a(2,1,пусто).a(2,2,пусто).a(2,3,пусто).a(2,4,стена).
a(3,1,выход).a(3,1,пусто).a(3,2,стена).a(3,3,пусто).a(3,4,стена).
a(4,1,стена).a(4,2,стена).a(4,3,пусто).a(4,4,пусто).
a(5,1,стена).a(5,2,пусто).a(5,3,пусто).a(5,4,стена).
% a(I,J) представляет позицию в i ряду j колонке
% нашли путь?
путь(a(I,J,B),[a(I,J,B)],Были):-
a(I,J,выход),nl,write("Выход",I,J).
% Пытаемся идти на север
путь(a(I,J,B),[a(I,J,B)|P],Были) :-
K= I-1,
можем_идти(a(K,J,B),Были),
путь(a(K,J,B),P,[a(K,J,B)|Были]).
% Пытаемся идти на юг
путь(a(I,J,B),[a(I,J,B)|P],Были) :-
K= I+1,
можем_идти(a(K,J,B),Были),
путь(a(K,J,B),P,[a(K,J,B)|Были]).
% Пытаемся идти на запад
путь(a(I,J,B),[a(I,J,B)|P],Были) :-
L= J-1,
можем_идти(a(I,L,B),Были),
путь(a(I,L,B),P,[a(I,L,B)|Были]).
% Пытаемся идти на восток
путь(a(I,J,B),[a(I,J,B)|P],Были) :-
L= J+1,
можем_идти(a(I,L,B),Были),
путь(a(I,L,B),P,[a(I,L,B)|Были]).
% в позицию i j можно попасть если это не стена и мы не были в ней прежде
можем_идти(a(I,J,B),Были):-
a(I,J,пусто),
% проверить были ли?
not (member(a(I,J,_),Были)),
nl.
member(R,[R|T]).
member(R,[H|T]):-member(R,T).
goal
путь(a(4,2,пусто),P,[a(4,2,пусто)]), write(P).
Литература
1. Aikins J.S. Prototypical knowledge for expert systems//Artificial Intelligence.- 1983.v.20. p.163-210.
2. Baldwin J. E., eds. (1996). Fuzzy Logic. New York: Wiley.
3. Clements B.R. and Preto F. Evaluating Commercial Real Time Expert System Software for Use in the Process Industries. – C&I. – 1993. – P.107-114.
4. Hall C. The Intelligent Software Development Tools Market//Part I.. Intelligent Software Strategies. 1996. February. V.12.- № 2. – P.1 – 12.
5. Hall C. The Intelligent Software Development Tools Market//Part II. Intelligent Software Strategies. 1996. V.12.- № 3. – P.1 – 16.
6. Harmon P. The Intelligent Software Development Tools Market//Part I.. Intelligent Software Strategies. 1995. V.11.- № 2. – P.1 – 13.
7. Harmon P. The Size of Commercial Al Market in the US//Part II. Intelligent Software Strategies. 1994. V.10.- №1. – P.1 – 6.
8. Intelligent Software Stretegies. №2. – 1996.
9. Jamshidi M., Tilti A., Zadeh L. And Boverie S., eds. (1997). Applications of Fuzzy Logic: Towards High Machine Intelligence Quotient Systems. Englewood Cliffs, NJ: Prentice Hall.
10. Kowalski, R. Algorithm=logic+control. Communications of the ACM, vol. 22, no.7, pp. 424-436, July 1979.(Prolog)
11. Kowalski, R. Logic for problem solving. New York: American Elsevier, 1979.(Prolog)
12. Minsky M. A framework for representation knowlege//Psychology computer vision. – New York: McGraw-Hill, 1975
13. Moore D. and other., Questions and Answers about G2//Copyright.- 1993. Gensym Corporation. P. 26-28.
14. Robinson J. A. (1979) Logic: Form and Function. Edinburgh: Edinburgh University Press.
15. Feigenbaum E.A. The art of artificial intelligence: Themes and case studio of knowledge engineering// The fifth International Joint Conference on Artificial Intelligence/ -Boston: MIT, 1977.-P.1014-1029.
16. Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. – М.: Мир, 1990. – 560 с., ил.
17. В. О. Сафонов. Экспертные системы - интеллектуальные помощники специалистов. С.-Пб: Санкт-Петербургская организация общества “Знания” России, 1992.
18. Гейн К., Сарсонт Т. Структурный системный анализ: средства и методы. В 2-х ч. Ч1/Пер. С англ. Под ред. А.В. Козлинского. – М.:Эйтекс, 1993. – 188с.
19. Горбань А. Нейроинформатика и ее приложения/Открытые системы, 4, 1998
20. Горбань А. Современные направления развития нейрокомпьютерных технологий в России /Открытие системы, 4, 1997, стр. 25-28.
21. Д. Н. Марселлус. Программирование экспертных систем на Турбо Прологе.- М.: Финансы и статистика, 1994.
22. Д. Уотермен. Руководство по экспертным системам. М.: Мир, 1980.
23. Д. Элти, М. Кумбс. Экспертные системы: концепции и примеры. М.: Финансы и статистика, 1987.
24. К. Нейлор. Как построить свою экспертную систему М.: Энергоатомиздат, 1991.
25. К. Таунсенд, Д. Фохт. Проектирование и программная реализация экспертных систем на персональных ЭВМ.- М.: Финансы и статистика, 1990.
26. Малпас Дж. Реляционный язык пролог и его применение: Пер. с англ./Под редакцией В.Н. Соболева. – М.: Наука. Гл. ред. физ-мат.лит., 1990. – 464 с.
27. Маслов С.Ю. Обратный метод установления выводимости в классическом исчислении предикатов//Доклады Академии наук СССР.Т 159.–1964. №1.С.17-20.
28. Мендельсон Э. Введение в математическую логику. – М.: Наука, 1971.-320с.
29. Минский М. На пути к созданию искусственного разума//Вычислительные машины и мышление. – М.: Мир, 1967. – 552с.
30. Минский М. Структура для представления знания. –Сб. Психология машинного зрения. Под ред. П. Уинстона. М.: Мир, 1978.- с.249-338.
31. Нейлор К. Как построить свою экспертную систему: Пер. с англ. – М.: Энергоатомиздат, 1991. – 286 с.: ил.
32. Нильсон Н. Искусственный интеллект. Методы поиска решений. – М.: Мир, 1973.-265 с.
33. Нильсон Н. Принципы искусственного интеллекта. – М.: Радио и связь, 1985.-376 с.
34. Осуга С. И др. Приобретение знаний/Пер. с япон.под рук.С.Осуги. - М.: Мир, 1990,-304 с.: ил.
35. Осуга С. Обработка знаний/Пер. с япон. – М.: Мир, 1989.- 293с., ил.
36. Петров Э.И. Система Rethink. Применение. Аспекты//Материалы семинара “Динамические интеллектуальные системы в управлении”. - М: ЦРДЗ, 1996. – с.58-64.
37. Попов Э.В. Фоминых И.Б. Кисель Е.Б. Статические и динамические экспертные системы.- М: ЦРДЗ, 1995. – 126 с.
38. Попов Э.В. Экспертные системы реального времени//Материалы семинара “Экспертные системы реального времени ”. - М: ЦРДЗ, 1995. – с.5-22.
39. Попов Э.В. Экспертные системы. Решение неформализованных задач в диалоге с ЭВМ. – М.: Наука, 1987.
40. Попов Э.В., Фридман Г.Р. Алгоритмические основы интеллектуальных роботов и искусственного интеллекта. – М.: Мир, 1976. – 455с.
41. Поспелов Г.С. Искусственный интеллект. Новая информационная технология//Вестник АН СССР. – 1983. - №6. – С. 31-42.
42. Рот М. Интеллектуальный автомат: компьютер в качестве эксперта/ Пер. с нем. А.П. Свиридова. - М.: Энергоатомиздат, 1991
43. Статические и динамические экспертные системы: Учебное пособие/ Э.В. Попов и др. М.: Финансы и статистика, 1996. -320с.: ил.
44. Таусенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ /Пер с англ. В.А. Кондратенко. - М.: Финансы и статистика, 1990
45. Тейлор К. Как построить свою экспертную систему/ Пер. с англ. Н.Н. Слепова. - М.: Энергоатомиздат, 1991
46. Уинстон П. Искусственный интеллект. М.1980.
47. Уотермен Д. Руководство по экспертным системам: пер. с англ./ Под ред. В.Л. Стефанюка. -.М.: Мир, 1989
48. Хант Э. Искусственный интеллект. -М.: Мир,1978.
49. Элти Дж., Кумбс М. Экспертные системы: концепции и примеры/Пер с англ. И предисловие Б.И. Шитикова.- М.: Финансы и статистика, 1987.-191 с. :ил.
50. Грей П. Логика, алгебра и базы данных/Пер. с англ. Под ред. Г.В. Орловского, А.О. Слисенко.- М.: Машиностроение, 1989,- 368 с.: ил.
51. Искусственный интеллект: В 3 кн. Кн. 1. Системы общения и экспертные системы: Справочник/Под ред. Э.В. Попова.-М.: Радио и связь, 1990.-464 с.: ил.
52. Тейз А., Грибомон П., Луи Ж. И др. Логический подход к искусственному интеллекту: от классической логики к логическому программированию/Пер с франц.-М.: Мир, 1990.-43с.: ил.
53. Вагин В.М. Дедукция и обобщение в системах принятия решений. - М.: Наука, 1988. - 384с.
54. Т.А. Гаврилова, В.Ф. Хорошевский. Базы знаний интеллектуальных систем.- СПб: Притер, 2000. – 384с.: ил.
55. Нильсон Н. Принципы искусственного интеллекта. - М.: Радио и связь, 1985. - 376с.
56. Искусственный интеллект. - В 3-х кн. Кн.2. Модели и методы: Справочник / Под ред. Д.А. Поспелова - М.: Радио и связь, 1990. - 304с.
57. Представление и использование знаний: Пер. с япон. / Под ред. Х. Уэно, М. Исидзука. - М.: Мир, 1989. - 220с.
58. Осуга С. Обработка знаний: Пер. с япон. - М.: Мир, 1989. - 293с.
59. Ин Ц., Соломон Д. Использование Турбо-Пролога: Пер. с англ.-М.:Мир, 1990.-300 с.
60. Нечеткие множества в моделях управления и искусственного интеллекта. /Под редакцией Д.А. Поспелова. - М.: Наука, 1986.- 312 с.
61. Джексон П. Введение в экспертные системы: Пер. с англ.: Уч.пос.- М.; Издательский дом Вильямс,2001.- 624 с.
62. Дж. Доорс, А. Р. Рейблейн, С. Вадера Пролог – язык программирования будущего; Пер. с англ.; -М.: Финансы и статистика 1990. 144 с.:ил.
63. Адаменко А.Н., Кучуков А.М. Логическое программирование и Visual Prolog. –СПб.: БХВ-Петербург, 2003.-992 с.: ил.
64. Бондарев В.Н. Искусственный интеллект: Учеб.пособие для вузов/ В.Н. Бондарев Ф.Г. Аде- Севастополь: Изд-во СевНТУ, 2002.-615с.: ил.
65. Обработка нечеткой информации в системах принятия решения / А.Н. Борисов, А.В. Алексеев, Г.В. Меркурьев.- М.: Радио и связь, 1989. – 304с.
66. Представление и исследование знаний / Под ред. Х. Уэно, М. Исидзука; Пер. с япон.-М.:Мир 1989. –220с.
67. Голицын Г.А., Фоминых И.Б. Интеграция нейросетевой технологии с експертными системами // Труды 5 Национальной конференции по ИИ – Казань, 1996.
68. Минский М.Л., Пейперт С. Персептероны. - М.: Мир, 1971.
69. Айзерман М.А., Браверман Э.М., Розоноэр Л.И. Метод потенциальных функций в теории обучения машин. – М.: Наука, 1970. –383с.
70. Hopfield J.J. Neural Network and Physical Systems with Emergent Collective Computation Abilities. //Proc. Nat. Acad. Science USA, 1982-V 79, Pp.2445-2558.
71. Голицын Г.А., Петров В.М. Информация- поведение – творчество. М.: Наука, 1991.- 224с.
72. Ивахненко А.Г. Персептроны. - Киев: Наукова думка, 1974.
73. Дуда Р., Харт П. Распознавание образов и анализ сцен. – М. : Мир, 1976. –512с.
74. Бонгард М.М. Проблема узнавания. М.:Наука.- 320с.
75. Барцев С.И., Охонин В.А. Адаптивные сети обработки информации Красноярск: Ин-т физики СЩ АН СССР, 1986, Препринт 59Б.-20с.
76. Джорж Ф.Люгер Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание.: Пер. с англ.- М.: Издательский дом “Вильямс”, 2003.-864 с.
– Конец работы –
Используемые теги: Введение, Экспертные, системы0.056
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Введение в экспертные системы
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов