Научная статья на тему 'Комбинированный метод построения многокомпонентных сетевых кодов'

Комбинированный метод построения многокомпонентных сетевых кодов Текст научной статьи по специальности «Математика»

CC BY
54
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОДЫ НАД ПОДПРОСТРАНСТВАМИ / КОДЫ ПОСТОЯННОГО ВЕСА / "ЖАДНЫЙ" ПЕРЕБОР

Аннотация научной статьи по математике, автор научной работы — Шишкин А.Л.

Предложен новый метод построения многокомпонентных сетевых кодов на основе ранговых подкодов. Метод сочетает в себе «жадный» лексикографический перебор при поиске компонент сетевого кода, а также использование неравномерно ограниченных ранговых кодов для кодирования внутри компонент. Приведены примеры кодов, получены оценки мощности, осуществлено сравнение с верхней границей.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Комбинированный метод построения многокомпонентных сетевых кодов»

УДК 519.725

А. Л. Шишкин

Московский физико-технический институт (государственный университет)

Комбинированный метод построения многокомпонентных сетевых кодов

Предложен новый метод построения многокомпонентных сетевых кодов на основе ранговых подкодов. Метод сочетает в себе «жадный» лексикографический перебор при поиске компонент сетевого кода, а также использование неравномерно ограниченных ранговых кодов для кодирования внутри компонент. Приведены примеры кодов, получены оценки мощности, осуществлено сравнение с верхней границей.

Ключевые слова: коды над подпространствами, коды постоянного веса, «жадный» перебор.

1. Введение

Рассмотрим Kq — конечное поле из q элементов. Построим над ~Kq n-мерное векторное пространство K™ и обозначим через Л(п) множество всех его подпространств. Подпространство V из Л(п\ имеющее размерность k ^ п, будет представлять собой совокупность ^векторов дл ины п из K™.

Подпространство V можно рассматривать как линейную оболочку над к векторами из K™ или, что эквивалентно, над матриц ей размера к х п с элементами из ~Kq. Таким образом, каждая матрица V размерности к х п над полем Kq однозначно задает некоторое fc-мерное подпространство V из Л(п). Однако каждое подпространство из Л(п) может иметь несколько порождающих его матриц: умножение матрицы V на невырожденную матрицу Т размерности к х к даст матрицу F = TV размера к х п, задающую то же подпространство, что и матрица V.

В связи с этим подпространства удобно задавать с помощью матриц в приведенной ступенчатой форме, к которой произвольная матрица размера к х п может быть приведена с помощью метода гауссовых исключений. Приведенная ступенчатая форма матриц характеризуется следующими свойствами:

• Первый справа ненулевой элемент каждой строки равен 1. Он называется ведущим, элементом.

• Каждый ведущий элемент является единственным ненулевым элементом в своем столбце.

• Ведущий элемент следующей строки всегда расположен правее ведущего элемента предыдущей строки.

• На остальные элементы матрицы ограничений не накладывается. Они называются свободными элементами.

Ниже приводится пример матрицы размером 4 х 8 в приведенной ступенчатой форме (символами «*» обозначены свободные элементы):

/01 * 00 * 0 0 0 0 1 0 * 0 0 0 0 0 1 * 0 0000001

* * * *

/

Между ^-мерными подпространствами из Л(п) и матрицами раз мера к х п над К в

приведенной ступенчатой форме можно установить взаимно однозначное соответствие.

Расположение ведущих элементов матрицы размером к х п в приведенной ступенчатой форме можно описать с помощью мультииндекса X = {11,12,... ,Ък} определяемого как набор целых чисел, соответствующих номерам столбцов, в которых находятся ведущие элементы всех к строк, начиная с первой. Еще один способ описания расположения ведущих элементов — с помощью двоичного индекс-вектора V длины п, который содержит 1 в тех своих компонентах, номера которых соответствуют номерам столбцов матрицы с ведущими элементами, и 0 в остальных элементах.

К примеру, матрица размером 4 х 8 из приведенного выше примера содержит ведущие элементы во втором, четвертом, пятом и седьмом столбцах. Она будет описываться мультииндексом X = {2, 4, 5, 7} и индекс-вектором V = (0,1, 0,1,1, 0,1, 0).

Число свободных элементов зависит от мультииндекса, соответствующего матрице в приведенной ступенчатой форме. Для матрицы размером к х п с мультииндексом X = {11,12,..., %к} число свободных элементов будет равно

f = /к,п(Х) = кп - к(к2- 1) - (¿1 + ¿2 + ■ ■ ■ + гк). (2)

При этом количество различных матриц с одним и тем же мультииндексом X (а значит, и количество соответствующих им подпространств) будет равно .

2. Коды над подпространствами

Пусть и и V — два произвольных подпространства Л(п). Между ними можно ввести расстояние, называемое расстоянием Грассмапа [1]:

йзуЪ(и, V) = и V) - ПУ). (3)

