Приложение логики к вычислениям (процедурная интерпретация логических программ)

В качестве примера используем простую школьную задачу: «Хвост (teil) составляет сумму длин головы {head) и половину туловища (body), туловище составляет сумму длин хвоста и головы. Какова длина рыбы?»

Решение этой задачи может быть сформулировано в общем виде для конкретной рыбы с аналогичными соотношениями.

Необходимые обозначения определим на схеме (рис. 5.8).

Переменные: A — head, bbody, t — tei/.

Предикаты: L(h) = (длина А), L(A), L(t) L0(h, t, A, s) = (a* = h + A + ?) = = (длина рыбы 5).

Pwc. 5.5. К определению длины рыбы

Длина рыбы определена арифметической функцией. Для контроля истинности требуется вычисление с контролем исходных данных:

L(t) & L(h) —» Lu(h, t, b) = (b = h + t) —> ЦЬ)

L(b) & L(t) —> I12(A, t, b) = (h = b — t) —» L(A);

1(A) & L(A) -> I13(A, ^ A) = (t = b - h) -> 1(0.

Предикат истинный, если выполняется одно из отношений.

Если предикат истинный, то истинны также исходные данные.

Если данные истинны, то известны и истинны значения переменных t, А, А в 1(A), L(A), 1(0- Истинна импликация в 1(A) & 1(A) & 1(0 —> I0(A, tf А, О = (5 = А + А + 0 A(.s).

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

Решение задачи включает ввод истинных данных 1(A), 1(A), L(t), исполнение предикатов (предикат истинный, если есть исходные данные и вычисляется истинное значение определяемой переменной).

Если предикат истинный, то выбирается связанный с ним импликацией следующий предикат, как это происходит при выводе, и так до тех пор, пока не получим истинный предикат с решением задачи.

Если разрешить ввод значения А, который контролируется предикатом ЦА), то исполняется последовательно-параллельно следующая логическая схема (рис. 5.9).

Схема алгоритма, исполняемого при разрешении ввода значения А

Рис. 5.9. Схема алгоритма, исполняемого при разрешении ввода значения А

Но из условия задачи можно получить следующие выражения: t = А + + А/2, b = h + t, s = A + A + ?. Тогда можно получить следующие соотношения: А = А + А + А/2, А = 4А, t = ЗА и, наконец, 5 = 8А = 2А = 8/3?.

Для вычисления длины рыбы s достаточно ввести любой из параметров /г, b или t (рис. 5.10).

Ввод параметра

Рис. 5.10. Ввод параметра

Вычисления можно проводить по следующей функциональной схеме (рис. 5.11).

Функциональная схема вычислений

Рис. 5.11. Функциональная схема вычислений

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >