6.4 Минимизация сумм¶
Рассмотрим задачу: дано \(n\) чисел \(a_1, a_2, \dots, a_n\), и нужно выбрать такое значение \(x\), чтобы минимизировать сумму
Мы разберём два наиболее важных случая: \(c = 1\) и \(c = 2\).
Случай \(c = 1\)¶
В этом случае нужно минимизировать сумму
Пример¶
Пусть числа равны \([2, 4, 10, 4, 7]\).
Если выбрать \(x = 4\), получим:
Оказывается, в общем случае оптимальным выбором является медиана чисел, то есть элемент, стоящий посередине после сортировки.
В нашем примере после сортировки получаем:
Значит, медиана равна \(4\), и именно она даёт минимальную сумму.
Почему именно медиана?¶
Интуитивно:
- если \(x\) меньше медианы, то слишком много чисел лежат справа, и сдвиг \(x\) вправо уменьшает суммарное расстояние;
- если \(x\) больше медианы, то слишком много чисел лежат слева, и сдвиг \(x\) влево тоже улучшает ответ.
Поэтому минимум достигается в точке медианы.
Важное замечание¶
Если \(n\) чётно, то после сортировки есть две «середины». В таком случае оптимальными будут:
- обе медианы;
- и вообще любое значение между ними.
Случай \(c = 2\)¶
Теперь нужно минимизировать сумму
Примеры¶
Возьмём числа \([2, 4, 10, 4, 8]\).
Среднее арифметическое равно
Именно значение \(x = 5.6\) минимизирует сумму квадратов расстояний.
Если считать по формуле, получаем:
Почему здесь работает среднее?¶
Раскроем скобки:
Последняя часть не зависит от \(x\), значит, её можно считать константой. Тогда остаётся квадратичная функция вида:
где
Это парабола с ветвями вверх, а её минимум достигается в вершине:
Но \(\frac{s}{n}\) — это и есть среднее арифметическое всех чисел.
Итого¶
Для задачи минимизации суммы расстояний оптимальный выбор зависит от степени:
- при \(c = 1\) нужно брать медиану;
- при \(c = 2\) нужно брать среднее арифметическое.
Это важный приём, который часто встречается в жадных алгоритмах, математической оптимизации и задачах анализа данных.