Логическое программирование

       

Фразы Хорна как средство представления знания


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

Программирование. Процесс составления программы на Прологе в основном сходен с процессом построения теории в логике предикатов.

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

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

3) Программист аксиоматически определяет каждое отношение при помощи фраз Пролога. Аксиоматическое определение отношения будет удачным, если оно отразит смысл семантического определения. Множеством аксиоматических определений всех значимых для заданной предметной области отношений является программа, моделирующая структуру этой области.

4) Для выполнения запросов к множеству фраз программист или пользователь применяет интерпретатор языка Пролог. Совокупность, состоящую из запроса, множества фраз программы и интерпретатора языка можно рассматривать как алгоритм решения задач из прикладной области. При этом запрос и фразы программы представляют собой начальные формулы алгоритма, а интерпретатор содержит правила преобразования этих формул. Интерпретатор играет роль активной силы, которая выполняет выводы из фраз программы и тем самым реализует

или развертывает отношения определенными фразами программы.

Р. Ковальский описывает сущность логического программирования фразой:

Алгоритм = Логика + Управление.

И поэтому в логике никогда не может быть ничего неожиданного.

Людвиг Витгенштейн



Содержание раздела