- •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 Операції над нечіткими числами на основі принципу узагальнення. Використання в теорії штучного інтелекту
- •Література
Метод віток та меж
Декомпозиція задачі на дерево підцілей є одним із загальних підходів до розв’язання складних проблем. Вітки останнього логічно з’єднуються за схемою ТА (АБО) залежно від того, що є необхідним для досягнення чергової цілі: усі її підцілі, чи хоча б одна. Пошук методом редукції до підзадач зводиться до побудови розв’язувального графу (рис.5)
Рис.5 Розв’язувальний граф
На рисунку 5 дугами помічено усі ТА-подрібнення, необхідні кінцеві підцілі затемнено.
Одним з відомих методів роботи з великими просторами станів є метод „породження та перевірки”. Його сутність полягає в тому, що деякий генератор вибудовує ряд станів-нащадків, далі застосовується послідовність тестів на припустимість породжених станів з метою мінімізації їх числа (частина тестів може бути вбудована в генератор). В основу методу віток та меж (МВМ) покладено такі дії:
обчислення границі цільової функції на множини планів (за умови максимізації – верхня оцінка, за умови мінімізації - нижня);
послідовне розбиття згаданих множин на дерево підмножин (галуження) та перелічування оцінок.
Якщо за умови виходу на нижній рівень (листя дерева) значення цільової функції для конкретного плану збігається з оцінкою для вихідної підмножини, то отриманий план є оптимальним.
Можливі узагальнення методу такі:
алгоритм можна застосовувати, коли цільові функції та обмеження є нелінійними;
алгоритм можна застосовувати за умов наявності цілочислових змінних з обмеженим діапазоном зміни, оскільки будь-яку таку змінну можна подати як сукупність псевдобулевих змінних, яка задає двійковий порядковий номер значень вихідної. Діапазон можна оцінити, розв’язуючи задачу із знятою вимогою цілочисловості;
наявність додаткових нецілочислових змінних не створює проблем, оскільки такі змінні не беруть участі у процесі галуження.
Найуспішніше застосування МВМ пов’язане з детальним врахуванням специфіки задачі та його комбінуванням з іншими методами оптимізації для швидкого та точного обчислення оцінок підмножин. Цей метод є загальним підходом до побудови цілого класу алгоритмів. Його недоліки спричинені відсутністю:
універсальних методів обчислення оцінок для підмножин планів;
способів напрацювання компромісів між точністю та трудомісткістю отримання оцінок;
правил вибору найкращої стратегії галуження (у глибину, ширину, змішані варіанти).
У зв’язку з необхідністю запам’ятовування динамічних структур даних програмна реалізація МВМ не є тривіальною. Механізм повернення забезпечується стеком із запам’ятовуванням шляху від кореневої вершини (за умови невдалої реалізації виштовхується вершина стеку та здійснюється повернення на попередній рівень). Пошук „у глибину”, який складається з послідовного розбиття задачі на підзадачі до легко розв’язуваної підзадачі є малоефективним внаслідок необхідності прискіпливо аналізувати велику кількість тупикових напрямків. Так звана „глибина” існує на множині інтерпретаторів Прологу. Згодом було розроблено алгоритм „пошуку в ширину”, який передбачає першочерговий обхід найближчих до стартової вершин. Він програмується складнішим чином, оскільки потребує збереження альтернативних шляхів. При великому розмірі простору пошуку можна спробувати побудувати ієрархію просторів, що описують найважливіші рівні та найбільш конкретні сутності.
Наприклад, щоб планувати поїздку із центру міста А до центру міста Б, можна за дрібномасштабною картою спланувати переїзд від А до Б, а за великомасштабною – виїзд з А та проїзд всередині Б.
Перспективним є пошук у факторизованому просторі, який розбивається на підпростори, що розтинаються, частковими розв’язками. Якщо поточний частковий розв’язок відкидається, то з розгляду виключаються всі повні розв’язки цього підкласу. Скоріше за все, більш вишукані процедури пошуку мають використовувати яку-небудь інформацію, що відображує специфіку даної задачі, з тим, щоб на кожній стадії пошуку прийняття рішення про найбільш перспективні шляхи пошуку. У результаті процес просуватиметься до цільової вершини, обходячи безкорисні шляхи. Інформація, що відноситься до конкретної розв’язуваної задачі та використовується для управління пошуком, називається евристикою. Як правило, евристики суттєво скорочують простір пошуку, але не гарантують отримання розв’язку в усіх випадках.
