
ВСТУП
Штучний інтелект – це одна з новітніх галузей науки. Перші роботи в цій області почалися незабаром після Другої світової війни, а сама її назва була запропонована в 1956 році. В даний час тематика штучного інтелекту охоплює величезний перелік наукових напрямків, починаючи з таких задач загального характеру, як навчання і сприйняття, і закінчуючи такими спеціальними задачами, як гра в шахи, доказ математичних теорем, створення поетичних творів і діагностика захворювань. У штучному інтелекті систематизуються і автоматизуються інтелектуальні задачі і тому ця область торкається будь-якої сфери інтелектуальної діяльності людини. У цьому сенсі штучний інтелект є воістину універсальною науковою областю.
В сучасному суспільстві, яке є орієнтованим на знання, створення повноцінного штучного інтелекту могло б відкрити перед людством нові горизонти розвитку.
Метою вивчення дисципліни є підготовка спеціалістів в області автоматизації слабоформалізованих задач, які сьогодні вважаються прерогативою людини. Головною задачею вивчення є набуття знань про способи мислення людини та методів їх реалізації на комп’ютері. Основним предметом вивчення дисципліни є здібність мислення людини та засоби її реалізації технічними засобами.
В курсі “Системи штучного інтелекту” вивчаються проблеми створення інтелектуальних систем, які декомпозуються на такі складові, як: вивчення роботи головного мозку; філософські аспекти штучного інтелекту; засоби розв’язку задач штучного інтелекту; методи їх розв’язку, що базуються на знаннях; експертні системи і системи суджень на базі моделей і досвіду; моделі суджень в умовах невизначеності; аспекти машинного навчання; нейронні мережі; генетичні алгоритми та емерджентне навчання; автоматичні судження; розуміння природних мов; альтернативні сучасні підходи.
Метою лабораторних робіт є закріплення студентами навичок практичних розробок експертних систем та інших додатків.
Лабораторна робота №1
Тема: Стратегії розв’язання задач
Мета роботи: Вивчення основних стратегій розв’язання задач. Придбання навиків вибору адекватних стратегій залежно від типу задачі. Вибір інструменту для реалізації цих стратегій
Методичні вказівки
Підходи до вирішення проблем в найзагальнішому вигляді детально представлені в [3] гл. 2, в гл. 4 і 5 наводяться класичні методи розв’язання задач. Дається класифікація відомих задач і оцінюється їх алгоритмічна складність.
Стосовно мови Пролог основні стратегії розв’язання задач розглянуті в [4], гл. 4,5,9-13,16. У [3, гл. 2 ], [4, гл. 4] звертається увага на важливість адекватного представлення задачі, тобто знаходження таких структур даних, які дозволяють представити задачу в зручному вигляді з точки зору її формального розв’язання. Звертається увага, що структура представлення сильно залежить від вибраної стратегії розв’язання. Гл. 5 [4] є важливою, оскільки тут розглядається механізм перебору варіантів розв’язків, прийнятий в Пролозі.
В зв’язку з цим необхідно звернутися також до [3] гл. 11. Основні стратегії розв’язання задач в доповненні до [1] і [2] також наводяться в [5] гл.14, 15. В сукупності роботи [3-5] дають досить повну представлення по даній темі.
Завдання
Сформулювати задачу в закритій формі. Вибрати комбінацію з наступних відповідних стратегій розв’язання задачі:
представлення в просторі станів;
відомості задач до підзадач;
генерація варіантів і перевірка;
пошук в глибину з поверненням;
пошук в ширину;
пошук з перевагою (евристичний пошук)
поширення обмежень;
зведення задачі до доведення теореми.
Розробити адекватну структуру даних, що максимально враховує специфіку предметної області задачі. Обґрунтувати вибір структури.
Реалізувати формальний опис задачі на Пролозі, забезпечивши програму достатньою кількістю засобів введення-виводу для предметного відображення результатів.
У режимі трасування поспостерігати стратегію обходу "І-АБО" – дерева розв’язання задачі.
Виділити простір станів і намалювати граф переходів.
Привести інтерпретацію програми з точки зору декларативної і процедурної семантики.
Ще раз повернутися до постановки задачі і спробувати написати "максимально декларативний" варіант програми на Пролозі, тобто поглянути на проблему аксіоматично, вважаючи, що розв’язання задачі – це конструктивне доведення теореми в рамках деякої формальної теорії, що задається системою аксіом. Всі зовнішньологічні предикати типу введення-виводу та ін. винести за рамки формулювання задачі.
Варіанти завдань
Задача про вісім ферзів: "Яку максимальну кількість ферзів можна розставити на шахівниці так, щоб вони не били один одного".
Задача про коней. Формулювання аналогічне п.1.
"Гра у Вісім". ([4], стор. 326).
Ханойська башта.
Пошук дороги в лабіринті.
Задача "Вовк, коза і капуста". ([4], стор. 326.)
Задача "Мавпа і банан ". ([4], гл.2.)
Контрольні питання
Дайте визначення поняття “Простір станів”. Який клас задач доцільно представляти в просторі станів?
Порівняйте дві основні стратегії пошуку в просторі станів – пошук в глибину і пошук в ширину. Який пошук “природніший” для Прологу? Чому пошук в ширину важчий в реалізації?
У чому суть евристичного пошуку? Яке місце займає метод динамічного програмування Беллмана і метод гілок і кордонів у даному контексті?
У чому суть методу поширення обмежень?
Як оцінюється складність задачі? Які класи складності існують?