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


Синтаксис и семантика пролог-программ


2 1 Объекты данных
2. 1.    Объекты данных На Рисунок 2.1 приведена классификация объектов данных Пролога. Пролог-система распознает тип объекта по его синтаксической форме в тексте программы. Это воз...
Рисунок 2 1 Обьекты данных Пролога
Рисунок 2. 1.  Обьекты данных Пролога. предписывает различные формы записи для различных типов объектов данных. В гл. 1 мы уже видели способ, с помощью которого можно отличить атомы от перем...
2 1 1 Атомы и числа
2. 1. 1.    Атомы и числа В гл. 1 мы уже видели несколько простых примеров атомов и переменных. Вообще же они могут принимать более сложные формы, а именно представлять собой цепочк...
2 1 2 Переменные
2. 1. 2.    Переменные Переменные - это цепочки, состоящие из букв, цифр и символов подчеркивания. Они начинаются с прописной буквы или с символа подчеркивания:    &n...
Имеетребенка( X) родитель( X Y)
        имеетребенка( X) :- родитель( X, Y). Это правило гласит: "Для всех X,  Х имеет ребенка, если X является родителем некоторого Y". Здесь мы...
Имеетребенка( X) родитель( X _ )
        имеетребенка( X) :- родитель( X, _ ). Всякий раз, когда в предложения появляется одиночный символ подчеркивания, он обозначает новую анонимную переменную...
Некто_имеет_ребенка родитель( _ _ )
        некто_имеет_ребенка :- родитель( _, _ ). Это предложение эквивалентно следующему:...
Некто_имеет_ребенка родитель( X Y)
        некто_имеет_ребенка :- родитель( X, Y). Однако оно имеет совершенно другой смысл, нежели        некто_имеет_ребенка :- роди...
? Родитель( X _ )
        ?-  родитель( X, _ ). Лексический диапазон имени - одно предложение. Это значит, что если, например, имя Х15 встречается в двух предложениях, то оно...
