- •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 Операції над нечіткими числами на основі принципу узагальнення. Використання в теорії штучного інтелекту
- •Література
2.10. Формальні граматики. Теорія алгоритмів
Виникнення метаматематики (що пов’язано з роботами з обґрунтування математики) та її розвиток, структурні дослідження у лінгвістиці, в особливості роботи з машинного перекладу (наприклад, з алгоритмічних мов – на машинну) спричинили створення науки про обґрунтовані знакові системи.
Формальні мови – це множина формальних ланцюгів символів алфавіту, що породжуються граматикою мови, яка визначається як четвірка об’єктів G=<T,U,A,P>, де Т – множина термінальних (алфавітних) символів; U – множина не термінальних символів, які утворюють ієрархічну систему довільних понять мови; А – найзагальніше поняття, яке називається аксіомою (у випадку алгоритмічних мов – програма в цілому); Р – сукупність правил виведення. Прикладом такого правила є означення ідентифікатора для мов програмування:
<ідентифікатор>: : = <буква> |<ідентифікатор><буква>
|<ідентифікатор><цифра>
(послідовність букв та цифр, яка починається з букви).
Зв’язок мови з граматикою, що його породжує, має ту ж природу, що й зв’язок функції з алгоритмом її обчислення. Проблема визначення властивостей мови за його граматикою у загальному випадку не може бути розв’язаною.
Практичне застосування теорії формальних граматик (ТФГ) пов’язані переважно з аналізом вхідного ланцюга символів, із збіркою з нього понять, що класифікують. Зокрема, важливим є застосування ТФГ для системи ШІ: за його допомогою розв’язують задачі з технічної діагностики і аналізу телеметричної інформації. Складність цих задач залежить від класу граматики, який визначається типом правил, що породжує (зокрема, їх залежністю від контексту для ланцюгів символів). Найпростіші граматики відповідають скінченним автоматам. Методи ТФГ застосовуються також і при розробці людино-машинного інтерфейсу системи ШІ.
Трансформаційні граматики, що інтенсивно розробляються останнім часом, дають змогу враховувати семантику предметної галузі. Фраза мови (ланцюг символів) має семантику, якщо система може перетворювати цей ланцюг у деяке значення. Сенс ланцюга визначається через ознаки кожного нетермінального символу, який виникає при граматичному опрацюванні цього ланцюга відповідно до правил граматики. Ці ознаки поділяються на унімодальні від більш загальних конструкцій та синтезовані – від тих, що включаються. Вибір правил можна зробити залежним від поточного стану предметної галузі.
Алгоритмом прийнято називати будь-яку скінченну систему правил перетворення інформації над скінченним алфавітом. Букви алфавіту є первинним типом елементарних даних, слова, що з них складаються, можуть розглядатися як одновимірні масиви. З букв та слів формуються нові (структуровані) типи даних, над якими здійснюються специфічні операції. За допомогою операцій будуються формули мови – вирази. Оператори мови здійснюють перетворення даних і можуть містити посилання на оператор, який виконується наступним оператором. Програма, з формальної точки зору, представляє собою скінченну впорядковану послідовність операторів.
Теорія алгоритмів з’ясовує, які об’єкти та дії над ними слід вважати точно визначеними; які властивості і можливості мають комбінації елементарних дій; що можна і що не слід робити з їх допомогою. Головним внутріматематичним застосуванням теорії алгоритмів є доведення неможливості алгоритмічного розв’язання деяких математичних проблем. Такі доведення (і навіть точні формулювання тверджень, що доводяться) нездійсненні без строгого поняття алгоритму.
Основні вимоги до алгоритмів:
алгоритм має справу з даними: вихідними, проміжними та кінцевими, записаними у певному алфавіті; він може бути застосований до різних наборів даних;
алгоритм складається з окремих елементарних кроків, спосіб виконання яких відомий системі;
послідовність кроків є детерміновою;
алгоритм закінчується після скінченого числа кроків.
Алгоритмічні мови – це лише засоби для запису алгоритмів, для фактичного виконання яких потрібна певна система, що інтерпретує. Відомі кілька десятків алгоритмічних моделей, які в кінцевому підсумку виявилися еквівалентними. Частіше за інші використовуються такі:
рекурсивні функції;
машини Тюрінга;
продукційна система Поста;
нормальні алгоритми Маркова.
Доведено, що жодна нетривіальна властивість обчислюваних функцій не є алгоритмічно розв’язуваною. Сутність цього полягає в тому, що по опису алгоритму в загальному випадку нічого не можна дізнатися про властивості обчислюваної функції. Зокрема, нерозв’язуваною є проблема упізнавання еквівалентності алгоритмів за їх описами.
Знання основних нерозв’язуваностей за логікою та її додатками для фахівця, є такою ж мірою істотним, як для інженера питання про неможливості побудови вічного двигуна. Нерозв’язуваність зазвичай є наслідком надмірно загальної постановки питання.