Пусть и имеет размерность т и задается порождающей матрицей и размером тхп, а, V имеет размерность к и задается порождающей матрицей V размером кхп. Тогда расстояние Грассмана между этими подпространствами можно вычислить следующим образом:

Л3иь(Ц, V) = 2гапк

и

V

- т - к. (4)

В случае подпространств равной размерности (т = к) расстояние йзиь будет четным для любых и и V.

С использованием расстояния Грассмана вводится понятие кодов над подпространствами. Подпространственным [п, М, йзиь, й]-кодом называется множество ^-мерных подпространств Л(п), содержащее М элементов, причем расстояние Грассмана между любой парой подпространств не меньше й3.иь-

Подпространственные коды находят широкое применение в теории случайного сетевого кодирования [2-4]. Важной задачей при построении подпространственных кодов является максимизация их мощности М при фиксированной исправляющей способности, определяемой расстоянием (1зиь-

Расстояние Грассмана тесно связано с ранговым расстоянием, используемым при построении ранговых кодов [1,5]. Пусть подпространства Ы и V размерности к, заданные матрицами и и V, имеют мультииндексы Хц и Ху, а также вектор-индексы ьц и ьу.

Для иллюстрации связи с ранговыми кодами введем понятие подматрицы ведущих элементов. Для матрицы и в приведенной ступенчатой форме совокупность ее столбцов, содержащих ведущие элементы, называется подматрицей ведущих элементов и обозначается Щ. Совокупность оставшихся столбцов называется подматрицей свободных элементов и обозначается ^.Заметим, что ^ содержит все свободные элемент ы матрицы и. Далее возможны два случая.

Если мультииндексы Ту и Ту совпадают, то совпадает также расположение свободных элементов в соответствующих им матрицах, и выражение для грассманова расстояния между подпространствами можно записать в следующем виде:

dsub{U, V) = 2rank

U V

— 2k = 2rank

UilUf VilVf

-2k =

(5)

2k + 2rank([^/ - Vf]) - 2k = 2rank([^/ - Vf]).

В промежуточных выкладках использован тот факт, что для подпространств размерности к ранг матрицы ведущих элементов в точности равен к. Отметим, что итоговое выражение в точности соответствует удвоенному ранговому расстоянию между матрицами свободных элементов Uf и Vf.

Таким образом, для подпространств внутри одного мультииндекса задача построения кода максимальной мощности при заданном подпространственном расстоянии dsub сводится к построению рангового кода максимальной мощности с ранговым расстоянием

drank — dsub/2-

Рассмотрим теперь случай различных мультииндексов Ту и Ту. В этом случае количе-

U

ство линейно независимых столбцов в матрице элементов в векторе Уу V Уу . Следовательно,

V

не меньше, чем количество ненулевых

dsub(U, V) = 2rank

U V

- 2к ^ 2(vu V vy) - 2к =

(6)

= 2(2к - vu Л vy) - 2к = 2к - 2vu Л vy = vu ® vy = dham(vu; vy),

где dham обозначает расстояние в хэмминговой метрике между двоичными вектор-индексами матриц.

Таким образом, для подпространств с различными мультииндексами грассманово расстояние может быть оценено снизу через хэммингово расстояние между вектор-индексами, соответствующими подпространствам.

Теперь задачу построения подпространственных кодов можно декомпозировать на две составляющие: сначала нужно построить в хэмминоговой метрике код постоянного веса из вектор-индексов с минимальным расстоянием dham = dsub, а затем для каждого вектор-индекса построить в соответствующем подпространстве вложенный ранговый код на подматрице свободных элементов с минимальным расстоянием drank = dsvh/2.

Кодовые слова подпространственного кода, соответствующие одному вектор-индексу, называют принадлежащими одной кодовой компоненте. Код, содержащий кодовые слова из нескольких кодовых компонент, называется многокомпонентным кодом,.

Для мощности многокомпонентых подпространственных кодов с параметрами п, к, drank = dsub/2 существует верхняя граница [6]:

М ^

п

к drank + 1

к

к drank + 1

(7)

где

п

S

- 1)(qn - q)