2 1 3 Структуры
2. 1. 3.    Структуры Структурные объекты (или просто структуры) - это объекты, которые состоят из нескольких компонент. Эти компоненты, в свою очередь, могут быть структурами. Напр...
Рисунок 2 2 Дата пример структурного
Рисунок 2. 2.  Дата - пример структурного объекта:(а)    его представление в виде дерева;     (б)    запись на Прологе. Тогда объекты, приведенные...
Рисунок 2 3 Простые геометрические объекты
Рисунок 2. 3.  Простые геометрические объекты. Соответствующее представление этих объектов в виде деревьев приводится на Рисунок 2.4. Функтор, служащий...
Рисунок 2 4 Представление объектов с Рисунок 2 3 в виде деревьев
Рисунок 2. 4.  Представление объектов с Рисунок 2.3  в виде деревьев. корнем дерева, называется главным функтором терма. Если бы в такой же программе фигурировали точки трехмерного прост...
Рисунок 2 5 Древовидная структура соответствующая арифметическому выражению (а + w)*(s 5)
Рисунок 2. 5.  Древовидная структура, соответствующая арифметическомувыражению (а + w)*(s - 5). Это, конечно, совершенно правильный прологовский терм, однако это не та форма, которую нам хоте...
Рисунок 2 6 Некоторые простые
Рисунок 2. 6.  Некоторые простые электрические цепи и их представление: (а) последовательное соединение резисторов rl и r2; (b) параллельное соединение двух резисторов; (с) параллельное соеди...
Упражнения
Упражнения 2. 1.    Какие из следующих выражений представляют собой правильные объекты в смысле Пролога? Что это за объекты (атомы, числа, переменные, структуры)?    ...
2 2 Сопоставление
2. 2.    Сопоставление В предыдущем разделе мы видели, как используются термы для представления сложных объектов данных. Наиболее важной операцией над термами является сопоставление...
Помогает сформулировать это отношение Отрезок
Рисунок 2.8 помогает сформулировать это отношение. Отрезок...
Рисунок 2 7 Сопоставление треугольник((
Рисунок   2. 7.    Сопоставление треугольник(( точка( 1, 1), А, точка( 2, 3)) = треугольник( Х, точка( 4, Y),точка( 2, Z)) является вертикальным, если x-координаты его точек-концов...
Рисунок 2 8 Пример вертикальных и горизонтальных отрезков прямых
Рисунок 2. 8.  Пример вертикальных и горизонтальных отрезков прямых. Сформулируем более общий вопрос к программе: "Существуют ли какие-либо вертикальные отрезки, начало которых лежит в т...
Упражнения
Упражнения 2. 3.    Будут ли следующие операции сопоставления успешными или неуспешными? Если они будут успешными, то какова будет результирующая конкретизация переменных?  &nb...
2 3 Декларативный смысл прологпрограмм
2. 3.    Декларативный смысл пролог-программ В главе 1 мы уже видели, что пролог-программу можно понимать по-разному: с декларативной и процедурной точек зрения. В этом и следующем...
Упражнения
Упражнения 2. 6.    Рассмотрим следующую программу:     f( 1, один).    f( s(1), два).    f(    s(s(1)),   ...
2 4 Процедурная семантика
2. 4.    Процедурная семантика Процедурная семантика определяет, какпролог-система отвечает на вопросы. Ответить на вопрос - это значит удовлетворить список целей. Этого можно добит...
Рисунок 2 9 Входы и выходы процедуры вычисления списка целей
Рисунок 2. 9.  Входы и выходы процедуры вычисления списка целей. Смысл двух составляющих выхода такой: (1)    Признак успех/неуспех принимает значение "да", если цели...
Рисунок 2 10 Пример иллюстрирующий
Рисунок 2. 10.  Пример, иллюстрирующий процедурную семантику      Пролога: шаги вычислений, выполняемых процедурой вычислить. В главе 1 в разд. "Как пролог-систе...
Рисунок 2 11 Вычисление целевых утверждений Пролога
Рисунок 2. 11.  Вычисление целевых утверждений Пролога. Всякий раз, как рекурсивный вызов процедуры вычислитьприводят к неуспеху, процесс вычислений возвращается к ПРОСМОТРУ и продолжается с...
Упражнение
Упражнение 2. 9.    Рассмотрите программу на Рисунок 2.10 и по типу того, как это сделано на Рисунок 2.10, проследите процесс вычисления пролог-системой вопроса    &n...
2 5 Пример обезьяна и банан
2. 5.    Пример: обезьяна и банан Задача об обезьяне и банане часто используется в качестве простого примера задачи из области искуственного интеллекта. Наша пролог-программа, спосо...
Рисунок 2 12 Исходное состояние
Рисунок 2. 12.  Исходное состояние обезьяньего мира, представленное в виде структурного объекта. Его четыре компоненты суть горизонтальная позиция обезьяны, вертикальная позиция обезьяны, поз...
Рисунок 2 13 Рекурсивная формулировка отношения можетзавладетъ
Рисунок 2. 13.  Рекурсивная формулировка отношения можетзавладетъ. Данное предложение на самом деле определяет все множество возможных ходов указанного типа, так как оно применимо к любой сит...
Рисунок 2 14 Программа для задачи об обезьяне и банане
Рисунок 2. 14.  Программа для задачи об обезьяне и банане. Для ответа на наш вопрос системе пришлось сделать лишь один возврат. Верная последовательность ходов была найдена почти сразу. Причи...
Рисунок 2 15 Поиск банана обезьяной
Рисунок 2. 15.  Поиск банана обезьяной. Перебор начинается в верхнем узле и распространяется вниз, как показано. Альтернативные ходы перебираются слева направо. Возврат произошел только один...
2 6 Порядок предложений и целей
2. 6.    Порядок предложений и целей...
2 6 1 Опасность бесконечного цикла
2. 6. 1.    Опасность бесконечного цикла Рассмотрим следующее предложение:         р   :-   р. В нем говорится: "р истинно, ес...
2 6 2 Варианты программы полученые путем переупорядочивания предложений и целей
2. 6. 2.    Варианты программы, полученые путем переупорядочивания предложений и целей Уже в примерах программ гл. 1 существовала скрытая опасность зацикливания. Определение отношен...
Рисунок 2 16 Четыре версии программы предок
Рисунок 2. 16.  Четыре версии программы предок. В последнем случае пролог-система не сможет найти ответа. И выведет на терминал сообщение: "Не хватает памяти". На Рисунок 1.11 гл. 1...
Рисунок 2 17 Поведение трех вариантов
Рисунок 2. 17.  Поведение трех вариантов формулировки отношенияпредок при ответе на вопрос, является ли Том предком Пат?...
2 6 3 Сочетание декларативного и процедурного подходов
2. 6. 3.    Сочетание декларативного и процедурного подходов В предыдущем разделе было показано, что порядок целей и предложений имеет существенное значение. Более того, существуют...
2 7 Замечания о взаимосвязи между Прологом и логикой
2. 7.    Замечания о взаимосвязи между Прологом и логикой Пролог восходит к математической логике, поэтому его синтаксис и семантику можно наиболее точно описать при помощи логики....
Упражнение
Упражнение 2. 10. Что будет, если пролог-системе задать такой вопрос:         ?-   Х  =  f( X). Успешным или неуспешным будет здесь сопоставл...
Резюме
Резюме К настоящему моменту мы изучили нечто вроде базового Пролога, который называют еще "чистый Пролог". Он "чист", потому что довольно точно соответствует формальной логике....
Литература
Литература Clocksin W. F. and Mellish С. S. (1981). Programming in Prolog.Springer-Verlag. [Имеется перевод: Клоксин У., Меллиш К. Программирование на языке Пролог. - М.: Мир, 1987.] Lloyd J. W....


- Начало -