Я видел ссылку на вырезку и вставку доказательств в некоторых текстах алгоритмов. Какова основная идея таких доказательств? и как я могу их использовать, чтобы что-то доказать?Что такое вырезка и вставка?
ответ
Термин «вырезать и вставлять» иногда появляется в алгоритмах при выполнении динамического программирования (и другие вещи тоже, но именно там я его впервые увидел). Идея состоит в том, что для использования динамического программирования проблема, которую вы пытаетесь решить, вероятно, имеет некоторую базовую избыточность. Вы используете таблицу или подобную технику, чтобы избежать повторения одних и тех же задач оптимизации снова и снова. Конечно, прежде чем вы начнете использовать динамическое программирование, было бы неплохо доказать, что проблема имеет эту избыточность, иначе вы ничего не получите, используя таблицу. Это часто называют свойством «оптимальной подзадачи» (например, в CLRS).
Техника «вырезать и вставить» - это способ доказать, что проблема имеет это свойство. В частности, вы хотите показать, что, когда вы придумываете оптимальное решение проблемы, вы обязательно использовали оптимальные решения для составляющих подзадач. Доказательство противоречит. Предположим, вы придумали оптимальное решение проблемы, используя субоптимальные решения для подзадач. Затем, если бы вы заменили («разрезали») субоптимальные решения подзадач с оптимальными решениями подзадач (путем «вставки» их), вы улучшили бы оптимальное решение. Но, поскольку ваше решение было оптимальным по предположению, у вас есть противоречие. Есть еще несколько шагов, связанных с таким доказательством, но это часть «вырезать и вставить».
Cut-and-Paste - это метод, используемый при построении концепций теории графов. Идея такова: предположим, что у вас есть решение проблемы A, вы хотите сказать, что некоторый край/узел должен быть доступен в решении. Вы предположите, что у вас есть решение без указанного края/узла, вы пытаетесь восстановить решение, разрезая ребро/узел и вставляя указанный край/узел и заявляя, что преимущество в новом решении по крайней мере так же, как и предыдущее решение.
Один из самых важных образцов - это атрибуты MST (доказательство того, что жадный выбор достаточно хорош). см. presentation on MST from CLRS book.
«вырезать и вставить» метод может быть использован в доказательстве как правильность жадного алгоритма (как оптимальная структуры и жадные варианты свойства»и динамический алгоритм программирования правильности.
Жадной Корректность
Этой лекция отмечает Correctness of MST из MIT 2005 алгоритм старшекурсник экспонатов класса «вырезать и вставить» технику, чтобы доказать, как оптимальную структуру и жадный-выбор свойства.
Эта лекция отмечает Correctness of MST из MIT 6.046J/18.410J весной 2015 года использование «вырезать и -пастевая техника для доказательства gr eedy-выбор недвижимость
Динамического программирование Корректность
Более аутентичное объяснение «вырезать и вставить» было введено в КСПСЕ (третий Edtion) Глава 15.3 Элемента динамического программирования на странице 379
«4 , Вы показываете, что решения подзадач, используемых в оптимальном решении проблемы, сами по себе должны быть оптимальными с использованием метода «вырезания и вставки» . Вы делаете это, полагая, что каждое из решений подзадачи не является оптимальным, а затем выводит противоречие. В частности, путем «вырезания» неоптимального решения подзадачи и «склеивания» в оптимальном, вы показываете, что можете получить лучшее решение исходной проблемы, что противоречит вашему предположению о том, что у вас уже было оптимальное решение. Если существует более одной подзадачи, они обычно настолько похожи, что аргумент cut-and-paste для одного может быть изменен для других с небольшими усилиями."
Доказательство от противного предполагается
P ложным, то есть! P истинно.
Показано, что P! Подразумевает два противоречащих друг другу утверждения, Q и! Q.
Поскольку Q и! Q не могут быть истинными, предположение о том, что P ложно, должно быть неверным, а P должно быть истинным.
- 1. красная черная вставка дерева вставка - что такое страж?
- 2. вырезка отверстий в PathGeometry
- 3. Детали реализации ВВД вырезка
- 4. Полимерная вырезка-меню
- 5. Вырезка и пользовательские ссылки из ResourceProcessor
- 6. Что такое трансформация и что такое Transform?
- 7. Что такое скрипка и что такое DL?
- 8. Что такое `+:` и `-:`?
- 9. Что такое | = и divmod
- 10. Вставка в устье против улей Нагрузка: что такое компромисс?
- 11. Что такое последовательная запись и что такое случайная запись
- 12. Что такое синтаксис и что такое использование @ в javascript?
- 13. Что такое метод обновления MessageDigest и что такое BASE64Encoder?
- 14. Что такое пулы PHP-FPM и что такое pm.max_children?
- 15. Терминология: что такое маска и что такое флаг
- 16. Что такое угловой 2 Непрозрачный токен и что такое точка?
- 17. Что такое бизнес-объекты и что такое бизнес-логика?
- 18. Что такое temp и что такое использование temp в java?
- 19. Что такое структура? И что такое Учение 2?
- 20. Что такое CGI и что такое CGI-скрипты?
- 21. Что такое .NET-архитектура и что такое .NET framework?
- 22. Что такое компонент Tomcat? Что такое Каталина и Койот?
- 23. Что такое «операция async IO» в .NET?
- 24. Что такое S_ISREG() и что он делает?
- 25. Что такое Boxen и что он делает?
- 26. Что такое * .dll.s и что вы использовали?
- 27. Что такое GraphemeCluster и что делает ExpressibleByExtendedGraphemeClusterLiteral?
- 28. Что такое POI и что это значит?
- 29. Что такое коллекция и что является участником?
- 30. Что такое и что делает machineKey?
Почему нисходящий голос и голоса закрываются? –
Я не понимаю, почему это не вопрос. Я столкнулся с доказательствами вырезания и вставки нескольких мест в текстах алгоритмов. Как этот вопрос стал «двусмысленным, неопределенным, неполным, чрезмерно широким или риторическим и не может быть разумно ответил»? @ Камерон даже дал хорошее объяснение сущности такого доказательства по отношению к динамическому программированию. –