22179

Нечеткие запросы к реляционным базам данных

Лекция

Информатика, кибернетика и программирование

К усиливающим относится модификатор Очень Very к ослабляющим Болееилименее или Приблизительно Почти moreorless нечеткие множества которых описываются функциями принадлежности вида: Для примера формализуем нечеткое понятие Возраст сотрудника компании . Последнее что осталось сделать построить функции принадлежности для каждого лингвистического терма. Выберем трапецеидальные функции принадлежности со следующими координатами: Молодой = [18 18 28 34] Средний = [28 35 45 50] Выше среднего = [42 53 60 60]. Теперь можно...

Русский

2013-08-04

81 KB

10 чел.

Нечеткие запросы к реляционным базам данных

Введение

Механизмы нечетких запросов (fuzzy queries, flexible queries) к реляционным базам данных базирующиеся на теории нечетких множеств Заде, были впервые предложены в 1984 году и впоследствии получили развитие в работах Д. Дюбуа и Г. Прада.

Для чего это необходимо

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

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

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

Здесь высказывания "Молодой", "Невысокая", "Не очень дорогой", "Близко" имеют размытый, неточный характер, хотя заработная плата определена до рубля, а удаленность квартиры от центра – с точностью до километра. Причиной всему служит то, что в реальной жизни мы оперируем и рассуждаем неопределенными, неточными категориями. Такие запросы невозможно выполнить средствами языка SQL. И на помощь приходит концепция нечетких запросов.

Продемонстрируем ограниченность четких запросов на следующем примере. Пусть требуется получить сведения о менеджерах по продажам не старше 25 лет, у которых сумма годовых сделок превысила 200 тыс. по такому-то региону. Данный запрос можно записать на языке SQL следующим образом:

select FIO from Managers
where (Managers.Age <= 25 AND Managers.Sum > 200000 AND Managers.RegionID = 1)

Менеджер по продажам 26 лет с годовой суммой продаж в 400 тыс., или 19 лет с суммой в 198 тыс. не попадут в результат запроса, хотя их характеристики почти удовлетворяют требованиям запроса.

Нечеткие запросы помогают справиться с подобными проблемами "пропадания" информации.

Как это работает

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

Рассмотрим наиболее распространенные способы генерации новых лингвистических термов на основе базового терм-множества. Это полезно для построения разнообразных семантических конструкций, которые усиливают или ослабляют высказывания, например: "очень высокая цена", "приблизительно среднего возраста" и т.д. Для этого существуют лингвистические модификаторы (linguistic hedges), усиливающие или ослабляющие высказывание. К усиливающим относится модификатор "Очень" (Very), к ослабляющим – "Более-или-менее", или "Приблизительно", "Почти" (more-or-less), нечеткие множества которых описываются функциями принадлежности вида:

Для примера формализуем нечеткое понятие "Возраст сотрудника компании". Это и будет название соответствующей лингвистической переменной. Зададим для нее область определения X = [18; 70] и три лингвистических терма – "Молодой", "Средний", "Выше среднего". Последнее, что осталось сделать – построить функции принадлежности для каждого лингвистического терма.

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

"Молодой" = [18, 18, 28, 34], "Средний" = [28, 35, 45, 50], "Выше среднего" = [42, 53, 60, 60].

Теперь можно вычислить степень принадлежности сотрудника 30 лет к каждому из нечетких множеств:

MF[Молодой](30)=0,67; MF[Средний](30)=0,29; MF[Выше среднего](30)=0.

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

В заключение определим операцию нечеткого отрицания (NOT): MF[NOT](X)=1-MF(X).

Приведенных выше сведений достаточно для построения и выполнения нечетких запросов.

Вернемся к примеру с менеджерами о продажах. Для простоты предположим, что вся необходимая информация находятся в одной таблице со следующими полями: ID – номер сотрудника, AGE – возраст и SUM (годовая сумма сделок).

ID

AGE

SUM

1

23

120 500

2

25

164 000

3

28

398 000

4

31

489 700

5

33

251 900

Лингвистическая переменная "Возраст" была задана ранее. Определим еще одну лингвистическую переменную для поля SUM с областью определения X = [0; 600000] и термами "Малая", "Средняя" и "Большая" и аналогично построим для них функции принадлежности:

"Малая" = [0, 0, 0, 200000], "Средняя" = [90000, 180000, 265000, 330000], "Большая" = [300000, 420000, 600000, 600000].

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

