Математические байки
Open in Telegram
Рассказы про разную математику. Архив: http://dev.mccme.ru/~merzon/mirror/mathtabletalks/
Show more4 260
Subscribers
No data24 hours
No data7 days
+330 days
Posts Archive
4 259
Да — такие коды (передаваемая информация группируется в блоки фиксированного размера) называются блочными. Ещё — если мы захотим работать с блоками большого размера, то у нас должен получиться большой "алфавит". В общей ситуации его даже просто хранить может быть не очень удобно. Поэтому — есть такой удобный подкласс блочных кодов, линейные коды. У которых разрешённый набор блоков это линейное подпространство в F_2^n.
4 259
А нельзя ли исправить одну ошибку в блоке с меньшим падением скорости? Можно, и самый простой такой код это код Хэмминга.
4 259
Можно просто каждый бит повторять по 3 раза: код {000,111} позволяет не только заметить, но и исправить одну ошибку. Но — скорость канала при этом падает втрое.
4 259
Тогда, если при передаче произойдёт одна ошибка, мы не сможем сказать, где она произошла, но — по крайней мере, мы её заметим (и сможем потом "переспросить" у отправителя этот блок).
4 259
Например, можно просто дописать к блоку из n битов дополнительный бит контроля чётности, всегда равный сумме предыдущих по модулю 2.
4 259
Давайте объединим передаваемые биты в блоки. И пусть блок может быть не любым — а только одним из разрешённых кодовых слов, которые мы постараемся сделать как можно более непохожими друг на друга. Тогда, даже если где-то при передаче произойдёт ошибка — мы сможем её заметить, а может быть, даже исправить.
4 259
А именно — представим себе, что мы передаём сигнал из 0 и 1 по каналу, где время от времени возникают помехи, и в результате время от времени вместо 0 приходит 1 или наоборот. Как с этим бороться?
4 259
Второй способ построить решётку E_8 связан с кодами, исправляющими ошибки. (Да, Александр Шень читал целый курс об них — https://www.youtube.com/watch?v=DNCpIo1Gjco — но мне понадобится из этого довольно немного.)
4 259
Кстати — чётные решётки с кообъёмом 1 бывают только в пространствах, размерность которых делится на 8.
И это нетривиальное утверждение, которое доказывается через модулярные формы — о чём я точно скажу, но не прямо сейчас.
4 259
А значит, наименьшая возможная длина вектора из решётки E_8 — это корень из 2!
4 259
Проверить это несложно: =8*(1/4)=2, в \Lambda тоже все квадраты чётные (потому что сумма квадратов целых чисел сравнима с их суммой и потому по определению \Lambda чётна). Наконец, скалярное произведение v с любым вектором u из \Lambda целое, а в формуле для квадрата суммы есть двойка:
=k^2 + + 2k .
4 259
Кстати, хорошее (и простое) упражнение: проверить, что (любая) чётная решётка автоматически является целой : скалярные произведения любых двух её векторов целые.
4 259
Интересно, что эта решётка будет чётной : квадраты длин всех её векторов чётные.
4 259
А теперь добавим к этой решётке её же, сдвинутую на вектор
v=(1/2,1/2,...,1/2).
4 259
Так вот — давайте эту решётку построим. Для этого сначала выделим в Z^8 подрешётку \Lambda индекса 2 — вектора с чётной суммой цифр. При этом кообъём удвоится (потому что мы оставили только половину узлов)
4 259
Для оптимальной решётки наименьшее расстояние будет в \sqrt{2} раз больше — так что упаковка получится в \sqrt{2}^8=2^4=16 раз более плотной!
4 259
И естественно, что получается величина, инвариантная относительно гомотетии. Поэтому можно либо ограничиться решётками, у которых d_{min}=1, и минимизировать кообъём, либо наоборот, ограничиться решётками с единичным кообъёмом, и максимизировать d_{min}.
Так вот, давайте пока примем именно второй подход. Так, если мы возьмём просто кубическую упаковку Z^8, то d_{min} будет равен 1.
Available now! Telegram Research 2025 — the year's key insights 
