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

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

    В некоторых случаях смотрю не все так ясно, и мало что нагугливается, например задача поиска минимального остовного дерева, с помощью муравьиного алгоритма.

    Спасибо.
      Матрица смежности - всего лишь один из способов представления графа. А потому любой алгоритм на графах может реализовываться и с исходными в виде матрицы смежности.

      К слову - конвертация представления графа из матрицы смежности в любой другой - это тоже алгоритмы на матрице смежности. И вполне себе практическая задача. И, скажем, в случае ориентированного графа с кратными рёбрами, такая конвертация может быть не самой простой задачей.
        все имхо

        1. для сильно разреженных графов вроде неоптимально, т е когда много объектов и между ними слабая связь
        2. учитывать всякие петли и кратные ребра в мультиграфах может быть проблематично
        3. например, в "чистом" Си нет встроенного vector-а С++ого ( в стандарте С89 к примеру ), поэтому, например, список смежности программировать в Си, это создавать динамический массив списков тоже не оч.просто, с тзрения работы с памятью и пр. пр.

        зы: матрица смежности оч.удобна, т к это наглядно и легко программируется), но вроде б(!) большинство алгоритмов на графах не используют м.смежности в качестве его ( графа ) способа представления
          В php матрица смежности легко задается:

          ExpandedWrap disabled
            $matrix = [
                        [ 0, 8, 4, 11],
                        [ 8, 0, 9, 5 ],
                        [ 4, 9, 0, 8 ],
                        [11, 5, 8, 0 ]
                      ];

          , тут числа - это расстояния, а индексы массива - узлы графа.

          Список смежности компактнее, но он не дает того что выше, пространственного представления
            Цитата Квант @
            В php матрица смежности легко задается

            Хорошо, когда граф ненаправленный..
            А если взвешенный направленный? да ещё с кратными рёбрами.. вот хотел бы я посмотреть на "легко задаётся" в этом случае.
            Сообщение отредактировано: Akina -
              Цитата Akina @
              Цитата Квант @
              В php матрица смежности легко задается

              Хорошо, когда граф ненаправленный..
              А если взвешенный направленный? да ещё с кратными рёбрами.. вот хотел бы я посмотреть на "легко задаётся" в этом случае.

              В матрице смежности задаются же оба ребра - от вершины i к вершине j, и также от j к i, соответственно, присвоив какое то большое значение одному, пулучим направленный граф
                Квант
                Главное в моём вопросе - с кратными рёбрами.
                  Цитата Akina @
                  Квант
                  Главное в моём вопросе - с кратными рёбрами.

                  С кратными ребрами - это уж диковинка какая то
                    Цитата Квант @
                    С кратными ребрами - это уж диковинка какая то

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


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0381 ]   [ 15 queries used ]   [ Generated: 6.10.24, 10:57 GMT ]