Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Контрольний приклад. 
Програмна інженерія

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Експорт та імпорт результатів. Коли ви зберігаєте створену вами нечітку систему, використовуючи пункт меню File / Export / To disk, на диску створюється текстовий (ASCII) файл достатньо простого формату з розширенням. Fis. Його можна переглядати, при необхідності редагувати поза системою MATLAB, а також використовувати повторно при наступних сеансах роботи з системою. Однак збереження… Читати ще >

Контрольний приклад. Програмна інженерія (реферат, курсова, диплом, контрольна)

Побудова експертної системи: «Яка погода?».

Розглянемо методику побудови нечіткої експертної системи, яка повинна допомогти користувачеві визначити погоду. Грунтуючись на деяких даних та інтуїтивних уявленнях, маємо, що задача про погоду може бути описана наступними пропозиціями:

  • 1) якщо температура плюсова і є опади, то погода — дощова;
  • 2) якщо температура мінусова і є опади, то погода — снігова;
  • 3) якщо температура мінусова і немає опадів, то погода — морозна;
  • 4) якщо температура плюсова і немає опадів, то погода — гарна;

Мінусовою будемо вважати температуру від -20 0С до -1 0С, а плюсовою — від 0 0С до 40 0С. Наявність опадів приймемо за «1», а їх відсутність — «0». Дощову погоду позначимо інтервалом [0, 2], сніжну — [2, 4], морозну — [4, 6], гарну погоду — [6,8].

Представленої інформації, в принципі, достатньо для проектування нечіткої експертної системи. Така система буде мати 2 входи (які умовно можна назвати «temp» («температура») і «osad» («опади»)), один вихід («pogoda»), чотири правила «якщо … то» (відповідно до чотирма наведеними реченнями) і по чотири значення (відповідно 1 — для дощової погоди, 3 — для сніжної, 5 — для морозної, 7 — для гарної погоди) для центрів функцій належності входів і виходу. Побудуємо дану систему, використовуючи алгоритм Mamdani, описуючи необхідні дії по пунктах.

Командою fuzzy запускаємо FIS-редактор. За замовчанням пропонується алгоритм виведення типу Мамдані (про що говорить напис в центральному білому блоці) тут ніяких змін не потрібно, але в системі повинно бути два входи. Тому через пункт меню Edit / Add Variable / Input додаємо в систему цей другий вхід (у вікні редактора з’являється другий жовтий блок з ім'ям input2). Далі, робимо однократний клацання на блок input1, міняємо його ім'я на «temp» («температура»), завершуючи введення нового імені натисканням клавіші Enter. Аналогічним чином встановлюємо ім'я «osad» («опади») блоку input2 і «pogoda» («погода») — вихідного блоку (справа вгорі) output1. Привласнимо відразу і ім'я всій системі, наприклад «climate», виконавши це через пункт меню File / Export / To Workspace (Зберегти в робочому просторі). Вид вікна редактора, після зазначених дій наведено на рис. 8.1.

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

  • 1) через пункт меню Edit / Membership functions;
  • 2) подвійним клацанням на значку, що відображає відповідну змінну;
  • 3) натисканням клавіш Ctr +2.

Будь-яким із наведених способів перейдемо до даної програми.

Завдання та редагування функцій належності почнемо зі змінною «temp». Спочатку в полях Range і Display Range встановимо діапазон зміни відображення цієї змінної - від -20 до 40 (градусів), підтверджуючи введення натисненням клавіші Enter. Потім через пункти меню Edit / Remove All MFs, Edit / Add MFs перейдемо до діалогового вікна і задамо в ньому дві функції приналежності. Натиснемо кнопку ОК і повернемося у вікно редактора функції приналежності. Не змінюючи розмах і положення заданих функцій, замінимо тільки їх імена на «minus» («мінус») та «plus» («плюс»), а так само задамо параметри [-20 -10 -1] і [1 10 40] відповідно (рис. 8.2).

Функції приналежності змінної «temp».

Рис. 8.2 — Функції приналежності змінної «temp»

Клацанням на значку «osad» увійдемо у вікно редагування функції приналежності для цієї змінної. Задамо спочатку діапазон її зміни від 0 до 1, а потім надходячи як раніше, задамо дві функції приналежності з параметрами відповідно [0 0 0] і [1 1 1] і іменами «net-os» («немає опадів») і «estos «(«є опади «).

Для вихідної змінної «pogoda» («погода») вкажемо спочатку діапазон зміни (від 0 до 8), потім задамо три функції приналежності з іменами «dojd» («дощ»), «sneg» («сніг»), «morozno» («морозно») і «hor-pogoda» («гарна погода») і відповідно параметрами [0 2 1], [2 3 4], [4 5 6], [6 7 8] як це показано на рис. 8.3.

Перейдемо до конструювання правил. Для цього виберемо пункт меню Edit / Rules.

У всіх чотирьох правилах необхідно використовувати «І» (and); оскільки у всіх правилах присутні всі змінні, «temp» і «osad», опція none не використовується. Готовий набір правил відображений на рис. 8.4.

