МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ІСМ
КУРСОВИЙ ПРОЕКТ
з дисципліни:
“Експертні системи”
на тему:
“Надання консультацій з вибору дисків магазину аудіо-відео”
ЛЬВІВ – 2012
Завдання
на курсовий проект з дисципліни “Експертні системи”
студента групи КН-46 Бориса Остапа
на тему: ”Експертна система надання консультацій з вибору дисків магазину аудіо-відео”
Зміст завдання та календарний план його виконання
№ п/п
Опис завдання
Дата виконання
1.
Провести аналітичний огляд літератури за темою ” Експертна система надання консультацій з вибору дисків магазину аудіо-відео ”. Cформулювати проблему та визначити доцільність розробки прототипу ЕС.
15.03.2012
2.
Зібрати і формалізувати знання про особливості вибору прикладного програмного забезпечення.
31.03.2012
3.
Провести аналіз знань та розробити модель представлення знань.
30.04.2012
4.
Розробити управляючу структуру розв’язку проблеми та архітектуру демонстраційного прототипу ЕС.
1.05.2012
5.
Виконати програмну реалізацію демонстраційного прототипу ЕС в середовищі VPROLOG, ESTA.
5.05.2012
6.
Оформити пояснювальну записку до курсового проекту обсягом 35-40 сторінок ф. А4, дотримуючись наступного:
завдання на курсову роботу;
зміст;
вступ;
постановка задачі(проблеми) та обґрунтування доцільності її розробки за допомогою технології ЕС;
збір і формалізація знань про особливості вибору прикладного програмного забезпечення;
модель представлення знань для програмного забезпечення;
управляюча структура розв’язку проблеми;
архітектура демонстраційного прототипу ЕС.
10.05.2012
7.
Оформити графічну частину до курсового проекту.
19.05.2012
8.
Захистити КП.
26.05.2012
Завдання отримав: 10.03.2012р.
Керівник: ___________________ доц., к. т. н. Проданюк М.М.
Студент групи КН-46 Іванов О.І. : ________________.
Термінологічний словник
ЕС
Експертна система
ПГ
Предметна галузь
СПОР
Система планування прийняття та пояснення рішень
СППР
Системи підтримки прийняття рішень
Зміст
Вступ 5
1. Постановка задачі та обґрунтування доцільності її розв’язку за допомогою технології ЕС. 8
2. Збір і формалізація знань про проблемну галузь 10
3. Модель представлення знань для даної предметної галузі 18
4. Управляюча структура і стратегія розв’язку задачі. 22
5. Структурна схема прототипу експертної системи 25
6. Приклад функціонування прототипу експертної системи 27
7. Аналіз отриманих результатів 32
Висновки 33
Список літературних джерел 34
Додатки 35
Додаток 1. Текст програми мовою ESTA 35
Вступ
Експертні системи є одним із основних засобів штучного інтелекту. Штучний інтелект – це один із розділів інформатики, що займається вивченням задач апаратного і програмного моделювання тих видів людської діяльності, які вважаються інтелектуальними.
Результати досліджень в області штучного інтелекту використовуються в інтелектуальних системах, які здатні вирішувати творчі задачі, що належать до конкретної предметної області, знання про яку зберігаються в пам’яті (базі знань) системи. Системи штучного інтелекту орієнтовані на вирішення великого класу задач, до яких відносяться так звані частково структуровані, або неструктуровані задачі (частково формалізовані, або неформалізовані задачі).
Інформаційні системи, що використовуються для вирішення частково структурованих задач поділяють на два види :
Системи, що створюють звіти (системи які виконують обробку даних : пошук, сортування, фільтрацію);
Системи, що шукають можливі альтернативні рішення. Прийняття рішення зводиться до вибору однієї з запропонованих альтернатив;
Інформаційні системи, які виконують пошук альтернативних рішень можуть бути модельними чи експертними :
Модельні інформаційні системи пропонують користувачеві моделі (математичні, статистичні, фінансові і т.д. ), які допомагають забезпечити вибірку і оцінку альтернативних рішень;
Експертні інформаційні системи забезпечують вибірку та оцінку можливих альтернатив користувачем за рахунок створення систем, які базуються на знаннях отриманих від спеціалістів – експертів;
Експертні системи – це програми, що акумулюють знання спеціалістів – експертів в конкретних предметних галузях, які призначені для отримання оптимальних рішень в процесі обробки інформації. Експертні системи перетворюють досвід експертів в будь-якій конкретній галузі знань в форму евристичних правил і призначені для консультації менш кваліфікованих спеціалістів.
Відомо, що є два види знань : ті, що базуються на колективному досвіді та на особистому досвіді. Якщо предметна область представлена колективним досвідом (наприклад, вища математика), то цій предметній області не потрібні експертні системи. Якщо в предметній області більша частина знань представлена в вигляді особистого досвіду спеціалістів високого рівня і ці знання погано структуровані , то такій області експертні системи просто необхідні. Сучасні експертні системи знайшли широкого застосування майже в усіх сферах.
База знань – це ядро експертної системи. Перехід від даних до знань є наслідком розвитку інформаційних систем. Для збереження даних використовують бази даних, знання ж зберігають в базах знань. В базах даних, як правило, зберігаються великі масиви даних з відносно маленькою цінністю, а в базах знань зберігаються маленькі за об’ємом, але цінні за значимістю інформаційні масиви.
База знань – це сукупність знань, описаних з використанням обраної форми їх представлення. Наповнення бази знань це одне з найскладніших завдань, яке пов’язане з вибором знань, їх формалізацією та інтерпретацією.
Експертна система складається з :
Бази знань (в складі робочої пам’яті і бази правил), призначеної для зберігання початкових і проміжних фактів в робочій пам’яті (база даних) і збереження моделей і правил маніпулювання моделями в базі правил.
Інтерпретатора (розв’язувача задач), який забезпечує реалізацію послідовності правил для вирішення конкретної задачі на основі фактів і правил, що зберігаються в базах даних і базах знань.
Підсистеми пояснення, дозволяє користувачеві отримати відповідь на питання : “Чому система прийняла саме таке рішення?”.
Підсистеми отримання знань, призначеної як для доповнення бази знань новими знаннями так і для модифікації наявних знань.
Інтерфейсу користувача, комплексу програм, що реалізують діалог користувача з системою на стадії введення інформації і отримання результатів.
Експертні системи відрізняються від традиційних систем обробки даних тим, що в них, як правило, використовується символьний спосіб представлення, символьне виведення результатів і евристичний пошук розв’язків.
В даній курсовій роботі буде створено експертну систему яка надаватиме консультації при проектуванні web – сайтів.
Постановка задачі та обґрунтування доцільності її розв’язку за допомогою технології ЕС.
Мета майбутньої ЕС – надання консультацій при проектуванні веб-сайту. Оскільки різномаїття сучасних технологічних вирішень може збити з пантелику навіть досвідчених спеціалістів, ЕС має допомогти як пересічним користувачам які тільки планують познайомитись з internet, так і людям які працюють в цій галузі і мають певний досвід.
Серцем ЕС є база знань, отже чим детальніше буде досліджено предметну область, тим точніші і об’єктивніші будуть надані поради та рекомендації. Оскільки під час проектування веб-сайту важливі не тільки засоби які використовує розробник, а й мета з якою портал створюється. Наприклад живий журнал чи блог вимагає зовсім інакшого підходу ніж поштовий сервіс чи сайт-візитка. Отже експертна система повинна давати поради враховуючи ймовірний розвиток як користувача так і сайту.
Однією з особливостей сучасних веб-технологій є те, що можливе їх поєднання та взаємне використання в одному проекті, наприклад якщо користувач вкаже що знайомий з технологією PHP система має орієнтуватись на цей факт, але враховуючи інші критерії вказати в рекомендаціях можливість використання JAVA, оскільки мови мають схожий синтаксис, для вирішення поставленої задачі підходить як одна так і друга, але JAVA дасть змогу розширити можливості порталу в майбутньому з меншими затратами.
Підсумувавши вище сказане можна виділити основні задачі які має вирішувати ЕС :
Аналіз знань користувача в даній галузі ;
Визначення вимог до сайту;
Оцінка складності реалізації;
Видача рекомендацій з врахуванням пунктів 1,2 та 3, з врахуванням подальшого розвитку сайту;
Крім цього система має мати зручний та зрозумілий інтерфейс що максимально спрощує її використання, а рекомендації відповідати поставленій меті.
Наприклад при проектуванні сайта-візитки недоцільно застосовувати мови програмування високого рівня, оскільки контент на сайті залишається статичним багато років, а карта сайту обмежується однією сторінкою. Також через маленький розмір немає сенсу виносити таблиці стилів чи користувацькі скрипти в окремі файли, але слід врахувати ймовірне розширення, наприклад організація форми зворотного зв’язку. Ця задача теж має декілька варіантів вирішення. Перший варіант, відправка всіх повідомлень на e-mail, другий – організація збереження повідомлень на сервері. Опираючись на призначення сайту ми розуміємо, що доцільніше обрати перший варіант, оскільки він не вимагає додаткових затрат на розробку і ресурсів на збереження даних. Але не варто забувати й про другий варіант, оскільки він дає розробнику більшу гнучкість, але вимагає додаткових затрат на зберігання даних та розробку.
Доцільність використання даної експертної системи обґрунтована тим, що на відміну від користувача система об’єктивно оцінюватиме поставлену задачу і ресурси які необхідні для її реалізації. В свою чергу користувач не має володіти знаннями в даній галузі, але їх наявність полегшить системі роботу і збільшить цінність та якість наданих нею рекомендації.
Слід також вказати на те, що сьогоднішній ринок програмного забезпечення призначеного для internet має безліч готових як безкоштовних так і комерційних вирішень. Інколи, якщо користувач не має певних специфічних забаганок доцільніше використовувати саме такі вирішення. Цей момент буде враховано при розробці ЕС.
2. Збір і формалізація знань про проблемну галузь
Експертна система надаватиме консультації з проектування веб-сайтів, оскільки це складний процес який має безліч нюансів, необхідно провести збір та аналіз даних з цієї ПГ.
Зібрані знання необхідно буде формалізувати таким чином, щоб в результаті можна було створити певну базу знань, по якій і буде працювати наша експертна система. Оскільки сучасні сайти використовують безліч різноманітних технологій, розглянуті будуть лише найпоширеніші.
Перш за все необхідно визначитись що собою представляє сучасний веб-сайт. А представляє він собою програмний продукт який має певну архітектуру. Основа сайту – це його серверна частина, тобто набір логіки реалізований на якійсь мові програмування, що забезпечує обробку вхідних запитів та відповідь на них. Діалог між користувачем та сервером відбувається через клієнтську частину, найчастіше це веб-сторінка з інтерфейсом який забезпечує обмін даними між користувачем та сервером. Чому найчастіше, бо клієнтська частина також може бути представлена в вигляді окремої програми, але ми не розглядатимемо цього випадку.
Розібравшись що собою являє сайт, визначимо як можна класифікувати їх за функціональністю та напрямком :
Сайт-візитка . Метою такого сайту є надання інформації про фірму та її послуги. У реальному житті ми обмінюємося візитками, але вони можуть розповісти лише про назву фірми і посади того, хто її вручив.
Якщо ж на візитці вказана адреса сайту, ваш потенційний партнер або покупець (замовник) може дізнатися про вашу компанію все, що його цікавить. Саме таку інформацію розміщують на сайтах-візитках: історію фірми, види діяльності, заслуги і так далі. Також тут можна розміщувати фотографії пропонованої продукції (якщо це потрібно), ціни, акції та інше.
Особливості: Такі сайти зазвичай складаються з 5-15 сторінок, відрізняються строгим дизайном, на них обов'язково є присутній логотип компанії. Також дуже важливий підбір доменного імені, в ідеалі вона повинна відображати основний вид діяльності фірми, бути коротким і таким, що запам'ятовується.
Сайт новин. Насправді це величезний пласт сайтів. Умовно їх можна розділити на дві великі групи: тематичні сайти і територіальні. До першої групи відносяться сайти присвячені якій-небудь темі: політика, економіка, плітки, ігри, музика, розваги і так далі.
До другої групи належать сайти, присвячені якій-небудь країні, регіону, місту і так далі. Об'єднує такі сайти необхідність постійного наповнення їх свіжими новинами по темі ресурсу.
Особливості: Такі сайти вимагають якісного і цікавого контенту (змісту), частого оновлення, відповідного, а також присутності різних технологій для більш зручної і цікавої роботи користувачів (форуми, чати, опитування, ролики та анімації ...).
Корпоративний сайт. До цієї групи відносяться сайти, які виконують подвійну роль. З одного боку представництво в Інтернеті (як сайт-візитка), з іншого - засіб спілкування та обміну інформацією між співробітниками фірми, партнерами і клієнтами.
Особливості: Строгий стиль, логотип компанії, великий обсяг, закриті розділи для співробітників, розділи для партнерів і клієнтів, можливість динамічного формування контенту (використання баз даних для своєчасного оновлення інформації), форми зворотного зв'язку і так далі.
Сайт для просування продукту або послуги. Це сайти-презентації, вони покликані розповісти про який-небудь новий товар або послугу, точніше розрекламувати їх. Як правило, вони являють собою докладний опис, характеристики, переваги та гарні фотографії товару або послуги.
Особливості: Такі сайти складаються з однієї-трьох сторінок, мають яскравий дизайн, і форму замовлення. Часто супроводжуються відео або flash-роликами, а також позитивними відгуками.
Сайт каталог. Як правило, такі сайти необхідні фірмам-виробникам яких-небудь товарів. Наприклад, шпалерна фабрика може зробити сайт-каталог, де розмістить фотографії всіх зразків шпалер, з їх описом і ціною, а також надасть користувачеві побачити вибрані шпалери в різних інтер'єрах.
Особливості: Такі сайти містять багато однотипної інформації: фотографії продукції, їх опис, ціни і т.д.
Інтернет магазин. Це сайти, які не тільки надають фотографії, описи та ціни на товари, але і мають засоби прийому замовлень on-line. Також, на відміну від сайтів-каталогів, тут можуть бути представлені абсолютно різні товари, зібрані в окремі розділи.
Особливості: Дружній інтерфейс, засоби прийому замовлень on-line, можливість оплати on-line (не завжди). Як правило, користувачеві потрібно тільки клацати по кнопці з товарами, все інше буде зроблено за нього .
Інтернет портал. Це мега-сайти: об'ємні, наповнені різною інформацією, і пропонують велику кількість сервісів . Їх створення вимагає багато часу і сил, а також цілої команди розробників.
Особливості: Масштабність проекту.
Блог. Це окремий вигляд сайту. Можна називати це як завгодно: домашньою сторінкою, блогом, журналом, але по суті - це той же сайт.
Особливості: Присвячений конкретній людині і його захопленням.
Умовно сайти ще можна розділити на комерційні (ті що створені щоб приносити прибуток), та некомерційні.
Тепер розберемось як саме відбувається проектування сайтів :
Визначення типу сайту (блог, візитка і т. і.).
Створення макетів (ескізів сторінок). Виконується на основі вибору зробленого на першому кроці.
Верстка на мовах розмітки. Іншими словами, якщо ескіз – це просто картинка, після верстки він ділиться на блоки, секції і інші елементи які програміст зможе змінювати без залучення дизайнера.
Програмування системи управління (реалізація серверної частини).
Крім того успішний сайт має володіти такими властивостями :
Інформативність – зручне розташування інформації,пошук по сайту і т.і.
Гнучкість – можливість створення нових розділів та елементів керування.
Персоналізованість – можливість вибору стилю оформлення, шрифту для кожного користувача індивідуально.
Конфіденційність – наявність розділів та сторінок з обмеженим доступом.
Зворотній зв’язок – можливість спілкування між користувачем та власником.
Безпека – використання захищених протоколів, шифрування особистої інформації (для комерційних сайтів обов’язковий атрибут).
Тепер конкретніше розглянемо внутрішню будову сайтів, їх програмну реалізацію зокрема.
Почнемо з клієнтської частини, оскільки вона має меншу кількість ймовірних варіантів реалізації.
HTML (4.0, 4.01, 5) – це мова розмітки документів в всесвітній павутині, більшість веб-сторінок виконані саме з застосуванням html.
XHTML (1.0, 1.1, 2.0) – розширена версія html на основі xml.
DHTML – спосіб створення сторінки з використанням статичного html, і вбудованих скриптів JavaScript, що виконуються на стороні клієнта.
CSS – каскадні таблиці стилів, дозволяють винести опис стилю html розмітки в окремий файл.
JavaScript – скриптова мова, описані за допомогою JavaScript дії можеть виконуватись автономно на стороні клієнта.
Переглянемо технологічні вирішення для серверної частини :
PHP (англ. PHP:Hypertext Preprocessor — PHP:гіпертекстовий препроцесор), попередньо: Personal Home Page Tools — скриптова мова програмування, була створена для генерації HTML-сторінок на стороні веб-серверу. PHP є однією з найпоширеніших мов, що використовуються у сфері веб-розробок (разом із Java, .NET, Perl, Python, Ruby). PHP підтримується переважною більшістю хостинг-провайдерів. Проект за яким був створений PHP — проект з відкритими програмними кодами.
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.
PHP - мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (<?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?>).
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.
Переваги : Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше - в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних web-додатків.
Python — інтерпретована об'єктно-орієнтована мова програмування високого рівня з динамічною семантикою. Розроблена в 1990 році Гвідо ван Россумом. Структури даних високого рівня разом із динамічною семантикою та динамічним зв'язуванням, роблять її привабливою для швидкої розробки програм, а також в якості засобу поєдання існуючих компонент. Пайтон підтримує модулі та пакети модулів, що сприяє модульності та повторному використанню кода. Інтерпретатор Пайтон та стандартні бібліотеки доступні як у зкомпільованій так і у вихідній формі на всіх основних платформах. В мові програмування Пайтон підтримується декілька парадигм програмування, зокрема: об'єктно-орієнтована, процедурна, функціональна та аспектно-орієнтована.
Переваги:
- чистий синтаксис (для виділення блоків слід використовувати відступи);
- переносимість програм (що властиве більшості інтерпретованих мов);
- стандартний дистрибутив має велику кількість корисних модулів (включно з модулем для розробки графічного інтерфейсу);
- можливість використання Пайтона в діалоговому режимі (дуже корисне для експериментування та розв'язання простих задач);
- стандартний дистрибутив має просте, але разом із тим досить потужне середовище розробки, яке зветься IDLE і яке написане на мові Пайтон;
- зручний для розв'язання математичних проблем (має засоби роботи з комплексними числами, може оперувати з цілими числами довільної величини, у діалоговому режимі може використовуватися як потужний калькулятор).
Perl — високорівнева, інтерпретована, динамічна мова програмування загального призначення. Мова надає потужні можливості для обробки тексту без довільних обмежень на довжину даних багатьох сучасних інструментів Unix, полегшуючи процес маніпуляції текстових файлів. Використовується для програмування графіки, системноо адміністрування, мережному програмуванні, у написанні програмного забезпечення, яке взаємодіє з базами даних, у програмуванні CGI для веб. Perl за свою гнучкість і потужність отримав прізвисько "швейцарського армійського ножа мов програмування".
Microsoft .NET (читається дот-нет) — програмна технологія, запропонована фірмою Microsoft як платформа для створення як звичайних програм, так і веб-програм. Багато в чому є продовженням ідей та принципів, покладених в технологію Java.
Переваги: Захищеність, масштабованість, швидкодія.
Adobe Flex (англ. Адобі Флекс) — технологія для розробки Rich Internet Applications (RIA) розробляється компанією Adobe (до версії Flex 2.0 (Alpha) включно, розроблявся компанією Macromedia, яка злилась з Adobe у 2005).
Flex — це споріднена з Flash технологія, ґрунтована на описанні інтерфейсу користувача, зв'язку джерел даних з об'єктами, обробниками подій за допомогою діалекту XML — MXML. Flex-модулі можуть компілюватись "на льоту" на сервері, а можуть і з IDE (починаючи з версії Flex 2.0); результатом як і у випадку з Flash, є SWF файл, який виконується Flash Player'ом.
Переваги: Дозволяє створювати дуже динамічні та інтерактивні сайти, але більше підходить для сайтів-візиток, оскільки вимоглива до ресурсів користувача, може працювати автономно.
Java Web Start – дозволяє запускати програми написані на java прямо з браузера.
Переваги: Всі переваги мови java, витримує високі навантаження, одночасно є і клієнтом і сервером.
Проаналізувавши предметну область можна графічно зобразити алгоритм проектування сайту (див. рис.2.1).
Рис.2.1 Покроковий алгоритм проектування сайту
Модель представлення знань для даної предметної галузі
В попередньому розділі було зібрано і формалізовано знання необхідні для побудови БЗ. Представляти знання можна в багатьох формах, найросповсюдженішими є такі моделі представлення знань :
Логічна модель представлення знань. Основна ідея підходу при побудові логічних моделей представлення знань — вся інформація, необхідна для вирішення прикладних завдань, розглядається як сукупність фактів і тверджень, які представляються як формули в деякій логіці. Знання відображаються сукупністю таких формул, а отримання нових знань зводиться до реалізації процедур логічного висновку.
Продукційна модель, або модель, базована на правилах - одна з моделей представлення знань, вона дозволяє представити знання у вигляді речень виду «Якщо (умова) то (дія)». База знань у продукційній моделі — це сукупність бази фактів і бази правил. Кожне продукційне правило в БЗ втілює автономну частину експертних знань одержаних від експерта при набутті знань вручну або використовуючи методи автоматичного видобування знань. Окреме продукційне правило може бути розроблене та модифіковане незалежно від інших привил. При спільному застосуванні правил та наданні машині виведення (частині ЕС, котра відповідає за виведення нових знань з існуючих) правила синергетично виробляють нові знання, видаючи кращий результат, ніж результати застосування окремих правил. В дійсності правила бази знань не є незалежні. Вони швидко стають взаємозалежні. Наприклад, додавання нового правила може конфліктувати з існуючими правилами і може вимагати перегляду атрибутів або правил. Правила можна розглядати, в певному сенсі, як симуляцію когнітивної поведінки експерта в певній проблемній області. Згідно з цим поглядом, правила є не лише чистим формалізмом для представлення знань в комп'ютері; швидше вони представляють модель фактичної людської поведінки.
Фрейм — це структура, що описує деякий складний об'єкт або абстрактний образ або модель для представлення деякої концепції (стереотип сприйняття). Модель містить слоти, визначені фасетами. З такої моделі певної концепції нічого не можна забрати, атрибути моделі можна лише заповнити.
Структура фрейма включає три основних типи даних: поняття (назва фрейма), характеристика (назва термінала — вершини нижнього рівня), значення характеристики (заповнювач термінала). У зв'язку з цим можна вважати, що у фреймі реалізовано деякі загальні принципи, що властиві організації баз даних, де як одиниці виділяються об'єкти, характеристики та їхні значення, а також семантичним сіткам, у яких розрізняють абстрактний та конкретний рівень. Фрейм надає засоби організації знань в слотах, що містять характеристики та структури. В моделі фрейма — це щось на зразок схеми з категоріями і підкатегоріями. Фрейм — це абстрактний образ для представлення деякого стереотипа сприйняття.
Семантична мережа — інформаційна модель предметної області, що має вигляд орієнтованого графа, вершини якого відповідають об'єктам предметної області, а ребра задають відносини між ними. Об'єктами можуть бути поняття, події, властивості, процеси.
Основною формою представлення семантичної мережі є граф. Поняття семантичної мережі записуються в овалах або прямокутниках і з'єднуються стрілками з підписами — дугами. Це найзручніша форма яка сприймається людиною. Її недоліки виявляються, коли ми починаємо будувати складніші мережі або намагаємося врахувати особливості природної мови.
Крім цього представленні знання поділяють на:
Метазнання -- це частина бази знань, що описує структуру знань предметної області.
Оперативні знання -- представлені правилами та закономірностями предметної галузі, що використовуються для виводу нових фактів з вже існуючих.
Елементарні знання -- є конкретними фактами з даної предметної області.
Як відомо, будь – яка експертна система має свою структуру, структура типової експертної системи зображена на рисунку 3.1.
Рис.3.1 Структура типової експертної системи.
Тепер ми можемо побудувати і зобразити графічно модель нашої бази знань (рис.3.2).
Рис.3.2 Модель представлення знань ПГ.
Управляюча структура і стратегія розв’язку задачі.
Нажаль в даний час експертні системи не можуть бути використані в усіх областях знань. Для того, щоб задачу можна було вирішити методами інженерії знань, вона має виконувати наступні умови :
Має бути хоча б один спеціаліст(експерт), який добре розв’язує задачі таку задачу.
Основними джерелами здібностей експерта мають бути спеціальні знання, логічне мислення та практичний досвід.
Експерт має вміти формулювати свої знання, описувати хід думок і власний досвід, а також пояснювати які методи він використовував для застосування накопичених знань до вирішення поставленої задачі.
Задача має мати обмежену область застосування.
Отже, експертну систему можна представити з трьох частин:
1. База знань .
2. Механізм висновку .
3. Система інтерфейсу з користувачем .
Експертна система має модульну будову : факти і знання з предметної галузі мажуть бути відокремлені від процедури логічного виведення, чи керуючої структури, яка забезпечує використання існуючих фактів, тоді як друга частина програми – база знань – це модель, що пов’язана з конкретною задачею та її станом. Щоб спростити роботу з системою як на етапі розробки, так і в процесі експлуатації, бажано мати зручний та зрозумілий інтерфейс. В деяких, найбільш досконалих системах, використовується також модуль пояснення отриманих результатів, що дозволяє користувачеві перевіряти процес мислення, який використовує система для видачі того чи іншого висновку, якщо цей висновок викликає сумніви.
Перш ніж занести знання в базу знань їх необхідно формалізувати і описати згідно до того, в якій ЕС вини будуть використані.
Представлення знань – це безліч домовленостей по синтаксису і семантиці, згідно яким описуються об'єкти. Гарне правило при проектуванні представлення знань – це організація знань у такій формі, що дозволяє легко здійснювати доступ за допомогою природних і простих механізмів. "Чим простіше, тим краще" – правило, яке потрібно пам'ятати, при роботі з представленням знань. Експертні системи часто створюються "інженером по знаннях" (чи проектувальниками експертних систем), що працюють з людиною-експертом, щоб закодувати знання експерта в базі знань.
Крім того, особливу увагу необхідно звернути на інтерфейс, оскільки чим зрозуміліший інтерфейс, тим простіше користувачеві користуватися ЕС.
Система інтерфейсу з користувачем повинна ефективно обробляти ввід і вивід. Для цього необхідно обробляти дані що вводяться і виведені дані швидко, у ясній і виразній формі. послідовності висновку, що привела до цього твердження. Система інтерфейсу з користувачем повинна також розпізнавати нерозуміння, між користувачем і системою, що виникла або через помилку, або на принциповій основі. Система повинна реагувати відповідним чином на цю ситуацію. Наприклад, не повинно відбутися збою системи, якщо користувач вводить 1, коли очікується "так" чи "ні", чи коли користувач ставить безглузде запитання. Здатність експертної системи моделювати людину експерта може мінятися від простих пізнавальних процесів до включення нових чи знань нових способів рішення задачі. Система інтерфейсу повинна інформувати користувача про методику роботи системи і її розвитку, якщо такий розвиток передбачений у системі.
Тема курсового проекту - експертна система надання консультацій з проектування web – сайтів.
Використовуючи дані отримані при аналізі ПГ можна зобразити управляючу структуру і стратегію розв’язку задачі в блок-схеми (рис.4.1).
Рис.4.1 Управляюча структура розв’язку проблеми.
Система матиме зручний і простий в використанні діалоговий інтерес.
Структурна схема прототипу експертної системи
В загальному випадку структурна схема прототипу експертної системи має наступний вигляд (рис.5.1).
Рис.5.1 Структурна схема експертної системи
Інтерфейс – забезпечує спілкування системи з користувачем.
Система управління базою знань – це набір програмних засобів, методів і технологій, які дають можливість нагромаджувати знання і маніпулювати ними в процесі створення і підтримки бази знань ЕС. СУБЗ складається з :
модуля представлення знань;
модуля маніпулювання знаннями;
модуля отримання знань;
Система прийняття і пояснення рішень – це система, призначена для планування, управління і розв’язання конкретних задач, пояснення знань і прийняття рішень по запитах користувачів. Складається з :
модуля управління процесами консультацій;
модуля пояснення знань;
модуля розв’язку задач;
тимчасового робочого простору;
У коло питань, розв'язуваних при поданні знань, будемо включати наступні:
- визначення складу знань, що представляють;
- організацію знань;
- подання знань, тобто визначення моделі подання.
Склад знань ЕС визначається наступними факторами:
- проблемним середовищем;
- архітектурою експертної системи;
- мовою спілкування.
Приклад функціонування прототипу експертної системи
Демонстраційний приклад, вірніше його програмна реалізація виконанані в середовищі ESTA. Дане середовище спеціалізоване на створенні експертних систем.
Основою бази знань в ESTA є параметри та секції, крім того ESTA має модуль логічного виведення, що дозволяє визначити яка саме порада буде надана користувачеві.
Крім того середовище дозволяє зберігати зображення .BMP які можна використовувати в розділах секцій та параметрів, для збільшення наглядності.
Середовище дозволяє зберігати готові експертні системи як в текстовому, так і бінарному форматах. Зображення також можна запакувати в базу даних.
Створена ЕС має назву es_webproject.kb, тож відкривши її в середовищі запустимо процес консультації через пункт меню Consult -> Begin Consultation.
Перше, що побачить користувач, це вікно, що містить інформацію про ЕС та її автора (рис.6.1).
Рис.6.1 Вікно привітання
Далі система починає діалог з користувачем, задаючи йому питання необхідні для прийняття рішення. Спочатку система перевіряє який тип діяйльності буде в майбутнього сайту, комерційний чи не комерційний (рис.6.2)
Рис.6.2 Вибір діяльності сайту
Якщо ми захочемо подивитись чому нам задали саме це питання, чожна скористатись кнопкою Why. ESTA сама видасть нам пояснення (рис. 6.3).
Рис.6.3 Вікно пояснення
Обравши вид діяльності користувачеві необхідно вказати, до якої групи (за типом послуг) буде відноситись сайт (рис. 6.4).
Рис.6.4 Вибір типу сайту за функціональністю
Маючи основні дані система починає задавати уточнюючі питання. Наприклад яка в сайту планується відвідуваність (рис.6.5), та на яку суму розраховує розробник(рис.6.6).
Рис.6.5 Діалог вказання планованої відвідуваності
Рис.6.6 Діалог вказання бюджету проекту
Після цього система визначає хто буде працювати над проектом (рис. 6.7), сам користувач чи наймані працівники. Якщо користувач збирається виконувати роботу сам, йому буде задано низку питань про його особисті знання в цій галузі, якщо роботу робитимуть інші люди, відбудеться перевірка на достатність коштів і, в разі потреби, видана порада про збільшення бюджету (рис.6.8).
Рис.6.7 Вибір виконавців
Рис.6.8 Рекомендація збільшити бюджет проекту
Після визначення виконавців і додаткових параметрі, система видасть пораду. Вікно, з порадою наведено на рисунку 6.9 .
Рис.6.9 Вікно з порадою виданою системою
Як видно вище, система робить оцінку складності розробки проекту і згідно неї виводить пораду користувачеві.
Аналіз отриманих результатів
Розроблена експертна система функціонуватиме на пристроях, що задовольняють технічні вимоги середовища ESTA. Для повноцінної роботи також необхідний пристрій введення символьних даних, наприклад клавіатура, або її віртуальний аналог.
Експертна система має зручний діалоговий інтерфейс та низькі вимоги до технічного та програмного забезпечення. Це однозначно є перевагою середовища в якому дана експертна система розроблялась.
Висновки
В даному курсовому проекті було розроблено прототип експертної системи по наданню консультацій при проектуванні web-сайтів.
Для виконання поставленої задачі довелось опрацювати велику кількість літературних та інтернет джерел, оскільки для точності роботи системи необхідні тільки достовірні та корисні дані.
Практична цінність експертної системи на даному етапі не є дуже високою, оскільки теперішні можливості системи досить маленькі. Але через актуальність проблеми та швидкий розвиток веб - технологій і збільшення їхньої значущості в нашому житті є доцільним подальший розвиток системи.
Аналіз проблеми показав, що процес проектування сайту не є дуже складним, але залежить від багатьох чинників. В даному варіанті ЕС було враховано лише найважливіші та найкритичніші, подальше заглиблення в ПГ і детальніший аналіз дозволить знайти більшу кількість таких чинників і відповідно збільшити цінність наданих системою порад, але виходить за рамки даного курсового проекту.
Список літературних джерел
Джаррано Джозеф,Райли Гари .Экспертные системы: принципы разработки и программирование,4-е изд. - М.: "Вильямс", 2007. — 1152 с.
Иван Братко. Алгоритмы искусственного интеллекта на языке PROLOG, 3-е издание.- М.: "Вильямс", 2004. — 640 с.
Питер Джексон. Введение в экспертные системы. - Изательский дом "Вильямс", Москва, Санкт-Петербург, Киев. 2001.
Экспертные системы. Принципы работы т примеры. Под ред. Форсайта Р.- М.:радыо и связь, 1987.
Экспертные и обучающиеся системы// http://www.lessons-tva.info/edu/e-inf2/m2t4_10.html
Drs// http://desrus.ru/stat3.shtml
Зроби свій бізнес в інтернеті!!!// http://webzarobitok.com/stvorenya-sait/55-riznovud-saytiv
Додатки
Додаток 1. Текст програми мовою ESTA
Title
Curs Project
by Sydor Bohdan KN-46
"Create web-site project"
Sections
section Budget : 'You money '
assign complexity:=complexity-money
if complexity<0
( assign Capital:=100,
assign complexity:=0,
advice 'You plan to spend too much money,we have reduced them to minimum,becouse it is irrational!' )
do Performer
section Categorys : 'Site Category '