powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм определения циклических ссылок
25 сообщений из 50, страница 1 из 2
Алгоритм определения циклических ссылок
    #35313377
Farus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35313441
FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
Ну, скажем, такой алгоритм (типа поиска "в глубину"). Только он очень долгий :)
1. создаем массив вершин графа
2. создаем массив пройденных вершин графа
3. берем первую вершину
4. берем произвольное ребро графа, выходящее из этой вершины.
5. Если вторая вершина ребра графа содержится в массиве пройденных вершин, то мы нашли цикл.
6. В противном случае заносим вершину в пройденные, делаем ее текущей и идем на п.4
7. Если данная вершина является листом (т.е. из нее больше не выходит ребер), то возвращаемся на один уровень вверх (к предыдущей пройденной вершине) и возвращаемся к п.4
8. Если вершин больше не осталось, то мы обошли весь граф.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35313486
Farus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
Ну, скажем, такой алгоритм (типа поиска "в глубину"). Только он очень долгий :)
...
5. Если вторая вершина ребра графа содержится в массиве пройденных вершин, то мы нашли цикл.
...

Ну хорошо, эт вроде все будет работать.
А ежели мы накладываем дом условие - граф ориентированный. И тогда понятие цикла несколько меняется.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35313670
Самоловских Виталий aka Kefir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Farus
Ну хорошо, эт вроде все будет работать.
А ежели мы накладываем дом условие - граф ориентированный. И тогда понятие цикла несколько меняется.
А в неориентированном графе две вершины и ребро уже цикл. Алгоритм как раз на ориентированных работает.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35313676
Самоловских Виталий aka Kefir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет. В этом случае нужно начинать с каждой вершины и чистить список пройденных. Наверное есть лучший алгоритм, надо книжки читать.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35313930
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.хотите написать свою реализацию Spanning Tree алгоритма ? :)
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35314019
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
Хочу тебя огорчить. Практически 100% алгорутмов теории графов уже были предложены в прошлом веке. Тебе остаётся только почитать теорию и выбрать алгоритм, который наиболее близко подходит к решению твоей задачи.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35314033
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
Хочу тебя огорчить. Практически 100% алгорутмов теории графов уже были предложены в прошлом веке. Тебе остаётся только почитать теорию и выбрать алгоритм, который наиболее близко подходит к решению твоей задачи.

Ну я искал по гуглу. Готового не нашел. Хотя алгорим то вообщем то должен быть фундаментальным. :-)
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35314107
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_0 FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.хотите написать свою реализацию Spanning Tree алгоритма ? :)

Это вроде коммуникации. Нее... мне для прикладной программки.
Хотя можно сделать и перебором тупым.... Только боюсь количество переборов будет возрастать в геометрической прогрессии.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35314476
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
Зависит от того, что именно Вам нужно. Найти все циклы во всех вариантах? Найти фундаментальные циклы? Определить факт наличия циклов без поиска самих циклов? Еще что-нибудь?

И таки да, гугль содержит более чем достаточно информации на эту тему.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35315012
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog mayton FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
Хочу тебя огорчить. Практически 100% алгорутмов теории графов уже были предложены в прошлом веке. Тебе остаётся только почитать теорию и выбрать алгоритм, который наиболее близко подходит к решению твоей задачи.

Ну я искал по гуглу. Готового не нашел. Хотя алгорим то вообщем то должен быть фундаментальным. :-)

Постройте по вашему графу остов. Все ребра, не вошедшие в остов - уже элементы циклов.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35315279
ретти
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
очень интересно, но неоднозначно
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35316451
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer FarusКто поможет: предложите алгорим определения цикличиеских ссылок на графе произвольного размера.
Зависит от того, что именно Вам нужно. Найти все циклы во всех вариантах? Найти фундаментальные циклы? Определить факт наличия циклов без поиска самих циклов? Еще что-нибудь?

И таки да, гугль содержит более чем достаточно информации на эту тему.

Найти любые циклы, притом если граф строится итеративно - то сообщить об этом цикле и показать его в момент добавления решающего ребра.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35316483
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда есть совершенно очевидный алгоритм. Поддерживать список возможных путей между вершинами графа. То есть начать с одной вершины; далее добавили вершину - ничего не делаем, добавили ребро - достраиваем список путей, используя начинающиеся и заканчивающиеся в вершинах этого ребра. Каждый раз, когда при добавлении ребра АБ уже имеем путь БА или - внимание - несколько таких путей, вот вам, бабушка, и циклы.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35316523
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerТогда есть совершенно очевидный алгоритм. Поддерживать список возможных путей между вершинами графа. То есть начать с одной вершины; далее добавили вершину - ничего не делаем, добавили ребро - достраиваем список путей, используя начинающиеся и заканчивающиеся в вершинах этого ребра. Каждый раз, когда при добавлении ребра АБ уже имеем путь БА или - внимание - несколько таких путей, вот вам, бабушка, и циклы.

