Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 26 апреля 2016 г.)

Наука: Математика

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Тимофеева О.В., Каньшин Е.А. ПРИМЕНЕНИЕ НЕЧЕТКОЙ ЛОГИКИ В ЗАПРОСАХ К БАЗАМ ДАННЫХ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XLI междунар. студ. науч.-практ. конф. № 4(40). URL: https://sibac.info/archive/technic/4(40).pdf (дата обращения: 13.05.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 48 голосов
Дипломы участников
Диплом лауреата
отправлен участнику

ПРИМЕНЕНИЕ НЕЧЕТКОЙ ЛОГИКИ В ЗАПРОСАХ К БАЗАМ ДАННЫХ

Тимофеева Олеся Вячеславовна

студент 3 курса, факультет информатики Самарский университет им. С.П. Королёва, г. Самара

Каньшин Евгений Алексеевич

студент 3 курса, факультет информатики Самарский университет им. С.П. Королёва, г. Самара

Тишин Владимир Викторович

научный руководитель,

доцент, кафедра прикладной математики, Самарский Университет им.С.П. Королёва,

г. Самара

 

Введение

Нечеткая логика является обобщением классической логики и теории множеств и базируется на понятии нечеткого множества, впервые введенного в 1965 году Лотфи Заде в статье "fuzzy set". Понятие нечеткого множества допускает, что функция принадлежности элемента множеству может принимать не только значения 0 или 1, а любые значения из интервала [0,1].

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

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

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

Данная статья на примере рассматривает применение нечеткой логики в запросах к базам данных и ее преимущество над классической логикой.

Основные термины и определения

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

«Нечеткое подмножество Α некоторого универсального множества  характеризуется функцией принадлежности, которая ставит в соответствие каждому элементу  число , принадлежащее интервалу , определяющее степень принадлежности элемента  множеству Α» [1, с. 32]. Чем больше степень принадлежности, тем в большей мере элемент универсального множества соответствует свойствам нечеткого множества.

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

«Нечеткая переменная описывается набором (N,X,A), где N – это название переменной, X – универсальное множество (область рассуждений), A – нечеткое множество на X» [3].

«Лингвистической переменной называется переменная, значениями которой могут быть слова или словосочетания некоторого естественного или искусственного языка» [3].

«Терм–множеством называется множество всех возможных значений лингвистической переменной» [3].

«Термом называется любой элемент терм–множества» [3].

Например, лингвистическая переменная "рост" может принимать значения "низкий", "средний", "выше среднего", "высокий"

Рассмотрим пример. Пусть имеется неточное определение "высокая зарплата". Для кого-то зарплата в 40 у.е. будет считаться высокой, для кого-то нет, а вот зарплата размером 80 у.е. точно будет высокой. Конкретный порог установить практически нереально, поэтому определим нечеткое множество для данного понятия:

Таблица 1.

Таблица задания нечеткого множества "высокая зарплата"

Зарплата, у.е.

0

20

30

40

50

60

70

80

100

Степень принадлежности

0

0

0,05

0,2

0,4

0,6

0,8

1

1

Из примера видно, в чем проявляется понятие нечеткого множества. Для любого определенного случая, можно перенести пример на конкретные числа в соответствующем масштабе.

.

Рисунок 1. Графическое представление функции принадлежности элементов множеству "высокая зарплата"

 

Определение нечеткого множества не накладывает ограничений на вид функции принадлежности элемента множеству, однако на практике удобно использовать определенные аналитически функции, что значительно упрощает вычисления при применении методов теории нечетких множеств. Основное требование, предъявляемое к построению функции принадлежности – значение функции должно быть больше нуля хотя бы для одного лингвистического терма. Наиболее распространены треугольная, трапецеидальная и гауссовская функции принадлежности. Рассмотрим также z-подобные и s-подобные функции принадлежности, используемые в данной работе.

S-подобная линейная функция принадлежности

Рисунок 2. Вид S-подобной линейной функции принадлежности

 

Z-подобная линейная функция принадлежности

Рисунок 3. Вид Z-подобной линейной функции принадлежности

 

Треугольная функция принадлежности определяется тремя числами (a,b,c), ее значения в определенной точке вычисляются по формуле:

Если  имеем случай симметричной треугольной функции принадлежности, которую можно однозначно задать двумя параметрами.

Рисунок 4. Вид треугольной функции принадлежности

 

Аналогично, значения трапецеидальной функции задается четырьмя числами (a,b,c,d).

При  трапецеидальная функция принадлежности принимает симметричный вид.

Рисунок 5. Вид трапецеидальной функции принадлежности

 

Треугольная и трапецеидальная функции принадлежности чаще всего используются для описания неопределенностей типа "приблизительно равно", "расположен в интервале" и т.д.

Гауcсовская функция принадлежности задается выражением:

 

 
 



