Основы построения и функционирования интеллектуальных информационных систем. Былкин В.Д - 132 стр.

UptoLike

132
вает перебор всех возможных ребер из каждой вершины, распознавание тупиковых ситуаций,
возврат к тем вершинам, из которых выходят еще не опробованные пути, и пр.
Для нахождения пути по которому надо двигаться, чтобы нарисовать домик, начиная с
четвертой вершины, следует ввести такой запрос:
?- найти_ путь (4,[]).
Ответ [з,ж,в,а,б,д,г,е]
Если мы введем запрос:
?- найти путь (1, []),
Ответом будет: Нет, так как такого пути не существует.
Как видим, возможность решения задачи зависит от того, с какой именно вершины мы
начинаем поиск. Можно воспользоваться тем, что в Прологе разрешается иногда определять не все
аргументы запроса, чтобы найти все множество вершин, которые могут служить начальными
вершинами путей обхода графа. В ответ на запрос:
?- найти_ путь (Начальная, [])
мы получим все множество возможных путей обхода и номера начальных вершин (для нашего
домика такими вершинами будут четвертая и пятая).
К этому же классу задам принадлежит и известная задача о кенигсбергских мостах, впервые
решенная великим математиком Эйлером. Постановка этой задачи такова:
Пройти по всем семи мостам г. Кенигсберга, не проходя дважды по одному и тому же мосту
(рис- 8,2)
вает перебор всех возможных ребер из каждой вершины, распознавание тупиковых ситуаций,
возврат к тем вершинам, из которых выходят еще не опробованные пути, и пр.
      Для нахождения пути по которому надо двигаться, чтобы нарисовать домик, начиная с
четвертой вершины, следует ввести такой запрос:
                    ?- найти_ путь (4,[]).
                     Ответ [з,ж,в,а,б,д,г,е]
                     Если мы введем запрос:
                    ?- найти путь (1, []),

      Ответом будет: Нет, так как такого пути не существует.
      Как видим, возможность решения задачи зависит от того, с какой именно вершины мы
начинаем поиск. Можно воспользоваться тем, что в Прологе разрешается иногда определять не все
аргументы запроса, чтобы найти все множество вершин, которые могут служить начальными
вершинами путей обхода графа. В ответ на запрос:
                            ?- найти_ путь (Начальная, [])

мы получим все множество возможных путей обхода и номера начальных вершин (для нашего
домика такими вершинами будут четвертая и пятая).
      К этому же классу задам принадлежит и известная задача о кенигсбергских мостах, впервые
решенная великим математиком Эйлером. Постановка этой задачи такова:
      Пройти по всем семи мостам г. Кенигсберга, не проходя дважды по одному и тому же мосту
(рис- 8,2)




                                               132