Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lb_IIsem / l1.doc
Скачиваний:
10
Добавлен:
05.03.2016
Размер:
131.58 Кб
Скачать

Лабораторна робота №1

Тема роботи: Формалізація опису знань.

Мета роботи: Вивчення понять баз знань та набуття навиків формалізації опису знань.

Теоретичні відомості

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

На даний час під поняттям знання розуміють закономірності предметної області (принципи, звязки, закони) отримані в результаті практичної діяльності і професійного досвіду, які дозволяють спеціалістам ставити і вирішувати задачі у цій області. Інколи під знаннями розуміють добре структуровані дані, дані про дані, або метадані. Знання поділяють на два види: алгоритмічні (процедурні) і неалгоритмічні.

Алгоритмічні знання – це алгоритми (програми, функції, процедури) які обчислюють функції, виконують перетворення, рішають конкретні поставлені задачі. Прикладом алгоритмічних баз знань можуть бути бібліотеки підпрограм, мови програмування, операційні системи. Системи, які використовують тільки алгоритмічні знання є нетиповими і мало поширені. В більшості систем баз знань алгоритмічні знання використовуються для доповнення неалгоритмічних. У таких системах базу алгоритмічних знань називають пакетом прикладних програм. Неалгоритмічні знання називають саме базою знань

Форма (модель) представлення знань у конкретній системі залежить як від структури та обєму знань так і від призначення системи та вирішуваних нею задач. Існуючі моделі представлення знань поділяють на 4 класи:

  • продукційні моделі;

  • семантичні сітки;

  • фрейми;

  • формальні логічні моделі.

Програмування баз знань на ПАСКАЛІ

При розробці систем баз знань на конкретній мові програмування ключовим моментом є вибір представлення знань засобами цієї мови. Існуючі моделі представлення знань (продукційна модель, семантичні сітки; фрейми, формально-логічна модель) грунтуються на поняттях високого рівня, таких як факт, правило, властивість, фрейм …, які не мають безпосереднього представлення у мовах програмування ПАСКАЛЬ та С++. Тому такі поняття повинні бути представлені у вигляді простіших структур даних (таких як записи, масиви, звязані списки, дерева, сітки), які є простими для реалізації у цих мовах і ефективно піддаються обробці. Вибір конкретного представлення того чи іншого поняття залежить від характеру знань, їх обєму, прийняиої моделі представлення знань, вигляду допустимих запитів у базу знань, передбачуваної структури машини виводу, структури інтерфейсу користувача, вимог до можловостей модифікації та доповнення бази знань, мови програмування, якою реалізують базу знань, особистого досвіду та стилю мислення програміста.

Незалежно від прийнятої моделі представлення знань, неалгоритмічні знання поділяють на три категорії:

Поняття(математичні і нематематичні) – мислені обєкти, які мають імя (можливо кілька синонімів), співвідносяться з іншими поняттями (мають означення, структуру,…) і є моделлю предметної області.

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

Правила– твердження про властивості понять або взаємозвязки між ними.

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

Класи – поняття, які обєднують в собі інші поняття, які називають елементами. Класи є аналогом множин у математиці. Властивості класів по замовчуванню поширюються на елементи класів. Класи можуть бути елементами інших класів. Приклад класу - поняття квітка. Поняття квітка узагальнює інші поняття (наприклад рози, тюльпани, ромашки), які є елементами класу квітка, і може виступати елементом вищого класу (наприклад рослина).

Властивості – поняття, які виступають як атрибути інших понять. Властивості також виступають як множини інших понять, які називаютьзанченнями атрибутів. Множини значень можуть бкти як скінченими, так і нескінченими. Приклад: властивість - колір, значення – синій, зелений, червоний (скінчена множина значень); властивість - швидкість, значення – будь-яке дійсне число (нескінчена множина значень). Властивості можуть бути однозначні (наприклад колір – синій) та багатозначні (наприклад дружить – Петром, Михайлом). Властивості можуть бути наперед заданими для класу (наприклад листок – колір - зелений) або заданий діапазон допустимих занчень властивостей (наприклад квітка – колір – червоний, жовтий, білий). в останньому випадку значення властивості задається безпосередньо для екземпляра.

Екземпляр – поняття, яке може бути елементом якогось класу, або кількох класів, але не обєднує в собі інші поняття. Властивості екземпляра встановлюються рівними властивостям класу, до якого входить екземпляр (якщо властивості класу задані) або задаються з діапазону допустимих значень властивостей класу.