select * from Managers where (Age = "Молодой" AND Sum = "Большая")

Рассчитав для каждой записи агрегированное значение функции принадлежности MF (при помощи операции нечетого "И"), получим результат нечеткого запроса:

ID

AGE

SUM

MF

3

28

398 000

0,82

4

31

489 700

0,50

Записи 1,2,5 не попали в результат запроса, т.к. для них значение функции принадлежности равно нулю. Записей, точно удовлетворяющих поставленному запросу (MF=1), в таблице не нашлось. Менеджер по продажам 28 лет и годовой суммой 398000 соответствует запросу с функцией принадлежности 0,82. На практике обычно вводят пороговое значение функции принадлежности, при превышении которого записи включаются в результат нечеткого запроса.

Аналогичный четкий запрос мог бы быть сформулирован, например, так:

select * from Managers where (Age <= 28 AND Sum >= 420000)

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

Используя нечеткие модификаторы, можно формировать и более сложные запросы:

select * from Managers where (Age = "Более-или-менее Средний" AND Sum = "Средняя")

Результат:

ID

AGE

SUM

MF

5

33

251 900

0,85

Часто требуется оперировать не лингвистическими переменными, а нечеткими аналогами точных значений. Для этого существует нечеткое отношение "ОКОЛО" (Например, "Цена около 20"). Для реализации подобных нечетких отношений аналогично строится нечеткое множество с соответствующей функцией принадлежности, но уже на некотором относительном интервале (например, [-5; 5]) для избежания зависимости от контекста. При вычислении функции принадлежности нечеткого отношения "Около Q" (Q – некоторое четкое число) производят масштабирование на относительный интервал.

Проиллюстрируем вышесказанное на примере таблицы с данными о ценных бумагах. Пусть она имеет в своем составе следующие поля: PRICE (стоимость ценной бумаги), RATIO (отношение цены к прибыли, price-to-earnings ratio), AYIELD (усредненный доход за последний квартал, average yield, %).

ID

PRICE

RATIO

AYIELD

1

260

11

15,0

2

380

5

7,0

3

810

6

10,0

4

110

9

14,0

5

420

10

16,0

Пусть требуется найти ценные бумаги для покупки не дороже $150, с доходностью 15% и отношением цены прибыли 11. Это эквивалентно следующему SQL-запросу:

select * FROM some_table where ((PRICE<=150) AND (RATIO=11) AND (AYIELD=15))

Результат такого запроса будет пустым.

Тогда сформулируем этот же запрос в нечетком виде с использованием отношения "ОКОЛО":