qn - qs

(qs - 1)(qs -

f - qs-1)

(8)

jI

Рассмотрим некоторые примеры алгоритмов построения подпространственных кодов и конкретные примеры известных конструкций.

3. Существующие методы построения подпространственных кодов

Исторически первой конструкцией подпространственных кодов, использующей ранговые коды в качестве подкодов внутри одной компоненты, является код Сильвы-Кеттера-Кшишанга (СКК-код) [7]. Для подпространств Л(п) размерности к используется только одна кодовая компонента с мультииндексом X = {1, 2,..., к}. Подматрица свободных элементов при этом имеет размеры к х (п - к) и состоит только из свободных элементов. Для параметров п = 8, к = 4 матрица этого кода имеет вид

/1000 ****\

0100 ****

0010 ****

\ 0 0 0 1 * * * * )

Мощность СКК-кода может быть найдена следующим образом [1]:

(9)

М =

(п-к)(к-йгапк+1), к(п-к-йгапк +1)

если п ^ 2к; если п < 2к.

(10)

СКК-код используется в качестве первой компоненты во всех конструкциях многокомпонентных кодов и дает компоненту с наибольшей мощностью. Однако суммарная мощность у любой многокомпонентной конструкции превосходит мощность СКК-кода.

В конструкции Габидулина-Боссерта [8] используется подпространственное расстояние = 2к — максимально возможное для подпространств размерности к. В такой конструкции матрицы кодовых компонент в приведенной ступенчатой форме получаются из матрицы СКК-кода путем добавления нулевых префиксных матриц. Код Габидулина-Боссерта с параметрами п = 8, к = 4 будет состоять из двух компонент:

1000 0100 0010 \ 0 0 0 1

0 0

0 0

* * * *

(11)

/

0 0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0 1

(12)

Эти коды для значений п, кратных к, достигают верхней границы мощности [8]. Однако ограничение на йзиь = 2к существенно уменьшает свободу разработчика при выборе параметров проектируемого кода.

Более гибкой с точки зрения допустимых параметров кода является конструкция Габидулина-Пилипчук [1], использующая для поиска мультииндексов, соответствующих кодовым компонентам, комбинаторные блок-схемы. В качестве подкодов внутри кодовых компонент в этой конструкции используются ранговые коды с ограничениями на кодовые символы. Такие подкоды достигают границы Синглтона и позволяют использовать те же алгоритмы кодирования и декодирования, что и для классических кодов с максимальным ранговым расстоянием [1].

