ММИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
(ФГБОУ ВПО «КубГУ»)
Кафедра математического моделирования
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ (ДИПЛОМНАЯ) РАБОТА
«ТАБЛИЦЫ ПРИНЯТИЯ РЕШЕНИЙ В СУБД С
ТАБЛИЧНОЙ МОДЕЛЬЮ ДАННЫХ»
Работу выполнил Зубко М.Д
Факультет компьютерных технологий и прикладной математики
Специальность прикладная информатика и математика
Научный руководитель
канд. тех. наук, доцент Бессарабов Н.В
Нормоконтролер
канд. физ.-мат. наук,
доцент
Капустин М.С.
Краснодар 2014
РЕФЕРАТ
Объектом исследования является встроенное в базу данных интеллектуальное расширение СУБД, использующее таблицы принятия решений.
Цели работы: создать систему ТПР, встроенную в СУБД Oracle. Провести экспериментальные исследования быстродействия.
Более детально:
- создать базу данных для инструментального средства, предназначенного для работы с таблицами принятия решений, встроенными в СУБД Oracle,
- создать пакет процедур и функций, реализующий процессы, обеспечивающие создание, редактирование и работу с таблицами принятия решений,
- доработать интерфейсы, разработанные в курсовой работе Дербеневой Е. «Адаптивный интерфейс для работы с таблицами принятия решений», выполнить экспериментальную проверку инструментального средства.
Исследования проводились с помощью СУБД Oracle.
Адаптивный WEB-интерфейс
пользователя был реализован с использованием технологий HTML5, CSS3, JavaScript, JSON, PHP.
ВВЕДЕНИЕ
Искусственный интеллект - это один из разделов информатики, в котором рассматриваются задачи аппаратного и программного моделирования тех видов человеческой деятельности, которые считаются интеллектуальными [1].
Экспертные системы являются одним из основных направлений искусственного интеллекта. Как правило, экспертные системы создаются для решения практических задач в некоторых узкоспециализированных областях, где большую роль играют знания и опыт специалистов. Фундаментом экспертной системы любого типа является база знаний, которая составляется на основе знаний специалистов [2].
Второе направление - интеллектуальное управление - методы управления, которые используют различные подходы искусственного интеллекта, такие как искусственные нейронные сети, нечеткая логика, машинное обучение, эволюционные вычисления и генетические алгоритмы.
Одно из важнейших отличий интеллектуального управления от экспертной системы в том, что входные данные могут поступать не от человека, а от программных модулей и, поэтому, нуждаются в более тщательных проверках. Возможно прерывание процесса с целью получения решения пользователя. В этом случае, необходимо предоставить ему корректные данные и, насколько возможно, проконтролировать последовательность действий по принятию решения. Тем не менее, основная нагрузка по контролю корректности данных всё так же остаётся на плечах пользователей и экспертов, предоставляющих данные системе.
Таблицы принятия решений (ТПР) - способ компактного представления модели со сложной логикой. ТПР возникли в деловой практике еще в 60-ых годах прошлого века, зарекомендовав себя как удобное средство для быстрого, простого описания сложных процессов, структур и задач.
Аналогично условным операторам в языках программирования, они устанавливают связь между условиями и действиями. Но, в отличие от традиционных языков программирования, таблицы решений в простой форме могут представлять связь между множеством независимых условий и действий.
Высокая эффективность работы с таблицами решений позволяет строить сложные системы искусственного интеллекта. Их преимущества по сравнению с обычными экспертными системами - простота эксплуатации, встраивание в базу данных и, вытекающая из этого обстоятельства, возможность использования индексов базы для ускорения доступа к большому объёму фактов, представленных таблицами базы данных.
Также, таблицы принятия решений могут представляться деревьями принятия решений, которые в настоящее время широко используются в области статистики и анализа данных: на ребрах дерева записываются атрибуты, от которых зависит целевая функция, в «листьях» - значения целевой функции, а в остальных узлах - атрибуты, по которым различаются случаи.
В представленной работе используются таблицы принятия решений, встроенные
в СУБД Oracle, которые не требуют инсталяции
Oracle Fusion Middleware и потому могут работать в любой комплектации СУБД, в
частности в бесплатной для коммерческого использования версии Oracle XE.
1. Таблицы принятия решений
В общем виде под продукцией понимают выражение вида
A![]()
B
Импликация, чаще всего, может истолковываться в обычном логическом смысле, как знак логического следования B из А. Но классическая продукционная система Поста с продукциями общего вида слишком ограниченна. Имеется гораздо более широкое определение.
По
Поспелову Д.А. [10] продукционная модель знаний основывается на правилах,
имеющих в общем случае вид:
И;
О; У; А ![]()
К; П
где И - идентификатор продукции;
О - область применения;
У - условие применения;
А - антецедент;
К - консеквент;
П - последействие.
Более
точно, ядро продукции А![]()
К для
предлагаемого проекта следовало бы записать в виде:
АХ
![]()
КУ.
где x,y {БД, РС, БЗ} и через БД обозначен внешний мир, которым в нашем случае является база данных, РС это рассуждающая система, БЗ - база знаний.
Имеется в виду, что информация может поступать из внешнего мира (АБД), из базы знаний (АБЗ) и из самой рассуждающей системы (АРС), а следствие представляет изменения в базе данных (КБД), в базе знаний (КБЗ) или в рассуждающей системе (КРС).
Поясним на примере, как ядро продукции можно реализовать с помощью SQL-запроса. Любую таблицу можно воспринимать как набор фактов описываемых предикатом, полученным взаимно однозначным отображением схемы таблицы в предикат.
В
качестве примера возьмём таблицы employees, departmets и locations из многим известной учебной схемы HR в
СУБД Oracle. Используем продукцию, определяющую отношение
«Работает в городе», то есть «город, в котором находится отдел, в котором
работает сотрудник»:
Работает_в_отделе(employee, department)
Отдел_находится_в_городе(department, city)
Сотрудник_работет_в_городе(employee,city)
В языке SQL этой продукции соответствует запрос:
SELECT e.employee_id, l.cityemployees e, departments
d, locations le.department_id = d.department_idd.location_id = l.location_id
Заметим, что подобная реализация через запросы с соединениями таблиц для практики из-за плохих планов исполнения, приемлема только в том случае, когда в ядре продукции используются предикаты, представленные таблицами базы данных.
В общем случае таблица принятия решений, предназначенная для восприятия человеком, разделяется на четыре области (таблица 1).
Таблица 1 - Таблица принятия решений
|
Условия |
Комбинации выполнения условий |
|
Действия |
Выполняемые действия |
Каждое правило таблица принятия решений состоит из посылки (условия) и заключения (действия). В древовидном представлении, предпосылки и заключении являются узлами, а ветви дерева являются связями между посылками и заключениями.
Пример таблицы решений, для ситуации «Вода в гостинной» приведён в
таблице 2.
Таблица 2 - Пример таблицы принятия решений
|
В ванной сухо |
Нет |
Да |
Да |
Да |
|
На кухне сухо |
- |
Нет |
Да |
Да |
|
Потолок в гостиной сухой |
- |
- |
Да |
Нет |
|
Окно в гостиной закрыто |
- |
- |
_ |
Да |
|
Проверить сантехнику в ванной |
Х |
|
|
|
|
Проверить сантехнику на кухне |
|
Х |
|
|
|
Идти к соседям сверху |
|
|
Х |
|
|
Закрыть окно |
|
|
|
Х |
Четыре верхних строки относятся к условиям, остальные четыре - к
действиям. Такая структура таблиц удобна для восприятия человеком, поэтому
таблицы принятия решений просты для изучения и понимания специалистами
различных профессий, довольно легко модифицируемы и имеют более универсальную,
в сравнении с блок-схемами, форму.
В некоторых случаях разделение на условие и действие может оказаться довольно затруднительным, так как некоторые действия могут быть связаны с условием, подразумевая, что они должны быть выполнены перед проверкой условия. В то время как другие могут быть выполнены уже после проверки одного или нескольких условий. Кроме того, комбинации условий или действий сами по себе могут ссылаться на другие таблицы решений. Например, действие может включать в себя вызов процедуры для выполнения некоторой задачи, обращение к базе, для получения каких-либо данных или для выполнения той же задачи может быть определено условие в другой таблице решения.
Таблицу решения, вызванную другой таблицей решения, называют подтаблицей-действием или подтаблицей-условием. Эти подтаблицы играют важную роль в структурировании решения и позволяют производить более тщательный и детальный анализ.
Как частный случай перехода от одной таблицы к другой можно рассматривать
переходы внутри таблицы, что позволяет работать с исключениями из правил.
Например, представим, что таблица принятия решений содержит 7 условий, первые 2
из которых являются исключением из правил, и, если истинно хотя бы одно из них,
проверка остальных 5 условий не имеет смысла. В том случае, если мы хотим
обойти рассмотрение этих исключений, можно осуществить переход не к началу
таблицы, а к какой-либо её части. А затем, при необходимости, вернуться к
началу для проверки истинности условий-исключений (рисунок 1).
Рисунок 1 - схема работы с исключениями
Механизм логического вывода выполняет функции поиска в базе правил, последовательного выполнения операций над знаниями и получения заключений. Существует два способа проведения таких заключений: прямой и обратный выводы.
Формирование рассуждений в стиле обратного логического вывода может осуществляться следующим образом. Работа по поиску причин появления воды на полу в гостиной начинается с выдвижения гипотезы. Например, в рассмотренном выше примере это «утечка в кухне». После этого цепочка рассуждений в сети логического вывода формируется в обратном направлении. Для подтверждения этой гипотезы необходимо, чтобы утверждения «неисправность в кухне», «вода не капает с потолка» и «вода не поступает снаружи» были истинными [7].
В обратном механизме логического вывода работа начинается от поставленной цели. Если цель A согласуется с консеквентом (заключением) продукции, то антецедент (посылка) принимается за подцель и делается попытка подтверждения истинности этого факта. Процесс повторяется до тех пор, пока не будут просмотрены все правила, имеющие в качестве заключения требуемый факт.
Прямой логический вывод начинается не с гипотез, а с некоторых подтвержденных фактов. Обнаружив, что в гостиной вода, а в ванной сухо, можно сделать вывод, что неисправность в кухне. Кроме того, заметив, что окно кухни закрыто и потолок сухой можно сделать заключение, что вода не поступает извне. Это ведет к окончательному выводу, что утечка в кухне.
На практике, для решения довольно большого класса задач естественным является прямой логический вывод. Прямой логический вывод начинается не с гипотез, а с некоторых подтвержденных фактов [2]. Обнаружив, что в гостиной вода, а в ванной сухо, можно сделать вывод, что неисправность в кухне; кроме того, заметив, что окно кухни закрыто, можно сделать заключение, что вода не поступает снаружи; это ведет к окончательному выводу, что утечка в кухне.
В представленной работе использован прямой вывод.
Для хранения таблицы решений в базе данных реляционного типа (см. табл.
3), транспонируем представляющую матрицу.
Таблица 3 - реляционное представление таблицы принятия решений для ситуации «вода на полу»
|
В ванной сухо |
В кухне сухо |
Потолок в гостиной сухой |
Окно в гостиной закрыто |
Проверить сантехнику в ванной |
Проверить сантехнику в кухне |
Идти к соседям сверху |
Закрыть окно |
|
нет |
- |
- |
- |
Х |
|
|
|
|
да |
нет |
- |
- |
|
Х |
|
|
|
да |
да |
нет |
- |
|
|
Х |
|
|
да |
да |
да |
нет |
|
|
|
Х |
Каждой строке этой таблицы соответствует продукция. Например, для первой строки:
В
ванной сухо (Да) В кухне сухо (нет) ![]()
Утечка в
кухне
Преобразование транспонированием известно давно. Оно же было использовано в предыдущих разработках [9].
Ситуации,
в которых консеквент относится к одной или нескольким столбцам, не
повторяющимся в разных продукциях, крайне неудобны. Поэтому используется
таблица вида:
Таблица 4 - реляционное представление таблицы принятия решений
|
В ванной сухо |
В кухне сухо |
Потолок в гостиной сухой |
Окно в гостиной закрыто |
Действие |
Последействие |