Задача об оптимальном префиксном коде с сохранением порядка. Монотонность точки разреза — различия между версиями
м |
м |
||
Строка 48: | Строка 48: | ||
Получили <tex> 0 \leq 0 </tex>, что является верным. Лемма доказана. | Получили <tex> 0 \leq 0 </tex>, что является верным. Лемма доказана. | ||
}} | }} | ||
+ | |||
{{Лемма | {{Лемма | ||
| statement= | | statement= | ||
− | Если w удовлетворяет неравенству четырехугольника и монотонна, то D также удовлетворяет неравенству четырехугольника | + | Если w удовлетворяет неравенству четырехугольника и монотонна, то D также удовлетворяет неравенству четырехугольника, то есть: |
+ | |||
+ | <tex>\forall i \le i' \le j \le j' : D[i][j] + D[i'][j'] \le D[i'][j] + D[i][j'] </tex> | ||
| proof= | | proof= | ||
При <tex> i = i' </tex> или <tex> j = j' </tex>, очевидно, неравенство выполняется. | При <tex> i = i' </tex> или <tex> j = j' </tex>, очевидно, неравенство выполняется. | ||
Строка 63: | Строка 66: | ||
##: <tex> D[i][j] + D[j][j'] \le w[i][j] + D[i][k-1] + D[k][j] + D[j][j'] </tex> - по определению <tex> D[i][j] </tex> | ##: <tex> D[i][j] + D[j][j'] \le w[i][j] + D[i][k-1] + D[k][j] + D[j][j'] </tex> - по определению <tex> D[i][j] </tex> | ||
##: <tex> \le w[i][j'] + D[i][k-1] + D[k][j] + D[j][j'] </tex> - по монотонности w | ##: <tex> \le w[i][j'] + D[i][k-1] + D[k][j] + D[j][j'] </tex> - по монотонности w | ||
− | ##: <tex> \le w[i][j'] + D[i][k-1] + D[k][j'] </tex> - по предположению | + | ##: <tex> \le w[i][j'] + D[i][k-1] + D[k][j'] </tex> - по индукционному предположению для D |
##: <tex> \le D[i][j'] </tex> - по определению <tex> D[i][j'] </tex> | ##: <tex> \le D[i][j'] </tex> - по определению <tex> D[i][j'] </tex> | ||
## <tex> k \ge j </tex> - аналогичный предыдущему случай. | ## <tex> k \ge j </tex> - аналогичный предыдущему случай. | ||
# <tex> i' < j </tex> | # <tex> i' < j </tex> | ||
#: <tex> i < i' < j < j' </tex> | #: <tex> i < i' < j < j' </tex> | ||
− | #: Пусть <tex> y = R[i'][j] </tex> и <tex> z = R[i][j] </tex>. Получили два различных симметричных случая: | + | #: Пусть <tex> y = R[i'][j] </tex> и <tex> z = R[i][j'] </tex>. Получили два различных симметричных случая: |
## <tex> z \le y </tex> | ## <tex> z \le y </tex> | ||
− | ##: Получили z \le y \le j (по определению y) и i < z(по определению z). Получим: | + | ##: Получили <tex> z \le y \le j </tex> (по определению y) и <tex> i < z </tex>(по определению z). Получим: |
##: <tex> D[i'][j'] + D[i][j] \le D_y[i'][j'] + D_z[i][j] = w[i'][j'] + D[i'][y-1] + D[y][j'] + w[i][j] + D[i][z-1] + D[z][j] </tex> | ##: <tex> D[i'][j'] + D[i][j] \le D_y[i'][j'] + D_z[i][j] = w[i'][j'] + D[i'][y-1] + D[y][j'] + w[i][j] + D[i][z-1] + D[z][j] </tex> | ||
##: <tex> \le w[i][j'] + w[i'][j] + D[i'][y-1] + D[i][z-1] + D[z][j] + D[y][j'] </tex> - по неравенству четырехугольника для <tex> w </tex> | ##: <tex> \le w[i][j'] + w[i'][j] + D[i'][y-1] + D[i][z-1] + D[z][j] + D[y][j'] </tex> - по неравенству четырехугольника для <tex> w </tex> | ||
− | ##: <tex> \le w[i][j'] + w[i'][j] + D[i'][y-1] + D[i][z-1] + D[y][j] + D[z][j'] </tex> - по индукционному предположению | + | ##: <tex> \le w[i][j'] + w[i'][j] + D[i'][y-1] + D[i][z-1] + D[y][j] + D[z][j'] </tex> - по индукционному предположению для D |
− | |||
##: <tex> \le D[i][j'] + D[i'][j] </tex> - по определению D. | ##: <tex> \le D[i][j'] + D[i'][j] </tex> - по определению D. | ||
## <tex> z \ge y </tex> доказывается аналогично | ## <tex> z \ge y </tex> доказывается аналогично | ||
Строка 84: | Строка 86: | ||
Монотонность точки разреза | Монотонность точки разреза | ||
| statement= | | statement= | ||
− | <tex> R[i][j | + | Если w удовлетворяет неравенству четырехугольника и монотонна, то: |
+ | |||
+ | <tex> \forall i \le j : R[i][j] \le R[i][j+1] \le R[i+1][j+1] </tex> | ||
| proof= | | proof= | ||
Для доказательства этого сперва докажем несколько лемм: | Для доказательства этого сперва докажем несколько лемм: | ||
}} | }} |
Версия 04:35, 18 декабря 2010
Содержание
Определение
Определение: |
Оптимальный префиксный код с сохранением порядка(англ. order-preserving code, alphabetic code).
Пусть у нас есть алфавит . Каждому символу сопоставим его код . Кодирование называется оптимальным префиксным с сохранением порядка, если соблюдаются:
|
Алгоритм
Алгоритм нахождения оптимального префиксного кода с сохранением порядка. Решим задачу, используя ДП на подотрезках. Пусть в ячейке
хранится минимальная стоимость кодового дерева для отрезка алфавита от i до j.Тогда пересчет
будет происходить так:
Базой динамики будет
Добавочный член
возникает от того что каждым объединением двух подотрезков мы увеличиваем высоту дерева на 1, а значит, и длины всех кодов символов также увеличиваются на 1.Тогда такое наибольшее k, на котором достигается этот минимум, называется точкой разреза для отрезка
. Пусть в ячейке хранится точка разреза на отрезке .Монотонность точки разреза
Для доказательства этого сперва докажем несколько лемм.
Определение: |
Функция a удовлетворяет неравенству четырехугольника(quadrangle inequation), если
|
Определение: |
Функция a является монотонной(monotone), если
|
Лемма: |
w удовлетворяет неравенству четырехугольника. |
Доказательство: |
Заметим, что , так как - простая арифметическая сумма. Тогда: |
Лемма: |
Если w удовлетворяет неравенству четырехугольника и монотонна, то D также удовлетворяет неравенству четырехугольника, то есть:
|
Доказательство: |
При или , очевидно, неравенство выполняется.Рассмотрим два случая:
|
Теорема (Монотонность точки разреза): |
Если w удовлетворяет неравенству четырехугольника и монотонна, то:
|
Доказательство: |
Для доказательства этого сперва докажем несколько лемм: |