Справочник от Автор24
Поделись лекцией за скидку на Автор24

Базовые принципы логического программирования

  • 👀 488 просмотров
  • 📌 434 загрузки
Выбери формат для чтения
Статья: Базовые принципы логического программирования
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Базовые принципы логического программирования» docx
Реферат Лекция №1. Парадигмы программирования. Базовые принципы логического программирования. Процесс унификации и определение отношений на основе правил. Выполнил: Проверил: Содержание Содержание 2 Парадигмы программирования 3 Декларативное и процедурное программирование 3 Базовые принципы логического программирования 4 Процесс унификации и определение отношений на основе правил 4 Машина вывода и механизм бектрекинга 6 Список источников 6 Парадигмы программирования Парадигма программирования – это совокупность принципов, методов и понятий, определяющих способ конструирования программ. Парадигма определяется: • вычислительной моделью • базовой программной единицей • методами разделения абстракций Разновидности парадигмы: 1. Императивная парадигма • структурное программирование • обобщенное программирование • аспектно-ориентированное программирование программирование 2. Декларативная парадигма • функциональное программирование • логическое программирование 3. Объектно-ориентированная парадигма 4. Табличная парадигма 5. Реляционная парадигма Декларативное и процедурное программирование Под программой понимают последовательность команд, этот стиль программирования принято называть императивным (процедурным). Программируя в императивном стиле, программист должен объяснить компьютеру, как нужно решать задачу.  Примерами императивных языков могут служить языки: Assembler и C++. Декларативный стиль можно назвать противоположным императивному. Программа представляет собой совокупность утверждений, описывающих что представляет собой программа и желаемый результат. Программируя в декларативном стиле, программист должен задать спецификацию решения задачи. Примерами декларативных языков могут служить языки: LISP и Prolog. Базовые принципы логического программирования На примере Пролога можно выделить основные принципы логического программирования. Сопоставление с образцом, вывод с поиском и возвратом – механики, присущие этому языку программирования. Для хранения данных в Прологе используются списки, а не массивы. В языке отсутствуют операторы присваивания и безусловного перехода (указатели). Естественным, а то и единственным методом программирования является рекурсия. Пролог, как и все логическое программирование, требует немного иного стиля мышления, отказа от стереотипов императивного программирования. Процесс унификации и определение отношений на основе правил Теорема унификации Для любого унифицируемого конечного множества простых выражений S алгоритм унификации закончит свою работу и выдаст наиболее общий унификатор для S. Правила значительно расширяют возможности базы знаний, так как они универсальны и могут вместо конкретных значений содержать переменные. Рассмотрим процесс унификации на примере, введем в программу правило, которое определяет отношение бабушка, как мама мамы: baba(X,Y):- mama(X,Z), mama(Z,Y). Дальше напишем: DOMAINS s = string PREDICATES mama(s,s) baba(s,s) CLAUSES mama("Наташа","Даша"). mama("Даша","Маша"). mama("Маша","Глаша"). mama("Маша","Паpаша"). baba(X,Y):- mama(X,Z), 43 mama(Z,Y). Запустим программу и зададим машине вывода вопрос baba(“Наташа”,W). Процесс унификации будет проходить следующим образом: • Сверху – вниз будет происходить поиск предиката baba( первые четыре факта не подходят) • Наткнувшись на правило baba, Пролог сопоставляет вопрос baba(“Наташа”,W) с головой правила baba(X,Y), после чего переменная X конкретизируется значением “Наташа”, а W связывается с переменной Y из правила baba(X,Y) • Пролог пытается последовательно достигнуть подцели mama(“Наташа”,Z) и mama(Z,Y) • Просматривая факты Пролог натыкается на факт mama("Наташа","Даша"), что приводит к конкретизации переменной Z значением “Даша” • Подцель считается достигнутой и Пролог переходит к доказательству подцели mama(Z,Y), а вернее – mama(“Даша”,Y) • Поиск снова начинается с первого факта, который в данном случае не может быть сопоставлен с подцелью ввиду несопоставимости 45 первых аргументов. Но уже на втором шаге сопоставление становится возможным и переменная Y конкретизируется значением “Маша”. Машина вывода и механизм бектрекинга Логический вывод в Прологе выполняется машиной вывода, которая работает на идее сопоставления образцов, связывания фактов и логических переменных, сопоставлении вопросов с возможными ответами, основанными на правилах и фактах. Пролог просто доказывает гипотезы, реализуя различные стратегии логического вывода. Зачастую при решении задач требуется вернуться назад на некоторый шаг промежуточного решения, чтобы продолжить решение уже с другой логикой. На Прологе это можно сделать с помощью бэктрекинга. Как правило в месте ветвления подцелей Пролог ставит метку и начинает испытывать первую альтернативу, Если она оказывается неуспешной он продолжает решение с метки, исследуя вторую альтернативу. Точка возврата при отработка альтернатив называется точкой бэктрекинг поинт. Список источников 1. Основы программирования на языке Пролог : курс лекций : учеб. пособие для студентов вузов, обучающихся по специальностям в обл. информ. технологий / П. А. Шрайнер. - М. : Интернет - Ун-т Информ. Технологий, 2005. - 176 с. - (Серия «Основы информационных технологий» / Интернет-Ун-т информ. технологий). 2. Чистая архитектура. Часть II — Парадигмы программирования / Хабр (habr.com) 3. Практика логического программирования на языке Пролог: Учебно пособие / А.Ю. Беляков М-во с.-х. РФ, федеральное гос. бюджетное образов. учреждение высшего образов. «Пермская гос. с.-х. акад. им. акад. Д.Н. Прянишникова». – Пермь : ИПЦ «Прокростъ», 2017. – 129 с.
«Базовые принципы логического программирования» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot