Полиномиальный алгоритм времени для нахождения гамильтонова обхода в [закрытом] графике

Те же проблемы с тем же устройством были здесь.

Итак, это проблема Xiaomi, и вот решение этой проблемы:

  1. Перейдите в раздел «Безопасность "и нажмите« Опции »в верхнем правом углу
  2. Прокрутите вниз до группы« Настройки функций »и найдите« Разрешения »
  3. . Там отключите опцию« Установить через USB » , который управляет установкой приложений через USB и не позволяет его.

На последнем устройстве Redmi

Настройки> Дополнительные параметры> Параметры разработчика> Параметры разработчика: Проверить опцию Установить через USB.

Удачи!

5
задан Peter Mortensen 20 July 2010 в 21:06
поделиться

6 ответов

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

17
ответ дан 18 December 2019 в 05:15
поделиться

Это - завершенный NP. Но если Вам действительно удается найти хороший метод, сообщите мне, и я покажу Вам, как разбогатеть.

3
ответ дан 18 December 2019 в 05:15
поделиться

Нахождение лучшего алгоритма для самого короткого маловероятно, поскольку это - NP трудно. Но существует некоторая эвристика, которую Вы могли попробовать, и возможно Вы могли бы хотеть консультироваться со своими примечаниями лекции для тех ;).

Для меньшей сложности Вы могли найти короткое (выход) обход с помощью жадного алгоритма.

2
ответ дан 18 December 2019 в 05:15
поделиться

В целом как (версия решения) гамильтонова проблема Пути полна NP, Вы не можете надеяться получить полиномиально-разовый алгоритм для нахождения гамильтоновых путей. Можно немного ускорить его с обычным N! прием динамического программирования  N22N (вычисляют hp [v] [w] [S] =, "является там путем, который имеет конечные точки v и w и чьи вершины являются подмножеством S" для каждого подмножества S и каждых двух вершин v и w в нем с помощью DP), но это все еще экспоненциально.

Однако существует много специальных видов графиков, для которых будут всегда существовать гамильтоновы пути, и они могут быть найдены легко (см. работу Posa, Dirac, Орегон, и т.д.),

Например, следующее верно: Если каждая вершина графика имеет градус, по крайней мере, n/2, то график имеет гамильтонов путь. Можно на самом деле найти один в O (n2), или IIRC даже O (n регистрируют n), если Вы делаете это более умно.
[Грубый эскиз: Во-первых, просто соедините все вершины в некотором "гамильтоновом" цикле, nevermind, если края находятся на самом деле в графике. Теперь для каждого края (v, w) Вашего цикла, который не находится на самом деле в графике, рассматривают остальную часть цикла: v... w. Как градус (v) +deg (w)> =n, там существуйте последовательный x, y в Вашем списке (в том порядке) таким образом, что w является соседом x, и v является соседом y. [Доказательство: Рассмотрите {группу всех соседей w} и {группа всех преемников в Вашем списке соседей v}; они должны пересечься.] Теперь изменяют Ваш цикл [v.. xy... wv] к [vy... wx... v] вместо этого, это имеет по крайней мере один меньше недопустимого края, таким образом, Вы должны будете при большинстве n повторений получить истинный гамильтонов цикл. Больше деталей здесь.]

BTW: если то, что Вы ищете, является просто обходом, который включает каждый край однажды, он назвал Эйлеров обход и для графиков, которые имеют его (количество вершин нечетного градуса 0 или 2), можно довольно легко быть найден в полиномиальное время (быстро).

21
ответ дан 18 December 2019 в 05:15
поделиться

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

Это работает хорошо против случайным образом сгенерированных относительно редких графиков, которые, как гарантируют, будут иметь гамильтонов обход.

1
ответ дан 18 December 2019 в 05:15
поделиться

Хммм .. это зависит от ваших определений. Гамильтонов путь заведомо NP-полон. Однако гамильтонова прогулка, которая может посещать ребра и вершины более одного раза (да, она все еще называется гамильтоновой, если вы добавляете бит ходьбы в конце), может быть вычислена в O (p ^ 2logp) или O (max (c ^ 2plogp , | E |)) до тех пор, пока ваш граф удовлетворяет определенному условию, которое Дирак впервые предположил, а Такамизава доказал. См. Takamizawa (1980) «Алгоритм поиска короткого замкнутого покрывающего блуждания в графе».

Пол

2
ответ дан 18 December 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: