У нас вы можете посмотреть бесплатно Prolog як семантичний еквівалент реляційної алгебри или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Prolog як семантичний еквівалент реляційної алгебри Теоретико-множинні операції — це фундамент сучасної інформатики. Незалежно від того, що ви розробляєте: системи штучного інтелекту, архітектуру баз даних, алгоритми кібербезпеки чи просто працюєте зі словниками, графами та списками — ви неминуче стикаєтесь із необхідністю обробляти множини. Коли у 1970-х роках з'явилася реляційна алгебра Кодда, вона стала вичерпним математичним апаратом для розв'язання таких задач. Сьогодні цей апарат найчастіше вивчають через синтаксис SQL, де кожна дія виглядає як окремий інструмент: CROSS JOIN для декартового добутку, WHERE для фільтрації, INTERSECT для перетину. Через це у розробників формується звичка сприймати, наприклад, з'єднання таблиць просто як "декартів добуток плюс умову". Але аналіз цієї теми через парадигму логічного програмування (ЛП) розкриває набагато глибшу картину. Ця доповідь базується на дослідженнях Пана Ющенка і пропонує унікальний погляд на природу роботи з даними, якого ви не знайдете в класичних монографіях. Ми відійдемо від традиційного синтаксичного сприйняття і покажемо: Що мова Prolog є абсолютно повноцінним інструментом для обробки множин, який повністю покриває всі операції Алгебри Кодда. Що між логічним програмуванням та РАК існує сувора семантична еквівалентність, незважаючи на їхню синтаксичну прірву. Таке переосмислення має величезне пізнавальне значення. Розуміння того, як один простий логічний принцип замінює цілу низку SQL-операторів, дозволяє по-новому поглянути на механіку роботи з множинами не лише в реляційних базах даних, а й у функціональних (наприклад, Haskell) та класичних імперативних мовах. У подальшому будемо розглядати декларативні предикати Prolog як відношення і не зосереджуватись на обчислювальних предикатах (таких як read, write, is, not). Кожен виклик предиката є зверненням до цього відношення. Тіло правила формує кон'юнкцію відношень. Виконання правила у Prolog призводить до послідовної генерації успішних підстановок змінних. Механізм повернення (backtracking) перебирає альтернативні варіанти, скасовуючи попередні зв’язування під час відкату. Операція проєкції в реляційній алгебрі зменшує арність (кількість атрибутів) відношення. У Prolog це реалізується елементарно на рівні заголовка правила та анонімних змінних: Значення, позначені символом _, обчислюються, але не зв'язуються з жодним ідентифікатором і не потрапляють до результуючого відношення p. Розглянемо приклад правила з двома викликами: На цьому прикладі ми бачимо правило r, яке викликає два предикати: p1 з аргументами A і B, та p2 з аргументами C і D. Тут важливо підкреслити головну деталь: між ними немає жодної спільної змінної. Оскільки немає спільної змінної, немає й інформаційної залежності. Тому рушій Prolog просто згенерує всі можливі комбінації першого відношення з усіма можливими комбінаціями другого. Ми отримали класичний декартів добуток. Узагальнюючи, у правилах, де n викликів предикатів не мають спільних змінних (тобто незалежні один від одного інформаційно), результатом є декартів добуток n відповідних відношень або множин. Кожен виклик формує свої результати незалежно. Для першого результату p1 формуються всі можливі варіанти результатів p2. Потім процес повторюється для другого результату p1. Це створює класичний декартів добуток простору рішень. Кількість предикатів та їхня арність можуть бути довільними. Чому саме спільна змінна створює залежність? Ключова ідея полягає в механіці логічного рушія: Уніфікація виконує підстановки конкретних значень замість змінних. Ці підстановки поширюються на інші виклики предикатів у межах кон'юнкції. Це миттєво обмежує простір рішень (відсікає невідповідні факти з бази знань). Саме цей процес і є сутністю тета-обмеження. Перехід до обмеження відбувається в момент збігу змінних. У викликах p1 та p2 з'являється спільна змінна Y. Тепер ці виклики не є незалежними. Значення Y, яке було успішно знайдене у p1, автоматично підставляється в p2, обмежуючи його простір пошуку. Виникає інформаційна залежність, яка забороняє формувати результати незалежно. Спільні змінні без додаткових умов моделюють екві-з'єднання (equi-join), тобто умову строгої рівності. У ЛП структура кон’юнкції предикатів разом з механізмом уніфікації утворює універсальний реляційний механізм, який залежно від топології спільних змінних реалізує декартів добуток, тета-обмеження, тета-з’єднання та перетин. Тобто, з урахуванням простого запису об'єднання та реляційного ділення, ЛП покриває всі операції РАК. НаУКМА, ф-т Інформатики. © Костик Олексій - студент © Ющенко Юрій Олексійович - доцент, к.ф.-м.н.