| Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения) |
В математика, алгебро-геометрический код (AG-код), иначе известный как Код гоппы, является общим типом линейный код построенный с использованием алгебраическая кривая
через конечное поле
. Такие коды были введены Валерий Денисович Гоппа. В частных случаях у них могут быть интересные экстремальные свойства. Их не следует путать с двоичные коды Гоппа которые используются, например, в Криптосистема Мак-Элиса.
Строительство
Традиционно AG-код строится из неособый проективная кривая Икс над конечным полем
используя ряд фиксированных различных
-рациональные точки на
:
![{ displaystyle { mathcal {P}}: = {P_ {1}, ldots, P_ {n} } subset mathbf {X} ( mathbb {F} _ {q}).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b381f9ed7233b392a8b5c5b3bbfdbaab2e75d063)
Позволять
быть делитель на Икс, с поддерживать который состоит только из рациональных точек и не пересекается с
. Таким образом ![{ Displaystyle { mathcal {P}} cap operatorname {supp} (G) = varnothing}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bce7c5a611de78a4f081111d858bc737c70efcd7)
Посредством Теорема Римана – Роха, существует единственное конечномерное векторное пространство,
, относительно дивизора
. Векторное пространство является подпространством функциональное поле из Икс.
Существует два основных типа AG-кодов, которые можно построить, используя приведенную выше информацию.
Код функции
Код функции (или двойной код ) относительно кривой Икс, делитель
и набор
строится следующим образом.
Позволять
, быть делителем, с
определено, как указано выше. Обычно мы обозначаем код Гоппы как C(D,грамм). Теперь мы знаем все, что нам нужно для определения кода Goppa:
![{ Displaystyle C (D, G) = влево { left (е (P_ {1}), ldots, f (P_ {n}) right) : f in L (G) right } subset mathbb {F} _ {q} ^ {n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/eb5a3f1f2fceeb7f4c04474cca7244e2f5c702aa)
На фиксированную основу
за L(грамм) над
, соответствующий код Гоппа в
охватывает
векторами
![{ displaystyle left (f_ {i} (P_ {1}), ldots, f_ {i} (P_ {n}) right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4e63b5727ec116ad3597869f492a65be53a41137)
Следовательно,
![{ displaystyle { begin {bmatrix} f_ {1} (P_ {1}) & cdots & f_ {1} (P_ {n}) vdots && vdots f_ {k} (P_ {1} ) & cdots & f_ {k} (P_ {n}) end {bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aee5875c771c201565f3dd93f0c9ee92d2484689)
порождающая матрица для ![{ Displaystyle C (D, G).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/86ffbad9ee5469dadd9c17853a79a0081c37541d)
Эквивалентно это определяется как изображение
![{ displaystyle { begin {case} alpha: L (G) to mathbb {F} ^ {n} f mapsto (f (P_ {1}), ldots, f (P_ {n}) )) end {case}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9a763735810ed7c8334ceda23c8f00baa0268092)
Ниже показано, как параметры кода соотносятся с классическими параметрами линейные системы делителей D на C (ср. Теорема Римана – Роха для большего). Обозначение ℓ(D) означает размерность L(D).
- Предложение А. Измерение кода Гоппа
является ![{ Displaystyle к = ell (G) - ell (G-D).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d1ae9c3fd8edd028f3235618c65ee4a408c516f0)
Доказательство. С
мы должны показать это
![{ Displaystyle ker ( альфа) = L (G-D).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/29b906071c2376e6ea05f6b414085ed237c4bc1b)
Позволять
тогда
так
. Таким образом,
Наоборот, предположим
тогда
поскольку
![{ displaystyle P_ {i} <G, quad i = 1, ldots, n.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0262c8d480a21b753474532501f7c22cad940b54)
(грамм не «исправляет» проблемы с
, так ж должен сделать это вместо этого.) Отсюда следует, что ![{ Displaystyle f (P_ {1}) = cdots = f (P_ {n}) = 0.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a799026d810a755e0fef3120e6a041b203f93bc4)
- Предложение Б. Минимальное расстояние между двумя кодовыми словами равно
![{ displaystyle d geqslant n- deg (G).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/391102149cc25676ebab7571a492ebc6d15d6b0f)
Доказательство. Предположим, что Вес Хэмминга из
является d. Это означает, что для
индексы
у нас есть
за
потом
, и
![{ displaystyle operatorname {div} (f) + G-P_ {i_ {1}} - cdots -P_ {i_ {n-d}}> 0.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ce6b554ce7fc86fed75fa8517c867753ea0f03a1)
Принимая степени с обеих сторон и отмечая, что
![{ displaystyle deg ( Operatorname {div} (f)) = 0,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bbeee5b4c9f57d799b410febc9c51f7a0500840d)
мы получили
![{ Displaystyle deg (G) - (п-г) geqslant 0.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5db131828024c8bad16a2bd802da06b0663c2729)
так
![{ displaystyle d geq n- deg (G).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c91f4d816ef6761d351027b66a24c3188263dd9b)
Код остатка
Код остатка может быть определен как двойник функционального кода или как остаток некоторых функций в
с.
Рекомендации
- Ки Уан Чанг, Коды Гоппы, Декабрь 2004 г., математический факультет Университета штата Айова.
внешняя ссылка