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

       

Некоторые из случаев



Рисунок 10. 5.  Некоторые из случаев работы отношения встав.
(a)  встав( в2( Д1, М, Д2), X, в2( НД1, М, Д2) );
(b)  встав( в2( Д1, М, Д2), X,
                        в3( НД1а, Мб, НД1б, М, Д2) );
(c)  встав( в3( Д1, М2, Д2, М3, Д3), X,
                        в2( НД1а, Мб, НД1б), М2, в2( Д2, М3, Д3) ).



line();

% Вставление элемента в 2-3 справочник

        доб23( Дер, X, Дер1) :-             % Вставить Х в Дер, получить Дер1
                встав( Дер, X, Дер1).        % Дерево растет вширь

        доб23( Дер, X, в2( Д1, М2, Д2) ) :-
                встав( Дер, X, Д1, М2, Д2).
        % Дерево растет вглубь

        доб23( nil, X, л( Х) ).

        встав( л( А), X, л( А), X, л( Х) ) :-
                больше( X, А).

        встав( л( А), X, л( Х), А, л( А) ) :-
                больше( А, X).

        встав( в2( Д1, М, Д2), X, в2( НД1, М, Д2) ) :-
                больше( М, X),
                встав( Д1, X, НД1).

        встав( в2( Д1, М, Д2), Х, в3( НД1а, Мб, НД1б, М, Д2) ) :-
                больше( М, X),
                встав( Д1, X, НД1а, Мб, НД1б).

        встав( в2( Д1, М, Д2), X, в2( Д1, М, НД2) ) :-
                больше( X, М),
                встав( Д2, X, НД2).

        встав( в2( Д1, М, Д2), Х, в3( Д1, М, НД2а, Мб, НД2б) ) :-
                больше( X, М),
                встав( Д2, X, НД2а, Мб, НД2б).

        встав( в3( Д1, М2, Д2, М3, Д3), Х, в3( НД1, М2, Д2, М3, Д3) :-
                больше( М2, X),
                встав( Д1, X, НД1).

        встав( в3( Д1, М2, Д2, М3, Д3), X,
                в2( НД1а, Мб, НД1б), М2, в2( Д2, М3, Д3) ) :-
                больше( М2, X),
                встав( Д1, X, НД1а, Мб, НД1б).

        встав( в3( Д1, М2, Д2, М3, Д3), X,
                в3( Д1, М2, НД2, М3, Д3) ) :-
                больше( X, М2), больше( М3, X),
                встав( Д2, X, НД2).

        встав( в3( Д1, М2, Д2, М3, Д3), X,
                в2( Д1, М2, НД2а), Мб, в2( НД2б, М3, Д3) ) :-
                больше( X, М2), больше( М3, X),
                встав( Д2, X, НД2а, Мб, НД2б).

        встав( в3( Д1, М2, Д2, М3, Д3), X,
                в3( Д1, М2, Д2, М3, НД3) ) :-
                больше( X, М3),
                встав( Д3, X, НД3).

        встав( в3( Д1, М2, Д2, М3, Д3), X,
                в2( Д1, М2, Д2), М3, в2( НД3а, Мб, НД3б) ) :-
                больше( X, М3),
                встав( Д3, X, НД3а, Мб, НД3б).

line();



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