Недавно я рассматривал некоторые проблемы жадных алгоритмов.Я смущен о локально оптимальных.Как вы знаете, жадные алгоритмы состоят из локально оптимальных вариантов.Но объединение локально оптимальных решений не обязательно означает глобально оптимальное, верно?
Возьмем в качестве примера изменение: используя наименьшее количество монет, чтобы сделать 15 ¢, если у нас есть 10 ¢, 5 ¢, и1 ¢ монеты, то вы можете достичь этого с одним 10 ¢ и одним 5 ¢.Но если мы добавим в монету 12 the, жадный алгоритм потерпит неудачу, так как (1 × 12 ¢ + 3 × 1 ¢) использует больше монет, чем (1 × 10 ¢ + 1 × 5 ¢).
Рассмотрим некоторые классическиежадные алгоритмы, например Хаффман, Дейкстра.На мой взгляд, эти алгоритмы успешны, поскольку у них нет вырожденных случаев, что означает, что комбинация локально оптимальных шагов всегда равна глобальному оптимальному.Правильно ли я понимаю?
Если мое понимание правильное, существует ли общий метод проверки, является ли жадный алгоритм оптимальным?
Я нашел обсуждение жадных алгоритмов в другом месте насайт .Однако проблема не слишком детализирована.