Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zadania_na_proekt2012.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
61.55 Кб
Скачать
  1. Текстовое описание продукционной базы знаний

Для рассматриваемой предметной области была создана следующая модель:

В процессе анализа задачи было выявлено множество решений, которые могут приниматься

в данной предметной области. Из них было сформировано множество G:

G = { Войти в магазин,

Магазин не торгует ЖД,

Магазин торгует ЖД,

Позвать кассира,

Проверить в магазине ли кассир,

Проверить в магазине ли покупатель,

У кассира нашлась сдача,

У кассира нет сдачи }

По ходу раскрытия содержания каждого действия, т.е. в процессе выявления и исследования

множества ситуаций, в которых может приниматься то или иное решение, и анализа влияния каждого

из действий на состояние модели предметной области, были выделены соответствующие множества

объектов, их свойств, и отношений между ними.

X = { ЖесткийДиск,

Кассир,

Магазин,

Покупатель }

C = { В_продаже_есть_ЖД [ Тип свойства: Логический ],

Цена [ Тип свойства: Числовой ],

Деньги [ Тип свойства: Числовой ],

Сдача [ Тип свойства: Числовой ],

ТребуемыйОбъем [ Тип свойства: Числовой ],

Координаты [ Тип свойства: Числовой ],

Объем [ Тип свойства: Числовой ] }

Перечисленные свойства описывают объекты следующим образом:

Объект "ЖесткийДиск":

-- Объем; Множество значений: {Все действительные числа }

-- Цена; Множество значений: {Все действительные числа }

Объект "Кассир":

-- Деньги; Множество значений: {Все действительные числа }

-- Сдача; Множество значений: {Все действительные числа }

-- Координаты; Множество значений: {Все действительные числа }

Объект "Магазин":

-- В_продаже_есть_ЖД; Множество значений: {Четкие логические значения }

-- Координаты; Множество значений: {Все действительные числа }

Объект "Покупатель":

-- ТребуемыйОбъем; Множество значений: {Все действительные числа }

-- Деньги; Множество значений: {Все действительные числа }

-- Координаты; Множество значений: {Все действительные числа }

Для решения задачи потребовалось установить следующие отношения между объектами:

R = { В(Кассир, Магазин),

В(Покупатель, Магазин),

Купил(Покупатель, ЖесткийДиск),

Покинул(Покупатель, Магазин),

Сдача(Кассир, Покупатель),

Устраивает(Покупатель, ЖесткийДиск),

Устраивает(Покупатель, Магазин) }

Объединяя информацию о свойствах объектов и отношениях между ними,

получаем набор фактов, которые должны входить в рабочую базу данных (РБД) интеллектуальной системы:

РБД = { ЖесткийДиск.Объем [ Тип факта: Числовой; Начальное значение = Не задано ],

ЖесткийДиск.Цена [ Тип факта: Числовой; Начальное значение = Не задано ],

Кассир.Деньги [ Тип факта: Числовой; Начальное значение = Не задано ],

Кассир.Координаты [ Тип факта: Числовой; Начальное значение = Не задано ],

Кассир.Сдача [ Тип факта: Числовой; Начальное значение = Не задано ],

Магазин.В_продаже_есть_ЖД [ Тип факта: Логический; Начальное значение = Не задано ],

Магазин.Координаты [ Тип факта: Числовой; Начальное значение = Не задано ],

Покупатель.Деньги [ Тип факта: Числовой; Начальное значение = Не задано ],

Покупатель.Координаты [ Тип факта: Числовой; Начальное значение = Не задано ],

Покупатель.ТребуемыйОбъем [ Тип факта: Числовой; Начальное значение = Не задано ],

В(Кассир, Магазин) [ Тип факта: Логический; Начальное значение = Не задано],

В(Покупатель, Магазин) [ Тип факта: Логический; Начальное значение = Не задано],

Купил(Покупатель, ЖесткийДиск) [ Тип факта: Логический; Начальное значение = Не задано],

Покинул(Покупатель, Магазин) [ Тип факта: Логический; Начальное значение = Не задано],

Сдача(Кассир, Покупатель) [ Тип факта: Логический; Начальное значение = Не задано],

Устраивает(Покупатель, ЖесткийДиск) [ Тип факта: Логический; Начальное значение = Не задано],

Устраивает(Покупатель, Магазин) [ Тип факта: Логический; Начальное значение = Не задано] }

Далее, была создана База Правил.

База Правил содержит следующие правила:

A) Правила, эквивалентные действиям над объектами предметной области:

A.1)

ИМЯ ПРАВИЛА: "Войти в магазин"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Покупатель.Координаты <> Магазин.Координаты )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Покупатель.Координаты := Магазин.Координаты

В(Покупатель, Магазин) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Покупатель вошел в магазин

A.2)

ИМЯ ПРАВИЛА: "Магазин не торгует ЖД"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Магазин.В_продаже_есть_ЖД = ЛОЖЬ )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Устраивает(Покупатель, Магазин) := ЛОЖЬ

В(Покупатель, Магазин) := ЛОЖЬ

Покинул(Покупатель, Магазин) := ИСТИНА

Купил(Покупатель, ЖесткийДиск) := ЛОЖЬ

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Этот магазин не торгует ЖД. Уходим :(

A.3)

ИМЯ ПРАВИЛА: "Магазин торгует ЖД"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Магазин.В_продаже_есть_ЖД = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) <> ИСТИНА )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Устраивает(Покупатель, Магазин) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 99

Локальные переменные: Отсутствуют

Заключение: Этот магазин нас устраивает, в нем есть ЖД.

A.4)

ИМЯ ПРАВИЛА: "Позвать кассира"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, ЖесткийДиск) = ИСТИНА )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Кассир.Координаты := Магазин.Координаты

В(Кассир, Магазин) := ИСТИНА

Кассир.Сдача := Покупатель.Деньги - ЖесткийДиск.Цена

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 90

Локальные переменные: Отсутствуют

Заключение: Прибежал кассир

A.5)

ИМЯ ПРАВИЛА: "Проверить в магазине ли кассир"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, ЖесткийДиск) = ИСТИНА ) И

( Кассир.Координаты = Магазин.Координаты )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

В(Кассир, Магазин) := ИСТИНА

Кассир.Сдача := Покупатель.Деньги - ЖесткийДиск.Цена

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 5

Локальные переменные: Отсутствуют

Заключение: Кассир стоит у кассы.

A.6)

ИМЯ ПРАВИЛА: "Проверить в магазине ли покупатель"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Покупатель.Координаты = Магазин.Координаты )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

В(Покупатель, Магазин) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 100

Локальные переменные: Отсутствуют

Заключение: Покупатель уже в магазине... странно

A.7)

ИМЯ ПРАВИЛА: "У кассира нашлась сдача"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, ЖесткийДиск) = ИСТИНА ) И

( В(Кассир, Магазин) = ИСТИНА ) И

( Кассир.Деньги => Кассир.Сдача )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Покупатель.Деньги := Кассир.Сдача

Купил(Покупатель, ЖесткийДиск) := ИСТИНА

Покинул(Покупатель, Магазин) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: У кассира даже нашлась сдача.

A.8)

ИМЯ ПРАВИЛА: "У кассира нет сдачи"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, ЖесткийДиск) = ИСТИНА ) И

( В(Кассир, Магазин) = ИСТИНА ) И

( Кассир.Сдача > Кассир.Деньги )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Устраивает(Покупатель, ЖесткийДиск) := ЛОЖЬ

Устраивает(Покупатель, Магазин) := ЛОЖЬ

В(Покупатель, Магазин) := ЛОЖЬ

Купил(Покупатель, ЖесткийДиск) := ЛОЖЬ

Покинул(Покупатель, Магазин) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Сдачи нет, едем домой

B) Вспомогательные правила - обеспечивают связное изменение одних фактов в соответствии с

изменением других, но не являются действиями-решениями над объектами предметной области.

Правила этого типа рекомендуется использовать для вычисления значений отношений через значения свойств.

B.1) ИМЯ ПРАВИЛА: "Этот ЖД нам не подходит - дорого"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) = ИСТИНА ) И

( ЖесткийДиск.Цена > Покупатель.Деньги )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Устраивает(Покупатель, ЖесткийДиск) := ЛОЖЬ

Устраивает(Покупатель, Магазин) := ЛОЖЬ

Покинул(Покупатель, Магазин) := ИСТИНА

В(Покупатель, Магазин) := ЛОЖЬ

Купил(Покупатель, ЖесткийДиск) := ЛОЖЬ

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Этот ЖД слишком дорогой

B.2) ИМЯ ПРАВИЛА: "Этот ЖД нам не подходит - маленький"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) = ИСТИНА ) И

( ЖесткийДиск.Объем < Покупатель.ТребуемыйОбъем )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Устраивает(Покупатель, ЖесткийДиск) := ЛОЖЬ

Устраивает(Покупатель, Магазин) := ЛОЖЬ

В(Покупатель, Магазин) := ЛОЖЬ

Покинул(Покупатель, Магазин) := ИСТИНА

Купил(Покупатель, ЖесткийДиск) := ЛОЖЬ

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Этот ЖД слишком маленький

B.3) ИМЯ ПРАВИЛА: "Этот ЖД нам подходит"

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( В(Покупатель, Магазин) = ИСТИНА ) И

( Устраивает(Покупатель, Магазин) = ИСТИНА ) И

( ЖесткийДиск.Объем => Покупатель.ТребуемыйОбъем ) И

( ЖесткийДиск.Цена <= Покупатель.Деньги )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Устраивает(Покупатель, ЖесткийДиск) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Этот ЖД нам подходит, надо брать!

Для разрешения конфликтов в процессе логического вывода была использована стратегия "P",

состоящая из следующего набора процедур:

P = { Высший приоритет }

КРАТКОЕ ОПИСАНИЕ ИСПОЛЬЗОВАННЫХ ПРОЦЕДУР:

- Процедура "Высший приоритет" выбирает наиболее приоритетные правила. Чем значение приоритета меньше, тем он выше.

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