Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лекции - Архитектура систем искусственного интеллекта - файл 1.doc


Лекции - Архитектура систем искусственного интеллекта
скачать (775.5 kb.)

Доступные файлы (1):

1.doc776kb.18.11.2011 00:32скачать

содержание
Загрузка...

1.doc

1   2   3   4   5
Реклама MarketGid:
Загрузка...
X  "Петр"

апельсин  апельсин.

Это сопоставление совместно, поскольку константы совпадают. В результате свободной переменной X присваивается значение "Петр".

Таким образом, суть механизма унификации сводится к сопостав­лению аргументов вызываемого и вызывающего предикатов. При этом могут получать значения переменные как в вызывающем, так и в вызы­ваемом предикате.

Можно выделить следующие шаги выполнения Пролог-програм­мы:

  1. - выполнение подходящего правила для текущей цели;

  2. - передача и согласование параметров цели и правила;

  3. - в зависимости от исхода (2) определение новой цели или возврат к предыдущей цели с отменой значений для переменных, полученных в результате шага (2) для последней цели;

  4. - создание точек ветвления в программе;

  5. - восстановление переменных при возврате.

В качестве иллюстрации рассмотрим следующий пример.

(1) нравится ("Пете", ^ X1 ):-

нравится ("Коле", X1),

нравится ("Вите", X1).

(2) нравится ("Коле", "рыбалка").

(3) нравится ("Коле", "футбол").

(4) нравится ("Вите", "рыбалка").

(5) нравится ("Сергею", "музыка").

(6) нравится ("Саше", "хоккей").

Нас интересует вопрос, что нравится Пете? Этот вопрос в том или ином виде сводится к следующей записи:

нравится ("Пете",?),

где знак "?" используется для определения объекта, который подлежит поиску.

В Прологе вместо знака "?" используется обозначение переменной. Мы могли задать системе и двойной вопрос:

нравится ("Пете", X), нравится (Y, "хоккей").

Эта сложная цель требует найти такой ^ X, который нравится Пете, и такой Y, которому нравится хоккей. Такая сложная цель будет выпол­нена, если будет доказан каждый входящий в нее предикат.

При доказательстве предиката система ищет подходящее правило или факт. Во-первых, такое правило (факт) должно иметь заголовок с тем же именем для предиката и, во- вторых, число аргументов голов­ного предиката должно совпадать с числом аргументов доказываемого предиката.

В нашем примере сначала доказывается первая цель: нравится ("Пете", ^ X). Система ищет подходящее правило для этого предиката и выбирает первое такое правило из числа неопробованных:

нравится ("Пете", X1):-

нравится ("Коле", X1),

нравится ("Вите", ^ X1).

Для того чтобы доказать это правило, необходимо доказать два предиката:

нравится ("Коле", X1)

и

нравится ("Вите", X1).

Система формирует новую текущую цель: нравится ("Коле",Х1) и аналогичным образом просматривает подходящие правила. Правило (1) не подходит для этой цели, поскольку неудачей заканчивается про­цедура сопоставления аргументов вызывающего и вызываемого преди­катов:

нравится ("Коле", ^ X1)

нравится ("Пете", X1) /* ("Коле" = "Пете")*/.

Будет выбрано правило (факт) (2):

нравится ("Коле", "рыбалка").

В результате переменная ^ X1 получает значение

X1 = "рыбалка".

Система формирует новую текущую цель

нравится ("Вите", "рыбалка").

Эта цель доказывается с помощью правила (4). Итак, Пролог до­казал предикат нравится ("Пете", "рыбалка"). Таким образом, в исход­ной цели нравится ("Пете", Х) переменная X получает значение Х = "рыбалка". Аналогичным образом доказательство предиката

нравится (^ Y, "хоккей")

завершается присваиванием значения Y = "Саше"

Из этого примера видно, что выполнение Пролог-программы сводится к поиску значений переменных, которые обеспечивают выпол­нение предикатов цели. При этом для каждого предиката строится от­дельное доказательство.

Алгоритм интерпретатора Пролога заключается в следующем. Если список целей пуст - работа завершается успехом. Если список це­лей не пуст,' то интерпретатор продолжает работу, выполняя процедуру 'ПРОСМОТР'.

^ Процедура 'ПРОСМОТР'. Правила программы последовательно просмаливаются от начала к концу до обнаружения первого правила С, такого, что заголовок С сопоставим с первой целью G1. Если такого правила обнаружить не удается, то восстанавливается предыдущий спи­сок целей и для него выполняется процедура 'ПРОСМОТР', начищая с последнего испробованного правила С. Если список целей не пуст, а все правила для первом цели в самом первом списке целей проверены, то алгоритм завершается общей неудачей. Если С найдено и имеет вид

