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




Предварительные понятия и примеры - часть 5


                удалить( [Верх1 | Столб1], Столб1, Столб1),

                                                % Найти первый столбик

                удалить( Столб2, Столбы1, Остальные).

                                                % Найти второй столбик

        удалить( X, [X | L], L).

        удалить( X, [Y | L], [Y | L1] ) :-

                удалить( L, X, L1).

В нашем примере целевое условие имеет вид:

        цель( Ситуация) :-

                принадлежит [а,b,с], Ситуация)

Алгоритм поиска мы запрограммируем как отношение

        решить( Старт, Решение)

где Старт - стартовая вершина пространства состояний, а Решение - путь, ведущий из вершины Старт в любую целевую вершину. Для нашего конкретного примера обращение к пролог-системе имеет вид:

        ?-  решить( [ [с, а, b], [ ], [ ] ], Решение).

В результате успешного поиска переменная Решение

конкретизируется и превращается в список конфигураций кубиков. Этот список представляет собой план преобразования исходного состояния в состояние, в котором все три кубика поставлены друг на друга в указанном порядке [а, b, с].

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

| Вперёд




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