- •Компьютерные технологии в науке и образовании
- •Часть 1 Базы знаний
- •Содержание
- •Лекция 1
- •1.1 Основы построения систем основанных на знаниях (соз).
- •1.1.1 Общие сведения о соз
- •1.1.2. Пример независимости знаний и процедур их обработки
- •1.1.3 Понятие знаний, фактов и правил
- •Лекция 2
- •1.2 Экспертные системы и необходимые условия представления знаний.
- •1.2.1. Назначения эс и основные требования к ним
- •1.2.2. Упрощенная структура эс
- •1.2.3. База знаний как элемент экспертной системы
- •1.2.4. Необходимые условия представления знаний
- •Лекция 3 Лекция 3
- •1.3 Приобретение и формализация знаний.
- •1.3.1. Формализация задачи
- •1.3.2. Представление знаний в виде «дерева решений»
- •Лекция 4
- •1.4 Представление знаний с использованием логики предикатов.
- •1.4.1. Логические модели и логическое программирование
- •1.4.2. Простейшие конструкции языка предикатов
- •1.4.3. Предикатные формулы
- •Является (ласточка, птица) ← имеет (ласточка, крылья),
- •("X) [человек (х) ¬ смертен]
- •1.4.5. Логический вывод
- •1.4.5.1. Правило резолюции для простых предложений
- •1.4.5.2. Правило резолюции для сложных предложений
- •1.4.5.3. Простая резолюция сверху вниз
- •S: ù получает (студент, стипендию)
- •Для всех у студент не получает у
- •1.4.5.6. Решение задач и извлечение ответа.
- •D1: ù факториал (3, z)
- •Лекция 5
- •1.5 Семантические сети.
- •1.5.1. Описание иерархической структуры понятий и диаграмма представления
- •«Человек» is - a «млекопитающее»
- •«Все ласточки – птицы»
- •«Ласта – ласточка» «ласточка – птица»
- •«Ласта – птица»
- •1.5.2. Семантическая сеть как Пролог - программа
- •1.5.3. Элементы семантической сети
- •1.5.4. Представление структуры понятий семантической сетью
- •1.5.5. Представление событий семантической сетью
- •1.5.6. Получение вывода с помощью семантической сети
- •1.5.7 Пример представления знаний семантической сетью
- •Лекция 6
- •1.6.1. Системы продукции
- •Если - то (явление - реакция)
- •1.6.2. Механизм функционирования систем продукции
- •«Намерение – отдых» «место отдыха – горы»
- •«Место отдыха – горы»
- •«Использовать – джип»
- •«Дорога – ухабистая»
- •1.6.3. Обратная цепочка рассуждений в системе продукций
- •Лекция 7
- •1.7. Представление знаний с применением фреймов
- •1.7.1. Понятие фрейма и слота
- •1.7.2. Фреймовые системы и их функционирование
- •1.7.3. Обобщенная структура фрейма
- •Лекция 8
- •1.8. Стратегии поиска в системах основанных на знаниях
- •1.8.1. Поиск как основа функционирования соз
- •1.8.2. Стратегии поиска в глубину и ширину
- •1.8.3. Стратегия эвристического поиска
- •1.8.4. Формализация задач в пространстве состояний
- •1.8.5. Представление пространства состояний в виде базы знаний
- •После (х,y)
- •После (X,y,s)
- •Цель(состояние):-принадлежит([a,b,c],Состояние)
- •Лекция 9
- •1.9. Нечеткие множества в системах основанных на знаниях
- •1.9.1. Основные понятия и определения
- •1.9.2. Арифметические операции над нечеткими переменными
- •1.9.3. Операции нечеткой фильтрации и выбора
1.8.4. Формализация задач в пространстве состояний
Процесс решения задачи, как правило, включает два этапа: представление задачи и реализацию стратегии поиска.
Полное представление задачи в пространстве состояний включает:
описание всех или только начальных состояний;
задание операторов, отображающие одни состояния в другие;
задание целевого состояния.
Поиск решения задачи в пространстве состояний сводится к определению последовательности операторов, отображающих начальное состояние в целевое.
Таким образом, представление задачи в пространстве состояний определяется совокупностью трех составляющих — тройкой
< S0, F, G>
где S0- множество начальных состояний (может состоять из одного элемента);
F - множество операторов, отображающих одно состояние в другое;
G - множество целевых состояний.
Для описания состояний могут использоваться векторы, матрицы, графы, списки и т.д. Выбор той или иной формы описания состояний определяется из того, чтобы применение оператора, преобразующего одно состояние в другое, оказалось наиболее простым.
При этом операторы отображения (преобразования) наиболее часто представляются в виде набора правил, задающих возможность перехода из одного состояния в другое (преобразование одних состояний в другие).
Так, для рассмотренного ранее примера поиска пути на карте дорог, любое текущее состояние можно описать в виде списка городов, пройденных к текущему моменту (т.е. включенных в маршрут поиска на данный момент).
Тогда начальное состояние будет описываться списком, состоящим только из одного элемента, соответствующего начальному пункту пути:
[A]
Конечным состояниям будут соответствовать любые списки, первые элементы которых соответствуют целевой вершине, т.е. конечному пункту маршрута:
[F ¦ ]
Для рассмотренного выше примера конечному состоянию будут соответствовать списки:
[F ¦ [ E,B,A]]
[F ¦ [H,G,A]] и т.д.
Операторы преобразования для этого примера могут быть представлены в виде:
набора фактов, определяющих дороги между городами;
набора правил, определяющих возможность перемещения из одного города в другой.
Для рассмотренного примера набор фактов может быть следующим:
дорога (a, b)
дорога (a, g)
дорога (a, e)
дорога (b, c)
……………
дорога (g, h)
Для случая простейшей стратегии поиска для одноориентированного графа дорог набор правил может быть следующим:
маршрут (Кон_город,Кон_город,[Кон_город]).
маршрут (Город,Кон_город,[Город|Путь_до_конца]):-
дорога(город,город_к),
маршрут (Город_к,Кон_город,Путь_до_конца)
Процедуры поиска решений в пространстве состояний удобно рассматривать, используя граф состояний, на котором строится дерево решений.
Пространство состояний- это граф, вершины которого соответствуют ситуациям, встречающимся в задаче (проблемные ситуации), а решение задачи сводится к поиску пути в этом графе.
Процесс решения задачи включает в себя поиск в графе, при этом возникает проблема, как обрабатывать альтернативные пути поиска.
Рассмотрим пример простейшей задачи для интеллектуального робота по переупорядочиванию кубиков, поставленных друг на друга, как показано на рис. 1.8.7.
Рис. 1.8.7. Задача
Условия задачи:
На каждом шаге можно переставить только один кубик;
Кубик можно взять только тогда, когда верхняя поверхность свободна;
Кубик можно поставить либо на стол, либо на другой кубик.
Для того, чтобы построить требуемый план, интеллектуальный робот должен отыскать последовательность ходов, реализующих заданную трансформацию.
Эту задачу можно представить как задачу выбора среди множества возможных альтернатив.
В исходной ситуации альтернатива одна — поставить кубик C на стол.
После того как кубик C поставлен на стол, мы имеем три альтернативы:
1)поставить A на стол,
или
2) поставить A на C,
или
3) поставить C на A.
Как показывает рассмотренный пример с задачами такого рода связано два типа понятий:
проблемные ситуации.
разрешенные ходы или действия, преобразующие одни проблемные ситуации в другие.
Проблемные ситуациивместе с возможными ходами образуют направленный граф, называемый пространством состояний. Пространство состояний для этой простейшей задачи может быть изображено в виде полного графа представления задачи манипулирования кубиками (рис. 8.8).
Вершины графа соответствуют проблемным ситуациям, а дуги — разрешенным переходам из одних состояний в другие. Задача отыскания плана перемещения эквивалентна задаче построения пути между начальной ситуацией («стартовой» вершиной) и некоторой указанной заранее конечной ситуацией, называемой также целевой вершиной.
Для рассмотренной задачи решением является выделенный на графе путь.
Рис. 8.8. Граф (пространство состояний)
Естественно, что для более сложных задач графическое представление пространства состояний не представляется возможным ввиду его сложности и большой размерности.
Каждому разрешенному ходу или действию можно приписать его стоимость. В рассматриваемой задачи, это будет указывать на то, что один кубик перемещать труднее, чем другие.
В тех случаях, когда каждый ход имеет стоимость, мы заинтересованы в отыскании решения минимальной стоимости.
Стоимость решения - это сумма стоимостей дуг, из которых состоит путь из стартовой вершины в целевую. И он может быть иной, чем в случае, когда стоимости не заданы.
Даже если стоимости не заданы, может возникнуть оптимизационная задача: найти кратчайшее решение.
Но прежде, чем говорить о возможных стратегиях поиска в пространстве состояний, давайте выясним, как можно представить пространство состояний в БЗ, используя для примера язык Пролог.