Недостатком этого подхода является ограничение на выбор параметров кода, связанное с использованием комбинаторных блок-схем. Для поиска кодовых компонент можно использовать любой двоичный код постоянного веса в хэмминговой метрике, однако не каждый такой код является блок-схемой [9]. Также недостатком этого метода является отсутствие универсального алгоритма определения мощности рангового подкода для произвольной матрицы свободных элементов. В результате для некоторых кодовых компонент построение оптимального рангового подкода становится сложной задачей [1].

В работах Этзиона и Зильберштейна [10,11] для поиска кодовых компонент используется полный перебор по всем двоичным векторам длины п с хэмминговым весом к. Двоичные векторы при этом предварительно сортируются в лексикографическом порядке. Это позволяет отказаться от блок-схем и дает полную свободу в выборе параметров многокомпонентного кода. Однако этот алгоритм также не предлагает универсальный способ определения мощности ранговых подкодов.

В данной работе описан подход, совмещающий преимущества методов Габидулина-Пилипчук и Этзиона-Зильберштейна. Для поиска кодовых компонент используется перебор по всем двоичным векторам, а в качестве подкодов используются ранговые коды с ограничениями на информационные символы. При этом для ранговых подкодов используется универсальный алгоритм определения мощности, позволяющий автоматизированно строить коды с большим числом компонент. Дополнительной особенностью метода является то, что поиск по двоичным векторам осуществляется с помощью «жадного» перебора: компоненты выбираются не в лексикографическом порядке, а в порядке уменьшения своей мощности. Новый метод позволяет построить коды, совокупная мощность компонент которых в ряде случаев превосходит ранее известные конструкции с теми же параметрами.

4. Новый метод построения многокомпонентных подпространственных кодов

На первой стадии предлагаемого метода для кода с параметрами n,k,dsub формируется список из всех двоичных векторов с длиной п и хэмминговым весом к. Количество таких векторов равно Для программной реализации построения этого списка удобно использовать алгоритм Нараяны.

На второй стадии каждый вектор v из полученного списка рассматривается в качестве индекс-вектора матрицы размером к х п в приведенной ступенчатой форме. По восстановленной из вектора матрице V определяется ее матрица свободных элементов Vf. Расположение свободных элементов в этой матрице используется для определения мощности рангового подкода, который можно разместить в соответствующей V кодовой компоненте.

Алгоритм определения мощности подкода с ранговым расстоянием drank = dsub/2 следующий. Вычисляется drank - 1 — число проверочных символов рангового подкода. Фиксируется горизонтальное расположение символов рангового подкода (в строках матрицы Vf). Определяется количество свободных элементов в строке матрицы Vf с номером drank - 1 _ оно равно размерности рангового подкода N. Определяется ih — общее количество свободных элементов в строках матрицы Vf с номерами от drank Д° min{^, к}.

Мощность рангового подкода при горизонтальном расположении символов равна Ch = Qlh • Аналогичная процедура повторяется для вертикального расположения символов рангового подкода (в столбцах матрицы Vf) и определяется мощность рангового подкода для этого случая: Cv = qlv. Итоговая мощность рангового подкода определяется как max{Ch,Cv }.

На третьей стадии используются полученные ранее списки вектор-индексов и мощностей соответствующих им подкодов длиной С^. На этой стадии осуществляется «жадный» перебор компонент с максимальной мощностью и добавление их к строящемуся многокомпонентному коду. Первым добавляется СКК-код, имеющий максимальную мощность среди всех компонент. Далее из оставшихся ищется вектор-индекс с максимальной мощностью. Если он находится на хэмминговом расстоянии не менее dham = dsub от каждого из уже добавленных к коду вектор-индексов, то он также добавляется к коду и изымается из списка. В противном случае ищется вектор-индекс со следующей по убыванию мощностью рангового подкода и также проверяется на минимальное расстояние до уже сформированного подпространственного кода.

Поиск прекращается и код объявляется построенным в тот момент, когда любой из оставшихся вектор-индексов находится на расстоянии, меньшем dham от какого-либо вектор-индекса из добавленных к коду.

