Експе́ртна систе́ма — це методологія адаптації алгоритму успішних рішень однієї сфери науково-практичної діяльності в іншу. З поширенням комп'ютерних технологій — це тотожна (подібна, заснована на оптимізуючому алгоритмі чи евристиках) інтелектуальна комп'ютерна програма, що містить знання й аналітичні здібності одного чи кількох експертів в деякій галузі застосування і здатна робити логічні висновки на основі цих знань, тим самим забезпечуючи вирішення специфічних завдань (консультування, навчання, діагностування, тестування, проєктування тощо) без участі експерта (фахівця в конкретній проблемній галузі). Визначається також як система, яка використовує базу знань для вирішення завдань (видачі рекомендацій) у певній предметній галузі. Цей клас програмного забезпечення спочатку розроблявся дослідниками штучного інтелекту в 1960-ті та 1970-ті та здобув комерційне застосування, починаючи з 1980-х. Часто термін система, заснована на знаннях, використовується як синонім експертної системи, однак можливості експертних систем ширші за можливості систем, заснованих на детермінованих (обмежених, реалізованих на поточний час) знаннях .
Однак єдиного визначення експертних систем не існуєCarol E. Brown та Daniel E. O'Leary, INTRODUCTION TO ARTIFICIAL INTELLIGENCE AND EXPERT SYSTEMS , переглянуто 7 лютого 2008. Натомість автори дають визначення залежно від застосування, структури таких систем. Ранні визначення експертних систем припускали застосування виведення нових знань на основі правил.
Подібні дії виконує (wizard). Зазвичай майстри застосовують у системних програмах для інтерактивного спілкування з користувачем (наприклад, під час інсталяції ПЗ). Головна відмінність майстрів від ЕС — відсутність бази знань; всі дії жорстко запрограмовані. Це просто набір форм для заповнення користувачем.
Інші подібні програми — пошукові або довідкові системи. За запитом користувача вони надають найбільш відповідні (релевантні) розділи бази статей, альтернативність вибору яких визначає суб'єкт формування запиту.
Тож ми бачимо обмеження методології експертних систем за наявності корисних якостей у коректних межах застосування.
Історія Едвард Фейгенбаум вважав, що ключ до розуміння ранніх експертних систем в тому, що «інтелектуальні системи отримують свою владу від знань, якими вони володіють, а не від конкретних формалізмів і схем виведення, які вони використовують.»Edward Feigenbaum, 1977. Paraphrased by Hayes-Roth, et al. Хоча, озираючись назад, це здається досить простим уявленням, це був значний крок вперед на той час. До цього моменту дослідження було зосереджено на спробах розроблення розв'язань проблем найбільш загального призначення, таких як описані Ньюелом і Саймоном.
Експертні системи були введені в рамках Стенфордського проєкту з евристичного програмування на чолі з Фейгенбаумом, якого іноді називають «батьком експертних систем». Стенфордські дослідники намагалися визначити галузі, в яких досвід був би високо оцінений і комплексний, такі як діагностика інфекційних захворювань (Mycin) та ідентифікація невідомих органічних молекул (Dendral). Разом з Фейгенбаумом першими зробили свій внесок , Брюс Б'юкенен і Рендалл Девіс. Експертні системи були одними з перших по-справжньому успішних форм програмного забезпечення для штучного інтелекту.
Дослідження експертних систем набуло також активного розвитку у Франції. У США в центрі уваги здебільшого були системи, засновані на правилах, насамперед системи, закодовані на середовищах програмування LISP, а потім на експертних оболонках, розроблених такими виробниками, як . У Франції дослідження зосереджувалися більше на системах, розроблених в Prolog. Перевагою експертних оболонок системи було те, що вони були дещо легші для використання не-програмістам. Перевага Prolog-середовищ полягала в тому, що вони не були зосереджені тільки на правилах ЯКЩО — ТО. Prolog-середовища забезпечували значно повнішу реалізацію логіки першого порядку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 shellA. MICHIELS , Université de Liège, Belgique: "PROLOG, the first declarative language.
У 1980-х роках експертні системи набули поширення. Університети пропонували курси експертних систем, і дві третини компаній списку Fortune 1000 застосовували технології в повсякденній діяльностіDurkin, J. Expert Systems: Catalog of Applications. Intelligent Computer Systems, Inc., Akron, OH, 1993.. Міжнародний інтерес був викликаний проєктом розроблення комп'ютерів п'ятого покоління в Японії і фінансуванням наукових досліджень в Європі.
У 1981 році була представлена перша IBM PC з операційною системою MS-DOS. Дисбаланс між відносно потужними чипами в дуже доступній ПК порівняно з набагато вищою ціною обчислювальної потужності в ЕОМ, які домінували в корпоративному ІТ-світі того часу, створив абсолютно новий тип архітектури корпоративних обчислень, відомої як клієнт-серверна модель. Розрахунки й обґрунтування можуть бути виконані як частка від вартості мейнфреймів, що використовуються ПК. Ця модель дала змогу бізнес-одиницям обійти корпоративні ІТ-відділи та безпосередньо будувати свої власні додатки. В результаті клієнт-сервер мав величезний вплив на ринок експертних систем. Експертні системи проникли в більшу частину світу бізнесу, вимагаючи нових навичок, яких багато ІТ-відділів не мали і не були готовими розвиватися. Вони були природним для нових ПК на основі оболонок, що обіцяли поставляти розроблення додатків в руки кінцевих користувачів та експертів. До цього моменту основним середовищем розроблення для експертних систем були Lisp — машини від Xerox, і Texas Instruments. Із зростанням кількості виробників ПК і обчислювальних клієнт-серверів, таких як Intellicorp і Inference Corporation, вони змінили свої пріоритети розвитку ПК на основі інструментів. До цих нових постачальників належать Aion Corporation, , Exsys і багато інших.
У 1990-х роках і надалі термін «експертні системи» та ідея автономної системи ШІ в основному виключені з лексикону ІТ. Є два тлумачення цього. Одним з них є те, що «експертні системи не є вдалими»: ІТ світ пішов далі, бо експертні системи не могли обіцяти ширших можливостей, падіння експертних систем була настільки вражаючим, що навіть легенда ШІ Ріші Шарма зізнався у своєму обмані щодо проєкту з експертними системами, тому що він не вважав проєкт вартісним. Інша точка зору, що експертні системи були просто жертвами свого успіху. Багато хто з провідних великих постачальників бізнес-додатків, таких як SAP AG, , Oracle Corporation, інтегрували можливості експертних систем до їхнього набору продуктів як спосіб визначення бізнес-логіки. Зазвичай ці системи правил не просто використовуються експертами для опису правил, а й підходять для будь-якого типу складної, непостійної і критичної бізнес-логіки. Вони часто йдуть поруч з автоматизацією та інтеграцією середовищ бізнес-процесів.
Характеристики ЕС
Експертна система відрізняється від інших прикладних програм наявністю таких ознак:П. Джексон, «Введение в экспертные системы», Вильямс, 2001. ISBN 5-8459-0150-2, ISBN 0-201-87686-8 Моделює механізм мислення людини під час розв'язання задач в цій предметній галузі. Це істотно відрізняє експертні системи від систем математичного моделювання або комп'ютерної анімації. Однак, ЕС не повинні повністю відтворювати психологічну модель фахівця в цій області, а повинні лише відтворювати за допомогою комп'ютера деякі методики розв'язання проблем, що використовуються експертом. Система, окрім виконання обчислювальних операцій, формує певні висновки, базуючись на тих знаннях, якими вона володіє. Знання в системі, зазвичай, описані деякою спеціалізованою мовою і зберігаються окремо від програмного коду, що формує висновки. Компонент збереження знань прийнято називати базою знань. Під час розв'язання задач основну роль відіграють евристичні і наближені методи, що, на відміну від алгоритмічних, не завжди гарантують успіх. Евристика, в принципі, є правилом впливу (), що в машинному вигляді відображає деяке знання, набуте людиною разом із накопичуванням практичного досвіду розв'язання аналогічних проблем. Такі методи є наближеними у тому сенсі, що, по-перше, вони не потребують вичерпної вихідної інформації, а, по-друге, існує певний ступінь впевненості (або невпевненості) в тому, що запропонований розв'язок є правильним.
Експертні системи відрізняються і від інших видів програм із галузі штучного інтелекту. Експертні системи застосовуються для предметів реального світу, операції з якими зазвичай вимагають великого досвіду, накопиченого людиною. Експертні системи мають яскраво виражену практичну направленість для застосування в науковій або комерційній сфері. Однією з основних характеристик експертної системи є її швидкодія, тобто швидкість отримання результату та його достовірність (надійність). Дослідницькі програми штучного інтелекту можуть бути і не дуже швидкими, натомість, експертна система повинна за прийнятний час знайти розв'язок, що був би не гіршим за розв'язок, що може запропонувати фахівець в цій предметній області. Експертна система повинна мати можливість пояснити, чому запропоновано саме цей розв'язок і довести його обґрунтованість. Користувач повинен отримати всю інформацію, необхідну йому для того, аби переконатись в обґрунтованості запропонованого розв'язку.
Відомі експертні системи
Наприклад, можна навести такі відомі експертні системи: CLIPS — мова програмування, використовується для створення експертних систем Dendral — аналіз даних мас-спектрометрії Dipmeter Advisor — аналіз даних, отриманих під час пошуку нафти Jess — від , оболонка експертних систем на Java. Рушій CLIPS реалізований на мові програмування Java, використовується для створення експертних систем MQL 4 — MetaQuotes Language 4, спеціалізована мова програмування для опису фінансової стратегії Mycin — діагностика інфекційних хвороб крові та рекомендація антибіотиків Prolog — мова програмування, використовується для створення експертних систем R1 / XCON(експертна система) — обробка замовлень SHINE Real-time Expert System — від , рушій для отримання даних про стан і безпеку космічного корабля STD Wizard — експертна система для рекомендації та вибору медичних аналізів (діагностики)
Структура ЕС
Типові експертні системи можуть мати таку структуру:Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. Учебник. — СПб.: Питер, 2000. База даних (не обов'язкова) База знань Машина виведення (розв'язувач) Підсистема пояснень Інтерфейс користувача
База знань складається з правил аналізу інформації від користувача з конкретної проблеми. ЕС аналізує ситуацію і, залежно від спрямованості ЕС, дає рекомендації з розв'язання проблеми.
ЕС створюється за допомогою двох груп людей: інженерів, які розробляють ядро ЕС і, знаючи організацію бази знань, заповнюють її за допомогою: експертів (експерта) за фахом.
Представлення знань
Представлення знань — одна із функцій експертної системи. Теорія представлення знань — окрема галузь досліджень, тісно пов'язана з філософією формалізму та когнітивною психологією. Предмет дослідження в цій галузі — методи асоціативного збереження інформації, подібні до тих, що існують в мозку людини, тобто методи представлення знань.
У галузі штучного інтелекту проводиться робота зі створення мов представлення знань, тобто, комп'ютерних мов, орієнтованих на організацію описів об'єктів та ідей. Основними критеріями для представлення знань є логічна адекватність, евристична потужність та природність нотації.
Векторне представлення структури знань визначається наявністю двох типів зв'язків: вертикальних (ієрархічних) "Візит" та горизонтальних (упорядкованих) "Транзит". Структурна одиниця реалізує функцію подання знань. Вважається, що поняття знань можна використовувати як рівень структурності простору елементів (наскільки упорядкованим є процес, явище, колектив тощо).
Класифікація ЕС