Автор работы: Пользователь скрыл имя, 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. Разработка прототипа экспертной системы
Одним из самых
распространённых диалектов
Синтаксис
Любая программа
на Лиспе состоит из
Список является последовательностью элементов любого рода, в том числе других списков. Например, (1 3/7 'foo #'+) состоит из целого числа, рациональной дроби, символа foo и указателя на функцию сложения. Выражения представляются списками в префиксной записи: первый элемент должен быть формой, то есть функцией, оператором, макросом или специальным оператором; прочие элементы суть аргументы, передаваемые форме для обработки. Функция list возвращает список состоящий из ее аргументов: например, (list 1 3/7 'foo #'+) возвращает список, упомянутый ранее. Если некоторые элементы являются выражениями, то сначала вычисляется их значение: (list 1 2 (list 1 2)) возвращает (1 2 (1 2)). Арифметические операторы действуют так же, например (+ 4 (* 2 3)) выдаёт 10.
Специальные операторы
позволяют управлять
Примеры
Пример куина (программы, выводящей свой исходный код) на Лиспе:
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Данная программа должна работать на большинстве диалектов Лиспа, в том числе и на Scheme.
Итеративная версия функции определения N-го числа Фибоначчи:
(defun fibonacci (x)
(if (= x 0)
1
(loop with result = 1
with prev = 1
for i from 0 below (1- x)
do (psetq result (+ result prev) prev result))))
Многофункциональные программные среды
Многофункциональные
программные среды позволяют
опытному программисту
Мы уже не
раз обращали ваше внимание
на то, что порождающие правила
позволяют представить в
Одной из первых многофункциональных сред искусственного интеллекта является LOOPS. в которой в рамках единой архитектуры обмена сообщениями были объединены четыре парадигмы программирования, перечисленные ниже[18]:
Процедурно-ориентированное программирование. Эта парадигма была представлена языком LISP, в котором активным компонентом являются процедуры, а пассивным — данные, несмотря на то, что в LISP процедуры сами по себе также являются данными, поскольку имеют вид списков. В рамках единой среды процедуры могут быть использованы для обработки внешних данных, в частности изменения значений общедоступных переменных.
Программирование, ориентированное на правила. Эта парадигма аналогична предыдущей, но роль процедур играют правила "условие-действие". В среде LOOPS наборы правил сами по себе являются объектами, которые можно рекурсивно вкладывать один в другой. Таким образом, часть "действие" одного правила, в свою очередь, может активизировать подчиненный набор правил. С множествами правил связываются управляющие компоненты, с помощью которых в простейшей форме выполняется разрешение конфликтов.
Объектно-ориентированное
программирование. Структурированные
объекты обладают свойствами и процедур,
и данных, причем побочные эффекты
обычно локализуются в пределах объекта.
Обработка поступающих
Программирование, ориентированное
на данные. Доступ к данным и обновление
данных запускает определенные процедуры,
причем не имеет значения, почему изменен
компонент данных, — то ли это
результат побочного эффекта, то
ли результат действия других процедур.
С переменными, в которых хранятся
значения данных, связываются определенные
процедуры, подобно тому, как это
делается в слотах фрейма, причем такие
переменные часто называют активными
величинами. В таких приложениях,
как моделирование, этот стиль программирования
оказывается довольно продуктивным,
поскольку позволяет
В рамках основной
объектно-ориентированной
В системах
КЕЕ и LOOPS поведение объектов
описывается в терминах
CLIPS как многофункциональная
среда программирования(
Кроме поддержки
интерпретатора порождающих
для определения стандартных функций используется синтаксис, подобный LISP;
предоставляет в распоряжение разработчика родовые функции, аналогичные мультиметодам CLOS;
располагает встроенным объектно-ориентированным языком COOL, который, в отличие от CLOS, включает и средства поддержки обмена сообщениями.
Обращение к
стандартным функциям
(deffunction between (?lb ?value ?ub)
(and (<= ?lb ?value) (<=?value ?ub))),
Родовые функций (generic function) в CLIPS играют ту же роль, что и перегружаемые операторы в языке C++. Они обеспечивают возможность выполнять обработку разными методами последовательностей данных различного типа. Например, для конкатенации двух строковых значений оператором “+” можно следующим образом перегрузить этот оператор:
(defmethod + ((?a STRING) (?b STRING)) (art-cat ?a ?b)}
Тогда результатом вычисления выражения
(+ "dog" "fish") будет "dogfish".
В такой функции
можно смешивать ограниченные
и неограниченные параметры,
Вычисление родовых
функций выполняется под "
Механизм передачи сообщений реализован по тому же способу, что и в языках SmallTalk и LOOPS, и требует, чтобы программист разработал свой обработчик сообщений для каждого отдельного класса. Диспетчер сообщений работает так же, как в исполняющей системе языка CLOS, и различает обработчики типов primary, around, before и after.
В программе на языке CLIPS можно вызывать и функции, написанные на языке С, хотя это и выполняется несколько необычно. Исполняющая система CLIPS может выступать в качестве внедренного приложения, т.е. программа на CLIPS может быть скомпилирована и скомпонована с программой на языке С, которая будет вызывать CLIPS-фрагменты как подпрограммы. Это позволяет внедрять функции искусственного интеллекта в компоненты больших программных комплексов.
5.4 Средства автоматизации разработки экспертных систем.
Дополнительные модули
Под дополнительными
модулями понимаются те
Другой функцией,
которая поддерживается
[Правило 1]
ЕСЛИ: сегодня рабочий день И
нет признаков недомогания,
ТО: посетить занятия по информатике.
[Правило 2]
ЕСЛИ: сегодня рабочий день И
погода прекрасна,
ТО: покататься на яхте.
В большинстве
систем, основанных на порождающих
правилах, выбор того единственного
правила, которое будет
Информация о работе Искусственный интеллект и экспертные системы