5. Примеры новых кодовых конструкций

Рассмотрим пример использования нового метода для кода с параметрами п = 7, к = 3,йзиь = 4. Список всех двоичных векторов длины п с хэмминговым весом к (их количество равно = 35) имеет вид

{1110000, 1101000, 1100100, 1100010, 1100001, 1011000, 1010100,

1010010, 1010001, 1001100, 1001010, 1001001, 1000110, 1000101,

1000011, 0111000, 0110100, 0110010, 0110001, 0101100, 0101010,

0101001, 0100110, 0100101, 0100011, 0011100, 0011010, 0011001,

0010110, 0010101, 0010011, 0001110, 0001101, 0001011, 0000111}.

(13)

Рассмотрим алгоритм определения мощности ранговых подкодов на примере вектор-индекса V = {0011010}. Соответсвующая ему матрица в приведенной ступенчатой форме:

0 0 10 * 0 * V = I 0 0 0 1 * 0 * 000001

(14)

Количество кодовых символов рангового подкода равно drank — 1 = dsub/2 — 1 = 1. Для горизонтального расположения символов рангового подкода количество свободных элементов в строке с номером drank — 1 равно 2, то есть размерность рангового подкода N = 2. Общее количество свободных элементов в строках с номерами от drank = 2 до min{^, к} = 2 равняется 2. Следовательно, ih = 2 и Ch = qh = q2-

Рассматривая аналогично вертикальное расположение, получаем N = 3 и iv = 2, что дает Cv = ql = q2. Окончательно мощность рангового подкода равна max{Ch, Cv} = max{q2, q2} = q2.

Повторяя аналогичные действия для остальных индекс-векторов, получаем список из С\ = 35 мощностей кодовых компонент: {q8, q7, q6, q5, q4, q6, q5, q4, q3, q4, q3, q2, q2, q, q°, q6, q5, q4, q3, q4, q3, q2, q2, q, q°, q3, q2, q2, q, q, q°, q°, q°, q°, q0}.

В качестве первой компоненты выбираем СКК-код с мощностью q8 (его вектор-индекс первый в списке). Следующим по мощности подкодом обладает второй вектор-индекс — его мощность равна q7. Однако он находится на хэмминговом расстоянии 2 от вектор-индекса СКК-кода, что меньше требуемого dham = dsvb = 4. Первым в списке по убыванию мощностей подкодов, удовлетворяющим требованию на минимальное расстояние, является 10-й вектор-индекс (мощность равна q4). Его мы и добавляем к коду.

Продолжая поиск вектор-индексов по описанной процедуре, получаем многокомпонентный код из 7 компонент со следующими мультииндексами: Х\ = {1, 2, 3} 22 = {1, 4, 5}, Х3 = {2, 4, 6} Х4 = {3, 4, 7} Х5 = {2, 5, 7} Х6 = {3, 5, 6} Х7 = {1, 6, 7}. Его мощность равна M = q8 + q4 + q3 + q2 + q + q + 1. Верхняя граница для мощности при тех же параметрах равна Mmax = q8 + q6 + q5 + q4 + q3 + q2 + 1. Этот код совпадает с кодом, построенным в работе [1] для тех же параметров, отличаясь лишь порядком мультииндексов.

Рассмотрим теперь код с параметрами п = 13, к = 4,dsub = 6. Описанный метод позволяет построить для этих параметров многокомпонентный код со следующими мультииндексами:

2i = {1, 2, 3, 4} 22 = {1, 5, 6, 7} 23 = {2, 5, 8, 9} Х4 = {3, 6, 8,10} Х5 = {4, 7, 8,11}, 2б = {3, 7, 9,12}, Х7 = {4, 5,10,12} Х8 = {4, 6, 9,13} Х9 = {1, 9,10,11} Хш = {2, 6,11,12}, Хц = {2, 7,10,13} Х12 = {3, 5,11,13} Х13 = {1, 8,12,13}.

