2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Прохождение Графа
Сообщение16.08.2014, 18:34 
Доброго времени суток.
Есть задача, связанная с прохождением всех вершин графа по кратчайшему пути, с началом обхода в заданной вершине и окончанием обхода в заданной вершине (вершины разные). Кто сталкивался - подскажите алгоритм.

 
 
 
 Re: Прохождение Графа
Сообщение16.08.2014, 19:02 
Попробуйте поискать так

 
 
 
 Re: Прохождение Графа
Сообщение16.08.2014, 19:49 
patzer2097
это не Гамильтонов контур (я его решаю), задача сложнее - читайте постановку внимательнее.
hclubmk писал(а):
(вершины разные)

 
 
 
 Re: Прохождение Графа
Сообщение16.08.2014, 21:09 
а я Вам предлагаю почитать про гамильтонов путь, а не цикл :twisted:

 
 
 
 Re: Прохождение Графа
Сообщение16.08.2014, 23:35 
Аватара пользователя
Сдаётся мне, речь шла про граф, где Гамильтонова пути может и не быть :?:
Кратчайший путь, однако, какой-то по-любому есть.

 
 
 
 Re: Прохождение Графа
Сообщение17.08.2014, 00:08 
ИСН в сообщении #896758 писал(а):
Сдаётся мне, речь шла про граф, где Гамильтонова пути может и не быть :?:
если гамильтонова пути в графе $G$ нет, мы всегда можем рассмотреть взвешенный граф $G'$, ребро которого между $i$ и $j$ имеет вес $\rho_G(i,j)$, где $\rho_G$ - метрика, заданная графом $G$. Эти веса считаются быстро, и сформулированная задача для графа $G$ равносильна задаче о кратчайшем гамильтоновом пути в $G'$

 
 
 
 Re: Прохождение Графа
Сообщение17.08.2014, 09:28 
Хотелось бы получить конкретную ссылку на конкретный алгоритм. Например: решение задачи коммивояжера методом Литтла.
Если таковыx не имеется, просьба не кидать [censored] на вентилятор разводить демагогию.

 
 
 
 Re: Прохождение Графа
Сообщение17.08.2014, 10:25 
Аватара пользователя
 ! 
hclubmk в сообщении #896810 писал(а):
[censored]
hclubmk, предупреждение за обсценную лексику.

 
 
 
 Re: Прохождение Графа
Сообщение17.08.2014, 11:15 
Аватара пользователя
Веса-то быстро, но как найти кратчайший гамильтонов путь во взвешенном графе, если даже найти хоть какой-нибудь из них в простом графе - задача NP-полная?

 
 
 
 Re: Прохождение Графа
Сообщение17.08.2014, 12:18 
ИСН в сообщении #896821 писал(а):
но как найти кратчайший гамильтонов путь во взвешенном графе, если даже найти хоть какой-нибудь из них в простом графе - задача NP-полная
ну это известная задача, она называется "задача коммивояжера", очень популярный объект исследования сейчас. Для нее построено множество разных алгоритмов, например, тут масса примеров с открытым кодом. Правда, в стандартной в этой задаче рассматриваются гамильтоновы циклы - т.е., простые циклы, проходящие через все вершины; если мы хотим рассматривать путь с началом $u$ и концом $v$, проходящий по разу через все вершины, то можно добавить в граф новую вершину $\varepsilon$, соединенную с $u$ и $v$ ребрами веса $0$ и не соединенную ни с какими другими

 
 
 
 Re: Прохождение Графа
Сообщение17.08.2014, 12:28 
Аватара пользователя
А, чёрт, ну да, это же она и есть, не узнал. То есть тоже полнопереборная, но придуманы какие-то эвристики, обычно работающие хорошо.

 
 
 
 Re: Прохождение Графа
Сообщение17.08.2014, 14:45 
ИСН в сообщении #896836 писал(а):
То есть тоже полнопереборная, но придуманы какие-то эвристики, обычно работающие хорошо.
Не совсем переборная, есть стандартные точные алгоритмы, работающие за $O\left(2^{n+o(n)}\right)$, а перебор требует порядка $n!$ операций

 
 
 
 Re: Прохождение Графа
Сообщение18.08.2014, 16:20 
patzer2097 в сообщении #896834 писал(а):
можно добавить в граф новую вершину $\varepsilon$, соединенную с $u$ и $v$ ребрами веса $0$ и не соединенную ни с какими другими

Работает, спасибо.

 
 
 
 Re: Прохождение Графа
Сообщение23.08.2014, 07:01 
А не логичнее не добавлять вершину, а просто запретить все переходы в $u$ и из $v$?

 
 
 [ Сообщений: 14 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group