Автор работы: Пользователь скрыл имя, 11 Декабря 2012 в 13:13, курс лекций
Достаточно трудно дать точное определение, что такое интеллект человека, потому что интеллект - это сплав многих навыков в области обработки и представления информации. Интеллект ( intelligence ) происходит от латинского intellectus — что означает ум, рассудок, разум; мыслительные способности человека. С большой степенью достоверности интеллектом можно называть способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам.
1.1. Основные понятия искусственного интеллекта
1.2. История развития искусственного интеллекта
1.3. Задачи искусственного интеллекта
1.4. Экспертные системы - направление исследований по искусственному интеллекту
1.5. Классификация и виды экспертных систем
1.6. Область применения экспертных систем
Структура и функционирование экспертных систем
2.1. Типовая структура экспертных систем
2.2. Интерфейс пользователя
2.3. Подсистема приобретения знаний
2.4. База знаний
2.5. База данных
2.6. Механизм логического вывода
2.7. Объяснение решений
2.8. Функционирование экспертных системах
Представление знаний
3.1. Основные понятия и состав знаний
3.2. Модели представления знаний
3.3. Представление нечетких знаний
Методы поиска решений
4.1. Поиск решений в одном пространстве
4.2. Поиск решений в иерархии пространств
4.3. Поиск решений в альтернативных пространствах
4.4. Поиск решений с использованием нескольких моделей
4.5. Выбор метода решения задач
Инструментальные средства разработки экспертных систем
5.1. Классификация инструментальных средств
5.2. Языки программирования
5.3. Языки инженерии знаний
5.4. Средства автоматизации разработки экспертных систем
5.5. Оболочки экспертных систем
Технология разработки экспертных систем
6.1. Стадии создания экспертных систем
6.2. Этапы разработки экспертных систем
6.3. Разработка прототипа экспертной системы
4.4. Поиск решений с
использованием нескольких
Все методы
поиска, рассмотренные до сих
пор, использовали при
переход с одной модели на другую позволяет обходить тупики, возникающие при поиске в процессе распространения ограничений;
использование нескольких моделей
позволяет в ряде случаев уменьшить
вероятность потери хорошего решения
(следствие неполного поиска, вызванного
ограниченностью ресурсов) за счет
конструирования полного
наличие нескольких моделей позволяет системе справляться с неточностью (ошибочностью) данных.
Следует отметить,
что использование нескольких
моделей требует
4.5. Выбор метода решения задач.
Выбор метода решения задачи зависит прежде всего от сложности задачи, которая определяется особенностями проблемной области и требованиями, предъявляемыми пользователем к решению задачи. Для преодоления трудностей, вызванных большим пространством поиска, используются методы, основанные на введении иерархии пространств (конкретных, абстрактных и метапространств). Простейший из этих методов основывается на факторизуемости пространства решений, что позволяет производить раннее отсечение. Метод обеспечивает получение всех решений. Если пространство поиска не удается факторизовать, но при этом не требуется получать все решения или выбирать лучшее, то могут быть применены методы, использующие иерархию однородных абстрактных пространств. Если пространство поиска таково, что любая задача может быть сведена к известной заранее последовательности подзадач, то используется фиксированное абстрактное пространство.
Эффективность
этого метода определяется
Для преодоления
трудностей, вызванных неполнотой
и (или) неточностью данных (знаний),
используют вероятностные,
Для преодоления
неадекватности модели
5.1 Классификация
Инструментальные средства подразделяются на следующие категории:
Языки программирования
Языки инженерии знаний
Средства автоматизации разработки экспертных систем
Оболочки экспертных систем
5.2 Языки программирования.[18]
Языки высокого
уровня являются в руках
Языки описания
порождающих правил, объектно-ориентированные
языки и процедурные
По своему назначению и функциональным возможностям инструменталь-ные программы, применяемые при проектировании экспертных систем, можно разделить на четыре достаточно больших категории:
Оболочки экспертных систем (expert system shells). Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе про-шедшей длительную "обкатку" системы MYCIN. В EMYCIN сохранен интерпрета-тор и все базовые структуры данных — таблицы знаний и связанный с ними меха-низм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой. Дальнейшим развитием оболочки EMYCIN явились системы S.1 и М.4, в которых механизм построения цепочки обратных рассуждений, заимствованный в EMYCIN, объединен с фреймоподобной структурой данных и дополнительными средствами управления ходом рассуждений.
Языки программирования высокого
уровня. Инструментальные средства этой
категории избавляют
Среда программирования, поддерживающая несколько парадигм (multiple-paradigm programming environment). Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные нами к предыдущей категории
Дополнительные модули. Средства
этой категории представляют собой
автономные программные модули, предназначенные
для выполнения специфических задач
в рамках выбранной архитектуры
системы решения проблем. Хорошим
примером здесь может служить
модуль работы с семантической сетью,
использованный в системе VT. Этот модуль
позволяет отслеживать связи
между значениями ранее установленных
и новых параметров проектирования
в процессе работы над проектом.
Подобные модули управления семантической
сетью можно использовать для
распространения внесенных
Объектно-ориентированные языки
Формат правил хорошо согласуется с представлением знаний в форме "при выполнении условий Сь ..., С„ выполнить действие А", но менее подходит для описания сложных объектов и отношений между ними. Языки объектно-ориентированного программирования предоставляют в распоряжение программиста альтернативную программную среду для организации знаний в терминах декларативного представления объектов предметной области. Все, связанное с процедурной стороной решения проблем, распределяется между этими объектами, которые в таком случае располагают собственными процедурами и могут общаться друг с другом посредством протоколов передачи сообщений.
Другим приятным
аспектом объектно-
В реальном
мире вещей существует
Основная сложность
в использовании средств
Но для того
чтобы внедрить объектно-
Многое зависит
от того, на каком уровне абстракции
будет использоваться объектно-
Пример:
Smalltalk[19] — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и другими в 1970-х годах. Язык был представлен как Smalltalk-80 и с тех пор широко используется. Smalltalk продолжает активно развиваться и собирает вокруг себя преданное сообщество пользователей.
Smalltalk оказал большое
влияние на развитие многих других языков,
таких как: Objective-C, Actor, Java и Ruby. Многие идеи
1980-х и 1990-х по написанию программ появились
в сообществе Smalltalk. К ним можно отнести
рефакторинг, шаблоны проектирования
(применительно к ПО), карты Класс-Обязанности-
Информация о работе Искусственный интеллект и экспертные системы