Логічні алгоритмиЛогічні алгоритми
та системи штучного інтелектута системи штучного інтелекту
Предмет вивченняПредмет вивчення
 ЛОГІЧНЕ ПРОГРАМУВАННЯ
мова програмування Prolog
(Programming in logic)
 СИСТЕМИ ШТУЧНОГО ІНТЕЛЕКТУ
генетичні алгоритми
методи нечіткої логіки
нейронні мережі
Зміст курсуЗміст курсу
 8 семестр
Лекції – 26 годин (13 лекцій)
Лабораторні роботи – 26 годин
 В сесію
Іспит
Два теоретичних питання
Тестові завдання
Одна практична задача (Prolog)Одна практична задача (Prolog)
 … система
І модуль
4 лабораторні роботи – 25 балів
Контрольна робота – 10 балів
Разом – 35 балів
ІІ модуль
4 лабораторні роботи – 35 балів
Разом – 35 балів
 Іспит – 30 балів
ДжерелаДжерела
◦ Братко И. Алгоритмы искусственного интеллекта на языке Prolog. – М. : Вильямс , 2004. – 637 с.
◦ Шрайнер П.А. Основы программирования на языке Пролог : курс лекций : учебное пособие для
вузов по специальностям информационных технологий. – М. : Интернет-Университет
Информационных Технологий , 2005. – 172 с.
◦ Джонс м.Т. Программирование искусственного интеллекта в приложениях. – М.: ДМК Пресс,
2004.
◦ Осовский С. Нейронные сети для обработки информации / Пер. С польського И.Д. Рудинского.-
М.: Финансы и статистика, 2002.- 344 с.: ил.
◦ Девятков В.В. Системы искусственного интеллекта: Учеб. Пособие для вузов. – М.: Изд –во МГУ
им. Н.Э. Баумана, 2001. – 352 с., ил.
◦ Рассел, Стюарт, Норвиг, Питер. Искусственный интелект:современный поход, 2-е узд.: Пер. С
англ.. – М.-: Издательский дом «Вильямс», 2006. – 1408 с.: ил.
◦ Адаменко А.Н., Кучуков А.М. Логическое программирование иVisual Prolog. – СПб.: БХВ-
Петербург, 2003. – 992 С.
◦ Хайкин, Саймон Нейронные сети: полный курс, 2-е издание.: Пер. с англ.. – М.: Издательский дом
«Вильямс», 2006. – 1104 с.: ил. – Папал.Тит. Англ.
◦ Рутковская Д., Пилинский м., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие
системы: Пер. с польск. И.Д. Рудинского. – М.: Горячая линия –Телеком, 2006. – 452 с.: ил.
◦ Яхъева Г.Э. Нечеткие множества и нейронные сети: Учебное пособие/ Г.Э. Яхъева. – М.: Интернет
– Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2006. – 316 с.: ил.,
табл.
◦ Лю Б.Теория и практика неопределенного программирования / Б. Лю; Пер. с англ.. – М.: БИНОМ.
Лаборатория знаний, 2005. – 416 с.: ил.
ЗмістЗміст
Мови
A.I. Вступ
Огляд
Додатки
Мови
ВступВступ
Мета – можливість відтворити здатність людського
мозку до дослідження, аналізу та висновків
• Наука проектування та створення інтелектуальних
машин, особливо – програм штучного інтелектумашин, особливо – програм штучного інтелекту
Чи є межа розвитку інтелектуальнихЧи є межа розвитку інтелектуальних
машинмашин??
 Інтелект:
“здатність до навчання та вирішення задач”
 Штучний Інтелект:
◦ Штучний Інтелект (AI) інтелект пристроїв,◦ Штучний Інтелект (AI) інтелект пристроїв,
роботів та галузь науки, яка ставить за
мету їх створення
 можливість розв’язання задач
 можливість раціонально діяти
 можливість діяти як людина
Історія АІ
 Класичні філософи
 Programmable Digital Computers (1940)
 1943-1956:
• McCulloch & Pitts: Boolean circuit model of• McCulloch & Pitts: Boolean circuit model of
brain (Логічна схема моделі мозку)
• Dartmouth : поява визначення "Artificial
Intelligence“
 Золоті роки 1956−1974
 1986– Піднесення “machine learning”
◦ Повернення популярності НМ (Neural
networks)
◦ Більшість досягнень в напрямку розробки
machine learning алгоритмів та додатків
1995-- AI – це наука
machine learning
 1995-- AI – це наука
◦ Інтеграція навчання, міркування, подання
знань
◦ Методи AI використовуються в «зорі»
(баченні), лінгвістиці, інтелектуальному
аналізі даних тощо.
 2006: ПЗ розпізнавання образів
доступне в камерах
 2003-2007 робот за кермом: DARPA
grand challenge
 Feb 2011 надійшли запитання, на які
може відповісти робот …
Чи можуть
AI системи
праяцювати так
ефективно, як
праяцювати так
ефективно, як
Мозок Людини?????
 Наскільки складний наш мозок?
◦ Нейрон
◦ 10 12 нейронів в мозку
◦ І набагато більше синапсів (10 14) сполучають ці
нейрони
◦ Час циклу: 10 -3 секунди
 Наскільки складними можна зробити
комп‘ютери?
◦ 108 CPU
комп‘ютери?
◦ 108 чи більше транзисторів в CPU
◦ Суперкмп’ютер: сотні CPUs, 1012 bits RAM
◦ Час циклу : сягає 10 - 9 секунд
 Висновок
ТАК
◦ Замало взаємозв'язків (проводів чи синапсів)
◦ Швидші
AIAI ----додаткидодатки::
“Природня мова”
Експертні системи
Проектування роботів
Машинне навчанняМашинне навчання
Ігрові задачі
ДружніДружні
напрямкинапрямки
AI:AI:AI:AI:
…це широке поле
з такою кількістю
«грядок».
“Природня мова”“Природня мова”
 Розробка та створення ПЗ для аналізу,
розуміння та генерування мови,
природньо зрозумілої людині
Режими зв'язкуРежими зв'язку
 Текст
 Діалог
Розпізнавання мовиРозпізнавання мови
 Процес перетворення звукового
сигналу з мікрофону чи телефону в
множину слів.множину слів.
 70-100 слів/хв з точністю до 90%
Машинний (компМашинний (комп’’ютерний зір)ютерний зір)
 Здатність машини до вилучення
інформації з образу для вирішення
необхіднї задачі
 отримання зображення
 обробка зображення
 аналіз зображення
 розуміння зображення
Інтелектуальний роботІнтелектуальний робот
 Радше імітація
здібності людини
до отримання
інформації та
прийняття рішень зприйняття рішень з
метою адаптації до
певних умов і змін
своїх дії.
Експертні системиЕкспертні системи
 ПЗ для прийняття
рішень .
 Автоматизоване
міркування та
доведення теорем.доведення теорем.
 Експертні системи
пошуку та усунення
несправностей.
 Експертні системи
фондового ринку.
В чому різницяВ чому різниця ????????????????
Artificial Intelligence
НЕ творчий
Natural Intelligence
ТворчийНЕ творчий
Точний
Узгоджений
Багатозадачний
Творчий
Може помилятися
Не узгоджений
Некерований
МовиМови
Дослідники АІ розробили кілька
спеціалізованих мов програмування для
штучного інтелекту, зокрема IPL, Lisp, Prolog,штучного інтелекту, зокрема IPL, Lisp, Prolog,
STRIPS, Planner, POP-11 тощо.
КласифікаціяКласифікація
Мови
програмування
Алгоритмічні
Декларативні
Алгоритмічні
(процедурні) мови
(Fortran, Pascal,
C, …)
Декларативні
(неалгоритмічні)
мови
Мови
логічного
програмування
(Prolog, …)
Мови
функціонального
програмування
(Lisp, …)
Логічне програмуванняЛогічне програмування
Алгоритм
розв’язку
задачі
Логічна
специфікація
розв’язкузадачі
розв’язку
задачі
Термінологія логічного програмування
запозичена з логіки.
Логіка пізнає принципи людського мислення.
ПорівнянняПорівняння
LISP
Функціональне
PROLOG
Функціональне
програмування
Загальна ціль
Пропонує широкий спектр
завдань, простіший у
використанні
Не вимагає підтримки
Прологу
Логічне програмування
Специфічне використання
Легша у вивченні
Підтримка різнонаправлених
міркувань
Створення мовиСтворення мови PrologProlog
 1879 - Фержен публікує роботу «Концептуальна