Мощность такого кода равна M = q18 + q12 + q8 + q7 + q6 + q4 + 2q3 + 3q2 + q + 1. В работе fl] для тех же параметров был построен код с мощностью q18 + q12 + 2q6 + 2q5 + 3q4 + 2q3 + q2 + 1. Таким образом, новый метод позволяет улучшить ранее известную конструкцию. Верхняя граница для мощности такого кода равна Mmax = q18 + q15 + q14 + q12 + q11 + q10 + q9 + q8 + q7 + q6 + q4 + q3 + 1.

В завершение рассмотрим код с параметрами п = 31, к = 3,dsub = 4 для размерности базового поля q = 2. Этот код состоит из 155 компонент, его мощность при построении

по описанному методу равняется М = 81955583110556320 кодовых слов. Верхняя граница составляет Mmax = 109802047904403264 кодовых слова. Отношение фактической мощности к верхней границе составляет примерно 0,746.

Отметим также, что предложенный метод построения для dsub = 2k совпадает в методом Габидулина-Боссерта.

6. Вывод

В работе предложен новый метод построения многокомпонентных сетевых кодов, сочетающий в себе «жадный» перебор мультииндексов в лексикографическом порядке, а также использование ранговых подкодов с ограничениями на информационные символы в качестве подкодов внутри компонент. Предложен универсальный метод построения подкодов с известной мощностью для любых конфигураций матриц свободных элементов.

Приведены примеры новых кодов, которые в некоторых случаях превосходят по характеристикам ранее известные конструкции. Для них определена фактическая мощность и осуществлено сравнение с верхней границей, которой при определенных параметрах эти коды достигают.

Литература

1. Габидулин Э.М., Пилипчук Н.И. Ранговые подкоды в многокомпонентном сетевом кодировании // Проблемы передачи информации. — 2013. — Т. 49, вып. 1. — С. 46-60.

2. Koetter R., Kschischang F. R. Coding for Errors and Erasures in Random Network Coding 11 IEEE Transactions on Information Theory. - 2008. - V. 54, N 8. - P. 3579-3591.

3. Skachek V. Recursive Code Construction for Random Networks // IEEE Transactions on Information Theory. - 2010. - V. 56, X 3. P. 1378-1382.

4. Ahlswede R., Aydinian H. On error control codes for random network coding // Workshop on Network Coding, Theory, and Applications, 2009. NetCod '09. — 2009. — P. 68-73.

5. Габидулин Э. M. Теория кодов с максимальным ранговым расстоянием // Проблемы передачи информации. — 1985. — Т. 21, вып. 1. — С. 1-12.

6. Wang X. Linear Authentication Codes from Free Modules: Bounds and Constructions // WSEAS Transactions on Mathematics. - 2013. - V. 12, N 2. - P. 201-210.

7. Silva D., Kschischang F.R., Koetter R. A Rank-Metric Approach to Error Control in Random Network Coding // IEEE Transactions on Information Theory. — 2008. — V. 54, N 9. - P. 3951-3967.

8. Габидулин Э. M., Боссерт M. Алгебраические коды для сетевого кодирования // Проблемы передачи информации. — 2009. — Т. 45, вып. 4. — С. 3-18.

9. Холл М. Комбинаторика. — М. : Мир, 1970.

10. Etzion Т., Silberstein N. Error-Correcting Codes in Projective Spaces via Rank-Metric Codes and Ferrers Diagrams // IEEE Transactions on Information Theory. — 2011. — V. 55, N 7. - P. 2909-2919.

11. Etzion Т., Silberstein N. Large Constant Dimension Codes and Lexicodes // Advances in Mathematics of Communications. — 2011. — V. 5, N 2. — P. 177-189.

Поступим в редакцию 26.04-2014.

i Надоели баннеры? Вы всегда можете отключить рекламу.