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




Упражнения - часть 2


        . . .

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

3. 8.        Определите отношение

        подмножество( Множество, Подмножество)

где Множество и Подмножество - два списка представляющие два множества. Желательно иметь возможность использовать это отношение не только для проверки включения одного множества в другое, но и для порождения всех возможных подмножеств заданного множества. Например:

        ?-  подмножество( [а, b, с], S ).

        S = [a, b, c];
        S = [b, c];
        S = [c];
        S = [ ];
        S = [a, c];
        S = [a];
        . . .

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

3. 9.    Определите отношение

        разбиениесписка( Список, Список1, Список2)

так, чтобы оно распределяло элементы списка между двумя списками Список1 и Список2 и чтобы эти списки были примерно одинаковой длины. Например:

        разбиениесписка( [а, b, с, d, e], [a, с, е], [b, d]).

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

3. 10.    Перепишите программу об обезьяне и бананах из главы 2 таким образом, чтобы отношение

        можетзавладеть( Состояние, Действия)

давало не только положительный или отрицательный ответ, но и порождало последовательность действий обезьяны, приводящую ее к успеху. Пусть Действия будет такой последовательностью, представленной в виде списка ходов:

        Действия = [ перейти( дверь, окно),
                               передвинуть( окно, середина),
                               залезть, схватить ]

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

3. 11.    Определите отношение

        линеаризация( Список, ЛинейныйСписок)

где Список может быть списком списков, а ЛинейныйСписок - это тот же список, но "выровненный" таким образом, что элементы его подсписков составляют один линейный список. Например:

        ? - линеаризация( [а, d, [с, d], [ ], [[[е]]], f, L).

        L = [a, b, c, d, e, f]

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

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




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