на стр 6, лекции 3, Очевидно "Ck <= модуль(Gk(е))*b(k+1)" (1) - , подскажите что значит "модуль" и почему это очевидно... |
Логическое программирование
Элементы языка Пролог
Основным элементом языка Пролог является терм. Термы строятся из переменных, атомов, чисел и функторов с использованием круглых скобок.
Переменная — это цепочка (слово), составленная из букв, цифр и символа подчеркивания, начинающаяся с большой буквы или символа подчеркивания. Если переменная используется однажды, то вместо нее можно использовать так называемую анонимную переменную, состоящую из одного символа подчеркивания.
Атом — это цепочка, составленная из букв, цифр и символа подчеркивания, начинающаяся с маленькой буквы или с большой буквы, но тогда в одинарных кавычках. Последний способ удобен, если атом является собственным именем. Иногда атомы строятся и из специальных знаков, но мы не будем их использовать при первоначальном знакомстве.
Числа записываются традиционным образом. Числа с плавающей запятой в обычных применениях Пролога используются редко из-за ошибок округления.
Функтор синтаксически совпадает с атомом.
Терм — это либо переменная, либо атом, либо число, либо выражение вида
где — функтор, а — термы.Для некоторых специальных функторов, например знаков арифметических операций, отношений сравнения и других, в Прологе, как в традиционной математике, используется инфиксная форма записи. Например, выражение рассматривается как терм с функтором и двумя аргументами и .
Среди термов ввиду особой важности выделяются термы для представления списков. Канонически список представляется двухместным термом, первым аргументом которого является головной элемент списка, а вторым — его хвост, то есть список, полученный из исходного удалением головного элемента. Функтором в такой записи часто используется символ точка. Альтернативным представлением списка является выражение вида или , где — головной элемент, а — хвост списка. Допустимо также выражение вида .
Важным инструментом в языке Пролог является унификация термов с помощью подстановок. Такую унификацию мы применяли выше в примерах на доказательство методом резолюций. Сейчас более подробно рассмотрим понятие унификации.
Подстановкой называется набор пар , где — переменные, а — термы.
Через обозначим результат подстановки термов в выражение вместо переменных .
Пусть — еще одна подстановка. Композиция двух подстановок и определяется следующим образом:
Подстановка может быть вычислена следующим образом. Составим из подстановок и последовательность и проведем следующие две операции:- Если некоторое совпадает с некоторым , то вычеркиваем пару .
- Если , то вычеркиваем пару .
Пример. Пусть . Рассмотрим последовательность
и по первому правилу вычеркиваем пары и , затем по второму правилу — пару . В результате получимПодстановка называется унификатором термов , , если .
Наиболее общим унификатором термов , называется подстановка , такая, что любой другой их унификатор представляется в виде .
Пример. Для термов , унификатором будет подстановка
Будет ли она наиболее общим унификатором?Пример.
Для термов и наиболее общим унификатором будет подстановка . Результатом унификации будет терм