Программирование на языке Пролог для искусственного интеллекта



         

Повышение эффективности зa счет добавления вычисленных фактов к базе данных


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

В качестве примера рассмотрим программу вычисления N-го числа Фибоначчи для некоторого заданного N. Последовательность Фибоначчи имеет вид:

        1,  1,  2,  3,  5,   8,  13,  ...

Каждый член последовательности, за исключением первых двух, представляет собой сумму предыдущих двух членов. Для вычисления N-гo числа Фибоначчи F определим предикат

        фиб( N, F)

Нумерацию чисел последовательности начнем с N = 1. Программа для фиб обрабатывает сначала первые два числа Фибоначчи как два особых случая, а затем определяет общее правило построения последовательности Фибоначчи:

        фиб( 1, 1).

                            % 1-е число Фибоначчи

        фиб( 2, 1).

                            % 2-е число Фибоначчи

        фиб( N, F) :-

                        % N-е число Фиб., N > 2

                N > 2,

                N1 is N - 1, фиб( N1, F1),

                N2 is N - 2, фиб( N2, F2),

                F is F1 + F2.




Содержание  Назад  Вперед