В настоящей главе вводятся основные понятия логического программирования и базовые понятия языка Пролог . Рассматриваются примеры определения отношений в программе на языке Пролог . Показывается, как использовать интерпретатор PIE для написания программ на языке Пролог , а также как создавать консольные приложения в системе Visual Prolog. Описываются основные разделы программы в языке Visual Prolog.
1.1. Понятие логической программы
Логическая программа — это последовательность предложений, описывающих отношения между элементами, или объектами, некоторой задачи. Объекты представляются термами.
Термы определяются индуктивно — это константы, переменные или выражения вида , где
— функциональный символ, а
— термы. Термы без переменных называются основными, или замкнутыми термами. Отношения описываются с помощью предикатов. Выражения вида


Введение в логику, урок 1: Базовые понятия
Предложение логической программы имеет вид:
— знак конъюнкции,
— знак импликации,
— атомарная формула, а
— литералы. На языке Пролог такое предложение записывается следующим образом:
.
Предложения в языке Пролог называют правилами. В конце правила ставится знак точки. В общем случае структура правила имеет вид:
.
Правило с пустым телом называется фактом. Правило с пустым заголовком — это цель, запрос или вопрос к программе.
По умолчанию предполагается, что переменные в правилах программы связаны кванторами всеобщности, а в запросе — кванторами существования.
Логика. Основы Логики. Логическое Мышление
млекопитающее(«слон»). млекопитающее(«зебра»). животное(«страус»). животное(«уж»). животное(X):- млекопитающее(X).
С помощью фактов определяются безусловные отношения. Отношению «млекопитающее» принадлежат элементы «слон» и «зебра». В программе они представлены константами. Соответственно, область истинности предиката млекопитающее имеет вид: .
Правило выражает импликацию
.
Областью истинности предиката животное является множество .
Вопросы бывают частные и общие, простые и составные. Частные вопросы помогают выяснить, верно ли, что заданные элементы принадлежат отношению:
.
В ответе на частный запрос отмечается истинность или ложность цели.
Общие вопросы задаются для того, чтобы выяснить, какие элементы принадлежат отношению. В них используются переменные:
.
Ответом на запрос является множество значений переменных, при которых формула цели является истинной.
Простые вопросы состоят из одной цели, составные — из нескольких, их называют подцелями. В составных вопросах подцели соединяются знаками конъюнкции «,» или знаками дизъюнкции «;» (см. упр. 2). В первом случае запрос называется конъюнктивным, во втором — дизъюнктивным. Значения переменных в подцелях, разделенных знаками дизъюнкции, не связаны между собой.
Переменные в языке Пролог локальны и имеют математический смысл. Их значение сохраняется только на протяжении одного правила. Они не объявляются, в любом предложении их всегда можно переименовать. Переменные пишутся с прописной буквы или начинаются со знака подчеркивания.
Состоят только из знака подчеркивания или начинаются с него анонимные переменные, которые не принимают никаких значений. Если в предложении встречается несколько анонимных переменных, то все они считаются разными переменными, хотя и обозначаться могут одинаково, например, с помощью только знака подчеркивания «_».
Во всех словах — ключевых словах, именах переменных, предикатах, доменах и др., которые используются в программе, имеет значение регистр только первого символа, регистр остальных символов не важен.
В языке Visual Prolog комментарий до конца строки начинается со знака % . Между знаками /* и */ можно заключать комментарии произвольной длины.
Всюду ниже обозначение используется для указания арности отношения или предиката: предикат
имеет арность
.
Источник: intuit.ru
Что такое логическое программирование и для чего нужно
Для создания компьютерных программ используют разные модели программирования. В статье рассказываем о логическом программировании — что это такое, где применяется и какой язык необходим для этой модели.
Подготовлено_выпускником —>
Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев
Что такое логическое программирование
Логическое программирование — одна из возможных парадигм программирования. Она основывается на математической логике: программы задаются в форме логических утверждений и правил вывода. На основании заданных фактов формируются новые.
Это упрощенная версия функционального программирования для математиков и лингвистов, которые обрабатывают символьную информацию. Алгоритм решений здесь не требуется, вместо него описывается мир задачи, объекты и их свойства, отношения между объектами.
Логическая программа — это набор правил и отношений, которые называются фактами. На основании заданных фактов и правил производятся новые факты. Процесса вычислений программа не выполняет, а функционирует скорее как база данных: выдаёт по запросу логический факт из уже имеющихся в базе.
Самым первым языком логического программирования был Planner. Его использовали для снижения требований к вычислительным ресурсам и получения фактов без активного использования стека. Он стал основой для разработки более современного и самого популярного на сегодняшний день языка логического программирования — Prolog.
Где применяют логическое программирование
Prolog или Пролог — уникальный язык программирования. С его помощью выполняются различные задачи, при этом уже более 20 лет в языке не происходит существенных изменений.
На прологе разрабатываются быстрые прототипы прикладных программ, осуществляется управление производственными процессами, создаются динамические реляционные базы данных. Также пролог используют при написании языковых переводчиков или для создания языковых интерфейсов существующих программ.
Экспертные системы, которые позволяют получить экспертную информацию без обращения к специалистам, могут быть написаны с применением пролога. Символьные пакеты вычислений для решения уравнений, доказательства теорем — также могут быть созданы с применением логического программирования. Нередко пролог используется для исследований в области искусственного интеллекта.
Кому нужно изучать логическое программирование
Логическое программирование отличается от классического, поэтому для новичка в сфере может стать сложной дополнительной ступенью на пути к освоению профессии. Начинать изучение с основ классического программирования — наиболее рациональное решение.
Для тех, кто уже освоился и владеет базовыми навыками, умеет решать задачи и разрабатывать программы — логическое программирование будет дополнительной тренировкой навыков и откроет новые возможности в профессии.
Познакомиться с профессией программиста, научиться писать код и пользоваться инструментами разработки вы можете на курсе «Web-программист» в Академии «Сигма».
За три месяца вы освоите базовые знания фронтенд- и бэкенд-разработки, напишете первый код и оформите кейсы для портфолио. Обучение проходит онлайн: просматриваете лекции и выполняете практические задания на образовательной платформе. Преподаватели-практики будут сопровождать вас на каждом этапе и давать обратную связь на все практические работы.
После прохождения курса вы сможете претендовать на вакансию джуниор веб-программиста или разработчика. Центр карьеры обеспечит необходимой поддержкой: вместе с HR-специалистами вы составите сильное резюме, оформите кейсы и подготовитесь к собеседованию с работодателем. Каждому студенту Академии доступна бесплатная карьерная консультация и более 90 материалов по трудоустройству.
Самые активные получат возможность пройти оплачиваемую стажировку в компаниях-партнёрах Академии. Также у вас будет доступ к телеграм-каналам с вакансиями от проверенных работодателей, где ежедневно публикуется 10+ актуальных предложений.
Запишитесь на курс «Web-программист» в Академии «Сигма» и постройте успешную карьеру в IT.
Поделиться:
Помогаем найти вашу работу мечты
Лучшая инвестиция — это инвестиция в себя, в свои знания и будущее. Оставьте заявку на обучение прямо сейчас и станьте участником проекта
Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев
Источник: edu-sigma.ru
Логическое программирование
Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве теорем, с использованием механизмов логического вывода информации на основе заданных фактов и правил вывода.Язык Пролог и логическое программирование и широко используются для создания баз знаний и экспертных систем и исследований в сфере искусственного интеллекта на основе логических моделей баз знаний и логических процедур вывода и принятия решений.
Язык и система Пролог
Пролог (англ. Prolog) — язык и система логического программирования, основанные на языке предикатов математической логики исчисления предикатов, представляющей собой подмножество логики предикатов первого порядка.
Основными понятиями в языке Пролог являются факты, правила логического вывода и запросы, позволяющие описывать базы знаний, процедуры логического вывода и принятия решений, на основе которых система логического программирования Пролог делает логические выводы и дает осмысленные ответы.
Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.
В интерпретаторе Пролога особую роль играют конкретные запросы к базам знаний, на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщенных запросов с переменными в качестве аргументов созданная систем Пролог выводит конкретные данные в подтверждение истинности обобщенных сведений и правил вывода.
Факты в базах знаний на языке Пролог представляют конкретные сведения (знания). Обобщённые сведения и знания в языке Пролог задаются правилами логического вывода (определениями) и наборами таких правил вывода (определений) над конкретными фактами и обобщенными сведениями.
- ВАК, проф.,док.комп.наук 05:28, 21 июля 2009 (UTC)
Базы Знаний
Под Базами знаний в информатике понимают совокупность фактов и правил вывода, допускающих логический вывод и осмысленную обработку информации. В языке Пролог базы знаний описываются в форме конкретных фактов и правил логического вывода над базами данных и процедурами обработки информации, представляющих сведения и знания о людях, предметах, фактах событиях и процессах в логической форме.
Наиболее важным свойством информации, хранящейся в базах знаний, является достоверность конкретных и обобщенных сведений в базе данных и релевантности информации, получаемой с использованием правил вывода, заложенных в базу знаний.
В ответах на простейшие запросы к базам знаний системы логического программирования Пролог, выдает значения «истина» и «ложь» в зависимости от наличия соответствующих фактов. Истинность и ложность ответов существенно зависит от наполнения баз знаний фактической информацией и ее непротиворечивостью.
Обобщенные сведения в базах знаний на языке Пролог задаются с помощью правил логического вывода, выполняющих роль определения понятий, а также логических процедур, состоящих из наборов правил логического вывода. Достоверность обобщенных сведений зависит от наличия необходимых фактов и достоверности данных в базах знаний.
- ВАК, проф.,док.комп.наук 05:30, 21 июля 2009 (UTC)
Логическая модель знаний
Базы Знаний в Информатике — то совокупность фактов и правил вывода в экспертных системах и системах логического программирования, реализующие осмысленные ответы на вопросы.
Факты и правила в базах знаний описываются с использованием языка логического программирования Пролог в форме логических предикатов в русскоязычной лексике. Факты и правила в базах знаний описываются с использованием языка логического программирования Пролог в форме логических предикатов в русскоязычной лексике.
Знания в таких базах представляют конкретные и обобщенные сведения о людях, вещах, событиях, свойствах, процессах и явлениях предметного мира.
Сведения о вещах и людях как и любая информация могут быть достоверными и недостоверными. Достоверная информация воспринимается как истина, а недостоверная информация — как ложь. Базы знаний в экспертных системах с логической точки зрения представляют прикладные логические теории, в рамках которых могут делаться ложные и истинные выводы.
Базы знаний экспертных систем в этом смысле становятся логическими моделями людей-экспертов, обладающих теми или иными достоверными и недостоверными знаниями.
Тестирование знаний студентов можно понимать и осмысливать как тестирование баз знаний логических моделей учащихся — студентов, школьников и слушателей курсов.
См. также
Литература
- Анатолий Адаменко, Андрей Кучуков Логическое программирование и Visual Prolog (с CD).. — СПб.: «БХВ-Петербург», 2003. — С. 990. — ISBN 5-94157-156-9
- Иван Братко Алгоритмы искусственного интеллекта на языке PROLOG = Prolog Programming For Artificial Intelligence. — М.: «Вильямс», 2004. — С. 640. — ISBN 0-201-40375-7
- Каймин В.А. Информатика. Учебник для студентов. М.: ИНФРА-М, 1998-2009.
- Каймин В.А. Информатика. Учебник для школьников. М.: Проспект, 2009.
Источник: www.tadviser.ru