Зміст
1. Нечітка лінгвістична змінна
2. Пролог - мова програмування ЕС
Використовувана література
Питання 24. Нечітка лінгвістична змінна
Поняття лінгвістичної змінної
Лінгвістична змінна відрізняється від числової змінної тим, що її значеннями є не числа, а слова або пропозиції в природному або формальній мові. Оскільки слова, в загальному, менш точні, ніж числа, поняття лінгвістичної змінної дає можливість наближено описувати явища, які настільки складні, що не піддаються опису в загальноприйнятих кількісних термінах. Зокрема, нечітка множина, яке являє собою обмеження, пов'язане зі значеннями лінгвістичної змінної, можна розглядати як сукупну характеристику різних підкласів елементів універсальної множини. У цьому сенсі роль нечітких множин аналогічна тій ролі, яку відіграють слова й пропозиції в природній мові. Наприклад, прикметник "КРАСИВИЙ" відображає комплекс характеристик зовнішності індивідуума. Це прикметник можна також розглядати як назву нечіткої множини, яке є обмеженням, обумовленим нечіткої змінної "КРАСИВИЙ". З цією точки зору терміни "ДУЖЕ ГАРНИЙ", "негарно", "Надзвичайно КРАСИВИЙ", "ЦІЛКОМ КРАСИВИЙ" і т.п. - назви нечітких множин, утворених шляхом дії модифікаторів "ДУЖЕ, НЕ, надзвичайно, ЦІЛКОМ" і т.п. на нечітка множина "КРАСИВИЙ". По суті, ці нечіткі множини разом з нечітким безліччю "КРАСИВИЙ" грають роль значень лінгвістичної змінної "ЗОВНІШНІСТЬ".
Важливий аспект поняття лінгвістичної змінної полягає в тому, що ця змінна більш високого порядку, ніж нечітка змінна, в тому сенсі, що значеннями лінгвістичної змінної є нечіткі змінні. Наприклад, значеннями лінгвістичної змінної "ВІК" можуть бути: "МОЛОДИЙ, немолода, СТАРИЙ, ДУЖЕ СТАРИЙ, НЕ МОЛОДИЙ І НЕ СТАРИЙ "і т.п. Кожне з цих значень є назвою нечіткої змінної. Якщо - назва нечіткої змінної, то обмеження, обумовлене цією назвою, можна інтерпретувати як сенс нечіткої змінної.
Інший важливий аспект поняття лінгвістичної змінної полягає в тому, що лінгвістичної змінної притаманні два правила:
1. Cінтаксіческое, яке може бути задано у формі граматики, що породжує назву значень змінної;
2. Cемантіческое, яке визначає алгоритмічну процедуру для обчислення сенсу кожного значення.
3. Лінгвістична змінна характеризується набором властивостей, в якому:
4. - назву змінної;
5. позначає терм-множина змінної, тобто безліч назв лінгвістичних значень змінної, причому кожне з таких значень є нечіткою змінної із значеннями з універсальної множини з базовою змінної;
6. - синтаксичне правило, породжує назви значень змінної;
7. - семантичне правило, яке ставить у відповідність кожній нечіткої змінної її сенс, тобто нечітка підмножина універсального безлічі.
8. Конкретне назву, породжене синтаксичним правилом, називається термом. Терм, який складається з одного слова або з кількох слів, завжди фігурують разом один з одним, називається атомарним термом. Терм, який складається з більш ніж одного атомарного терма, називається складеним термом.
Приміром, задамо лінгвістичну змінну W = «³к працівникаВ». Визначимо синтаксичне правило G як визначення В«оптимальнийВ», що накладається на змінну W. Тоді повне терм-множина значень T = {T1 = Оптимальний вік працівника, T2 = неоптимального вік працівника}. Носієм U виступає відрізок [20, 70], вимірюваний в роках людського життя. І на цьому носії визначені дві функції приналежності: для значення T1 - mT1 (u), вона зображена на рис. 2.2, для T1 - mT2 (u), причому перша з них відповідає нечіткому підмножині M1, а друга - M2. Таким чином, конструктивне опис лінгвістичної змінної завершено.
prolog програмування мову лінгвістичний змінний
Питання 54. Пролог - мова програмування ЕС
Prolog (від "PROgramming in LOGic") - декларативний мова програмування загального призначення. Prolog був створений в 1972 з метою поєднувати використання логіки з поданням знань. З тих пір у нього з'явився ряд діалектів, що розширюють основу мови різними можливостями. Стандарт мови дан в ISO/IEC 13211-1 (1995 рік).
Prolog - один з найстарших і все ще один з найбільш популярних мов логічного програмування, хоча він значно менш популярний, ніж основні імперативні мови. Він використовується в системах обробки природних мов, дослідженнях штучного інтелекту, експертних системах, онтологіях і інших предметних областях, для яких природно використання логічної парадигми.
Prolog був створений під впливом більш раннього мови Planner й запозичив з нього наступні ідеї:
В· зворотний логічний висновок (виклик процедур по шаблону, виходячи з цілей);
В· побудова структура керуючої логіки у вигляді обчислень з відкатами;
В· принцип "Заперечення як невдача";
В· використання різних імен для різних сутностей і т.д.
Головною парадигмою, реалізованої в мові Prolog, є логічне програмування. Як і для більшості старих мов, більш пізні реалізації, наприклад, Visual Prolog, додають в мову більш пізні парадигми, наприклад, об'єктно-орієнтоване або кероване подіями програмування, іноді навіть з елементами імперативного стилю.
Prolog використовує один тип даних, терм, який буває декількох типів:
В· атом - ім'я без особливого сенсу, використовуване для побудови складових термів;
В· числа і рядка такі ж, як і в інших мовах;
В· змінна позначається ім'ям, що починається з прописної букви, і використовується як символ-заповнювач для будь-якого іншого терма;
В· складовою терм складається з атома-функтора, за яким слід кілька аргументів, кожен з яких у свою чергу є атомом.
Програми, написані на чистому Prolog, описують стосунки між оброблюваними сутностями за допомогою клауз Хорна. Клауза - це формула виду Голова: - Тіло. , яка читається як "щоб довести/вирішити Голову, слід довести/вирішити Тіло ". Тіло Клаузен складається з декількох предикатів (цілей Клаузен), скомбінованих за допомогою кон'юнкції і диз'юнкції. Клаузен з порожнім тілом називаються фактами і еквівалентні Клаузен виду Голова: - true. (true - Не атом, як в інших мовах, а вбудований предикат).
Іншою важливою частиною Prolog є предикати. Унарні предикати виражають властивості їх аргументів, тоді як предикати з декількома аргументами виражають відносини між ними. Ряд вбудованих предикатів мови виконують ту ж роль, що і функції в інших мовах, наприклад, .... Предикати з декількома аргументами можуть діяти в декількох напрямках залежно від того, які з аргументів вже пов'язані, а які - ні. Нарешті, для того, щоб бути мовою загального призначення, Prolog повинен надавати ряд сервісних функцій, наприклад, процедур введення/виводу. Вони реалізовані як предикати без спеціального логічного сенсу, які завжди оцінюються як істинні і виконують свої сервісні функції як побічний ефект оцінювання.
Метою виконання програми на Prolog є оцінювання одного цільового предиката. Маючи цей предикат і набір правил і фактів, заданих в програмі, Prolog намагається знайти прив'язки (значення) змінних, при яких цільової предикат приймає значення істинності.
Структура програми на Пролозі відрізняється від структури програми, написаної на процедурному мовою. Пролог-програма є зібранням правил і фактів. Рішення завдання досягається інтерпретацією цих правил і фактів. При цьому користувачеві не потрібно забезпечувати детальну послідовність інструкцій, щоб вказати, яким чином здійснюється управління ходом обчислень на шляху до результату. Замість цього він тільки визначає можливі рішення задачі і забезпечує програму фактами і правилами, які дозволяють їй відшукати необхідну рішення.
У всіх інших відносинах Пролог не відрізняється від традиційних мов програмування. Як і у випадку програ...