С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13

Поиск путей в графе

10.01.2017, 03:49. Показов 2199. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Стоит задача найти все пути на графе. Так, чтобы не было таких путей, в которых множество вершин одинаковы. Жду любые предложения. Желательно с описанием алгоритма.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.01.2017, 03:49
Ответы с готовыми решениями:

поиск путей на графе
поиск путей на графе дан ориентированый граф из 2-50 вершин, где каждому существующему ребру соотвествует рейтинг +-R, ребер...

Поиск нескольких кратчайших путей в графе
Добрый день всем! Такая казалось бы тривиальная задача для гуру программистов, но ничего толкового не могу найти. Нужно найти несколько...

Поиск всех путей в графе, сумма значений которых меньше установленного числа
Здравствуйте. Есть граф, в вершинах которого числовые значения. Нужно найти все пути в графе, сума значений вершин которых меньше заранее...

18
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
10.01.2017, 09:53
Граф неориентированный?

Не по теме:

Теперь понятно, для чего понадобилось хэширование массива.



Добавлено через 3 минуты
Алгоритм:
Берём все возможные комбинации вершин (выбор без перестановок) и для каждой определяем (поиском в глубину), существует ли путь, проходящий через все эти вершины и только через них (гамильтонов путь на подграфе).
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
10.01.2017, 15:02  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Граф неориентированный?
Граф неориентированный.

Добавлено через 7 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Берём все возможные комбинации вершин (выбор без перестановок)
Не очень понял.Как бы вся эта затея с обходом для этого и задумана, чтобы найти все комбинации вершин.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
11.01.2017, 08:38
Цитата Сообщение от Nevors Посмотреть сообщение
найти все комбинации вершин
Если у нас есть есть n вершин, то каждой комбинации вершин можно поставить в соответствие n-битное число, в котором установленные биты будут соответствовать выбранным вершинам.
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
11.01.2017, 13:08  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Если у нас есть есть n вершин, то каждой комбинации вершин можно поставить в соответствие n-битное число, в котором установленные биты будут соответствовать выбранным вершинам.
У меня была такая реализация, но она очень трудоемкая. В моей задаче производятся действия над значениями хранимыми в узлах,и каждый набор узлов в пути это объединение данных в узлах по определенным правилам. В таком случае, есть моменты при которых объединение узлов не даст заведомо результатов. Поэтому я решил построить граф и объединить только те узлы над которыми есть смысл проводить действия. Далее для того что бы не было повторяющихся наборов узлов я решил сохранять отсортированный путь как строку и пихать все в множество,чтобы при встрече пути который содержит такой же набор вершин я прекращал дальнейший проход по данному пути. Да это все работает но не так быстро как хотелось бы. Поэтому я написал сюда в надежде, что мне предложат наиболее эффективный способ.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
11.01.2017, 13:49
Цитата Сообщение от Nevors Посмотреть сообщение
но она очень трудоемкая
Что значит "трудоемкая"?

Цитата Сообщение от Nevors Посмотреть сообщение
Поэтому я решил построить граф
Вероятно, лишний шаг.
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
11.01.2017, 13:59  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Что значит "трудоемкая"?
ЭМ...не правильно прочитал ваше сообщение извиняюсь.

Добавлено через 5 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
n-битное число
Не очень понимаю как это хранить если большое количество узлов.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
11.01.2017, 14:00
Цитата Сообщение от Nevors Посмотреть сообщение
Предложите свой вариант
Вариант чего? Перечисления подходящих комбинаций? Запросто. Предлагаю брать первые 10, а остальные - не подходят.
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
11.01.2017, 14:00  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вероятно, лишний шаг.
Тогда как иначе реализовать алгоритм с теми условиями что я описал.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
11.01.2017, 14:29
Цитата Сообщение от Nevors Посмотреть сообщение
с теми условиями что я описал
Из Вашего описания непонятно, что Вы хотите сделать.

