Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SII_-_Lektsii_upd01.doc
Скачиваний:
13
Добавлен:
01.03.2025
Размер:
660 Кб
Скачать
☆

4. Представление знаний с помощью фреймов Фреймы

В психологии фрейм – абстрактный образ для представления некоторого стереотипа восприятия. Фрейм – то минимально необходимое, без чего не существует явление, объект или процесс, о котором идёт речь. Изначально фрейм задумывался как стереотип восприятия. Фрейм имеет имя и состоит из слотов.

Типы фреймов:

  • Структурные фреймы

  • Ролевые фреймы

<Имя фрейма>

Имя слота

Значение слота

Способ получения значения

Присоединённые процедуры

Способы получения слотом значения во фрейме-экземпляре:

  • По умолчанию

  • Через наследование свойств от фрейма, имя которого указано в слоте с именем AKO (a kind of)

  • По формуле, указанной в слоте

  • Через присоединённую процедуру

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

    • Процедуры-слуги – активируются только по запросу

  • Через диалог с пользователем

  • Из базы данных

Слот Instance содержит имена фреймов-потомков.

Языки:

  • FRL (Frame Representation Language),

  • KRL (Knowledge Representation Language).

<примеры пропущены>

Язык frl

FRL – структура с максимальной вложенностью 5.

ИмяФрейма

ИмяСлота1

ИмяЯчейки1

Данные1

Комментарий1:сообщение

Комментарий2:сообщение

Данные2

…

ДанныеN

…

ИмяЯчейкиK

Одно из свойств – минимальное количество операторов:

  • Fassert(arg) – Добавляет данные в базу знаний.

Fassert(

Командировка(

(Кто

($value

(Воронина И.Е.)

(Шашкин А.И)

)

)

(Куда

($value

(СПб)

(Москва)

)

)

(Когда

($value

(07/12/2012)

)

)

)

Fput – позволяет добавлять новые данные.

Fput(командировка, кто, $value, Иванов И.Н.)

Fget(Командировка, Кто)

Fremove() – удаляет данные

Ferase() – удаляет фрейм

Ячейка может содержать значения:

  • $default – тогда её значение будет использоваться по умолчанию.

  • $ifedit – содержит имя присоединённой процедуры-демона, которая будет вызвана при изменении данных

  • $ifremove – содержит имя присоединённой процедуры-демона, которая будет вызвана при удалении данных

  • $require – в качестве данных такой ячейки хранятся имена некоторых предикатов в определённых назначениях слота. Это может быть использовано, например, для ответа на вопрос: «Нет ли среди городов, имеющихся во фрейме, города Амстердам?»

Для активации процедуры-слуги вызывается fget с полным путём к тому месту, где хранится эта процедура.

  • AKO (a kind of) – специальный вид слота, который может содержать только имя фрейма-предка (одного; множественное наследование не допускается).

  • INSTANCE – специальный слот, который содержит только имена фреймов-потомков.

5. Продукционные системы. Управление системами продукций Продукционные системы

Основное правило: «Если УСЛОВИЕ то ДЕЙСТВИЕ».

Продукционная система состоит из трёх элементов:

  • Классы и отношения (база данных)

  • Правила (набор продукций)

  • Управляющая структура (интерпретатор дынных) —определяет, какое правило будет проверено следующим.

Сама база данных часто называется рабочей памятью.

Пример. Задача нахождения минимума в массиве в продукционной системе:

  1. Рабочая область: N = 10, I = 1, A(10) = -1; …; A(10) = 100; MIN = MAX = A(1)

  2. Правила:

    1. if I > N then print(MIN, MAX); STOP;

    2. if A(I) > MAX then MAX := A(I);

    3. if A(I) < MIN then MIN := A(I);

    4. I := I + 1;

  3. Управляющие структуры: поочерёдно проверять правила, пока одно из них не сработает и не встретится оператор STOP.

Вариант правил, не зависящих от их порядка:

    1. if (I <= N) and (A(I) > MAX) then MAX := A(I);

    2. if (I <= N) and (A(I) < MIN) then MIN := A(I);

    3. if (I > N) then print(MIN, MAX);

    4. if (I <= N) and (A(I) <= MAX) and (A(I) >= MIN) then I := I+1;

Общий вид продукционного правила:

(i); Q; P; A => B; N,

где

i – имя продукции в системе правил,

Q – сфера применения продукции (для организации удобного поиска и структурирования),

P – условие применимости ядра продукции (предусловие), обычно является предикатом,

N – постусловие (действия, которые могут выполнены только при реализации ядра).

Рабочая память содержит описание текущего состояния мира. Описание является образцом, который сопоставляется с условной частью продукции с целью выбора последующего действия. Действие изменяет состояние рабочей памяти. Если выполнимы несколько продукций, то они образуют конфликтный набор. Продукции, которые содержатся в конфликтном наборе, называются допустимыми. Возникает проблема разрешения конфликтов.

Пример 1.

Правила:

Правило #1: если <Вася имеет шерсть и есть мясо>, то <Вася – кот>

Правило #2: если <Вася – хищник>, то <Вася ест мясо>

Правило #3: если <Вася имеет шерсть>, то <Вася млекопитающее>

Правило #4: если <Вася из сем. кошачьих>, то <Вася есть мясо>

Факты:

Факт #1. <Вася имеет шерсть>

Факт #2. <Вася – хищник>

Способы вывода:

  • прямой (дедуктивный)

  • обратный

…

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]