Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к PROLOG.doc
Скачиваний:
0
Добавлен:
27.09.2019
Размер:
154.11 Кб
Скачать

1. Общие сведения о Прологе, области применения, отличия пролога от других языков.

Искуственный интеллект (ИИ) – это научное направление, связанное с разработкой программ, связанных с различной деятельностью, требющей человеческого интеллекта. Исследование в этой области начались с середины 50-х гг. ИИ – область исследования, находящаяся на стыке наук. Специалисты, работающие в этой области, пытаются понять, какое поведение считается разуменым (анализ) и создать рабочую модель этого поведения (синтез). В сфере ИИ относятся те области, где мы действуем, не имея точные методы решения проблемы, и которые обладают общим \и характерными особенностями:

  1. В них используется информация в символьнйо форме.

  2. В них предполагается наличие выбора, то есть если не существует определенного алгоритма, то нужно сделать выбор между вариантами условия неопределенности.

К области применения ИИ относятся следующие:

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

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

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

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

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

Обычные языки программирования не очень удобны для разработки систем ИИ. Для построения данных систем были разработаны специальные языки, т. как Пролог, имеющий встр. Механизмы вывода, и ЛИСП – ориентированный на обработку списков.

Теоритической основой Пролога является символьная логика, называемая исчислением предикатов. Теоремы в исчислении предикатов формулируются в импликативной форме или в форме эквивалентности (АВ). Доказательство теоремы представляется последовательность формул выводимых задач с помощью правил вывода. Исчисление предикатов и их вывод является базой пролога. Проог разработан в нач. 70-х в Марсельском ун-те под рук. Калмеро. Первонач. вар-т языка представлял собой специальную систему для док-ва теорем, написанную на языке Фортран. Пролог длительное время оставался просто одним из многих языков ИИ, которым интересовались лишь небольшие группы специалистов. Однако в 80-е годы он приобрел мировую популярность практически во всем мире. Произошло это по след. причинам:

  1. Приобрела особую популярность проблематика ИИ и как следствие проявился особый интерес к языкам ИИ.

  2. Пролог обеспечивает удобные средства для представления знаний в виде факта и правил вывода и понятен экспертам неппрограммистам.

  3. Весьма существенную роль в распростанение Пролога сыграл выборэтого языка в качестве базового в японском проекте выч. систем 5-го поколения.

Области применения:

  1. Управление производственными процессами.

  2. использование баз данных;

  3. перевод с одного языка на другой;

  4. создание интерфейса на естественном языке;

  5. создание экспертных систем;

  6. доказательство теорем и др.

Пролог в отличии от традиционных процедурных языков программирования можно рассматривать как язык описаний, а ен как язык предписаний, исползуемый в прологе подход состоит, главным образом, в описании известных фактов и отношений (правил), касающихся решаемой задачи, а не в предписании последовательности шагов, выполняя которые ЭВМ решает задачу. Решение на прологе следует из составленного описания. Имеется много версий языка, но на иболее популярной явл-ся Турбо-Прролог компании Borland Inc. Дальнейше развитие Пролог – PDC (Prolog Development Center).

Основные Элементы ТурбоПролога.

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

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

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

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

Особенности:

  • имена объектов должны начинаться с малой буквы за которой могут следовать произвольные символы (буквы, цифры, знак подчеркивания),

  • имена отношений – особые комбинации букв, цифр и знаков подчеркивания (начинаются с буквы). При выполнении программы на ТП система пытается выявит все возможные значения, удовлетворяющие данной цели (goal),

  • объекты данных в ТП называются термами.

Терм может быть константой, переменной или структурой. Классификация объектов данных приведена на схеме.

Атом – синтаксически неделимый терм. На ТП атомы можносоздать 2-мя способами: из цепочек букв, цифр, символов подчеркивания; из цепочки символов, заключенных в кавычки.

Констаныты относятся к одному из 6 стандартных типов данных:

Тип

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

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

Пример

Символы

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

Переменная – имя начинаетяс с большой буквы или знака подчеркивания. В качестве имени может использоваться знака подчеркивания, такая переменная называется анонимной. Она может использоваться вместо любой переменнйо, однако она никогда не принимает конктертного значения. Переменная читается свободной, или неконкретизированной (free), когда значение ее не известно. Связанной или конкретизированной, когда известно.

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

Структуры – объекты, которые состоят из нескольких компонент. Записывается с помощью указания ее функтора и компонента. Компоненты заключаются в ( ) и разделяются ,. Функтор записывается перед открывающей скобкой.

data_rogd (5, mart, 1980)

Число компонентов в структуре называется арностью структуры. В качестве компонент могут быть переменные или структуры.

data_rogd (D, mart, 1980)

line ( point (1, 1), point (3, 4))

Все структурные объекты можно избразить в виде деревьев. Корнем дерева является функтор, а ветвями, выходящими из него – компоненты.

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

Типичная структура программы:

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

domains

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

predicates

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

goal

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

clauses

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

В программе необязательно наличие всех разделов. Обычно должно быть по крайней мере разделы 2 и 4. В программе могут присутствовать еще 2 раздела для определения глобальных доменов и предикатов – global domains, global predicates.

Они позволяют обеспечить междумодульный интерфейс, если программа состоит из нескольких модулей. При работе с базами данных в программе должен присутствовать раздел database для описания предиката динамичекой базы данных. Он должен располагаться перед разделом predicates. Программа может создать несколько разделов domains, predicates, clauses. При этом надо соблюдать следующие ограничения:

  • раздел должен начинаться с ключевого слова;

  • при компиляции поддерживается только одна цель, следовательно может быть только один раздел goal;

  • все предложение раздела clauses, описывающие один и тот же предикат должны записываться друг за другом;

  • при компиляции может обрабатываться только один раздел глобальных предикатов, при этом перед ним не должен использоваться раздел объявления обычных предикатов;

  • разделы, создающие предикаты базы данных должны использоваться перед объявлением всех глобальных и обычных предикатов.