- •Компьютерные технологии в науке и образовании
- •Часть 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.5. Представление пространства состояний в виде базы знаний
Будем представлять пространство состояний при помощи отношения предиката
После (х,y)
которое истинно тогда, когда в пространстве состояний существует разрешенный ход из вершины Х в вершину Y. Будем говорить, что Y - это преемник вершины Х. Если с ходом связаны их стоимости, мы добавим третий аргумент, стоимость хода:
После (X,y,s)
Эти отношения можно задавать в программе явным образом при помощи набора соответствующих фактов. Однако такой подход непрактичен и нереален для тех типичных случаев, когда пространство состояний устроено достаточно сложно.
Поэтому отношение следования «после ( )» обычно определяется при помощи правил
вычисления вершин - приемников
некоторой заданной вершины
Другим вопросом является способ представления состояний, т.е. самих вершин. Это представление должно быть компактно, но в то же время обеспечивать эффективное выполнение необходимых операций:
операций вычисления вершин - приемников.
а возможно и стоимостей соответвующих ходов.
Для рассматриваемого примера проблемную ситуацию (состояние) можно представить как список столбиков. При этом каждый столбик представляется списком кубиков, из которых он составлен. Кубики упорядочены в списке так, что самый верхний находится во главе списка. «Пустые» столбики изображаются как пустые списки.
Тогда исходную ситуацию (состояние) можно записать как терм вида:
[[c,a,b],[ ],[ ]]
Целевая ситуация – это любая конфигурация кубиков, содержащая столбик, составленный из всех кубиков в нужном порядке. Таких состояний три:
[[a,b,c],[ ],[ ]],
[[ ],[a,b,c],[ ]],
[[ ],[ ],[a,b,c]].
Отношения следования может быть описано на Прологе, исходя из следующего правила:
«Состояние 2» есть приемник «Состояния 1» если в «состоянии 1» имеется два столбика «Столб 1» и «Столб 2», такие, что верхний кубик из «Столб 1» можно поставить сверху на «Столб 2» и получить при этом «Состояние 2».
При этом целевое условие может быть также представлено в виде правила:
Цель(состояние):-принадлежит([a,b,c],Состояние)
Т. е. нашей целью является поиск такой проблемной ситуации, представляющей собой список столбиков, в которой один из столбиков содержит список кубиков в назначенном нами порядке.
Лекция 9
1.9. Нечеткие множества в системах основанных на знаниях
1.9.1. Основные понятия и определения
При работе с экономическими и статистическими данными как в системах принятия решений, так и в базах данных и знаний, возникают ситуации когда мы не можем точно количественно описать какие-либо объекты или явления. Например, на вопрос «Каков спрос в Санкт-Петербурге на мебель для кухни отечественных производителей?» можно получить лишь качественный ответ - «высокий», «низкий», «ниже, чем на итальянские кухни» т.п. Даже если нам удастся добыть цифру 254 кухни в месяц, то, очевидно, доверие у нас будет довольно низкое, так как это значение может не учитывать ряд мелких производителей, продавцов, сезонность и т.д.
Поэтому для успешного принятия решения мы должны научиться работать с качественными данными и нечетко определенными понятиями. В связи с этим возникают вопросы:
как сложить два качественных описания или найти их среднее (например, спрос на отечественные кухни в Москве и Санкт-Петербурге);
как в базе данных найти все города, где спрос на кухни между «низким» и «очень низким», т.е. как выполнить фильтрацию при таких данных.
Для ответа на подобные вопросы используется специальный математический аппарат называемый теорией нечетких множеств, который, как показали два последних десятилетия, оказался достаточно жизненным, широко и успешно применяемым в самых различных областях. Рассмотрим основные определения и положения теории нечетких множеств.
Нечетким множеством Ãна множестве U называется совокупность пар Ã = <mA(u), u>
где mA(u) - функция принадлежности нечеткого множества Ã, аu- носитель нечеткого множества Ã.
Рассмотрим пример. Пусть требуется определить нечеткое понятие «Студент учится хорошо». Обозначим это понятие Ã. При определении этого понятия совершенно очевидно, что если у студента средний балл 4, то его можно назвать хорошо успевающим. Однако если средний балл 4.4 , то студент учится тоже «хорошо», но уже с некоторым сомнением - а может «отлично». При среднем балле 3.7, его тоже можно отнести к категории учащихся на «хорошо», но с еще большим сомнением - а может
«удовлетворительно». Наше представление (знание) о понятии «Студент учится хорошо» можно представить графически (рис. 1.9.1). Рис. 9.1 Функция принадлежности
График показывает наше сомнение или уверенность в том, что студента с некоторым средним баллом можно отнести к “хорошо успевающий”. Здесь средний балл <u> является носителем нечеткого множества.
А степень уверенности в том, как значение <u> принадлежит понятию «хорошо» и есть функция принадлежности. Таким образом, нечеткое множество Ã есть не что иное, как попытка количественно описать качественное выражение «хорошо».
Почему функция принадлежности mA(u)Î[0,1]? Это связано с тем, что нам удобно выражать свое отношение в процентах. Например, на 90% доверяю. А если есть абсолютная уверенность, то это 100% доверие или 1. Поэтому и область изменения значений функции принадлежности от 0 до 100% или [0, 1].
Рассмотрим теперь понятие лингвистическая переменная. Это переменная, которая может принимать нечеткие значения. Поясним это понятие на примере. Определим лингвистическую переменную Х, характеризующую успеваемость студентов. Эта переменная может принимать одно из четырех возможных нечетких значения
X = {Ã1, Ã2, Ã3, Ã4}
где Ã1= «неудовлетворительно»; Ã2= «удовлетворительно»; Ã3= «хорошо»; Ã4= «отлично». Для того, чтобы работать с лингвистической переменной Х мы должны количественно определить все нечеткие множества Ãi(рис. 9.2).
Рис. 1.9.2. Нечеткие множества Ãi
Из этого рисунка видно, что графики функций принадлежности пересекаются, что говорит о том, что мы затрудняемся сказать точно, к какому нечеткому значению отнести определенный средний балл. В таких случаях обычно используют максимальное значение mAiu, например, средний балл 2,75 более подходит к значению «удовлетворительно», чем «неудовлетворительно».
Следует отметить, что в большинстве случаев функции принадлежности строятся субъективно по результатам опроса экспертов, поэтому они являются в некотором смысле «приближенными», т.е. не абсолютно адекватно отражающими явление или объект. Собственно говоря, из субъективностиРис. 9.3. Трапециевидная функция принадлежности
следует, что абсолютной адекватности в принципе и не существует. Поэтому, очевидно, нужно выбирать такую функцию, с которой можно было бы как можно проще вести расчеты. Такими функциями являют-ся трапециевидные (рис. 9.3) функции.ТогдаmA(u) харак-теризуется четверкой (m,m,a,b). Как частный случай приm= m имеем треу-гольную форму функции.