select * FROM some_table
where ((PRICE = "
Около 150") AND (RATIO= "Около 11") AND (AYIELD="Около 15"))

Построим нечеткое множество для отношения "ОКОЛО" в относительном интервале [-5; 5]. Это будет трапеция с координатами [-2, -1, 1, 2].

Рассчитаем значение нечеткого запроса "Цена около 250" для цены 380. Предварительно зададим области определения каждой лингвистической переменной: PRICE – [0; 1000], RATIO – [0; 20], AYIELD – [0; 20]. Значение 130 (полученное как разница между 380 и 250) отмасштабируем на интервал [-5; 5], получим величину x=1,3 и MF(1,3)=0,7.

Применив нечеткое отношение ОКОЛО к каждому полю PRICE, RATIO и AYIELD и рассчитав агрегированное значение функции принадлежности с помощью операции нечеткое "И", получим следующий результат запроса.

ID

PRICE

RATIO

AYIELD

MF

1

260

11

15,0

1

4

110

9

14,0

0,9

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

Области применения нечетких запросов

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

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

Например, компания проводит рекламную акцию среди своих клиентов о новых услугах с помощью прямой почтовой рассылки. Служба маркетинга установила, что наиболее интересен новый вид услуги будет мужчинам средних лет, отцам семейств с годовым доходом выше среднего. Для получения списка адресатов к базе данных клиентов, скорее всего, будет сделан следующий запрос: выбрать всех лиц мужского пола в возрасте от 40 до 55 лет, имеющих минимум 1 ребенка, годовой доход от 20 до 30 тысяч долл. Такие точные критерии запроса могут отсеять множество потенциальных клиентов: мужчина 39 лет, отец троих детей с доходом в 31 тысячу не попадет в результат запроса, хотя это потенциальный потребитель новой услуги.

Аналогичным образом нечеткие запросы можно использовать при выборе туристических услуг, подборе объектов недвижимости.

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

5


 

А также другие работы, которые могут Вас заинтересовать

42784. Методология и методика социологического исследования 116.79 KB
  Теоретико-методологические основы социологического анализа социального самочувствия Показатели и способы изучения социального самочувствия 14 Опыт исследования социального самочувствия
42785. Создание венецианской маски в 3Ds Mx 3.3 MB
  Например это: Рисунок 1Бокал Очевидно что бокал имеет ось симметрии и его можно получить вращая сплайн. Создаём Plneплоскость в окне Front и присваиваем ей материал с данной текстурой бокала получаем такой результат: Рисунок 2заготовка Plne Обводим контур нашего бокала только половину. Должен получиться подобный сплайн: Рисунок 3 На рисунке 3 отмечены две точки начало и конец сплайна. Модель бокала в перспективе должна выглядеть примерно так...
42786. Монетарная политика в рыночной системе и функции Центрального Банка 2.99 MB
  Основные концепции денежнокредитной политики государства. Неоклассическая теория как одна из основ денежнокредитного регулирования. Кейнсианская теория денежнокредитного регулирования. Неоконсервативный подход монетаризм в денежнокредитном регулировании.
42787. Автоматические промышленные средства испытаний изделий на прочность и надежность при воздействии линейных ускорений 521.59 KB
  Точность поддержания ускорения существенно влияет на выбор конструкции и определяет точность изготовления отдельных узлов центрифуги. Факторы влияющие на измерение: изменение температуры окружающей среды отклонение стола от горизонтальной плоскости скорость нарастания ускорения изменение ускорения по площади изделия вибрация возникающая в системе привода центрифуги изменение длины плеча при изменении скорости центрифуги. В процессе разгона центрифуги кроме центробежных сил определяющих линейное ускорение возникают силы инерции...
42788. ПРОФИЛЬ ДОРОЖНОЙ ТРАССЫ. ПОСТРОЕНИЕ ПРОФИЛЯ ДОРОЖНОЙ ТРАССЫ 202.05 KB
  Вычисление координат пунктов замкнутого теодолитного хода. Вычисление координат вершин диагонального теодолитного хода. Вычисление отметок съёмочных точек замкнутого хода. Построение прямоугольной сетки и теодолитного хода Нанесение на план съемочных пикетов пикетных точек.
42789. Анализ и диагностика финансово-хозяйственной деятельности предприятия ОАО «ТНК-ВР Холдинг» 119.62 KB
  Орджоникидзе Кафедра Управление предприятиями МСК Курсовая работа по дисциплине Анализ и диагностика финансовохозяйственной деятельности предприятия на тему: Анализ и диагностика финансовохозяйственной деятельности предприятия ОАО ТНКВР Холдинг Выполнила: студентка группы ЭГ09 Тутарова...
42790. Усовершенствование организационной структуры ООО «Тез Тур» 127.59 KB
  Анализ организационной структуры управления на примере ООО Тез Тур. Организация управления выступает как один из факторов трансформации экономики через нее реализуется действие объективных законов функционирования рынка; она является организационным началом всей системы факторов радикальной реформы управления экономикой. Ключевой проблемой в организации управления является структура управления оргструктура. Зная структуру можно целенаправленно воздействовать на состав и содержание отдельных элементов...
42791. Индексный метод изучения динамики среднего уровня цен 376.43 KB
  Сущность цены и ее виды 4 Индексный метод изучения динамики среднего уровня цен 6 Формулы индекса цен Пааше и Ласпейреса 6 Идеальная формула цен Фишера 9 Система индексов цен 10 Использование индексного метода 10 Использование выборочного метода для расчета индексов цен 12 Расчетная часть 14 Задание 1 14 Задание 2 19 Задание 3 21 Задание 4 22 Аналитическая часть 24 Заключение 27 Список использованной литературы 28 Введение Так как в практике статистики индексы наряду со средними величинами...
42792. Разработка технологического процесса термической обработки для изготовления кузовов и крыльев легковых автомобилей 380.16 KB
  Анализ условий работы кузовов крыльев автомобилей и выбор марки стали .3 Выбор марки стали для горячей штамповки . 35 Приложение 36 РЕФЕРАТ Курсовая работа содержит информацию о разработке технологического процесса термической обработки кузовов и крыльев легковых автомобилей из стали 5ХНМ. Проведен анализ условий работы кузовов и крыльев легковых автомобилей материалов применяемых для производства данной детали на основании чего выбрана марка стали разработан технологический...