Експертна система — Вікіпедія
Експе́ртна систе́ма — це методологія адаптації алгоритму успішних рішень однієї сфери науково-практичної діяльності в іншу. З поширенням комп'ютерних технологій — це тотожна (подібна, заснована на оптимізуючому алгоритмі чи евристиках) інтелектуальна комп'ютерна програма, що містить знання й аналітичні здібності одного чи кількох експертів в деякій галузі застосування і здатна робити логічні висновки на основі цих знань, тим самим забезпечуючи вирішення специфічних завдань (консультування, навчання, діагностування, тестування, проектування тощо) без участі експерта (фахівця в конкретній проблемній галузі). Визначається також як система, яка використовує базу знань для вирішення завдань (видачі рекомендацій) у певній предметній галузі. Цей клас програмного забезпечення спочатку розроблявся дослідниками штучного інтелекту в 1960-ті та 1970-ті та здобув комерційне застосування, починаючи з 1980-х. Часто термін система, заснована на знаннях, використовується як синонім експертної системи, однак можливості експертних систем ширші за можливості систем, заснованих на детермінованих (обмежених, реалізованих на поточний час) знаннях.[1]
Однак єдиного визначення експертних систем не існує[2]. Натомість автори дають визначення залежно від застосування, структури таких систем. Ранні визначення експертних систем припускали застосування виведення нових знань на основі правил.
Подібні дії виконує програма-майстер[en] (wizard) . Зазвичай майстри застосовують у системних програмах для інтерактивного спілкування з користувачем (наприклад, під час інсталяції ПЗ). Головна відмінність майстрів від ЕС — відсутність бази знань; всі дії жорстко запрограмовані. Це просто набір форм для заповнення користувачем.
Інші подібні програми — пошукові або довідкові системи. За запитом користувача вони надають найбільш відповідні (релевантні) розділи бази статей, альтернативність вибору яких визначає суб'єкт формування запиту.
Тож ми бачимо обмеження методології експертних систем за наявності корисних якостей у коректних межах застосування.
Едвард Фейгенбаум вважав, що ключ до розуміння ранніх експертних систем в тому, що «інтелектуальні системи отримують свою владу від знань, якими вони володіють, а не від конкретних формалізмів і схем виведення, які вони використовують.»[3] Хоча, озираючись назад, це здається досить простим уявленням, це був значний крок вперед на той час. До цього моменту дослідження було зосереджено на спробах розроблення розв'язань проблем найбільш загального призначення, таких як описані Ньюелом і Саймоном.[4]
Експертні системи були введені в рамках Стенфордського проекту з евристичного програмування на чолі з Фейгенбаумом, якого іноді називають «батьком експертних систем». Стенфордські дослідники намагалися визначити галузі, в яких досвід був би високо оцінений і комплексний, такі як діагностика інфекційних захворювань (Mycin) та ідентифікація невідомих органічних молекул (Dendral). Разом з Фейгенбаумом першими зробили свій внесок Едвард Шортліф[en], Брюс Б'юкенен і Рендалл Девіс. Експертні системи були одними з перших по-справжньому успішних форм програмного забезпечення для штучного інтелекту.[5][6][7][8]
Дослідження експертних систем набуло також активного розвитку у Франції. У США в центрі уваги здебільшого були системи, засновані на правилах, насамперед системи, закодовані на середовищах програмування LISP, а потім на експертних оболонках, розроблених такими виробниками, як IntelliCorp[en]. У Франції дослідження зосереджувалися більше на системах, розроблених в Prolog. Перевагою експертних оболонок системи було те, що вони були дещо легші для використання не-програмістам. Перевага Prolog-середовищ полягала в тому, що вони не були зосереджені тільки на правилах ЯКЩО — ТО. Prolog-середовища забезпечували значно повнішу реалізацію логіки першого порядку.[9][10]
У 1980-х роках експертні системи набули поширення. Університети пропонували курси експертних систем, і дві третини компаній списку Fortune 1000 застосовували технології в повсякденній діяльності.[11] Міжнародний інтерес був викликаний проектом розроблення комп'ютерів п'ятого покоління в Японії і фінансуванням наукових досліджень в Європі.
У 1981 році була представлена перша IBM PC з операційною системою MS-DOS. Дисбаланс між відносно потужними чипами в дуже доступній ПК порівняно з набагато вищою ціною обчислювальної потужності в ЕОМ, які домінували в корпоративному ІТ-світі того часу, створив абсолютно новий тип архітектури корпоративних обчислень, відомої як клієнт-серверна модель.[12] Розрахунки й обґрунтування можуть бути виконані як частка від вартості мейнфреймів, що використовуються ПК. Ця модель дала змогу бізнес-одиницям обійти корпоративні ІТ-відділи та безпосередньо будувати свої власні додатки. В результаті клієнт-сервер мав величезний вплив на ринок експертних систем. Експертні системи проникли в більшу частину світу бізнесу, вимагаючи нових навичок, яких багато ІТ-відділів не мали і не були готовими розвиватися. Вони були природним для нових ПК на основі оболонок, що обіцяли поставляти розроблення додатків в руки кінцевих користувачів та експертів. До цього моменту основним середовищем розроблення для експертних систем були Lisp — машини від Xerox, Symbolics[en] і Texas Instruments. Із зростанням кількості виробників ПК і обчислювальних клієнт-серверів, таких як Intellicorp і Inference Corporation, вони змінили свої пріоритети розвитку ПК на основі інструментів. До цих нових постачальників належать Aion Corporation, Neuron Data[en], Exsys і багато інших.[13][14]
У 1990-х роках і надалі термін «експертні системи» та ідея автономної системи ШІ в основному виключені з лексикону ІТ. Є два тлумачення цього. Одним з них є те, що «експертні системи не є вдалими»: ІТ світ пішов далі, бо експертні системи не могли обіцяти ширших можливостей, падіння експертних систем була настільки вражаючим, що навіть легенда ШІ Ріші Шарма зізнався у своєму обмані щодо проекту з експертними системами, тому що він не вважав проект вартісним.[15][16] Інша точка зору, що експертні системи були просто жертвами свого успіху. Багато хто з провідних великих постачальників бізнес-додатків, таких як SAP AG, Siebel[en], Oracle Corporation, інтегрували можливості експертних систем до їхнього набору продуктів як спосіб визначення бізнес-логіки. Зазвичай ці системи правил не просто використовуються експертами для опису правил, а й підходять для будь-якого типу складної, непостійної і критичної бізнес-логіки. Вони часто йдуть поруч з автоматизацією та інтеграцією середовищ бізнес-процесів.[17][18][19]
Експертна система відрізняється від інших прикладних програм наявністю таких ознак:[1]
- Моделює механізм мислення людини під час розв'язання задач в цій предметній галузі. Це істотно відрізняє експертні системи від систем математичного моделювання або комп'ютерної анімації. Однак, ЕС не повинні повністю відтворювати психологічну модель фахівця в цій області, а повинні лише відтворювати за допомогою комп'ютера деякі методики розв'язання проблем, що використовуються експертом.
- Система, окрім виконання обчислювальних операцій, формує певні висновки, базуючись на тих знаннях, якими вона володіє. Знання в системі, зазвичай, описані деякою спеціалізованою мовою і зберігаються окремо від програмного коду, що формує висновки. Компонент збереження знань прийнято називати базою знань.
- Під час розв'язання задач основну роль відіграють евристичні і наближені методи, що, на відміну від алгоритмічних, не завжди гарантують успіх. Евристика, в принципі, є правилом впливу (англ. rule of thumb), що в машинному вигляді відображає деяке знання, набуте людиною разом із накопичуванням практичного досвіду розв'язання аналогічних проблем. Такі методи є наближеними у тому сенсі, що, по-перше, вони не потребують вичерпної вихідної інформації, а, по-друге, існує певний ступінь впевненості (або невпевненості) в тому, що запропонований розв'язок є правильним.
Експертні системи відрізняються і від інших видів програм із галузі штучного інтелекту.
- Експертні системи застосовуються для предметів реального світу, операції з якими зазвичай вимагають великого досвіду, накопиченого людиною. Експертні системи мають яскраво виражену практичну направленість для застосування в науковій або комерційній сфері.
- Однією з основних характеристик експертної системи є її швидкодія, тобто швидкість отримання результату та його достовірність (надійність). Дослідницькі програми штучного інтелекту можуть бути і не дуже швидкими, натомість, експертна система повинна за прийнятний час знайти розв'язок, що був би не гіршим за розв'язок, що може запропонувати фахівець в цій предметній області.
- Експертна система повинна мати можливість пояснити, чому запропоновано саме цей розв'язок і довести його обґрунтованість. Користувач повинен отримати всю інформацію, необхідну йому для того, аби переконатись в обґрунтованості запропонованого розв'язку.
Наприклад, можна навести такі відомі експертні системи:
- CLIPS — мова програмування, використовується для створення експертних систем
- Dendral — аналіз даних мас-спектрометрії
- Dipmeter Advisor — аналіз даних, отриманих під час пошуку нафти
- Jess — від англ. Java Expert System Shell, оболонка експертних систем на Java. Рушій CLIPS реалізований на мові програмування Java, використовується для створення експертних систем
- MQL 4 — MetaQuotes Language 4, спеціалізована мова програмування для опису фінансової стратегії
- Mycin — діагностика інфекційних хвороб крові та рекомендація антибіотиків
- Prolog — мова програмування, використовується для створення експертних систем
- R1 / XCON(експертна система) — обробка замовлень
- SHINE Real-time Expert System — від англ. Spacecraft Health INference Engine, рушій для отримання даних про стан і безпеку космічного корабля
- STD Wizard — експертна система для рекомендації та вибору медичних аналізів (діагностики)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Expert_system_structure.png/350px-Expert_system_structure.png)
Типові експертні системи можуть мати таку структуру:[2][21]
- База даних (не обов'язкова)
- База знань
- Машина виведення (розв'язувач)
- Підсистема пояснень
- Інтерфейс користувача
База знань складається з правил аналізу інформації від користувача з конкретної проблеми. ЕС аналізує ситуацію і, залежно від спрямованості ЕС, дає рекомендації з розв'язання проблеми.
ЕС створюється за допомогою двох груп людей:
- інженерів, які розробляють ядро ЕС і, знаючи організацію бази знань, заповнюють її за допомогою:
- експертів (експерта) за фахом.
Представлення знань — одна із функцій експертної системи. Теорія представлення знань — окрема галузь досліджень, тісно пов'язана з філософією формалізму та когнітивною психологією. Предмет дослідження в цій галузі — методи асоціативного збереження інформації, подібні до тих, що існують в мозку людини, тобто методи представлення знань.
У галузі штучного інтелекту проводиться робота зі створення мов представлення знань, тобто, комп'ютерних мов, орієнтованих на організацію описів об'єктів та ідей. Основними критеріями для представлення знань є логічна адекватність, евристична потужність та природність нотації.
- Класифікація ЕС за зв'язком з реальним часом
- Класифікація ЕС за типом проблемного середовища
- Класифікація за типом ЕОМ
- Класифікація за ступенем інтеграції з іншими програмами
- Класифікація ЕС за завданням, що вирішується
- Етап ідентифікації проблем — визначаються завдання, які підлягають вирішенню, виявляються цілі розробки, визначаються експерти і типи користувачів.
- Етап витягання знань — проводиться змістовний аналіз проблемної області, виявляються поняття і їх взаємозв'язки, визначаються методи розв'язання задач.
- Етап структуризації знань — обираються ІС і визначаються способи подання всіх видів знань, формалізуються основні поняття, визначаються способи інтерпретації знань, моделюється робота системи, оцінюється адекватність цілям системи зафіксованих понять, методів рішень, засобів представлення й маніпулювання знаннями.
- Етап формалізації — здійснюється наповнення експертом бази знань. У зв'язку з тим, що основою ЕС є знання, цей етап є найбільш важливим і найбільш трудомістким етапом розроблення ЕС. Процес формування знань поділяють на отримання знань від експерта, організацію знань, що забезпечує ефективну роботу системи, і представлення знань у вигляді, зрозумілому ЕС. Процес отримання знань здійснюється інженером зі знань на основі аналізування діяльності експерта з вирішення реальних завдань.
- Реалізація ЕС — відбувається створення одного або декількох прототипів ЕС котрі вирішують поставлені задачі.
- Етап тестування — проводиться оцінка обраного способу представлення знань в ЕС в цілому.
Експертні системи відзначаються певними перевагами над людьми-експертами при використанні. Зокрема, експертна система:
- переважає можливості людини при вирішенні надзвичайно громіздких проблем;
- не має упереджених думок, тоді як експерт може користуватися побічними знаннями і легко піддається впливу зовнішніх факторів;
- не робить поспішних висновків, нехтуючи певними етапами знайдення рішення;
- забезпечує діалоговий режим роботи;
- дозволяє роботу з інформацією, що містить символьні змінні;
- забезпечує коректну роботу з інформацією, яка містить помилки, за рахунок використання імовірнісних методів досліджень;
- дозволяє проводити одночасну обробку альтернативних версій;
- за вимогою пояснює хід кроків реалізації програми;
- забезпечує можливість обґрунтування рішення та відтворення шляху його прийняття.
Але навіть найкращі з існуючих експертних систем мають певні обмеження у порівнянні з людиною-експертом, які зводяться до таких:
- Більшість експертних систем не цілком придатні для широкого використання. Якщо користувач не має деякого досвіду роботи з цими системами, у нього можуть виникнути серйозні труднощі. Багато експертних систем доступні лише тим експертам, які створювали їх бази знань. Тому потрібно паралельно розробляти відповідний користувацький інтерфейс, який би забезпечив кінцевому користувачу властивий йому режим роботи;
- «Навички» системи не завжди «зростають» після сеансу експертизи, навіть коли проявляються нові знання;
- Все ще залишається проблемою приведення знань, отриманих від експерта, до вигляду, який забезпечував би їх ефективне використання;
- Експертні системи, як правило, не можуть набувати якісно нових знань, не передбачених під час розроблення, і тим більше, не мають здорового глузду. Людина-експерт під час розв'язання задачі зазвичай звертається до своєї інтуїції або здорового глузду, якщо відсутні формальні методи рішення або аналоги розв'язування цієї проблеми.
[22] [23] [24] [25] [26] [27] [28] [29]
Експертні системи досить давно використовуються у діагностиці, зокрема у медичній та автомобільній.
![](http://upload.wikimedia.org/wikipedia/uk/thumb/f/f2/Sun_smp_4000.jpg/220px-Sun_smp_4000.jpg)
Також експертні системи можна використовувати в прогнозуванні, плануванні, контролюванні, управлінні та навчанні. Наприклад, експертні системи вже застосовуються в банківській справі в таких напрямках:
- програмах аналізу інвестиційних проектів;
- програмах аналізу стану валютного, грошового та фондового ринку;
- програмах аналізу кредитоспроможності чи фінансового стану підприємств і банків.
Процес створення експертних систем значно змінився за останні роки. Завдяки появі спеціальних інструментальних засобів побудови експертних систем значно скоротились терміни та зменшилась трудомісткість їх розроблення. Інструментальні засоби, що використовуються під час створення експертних систем, можна розбити на три класи:
- мови програмування, орієнтовані на створення експертних систем (Лісп, Пролог, Smalltalk, FRL, InterLisp та такі загальновживані, як: Сі, Асемблер, Паскаль, Фортран, Бейсик);
- середовища програмування (Delphi, Java);
- порожні експертні системи (наприклад, оболонка EXSYS Professional 5.0 for Windows).
На американському і західноєвропейських ринках систем штучного інтелекту фірми-розробники пропонують організаціям, які бажають створити експертну систему, сотні інструментальних засобів для їх побудови. Нараховуються тисячі розроблених вузькоспеціалізованих експертних систем. Це свідчить про те, що експертні системи складають дуже вагому частину програмних засобів.
Для програмістів-аматорів та для широкого загалу початківців, для яких доступна мова програмування BASIC, суть, структура, принципи функціювання і методологія побудови найпростіших експертних систем детально описані у книзі-практичному посібнику Кріса Нейлора «Как построить свою экспертную систему».[30]
- ↑ а б П. Джексон, «Введение в экспертные системы», Вильямс, 2001. ISBN 5-8459-0150-2, ISBN 0-201-87686-8
- ↑ а б Carol E. Brown та Daniel E. O'Leary, INTRODUCTION TO ARTIFICIAL INTELLIGENCE AND EXPERT SYSTEMS [Архівовано 28 серпня 2008 у Wayback Machine.], переглянуто 7 лютого 2008
- ↑ Edward Feigenbaum, 1977. Paraphrased by Hayes-Roth, et al.
- ↑ Hayes-Roth, Frederick; Waterman, Donald; Lenat, Douglas (1983). Building Expert Systems. Addison-Wesley. с. 6–7. ISBN 0-201-10686-8.
- ↑ Luger та Stubblefield, 2004, с. 227—331.
- ↑ Nilsson, 1998, chpt. 17.4.
- ↑ McCorduck, 2004, с. 327—335, 434—435.
- ↑ Crevier, 1993, с. 145—62, 197−203.
- ↑ George F. Luger and William A. Stubblefield, Benjamin/Cummings Publishers, Rule Based Expert System Shell: example of code using the Prolog rule based expert system shell
- ↑ A. MICHIELS [Архівовано 2 квітня 2012 у Wayback Machine.], Université de Liège, Belgique: "PROLOG, the first declarative language
- ↑ Durkin, J. Expert Systems: Catalog of Applications. Intelligent Computer Systems, Inc., Akron, OH, 1993.
- ↑ Orfali, Robert (1996). The Essential Client/Server Survival Guide. New York: Wiley Computer Publishing. с. 1–10. ISBN 0-471-15325-7.
- ↑ Hurwitz, Judith (2011). Smart or Lucky: How Technology Leaders Turn Chance into Success. John Wiley & Son. с. 164. ISBN 1118033787. Процитовано 29 листопада 2013.
- ↑ Dunn, Robert J. (30 вересня 1985). Expandable Expertise for Everyday Users. InfoWorld. 7 (39): 30. Архів оригіналу за 19 березня 2015. Процитовано 13 березня 2011.
- ↑ AI Expert Newsletter: W is for Winter. Архів оригіналу за 9 листопада 2013. Процитовано 9 грудня 2015.
- ↑ Leith P., «The rise and fall of the legal expert system», in European Journal of Law and Technology, Vol 1, Issue 1, 2010. Архів оригіналу за 4 березня 2016. Процитовано 9 грудня 2015.
- ↑ SAP News Desk. SAP News Desk IntelliCorp Announces Participation in SAP EcoHub. http://laszlo.sys-con.com. LaszloTrack. Архів оригіналу за 3 грудня 2013. Процитовано 29 листопада 2013.
- ↑ Pegasystems. Smart BPM Requires Smart Business Rules. http://www.pega.com. Архів оригіналу за 9 листопада 2013. Процитовано 29 листопада 2013.
- ↑ Zhao, Kai; Ying, Shi; Zhang, Linlin; Hu, Luokai (9–10 Oct 2010). Achieving business process and business rules integration using SPL. Future Information Technology and Management Engineering (FITME). 2: 329—332. doi:10.1109/fitme.2010.5656297. ISBN 978-1-4244-9087-5. Архів оригіналу за 3 грудня 2013. Процитовано 29 листопада 2013.
- ↑ Алгоритмы искусственного интеллекта на языке PROLOG, 3-е издание. : Пер. с англ. — М. : Издательский дом «Вильяме», 200-1. — 640 с. :ил. — Парал. тит. англ. ISBN 5-8459-0664-4
- ↑ Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. Учебник. — СПб.: Питер, 2000.
- ↑ Автоматизированные информационные технологии в экономике. Под. ред. Г. А. Титоренко — М. Компьютер ЮНИТИ, 1998, — 336 с.
- ↑ Бердтис А. Структуры данных. — М.: Статистика, 1974, — 408 с.
- ↑ Бойко В. В., Савинков В. М. Проектирование баз данных информационных систем. -М.: Финансы и статистика, 1992.
- ↑ Бойков. В., Савинков В. М. Проектирование баз данных информационных систем. М. Мир 1997.
- ↑ Боэм Б. У. Инженерное программирование для проектирования программного обеспечения. -М.: Радио і связь, 1985, −512с.
- ↑ Вершинин О. В. Компьютер для менеджера. — М.: Высшая школа, 1990.
- ↑ Вычислительные машины, системы и сети/ Под ред. А. П. Пятибратова. — М.: Финансы и статистика, 1991.
- ↑ Герасименко В. А. Защита информации в автоматизированных системах обработки данных. — В 2-х кн. — М.: Энергоатомиздат, 1994.
- ↑ Нейлор К. Как построить свою экспертную систему = Chris Nailor. Build Your Own Expert System. John Wilei & Sons Ltd. Chichester, 1987. — 2-ге видння. — М : Энергоатомиздат, 1991. — 286 p. — 130000 прим. — ISBN 5-283-02502-0 (рос.), ISBN 1-84058-071-5 (англ.), ISBN 0-470-20946-1 (англ.).
- База знань
- Штучний інтелект
- Штучна нейронна мережа
- CLIPS
- Інтелектуальна інформаційна система
- Методи представлення знань
- ЕКСПЕРТНА СИСТЕМА [Архівовано 10 березня 2016 у Wayback Machine.] //Фармацевтична енциклопедія
- Експертна система // Універсальний словник-енциклопедія. — 4-те вид. — К. : Тека, 2006.
- Курс лекцій «Організація інтелектуальних обчислень»
- Штучний інтелект, каталог посилань Open Directory Project
![]() | Це незавершена стаття про інформаційні технології. Ви можете допомогти проєкту, виправивши або дописавши її. |