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

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



Рисунок 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();



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