мова», викладає основи загальної теорії відношень.
 1965 - Дж. Е.Робінсон «Машинно-орієнтована логіка,
заснована на принципі резолюції».
 1968 – Лавленд «Автоматичне доведення теорем 1968 – Лавленд «Автоматичне доведення теорем
шляхом усунення моделей».
 1971 - Ковальські і Куенер «Лінійний відбір за
допомогою функції резолюції» - принципи логіки
предикатів.
 1973 - Кольмерор в Марселі створив перший Пролог-
інтерпретатор на Фортрані.
Створення мовиСтворення мови PrologProlog
 1977 - Уоррен і Перейра, Единбург, інтерпрететор /
компілятор Прологу для ЕОМ DEC-10, перша реалізація
«машини Уоррена» як прототипу наступних Пролог-
реалізацій.
 1981 - інститут ICOT, Японія, проект ЕОМ п'ятого
покоління.покоління.
 1982 -Том Остербі (Відділ Інформатики Данського
Технічного Університету) розробив Пролог-
інтерпретатор для комп'ютера VAX.
 1984 - Джон Гофман, Лео Йенсен і Фінн Гронський
(Відділ Інф-ки Дат.Тех.Ун-т) розробили Пролог-
компілятор для IBM PC.
 1993 - під кер. Лео Йенсена розробляється Visual Prolog.
Сучасний станСучасний стан
 Visual Prolog 7.4
 Розробкою мови займається фірма
PDC
Prolog Development CenterProlog Development Center
◦ http://www.pdc.dk
 Версії Prolog’а
◦ Turbo Prolog
◦ PDC Prolog
◦ Visual Prolog
Lect 1 intro
Lect 1 intro
Lect 1 intro
Теоретичні дослідженняТеоретичні дослідження
в сфері формалізації мисленняв сфері формалізації мислення
Традиційна логіка
Формальна логікаФормальна логіка
Логіка висловлювань
Логіка предикатів
Традиційна логіка та її закониТрадиційна логіка та її закони
Завдання виявити критерій істинності
суджень у полеміці.
Аристотель ввів поняття судження.
Під судженням розуміється закінченаПід судженням розуміється закінчена
думка, що висловлена у формі простого
речення природної мови.
Традиційна логіка та її закониТрадиційна логіка та її закони
Аристотелем виведені три закони традиційної логіки:
1.Тотожність: А є А. Суть: деяка річ завжди рівна самій
собі. Судження означає тільки саме себе.
2. Суперечливість: А не є не А. Суть: річ не може
одночасно володіти і не володіти деякоюодночасно володіти і не володіти деякою
властивістю; ніяке судження не є одночасно і
істинним і хибним.
3. Виключення середнього: А не є одночасно і А, і не А.
Суть: речі або притаманна, або ні деяка властивість.
Судження може бути або істинним, або хибним.
Форми суджень у традиційній логіціФорми суджень у традиційній логіці
Кожне судження за Арістотелем повинно мати 4 елементи:
Квантор Суб'єкт Зв'язка Предикат
У традиційній логіціАрістотеля допускаються чотири форми суджень, кожна з
яких характеризує можливе відношення між класом суб'єктів S і класом
предикатів Р:
 Усі S є Р.
 Ніяке S не є Р.
Деякі з S є Р. Деякі з S є Р.
 Деякі з S не є Р.
Тут «Усі», «Ніяке» - квантори спільності (універсальні квантори);
«Деякі з» - квантор існування (екзистенційний квантор);
«є» і «не є» - зв'язки.
Всі
живі
істоти
є смертними
Квантор S PЗв’язка
Приклад виведення в дедуктивної системіАристотеляПриклад виведення в дедуктивної системіАристотеля
Всі
живі
істоти
є смертними
Квантор S PЗв’язка
Всі люди є живі істоти
Передумови:
узгодження
Процес такого умовиводу називається процесом виведення нових знань на основі
наявних (на основі передумов).
Великий недолік - логіка справедлива тільки для суджень; будь-яку проблему необхідно
представляти у вигляді сукупності суджень однієї з чотирьох допустимих форм.
Квантор S PЗв’язка
Всі люди є смертними
Квантор S PЗв’язка
Заключний висновок:
Дедуктивний висновок дляДедуктивний висновок для
висловлюваньвисловлювань
Логічні закони для формування висловлювань:
1) Modus Ponendo Ponens:
Якщо з Р слідує Q і Р істинне, то й Q - істинне, де Р і Q –
висловлювання.
2) ModusTollendoTollens:
Якщо з Р слідує Q і Q хибне, тоді й Р хибне.
3) Modus PonendoTollens:
Якщо і Р, і Q не можуть бути одночасно істинними і Р істинне,
тоді Q - хибне (що виключає «або»).
4) ModusTollendo Ponens:
Якщо або Р, або Q істинне і Р не істинно, то істинне Q (включає
«або» або диз'юнктивний силогізм).
Виникнення і розвиток формальної логікиВиникнення і розвиток формальної логіки
Приклад:
читає (Анна, книгу).
читає
предикат
Анна
Петро
Іван
книгу
журнал
газету
Ферже:
предикат (список аргументів).
При цьому під аргументами розуміють ті слова, які можуть
змінюватися в деяких межах, не змінюючи змісту висловлювання
в цілому, а під предикатом - та частина висловлювання, зміна
якої призводить до зміни змісту висловлювання.
Метою Ферже було створення загальної теорії відношень.
Після Ферже загальна теорія відношень отримала назву логіки
предикатів.
Логіка висловлюваньЛогіка висловлювань
У логіці висловлювань з атомарних висловлювань за допомогою
логічних з’єднань можуть бути побудовані логічні формули.
Атомарним називається висловлювання, яке може мати логічне
значення і не може бути розділене на компоненти. Атомарні
висловлювання позначаються пропозиціональними змінними, що
приймають значення ІСТИНА (T) і ХИБНЕ (F).
Логічні з'єднання (зв'язки):
∨
Логічні з'єднання (зв'язки):
 примітивні (¬, ∨, &);
 непримітівні (імплікація →, еквівалентність ↔).
