КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Полиномиальные алгоритмыОпределение. Алгоритм A называют полиномиальным, если его трудоемкость TA ограничена полиномом от длины записи исходных данных, то есть существует константа c > 0 и натуральное число k такие, что TA £ c Lk, где L — длина записи исходных данных.
Пример: Пусть fi (xi) = ai xi, тогда , но TДП = O(Y2n), то есть алгоритм ДП не является полиномиальным. Обобщим задачу (1)–(3):
Если hi(x) — целочисленные монотонно неубывающие функции, то вместо (4)–(5) можно использовать следующие рекуррентные соотношения:
Упражнение 1. Доказать справедливость соотношений (4¢)–(5¢). Обратная задача — поиск наименьших затрат на получение заданного количества продукции:
Если fk(x) — целочисленные монотонно неубывающие функции, то для решения задачи (6)–(8) можно использовать идеи динамического программирования. Пусть Для 1£ k £ n, 0 £ d £ D обозначим через tk(d) — оптимальное решение задачи (6)–(8), в которой n заменено на k, а D заменено на d. Требуется найти tn(D).
Рекуррентные соотношения Упражнение 2. Доказать справедливость соотношений (9)–(10). ТЕОРЕМА 2:Предположим, что D — наибольшее число, для которого оптимальное значение целевой функции задачи (6)–(8) не превосходит Y. Тогда оптимальное значение целевой функции задачи (1¢)–(3¢) равно D. Доказательство: Пусть D удовлетворяет условию теоремы и — соответствующее решение задачи (6)–(8). Значит и
Следовательно, D не превосходит оптимального решения D1 задачи (1¢)–(3¢). Если бы D1 было больше D, то решение задачи (6)–(8), в которой D заменено на D1, тоже не превышало бы Y, что противоречит максимальности D.
|