Получится дикое количество комбинаций......
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35316559
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogПолучится дикое количество комбинаций......
Это если ребра добавляются интерактивно-то? Не очень верится, раньше оператор устанет :)

А так - задача поиска всех циклов, если не ошибаюсь, np-полна, следовательно либо дикое количество комбинаций в памяти, либо перебор того же дикого количества комбинаций на ходу. Можно применять методы сокращения, скажем, железнодорожники строят граф только по узловым станциям (грубо говоря, по развилкам), сжимая вершины один вход - один выход.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35316691
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer AlexsalogПолучится дикое количество комбинаций......
Это если ребра добавляются интерактивно-то? Не очень верится, раньше оператор устанет :)

А так - задача поиска всех циклов, если не ошибаюсь, np-полна, следовательно либо дикое количество комбинаций в памяти, либо перебор того же дикого количества комбинаций на ходу. Можно применять методы сокращения, скажем, железнодорожники строят граф только по узловым станциям (грубо говоря, по развилкам), сжимая вершины один вход - один выход.

Насчет развилок - мысль. Про np полноту - тоже.

Ок, спасибо.

Хотя наверное как всегда есть вариант комбинированный - чать отдается на "память" а часть на перебор...
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318373
ретти
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerКаждый раз, когда при добавлении ребра АБ уже имеем путь БА или - внимание - несколько таких путей, вот вам, бабушка, и циклы.
При всем моем, откуда такая зашоренность отклика на вторую сторону?
Переформулировать вопрос и считать его решенным.

Ваще децсад. "уже имеем путь БА". И как мы узнаем что мы его, этот путь, "уже имеем"(или, уже "поимели")?
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318378
ретти
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexsalog softwarer AlexsalogПолучится дикое количество комбинаций......
Это если ребра добавляются интерактивно-то? Не очень верится, раньше оператор устанет :)

А так - задача поиска всех циклов, если не ошибаюсь, np-полна, следовательно либо дикое количество комбинаций в памяти, либо перебор того же дикого количества комбинаций на ходу. Можно применять методы сокращения, скажем, железнодорожники строят граф только по узловым станциям (грубо говоря, по развилкам), сжимая вершины один вход - один выход.

Насчет развилок - мысль. Про np полноту - тоже.

Ок, спасибо.

Хотя наверное как всегда есть вариант комбинированный - чать отдается на "память" а часть на перебор...
Этот тоже. Как Добчинский раскланялся. Типа спасибо. Насчет развилок -- это мысль?
Про эту банальщину тут никто и не вспоминал. Она тебе поможет как мертвому припарки.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318399
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
реттиВаще децсад. "уже имеем путь БА". И как мы узнаем что мы его, этот путь, "уже имеем"(или, уже "поимели")?
Ваш вопрос показывает, что Вы либо не читали то, на что отвечаете, либо временно/постоянно не в состоянии воспринимать прочитанное. До тех пор, пока означенные факторы не изменятся, беседа вряд ли будет осмысленной.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318413
asvdfdsv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если речь только об интерактивной проверке, то проще и быстрее банально пускать волну из обеих вершин, которые соединяет новосозданное ребро
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318415
asvdfdsv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asvdfdsvесли речь только об интерактивной проверке, то проще и быстрее банально пускать волну из обеих вершин, которые соединяет новосозданное ребро
из одной из этих вершин, разумеется, будет достаточно
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318421
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asvdfdsvесли речь только об интерактивной проверке, то проще и быстрее банально пускать волну
Если речь идет о том, чтобы найти какой-нибудь цикл, то да. Но автору нужны все - и тут не соглашусь, и не быстрее, и не проще.
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318425
asvdfdsv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer asvdfdsvесли речь только об интерактивной проверке, то проще и быстрее банально пускать волну
Если речь идет о том, чтобы найти какой-нибудь цикл, то да. Но автору нужны все - и тут не соглашусь, и не быстрее, и не проще.
ну если все, тогда лучше конечно действительно строить маршруты
но опять же - на лету, имхо
т.е. если есть условие интерактивной проверки, то я бы по-любому это использовал, сужая задачу до поиска циклов, проходящих через заданную вершину (например их которой исходит новое ребро), а не ваааааще всех на графе
...
Рейтинг: 0 / 0
Алгоритм определения циклических ссылок
    #35318451
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asvdfdsvну если все, тогда лучше конечно действительно строить маршруты
но опять же - на лету, имхо
Интуитивное "имхо" желательно бы подкреплять. Одного гигабайта оперативки - столько есть на любой современной рабочей станции - хватит, чтобы хранить матрицу связности графа примерно на 90'000 вершин. Также память нужна будет под уже найденные циклы итп - но порядок величин понятен.

Сколько времени будет обсчитываться волна "из точки во все" на таком графе - довольно интересный вопрос. Заснуть, конечно, не успеешь, но вот получить ответ за комфортное для интерактивного режима время - далеко не факт.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм определения циклических ссылок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]