Зміст непримітівних з'єднань виводиться через зміст примітивних:
p → q = ~ p ∨ q; p ↔ q = (p & q) ∨ (¬ p & ¬ q).
Тут еквіваленція p ↔ q - нове висловлювання, яке вважається
істінним тоді і тільки тоді, коли p і q або одночасно істинні, або
одночасно хибні.
Приклад побудови теорії в логіціПриклад побудови теорії в логіці
висловлюваньвисловлювань
Опишемо ставлення Петра до англійської мови. Опис природньою мовою:
(1) Якщо Петро цікавиться англійською мовою, то або він запишеться на
факультатив, або він ледачий.
(2) Якщо Петро самостійно вивчає англійську мову, то він цікавиться
англійською мовою.
(3) Петро самостійно вивчає англійську мову.
(4) Петро не ледачий.
Виділяємо атомарні висловлювання: Позначення: Лог. зв'язки:
Петро запишеться на факультатив. A D → A ∨ B
Петро ледачий. B C → D
Петро самостійно вивчає мову. C C
Петро цікавиться англійською мовою. D ¬ B
Логіка предикатівЛогіка предикатів
У логіці предикатів ми маємо справу з атомарними формулами,
логічними зв‘язками та ППФ.
У логіці предикатів атомарна формула складається з символічного
позначення предиката і термів, які виступають в ролі аргументів цього
предиката:
предикат (список термів).
У загальному випадку позначення предиката - це ім'я відношення, що
існує між аргументами:існує між аргументами:
p (t1, t2, ..., tn).
Під термом розуміють або константу, або змінну, або виклик
(використання) функції.
У логіці предикатів прийняті наступні позначення:
a, b, c - константи,
f, g, h - функції,
x, y, z - змінні,
P, Q, R – предикати.
Функції та відношення в логіці предикатівФункції та відношення в логіці предикатів
Приклад 1.
Область знань - арифметика,
область інтерпретації – множина натуральних чисел.
Функція «множення»: МНОЖ (3,2) → 6.
Число 6 називається значенням даного використання функції
«множення».
Приклад 2.
Область знань - родинні стосунки між деякою особою на ім'я Іван і
деякими іншими людьми, з якими він спілкувався на сімейній вечері.
Область інтерпретації – множина людей: Іван, Петро - двоюрідний брат
Івана, Михайло - двоюрідний брат Івана, Марія - подруга Михайла:
{Іван, Петро, Михайло, Марія}.
Оскільки нас цікавлять тільки родинні зв'язки, то той факт, що хтось є
подругою людини з заданої області інтерпретації повинен бути описаний за
допомогою функції:
подруга ("Михайло") → "Марія«.
Приклад побудови теорії для предметної областіПриклад побудови теорії для предметної області
«Сімейна вечеря»«Сімейна вечеря»
Вибір позначень для представлення елементів області інтерпретації.
Константи: а - Петро, b - Іван, c - Михайло.
Функції: f («Михайло») = «Марія».
У висновку для відносини «двоюрідний брат» вводимо предикат
P: P (X,Y) - X є двоюрідним братом Y.
P (a, b) – істина P (a, f(c)) – хибне
P (a, c) – хибне P (f(c), a) – хибне
P (b, a) – істина P (b, f(c)) – хибне
P (b, c) – істина P (f(c), b) – хибне
P (c, a) – хибне P (c, f(c)) – хибне
P (c, b) – істина P (f(c), c) – хибне
Фразова форма записуФразова форма запису
Фразова форма логіки предикатів - це спосіб запису формул,
при якому вживаються тільки зв‘язки &, ∨ і ¬.
Літерал - це позитивна чи негативна атомарна формула.
Фраза - множина літералів, з'єднаних символом ∨. Негативні
літерали розміщуються вкінці кожної фрази, а позитивні -
напочатку.Схематичний вигляд фрази:
∨ ∨ ∨ ∨ ∨ ∨ ∨
∨
P1 ∨ P2 ∨ ... ∨ Pn ∨ N1 ∨ N2 ∨ ... ∨ Nn
Тут P1 ... Pn - позитивні літерали, а N1 ... Nn - негативні
літерали.
Фразу можна розглядати як узагальнення поняття імплікації.
Дійсно, якщо A і B - атомарні формули, то A - → B може бути
записана як ¬A ∨ B. Оскільки ¬A - негативно, а B - позитивно, то
фразова форма матиме вигляд: B ∨ ¬A.
Фрази Хорна та резолюціїФрази Хорна та резолюції
Фраза Хорна (хорнівскій диз'юнкт) - це фраза, що
містить тільки один позитивний літерал.
Правило резолюції подібне до диз'юнктивного
силогізму (ModusTollendo Ponens).
Дві фрази можуть бути резольвовані одна з одною,
якщо одна з них містить позитивний літерал, а інша -якщо одна з них містить позитивний літерал, а інша -
відповідний негативний літерал з одним і тим же
позначенням предиката і однаковою кількістю аргументів,
причому аргументи обох літералів можуть бути
уніфіковані (тобто узгоджені) один з одним.
Характерні особливостіХарактерні особливості PrologProlog--уу
 Для представлення знань використовуються фрази Хорна;
 Програма описує логічну модель предметної області у
вигляді фактів щодо властивостей предметної області і
відношень між цими властивостями + правила виведення
нових властивостей і відношень з уже заданих;
 Використання терма як єдиної структури даних;
 Відсутність операторів присвоювання, розгалужень,
безумовних переходів та покажчиків.
 Для пояснення змісту програми застосовуються три
семантичні моделі: декларативна, процедурна моделі та
модель у вигляді абстрактної машини.
Синтаксис предикатів численняСинтаксис предикатів числення
 Представлення фактів та правил
English Pred
calculus
Prolog
and ,
Or ;
Only if :-
not not




ФактиФакти,, ПравилаПравила і Запитиі Запити
 База знань фактів – терми, які супроводжуються повною зупинкою.
◦ parent(ayah, saya). %ayah is my parent
◦ parent(mak, saya).
◦ female(mak). %mak is a female
◦ male(ayah).
– Правила – утворюють нове знання
◦ mother(X,Y) :-
parent(X,Y) , female(X).
%X is mother ofY if X is parent ofY and X is female
 Запит – теж сформовані терми , які супроводжуються повною
зупинкою
◦ goal
parent(X,saya). %who is my parent
ФактиФакти
Факт - це запис такого відношення, значення якого істинно.
Форма запису факту:
імя_предиката (аргумент {, аргумент}).
При цьому:
1) Всі імена предикатів і аргументів повинні починатися з рядкової
латинської літери.
2) Перерахування аргументів - через кому.2) Перерахування аргументів - через кому.
3) Кожен факт повинен закінчуватися крапкою.
4) Кількість аргументів і вид відношень (напрямки відношень)
визначаються програмістом і не змінюються при виконанні програми.
приклад:
факт: who_likes_what (ivan, programming)
не еквівалентний факту:
who_likes_what (programming, ivan),
оскільки має місце зміна напряму відношення: «Іван захоплюється
програмуванням»
Запис фактів в пролозіЗапис фактів в пролозі
В Пролозі тип відношень описується в розділі predicates:
who_likes_what (symbol, symbol)
При описі фактів і правил у розділі clauses програми на
Пролозі однойменні предикати повинні бути згруповані:
clausesclauses
who_likes_what (ivan, programming).
who_likes_what (ivan, reading).
who_likes_what (mary, reading).
У термінології Прологу будь-яка сукупність фактів (і правил)
називається базою даних.
PrologProlog командикоманди .... фактифакти
 Open Swi-Prolog window
 File-New-Type the facts and rules with full stops at the end
 Add facts to database
parent(ayah,saya).
parent(mak,saya).
female(mak).
male(ayah).
 Save- close file -backtoSwiprolog-File-Consult-choose file-open <enter>
ПравилаПравила
Під правилами в Пролозі розуміються найбільш
загальні твердження про об'єкти і відношення між
ними.
Пролог-правило має вигляд фразової форми:
висновок :- ум1, ум2, ..., умN.
Приклад правила:
common_interests (X,Y): -
who_likes_what (X, Z), who_likes_what (Y, Z), X <>Y.
 To add more facts and rules, eg.
 File- Edit –Choose File – type new rule to indicate
relation mother
mother(X,Y) :- parent(Y,X) , female(X).
Prolog команди … правила
mother(X,Y) :- parent(Y,X) , female(X).
 SaveSave--Close fileClose file
ЗапитиЗапити
Запис питань в Пролозі схожа з записом фактів і
відрізняється місцем розташування. Для формулювання
запитань у програмі на Пролозі існує розділ goal.
Звернення до Прологу з питанням ініціалізує процедуру
пошуку в базі даних, раніше введеної в систему. Прологпошуку в базі даних, раніше введеної в систему. Пролог
переглядає БД в пошуках предиката, що може співставлятися
з питанням.
Предикати вважаються такими, що співпадають, якщо вони
збігаються посимвольно і їх відповідні аргументи попарно
збігаються. Якщо предикат-питання збігається з предикатом
одного з фактів / правил в БД, то питання узгоджується з БД.
При цьому відповіддю на питання буде або Yes, або No.
Використання змінних в запитахВикористання змінних в запитах
Під змінною в Пролозі розуміють будь-яке ім'я, яке починається з
прописної латинської літери. Приклади: Who,What, Ivan.
Змінна називається конкретизованою, якщо існує об'єкт, який вона
позначає. Якщо не відомо, що саме позначає змінна, то вважається, що
змінна не конкретизована.
У запитах змінні використовуються для того, щоб знайти деякий об'єкт.
Приклад: who_likes_what (ivan, X)Приклад: who_likes_what (ivan, X)
відповіддю буде:
X = programming
X = reading 2 Solutions
Yes
Якщо позначений змінною об'єкт не має значення в даному контексті,
то використовується анонімна змінна ( _ ).
Складні запитиСкладні запити
Приклад. Вияснимо, чи мають Іван і Марія спільні інтереси.
goal
who_likes_what (ivan, X), who_likes_what (mary, X).
Спочатку узгодимо who_likes_what (ivan, X). Змінна X конкретизується:
X = programming.
Тепер намагаємося узгодити
who_likes_what (mary, programming).who_likes_what (mary, programming).
Даний факт відсутній в БД.Тому Пролог автоматично розконкретизує
змінну X. Потім Пролог намагається узгодити твердження:
who_likes_what (ivan, reading), who_likes_what (mary, reading).
Обидва факти, що входять у вираз, присутні в БД. Інших альтернатив
для who_likes_what (ivan, X) немає і в якості результату буде видано:
X = reading, 1 solution,Yes.
Показаний процес отримав назву пошуку з поверненням.
 Type at the command line for query. Use
symbol ; to list next parent
PrologProlog командикоманди....запитизапити..
goal
parent(X,saya),parent(X,saya),
female(ayah),
male(X).
Перша програмаПерша програма
Факти
Горобець – це птах.
Горобець – батько пташеняти.
Правило висновку
Дехто є птахом за умови, що у
 Запит
◦ птах (Z)
 Всі можливі
рішення:
Дехто є птахом за умови, що у
нього є батько - птах.
Програма
птах (горобець).
птах (X):– батько(Y, X),
птах(Y).
батько(горобець, пташеня).
рішення:
◦ Z = горобець
◦ Z = пташеня
Перша програмаПерша програма
PREDICATES
bird (symbol)
parent (symbol, symbol)
CLAUSES
bird (sparrow).bird (sparrow).
bird (X) :- parent (Y, X), bird (Y).
parent (sparrow, nestling).
Goal: bird (Z)
Z = sparrow
Z = nestling
Перша програмаПерша програма
PREDICATES
bird (symbol)
parent (symbol, symbol)
CLAUSES
bird («горобець»).Факт
Факт
bird («горобець»).
bird (X):– parent (Y, X), bird (Y).
parent («горобець», «пташеня»).
Goal: bird (Z)
Z = «горобець»
Z = «пташеня»
Факт
Правило висновку
Зовнішня ціль
Узгодження цільових твердженьУзгодження цільових тверджень
Для доведення цільових тверджень Пролог використовує відомі
твердження.
Якщо підціль являє собою факт, то узгодження закінчується, як
тільки факт буде знайдений в базі. Якщо підціль є правилом, то
задача зводиться до кон'юнкції предикатів-підцілей.
При узгодженні Пролог керується такими правилами:При узгодженні Пролог керується такими правилами:
 Константа рівна тільки сама собі;
 Змінна може бути конкретизована будь-яким об'єктом Прологу;
 Структури співпадають, якщо збігаються їх функтори, стан і
кількість аргументів.
Для кожної підцілі Пролог генерує свій маркер. Якщо цільове
твердження не доведено, збуджується процесс повернення.
Розгляд цільових тверджень приРозгляд цільових тверджень при
використанні механізму поверненнявикористанні механізму повернення
Якщо цільове твердження не доведено, здійснюється повернення за
«ланцюжком доказів» у місце вибору твердження для узгодження
заново відповідних цільових тверджень.
При цьому Пролог намагається знайти альтернативне твердження,
що відповідає даній цілі.
Спочатку відбувається розконкретизація всіх змінних, що булиСпочатку відбувається розконкретизація всіх змінних, що були
конкретизовані в ході доведення даного цільового твердження.
Потім поновлюється пошук у базі даних, починаючи з поміченого
маркером місця. Якщо буде знайдено інше твердження, яке відповідає
цільовому, Пролог помістить в це місце маркер, пошук у базі даних
продовжиться, починаючи з поміченого місця.
Приклад узгодження цільового твердженняПриклад узгодження цільового твердження
Факт не виявлено, M і
F розконкрети-
зовуються
Успішне узгодження
Поняття «зчеплених змінних»Поняття «зчеплених змінних»
У ряді випадків узгодження цільових тверджень деяка, спочатку
неконкретизована, змінна X може бути автоматично конкретизована
значенням іншої змінної Y. В таких випадках говорять, що змінні X і Y стають
зчепленими.
Приклад відношення «рідна сестра»:
sister (X,Y): -
woman (X), parent (X, Mother, Father), parent (Y, Mother, Father).woman (X), parent (X, Mother, Father), parent (Y, Mother, Father).
Узгодження цільового твердження sister («Марія», Y) призведе в одному з
можливих випадків успішного доведення до конкретізаціі Y значенням
«Марія».
Для запобігання породження небажаних рішень як наслідок зчеплення
змінних, в тіло правила слід вводити додаткові твердження для контролю
взаємних співвідношень значень змінних в заголовку правила:
sister (X,Y): -
not (X =Y), woman (X), parent (X, Mother, Father), parent (Y, Mother, Father).
ВправаВправа
Family relationshipsFamily relationships
1) Предикати
male/1, female/1, parent_of/2
для представлення Prolog бази знань
father(Father,Child) mother(Mother,Child)
2) Сформулюйте правила:
father(Father,Child) mother(Mother,Child)
grandparent(Grandparent,Child)
sister(Sister,Person)
grandchild(Grandchild,Child)
father_of(X,Y) :- male(X), parent(X,Y).
grandparent(X,Z) :- parent(X,Y), parent(Y, Z).
Any
Questions
ThanksThanks

More Related Content

PPTX
Спинний мозок
PPTX
Coteaching model nolan_ukr
DOCX
Реферат "Поняття та види реклами"
PPT
тема 4.2015. договірні відносини в сфері туризму
PDF
Lect ai 3 ga
PDF
Lect ai 2 nn
PDF
Lect 3 4 prolog
PDF
Lect аі 2 n net p2
Спинний мозок
Coteaching model nolan_ukr
Реферат "Поняття та види реклами"
тема 4.2015. договірні відносини в сфері туризму
Lect ai 3 ga
Lect ai 2 nn
Lect 3 4 prolog
Lect аі 2 n net p2

Viewers also liked (8)

PPT
Метод имитации отжига
PPT
Sql global
PDF
Lect 5 prolog
PDF
Lect 6 prolog
PDF
Lect 2 prolog
PPTX
PDF
Введение в язык программирования Питон (Python)
PDF
Pandas: обзор основных функций
Метод имитации отжига
Sql global
Lect 5 prolog
Lect 6 prolog
Lect 2 prolog
Введение в язык программирования Питон (Python)
Pandas: обзор основных функций
Ad

Similar to Lect 1 intro (20)

PDF
підручник володіна
PDF
ПІДРУЧНИК "ІНФОРМАТИКА 9 КЛАС" О.О. БОНДАРЕНКО ТА ІН. 2017 РІК
PPTX
опорні схеми
PDF
10 in b_2018
PDF
Informatika 10-klas-bondarenko-2018
PDF
умцкмци
PDF
інформатика 9 кл
PDF
9 информ володіна_володін_2009_укр
PDF
9 in v_ua
PDF
Підручник Інформатика 9 клас Володіна І.Л.
PDF
9 in v_ua
PDF
Воронкін О.С. Потенціал штучного інтелекту у розвитку персонального навчально...
PDF
8 i b_2016
PDF
Informatika 8-klas-bondarenko-2016
PPTX
Використання нечітких множин в експертних системах
PDF
8_i_b_2021.pdf
PDF
PDF
Informatyka 7-klas-bondarenko-2020
PDF
7 in b_2020
PDF
Iнформатика
підручник володіна
ПІДРУЧНИК "ІНФОРМАТИКА 9 КЛАС" О.О. БОНДАРЕНКО ТА ІН. 2017 РІК
опорні схеми
10 in b_2018
Informatika 10-klas-bondarenko-2018
умцкмци
інформатика 9 кл
9 информ володіна_володін_2009_укр
9 in v_ua
Підручник Інформатика 9 клас Володіна І.Л.
9 in v_ua
Воронкін О.С. Потенціал штучного інтелекту у розвитку персонального навчально...
8 i b_2016
Informatika 8-klas-bondarenko-2016
Використання нечітких множин в експертних системах
8_i_b_2021.pdf
Informatyka 7-klas-bondarenko-2020
7 in b_2020
Iнформатика
Ad

