Жадность - это неформальный термин, но может быть (не уверен, поэтому я и спрашиваю), что для определенных задач можно сформулировать жадность математически и, таким образом, доказать, что не существует оптимального алгоритма жадности. Это возможно?
ds.algorithms
greedy-algorithms
ivotron
источник
источник
Ответы:
Самое простое, что можно сделать, - это настроить жадный алгоритм для задачи, а затем найти контрпример. Если вы найдете один, у вас есть свой ответ. В противном случае есть много способов доказать, что жадность работает . Конечно, с этим есть некоторые проблемы (например, как конкретно сформулировать жадный алгоритм). Что касается определения того, какие проблемы могут, а какие не могут быть решены жадно, то на это тоже есть общий ответ.
Фактически, в своей работе «Точная характеристика жадных структур» ( SIAM J. Discrete Math . 6 , стр. 274-283) Хелман, Море и Шапиро дали формальное описание именно этого (так называемое вложение матроида , которое обобщает и матроиды, и жадные). Из аннотации: «Авторы приводят точные характеристики структур, на которых жадный алгоритм дает оптимальные решения».
В общем, жадный алгоритм может быть сформулирован в терминах систем взвешенных множеств . У вас есть набор (например, ребра, в случае минимальных остовных деревьев), и у вас есть набор подмножеств (например, неполных остовных лесов, для задачи минимальные остовные деревья). представляет действительные частичные решения , построенные путем комбинирования элементов из . Существует также весовая функция , которая дает вам вес или стоимость любого элемента в . Обычно мы предполагаем, что это линейно, т.е. каждый элемент в(E,F,w) E F⊆2E E F E w F E имеет вес, а веса (частичных) решений являются просто суммой весов элементов. (Например, вес остовного дерева является суммой весов его ребер.) В этом контексте Helman et al. показал, что следующие эквивалентны:
Для каждой линейной целевой функции имеет оптимальный базис.(E,F)
Для любой линейной целевой функции жадные базисы в точности являются ее оптимальными базисами.(E,F)
Другими словами: для структур, подобных этим (которые в основном воплощают те структуры, о которых обычно думают при работе с жадностью), точно набор матроидных вложений может быть решен жадно.
Определение вложения матроидов не так уж сложно, поэтому доказательство того, что данная проблема является или не является вложением матроидов, безусловно, выполнимо. Запись в Википедии дает четкое определение. (Понимание доказательства, почему именно эти структуры решаются жадностью, - это совсем другое дело ...)
Если ваша проблема может быть сформулирована с точки зрения выбора из системы взвешенных множеств с линейной целевой функцией, и если вы можете показать, что это не вложение матроида, то вы показали, что ее нельзя решить жадно, даже если вы не не смог найти контрпример. (Хотя я подозреваю, что найти контрпример было бы немного легче.)
Этот подход не совсем без проблем, я полагаю. Как вы говорите, общая идея жадности довольно неформальна, и вполне возможно, что ее можно настроить таким образом, чтобы формализм линейно взвешенных систем множеств не применялся.
источник
Да, такая работа есть. Аллан Бородин с соавторами разработал теорию, в которой они формализуют понятие жадности и получают результаты, с помощью которых можно достичь коэффициентов аппроксимации. Они вводят класс приоритетных алгоритмов, который обобщает жадные алгоритмы. Их первая работа по этой теме - статья « (Дополнительные) алгоритмы приоритета ».
PS Предыдущий абзац отвечает на другой вопрос: можно ли доказать, что для данной задачи не существует жадных алгоритмов с коэффициентом аппроксимации меньше ? Что касается вопроса, я полагаю, там предполагается, что оптимальное средство является точным, поэтому вопрос касается проблем в P (я предполагаю, что жадные алгоритмы имеют полиномиальную сложность, хотя я полагаю, что в этом нет необходимости), которые, как известно, имеют решение другими методами, чем жадные. , И я не знаю ответа на этот вопрос.1+ϵ
To ivotron: если вы не имели в виду мою первую интерпретацию, я удалю этот ответ.
источник
Смотрите также: http://en.wikipedia.org/wiki/Greedoid
источник