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



         

Упражнения


5. 4.    Даны два списка Кандидаты

и Исключенные, напишите последовательность целей (используя принадлежит

и not), которая, при помощи перебора, найдет все элементы списка Кандидаты, не входящие в список Исключенные.

Посмотреть ответ

5.5.    Определите отношение, выполняющее вычитание множеств:

line();

        решение( [ ]).

        решение( [X/Y | Остальные] ) :-

                решение( Остальные),

                принадлежит( Y, [1, 2, 3, 4, 5, 6, 7, 8] ),

                not бьет( X/Y, Остальные).

        бьет( X/Y, Остальные) :-

                принадлежит( X1/Y1, Остальные),

                ( Y1 = Y;

                        Y1 is Y + X1 - X;

                        Y1 is Y - X1 + X ).

        принадлежит( А, [А | L] ).

        принадлежит( А, [В | L] ) :-

                принадлежит( А, L).

        % Шаблон решения

        шаблон( [1/Y1, 2/Y2, 3/Y3, 4/Y4, 5/Y5, 6/Y6, 7/Y7, 8/Y8]).

line();

Рис. 5. 3.  Еще одна программа для решения задачи о восьми ферзях.

        разность( Множ1, Множ2, Разность)




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