More from Halyna Melnyk (8)

PPT
PPT
Sql granting
PPT
Sql view
PPT
Sql select 3
PPT
Sql select 2
PPT
Sql select 1
PPT
Sql dml
PPTX
Sql ddl
Sql granting
Sql view
Sql select 3
Sql select 2
Sql select 1
Sql dml
Sql ddl

Recently uploaded (19)

PDF
Заняття 2. Способи й методи прийняття раціональних управлінських рішень
PDF
Заняття 1. Вимоги до управлінських рішень командира та їх класифікація
PPT
Підсумки атестації здобувачів другого (магістерського) рівня вищої освіти 20...
PPTX
ПРЕЗЕНТАЦІЯ-ВОГНЕВА-Тема 2 Основи та правила стрільби.pptx
PDF
Заняття 4. Інструменти критичного мислення під час прийняття рішень (AltA).
PDF
akjgaksdj lkaыдуко локж оуыпж оывджл апоыв
PPTX
ПРЕЗЕНТАЦІЯ-ПРАВОВА-Тема 01. Зан. 01.pptx
PPTX
З любов'ю до цілого світу (до 75-річчя від дня народження Василя Михайловича ...
PPTX
Презентація 7 клас Урок 1. Комп'ютерні мережі
PDF
Інформація щодо фактичного використання бюджетних коштів в липні 2025 році
PPTX
Підсумки атестації випускників 2025 року
PDF
Заняття 5. Методика прийняття рішень на основі APSP (Army Problem Solving Pro...
PDF
ы плоывдлпоявлпо яылпояылв по влполвдпо в
PDF
ывла пявдлоп явдла опдвяла опдвла опявлпов
PDF
Заняття 2. Способи й методи прийняття раціональних управлінських рішень.
PDF
яалво вдлаопядвл опдлыв ояпвояыр пывора в
PDF
"Фах" (аналіз твору) Айзек Азімов (презентація)
PDF
Заняття 4. Інструменти критичного мислення під час прийняття рішень (AltA).
PDF
Заняття 1. Вимоги до управлінських рішень командира та їх класифікація
Заняття 2. Способи й методи прийняття раціональних управлінських рішень
Заняття 1. Вимоги до управлінських рішень командира та їх класифікація
Підсумки атестації здобувачів другого (магістерського) рівня вищої освіти 20...
ПРЕЗЕНТАЦІЯ-ВОГНЕВА-Тема 2 Основи та правила стрільби.pptx
Заняття 4. Інструменти критичного мислення під час прийняття рішень (AltA).
akjgaksdj lkaыдуко локж оуыпж оывджл апоыв
ПРЕЗЕНТАЦІЯ-ПРАВОВА-Тема 01. Зан. 01.pptx
З любов'ю до цілого світу (до 75-річчя від дня народження Василя Михайловича ...
Презентація 7 клас Урок 1. Комп'ютерні мережі
Інформація щодо фактичного використання бюджетних коштів в липні 2025 році
Підсумки атестації випускників 2025 року
Заняття 5. Методика прийняття рішень на основі APSP (Army Problem Solving Pro...
ы плоывдлпоявлпо яылпояылв по влполвдпо в
ывла пявдлоп явдла опдвяла опдвла опявлпов
Заняття 2. Способи й методи прийняття раціональних управлінських рішень.
яалво вдлаопядвл опдлыв ояпвояыр пывора в
"Фах" (аналіз твору) Айзек Азімов (презентація)
Заняття 4. Інструменти критичного мислення під час прийняття рішень (AltA).
Заняття 1. Вимоги до управлінських рішень командира та їх класифікація

Lect 1 intro

  • 1. Логічні алгоритмиЛогічні алгоритми та системи штучного інтелектута системи штучного інтелекту
  • 2. Предмет вивченняПредмет вивчення  ЛОГІЧНЕ ПРОГРАМУВАННЯ мова програмування Prolog (Programming in logic)  СИСТЕМИ ШТУЧНОГО ІНТЕЛЕКТУ генетичні алгоритми методи нечіткої логіки нейронні мережі
  • 3. Зміст курсуЗміст курсу  8 семестр Лекції – 26 годин (13 лекцій) Лабораторні роботи – 26 годин  В сесію Іспит Два теоретичних питання Тестові завдання Одна практична задача (Prolog)Одна практична задача (Prolog)  … система І модуль 4 лабораторні роботи – 25 балів Контрольна робота – 10 балів Разом – 35 балів ІІ модуль 4 лабораторні роботи – 35 балів Разом – 35 балів  Іспит – 30 балів
  • 4. ДжерелаДжерела ◦ Братко И. Алгоритмы искусственного интеллекта на языке Prolog. – М. : Вильямс , 2004. – 637 с. ◦ Шрайнер П.А. Основы программирования на языке Пролог : курс лекций : учебное пособие для вузов по специальностям информационных технологий. – М. : Интернет-Университет Информационных Технологий , 2005. – 172 с. ◦ Джонс м.Т. Программирование искусственного интеллекта в приложениях. – М.: ДМК Пресс, 2004. ◦ Осовский С. Нейронные сети для обработки информации / Пер. С польського И.Д. Рудинского.- М.: Финансы и статистика, 2002.- 344 с.: ил. ◦ Девятков В.В. Системы искусственного интеллекта: Учеб. Пособие для вузов. – М.: Изд –во МГУ им. Н.Э. Баумана, 2001. – 352 с., ил. ◦ Рассел, Стюарт, Норвиг, Питер. Искусственный интелект:современный поход, 2-е узд.: Пер. С англ.. – М.-: Издательский дом «Вильямс», 2006. – 1408 с.: ил. ◦ Адаменко А.Н., Кучуков А.М. Логическое программирование иVisual Prolog. – СПб.: БХВ- Петербург, 2003. – 992 С. ◦ Хайкин, Саймон Нейронные сети: полный курс, 2-е издание.: Пер. с англ.. – М.: Издательский дом «Вильямс», 2006. – 1104 с.: ил. – Папал.Тит. Англ. ◦ Рутковская Д., Пилинский м., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И.Д. Рудинского. – М.: Горячая линия –Телеком, 2006. – 452 с.: ил. ◦ Яхъева Г.Э. Нечеткие множества и нейронные сети: Учебное пособие/ Г.Э. Яхъева. – М.: Интернет – Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2006. – 316 с.: ил., табл. ◦ Лю Б.Теория и практика неопределенного программирования / Б. Лю; Пер. с англ.. – М.: БИНОМ. Лаборатория знаний, 2005. – 416 с.: ил.
  • 6. ВступВступ Мета – можливість відтворити здатність людського мозку до дослідження, аналізу та висновків • Наука проектування та створення інтелектуальних машин, особливо – програм штучного інтелектумашин, особливо – програм штучного інтелекту
  • 7. Чи є межа розвитку інтелектуальнихЧи є межа розвитку інтелектуальних машинмашин??  Інтелект: “здатність до навчання та вирішення задач”  Штучний Інтелект: ◦ Штучний Інтелект (AI) інтелект пристроїв,◦ Штучний Інтелект (AI) інтелект пристроїв, роботів та галузь науки, яка ставить за мету їх створення  можливість розв’язання задач  можливість раціонально діяти  можливість діяти як людина
  • 8. Історія АІ  Класичні філософи  Programmable Digital Computers (1940)  1943-1956: • McCulloch & Pitts: Boolean circuit model of• McCulloch & Pitts: Boolean circuit model of brain (Логічна схема моделі мозку) • Dartmouth : поява визначення "Artificial Intelligence“  Золоті роки 1956−1974
  • 9.  1986– Піднесення “machine learning” ◦ Повернення популярності НМ (Neural networks) ◦ Більшість досягнень в напрямку розробки machine learning алгоритмів та додатків 1995-- AI – це наука machine learning  1995-- AI – це наука ◦ Інтеграція навчання, міркування, подання знань ◦ Методи AI використовуються в «зорі» (баченні), лінгвістиці, інтелектуальному аналізі даних тощо.
  • 10.  2006: ПЗ розпізнавання образів доступне в камерах  2003-2007 робот за кермом: DARPA grand challenge  Feb 2011 надійшли запитання, на які може відповісти робот …
  • 11. Чи можуть AI системи праяцювати так ефективно, як праяцювати так ефективно, як Мозок Людини?????
  • 12.  Наскільки складний наш мозок? ◦ Нейрон ◦ 10 12 нейронів в мозку ◦ І набагато більше синапсів (10 14) сполучають ці нейрони ◦ Час циклу: 10 -3 секунди  Наскільки складними можна зробити комп‘ютери? ◦ 108 CPU комп‘ютери? ◦ 108 чи більше транзисторів в CPU ◦ Суперкмп’ютер: сотні CPUs, 1012 bits RAM ◦ Час циклу : сягає 10 - 9 секунд  Висновок ТАК ◦ Замало взаємозв'язків (проводів чи синапсів) ◦ Швидші
  • 13. AIAI ----додаткидодатки:: “Природня мова” Експертні системи Проектування роботів Машинне навчанняМашинне навчання Ігрові задачі
  • 15. “Природня мова”“Природня мова”  Розробка та створення ПЗ для аналізу, розуміння та генерування мови, природньо зрозумілої людині
  • 17. Розпізнавання мовиРозпізнавання мови  Процес перетворення звукового сигналу з мікрофону чи телефону в множину слів.множину слів.  70-100 слів/хв з точністю до 90%
  • 18. Машинний (компМашинний (комп’’ютерний зір)ютерний зір)  Здатність машини до вилучення інформації з образу для вирішення необхіднї задачі  отримання зображення  обробка зображення  аналіз зображення  розуміння зображення
  • 19. Інтелектуальний роботІнтелектуальний робот  Радше імітація здібності людини до отримання інформації та прийняття рішень зприйняття рішень з метою адаптації до певних умов і змін своїх дії.
  • 20. Експертні системиЕкспертні системи  ПЗ для прийняття рішень .  Автоматизоване міркування та доведення теорем.доведення теорем.  Експертні системи пошуку та усунення несправностей.  Експертні системи фондового ринку.
  • 21. В чому різницяВ чому різниця ???????????????? Artificial Intelligence НЕ творчий Natural Intelligence ТворчийНЕ творчий Точний Узгоджений Багатозадачний Творчий Може помилятися Не узгоджений Некерований
  • 22. МовиМови Дослідники АІ розробили кілька спеціалізованих мов програмування для штучного інтелекту, зокрема IPL, Lisp, Prolog,штучного інтелекту, зокрема IPL, Lisp, Prolog, STRIPS, Planner, POP-11 тощо.
  • 23. КласифікаціяКласифікація Мови програмування Алгоритмічні Декларативні Алгоритмічні (процедурні) мови (Fortran, Pascal, C, …) Декларативні (неалгоритмічні) мови Мови логічного програмування (Prolog, …) Мови функціонального програмування (Lisp, …)
  • 25. ПорівнянняПорівняння LISP Функціональне PROLOG Функціональне програмування Загальна ціль Пропонує широкий спектр завдань, простіший у використанні Не вимагає підтримки Прологу Логічне програмування Специфічне використання Легша у вивченні Підтримка різнонаправлених міркувань
  • 26. Створення мовиСтворення мови PrologProlog  1879 - Фержен публікує роботу «Концептуальна мова», викладає основи загальної теорії відношень.  1965 - Дж. Е.Робінсон «Машинно-орієнтована логіка, заснована на принципі резолюції».  1968 – Лавленд «Автоматичне доведення теорем 1968 – Лавленд «Автоматичне доведення теорем шляхом усунення моделей».  1971 - Ковальські і Куенер «Лінійний відбір за допомогою функції резолюції» - принципи логіки предикатів.  1973 - Кольмерор в Марселі створив перший Пролог- інтерпретатор на Фортрані.
  • 27. Створення мовиСтворення мови PrologProlog  1977 - Уоррен і Перейра, Единбург, інтерпрететор / компілятор Прологу для ЕОМ DEC-10, перша реалізація «машини Уоррена» як прототипу наступних Пролог- реалізацій.  1981 - інститут ICOT, Японія, проект ЕОМ п'ятого покоління.покоління.  1982 -Том Остербі (Відділ Інформатики Данського Технічного Університету) розробив Пролог- інтерпретатор для комп'ютера VAX.  1984 - Джон Гофман, Лео Йенсен і Фінн Гронський (Відділ Інф-ки Дат.Тех.Ун-т) розробили Пролог- компілятор для IBM PC.  1993 - під кер. Лео Йенсена розробляється Visual Prolog.
  • 28. Сучасний станСучасний стан  Visual Prolog 7.4  Розробкою мови займається фірма PDC Prolog Development CenterProlog Development Center ◦ http://www.pdc.dk  Версії Prolog’а ◦ Turbo Prolog ◦ PDC Prolog ◦ Visual Prolog
  • 32. Теоретичні дослідженняТеоретичні дослідження в сфері формалізації мисленняв сфері формалізації мислення Традиційна логіка Формальна логікаФормальна логіка Логіка висловлювань Логіка предикатів
  • 33. Традиційна логіка та її закониТрадиційна логіка та її закони Завдання виявити критерій істинності суджень у полеміці. Аристотель ввів поняття судження. Під судженням розуміється закінченаПід судженням розуміється закінчена думка, що висловлена у формі простого речення природної мови.
  • 34. Традиційна логіка та її закониТрадиційна логіка та її закони Аристотелем виведені три закони традиційної логіки: 1.Тотожність: А є А. Суть: деяка річ завжди рівна самій собі. Судження означає тільки саме себе. 2. Суперечливість: А не є не А. Суть: річ не може одночасно володіти і не володіти деякоюодночасно володіти і не володіти деякою властивістю; ніяке судження не є одночасно і істинним і хибним. 3. Виключення середнього: А не є одночасно і А, і не А. Суть: речі або притаманна, або ні деяка властивість. Судження може бути або істинним, або хибним.
  • 35. Форми суджень у традиційній логіціФорми суджень у традиційній логіці Кожне судження за Арістотелем повинно мати 4 елементи: Квантор Суб'єкт Зв'язка Предикат У традиційній логіціАрістотеля допускаються чотири форми суджень, кожна з яких характеризує можливе відношення між класом суб'єктів S і класом предикатів Р:  Усі S є Р.  Ніяке S не є Р. Деякі з S є Р. Деякі з S є Р.  Деякі з S не є Р. Тут «Усі», «Ніяке» - квантори спільності (універсальні квантори); «Деякі з» - квантор існування (екзистенційний квантор); «є» і «не є» - зв'язки. Всі живі істоти є смертними Квантор S PЗв’язка
  • 36. Приклад виведення в дедуктивної системіАристотеляПриклад виведення в дедуктивної системіАристотеля Всі живі істоти є смертними Квантор S PЗв’язка Всі люди є живі істоти Передумови: узгодження Процес такого умовиводу називається процесом виведення нових знань на основі наявних (на основі передумов). Великий недолік - логіка справедлива тільки для суджень; будь-яку проблему необхідно представляти у вигляді сукупності суджень однієї з чотирьох допустимих форм. Квантор S PЗв’язка Всі люди є смертними Квантор S PЗв’язка Заключний висновок:
  • 37. Дедуктивний висновок дляДедуктивний висновок для висловлюваньвисловлювань Логічні закони для формування висловлювань: 1) Modus Ponendo Ponens: Якщо з Р слідує Q і Р істинне, то й Q - істинне, де Р і Q – висловлювання. 2) ModusTollendoTollens: Якщо з Р слідує Q і Q хибне, тоді й Р хибне. 3) Modus PonendoTollens: Якщо і Р, і Q не можуть бути одночасно істинними і Р істинне, тоді Q - хибне (що виключає «або»). 4) ModusTollendo Ponens: Якщо або Р, або Q істинне і Р не істинно, то істинне Q (включає «або» або диз'юнктивний силогізм).
  • 38. Виникнення і розвиток формальної логікиВиникнення і розвиток формальної логіки Приклад: читає (Анна, книгу). читає предикат Анна Петро Іван книгу журнал газету Ферже: предикат (список аргументів). При цьому під аргументами розуміють ті слова, які можуть змінюватися в деяких межах, не змінюючи змісту висловлювання в цілому, а під предикатом - та частина висловлювання, зміна якої призводить до зміни змісту висловлювання. Метою Ферже було створення загальної теорії відношень. Після Ферже загальна теорія відношень отримала назву логіки предикатів.
  • 39. Логіка висловлюваньЛогіка висловлювань У логіці висловлювань з атомарних висловлювань за допомогою логічних з’єднань можуть бути побудовані логічні формули. Атомарним називається висловлювання, яке може мати логічне значення і не може бути розділене на компоненти. Атомарні висловлювання позначаються пропозиціональними змінними, що приймають значення ІСТИНА (T) і ХИБНЕ (F). Логічні з'єднання (зв'язки): ∨ Логічні з'єднання (зв'язки):  примітивні (¬, ∨, &);  непримітівні (імплікація →, еквівалентність ↔). Зміст непримітівних з'єднань виводиться через зміст примітивних: p → q = ~ p ∨ q; p ↔ q = (p & q) ∨ (¬ p & ¬ q). Тут еквіваленція p ↔ q - нове висловлювання, яке вважається істінним тоді і тільки тоді, коли p і q або одночасно істинні, або одночасно хибні.
  • 40. Приклад побудови теорії в логіціПриклад побудови теорії в логіці висловлюваньвисловлювань Опишемо ставлення Петра до англійської мови. Опис природньою мовою: (1) Якщо Петро цікавиться англійською мовою, то або він запишеться на факультатив, або він ледачий. (2) Якщо Петро самостійно вивчає англійську мову, то він цікавиться англійською мовою. (3) Петро самостійно вивчає англійську мову. (4) Петро не ледачий. Виділяємо атомарні висловлювання: Позначення: Лог. зв'язки: Петро запишеться на факультатив. A D → A ∨ B Петро ледачий. B C → D Петро самостійно вивчає мову. C C Петро цікавиться англійською мовою. D ¬ B
  • 41. Логіка предикатівЛогіка предикатів У логіці предикатів ми маємо справу з атомарними формулами, логічними зв‘язками та ППФ. У логіці предикатів атомарна формула складається з символічного позначення предиката і термів, які виступають в ролі аргументів цього предиката: предикат (список термів). У загальному випадку позначення предиката - це ім'я відношення, що існує між аргументами:існує між аргументами: p (t1, t2, ..., tn). Під термом розуміють або константу, або змінну, або виклик (використання) функції. У логіці предикатів прийняті наступні позначення: a, b, c - константи, f, g, h - функції, x, y, z - змінні, P, Q, R – предикати.
  • 42. Функції та відношення в логіці предикатівФункції та відношення в логіці предикатів Приклад 1. Область знань - арифметика, область інтерпретації – множина натуральних чисел. Функція «множення»: МНОЖ (3,2) → 6. Число 6 називається значенням даного використання функції «множення». Приклад 2. Область знань - родинні стосунки між деякою особою на ім'я Іван і деякими іншими людьми, з якими він спілкувався на сімейній вечері. Область інтерпретації – множина людей: Іван, Петро - двоюрідний брат Івана, Михайло - двоюрідний брат Івана, Марія - подруга Михайла: {Іван, Петро, Михайло, Марія}. Оскільки нас цікавлять тільки родинні зв'язки, то той факт, що хтось є подругою людини з заданої області інтерпретації повинен бути описаний за допомогою функції: подруга ("Михайло") → "Марія«.
  • 43. Приклад побудови теорії для предметної областіПриклад побудови теорії для предметної області «Сімейна вечеря»«Сімейна вечеря» Вибір позначень для представлення елементів області інтерпретації. Константи: а - Петро, b - Іван, c - Михайло. Функції: f («Михайло») = «Марія». У висновку для відносини «двоюрідний брат» вводимо предикат P: P (X,Y) - X є двоюрідним братом Y. P (a, b) – істина P (a, f(c)) – хибне P (a, c) – хибне P (f(c), a) – хибне P (b, a) – істина P (b, f(c)) – хибне P (b, c) – істина P (f(c), b) – хибне P (c, a) – хибне P (c, f(c)) – хибне P (c, b) – істина P (f(c), c) – хибне
  • 44. Фразова форма записуФразова форма запису Фразова форма логіки предикатів - це спосіб запису формул, при якому вживаються тільки зв‘язки &, ∨ і ¬. Літерал - це позитивна чи негативна атомарна формула. Фраза - множина літералів, з'єднаних символом ∨. Негативні літерали розміщуються вкінці кожної фрази, а позитивні - напочатку.Схематичний вигляд фрази: ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ P1 ∨ P2 ∨ ... ∨ Pn ∨ N1 ∨ N2 ∨ ... ∨ Nn Тут P1 ... Pn - позитивні літерали, а N1 ... Nn - негативні літерали. Фразу можна розглядати як узагальнення поняття імплікації. Дійсно, якщо A і B - атомарні формули, то A - → B може бути записана як ¬A ∨ B. Оскільки ¬A - негативно, а B - позитивно, то фразова форма матиме вигляд: B ∨ ¬A.
  • 45. Фрази Хорна та резолюціїФрази Хорна та резолюції Фраза Хорна (хорнівскій диз'юнкт) - це фраза, що містить тільки один позитивний літерал. Правило резолюції подібне до диз'юнктивного силогізму (ModusTollendo Ponens). Дві фрази можуть бути резольвовані одна з одною, якщо одна з них містить позитивний літерал, а інша -якщо одна з них містить позитивний літерал, а інша - відповідний негативний літерал з одним і тим же позначенням предиката і однаковою кількістю аргументів, причому аргументи обох літералів можуть бути уніфіковані (тобто узгоджені) один з одним.
  • 46. Характерні особливостіХарактерні особливості PrologProlog--уу  Для представлення знань використовуються фрази Хорна;  Програма описує логічну модель предметної області у вигляді фактів щодо властивостей предметної області і відношень між цими властивостями + правила виведення нових властивостей і відношень з уже заданих;  Використання терма як єдиної структури даних;  Відсутність операторів присвоювання, розгалужень, безумовних переходів та покажчиків.  Для пояснення змісту програми застосовуються три семантичні моделі: декларативна, процедурна моделі та модель у вигляді абстрактної машини.
  • 47. Синтаксис предикатів численняСинтаксис предикатів числення  Представлення фактів та правил English Pred calculus Prolog and , Or ; Only if :- not not    
  • 48. ФактиФакти,, ПравилаПравила і Запитиі Запити  База знань фактів – терми, які супроводжуються повною зупинкою. ◦ parent(ayah, saya). %ayah is my parent ◦ parent(mak, saya). ◦ female(mak). %mak is a female ◦ male(ayah). – Правила – утворюють нове знання ◦ mother(X,Y) :- parent(X,Y) , female(X). %X is mother ofY if X is parent ofY and X is female  Запит – теж сформовані терми , які супроводжуються повною зупинкою ◦ goal parent(X,saya). %who is my parent
  • 49. ФактиФакти Факт - це запис такого відношення, значення якого істинно. Форма запису факту: імя_предиката (аргумент {, аргумент}). При цьому: 1) Всі імена предикатів і аргументів повинні починатися з рядкової латинської літери. 2) Перерахування аргументів - через кому.2) Перерахування аргументів - через кому. 3) Кожен факт повинен закінчуватися крапкою. 4) Кількість аргументів і вид відношень (напрямки відношень) визначаються програмістом і не змінюються при виконанні програми. приклад: факт: who_likes_what (ivan, programming) не еквівалентний факту: who_likes_what (programming, ivan), оскільки має місце зміна напряму відношення: «Іван захоплюється програмуванням»
  • 50. Запис фактів в пролозіЗапис фактів в пролозі В Пролозі тип відношень описується в розділі predicates: who_likes_what (symbol, symbol) При описі фактів і правил у розділі clauses програми на Пролозі однойменні предикати повинні бути згруповані: clausesclauses who_likes_what (ivan, programming). who_likes_what (ivan, reading). who_likes_what (mary, reading). У термінології Прологу будь-яка сукупність фактів (і правил) називається базою даних.
  • 51. PrologProlog командикоманди .... фактифакти  Open Swi-Prolog window  File-New-Type the facts and rules with full stops at the end  Add facts to database parent(ayah,saya). parent(mak,saya). female(mak). male(ayah).  Save- close file -backtoSwiprolog-File-Consult-choose file-open <enter>
  • 52. ПравилаПравила Під правилами в Пролозі розуміються найбільш загальні твердження про об'єкти і відношення між ними. Пролог-правило має вигляд фразової форми: висновок :- ум1, ум2, ..., умN. Приклад правила: common_interests (X,Y): - who_likes_what (X, Z), who_likes_what (Y, Z), X <>Y.
  • 53.  To add more facts and rules, eg.  File- Edit –Choose File – type new rule to indicate relation mother mother(X,Y) :- parent(Y,X) , female(X). Prolog команди … правила mother(X,Y) :- parent(Y,X) , female(X).  SaveSave--Close fileClose file
  • 54. ЗапитиЗапити Запис питань в Пролозі схожа з записом фактів і відрізняється місцем розташування. Для формулювання запитань у програмі на Пролозі існує розділ goal. Звернення до Прологу з питанням ініціалізує процедуру пошуку в базі даних, раніше введеної в систему. Прологпошуку в базі даних, раніше введеної в систему. Пролог переглядає БД в пошуках предиката, що може співставлятися з питанням. Предикати вважаються такими, що співпадають, якщо вони збігаються посимвольно і їх відповідні аргументи попарно збігаються. Якщо предикат-питання збігається з предикатом одного з фактів / правил в БД, то питання узгоджується з БД. При цьому відповіддю на питання буде або Yes, або No.
  • 55. Використання змінних в запитахВикористання змінних в запитах Під змінною в Пролозі розуміють будь-яке ім'я, яке починається з прописної латинської літери. Приклади: Who,What, Ivan. Змінна називається конкретизованою, якщо існує об'єкт, який вона позначає. Якщо не відомо, що саме позначає змінна, то вважається, що змінна не конкретизована. У запитах змінні використовуються для того, щоб знайти деякий об'єкт. Приклад: who_likes_what (ivan, X)Приклад: who_likes_what (ivan, X) відповіддю буде: X = programming X = reading 2 Solutions Yes Якщо позначений змінною об'єкт не має значення в даному контексті, то використовується анонімна змінна ( _ ).
  • 56. Складні запитиСкладні запити Приклад. Вияснимо, чи мають Іван і Марія спільні інтереси. goal who_likes_what (ivan, X), who_likes_what (mary, X). Спочатку узгодимо who_likes_what (ivan, X). Змінна X конкретизується: X = programming. Тепер намагаємося узгодити who_likes_what (mary, programming).who_likes_what (mary, programming). Даний факт відсутній в БД.Тому Пролог автоматично розконкретизує змінну X. Потім Пролог намагається узгодити твердження: who_likes_what (ivan, reading), who_likes_what (mary, reading). Обидва факти, що входять у вираз, присутні в БД. Інших альтернатив для who_likes_what (ivan, X) немає і в якості результату буде видано: X = reading, 1 solution,Yes. Показаний процес отримав назву пошуку з поверненням.
  • 57.  Type at the command line for query. Use symbol ; to list next parent PrologProlog командикоманди....запитизапити.. goal parent(X,saya),parent(X,saya), female(ayah), male(X).
  • 58. Перша програмаПерша програма Факти Горобець – це птах. Горобець – батько пташеняти. Правило висновку Дехто є птахом за умови, що у  Запит ◦ птах (Z)  Всі можливі рішення: Дехто є птахом за умови, що у нього є батько - птах. Програма птах (горобець). птах (X):– батько(Y, X), птах(Y). батько(горобець, пташеня). рішення: ◦ Z = горобець ◦ Z = пташеня
  • 59. Перша програмаПерша програма PREDICATES bird (symbol) parent (symbol, symbol) CLAUSES bird (sparrow).bird (sparrow). bird (X) :- parent (Y, X), bird (Y). parent (sparrow, nestling). Goal: bird (Z) Z = sparrow Z = nestling
  • 60. Перша програмаПерша програма PREDICATES bird (symbol) parent (symbol, symbol) CLAUSES bird («горобець»).Факт Факт bird («горобець»). bird (X):– parent (Y, X), bird (Y). parent («горобець», «пташеня»). Goal: bird (Z) Z = «горобець» Z = «пташеня» Факт Правило висновку Зовнішня ціль
  • 61. Узгодження цільових твердженьУзгодження цільових тверджень Для доведення цільових тверджень Пролог використовує відомі твердження. Якщо підціль являє собою факт, то узгодження закінчується, як тільки факт буде знайдений в базі. Якщо підціль є правилом, то задача зводиться до кон'юнкції предикатів-підцілей. При узгодженні Пролог керується такими правилами:При узгодженні Пролог керується такими правилами:  Константа рівна тільки сама собі;  Змінна може бути конкретизована будь-яким об'єктом Прологу;  Структури співпадають, якщо збігаються їх функтори, стан і кількість аргументів. Для кожної підцілі Пролог генерує свій маркер. Якщо цільове твердження не доведено, збуджується процесс повернення.
  • 62. Розгляд цільових тверджень приРозгляд цільових тверджень при використанні механізму поверненнявикористанні механізму повернення Якщо цільове твердження не доведено, здійснюється повернення за «ланцюжком доказів» у місце вибору твердження для узгодження заново відповідних цільових тверджень. При цьому Пролог намагається знайти альтернативне твердження, що відповідає даній цілі. Спочатку відбувається розконкретизація всіх змінних, що булиСпочатку відбувається розконкретизація всіх змінних, що були конкретизовані в ході доведення даного цільового твердження. Потім поновлюється пошук у базі даних, починаючи з поміченого маркером місця. Якщо буде знайдено інше твердження, яке відповідає цільовому, Пролог помістить в це місце маркер, пошук у базі даних продовжиться, починаючи з поміченого місця.
  • 63. Приклад узгодження цільового твердженняПриклад узгодження цільового твердження Факт не виявлено, M і F розконкрети- зовуються Успішне узгодження
  • 64. Поняття «зчеплених змінних»Поняття «зчеплених змінних» У ряді випадків узгодження цільових тверджень деяка, спочатку неконкретизована, змінна X може бути автоматично конкретизована значенням іншої змінної Y. В таких випадках говорять, що змінні X і Y стають зчепленими. Приклад відношення «рідна сестра»: sister (X,Y): - woman (X), parent (X, Mother, Father), parent (Y, Mother, Father).woman (X), parent (X, Mother, Father), parent (Y, Mother, Father). Узгодження цільового твердження sister («Марія», Y) призведе в одному з можливих випадків успішного доведення до конкретізаціі Y значенням «Марія». Для запобігання породження небажаних рішень як наслідок зчеплення змінних, в тіло правила слід вводити додаткові твердження для контролю взаємних співвідношень значень змінних в заголовку правила: sister (X,Y): - not (X =Y), woman (X), parent (X, Mother, Father), parent (Y, Mother, Father).
  • 65. ВправаВправа Family relationshipsFamily relationships 1) Предикати male/1, female/1, parent_of/2 для представлення Prolog бази знань father(Father,Child) mother(Mother,Child) 2) Сформулюйте правила: father(Father,Child) mother(Mother,Child) grandparent(Grandparent,Child) sister(Sister,Person) grandchild(Grandchild,Child) father_of(X,Y) :- male(X), parent(X,Y). grandparent(X,Z) :- parent(X,Y), parent(Y, Z).