Программирование на языке Пролог для искусственного интеллекта




Глава 2 Синтаксис и семантика пролог программ


    Глава 2 синтаксис и семантика пролог программ
    Глава 2 СИНТАКСИС И СЕМАНТИКА ПРОЛОГ ПРОГРАММ В данной главе дается систематическое изложение синтаксиса и семантики основных понятий Пролога, а также вводятся структурные объекты данных. Рассматр...
    Объекты данных
    Объекты данных На рис. 2.1 приведена классификация объектов данных Пролога. Пролог-система распознает тип объекта по его синтаксической форме в тексте программы. Это возможно благодаря тому, что с...
    Обьекты данных пролога.
    Обьекты данных Пролога. предписывает различные формы записи для различных типов объектов данных. В гл. 1 мы уже видели способ, с помощью которого можно отличить атомы от переменных: переменные нач...
    Обьекты данных пролога 2
    имеетребенка( X) :- родитель( X, Y). Это правило гласит: Для всех X, Х имеет ребенка, если X является родителем некоторого Y. Здесь мы определяем свойство имеетребенка таким образом, что оно не за...
    Обьекты данных пролога 3
    имеетребенка( X) :- родитель( X, _ ). Всякий раз, когда в предложения появляется одиночный символ подчеркивания, он обозначает новую анонимную переменную. Например, можно сказать, что существует н...
    Обьекты данных пролога 4
    некто_имеет_ребенка :- родитель( _, _ ). Это предложение эквивалентно следующему:...
    Обьекты данных пролога 5
    некто_имеет_ребенка :- родитель( X, Y). Однако оно имеет совершенно другой смысл, нежели некто_имеет_ребенка :- родитель( X, X). Если анонимная переменная встречается в вопросе, то ее значение не...
    Обьекты данных пролога 6
    ?- родитель( X, _ ). Лексический диапазон имени - одно предложение. Это значит, что если, например, имя Х15 встречается в двух предложениях, то оно обозначает две разные переменные. Однако внутри...
    Структуры
    2. 1. 3. Структуры Структурные объекты (или просто структуры) - это объекты, которые состоят из нескольких компонент. Эти компоненты, в свою очередь, могут быть структурами. Например, дату можно р...
    Дата - пример структурного объекта:
    Дата - пример структурного объекта: (а) его представление в виде дерева; (б) запись на Прологе. Тогда объекты, приведенные на рис. 2.3, можно представить следующими прологовскими термами: Р1 = точ...
    Простые геометрические объекты.
    Простые геометрические объекты. Соответствующее представление этих объектов в виде деревьев приводится на рис. 2.4. Функтор, служащий...
    Представление объектов с рис. 2.3 в виде деревьев.
    Представление объектов с рис. 2.3 в виде деревьев . корнем дерева, называется главным функтором терма. Если бы в такой же программе фигурировали точки трехмерного пространства, то можно было бы дл...
    Древовидная структура, соответствующая арифметическому
    Древовидная структура, соответствующая арифметическому выражению (а + w)*(s - 5). Это, конечно, совершенно правильный прологовский терм, однако это не та форма, которую нам хотелось бы иметь, при...
    Некоторые простые электрические...
    Некоторые простые электрические цепи и их представление: (а) последовательное соединение резисторов rl и r2; (b) параллельное соединение двух резисторов; (с) параллельное соединение трех резисторо...
    Упражнения
    Упражнения Какие из следующих выражений представляют собой правильные объекты в смысле Пролога? Что это за объекты (атомы, числа, переменные, структуры)? (а) Диана (b) диана (с) 'Диана' (d) _диана...
    Сопоставление
    Сопоставление В предыдущем разделе мы видели, как используются термы для представления сложных объектов данных. Наиболее важной операцией над термами является сопоставление. Сопоставление само по...
    Сопоставление
    Рис. Сопоставление треугольник(( точка( 1, 1), А, точка( 2, 3)) = треугольник( Х, точка( 4, Y), точка( 2, Z)) является вертикальным, если x-координаты его точек-концов совпадают; никаких других ог...
    Пример вертикальных и горизонтальных отрезков прямых.
    Пример вертикальных и горизонтальных отрезков прямых. Сформулируем более общий вопрос к программе: Существуют ли какие-либо вертикальные отрезки, начало которых лежит в точке (2,3)? ?- верт( отр(...
    Упражнения
    Упражнения Будут ли следующие операции сопоставления успешными или неуспешными? Если они будут успешными, то какова будет результирующая конкретизация переменных? (а) точка( А, В) = точка( 1, 2) (...
    Декларативный смысл пролог-программ
    Декларативный смысл пролог-программ В главе 1 мы уже видели, что пролог-программу можно понимать по-разному: с декларативной и процедурной точек зрения. В этом и следующем разделах мы рассмотрим б...
    Упражнения
    Упражнения Рассмотрим следующую программу: f( 1, один). f( s(1), два). f( s(s(1)), три). f( s(s(s(X))), N) :- f(X, N). Как пролог-система ответит на следующие вопросы? Там, где возможны несколько...
    Процедурная семантика
    Процедурная семантика Процедурная семантика определяет, как пролог-система отвечает на вопросы. Ответить на вопрос - это значит удовлетворить список целей. Этого можно добиться, приписав встречающ...
    Входы и выходы процедуры вычисления списка целей.
    Входы и выходы процедуры вычисления списка целей. Смысл двух составляющих выхода такой: (1) Признак успех/неуспех принимает значение да, если цели достижимы, и нет - в противном случае. Будем гово...
    Пример, иллюстрирующий процедурную семантику
    Пример, иллюстрирующий процедурную семантику Пролога: шаги вычислений, выполняемых процедурой вычислить . В главе 1 в разд. Как пролог-система отвечает на вопросы мы уже фактически рассмотрели, чт...
    Вычисление целевых утверждений пролога.
    Вычисление целевых утверждений Пролога. Всякий раз, как рекурсивный вызов процедуры вычислить приводят к неуспеху, процесс вычислений возвращается к ПРОСМОТРУ и продолжается с того предложения С,...
    Упражнение
    Упражнение Рассмотрите программу на рис. 2.10 и по типу того, как это сделано на рис. 2.10, проследите процесс вычисления пролог-системой вопроса ?- большой( X), темный( X). Сравните свое описание...
    Пример: обезьяна и банан
    Пример: обезьяна и банан Задача об обезьяне и банане часто используется в качестве простого примера задачи из области искуственного интеллекта. Наша пролог-программа, способная ее решить, показыва...
    Исходное состояние обезьяньего...
    Исходное состояние обезьяньего мира, представленное в виде структурного объекта. Его четыре компоненты суть горизонтальная позиция обезьяны, вертикальная позиция обезьяны, позиция ящика, наличие и...
    Рекурсивная формулировка отношения можетзавладетъ.
    Рекурсивная формулировка отношения можетзавладетъ . Данное предложение на самом деле определяет все множество возможных ходов указанного типа, так как оно применимо к любой ситуации, сопоставимой...
    Программа для задачи об обезьяне и банане.
    Программа для задачи об обезьяне и банане. Для ответа на наш вопрос системе пришлось сделать лишь один возврат. Верная последовательность ходов была найдена почти сразу. Причина такой эффективност...
    Поиск банана обезьяной. Перебор...
    Поиск банана обезьяной. Перебор начинается в верхнем узле и распространяется вниз, как показано. Альтернативные ходы перебираются слева направо. Возврат произошел только один раз. котором в ней ра...
    Порядок предложений и целей
    Порядок предложений и целей Опасность бесконечного цикла 1. Опасность бесконечного цикла Рассмотрим следующее предложение: р :- р. В нем говорится: р истинно, если р истинно. С точки зрения деклар...
    Четыре версии программы предок.
    Четыре версии программы предок . В последнем случае пролог-система не сможет найти ответа. И выведет на терминал сообщение: Не хватает памяти. На рис. 1.11 гл. 1 были показаны все шаги вычислений...
    Поведение трех вариантов формулировки отношения
    Поведение трех вариантов формулировки отношения предок при ответе на вопрос, является ли Том предком Пат? Сочетание декларативного и процедурного подходов 3. Сочетание декларативного и процедурног...
    Замечания о взаимосвязи между прологом и логикой
    Замечания о взаимосвязи между Прологом и логикой Пролог восходит к математической логике, поэтому его синтаксис и семантику можно наиболее точно описать при помощи логики. Так часто и поступают пр...
    Упражнение
    Упражнение 2. 10. Что будет, если пролог-системе задать такой вопрос: ?- Х = f( X). Успешным или неуспешным будет здесь сопоставление? По определению унификации в логике, сопоставление должно быть...
    Резюме
    Резюме К настоящему моменту мы изучили нечто вроде базового Пролога, который называют еще чистый Пролог. Он чист, потому что довольно точно соответствует формальной логике. Расширения, преследующи...








Начало    



Книжный магазин