Рассмотрим задачу поиска максимума в массиве. (8.1...
Créé le : 22 avril 2026
Répondu en utilisant GPT-5.4 Thinking par Chat01
Créé le : 22 avril 2026
Répondu en utilisant GPT-5.4 Thinking par Chat01
Рассмотрим задачу поиска максимума в массиве.
(8.1.1) Сформулируйте задачу в форме задачи линейного программирования
(8.1.2) Постройте двойственную задачу, опишите ее физический смысл
Пусть дан массив чисел . Требуется найти его максимум:
Введем переменную , которая должна быть не меньше каждого элемента массива. Тогда минимум такой верхней границы и будет максимумом массива:
Это и есть задача линейного программирования.
Ограничения требуют, чтобы был верхней границей всех .
Среди всех верхних границ мы выбираем наименьшую.
Но наименьшая верхняя граница конечного набора чисел — это как раз
Приведем прямую задачу к стандартному виду. Ограничения
можно записать как
Тогда прямая задача:
Построим двойственную задачу. Для каждого ограничения введем двойственную переменную . Получаем:
Условия
означают, что вектор задает выпуклую комбинацию элементов массива.
Целевая функция:
— это взвешенное среднее элементов массива.
Значит, двойственная задача говорит:
выбрать неотрицательные веса с суммой 1 так, чтобы взвешенное среднее элементов массива было как можно больше.
Но любое взвешенное среднее не может превышать максимальный элемент массива. Поэтому оптимум достигается, если весь вес положить на индекс , где
То есть оптимальное решение двойственной задачи:
И тогда
Можно понимать как “долю внимания”, “массу” или “вероятность”, распределенную по элементам массива.
Тогда двойственная задача ищет такое распределение массы по элементам, которое максимизирует среднее значение. Очевидно, чтобы среднее было максимально, всю массу нужно сосредоточить на самом большом элементе.
То есть:
Если нужно, я могу еще записать это в матричной форме и аккуратно вывести двойственную задачу по правилам ЛП.