Jump to content

Оптимальная подструктура

Рисунок 1 . Поиск кратчайшего пути с использованием оптимальной подструктуры. Числа обозначают длину пути; прямые линии обозначают отдельные ребра , волнистые линии указывают кратчайшие пути , т. е. могут быть и другие вершины, которые здесь не показаны.

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

Обычно жадный алгоритм используется для решения задачи с оптимальной подструктурой, если можно с помощью индукции доказать, что она оптимальна на каждом шаге. [1] В противном случае, если проблема содержит перекрывающиеся подзадачи также методы «разделяй и властвуй» или динамическое программирование , можно использовать . Если подходящих жадных алгоритмов нет и задача не содержит перекрывающихся подзадач, часто лучшей альтернативой является длительный, но простой поиск пространства решений.

В применении динамического программирования к математической оптимизации принцип Ричарда Беллмана основан оптимальности на идее, что для решения задачи динамической оптимизации от некоторого начального периода t до некоторого конечного периода T необходимо неявно решать подзадачи, начиная с более поздние даты s , где t<s<T . Это пример оптимальной подструктуры. Принцип оптимальности используется для вывода уравнения Беллмана , которое показывает, как значение проблемы, начиная с t , связано со значением проблемы, начиная с s .

Рассмотрим поиск кратчайшего пути для путешествия между двумя городами на машине, как показано на рисунке 1. Такой пример, вероятно, продемонстрирует оптимальную структуру. То есть, если кратчайший маршрут из Сиэтла в Лос-Анджелес проходит через Портленд, а затем через Сакраменто, то кратчайший маршрут из Портленда в Лос-Анджелес также должен проходить через Сакраменто. То есть проблема, как добраться из Портленда в Лос-Анджелес, вложена в проблему, как добраться из Сиэтла в Лос-Анджелес. (Волнистые линии на графике представляют собой решения подзадач.)

В качестве примера задачи, которая вряд ли будет иметь оптимальную структуру, рассмотрим задачу поиска самого дешевого авиабилета из Буэнос-Айреса в Москву. Даже если этот билет включает в себя остановки в Майами, а затем в Лондоне, мы не можем заключить, что самый дешевый билет из Майами в Москву останавливается в Лондоне, потому что цена, по которой авиакомпания продает поездку с несколькими рейсами, обычно не является суммой цен. по которой он будет продавать отдельные рейсы в поездке.

Определение

[ редактировать ]

Можно дать несколько более формальное определение оптимальной субструктуры. Пусть «проблема» представляет собой набор «альтернатив», и пусть каждая альтернатива имеет соответствующую стоимость c ( a ). Задача — найти набор альтернатив, минимизирующий c ( a ). Предположим, что альтернативы можно разбить на подмножества, т.е. каждая альтернатива принадлежит только одному подмножеству. Предположим, что каждое подмножество имеет свою собственную функцию стоимости. Можно найти минимумы каждой из этих функций стоимости, а также минимумы глобальной функции стоимости, ограниченные теми же подмножествами . Если эти минимумы совпадают для каждого подмножества, то почти очевидно, что глобальный минимум можно выбрать не из полного набора альтернатив, а только из набора, состоящего из минимумов меньших локальных функций стоимости, которые мы определили. Если минимизация локальных функций является задачей «низшего порядка» и (в частности) если после конечного числа таких сокращений задача становится тривиальной, то задача имеет оптимальную подструктуру.

Проблемы с оптимальным основанием

[ редактировать ]

Проблемы без оптимальной подструктуры

[ редактировать ]
  • Задача о самом длинном пути
  • Возведение в степень по цепочке сложения
  • Самый дешевый тариф авиакомпании. Используя онлайн-поиск рейсов, мы часто обнаруживаем, что самый дешевый рейс из аэропорта A в аэропорт B предполагает одну пересадку через аэропорт C, но самый дешевый рейс из аэропорта A в аэропорт C предполагает пересадку через какой-либо другой аэропорт D. Однако, если Задача принимает в качестве параметра максимальное количество остановок, то задача имеет оптимальную подструктуру. Самый дешевый рейс из А в Б, который включает не более k остановок, — это либо прямой рейс; или самый дешевый рейс из A в какой-либо аэропорт C, который включает не более t остановок для некоторого целого числа t с 0≤t<k , плюс самый дешевый рейс из C в B, который включает не более k−1−t остановок.

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Стоун, Клиффорд (2009). Введение в алгоритмы (3-е изд.). МТИ Пресс . ISBN  978-0-262-03384-8 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3ac81abcbf00bcd0e48dd4b204b5af2f__1720992060
URL1:https://arc.ask3.ru/arc/aa/3a/2f/3ac81abcbf00bcd0e48dd4b204b5af2f.html
Заголовок, (Title) документа по адресу, URL1:
Optimal substructure - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)