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

порно видеочат |

Списки. Операторы. Арифметика


3 1 Представление списков
3. 1.    Представление списков Список - это простая структура данных, широко используемая в нечисловом программировании. Список - это последовательность, составленная из произвольно...
Рисунок 3 1 Представление списка [энн теннис том лыжи] в виде дерева
Рисунок 3. 1.  Представление списка [энн, теннис, том, лыжи] в виде дерева. Приведенный пример также напоминает вам о том, что элементами списка могут быть любые объекты, в частности тоже спи...
3 2 Некоторые операции над списками
3. 2.    Некоторые операции над списками Списки можно применять для представления множеств, хотя и существует некоторое различие между этими понятиями: порядок элементов множества н...
3 2 1 Принадлежность к списку
3. 2. 1.    Принадлежность к списку Мы представим отношение принадлежности как         принадлежит( X, L) где Х - объект, а L - список. Цель прина...
3 2 2 Сцепление ( конкатенация)
3. 2. 2.    Сцепление ( конкатенация) Для сцепления списков мы определим отношение         конк( L1, L2, L3) Здесь L1 и L2 - два списка, a L3 - сп...
Рисунок 3 2 Конкатенация списков
Рисунок 3. 2.  Конкатенация списков. Составленную программу можно теперь использовать для сцепления заданных списков, например:         ?- конк( [a, b, с],...
Рисунок 3 3 Процедура принадлежит1
Рисунок 3. 3.  Процедура принадлежит1находит элемент в заданномсписке, производя по нему последовательный поиск. В этом предложении сказано: "X принадлежит L, если список L можно разбить...
Упражнения
Упражнения 3. 1. (а)    Используя отношение конк, напишите цель, соответствующую вычеркиванию трех последних элементов списка L, результат - новый список L1. Указание: L - конкатена...
3 2 3 Добавление элемента
3. 2. 3.    Добавление элемента Наиболее простой способ добавить элемент в список - это вставить его в самое начало так, чтобы он стал его новой головой. Если Х - это новый элемент,...
3 2 4 Удаление элемента
3. 2. 4.    Удаление элемента Удаление элемента Х из списка L можно запрограммировать в виде отношения         удалить( X, L, L1) где L1 совпадает...
3 2 5 Подсписок
3. 2. 5.    Подсписок Рассмотрим теперь отношение подсписок. Это отношение имеет два аргумента - список L и список S, такой, что S содержится в L в качестве подсписка. Так отношение...
Рисунок 3 4 Отношения принадлежит и подсписок
Рисунок 3. 4.  Отношения принадлежити подсписок. Его можно сформулировать так:     S является подсписком L, если     (1)       ...
3 2 6 Перестановки
3. 2. 6.    Перестановки Иногда бывает полезно построить все перестановки некоторого заданного списка. Для этого мы определим отношение перестановкас двумя аргументами. Аргументы -...
Рисунок 3 5 Один из способов построения перестановки списка [X | L]
Рисунок 3. 5.  Один из способов построения перестановки списка [X | L]. Программа для отношения перестановкав свою очередь опять может основываться на рассмотрении двух случаев в зависимости...
Упражнения
Упражнения 3. 3.    Определите два предиката         четнаядлина( Список)    и    нечетнаядлина( Список) таким образ...
3 3 Операторная запись (нотация)
3. 3.    Операторная запись (нотация) В математике мы привыкли записывать выражения в таком виде:         2*a  +  b*с где  + ...
Рисунок 3 6 Представление выражения 2*а+b*с в виде дерева
Рисунок 3. 6.  Представление выражения  2*а+b*с  в виде дерева. Поскольку мы обычно предпочитаем записывать такие выражения в привычной инфиксной форме операторов, Пролог обеспечива...
Рисунок 3 7 Две интерпретации
Рисунок 3. 7.  Две интерпретации выражения а-b-с в предположении, что '-' имеет приоритет 500. Если тип '-' есть yfx, то интерпретация 2 неверна, так как приоритет b-с не выше, чем приоритет...
Рисунок 3 8 Множество предопределенных операторов
Рисунок 3. 8.  Множество предопределенных операторов. Для удобства некоторые операторы в пролог-системах определены заранее, чтобы ими можно было пользоваться сразу, без какого-либо определен...
Рисунок 3 9 Интерпретация терма ~(А & В) <===> ~A v ~В
Рисунок 3. 9.  Интерпретация терма ~(А  &  В)  <===> ~A  v  ~В Подытожим: Наглядность программы часто можно улучшить, использовав операторную нотацию. О...
Упражнения
Упражнения 3. 12.    Если принять такие определения         :- ор( 300, xfy, играет_в).        :- ор( 200, xfy,...
3 4 Арифметические действия
3. 4.    Арифметические действия Пролог рассчитан главным образом на обработку символьной информации, при которой потребность в арифметических вычислениях относительно мала. Поэтому...
Упражнения
Упражнения 3. 16. Определите отношение         mах( X, Y, Мах) так, чтобы Мах равнялось наибольшому из двух чисел Х и Y. Посмотреть ответ 3. 17.   ...
Резюме
Резюме Список - часто используемая структура. Он либо пуст, либо состоит из головы и хвоста, который в свою очередь также является списком. Для списков в Прологе имеется специальная нотац...


Начало


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