Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlog.doc
Скачиваний:
8
Добавлен:
14.04.2019
Размер:
853.5 Кб
Скачать

Правила вывода логики предикатов

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

В логике предикатов в качестве такого правила вывода используется правило, которое из двух выражений A и AB выводит новое выражение B. Это правило называется правилом дедуктивного вывода.

Для описаний правил вывода во многих случаях используется нотация (как это указывалось выше), при которой над чертой записывается группа выражений, принимаемых за посылку, а под чертой – выражение, которое выводится:

Такой тип правила вывода носит название modus ponens.

Можно многократно использовать одно и тоже правило вывода. Например, если помимо выражений A, AB существует выражение BC, то можно вывести C, дважды использовав приведенное правило. Получение выражения  применением конечного числа раз правила вывода к заданной группе выражений  будем записывать в виде:

При этом говорят, что  дедуктивно выводится из . Очевидно, что из вышеуказанного, легко выводится еще одно правило:

Задачи с нечеткими и неполными данными

Плохо представленные (некорректные) задачи существуют во всех предметных областях. Корректные задачи часто можно решить существующими методами систематизации и программирования (волевым путем). В области некорректных задач точные знания нельзя получить. Смысл термина «нечеткость» также нечеткий.

Все нечеткости можно классифицировать следующим образом:

  1. Недетерминированность выводов

  2. Многозначность

  3. Ненадежность

  4. Неполнота

  5. Нечеткость или неточность

Недетерминировасть управления выводом и эвристические знания

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

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

Алгоритм а*

Большинство поисковых задач можно сформулировать как задачи поиска в пространстве состояний пути от исходного состояния заданной задачи до целевого состояния путем повторения возможных преобразований (с помощью операторов). При этом для организации поиска удобно использовать дерево поиска. К основным методам просмотра пространства состояний относится вертикальный и горизонтальный поиск. В алгоритме А* используются априорные оценки стоимости путей до целевого состояния.

Э тот алгоритм рассмотрим на примере игры, которая происходит на поле 3 Х 3, где размещены восемь пронумерованных шашек. Цель игры – от заданного состояния перейти к целевому состоянию.

На поле один пустой квадрат: состояние можно изменить, передвигая шашку сверху, снизу, слева или справа на пустой квадрат. Следовательно, в этой игре есть четыре оператора изменения состояния, соответствующих одному из передвижений шашки на пустой квадрат. А раз так, то не надо следить за перемещением какой-либо конкретной шашки. Простейший способ заключается в перемещении пустого квадрата. Теперь можно определить четыре действия:

1. Перемещение пустого квадрата влево (при этом слева есть квадрат)

2. Перемещение пустого квадрата вверх (при этом вверху есть квадрат)

3. Перемещение пустого квадрата вправо (при этом справа есть квадрат)

4. Перемещение пустого квадрата вниз (при этом внизу есть квадрат)

Используя эти операторы, будем представлять поиск в пространстве состояний. Рассмотрим также следующую оценочную функцию как функцию, регламентирующую выбор эффективного направления поиска. Пусть f(n) – стоимость оптимального пути к цели от первой вершины (начального состояния) через n вершин дерева поиска. Разделим f(n) и представим ее следующим образом:

f(n) = g(n) + h(n),

где g(n) – стоимость оптимального пути от первой вершины до n-й вершины,

h(n) – стоимость оптимального пути от n-й вершины до цели.

Будем считать, что перемещение одной шашки в игре имеет стоимость 1, а до цели ведет оптимальный путь с минимальной стоимостью.

В процессе поиска в общем случае нельзя точно знать f(n), поэтому рассматривают априорное (оценочное) значение . В момент достижения n-й вершины g(n) известно, поэтому можно записать

где - априорное значение h(n). Если представить пространство поиска в виде дерева, то g(n) – это глубина от первой вершины до n-й вершины. В качестве , например, выберем число шашек, находящихся не на своих местах. Определив, таким образом, оценочную функцию, выберем стратегию прохождения вершин (применения операторов), в которых значения функции минимальны.

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

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