Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

Пользователей: 13,368
новичок: Goosprin
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных междугородних телефонных разговоров на Delphi
Моделирование вычислительного центра на GPSS + Отчет + Блок схема
Диплом RSA, ЭЦП, сертификаты, шифрование на C#

Терминалогия принципов логического программирования

База правил - совокупность правил в программе на языке Пролог.
Правило представляет собой дизъюнкт Хорна, содержащий один положительный литерал и несколько отрицательных, и записывается следующим образом
<структура-0>:-<структура-1>, ... ,<структура-N>.
Здесь каждая структура представляет собой предикат, областью действия переменных является все правило. Предикат, стоящий слева от атома ":-", называется заголовком правила, все остальные предикаты образуют его тело.
Правило может трактоваться следующим образом: предикат, являющийся заголовком правила доказан (удовлетворен), когда доказан каждый предикат тела правила.
В качестве предикатов, составляющих тело правила, могут выступать
• предикаты, фигурирующие в базе фактов;
• предикаты, совпадающие с заголовком других правил;
• встроенные предикаты систем программирования Пролог.
Встроенный предикат - предикат, выводимость (согласованность) которого устанавливается непосредственно системой программирования Пролог.
Запрос на языке Пролог - утверждение, рассматриваемое в качестве целевого, имеющее следующий вид:
?-<структура-1>, ...,<структура-N>.
Здесь каждая структура представляет собой предикат, возможно, содержащий переменные. Причем областью действия переменной является все утверждение в целом, т. е. одна и та же переменная в пределах утверждения означает один и тот же объект.
Символ "," между предикатами трактуется как логическая связка "И", т.е. запрос необходимо рассматривать как требование на поиск в базе фактов и правил информации, удовлетворяющий одновременно всем предикатам целевого утверждения. Предикаты, объединенные связкой "И" в таком запросе, называются подцелями (имея в виду весь запрос целью).
Конкретизация переменной - связывание переменной языка Пролог с конкретным значением.
Конкретизация переменной обеспечивает возврат искомых значений переменных по запросам.
Выполнение запроса в языке Пролог - процесс доказательства выводимости всех подцелей целевого утверждения методом резолюции с использовании линейной по входу стратегии.
Получив запрос, состоящий из нескольких предикатов, интерпретатор выбирает первый в последовательности запроса предикат и делает попытку (если этот предикат не встроенный) согласовать его с утверждениями, составляющими базы фактов и правил, для чего выполняется сопоставление этого предиката со всеми фактами и заголовками этих правил в простом линейном порядке до тех пор, пока оно не даст положительного результата. Если этого не происходит, ответом на запрос будет "Нет". В ходе согласования возможна конкретизация переменных значениями.
Если в ходе просмотра произошло сравнение с заголовком правила, то тело правила рекурсивно рассматривается в качестве нового целевого утверждения, доказательство которого реализуется с помощью рассматриваемой здесь процедуры.
Удовлетворив один предикат (подцель) запроса, интерпретатор переходит к соседнему справа, обрабатывая его аналогичным образом.
Запрос считается выполненным после удовлетворения его последней (крайней справа) подцели. Если же какая-либо подцель (но не первая) не может быть удовлетворена (согласована), то в работу включается механизм бэктрекинга, который заставляет интерпретатор, передвигаясь по предикатам целевого утверждения справа налево, вновь согласовывать эти предикаты, но уже на новых утверждениях программы. Если попытка пересогласовать какой-либо предикат (подцель) удается, то интерпретатор продолжает рассмотрение подцелей от данной в обычном порядке (слева направо).
Опубликовал Kest September 23 2010 13:03:20 · 0 Комментариев · 7553 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Страница 2 из 2 < 1 2
Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Применение жадног...
Профессиональное ...
SearchAndReplace
Самоучитель Прогр...
Усложнённый кальк...
LaserTank [Исходн...
Панель поиска
Blib [Исходник на...
SynEdit
Разработка распре...
3d Tank [Исходник...
Запрет гостям ск...
Bitmap [для кнопок]
Delphi 2006 - Спр...
Дешифратор содерж...
Защита от спама ...
База Allsubmitter...
Распознавание иде...
Расширенный загру...
GamesBase 3.0

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97833
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
High Secure — это ...
Explorer для клиен...
Шаблоны классов
Типовые операции н...
Рабочая площадка р...
ОЧЕРЕДИ
Что может инженер ...
Версия XHTML 1.0 S...
Джон Роблинг (John...
Vavada казино
Освобождение выдел...
Тестирование прост...
Содержание
Стандартные числов...
Вывод команды show...
Информационные и с...
Поиск в Яндексе
Этот пример являет...
Программа перечисл...
от его имени
Свойства ARM
Выноски
Концепция подключе...
Применение волокон...
Проверка жесткого ...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?