какой алгоритм я должен использовать рядом, чтобы выяснить, является ли ответ динамического программирования на проблему оптимальным ответом или нет? Вы могли бы предложить несколько бумаг, чтобы помочь мне узнать это?Как определить, является ли ответ динамического программирования оптимальным или нет?
ответ
Метод динамического программирования к проблеме, как правило, получает правильный ответ - т. Е. Находит истинный ответ на минимальные затраты - но обычно не гарантируется способ решения проблемы, которая использует минимальное количество процессора или памяти.
Существует много случаев, когда мы не знаем, использует ли наш метод решения проблемы минимально возможное количество процессора. Одним из примеров является то, что динамическая программа является одним из наиболее эффективных методов, но не является наиболее эффективным возможным способом: http://en.wikipedia.org/wiki/Knapsack_problem.
Не существует алгоритма, который говорит вам, является ли данное решение динамического программирования оптимальным.
См. Halting Problem для исследования по близкому вопросу.
Мне кажется, что сам вопрос испорчен. Неправильно ли, что если проблему можно сформулировать как проблему динамического программирования, то решение динамического программирования будет оптимальным? Единственная проблема, которую я вижу, - это проблема проблемы, которая является проблемой DP, но, возможно, не может быть решена, потому что она не заканчивается (возможно, это то, что вы имели в виду с проблемой остановки). – Mathias
Если по вашему вопросу вы имеете в виду: «Как узнать, правильно ли реализовано мое динамическое программирование?» Вы можете решить эту проблему также путем обратного отслеживания, которое просто реализовать и всегда дает лучшее решение. Вы можете попробовать как обратное отслеживание, так и динамическое программирование для одних и тех же небольших входов данных, и если выходы идентичны, то вы можете сильно подозревать, что реализация динамического программирования верна. В противном случае динамическое программирование всегда дает оптимальный ответ, но не все проблемы решаются DP, и, конечно, не все DP-прогремы могут быть решены с использованием того же состояния и/или повторения.
- 1. Как узнать, является ли запрос sql оптимальным или нет
- 2. Определить, является ли граф полусвязным или нет
- 3. как определить, является ли строка base64 или нет
- 4. Как определить, является ли класс или объект одиночным или нет?
- 5. Как определить, является ли объект PORO или нет?
- 6. Как получить, является ли ответ jquery файлом или нет?
- 7. как проверить, является ли ответ сервера json или нет?
- 8. Как определить, является ли объект пустым или нет
- 9. Как определить, является ли браузер 64-разрядным или нет?
- 10. Как определить, является ли треугольная сетка вогнутой или нет?
- 11. Как определить, является ли CSV пустым или нет строк?
- 12. Как определить, является ли ViewController верхним уровнем или нет?
- 13. Как определить, является ли mediacontroller видимым или нет?
- 14. Как определить, является ли URL-адрес изображением или нет?
- 15. Как определить, является ли число палиндром или нет в Java
- 16. Как определить, является ли поле первичным ключом или нет
- 17. Как определить, является ли TreeItem листом или нет?
- 18. Как определить, является ли msi временной отметкой или нет?
- 19. Как определить, является ли приложение системным приложением или нет?
- 20. Как определить, является ли версия Windows законной или нет?
- 21. Как определить, является ли элемент ввода html кнопкой или нет?
- 22. Как определить, является ли подсказка правильной или нет?
- 23. Как определить, является ли файл файлом javascript или нет?
- 24. Как определить, является ли функция POSIX повторной или нет?
- 25. Как определить, является ли COM-порт виртуальным или нет?
- 26. Как определить, является ли параметр шаблона встроенным или нет?
- 27. как определить, является ли человек онлайн или нет
- 28. Как определить, является ли запись среды функцией bash или нет?
- 29. Как определить, является ли объект JSON вложенным или нет
- 30. Как определить, является ли переменная массивом объектов или нет?
Думаю, вам сначала нужно определить проблему и «оптимальную». –
Можете ли вы привести пример, где вы подозреваете, что динамическое программирование даст вам неоптимальный ответ? Я не совсем понимаю ваш вопрос, потому что по определению я считаю, что если ваша проблема может быть сформулирована как динамическое программирование, то динамическое программирование даст вам оптимальный ответ (если вы его можете вычислить). – Mathias