- •2. Формальні методи у системах штучного інтелекту 21
- •3. Зображення знань. Мова програмування Пролог 55
- •4. Задачі класифікації, експертні системи 99
- •5. Інтелектуальні пакети 110
- •1.1.Основні поняття та історія розвитку штучного інтелекту
- •1.2. Галузі застосування штучного інтелекту
- •Ведення ігор
- •Автоматичні міркування і доведення теорем
- •Експертні системи
- •Розуміння природних мов та семантичне моделювання
- •Моделювання роботи людського інтелекту
- •Планування та робототехніка
- •Мови та середовища ші
- •Машинне навчання
- •Альтернативні уявлення: нейронні мережі та генетичні алгоритми
- •Штучний інтелект і філософія
- •Контрольні питання
- •2. Формальні методи у системах штучного інтелекту
- •2.1. Основні поняття
- •2.2. Основні закони правильного мислення
- •2.3. Класифікація міркувань
- •Дедуктивні міркування. Основні ідеї та складні міркування
- •Безпосередні розумові висновки
- •2.4.Опосередковані висновки
- •Прості силогізми, складні розумові висновки
- •2.5. Індуктивні міркування та висновки за аналогією
- •2.6 Числення висловлювань
- •2.7. Нечіткі множини та нечітка логіка
- •2.8. Предикати. Формальні теорії
- •2.9. Процедура резолюції
- •2.10. Формальні граматики. Теорія алгоритмів
- •2.11. Продукції як алгоритмічна система. Ігри та рішення
- •2.12. Задачі та методи дискретної оптимізації
- •Динамічне програмування
- •Метод віток та меж
- •2.13. Багатокритеріальні задачі
- •2.14. Контрольні запитання
- •3. Зображення знань. Мова програмування Пролог
- •3.1. Ціль та методи зображення знань
- •3.2. Декларативне та процедурне зображення знань. Семантичні мережі
- •3.3. Фрейми та продукційні системи
- •3.4. Програмування мовою Пролог
- •Вступ до прологу. Загальна характеристика та основні поняття
- •Структура програми, домени, предикати та твердження
- •3.5. Управління обчисленнями у мові Пролог Зіставлення та повернення
- •Відтинання
- •Рекурсивні обчислення, обчислення факторіалу, знаходження квадратного кореня методом ітерацій
- •Списки у мові Пролог, бінарні дерева
- •3.6. Застосування Прологу, практична робота з використанням мови Пролог Застосування Прологу у програмуванні, системах ші, базах даних, у математиці
- •Практична робота на мові Пролог, основні інструменти та методика роботи
- •3.7. Контрольні запитання
- •4. Задачі класифікації, експертні системи
- •4.1. Особливості експертних систем, приклади та їх розробка
- •4.2. Розробка ес, мови та оболонки, набуття знань та приклад сценарію
- •4.3. Контрольні питання
- •5. Інтелектуальні пакети
- •5.1. Обчислювальні моделі, задачі та синтез програм
- •5.2. Загальна характеристика та меню системи тк Solver. Зображення обчислювальної моделі
- •5.3.Мова специфікації обчислювальних задач. Обчислювальна модель в tks
- •5.4. Складання обчислювальних моделей і задач, практична робота в tks
- •5.5. Завдання для самостійної роботи
- •5.6. Контрольні запитання
- •Додатки Додаток 1 Операції над нечіткими числами на основі принципу узагальнення. Використання в теорії штучного інтелекту
- •Література
1.1.Основні поняття та історія розвитку штучного інтелекту 3
1.2. Галузі застосування штучного інтелекту 9
Ведення ігор 9
У більшості ігор застосовують чітко визначений набір правил: це дає змогу легко будувати простір пошуку і позбавляє дослідника від неясності і плутанини, притаманних менш структурованим проблемам. Позиції фігур легко зображуються в комп’ютерній програмі, вони не потребують створення складних формалізмів, необхідних для передавання семантичних тонкощів більш складних предметних галузей. Тестування ігрових програм не породжує ніяких фінансових чи етичних проблем. Пошук у просторі станів – це принцип, що лежить в основі більшості досліджень у галузі ведення ігор. 9
Ігри можуть породжувати досить великі простори станів. Для пошуку в них потрібні потужні методики, котрі визначають, які альтернативи слід розглядати. Такі методики називаються евристиками і застосовуються в багатьох дослідженнях ШІ. Евристика – це корисна стратегія, проте здатна упустити правильний розв’язок. Прикладом евристики може бути рекомендація перевірити, чи включено прилад у розетку, перш ніж робити припущення про його поломку чи виконувати рокіровку в шахматній грі, щоб спробувати вберегти короля від шаху. Більша частина того, що називається розумністю, спирається на евристики, які люди використовують, розв’язуючи задачі. Ігри є надійною основою для вивчення евристичного пошуку. Програми ведення ігор ставлять перед дослідниками нові питання, включно варіант, коли ходи суперника неможливо детерміновано передбачити. Наявність суперника ускладнює структуру програми, додає до неї елемент непередбачуваності і потребу приділяти увагу психологічним і тактичним факторам ігрової стратегії. 9
Автоматичні міркування і доведення теорем 10
Автоматичне доведення теорем – одна з найстаріших частин ШІ, корені якої йдуть до системи Logic Theorist (логічний теоретик) Ньюела і Саймона та General Problem Solver (універсальний розв’язувач задач) і далі до намагань Рассела та Уайтхеда побудувати всю математику на основі формальних виведень теорем з початкових аксіом. Цей напрямок має великі здобутки. Завдяки дослідженням у галузі доведення теорем було формалізовано алгоритми пошуку і розроблено мови формальних зображень, такі як числення предикатів і логічна мова програмування PROLOG. 10
Привабливість автоматичного доведення теорем базується на строгості і загальності логіки. У формальній системі логіка спонукає до автоматизації. Різноманітні проблеми можна спробувати розв’язати, преподавши опис задачі та істотну інформацію, що її стосується, у вигляді логічних аксіом і розглядаючи різні випадки задачі як теореми, які необхідно довести. Цей принцип лежить в основі автоматичного доведення теорем і систем математичних обґрунтувань. 10
Привабливість міркувань, що базуються на формальній логіці, дедалі зростає. Такі проблеми, як проектування та перевірка логічних ланцюгів, коректності комп’ютерних програм та управління складними системами, є актуальними. Окрім того, дослідникам автоматичного доведення вдалося розробити потужні евристики, які базуються на оцінюванні синтаксичної форми логічного виразу. Вони знижують складність простору пошуку. Однією з причин зростання інтересу до автоматичного доведення теорем є розуміння того, що системі не обов’язково розв’язувати найскладніші проблеми без участі людини. Багато сучасних програм доведень працюють, як розумні помічники, надаючи людині можливість класифікувати задачі на підзадачі, продумувати евристики для з’ясування можливості обґрунтування. Далі програма для автоматичного доведення розв’язує простіші задачі доведення лем, допомагає перевіряти менш істотні речення, доповнює формальні аспекти доведення, окресленого людиною. 10
Експертні системи 11
Розуміння природних мов та семантичне моделювання 13
Моделювання роботи людського інтелекту 14
Мови та середовища ШІ 16
Важливим побічним продуктом досліджень ШІ є досягнення у сфері мов програмування у середовищах розробки програмного забезпечення. З багатьох причин, включаючи розміри багатьох прикладних проблем ШІ, важливість методології „створення прототипів”, тенденцію алгоритмів пошуків породжувати надмірно великі простори та складнощі у передбаченні поведінки евристичних програм, програмістам ШІ довелося розробляти потужну систему методологій програмування та каркаси експертних систем. Високорівневі мови (LISP, PROLOG), які забезпечують модульну розробку, допомагають управитися з розмірами та складністю програм. Пакети засобів трасування дають змогу програмістам реконструювати виконання складного алгоритму і розібратися у складних структурах евристичного перебору. Без таких інструментів та методик навряд чи вдалося побудувати багато відомих систем ШІ. Інші, такі як об’єктно-орієнтоване програмування, мають значний теоретичний і практичний інтерес. Нині багато алгоритмів ШІ реалізуються на традиційних для обчислювальних мовах, наприклад С++, Java. 16
Машинне навчання 16
Альтернативні уявлення: нейронні мережі та генетичні алгоритми 17
Штучний інтелект і філософія 19
Контрольні питання 20
2. Формальні методи у системах штучного інтелекту 21
2.1. Основні поняття 21
2.2. Основні закони правильного мислення 25
2.3. Класифікація міркувань 26
Дедуктивні міркування. Основні ідеї та складні міркування 27
Безпосередні розумові висновки 28
2.4.Опосередковані висновки 30
Прості силогізми, складні розумові висновки 30
2.5. Індуктивні міркування та висновки за аналогією 32
2.6 Числення висловлювань 34
2.7. Нечіткі множини та нечітка логіка 36
2.8. Предикати. Формальні теорії 38
2.9. Процедура резолюції 40
2.10. Формальні граматики. Теорія алгоритмів 41
2.11. Продукції як алгоритмічна система. Ігри та рішення 43
2.12. Задачі та методи дискретної оптимізації 46
Динамічне програмування 46
Метод віток та меж 49
2.13. Багатокритеріальні задачі 52
2.14. Контрольні запитання 53
3. Зображення знань. Мова програмування Пролог 55
3.1. Ціль та методи зображення знань 55
3.2. Декларативне та процедурне зображення знань. Семантичні мережі 56
3.3. Фрейми та продукційні системи 60
3.4. Програмування мовою Пролог 65
Вступ до прологу. Загальна характеристика та основні поняття 66
Структура програми, домени, предикати та твердження 68
3.5. Управління обчисленнями у мові Пролог 76
Зіставлення та повернення 76
Відтинання 79
Рекурсивні обчислення, обчислення факторіалу, знаходження квадратного кореня методом ітерацій 83
Списки у мові Пролог, бінарні дерева 86
3.6. Застосування Прологу, практична робота з використанням мови Пролог 89
Застосування Прологу у програмуванні, системах ШІ, базах даних, у математиці 89
Практична робота на мові Пролог, основні інструменти та методика роботи 92
3.7. Контрольні запитання 98
4. Задачі класифікації, експертні системи 99
4.1. Особливості експертних систем, приклади та їх розробка 101
4.2. Розробка ЕС, мови та оболонки, набуття знань та приклад сценарію 104
4.3. Контрольні питання 109
5. Інтелектуальні пакети 110
5.1. Обчислювальні моделі, задачі та синтез програм 110
5.2. Загальна характеристика та меню системи ТК Solver. Зображення обчислювальної моделі 111
5.3.Мова специфікації обчислювальних задач. Обчислювальна модель в TKS 116
5.4. Складання обчислювальних моделей і задач, практична робота в TKS 123
5.5. Завдання для самостійної роботи 124
5.6. Контрольні запитання 125
ДОДАТКИ 126
Додаток 1 Операції над нечіткими числами на основі принципу узагальнення. Використання в теорії штучного інтелекту 126
ЛІТЕРАТУРА 131
1. Штучний інтелект, його витоки і проблеми, історія розвитку та галузі застосування
1.1.Основні поняття та історія розвитку штучного інтелекту
Штучний інтелект (ШІ) – галузь комп’ютерної науки. Вона займається дослідженням і автоматизацією розумової поведінки. Це частина інформатики, яка базується на її теоретичних прикладних принципах, які зводяться до структур даних, що використовуються для зображення знань та розробки алгоритмів, їх застосування, а також до мов і методик програмування.
Проблема визначення штучного інтелекту зводиться до проблеми визначення інтелекту взагалі, зокрема до з’ясування, є він чимось єдиним, чи об’єднує набір розрізнених здібностей? Якою мірою інтелект можна створити , а якою він існує апріорі? Іншими проблемними питаннями є такі: що відбувається під час його створення; що являє собою інтуїція; що таке творчість;чи можна судити про наявність інтелекту тільки за спостережуваною поведінкою; як зображуються знання у нервових тканинах живих істот і як можна їх застосувати до проектування інтелектуальних пристроїв; що таке самоаналіз і як він пов’язаний з розумом; чи є необхідним створення інтелектуальної комп’ютерної програми на зразок людського розуму, чи достатнім є строго „інженерний” підхід; чи можна досягнути розумності застосуванням комп’ютерної техніки, чи сутність інтелекту потребує розмаїття почуттів і досвіду, притаманних лише біологічним істотам та ін.? Досі відповідей на ці питання не знайдено, але всі вони дають змогу поставити задачі і розробити методологію їх розв’язку, що становить основу сучасного ШІ як спектра проблем і методологій, що вивчаються розробниками його систем.
Ідея створення штучної подоби людського розуму для розв’язання складних задач та моделювання розумової здатності з точки зору філософського розуміння штучного інтелекту виникла кілька тисячоліть тому. Логічним початком її можна вважати вчення Аристотеля, який об’єднав інтуїтивне розуміння таїнства та розуміння ранньої грецької традиції з ґрунтовним аналізом і строгим мисленням, якому довелося стати стандартом для сучасної науки. Основні його ідеї з цієї галузі сформульовано в роботах „Фізика”, „Метафізика” та „Логіка”. Так, у „Логіці” розглядаються питання істинності міркувань на основі їх взаємозв’язку з іншими істинними твердженнями. Наприклад з висловів „Всі люди є смертними” та „Сократ – людина” можна зробити висновок, що „Сократ – смертний”. Цей силогізм, застосовується як дедуктивне правило modus ponens.
Формальна аксіоматизація логічних міркувань у повному обсязі міститься у працях Готлоба Фреге, Бертрана Рассела, Курта Геделя, Алана Тьюрінга, Альфреда Тарського та інших мислителів.
За часів Ренесансу на зміну містицизму як засобу пояснення всесвіту прийшов емпіризм. Головною подією у розвитку сучасних уявлень була революція, започаткована Коперніком, – заміна стародавньої геоцентричної моделі всесвіту, за якою уявлення про світ розглядалися як такі, що фундаментально відрізнялися від їх видимості. Відмінність між людським розумом і реальністю, що його оточує, між поняттями про речі і події та самими речами і подіями є принциповою для сучасної теорії інтелекту та його організації. У працях Галілея посилився розрив між світом та нашими ідеями про нього. Саме з них розвинулось сучасне уявлення про формування розуму. Самоаналіз став важливою мотивацією в різних галузях науки, людської діяльності, та систематизованим застосуванням наукового методу. XVII та XVIII століття відзначаються чималими здобутками в епістемології та суміжних галузях науки. Рене Декарт, який є центральною постаттю у розвитку сучасних концепцій мислення та розуму, зробив спробу знайти основу реальності виключно методами когнітивної інтроспекції. Відкидаючи інформацію, що надходить від органів відчуттів, як неблагонадійну, він піддав сумніву навіть існування фізичного світу, лишившись наодинці з реальністю думки. Для ШІ особливого значення набувають такі два висновки: розділенням розуму і фізичного світу встановлено, що побудова ідей про світ необов’язково відповідає предмету, що вивчається; оскільки розум і тіло, як з’ясувалося розділені, філософи оголосили за потрібне знайти спосіб поєднати їх, оскільки взаємодія між розумовим, res cognitas, та фізичним, res extensa, є неодмінною для людського існування.
У XVIII ст. Готфрід Вільгельм фон Лейбніц у роботі “Calculus Philosophicus” розробив першу систему формальної логіки і спорудив машину для автоматизації її обчислень. Л.Ейлер, аналізуючи задачі про кенігсберзькі мости, створив вчення про абстрактні відображення структури взаємозв’язків реального світу.
Формалізація теорії графів зробила можливим пошук у просторі станів (state space graph) основного концептуального інструменту ШІ. Графи можна застосувати для моделювання прихованої структури задачі. Вузли графа станів (state space graph) являють собою можливі стадії розв’язання задачі; ребра графа відображують розумовий висновок, ходи під час гри та інші кроки під час розв’язання.
Розв’язання задачі – це процес пошуку шляху до розв’язку на графі станів. Описуючи весь простір розв’язків задачі, графи станів надають потужний інструмент для виміру структурованості та складності проблем, аналізу ефективності, коректності та загальності стратегій розв’язку.
У XIX ст. у галузі ШІ з’явилися праці Чарльза Беббіджа, Ади Левлейс, Дж. Буля, Готлоба Фреге та ін. Чарльза Беббіджа можна вважати одним із перших практиків ШІ. Його „Різницева машина” була спеціалізованим пристроєм для обчислення значень деяких поліноміальних функцій і попередницею „аналітичної машини” – універсального обчислювального пристрою, попередника багатьох архітектурних положень сучасних комп’ютерів, передусім розділення пам’яті та процесора. Відмінною рисою опису Ади Левлейс є розуміння особливостей взаємозв’язків як сутностей, які можна вивчити, охарактеризувати, реалізувати і піддати механічним маніпуляціям, не вдаючись до конкретних значень, які проходять через обчислювальну машину, як об’єкт-принцип „абстрагування і маніпулювання формою” Аристотеля. Дж. Буль створив формальну мову для опису мислення. Його роботи знаходяться у витоків ШІ. Здійснена ним формалізація законів логіки є звершенням, що сформувало серцевину сучасних комп’ютерних наук. Булева система показала, що проста формальна система двійкової арифметики може передати повну міць логіки, вона постала однією з основ робіт Тюрінга і Геделя про сучасні системи автоматичних міркувань. Готлоб Фреге у праці „Основи арифметики” розробив точну і зрозумілу мову специфікації для описування основ арифметики (числення предикатів першого порядку) – інструмент для запису теорем і задання значень істинності, які утворюють елементи математичних розумових висновків і описують аксіоматичний базис змісту цих виразів.
У ХХ ст. зроблено важливі кроки, необхідні для розуміння фундаментальних принципів ШІ. У працях Рассела та Уайтхеда заявлено мету виведення з набору аксіом шляхом формальних операцій всю математику. Це означає, що всі аксіоми і теореми треба розглядати виключно як набори символів, докази повинні виводитися лише шляхом застосування строгих правил для маніпулювання такими стрічками. Альфред Тарський створив теорію посилань, згідно з якою правильно побудовані формули (well-formed formulae) Фреге чи Рассела Уайтхеда певним чином посилаються на об’єкти реального світу. Відповідна концепція становить основу більшості теорій формальної семантики. Сучасні дослідники в сфері комп’ютерних наук пов’язали теорію Тарського з мовами програмування та іншими комп’ютерними реаліями.
ШІ став життєздатною науковою дисципліною з появою цифрових обчислювальних машин. Ера розумних машин настала відразу з появою перших комп’ютерів, більшість яких була створена для того, щоб зломати німецькі шифри під час Другої Світової війни. Перший робочий комп’ютер на електромагнітному реле Робінзон (Robinson), побудований у 1940 р., призначався для розшифрування німецьких військових переговорів, зашифрованих за допомогою машини Енігма (Enigma). За три роки потому вакуумні трубки замінили електромагнітне реле, що дало змогу побудувати більш швидкодіючий комп’ютер Колосс (Сolossus)для зламу нових вдосконалених кодів. У 1945 р. в Університеті Пенсільванії Д.В.Мохлі та Д.П.Екертом було створено комп’ютер ENIAC, задача якого полягала в розрахунку балістичних таблиць часів Другої Світової війни. Нейронні мережі із нейронним зв’язком були побудовані В.Піттсом та У.МакКулоччем у 1945 р. для демонстрації їх застосування. Тоді ж Н.Вінер створив галузь кібернетики, яка охоплювала математичну теорію зворотного зв’язку для біологічних та інженерних систем. З цим відкриттям пов’язана концепція про те, що розум – це процес отримання і обробки інформації для досягнення певної цілі. У 1949 р. Д.Хеббс відкрив спосіб створення штучних нейронних мереж, що самонавчаються. Цей процес дає змогу так змінювати вагові коефіцієнти у нейронній мережі, що дані на виході відображають зв’язок з інформацією на вході.
1950-ті роки відзначені в історії як роки формального народження ШІ. Алан Тюрінг (Alan Turing) запропонував спеціальний тест („Тест Тюрінга”) як засіб упізнання розумності машини. За цим тестом одна чи кілька людей повинні задавати питання двом таємним співбесідникам і на підставі відповідей визначити, хто з них є машиною, а хто людиною. Якщо не вдавалось викрити машину, яка маскувалась під людину, то вважали, що машина є розумною. Існує доповнення до тесту Тюрінга, так званий „Приз Лейбнера”, яке становить собою змагання з виявлення кращого імітатора людської розмови.
У ці самі роки було відкрито, що комп’ютери можуть управляти символами таким же чином, як і числовими даними. Це сприяло розробці програм, призначених для доведення теорем, які застосовувалися для аналізування нерозв’язаних проблем. Важливою подією у програмній галузі у 1950-ті роки було створення А.Самюелем програми для гри в шашки, яка з часом почала перегравати свого творця. Були також розроблені дві мови ШІ: перша – IPL, створена Ньюелом, Сімоном та Шоу (мова обробки списків даних), друга – відома мова LISP – основна мова додатків ШІ.
У 1960-ті роки відбувся стрибок у розвитку ШІ, викликаний прогресом у комп’ютерних технологіях та збільшенням кількості розробок у цій галузі. Найбільш важливий успіх – зображення знань, побудов іграшкових світів, за допомогою яких створювалося навколишнє середовище, в якому тестувалися ідеї з комп’ютерного зору, робототехніки та здійснювалась обробка людської мови. Тривали розробки з нейронних мереж.
У 1970-ті роки відбувся спад інтересу до ШІ через те, що дослідникам не вдалося виконати завищені і нереальні обіцянки щодо його успіху, а практичне застосування було, як і раніше, мінімальним. Проте дослідження тривали, до того ж не безуспішно. Д.Ленет із Стенфордського університету створив програми, які дали змогу відкрити нові теорії у галузі математики, зокрема у теорії чисел. Вперше було винайдено та застосовано нечітку логіку, якою послуговувалися в розробках, що стосувалися парового двигуна. Було розроблено мову ПРОЛОГ (Prolog – програмування логіки), призначену для розробки програм, які управляли символами. Ця мова працювала з правилами та фактами.
У 1980-ті роки обсяг продажу апаратних засобів та програмного забезпечення, пов’язаного з ШІ, перевищив 400 млн доларів (1986 р.). більша частина цього обсягу була пов’язана з продажем експертних систем на LISP та LISP-машин. Експертні системи застосовувалися для розробки копалин, прогнозування інвестицій, діагностування електровозів та ін. Нейронні мережі у цей час почали відроджуватися, вони дістали застосування в процесі вирішення різноманітних проблем, зокрема в розпізнаванні мови та в з’ясуванні можливость самонавчання машин. Тоді ж мав місце спад інтересу до ШІ, причиною чого були збої експертних систем. Проте інші додатки ШІ було серйозно поліпшено саме в 1980-ті роки. Це – системи розпізнавання мови, причому в режимі реального часу.
1990-ті роки стали новою епохою в розвитку слабкого ШІ (це – широкий діапазон технологій ШІ; сильний ШІ – програмне забезпечення, завдяки якому комп’ютери матимуть змогу думати так само як і люди). Елементи ШІ були інтерпретовані в низку додатків: системи розпізнавання фальшивих кредитних карток; системи розпізнавання обличчя; системи автоматичного планування; системи передбачення прибутку та потреби в персоналі; конфігуровані системи „видобутку даних” з баз даних; системи персоналізації. Важливою подією в розвитку комп’ютерних ігор з використанням ШІ було створення в 1997 р. суперкомп’ютера для гри в шахи Deep Blue. Інша подія в розвитку ШІ відбулася за 60 млн. миль від Землі: було створено систему Deep Space 1 (DS1), яка могла тестувати технології 12-го ступеня ризику, включно з польотом комети і тестування для майбутніх космічних польотів. Система DS1 містила систему штучного інтелекту Remote Agent, якій на нетривалий час надавалось управління космічним кораблем (роботу виконувала команда вчених з використанням терміналів). Ця система продемонструвала здатність управляти складним космічним кораблем, давала змогу вченим та екіпажам кораблів зосередитися на розв’язанні інших задач.