Функції приналежності змінної «pogoda».

Рис. 8.3 — Функції приналежності змінної «pogoda»

Підсумковий набір правил для задачі про погоду.

Рис. 8.4 — Підсумковий набір правил для задачі про погоду

Така докладна (verbose) запис представляється досить зрозумілою; одиниці в дужках після кожного правила вказує його «вага» (Weight), тобто значимість правила. Даний вагу можна міняти, використовуючи відповідне поле в лівій нижній частині вікна редактора правил. Правила представіми і в інших формах: символічній (symbolic) і індексної (indexed), при цьому перехід від однієї форми до іншої відбувається за допомогою меню Options / Format редактора правил.

Ось як виглядають розглянуті правила в символічній формі:

  • (Temp == plus) & (osad == est-os) => (pogoda = dojd) (1).
  • (Temp == minus) & (osad == est-os) => (pogoda = sneg) (1).
  • (Temp == plus) & (osad == net-os) => (pogoda = hor-pogoda) (1).
  • (Temp == minus) & (osad == net-os) => (pogoda = morozno) (1).

Нарешті, самий стислий формат представлення правил — індексний — є тим форматом, який насправді використовується програмою.

У цьому форматі наведені правила виглядають так:

  • 1 1, 1 (1): 1
  • 2 2, 2 (1): 1
  • 3 березня, 3 (1): 1
  • 4 4, 4 (1): 1

Тут перша колонка відноситься до першої вхідної змінної, друга — до другої, третя (після коми) — до вихідної змінної, цифра в дужках показує вагу правила і остання цифра (після двокрапки) вказує тип «зв'язки» (1 для «І», 2 для «АБО»). На цьому, власне, конструювання експертної системи закінчено. Збережіть її на диску під обраним ім'ям (climate).

Тепер саме час перевірити систему в дії. Відкриємо (через пункт меню View / Rules) вікно перегляду правил і встановимо значення змінних: «temp» (температура) = 15, «osad» (опади) = 1 (тобто опади є). І отримаємо відповідь: «pogoda» (погода) = 1 (тобто «dojd» (дощ)).

Вікно перегляду правил в задачі.

Рис. 8.5 — Вікно перегляду правил в задачі

Рис. 8.6 — Графічний вид залежності вихідної змінної від вхідних

Одновимірна залежність стану погоди (pogoda) від опадів (osad »).
Рис. 8.7 - Одновимірна залежність стану погоди (pogoda) від опадів (osad »).

Рис. 8.7 — Одновимірна залежність стану погоди (pogoda) від опадів (osad «)

Можна перевірити й інші варіанти. Зокрема, визначиться, що при наборі «temp = -7.06, osad = 0» погода («pogoda») оцінюється системою в 5 балів (що відповідає холодній погоді без опадів «morozno» (морозно), а при «temp = -7.06, osad = 1 «погода («pogoda «) оцінюється в 3 бали (що відповідає холодній погоді з опадами» sneg «(сніг). Втім, нічого дивного тут немає: це ми самі заклали в систему відповідні значення у вигляді сукупності наведених правил.

Підтвердженням зазначеної залежності вихідної змінної від вихідних може служити вид поверхні відгуку, який представляється при виборі пункту меню View / Surface (рис. 8.6.); Зверніть увагу, що за допомогою мишки графік можна повертати на всі боки. У вікні, міняючи імена змінних в полях введення (X (input) і Y (input)) можна задати і перегляд одновимірних залежностей, наприклад «погода» («pogoda») від «опадів» («osad») (рис. 8.7).

Експорт та імпорт результатів. Коли ви зберігаєте створену вами нечітку систему, використовуючи пункт меню File / Export / To disk, на диску створюється текстовий (ASCII) файл достатньо простого формату з розширенням. Fis. Його можна переглядати, при необхідності редагувати поза системою MATLAB, а також використовувати повторно при наступних сеансах роботи з системою. Однак збереження з використанням пункту File / Export / To Workspace насправді тільки «легалізує» створену вами систему (під яким-небудь ім'ям) в середовищі MATLAB в протягом поточного сеансу роботи і не допускає її повторного використання в інших сеансах.

Завдання до виконання лабораторної роботи

Побудувати експертну систему за допомогою пакету Fuzzy Logic Toolbox, що входить до складу системи MATLAB.

Контрольні питання:

  • 1) класифікація інструментальних засобів створення експертних систем;
  • 2) рівень мови, що використовується;
  • 3) спосіб подання знань;
  • 4) механізми виведення і моделювання;
  • 5) засоби придбання знань;
  • 6) технологія розробки ЕС;
  • 7) ступінь розроблення;
  • 8) методологія розробки ЕС;
  • 9) ідентифікація;
  • 10) концептуалізація;
  • 11) формалізація;
  • 12) виконання;
  • 13) налагодження і тестування;
  • 14) дослідна експлуатація і впровадження.
Показати весь текст
Заповнити форму поточною роботою