Студопедия
МОТОСАФАРИ и МОТОТУРЫ АФРИКА !!!


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

Cтруктура программы




Итак, на основе первой показательной программы видно, что структура программы в общем случае имеет вид:

domains

/*объявление доменов*/

predicates

/*объявление предикатов*/

clauses

/*предложения-факты и правила*/

goal

/*цель программы*/

Раздел доменов (domain)

В этом разделе объявляются домены всех аргументов, используемых в предикатах. Домены позволяют задать разные именаразличным видам данных. По сути в этом разделе задается область интерпретации предметных переменных.

domains

title, author=symbol

year=integer

predicates

book(title, author, year)

Объявление собственных доменов позволяет отследить ошибки. Несмотря на то, что author и title интерпретируются типом symbol ,они не эквивалентны друг другу.

Если вы перепутали местами объекты, то это будет сразу обнаружено.

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

Раздел предикатов ( predicates)

Если в разделе clauses вы описали собственные не cтандартные предикаты, то их необходимо объявить в разделе predicates(иначе Пролог вас не поймет).

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

Все пользовательские предикаты c указанием доменов(типов) их аргументов в этом разделе просто перечисляются.

predicates

summa(integer, integer, integer)

Декларация предиката не завершается точкой.

Имя предиката начинается с буквы, за которой может следовать буква, цифра или знак подчеркивания.

Раздел предложений (сlauses)

Раздел состоит из фактов и правил.

Факты(facts) устанавливают отношения между объектами или описывают свойства объекта:

student(petrov, sp-81,2010).

cup(red).

parent(bob, tom).

Правила(rules)- определяют, когда эти отношения истинны. Правила позволяют выводить одни факты из других.

Голова правила истинна тогда и только тогда, когда являются истинными все утверждения, составляющие тело.

If тело then голова ( голова if тело)

Раздел целей (goal)

запускает программу в работу.

Выводы:

Программа состоит из предложений, определяющих отношения между объектами.

Предложения бывают трех типов: факты, правила и цели.

Факты содержат утверждения, которые всегда истинны. Правила содержат утверждения, истинность которых зависит от выполнения некоторых условий. Правила состоят из головы и тела. Тело поставляет новые подцели, которые требуется доказать.




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

Последовательность предложений, описывающих предикат, называется процедурой.

Вычисление ЛП – это вывод следствия из программы. В математике такие системы называются дедуктивными.(ДС)

Дедуктивной системой(ДС) называется способ задания множества путем указания исходных элементов (аксиом исчисления) и правил вывода, каждое из которых описывает, как строить новые элементы из исходных.

ДС называют также исчислением (то есть правилами вычисления и оперирования объектами) или формальнойсистемой.

Когда говорят о языках программирования, предложения которых построены на основе строгих правил таким образом, чтобы для любой последовательности символов можно было сказать, является она правильно построенной конструкцией этого языка или нет, то о языке говорят тоже как о формальной системе.

Множество фактов, правил и целей задают логическую программу.



Факты задают отношения между объектами.

Правила определяют одни отношения через другие.

Цель требует доказательства, исходя из множества фактов и правил программы. Процесс доказательства – само выполнение программы.

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

Программист должен быть квалифицирован и в представлении знаний, и в понимании того, как они обрабатываются на компьютере.

2.7.Особенности ЛП:

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

- Возможность работать в обоих направлениях, так как последовательность и способ выполнения программы не фиксируется. На основе исходных данных можно вычислить результат, но также без дополнительного программирования на основе результата можно получить исходные данные.

- Возможность рассмотрения альтернативных решений и поиск всех возможных решений.





Дата добавления: 2015-04-01; просмотров: 856; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Учись учиться, не учась! 10425 - | 7910 - или читать все...

Читайте также:

 

18.205.176.85 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.003 сек.