Определяется двумя параметрами, с – определяет центр нечеткого множества, а  – крутизну функции.

Рисунок 6. Вид Гауссовской функции принадлежности (

 

Операции над нечеткими множествами.

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

  1. Дополнение нечеткого множества

Пусть  и Β – нечеткие множества, заданные на универсальном множестве X. Говорят, что  и Β дополняют друг друга, т.е.  =  или B=, если

Рисунок 7. Иллюстрация операции дополнения нечеткого множества

 

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

Рисунок 8. Иллюстрация операции пересечения нечеткого множества

 

  1. Объединение (соответствует логическому ИЛИ) нечетких множеств A и B , заданных на универсальном множестве X , – это наименьшее нечеткое множество A ∪ B , включающее как A, так и B с функцией принадлежности, заданной следующим образом:

Рисунок 9. Иллюстрация операции объединения нечеткого множества

Нечеткие запросы

 

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

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

 

Таблица 2.

Пример базы данных.

Model

Price

Engine_Power

А

750000

99

В

383400

112

C

512 500

125

D

155000

65

E

985000

175

F

210000

78

 

"Получить список мощных, но приемлемых по цене автомобилей"

Приведенные высказывания «мощный» и «приемлемый по цене» характеризуются довольно размыто и неточно, хотя мощность двигателя каждого автомобиля имеет конкретное числовое значение, также как и его цена с точностью до рубля. Данный запрос невозможно выполнить с помощью языка SQL, поэтому воспользуемся концепцией нечетких запросов.

Покажем ограниченность четких запросов на примере. Пусть необходимо получить список автомобилей стоимостью не более 500 000 руб. с мощностью двигателя более 120 л.с. .

На языке SQL это будет выглядеть так:

select Model from Cars

where (Cars.Price <= 500000 AND Cars.Engine_Power > 120)

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

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

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

Формализуем каждую из них.

Зададим область определения Х=[50;∞] (считаем, что дешевле, чем за 50000 руб. машину приобрести нельзя) и три лингвистических терма – «Низкая», «Средняя», «Высокая» для переменной «цена». Далее построим функции принадлежности для каждого из лингвистических термов. Для этого выберем функции принадлежности трапецеидального и s-образного вида с параметрами:

«Низкая» = [50, 50, 250, 300], «Средняя» = [250, 350, 500, 600], «Высокая» = [500, 650].

Рисунок 10. Вид функции принадлежности для лингвистической переменной «цена»

 

Для наглядности вычислим степень принадлежности цены автомобиля в 535 тысяч рублей к каждому из нечетких множеств:

.

Проделаем то же самое с «Мощностью двигателя». Область определения: Х=[0;1500]. Лингвистические термы: «Очень малая», «Малая», «Средняя», «Большая».

Параметры функции принадлежности трапецеидального, s-образного и z-образного вида будут следующими:

«Очень малая» = [50, 55], «Малая» = [50, 55, 60, 70], «Средняя» =[60, 70, 100, 120], «Большая» = [110, 120].

https://pp.vk.me/c636829/v636829792/2ecb/1mfkpSm9cbI.jpg

Рисунок 11. Вид функции принадлежности для лингвистической переменной мощность

 

Вернемся к нашему запросу. На языке SQL он будет выглядеть следующим образом.

select Model from Cars

where (Cars.Price = “Средняя” AND Cars.Engine_Power = “Большая”)

Результат запроса будет следующим:

 

Таблица 3.

Результат нечеткого запроса в базе данных.

Model

Price

Engine_Power

В

383400

112

0,2

C

512 500

125

0,88

 

Модели A, D, E, F не попали в результат, потому что для них значение функции принадлежности  Отметим, что записей с , т.е. точно удовлетворяющих запросу в таблице не нашлось. Автомобиль модели “B” стоимостью 512,5 т.р. с мощностью двигателя 125 л.с. соответствует запросу с функцией принадлежности 0,88. Часто в запрос вводится лишь пороговое значение функции принадлежности и если записи в базе данных превышают этот запрос они включаются в итоговой результат.

Заключение

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

 

Список литературы:

  1. Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений. – М.: Мир, 1976.
  2. Дюбуа Д., Прад Г. Теория возможностей. Приложения к представлению знаний в информатике – М.: Радио и связь, 1990.
  3. Штовба С.Д. Введение в теорию нечетких множеств и нечеткую логику [Электронный ресурс]. – Режим доступа: http://matlab.exponenta.ru/fuzzylogic/book1/index.php (дата обращения 24.04.16)
Проголосовать за статью
Конференция завершена
Эта статья набрала 48 голосов
Дипломы участников
Диплом лауреата
отправлен участнику

Комментарии (1)

# чалов Михаил 05.05.2016 22:02
нравится

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.