- •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 Операції над нечіткими числами на основі принципу узагальнення. Використання в теорії штучного інтелекту
- •Література
3.4. Програмування мовою Пролог
По мірі вирішення технічних проблем побудови комп’ютерів накопичувались і проблеми їх застосування. Основні складнощі перемістилися в напрямі створення програм, розпочалися пошуки мов програмування, більш придатних для людини. Незважаючи на те, що ступінь абстрагування від асемблера до Паскаля та Ади зростала, усі вони базуються на фон-нейманівській архітектурі і для їх використання необхідно докладно описувати процедуру отримання розв’язку. Їх основний недолік полягає у необхідності завчасно знати, які будуть задані питання, і запрограмувати процедури, які будуть давати відповіді на них. Все істотно змінилося з появою логічного програмування, яке базується на ідеях та методах математичної логіки. Логічна програма будується як набір тверджень (фактів та правил) про об’єкти, функції та відношення предметної галузі. Опис задачі є статичним і ніякого обчислювального процесу не задає. Можна вважати, що воно визначає базу даних, в якій зберігаються об’єкти та задані на них функції та відношення. Дедуктивне виведення розв’язку задачі забезпечується вбудованими засобами системи програмування.
Найбільш відомою є реалізація мови Пролог (“Програмування у термінах логіки” – Programming in Logic), яка базується на логічній системі Хорна та методі резолюції дедуктивного виведення.
Вступ до прологу. Загальна характеристика та основні поняття
Творцями Прологу (1973-74 рр.) були А.Colmerauer (Марсель) та R.Kowalski (Едінбург). Більш пізня мова DULAL розширює Пролог елементами модальної логіки. Мова VALID орієнтована на ЕОМ потоку даних. Створено кілька версій паралельного Прологу для реалізації на багатопроцесорних ЕОМ. Пролог було прийнято як базову мову в японській програмі створення ЕОМ п’ятого покоління, орієнтованої на дослідження методів логічного програмування та ШІ, а також на розробку нового покоління комп’ютерів, спеціально призначених задля реалізації цих методів. Пролог застосовується у створенні додатків до таких галузей:
розробка швидких прототипів прикладних програм;
управління виробничими процесами;
створення реляційних баз даних;
переклад з однієї мови на іншу;
розробка компіляторів;
розв’язок задач теорії графів;
створення природно-мовних інтерфейсів для існуючих систем;
створення пакетів символьних та часткових обчислень для розв’язання рівнянь, диференціювання та інтегрування;
реалізація експертних систем та оболонок експертних систем;
доведення теорем та пакети ШІ, в яких можливості Прологу із забезпечення дедуктивного виведення забезпечуються для перевірки різних теорій.
Вбудовані предикати мови Пролог роблять його придатним для розв’язання багатьох стандартних задач із сфери бізнесу, зокрема в бухгалтерському обліку та розрахунках зарплати. Програми на мові Пролог принципово відрізняються низькою швидкодією, оскільки обчислення здійснюється методом проб та помилок ( пошук з поверненнями). Тому його застосування для розв’язання обчислювальних задач є виправданим лише у тому випадку, коли ці задачі є істотно рекурсивними за природою.
Переваги реалізації Прологу на ІВМ РС (Турбо-Прологу):
висока швидкість роботи;
робота в режимі компіляції;
віконний інтерфейс;
можливість створювати автономно виконувані файли.
Система Турбо-Пролог включає до свого складу мову програмування та інтегроване середовище, налагоджування та виконання програм. Надалі розумітимемо саме цю реалізацію.
Фундаментальними властивостями мови Пролог є:
механізм виведення з пошуком та поверненням;
б) вбудований механізм зіставлення зі зразком;
в) проста та легко змінювана структура даних;
г) відсутність вказівок операторів, присвоювання та переходу;
д) природність рекурсії.
Мова Пролог базується на поєднанні цих властивостей, зручність – на природності його принципів для логічних задач, які зводяться до рекурсії. Програма мовою Пролог складається з фактів і правил для отримання інших фактів та відповідей на питання. Факти за означенням вважаються доведеними (істинними).
Конкретному застосуванню логічної програми відповідає поняття запиту (цілі). Досягнути цілі означає показати, що вона логічно випливає з фактів та правил програми. Якщо питання містить змінні; система повинна до того ж конкретні об’єкти, які будучи підставленими замість змінних, забезпечать досягнення цілі. У математичних термінах Пролог-система розглядає факти та правила як множину аксіом, а питання – як теорем. Обчислення відповіді на запит відповідає конструктивному доведенню існування такого об’єкта. Негативна відповідь (No solutions) просто означає, що на основі заданої сукупності фактів запит довести неможливо.
У мові Пролог використовуються специфічні
позначення для логічних зв’язок. Знак
кон’юнкції
замінюється комою або словом and,
– точкою із комою чи словом or; слідування
позначається в програмах конструкцією
: -(дві крапки та мінус) чи словом if.
Вважається, що змінні у реченнях пов’язані
квантором спільності
,
але знак
опускається. До задач обчислювального
типу, особливо пов’язаних з довільною
вибіркою елементів масивів, Пролог явно
не придатний.
До алфавіту мови Пролог входять такі символи:
прописні та рядкові букви латинського алфавіту (A – Z, a - z), слід зазначити, що регістр набору букв впливає на роботу програми;
цифри (0 - 9);
спеціальні символи ! C # $ & ( ) * - + / < > ; , ? . \ “ ‘¯.
Із символів, за обговорюваними далі правилами, конструюються складніші об’єкти: мета, числа і т.д.
Ключові (службові) слова мови Пролог вводитимемо по мірі виникнення потреби в них.