При практичному написанні баз знань розробку форми представлення знань проводять у два етапи:

  1. Описують знання за допомогою понять класу, властивості, екземпляра, правила, факту.

  2. Для отриманого опису розробляють представлення вищевказаних понять з використанням допустимих типів даних конкретної мови програмування.

Приклад.

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

Знання, представлені експертом:многокутник– сукупністьnточок (верщин), зєднанихn відрізками (сторонами), які не перетинаються. Опуклий многокутник – многокутник, всі сторони якоео лежать в одній півплощині. Трапеція – опуклий чотирикутник, 2 сторони яккої паралельні. Паралелограм – опуклий чотирикутник, 2 пари сторін яккого паралельні. Рівносторонній многокутник – опуклий многокутник, сторони якого паралельні. У рівносторонньому трикутнику всі кути рівні , і навпаки. Ромб – рівносторонній чотирикутник. Прямокутник - паралелограм, у якого всі кути прямі. Правильний многокутник– рівносторонніймногокутник, всі кути якого рівні. У правильному многокутнику кути рівні 180*(n-2)/n. Квадрат – правильний чотирикутник.

Можливі запити у базу знань:

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

б) підтвердити або заперечити певне припущення (наприклад фігура б, прямокутник, у якого всі сторони рівні, є квдратом. Відповідь – вірно).

Розробка форми представлення знань.

1 етап:

перелік необхідних понять:

Класи – “многокутник” , “рівносторонній многокутник”, “правильний многокутник”, “трикутник”, “правильний трикутник”, “правильний трикутник”, “чотирикутник”, “трапеція”, “прямокутник”, “ромб”, “квадрат”.

Властивості– “є одним з”, “кількість кутів” (натуральні числа), “кількість сторін” (натуральні числа), “сторони перетинаються” = ні, “опуклий” = так, “кількість пар взаємнопаралельних сторін” (натуральні числа), “рівність кутів” (так/ні), “рівність сторін” (так/ні), “величина рівних кутів” (дійсні числа);

Співвідношення між класами:

“многокутник” має властивості – “кількість кутів” (натуральні числа >2), “кількість сторін” (натуральні числа >2), “сторони перетинаються” = “ні”, “опуклий” = “так”, “кількість пар взаємнопаралельних сторін” (натуральні числа), “рівність кутів” (так/ні), “рівність сторін” (так/ні). Всі інші класи є елементами класу “многокутник” або інших класів. Елементи класів по замовчуванню наслідують властивості класів та їх значення (якщо такі задані). Клас “правильний трикутник” додатково має властивість “величина рівних кутів” (дійсні числа).

При описі правил використаєм наступні позначення:

@- має імя (X@“імя” – Xмає імя “імя”);

. (крапка) – властивість (X.Y – властивість Y поняття X);

= - має значення (X.Y=C – ВластивістьY класу X має значення C);

== - рівність;

 - слідує;

& - логічне І;

Перелік правил:

для довільного поняття X:

X.“кількість кутів”>2 & X.“кількість сторін”>2 & X.“сторони перетинаються”==“ні” & X.“опуклий”==“так”  X@“многокутник”;

X.“є одним з”==“многокутник” &X.“рівність сторін”==так  X@“рівносторонній многокутник”;

X.“є одним з”==“рівносторонній многокутник” & X.“рівність кутів”==“так”  X@“правильний многокутник”;

X.“є одним з”==“правильний многокутник”  X.“величина рівних кутів”=180*(X. “кількість кутів” – 2)/X.“кількість кутів”;

X.“є одним з”==“многокутник” &X.“кількість сторін”==3  X@“трикутник”;

X.“є одним з”==“трикутник” & X.“є одним з”==“правильний многокутник”  X@“правильний трикутник”;

X.“є одним з”==“многокутник”& X.“кількість сторін”==4  X@“чотирикутник”;

X.“є одним з”==“чотирикутник” & X.“кількість пар взаємнопаралельних сторін”==1  X@“трапеція”;

X.“є одним з”==“чотирикутник” & X.“кількість пар взаємнопаралельних сторін”==2 & X.“рівність кутів”==“так”  X@“прямокутник”;

X.“є одним з”==“чотирикутник” & X.“рівність сторін”==“так”  X@“ромб”;

X.“є одним з”==“чотирикутник” & X.“є одним з”==“правильний многокутник”  X@“квадрат”.

2 етап

Представляєм отримані поняття в рамках конкретної моделі з врахуванням можливих запитів у базу знань та особливостей побудови машини виводу.

Соседние файлы в папке lb_IIsem