На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Помогите с поиском в графах на ПРОЛОГе
    Помогите!!!!!  Срочно нужна програмка поиска в гафе с заданием вида поиска (в глубину или в ширину)!!!!!   ???  :'(
    Вот полное условие :

    /* search(a,end,graph,'bredth-first',P)
    1. Define a predicate

        search(+Start,+EndP,+Expand,+Strategy,-Path)

    which implements a problem independent search algorithm.

    Expand should be the name of a predicate

         expand(+N,-SL)

    which computes the list of successors SL of a node N.

    EndP should be a predicate which is true on a target node.

    Use the so called univ opretator '=..' for dynamicly constructing a goal:
       ... G =.. [EndP,State], G ...
    constructs the goal 'EndP(State)' and proves it, if the value of
    EndP ist a predicate name.(the first element of the list becomes
    the predicate name, all the other elements become arguments.)

    Strategy may have values 'depth-first' und 'breadth-first'
    using the corresponding search strategy.

    Try to minimize strategy dependent parts in the program code:
    Use an agende (list of tasks) which contains all currently
    constructed partial pathes which must be expanded to
    search for a solution. Restrict the effect of different strategies
    to the way of handling this agenda

    Test the program with the following graph:
    (start node: a , target node g)
    */

    /*
                 d---
                 ^   \
                 |    \
                 |     v
           a---->c---->f
           |     ^     |
           |     |     |
           v     |     v
           b---->i<----g
           |\    ^
           | \   |
           |  \  |
           |   ->h<--
           |         \
           v         |
           e---->k   |
           |     |   |
           v     v   /
           j---->l---
    */
      А случайно на русском языке нет ;D
        Щас сделаем на русском...... извиняюсь за корявый перевод  :-/
        и кривой граф.....
        В общем надо определить предикат
        поиск(+Начало, +Цель, +Расширить, +Стратегия, -Путь) чтобы програмка искала путь на вопрос  поиск(a,цель,граф,'вширину',П) и можно было задавать вид поиска: в ширину или в глубину
        Расширить должно быть тоже предикатом
             расширить(+N,-SL)
        который вычислял бы список последующих пунктов SL от пункта N.

        Предикат Цель действителен в целевой точке соответственно

        Да.... надо использовать оператор '=..' : например
           ... G =.. [Цель,Состояние], G ...
        который создает цель Цель(Состояние)' . При этом перввый элемент списка становится предикатом,  а все последующие - аргументами

        Стратегия имеет значения 'вглубину' и 'вширину' , и использует соответствующие методы поиска

        Используйте список целей, который содержит все образованные на данный момент пути и расширяется при поиске решения. Способ расширения будет различаться в зависимости от используемого метода поиска.

        Испытайте программу с помощю следующего графа:
        (начальный пункт: a , целевой пункт: g)
        */

        /*
                       d---
                       ^     \
                       |       \
                       |        v
               a---->c---->f
               |       ^       |
               |       |        |
               v       |       v
               b---->i<----g
               |\      ^
               | \     |
               |  \    |
               |    ->h<--
               |              \
               v              |
               e---->k     |
               |       |      |
               v       v     /
               j----> l ---
        */
          :o
              Этот сайт я уже смотрела..... :( К сожалению немного не то....
              Но все равно спасибо!
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0301 ]   [ 15 queries used ]   [ Generated: 27.04.24, 07:36 GMT ]