Задача об оптимальном префиксном коде с сохранением порядка. Монотонность точки разреза — различия между версиями
(→Монотонность точки разреза) |
|||
Строка 1: | Строка 1: | ||
+ | {| class="wikitable" align="center" style="color: red; background-color: black; font-size: 56px; width: 800px;" | ||
+ | |+ | ||
+ | |-align="center" | ||
+ | |'''НЕТ ВОЙНЕ''' | ||
+ | |-style="font-size: 16px;" | ||
+ | | | ||
+ | 24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. | ||
+ | |||
+ | Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. | ||
+ | |||
+ | Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. | ||
+ | |||
+ | Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. | ||
+ | |||
+ | ''Антивоенный комитет России'' | ||
+ | |-style="font-size: 16px;" | ||
+ | |Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. | ||
+ | |-style="font-size: 16px;" | ||
+ | |[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки]. | ||
+ | |} | ||
+ | |||
{{Определение | {{Определение | ||
| definition = | | definition = |
Версия 09:00, 1 сентября 2022
НЕТ ВОЙНЕ |
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. Антивоенный комитет России |
Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. |
meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки. |
Определение: |
Оптимальный префиксный код с сохранением порядка (англ. order-preserving code, alphabetic code).
Пусть у нас есть алфавит . Каждому символу сопоставим его код . Кодирование называется оптимальным префиксным с сохранением порядка (алфавитным), если соблюдаются:
|
Содержание
Алгоритм
Решим задачу, используя ДП на подотрезках. Пусть в ячейке
хранится минимальная стоимость кодового дерева для отрезка алфавита от до .Тогда пересчет
будет происходить так:
Базой динамики будет
Добавочный член
возникает от того что каждым объединением двух подотрезков мы увеличиваем высоту дерева на , а значит, и длины всех кодов символов также увеличиваются на .Тогда такое наибольшее
, на котором достигается этот минимум, называется точкой разреза для отрезка . Пусть в ячейке хранится точка разреза на отрезке .Если разрез происходит по какому-то определенному индексу
, такой разрез обозначим .Таким образом, получили алгоритм, работающий за
. Коды каждого символа можно легко получить так же, как в алгоритме Хаффмана — обходом по построенному дереву.Если доказать монотонность точки разреза, то можно уменьшить асимптотику алгоритма до
.Монотонность точки разреза
Для доказательства этого сперва докажем несколько лемм.
Определение: |
Функция
| удовлетворяет неравенству четырехугольника (англ. quadrangle inequation), если
Лемма: |
удовлетворяет неравенству четырехугольника. |
Доказательство: |
Заметим, что , так как — простая арифметическая сумма. Тогда: |
Лемма: |
Если удовлетворяет неравенству четырехугольника и монотонна по включению (то есть $w[i'][j] \le w[i][j']$ при $i \leqslant i' \leqslant j \leqslant j'$), то также удовлетворяет неравенству четырехугольника, то есть:
. |
Доказательство: |
При или , очевидно, неравенство выполняется.Рассмотрим два случая:
|
Теорема (Монотонность точки разреза): |
Если удовлетворяет неравенству четырехугольника, то:
. |
Доказательство: |
В случае неравенство, очевидно, выполняется. Рассматриваем случай и только случай (вторая часть доказывается аналогично):Так как — максимальный индекс, в котором достигается минимум, достаточно показать, что:
Докажем более сильное неравенство:
|
Объяснение квадратичной асимптотики
Рассмотрим матрицу
. Так как отрезки , где мы не рассматриваем, она будет верхнетреугольной. Вначале она будет заполнена так, что (так как для отрезка, состоящего из одного элемента, он же и является точкой разреза). Далее, для любого элемента его значения лежат между (левый элемент в матрице) и (нижний элемент в матрице). Так как мы используем динамику по подотрезкам, то сначала мы рассчитаем для отрезков длины , затем , и так далее до . Фактически, мы будем обходить диагонали матрицы, количество которых равно .Рассмотрим элемент
. Для него выполняется . Следующий элемент, который мы будем пересчитывать — . Для него выполняется . Таким образом, заполняя одну диагональ, алгоритм сделает не более шагов, а так как диагоналей , получили асимптотику .Источники информации
- S.V. Nagaraj — Tutorial: Optimal binary search trees
- Кнут Д.Э. — Искусство программирования, том 3. Сортировка и поиск. — М.: «Вильямс», 2005, стр. 486 - 488