Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пролог_шпоры.docx
Скачиваний:
34
Добавлен:
27.09.2019
Размер:
103.66 Кб
Скачать
  1. Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.

Искусственный интеллект (ИИ) – это научное направление, связанное с разработкой программ, связанных с различной деятельностью, требующей человеческого интеллекта. К области применения ИИ относятся следующие:

  • Восприятия и распознавание образа;

  • Математика и математическое доказательство теорем;

  • Игры (шахматы);

  • Решение задач;

  • Понимание естественного языка.

Обычные языки программирования не очень удобны для разработки систем ИИ. Для построения данных систем были разработаны специальные языки, т.к. Пролог, имеющий встр. механизмы вывода, и ЛИСП – ориентированный на обработку списков.Теоритической основа Пролога явл-ся раздел символьной логики,называемый исчислением предикатов.Области применения:-Управление производственными процессами.-использование баз данных;-перевод с одного языка на другой;-создание интерфейса на естественном языке;-создание экспертных систем;-доказательство теорем и др. На Прологе удобно описывать различные структуры данных, такие как списки и деревья. Отличие от традиционных процедурных языков-Пролог язык описаний, а не как язык предписаний.Свое название Пролог получил от слов "ПРОграммирование на языке ЛОГики". На самом деле Пролог не является чистым языком логического программирования, но его создание - важный этап в этом направлении. Используемый в прологе подход состоит, в описании известных фактов и отношений (правил), касающихся решаемой задачи, а не в предписании последовательности шагов, выполняя которые ЭВМ решает задачу. Решение на прологе следует из составленного описания.

2.Основные элементы Visual Prolog: имена объектов, имена отношений, атомы, термы, константы, переменные, структуры.Объекты данных в Прологе называются термами. Терм может быть константой, переменной или структурой. Атом – синтаксически неделимый терм. Это повествовательное предложение, которое может быть истинно или ложно, но не то и другое одновременно. Атом рассматривают, как единое целое, его структуру и состав не анализируют. Например, "Иванов работает на заводе", "Петров является студентом" и т.п. Констаныты относятся к одному из стандартных типов данных:

Тип

Ключевое слово

Диапазон значений

Пример

Символы

char

Все символы

‘a’, ‘C’, ‘%’

Целые числа

integer

-32678…32767

-153, 125

Действительные числа

real

-1E-307…1E308

2.48

Строки

string

Последовательность символов

“Sony”, “256”

Символьные имена

symbol

real_data, ‘Delete string’

Файлы

file

Допустимое в ДОС имя файла

a.txt

Переменная – имя начинается с большой буквы или знака подчеркивания. В качестве имени может использоваться знак подчеркивания и называется анонимной. Она может использоваться вместо любой переменной, однако она никогда не принимает конкретного значения. Структуры(сложные термы)–объекты,кот.состоят из нескольких компонент. Записывается с помощью указания ее функтора и компонента.Компоненты заключаются в ( ) и разделяются запятыми.Функтор записывается перед открывающей скобкой. Число компонент в структуре называется арностью структуры.В качестве компонент могут быть переменные или структуры. data_r(12,mart,1962)-data_r – функтор, 12, mart, 1962 – компоненты. Арность приведенной структуры равна 3м.Все структурные объекты можно избразить в виде деревьев. Корнем дерева является функтор, а ветвями, выходящими из него- компоненты.

3 Структура программы Visual Пролога, разделы программы.

Програма содержит описание задачи, имеющее 3 компоненты:

  1. имена и структуры объектов, используемых в задаче;

  2. имена отношений, которые существуют между объектами;

  3. Факты и правила, описывающие отношения.

Программа состоит из нескольких разделов, каждому из которых предшествует ключевое слово.

/* комментарии */

domains <описание типов данных>

predicates <описание предикатов>

clauses <утверждения (предложения)>

goal <целевое утверждение>

В программе необязательно наличие всех разделов. Обычно должны быть 3й и 4й. Могут присутствовать еще 2 раздела для определения глобальных доменов и предикатов – global domains, global predicates. Они позволяют обеспечить междумодульный интерфейс, если программа состоит из нескольких модулей. Программа может создать несколько разделов domains, predicates, clauses. При этом надо соблюдать следующие ограничения: - раздел должен начинаться с ключевого слова; - при компиляции поддерживается только одна цель, может быть только один раздел goal; - все предложение раздела clauses, описывающие один и тот же предикат должны записываться друг за другом; - при компиляции может обрабатываться только один раздел глобальных предикатов, при этом перед ним не должен использоваться раздел объявления обычных предикатов; - разделы, создающие предикаты базы данных должны использоваться перед объявлением всех глобальных и обычных предикатов.

4. Способы объявления доменов (типов данных) Visual Прологе.

Раздел domains

4 способа объявления типов данных (доменов):

name =d , где name – имена объектов стандартного типа, d – один из стандартных доменов (integer, real, char, string, symbol и др.).

list = element*, где list – список элементов element, element – элемент, описанный в разделе domains или один из стандартных типов, * - список.

num1=f1 (d11,…,d1M);f2)d21,…,d2N)Тип num1 включает сложные объекты, которые объявляются путем установления пунктора и описаний всех входящих в него компонент.

file = name1; name2; Используется для обращения к файлам по символическим именам. Может быть только один оператор этого типа. Символические имена файлов, если их несколько, задаются в качестве альтернативы.

5.Объявление предикатов в программах Visual Пролога.

Раздел predicates

Предикат (отношение) – в общем случае эта структура выглядит так:

predname (comp1, …, compN), где

predname – имя предиката,

comp1, …, compN – типы компонентов, описанные в разделе domains или стандартные типы.

fio=string

den, god = integer

mes = symbol

predicates

anketa (fio, den, mes, god)

Если в предикатах используется только стандартные типы данных, то раздел domains может отсутствовать.

predicates

anketa (string, integer, symbol, integer)

Предикат может состоять только из имени., например,

predicates

result

Допускается многократное объявление предиката с одним и тем же именем. Альтернатива необязательно должна иметь одинаковое число компонентов.