Теория нечеткой логики с применением в Delphi

Автор работы: Пользователь скрыл имя, 17 Апреля 2011 в 15:16, курсовая работа

Описание

Мабуть, найбільш вражаючою властивістю людського інтелекту є здатність приймати правильні рішення в умовах неповної і нечіткої інформації. Побудова моделей наближених роздумів людини і використання їх у комп'ютерних системах представляє сьогодні одну з найважливіших проблем науки.

Работа состоит из  1 файл

logic.doc

— 323.00 Кб (Скачать документ)

Введення 

   Мабуть, найбільш вражаючою властивістю людського інтелекту є здатність приймати правильні рішення в умовах неповної і нечіткої інформації. Побудова моделей наближених роздумів людини і використання їх у комп'ютерних системах представляє сьогодні одну з найважливіших проблем науки.

   Основи нечіткої логіки були закладені наприкінці 60-х років у працях відомого американського математика Латфі Заде. Соціальне замовлення на дослідження подібного роду було викликано зростаючим незадоволенням експертними системами. Хвалений "штучний інтелект", що легко справлявся із задачами керування складними технічними комплексами, був безпорадним при найпростіших висловленнях повсякденного життя, типу "Якщо машиною перед тобою керує недосвідчений водій - тримайся від неї подалі". Для створення дійсно інтелектуальних систем, здатних адекватно взаємодіяти з людиною, необхідний був новий математичний апарат, що переводить невиразні і неоднозначні життєві твердження в мову чітких і формальних математичних формул.

   Першим серйозним кроком у цьому напрямку з'явилася теорія нечітких множин, розроблена Заде. Його робота "Fuzzy Sets", що з'явилася в 1965 році в журналі "Information and Control", заклала основи моделювання інтелектуальної діяльності людини і з'явилася початковим поштовхом до розвитку нової математичної теорії. Він же дав і назву для нової області науки -"fuzzy logic"(fuzzy - нечіткий, розмитий, м'який).

  Щоб стати класиком, треба небагато випередити свій час. Існує легенда про те, яким чином була створена теорія "нечітких множин". Один раз Заде мав довгу дискусію зі своїм другом відносно того, чия з дружин є більш привабливою. Термін "приваблива" є дуже невизначеним і в результаті дискусії вони не змогли прийти до задовільного підсумку. Це змусило Заде сформулювати концепцію, що виражає нечіткі поняття типу "приваблива" у числовій формі.

  Подальші  роботи професора Л.Заде і його послідовників  заклали міцний фундамент нової  теорії і створили передумови для  впровадження методів нечіткого  управління в інженерну практику.

  Апарат  теорії нечітких множин, продемонструвавши  ряд багатообіцяючих можливостей  застосування - від систем керування  літальними апаратами до прогнозування  підсумків виборів, виявився разом  з тим надмірно складним для втілення, враховуючи наявний на той час рівень технології - і на багато років нечітка логіка зайняла своє місце в ряді інших спеціальних наукових дисциплін - десь посередині між експертними системами і нейронними мережами...

  Своє  друге народження теорія нечіткої логіки пережила на початку вісімдесятих років, коли відразу кілька груп дослідників (в-основному в США і Японії) всерйоз зайнялися створенням електронних систем різного застосування, що використовують нечіткі керуючі алгоритми. Теоретичні основи для цих спроб були закладені в ранніх працях Коско й інших учених.

  Третій  період почався з кінця 80-х років  і дотепер. Цей період характеризується бумом практичного застосування теорії нечіткої логіки в різних сферах науки і техніки. До 90-го року з'явилося  близько 40 патентів, що відносяться до нечіткої логіки (30 - японських). Сорок вісім японських компаній утворили спільну лабораторію LIFE (Laboratory for International Fuzzy Engineering), японський уряд фінансував 5-річну програму по нечіткій логіці, що включає 19 різних проектів - від систем оцінки глобального забруднення атмосфери і передбачення землетрусів до АСУ заводських цехів і складів. Результатом виконання цієї програми з'явилася поява цілого ряду нових масових мікрочіпів, заснованих на нечіткій логіці. Сьогодні їх можна знайти в пральних машинах і відеокамерах, цехах заводів і моторних відсіків автомобілів, у системах керування складськими роботами і бойовими вертольотами.

  У США розвиток нечіткої логіки йде  по шляху створення систем, що потрібні великому бізнесу і військовим. Нечітка логіка застосовується при аналізі нових ринків, біржовій грі, оцінці політичних рейтингів, виборі оптимальної цінової стратегії і т.п. З'явилися і комерційні системи масового застосування.

  Зсув  центра досліджень нечітких систем вбік практичних застосувань привело до постановки цілого ряду проблем, зокрема:

  - нові архітектури комп'ютерів для нечітких обчислень;

  - елементна база нечітких комп'ютерів і контролерів;

  - інструментальні засоби розробки;

  - інженерні методи розрахунку і розробки нечітких систем керування, тощо. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Розділ 1

Нечіткі множини 

Нехай E - універсальна множина, x - елемент E, а R - певна властивість. Звичайна (чітка) підмножина A універсальної множини E, елементи якої задовольняють властивості R, визначається як множина впорядкованої пари A = {mA (х)/х}, де mA(х) - характеристична функція, що приймає значення 1, якщо x задовольняє властивості R, і 0 - в іншому випадку.

  Нечітка підмножина відрізняється від звичайної тім, що для елементів x з E немає однозначної відповіді "ні" відносно властивості R. У зв'язку з цим, нечітка підмножина A універсальної множини E визначається як множина впорядкованої пари A = {mA(х)/х}, де mA(х) - характеристична функція приналежності (або просто функція приналежності), що приймає значення в деякій впорядкованій множині M (наприклад, M = [0,1]).