H:- B1, ..., Bn,

то переменные в С переименовываются, чтобы получить такой вариант С' предложения С, в котором нет общих переменных со списком G1, ..., Gm.

Пусть С' - это



Сопоставляется G1 с Н'. Пусть S - результирующая конкретизация переменных. В списке G1, ..., Gm цель G1 заменяется на список , что порождает новый список целей:



Заметим, что если С - факт, то из списка целей удаляется первая цель G1.

Переменные в новом списке целей устанавливаются согласно интерпретации S, что порождает новый список целей



Старый список L0 = G1, ..., Gm, сохраняется, а система переходит к доказательству нового списка L1 , т.е. осуществляет переход к процеду­ре 'ПРОСМОТР'.

Мы обратимся к рассмотрению средств языка Пролог для разработки механизмов СИИ во второй части книги. Читателю потребуется 6азовый набор сведений о системе TURBO-PROLOG 2.0, помещенный в Приложении 2. Чтение этого приложения может быть отложено до гла­вы, посвященной разработке базовых механизмов учебной СИИ во вто­рой части пособия.

В заключении отметим, что синтаксис языка Пролог является иден­тичным правилам записи продукций. Это обстоятельство делает язык весьма привлекательным для разработки экспертных систем, если учесть, к тому же, что Пролог содержит внутренние механизмы выбора правила и построения цепочки логических выводов для доказательства цели.
1. 4. 2. Языки инженерии знаний и инструментальные системы

Языки инженерии знаний реализованы как компоненты системы программирования оболочковых экспертных систем. Они различаются по:

  • степени сложности;

  • методам реализации;

  • способу представления знаний;

  • математическим основам построения системы;

  • механизму логического вывода;

  • способам извлечения знаний из эксперта;

  • возможности развития;

  • трудоемкости настройки на проблемную задачу;

  • стоимости.

Рассмотрим характеристики некоторых известных инструментальных систем разработки СИИ.

^ 1.4.2.1. Система VP Expert

Знания представлены цепочками простых правил, а факты - па­рами: <атрибут, значение>. VP Expert поддерживает атрибуты со мно­гими значениями, которые позволяют разработчику вставлять перемен­ные в правила с помощью описанных атрибутов. Система вывода осно­вана на индуктивных правилах (т.е. правилах, использующих анало­гию). Разработчик может вводить набор примеров, которые система преобразует в правила.

Для создания базы знаний VP Expert имеет текстовый редактор, ис­пользующий многооконное меню и цвет. Реализованы средства пред­ставления знаний в графическом виде.

^ 1.4.2.2. Система Insight 2+

Для работы с системой представлено древообразное меню, содер­жащее различные альтернативы. Для редактирования знаний исполь­зуется редактор Wordstar или другой текстовый редактор. Правила име­ют формат продукций, для которых пользователь определяет степень достоверности. Логический вывод организуется на основе обратного метода. С помощью набора команд эксперт имеет возможность устано­вить требуемый порядок размещения правил в базе знаний. Максималь­ное число вводимых правил 150-200.

  1. ^ Система Expert - Ease

В системе реализован индуктивный алгоритм вывода цели. В до­полнение к этому алгоритму введены средства, позволяющие либо кон­струировать дерево решений, либо проектировать поиск в базе данных. При создании базы знаний производится заполнение столбцов матрицы значений атрибутов. Матрица сразу задает не одно правило, а набор правил. При отсутствии информации, необходимой для построения де­рева решений, система задает вопросы эксперту. Эксперт высказывает мнения. Затем вопрос сопоставляется с мнениями, на основании мнений заполняется матрица. Матрицы увязываются в цепочку. В системе ис­пользуется достоверность.

^ 1.4.2.4. Система KAS

Система KAS является редактором системы PROSPECTOR и пред­назначена для разработки и отладки правил, семантических сетей и других моделей знаний. Особенностью редактора KAS является то, что он работает с графическим представлением знаний. Таким образом, пользователь не связан с машинным представлением создаваемых се­мантических структур. Редактор может быть активирован в произволь­ный момент, включая рабочий режим консультации, для модификации правил базы знаний. Структура правил системы KAS задается с по­мощью следующих синтаксических правил:

<правило>:: = (ЕСЛИ <условие>

ТО <мощность_правила>

<мощность_правила>

<заключение>)

<условие>:: = <выражение>

<заключение>:: = <описательное выражение>

<выражение>:: = <логическое выражение>|

<описание выражения>

< логическое выражение>:: = (И{<выражение>}+)|

(ИЛИ{<выражение>}+)|

(НЕ <выражение>)
1   2   3   4   5



Скачать файл (775.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации