Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инф-госы теория и практика.doc
Скачиваний:
28
Добавлен:
29.08.2019
Размер:
3.77 Mб
Скачать

Основные достоинства в-дерева

  • Во всех случаях полезное использование пространства вторичной памяти занимает свыше 50%. С ростом степени полезного использования памяти не происходит снижения качества обслуживания.

  • Произвольный доступ к записи реализуется посредством малого количества подопераций (обращения к физическим блокам).

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

  • Неизменная упорядоченность по ключу обеспечивает возможность эффективной пакетной обработки.

Основной недостаток В-деревьев состоит в отсутствии для них средств выборки данных по вторичному ключу.

20. Логические вопросно-ответные системы:выполнение запросов различных типов.

Экспертной системой (ЭС) называется система, которая позволяет пользователю описать проблемную ситуацию и получить ее решение, сопровождаемое объяснениями, почему выбрано именно это решение.

Перечислим основные компоненты ЭС.

  1. ГБД – глобальная база данных (содержит исходную информацию, необходимую для решения проблемной ситуации).

  2. БЗ – база знаний, суть набор операции преобразования ГБД (с помощью последовательности этих операций мы и получаем ответ, причем сама последовательность правил составляет определяет обоснование).

  3. Стратегия выбора следующей операции.

  4. Терминальное состояние ГБД (содержит ответ на вопрос).

Схема работы ЭС выглядит в виде дерева.

Различают 3 класса запросов к ЭС – классы A, B, C.

Запросы класса A.

Запросы класса A предполагают ответ «да» или «нет». В полноценных системах возможно три случая. Рассмотрим соответствующие примеры.

Пример 1. Предикаты: С(x) – x – человек, S(x) – x – смертен.

ГБД – C(Мао) – Мао человек.

БЗ - x [C(x) S(x)] – все люди смертны

Вопрос. S(Мао) – смертен ли Мао?

Система пытается доказать теорему S(Мао).

C (Мао)  S (Мао)   С (Мао)  S (Мао)   С (Мао) =

С(x)  S (x) {Мао/x} С (Мао)

 S (Мао)

Это удается - ответ «да».

Пример 2. P(x, y) – x в пункте y.

ГБД - P(Иван, Томск) – Иван в Томске.

БЗ - x [P(x, Томск)P(x, Новосибирск)] – если кто-то в Томске, то он не в Новосибирске.

Вопрос. P(Иван, Новосибирск) – Иван в Новосибирске?

Система пытается доказать теорему P(Иван, Новосибирск).

/ /вывод (19)

P(Иван, Томск)

P (x, Томск) P (x, Новосибирск) {Иван/x}

P (Иван, Новосибирск)

Это невозможно (нет унифицируемых литер).

Система пытается доказать теорему P(Иван, Новосибирск)

//вывод (20)

P(Иван, Томск)

P (x, Томск)  P (x, Новосибирск) {Иван / x}

P (Иван, Новосибирск)

P (Иван, Новосибирск)

P(Иван, Томск)

P (Иван, Томск)

P (Иван, Новосибирск)

P(Иван, Томск)

Это удается. Значит, ответ «нет».

Пример 3. ГБД - P(Огород, Бузина) – Бузина в огороде

Вопрос. P(Дядька, Киев) – дядька в Киеве?

Невозможно доказать ни P(Дядька, Киев), ни P(Дядька, Киев). Ответ – недостаточно информации (данных или знаний) для получения информации.

Примечание. Иногда автоматизированные системы всегда выдают ответы «да» или «нет» (например, Turbo Prolog в вопросно-ответном режиме). В этом случае ответ «нет» реально может означать, как «нет», так и недостаточность информации.

Запросы класса B.

Запросы этого класса требуют конкретный ответ.

Пример. F(x,y) – x – отец y.

ГБД - F(Иван, Сергей) – Иван отец Сергея.

Вопрос. Кто отец Сергея (вычислить значение x, что F(x, Сергей)).

Информация для ответа здесь извлекается из подстановок в процессе логического вывода. Действуем следующим образом. После построения отрицания к теореме приписываем к ней предикат ANS(x) и в результате вывода стремятся получить не пустой клоз, а клоз, состоящий только из предиката ANS, при этом переменная в предикате примет нужное значение.

//вывод (21)

F (Иван, Сергей)

 F (x, Сергей)  ANS (x) {Иван/x}

 F (Иван, Сергей)

ANS (Иван)

Иногда вопрос может содержать сразу несколько переменных. В этом случае и предикат ANS будет содержать несколько переменных. Запросы класса B возникают при попытке решения задачи определения объекта по его свойствам (например, задача определения сорта вина по результатам дегустации). Этот подход находит применение и при решении задач распознавания образов.

Запросы класса C.

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

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

Введем предикаты.

P(x,y,z,s) – обезьяна в точке x, стул в точке y, а банан в точке z, а вся система при этом условно находится в состоянии s.

R(s) – в состоянии s обезьяна может достать банан.

Обратим внимание на абстрактное понятие состояния системы. Оно необходимо для описания возможных действий с помощью функторов.

f(x,y,s) – функция перемещения обезьяны из точки x в точку y, s – исходное состояние системы до перемещения, результат функции – состояние системы после перемещения.

g(x,y,s) – функция переноса стула из точки x в точку y, s – исходное состояние системы до переноса стула, результат функции – состояние системы после переноса стула.

k(x,s) – обезьяна залезает на стул в точке x. Система при этом переходит из состояния s в новое, выражаемое результатом функции.

Итак, опишем исходные данные, т.е. ГБД.

P(a,b,c,s1) – в начальный момент обезьяна находится в точке а, стул в точке b, банан – в точке с, абстрактная система – в абстрактном состоянии s1.

БЗ составляют следующие.

xyzs [P(x,y,z,s)->P(y,y,z,f(x,y,s))] – где бы ни была обезьяна, она может подойти к стулу.

xys [P(x,x,y,z)->P(y,y,y,g(x,y,s))] – если обезьяна и стул в одной точке, то обезьяна может поднести стул к банану.

xs [P(x,x,x,s)->R(k(x,s))] – если обезьяна, стул и банан в одной точке то она может лезть на стол и есть банан.

В качестве теоремы предполагают, что существует состояние системы, в котором обезьяна может достать банан - s R(s). К этой теореме приписываем предикат ANS(s).

//вывод (22)

P(a, b, c, S1)

 P (x, y, Z, S)

P (y, y, Z, f (x, y, S))

 P (x, x, y, S)

P (y, y, y, g (x, y, S))

 P (x, x, x, S)

R(k (x, S))

 R (S)

ANS (S) {k (x, S)/S}

R (k (x, S))

 P (x, x, x, S) {y/x, g(x, y, S)}/S

ANS(k(x, S))

 P (x, y, Z, S)

P (y, y, Z, f (x, y, S))

 P (x, x, y, S)

P (y, y, y, g (x, y, S))

P(a, b, c, S)

 R(k(y) g(x, y, S)))

 P(y,y,y, G(x, y, S))

 P(x,x,y,S)

ANS(k(y)g(x,y,S))

{y/x, z/y,f(x,y,S)/S}

 P (x, y, Z, S)

P (y, y, Z, f (x, y, S))

P(a, b, c, S1)

 R(k(z,g(y,z)f(x,y,S)))

 P(z,z,z,g(y,z),f(x,y,S)))

 P(y,y,z,f90x,y,S)

 P(x,y,z,S

ANS(k(z,g(yz,f(x,y,S)))) {a/x, b/y, c/z, S1/S}

P (a,b,c,S)

 R(k(c,g(b,c,f(a,b,S1))))

 P(c,c,c,g(b,c,f(a,b,S1)))

 P(b,b,c,f(a,b,S1))

 P(a,b,c,S1)

ANS (k(c,g(b,cf(a,b,S1))))

ANS (k(c,g(b,c,f(a,b,S 1)))

Интерпретируя последовательность вложенных функций «изнутри», получают содержательный ответ.

//интерпретируем (23)

k(c,g(b,c,f(a,b,S1))):

- f(a,b,S1) – обезьяна переходит из точки a в точку b.

g(b,c,f(a,b,S1)) – обезьяна переносит стул из точки b в точку c.

k(c,g(b,c,f(a,b,S1))) – обезьяна лезет на стул в точке c.