Функція приналежності вказує ступінь (або  рівень) приналежності елемента x до підмножини A. Множина M називають множиною приналежностей. Якщо M = {0,1}, тоді нечітка  підмножина A може розглядатися як звичайна або чітка множина.

  Розглянемо множину X всіх чисел від 0 до 10. Визначимо підмножину A множини X всіх дійсних чисел від 5 до 8.

A = [5,8]

  Покажемо функцію приналежності множини A, ця функція ставить у відповідність число 1 чи 0 кожному елементу в X, у залежності від того, належить даний елемент підмножині A чи ні. Результат представлений на наступному малюнку:

 
 

   Можна інтерпретувати елементи, яким поставлена у відповідність 1, як елементи, що знаходяться в множині A, а елементи, яким поставлений у відповідність 0, як елементи, що не знаходяться в множині A.

  Ця концепція використовується в багатьох областях застосувань. Але можна легко знайти ситуації, в яких даній концепції буде бракувати гнучкості.

У даному прикладі опишемо множину молодих людей. Більш формально можна записати так  

B = {множина молодих  людей}  

  Оскільки, взагалі, вік починається з 0, то нижня межа цієї множини повинна бути нулем. Верхню межу визначити небагато складніше. Спочатку встановимо верхню межу, скажемо, рівну 20 рокам. Таким чином, маємо B як чітко обмежений інтервал, буквально: B=[0,20] . Виникає питання: чому хтось у свій двадцятирічний ювілей - молодий, а відразу наступного дня вже не молодий?   Очевидно, це структурна проблема, і якщо пересунути верхню межу в довільну точку, то можна задати таке ж питання.

  Більш природний шлях отримання множини B складається в ослабленні строгого поділу на молодих і не молодих. Зробимо це, виносячи не тільки чіткі судження Так, він належить множини молодих людей або Ні, вона не належить множини молодих людей, але і більш гнучкі формулювання ТАК, він належить до досить молодих людей або Ні, він не дуже молодий.

  Розглянемо як за допомогою нечіткої множини визначити такий вираз, як він ще молодий.

  В першому прикладі ми кодували всі елементи множини за допомогою 0 чи 1. Простим способом узагальнити дану концепцію є введення значення між 0 і 1. Реально можна навіть допустити нескінченне число значень між 0 і 1, в одиничному інтервалі I = [0, 1].

  Інтерпретація чисел при співвідношенні всіх елементів множини стає тепер більш складною. Звичайно, знову число 1 ставиться у відповідність тому елементу, що належить множині B, а 0 означає, що елемент точно не належить множині B. Всі інші значення визначають ступінь приналежності до множини B.

  Для наочності приведемо характеристичну функцію множини молодих людей, як і в першому прикладі.

Нехай E = {x1, x2, x3, x4, x5 }, M = [0,1]; A – нечітка множина, для якої

mA(x1)=0,3; mA(x2)=0; mA(x3)=1; mA(x4)=0,5; mA(x5)=0,9  

Тоді A можна представити у вигляді:

A = {0,3/x1; 0/x2; 1/x3; 0,5/x4; 0,9/x5 } або

A = 0,3/x1 + 0/x2 + 1/x3 + 0,5/x4 + 0,9/x5,

(знак "+" є операціею не складання, а об'єднання) або

  x1 x2 x3 x4 x5
A = 0,3 0 1 0,5 0,9
 
    1. Основні характеристики нечітких множин 
 

Нехай M = [0,1] і A - нечітка безліч з елементами з універсальної множини E і множиною приладдя M

    1. Величина mA(x) називається висотою нечіткої множини A. Нечітка множина A є нормальною, якщо його висота дорівнює 1, тобто верхній кордон її функції приналежності дорівнює 1 ( mA(x)=1).

    При mA(x) <1 нечітка множина називається субнормальною.

    2. Нечітка множина є порожньою, якщо  xOE m A(x)=0. Непорожню субнормальну множину можна нормалізувати по формулі mA(x):=

    3. Нечітка множина є унімодальною, якщо mA(x)=1 лише для одного x з E.

    4. Носієм нечіткої множини A є звичайна підмножина з властивістю mA(x) >0, тобто носій A = {x/mA(x) >0}   xOE.

    5. Елементи xOE, для яких mA(x)=0,5 називаються точками переходу множини A.  

    Приклади  нечіткої безлічі

Хай E = {0,1,2..,10}, M =[0,1]. Нечітку множину "дещо" можна визначити таким чином:

"декілька" = 0,5/3+0,8/4+1/5+1/6+0,8/7+0,5/8;

її  характеристики: висота = 1, носій={3,4,5,6,7,8}, точки переходу - {3,8}.

2. Хай E = {0,1,2,3...,n,...}. Нечітку множину "малий" можна визначити:

m"малий"(x)=

Хай E = {0,1,2..,10}, M =[0,1]. Нечітку множину "дещо" можна визначити таким чином:

"декілька" = 0,5/3+0,8/4+1/5+1/6+0,8/7+0,5/8;

її  характеристики: висота = 1, носій={3,4,5,6,7,8}, точки переходу - {3,8}.

2. Хай E = {0,1,2,3...,n,...}. Нечітка множина "малий" можна визначити:

m"малий"(x)=

Нечітка множина "молодої" на універсальній множині E' ={ Іванов, Петров, Сидоров...} задається за допомогою функції приналежності m"молодий"(x) на E = {1,2,3..100} (вік), що називається відносно E' функцією сумісності, при цьому:

m"молодий"(Сидоров)= m"молодий"(x), де x - вік Сидорова.

Информация о работе Теория нечеткой логики с применением в Delphi