Будет ли проблема выдавать, является ли данное скремблированное слово истинным английским словом, является эквивалентной проблемой для проблемы коммивояжера? Хорошо известная стратегия состоит в том, чтобы сгенерировать все перестановки данного слова и сравнить все их со всеми словами в английском словаре. Этот алгоритм будет иметь временную сложность O(N!)
. Я мог представить себе, что эти два отличаются в важном аспекте: если вы найдете перестановку, которая соответствует слову, вы можете прекратить генерировать перестановки, тогда как с помощью TSP вам придется проверять каждую комбинацию маршрутов независимо. Однако я написал алгоритм, который вместо генерации всех перестановок заданного слова длиной n вместо этого сортирует буквы в данном слове и выполняет тот же алгоритм на словах словаря, а затем сравнивает две отсортированные строки (этот метод работает в 100% случаев). Мой алгоритм использует сортировку по умолчанию Java, и после исследования я обнаружил, что он работает от O(n log n)
. В целом, моя программа работает от O(n log n)
, потому что этот термин растет самым большим, поскольку n приближается к бесконечности. Этот алгоритм работает меньше, чем полиномиальное время. Итак, если проблемы эквивалентны, не могли бы вы использовать аналогичный метод для решения проблемы TSP? Как это относится к P против NP? Извините, если что-либо из этого не имеет смысла, или я не использовал терминологию правильно, я не так разбираюсь в этом полеTSP vs. Word Unscrambler
ответ
Тот факт, что существуют алгоритмы одинаковой сложности для решения двух задач, t обязательно означает, что проблемы имеют одинаковую сложность, потому что могут существовать более эффективные алгоритмы для одной из проблем, но не для другой.
Правильный способ соотнесения сложности различных проблем сокращение: Если вы можете показать, что любой экземпляр задачи может быть преобразован в экземпляр задачи B таким образом, что ответ на трансформированный экземпляр такой же, как ответ на исходный экземпляр, то задача в, по крайней мере столь же сложным, как проблема (так как алгоритм, который решает B также может решить A). Если вы также можете показать снижение в обратном направлении, то A и B одинаково сложны.
В вашем случае в настоящее время не существует способа преобразования произвольной задачи TSP в эквивалентную проблему разборки, поэтому он (насколько нам известно) не тот случай, когда проблемы имеют одинаковую сложность.
+1, но TTBOMK «это невозможно» слишком сильно, так как это означает, что это доказанный факт. Я считаю, что все, что мы можем сказать, заключается в том, что никто еще не нашел сокращения от любой NP-жесткой проблемы до любой проблемы в P, несмотря на десятилетия внимания лучших умов в информатике. –
@j_random_hacker: Вы правы (и я неаккуратно замалчивал это); Я отредактировал свой ответ. –
- 1. C++ word unscrambler
- 2. Word Unscrambler Complexity Class
- 3. VBA for Publisher vs Word
- 4. Путешественник (TSP) no return
- 5. Динамический подход к TSP
- 6. Close-Enough Внедрение TSP
- 7. Simulated Annealing TSP
- 8. TSP с твист
- 9. смысл файла .TSP (коммивояжер)
- 10. Несколько TSP с завихрением
- 11. Данные для простого TSP
- 12. Алгоритм графика: Подобно TSP
- 13. кратчайший путь tsp алгоритм
- 14. TSP - Branch and bound
- 15. Толкование решения TSP
- 16. Несколько посещений tsp
- 17. Panasonic TSP crash
- 18. Алгоритм графика: Подобно TSP
- 19. TSP optim tour
- 20. TSP-Вариант, возможный алгоритм?
- 21. Как сделать свое слово unscrambler возвращать более релевантные результаты
- 22. VS 2008 Открыть документ Word - Ошибка памяти
- 23. VS 2013 Word Надстройка: отсутствует Microsoft.Office.Tools.Common.v4.0.Utilities
- 24. Автоматизация Word, запущенная с помощью VS 2008
- 25. Visual Studio vs VBA в Word
- 26. TSP/TSPTW с различными семенами
- 27. Пример построения TSP с IPOPT
- 28. TSP для полного управляемого графика
- 29. TSP окна времени в GUSEK
- 30. Дифференциация между ATSP и TSP
Тот факт, что вы можете решить проблему скремблирования слова в O (n log n) (который BTW является полиномиальным временем), является ключом к тому, что проблемы не эквивалентны. Если бы они были эквивалентны, это означало бы, что любая проблема TSP может быть превращена в соответствующую проблему скремблирования слов, которую вы могли бы затем решить в многократное время - и поскольку TSP доказано, что NP-жесткий, это будет означать, что NP = P, и вы выиграете миллион долларов. –
@j_random_hacker, это именно то, что я надеялся на lol – Michael