
- 139 -
ГЛАВА 4. ПРОЛОГ КАК ЯЗЫК ЛОГИЧЕСКОГО
ПРОГРАММИРОВАНИЯ
4.1. Представление о логическом программировании
Логическое программирование – это один из подходов к
информатике, при котором в качестве языка высокого уровня используется
логика предикатов первого порядка в форме фраз Хорна. Это универсальный
абстрактный язык предназначенный для представления знаний и решения
задач. Его можно рассматривать как общую теорию отношений. Логическое
программирование базируется на подмножестве логики предикатов первого
порядка
7
, при этом оно одинаково широко с ней по сфере охвата.
Логическое программирование даѐт возможность программисту
описывать ситуацию при помощи формул логики предикатов, а затем, для
выполнения выводов из этих формул, применить автоматический решатель
задач (т.е. некоторую процедуру).
При использовании языка логического программирования основное
внимание уделяется описанию структуры прикладной задачи, а не выработке
предписаний компьютеру о том, что ему следует делать. Другие понятия
информатики из таких областей, как теория реляционных баз данных,
программная инженерия и представление знаний, также можно описать (и,
следовательно, реализовать) с помощью логических программ.
После того, как была открыта вычислимость логических следствий в
абстрактном смысле, возникло естественное желание автоматизировать
процесс доказательства при помощи компьютера. Полная логика предикатов
– это язык, обладающий богатыми выразительными средствами. Если
попытаться в общем виде реализовать на компьютере процедуры
доказательства, разработанные для исчисления предикатов, то возникнет
проблема комбинаторного роста числа вариантов. В конце 50-х - начале 60-х
гг. учѐные приступили к поиску таких приемлемых с точки зрения объѐма
вычислений методов реализации процедур доказательства, которые в
максимально возможной степени сохранили бы выразительную силу логики
предикатов первого порядка. У специалистов зародилась мечта о создании на
практике универсальной машины – «решателя задач», которую задумал еще
Лейбниц.
В конце 50-х годов Гилмор, Дэвис, Патнэм и Правиц начали работу по
созданию автоматизированного метода доказательства через опровержение.
За основу был взят метод, разработанный Хербрандом в 30-е годы.
Основываясь на работе Правица, Робинсон создал правило вывода, которое
он назвал резолюцией. Это правило пригодно для выполнения вывода
машиной. Первоначально попытки создания алгоритма решения задач,
базирующегося на резолюции, оказывались успешными только для очень
небольших задач. Лавленд, Ковальски усовершенствовали такие алгоритмы,
7
см. пункт Логические модели представления знаний