з.ы. Даже непонятно, что требуется получить в итоге - одно число, список чисел,... и т.п.
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
11.01.2017, 15:10  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
з.ы. Даже непонятно, что требуется получить в итоге - одно число, список чисел,... и т.п.
Список комбинаций узлов, среди которых нет комбинаций с одинаковым множеством узлов.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
11.01.2017, 16:06
Цитата Сообщение от Nevors Посмотреть сообщение
Список комбинаций узлов, среди которых нет комбинаций с одинаковым множеством узлов.
Элементарная задача из комбинаторики. Для решения граф не нужен. Ответ будет содержать 2n комбинаций.
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
11.01.2017, 17:19  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Элементарная задача из комбинаторики. Для решения граф не нужен. Ответ будет содержать 2n комбинаций.
Так я и говорю что мне все комбинации не нужны, а только те в которых есть смысл для меня. Поэтому я и построил граф чтобы определить связи между узлами где связь означает что эти две вершины есть смысл объединять.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
11.01.2017, 22:43
Цитата Сообщение от Nevors Посмотреть сообщение
мне все комбинации не нужны, а только те в которых есть смысл для меня
Не зная, какие комбинации имеют для Вас смысл, я не могу предложить алгоритм для их перечисления. Но, исходя из своего опыта, я могу предположить, что, вероятно, граф не нужен.
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
12.01.2017, 12:50  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Не зная, какие комбинации имеют для Вас смысл,
Ок. Вот например пусть каждый узел это селектор(CSS). Данные в узле это свойства селекторов. Комбинация узлов - это объединение селекторов. Видно сразу что не все селекторы имеют одинаковые свойства. А смысл объединять те селектора где нет одинаковых свойств.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
12.01.2017, 14:44
Что такое свойства селекторов? У css селекторов нет свойств.
Не понятно, что Вы называете "объединением селекторов". Не похоже, что речь идёт о применении комбинаторов.
Одинаковые свойства - это свойства с одинаковыми именами или свойства с одинаковыми именами и значениями?

Цитата Сообщение от Nevors Посмотреть сообщение
А смысл объединять те селектора где нет одинаковых свойств.
В русском языке словосочетание "а смысл делать" обычно означает, что делать это не надо. Но применяется оно в вопросительных предложениях, а у Вас предложение утвердительное. Поэтому мне не понятно, означает это, что нужно объединить селекторы, у которых нет одинаковых свойств или что-нибудь другое?
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
12.01.2017, 15:13  [ТС]
Свойства селектора - набор свойств применяемых к селектору.
Одинаковый свойства - свойства, где имя и значение свойства совпадают.
Объединение селекторов - новый селектор который содержит одинаковые свойства у объединяемых селекторов.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Поэтому мне не понятно, означает это
А смысл объединять те селектора, где нет одинаковых свойств???
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
12.01.2017, 15:32
Лучший ответ Сообщение было отмечено Nevors как решение

Решение

Цитата Сообщение от Nevors Посмотреть сообщение
. Так, чтобы не было таких путей, в которых множество вершин одинаковы.
Пронумеруйте вершины в произвольном порядке. (Например, если они в у Вас хранятся в массиве, то индекс может быть номером).
Сделайте свой граф направленным - чтобы рёбра шли от вершин с меньшими номерами к вершинам с большими номерами.
Тогда условие будет выполнятся автоматически.

Добавлено через 17 минут
Цитата Сообщение от Nevors Посмотреть сообщение
набор свойств применяемых к селектору.
Селектор - это критерий выбора элементов. У селектора нет свойств.
Примеры css селекторов:
h3
#someid

Правило css состоит из селектора и блока объявления стилей. Может, Вы имеете ввиду правила css?
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 13
12.01.2017, 19:27  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
от вершин с меньшими номерами к вершинам с большими номерами
А слона я не заметил.Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2017, 19:27
Помогаю со студенческими работами здесь

Экономное представление путей в графе
Есть приведенное бинарное дерево (изоморфные подграфы сливаются, в узла может стать несколько родителей). Нужно каким-то образом...

Поиск в графе
Здравствуйте, есть следующая задача: Дан массив A длины (n+1), содержащий натуральные числа от 1 до n. Найти любой повторяющийся...

Поиск циклов в графе
Подскажите, пожалуйста, какие идеи нужно применять к данной задаче

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

Поиск кратчайшего пути в графе
Здравствуйте. Есть задача осуществить поиск кратчайшего пути между двумя заданными вершинами в графе. Также существует условие, что при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru