Алгоритм вычисления граничного ранга двоичной матрицы
Автор: Фам Л.Х.
Журнал: Труды Московского физико-технического института @trudy-mipt
Рубрика: Информатика и управление
Статья в выпуске: 1 (41) т.11, 2019 года.
Бесплатный доступ
Рассматриваются методы исправления ошибки в системе параллельных каналов, в которых действуют помехи. Предложено пространство квадратных матриц над конечным полем. Граничным рангом двоичной матрицы называется минимальное число строк и столбцов, в которых содержатся все ненулевые элементы матрицы. В данной работе речь пойдет о алгоритме вычисления граничного ранга матрицы.
Граничный ранг, решетчатые конструкции, конечное поле, двоичные матрицы, кодовое расстояние, вектор сумм столбцов, вектор сумм строк
Короткий адрес: https://sciup.org/142220475
IDR: 142220475 | УДК: 621.391
Algorithm for computing term rank of binary matrices
We consider methods for correcting errors in the system of parallel channels with interference. The space of square matrices over a finite field is suggested. The term rank of the binary matrix A is defined to be a minimum number of rows and columns that contain all nonzero elements of the matrix. In this paper, we discuss the algorithm for computing the term rank of the matrix. Key words: term rank, lattice construction, finite field, binary matrices, distance of codes, row sum vector, column sum vector.
Текст научной статьи Алгоритм вычисления граничного ранга двоичной матрицы
1. Модель решетчатых ошибок
Рассмотрим процесс передачи дискретных сообщений от источника, информации к получателю, который осуществляется по нескольким параллельным каналам. Каждый из каналов использует двоичные сигналы для передачи. Пусть количество каналов равно пу, длительность передачи по каждому из каналов равна nt. Тогда входные и выходные сигналы можно отождествить с матрицами (A ij ), г = 1, ...,п у ; j = 1, ...,nt, где г означает номер канала, j означает номер временного питщ>ва.та. Значения элементов равны 1 или 0.
В процессе передачи сообщений возникают различные специфические ошибки.
Когда, действуют замирания сигнала, импульсные и узкополосные помехи, ошибки могут возникнуть в нескольких столбцах и нескольких строках матрицы. В таком случае ошибки называются решетчатыим.
Пусть задано множество матриц (vi, V2,..., р м ) на входе канала. Пусть передается мат-
|
рица р^ а на выходе получена матрица у = р і + е |
, где е - матрица ошибок. |
|
Пример. Матрица. |
|
|
/0 0 0 |
1 °\ |
|
1 0 0 |
1 0 |
|
е =110 |
01 |
|
0 0 0 |
0 0 |
|
100 |
00 |
«Московский физико-технический институт (национальный исследовательский университет)», 2019
есть ошибка решетчатой конфигурации с граничным рангом 3, так как искаженные символы сосредоточены в третьей строке и первом и четвертом столбцах.
Желательно правильно восстанавливать сообщение, если граничный ранг матрицы ошибок е не превосходит заранее заданной величины t. Нужен алгоритм вычисления граничного ранга двоичной матрицы.
2. Пространство квадратных двоичных матриц над конечным полем
Пусть GF(2) - конечное поле, состоящее из q = 2 элементов. Пусть GF(2п) - расширение поля GF(2) степени п, п - натуральное число. Поле GF(2) будем назвать базовым полем, поле GF(2п) - расширенным полем.
Линейное пространство матриц А над
GF (2)
п х п
полем GF (2) с раем юрами п х п обозначается
|
А = |
« 0,0 «1,0 • • • |
«0,1 . «1,1 . • . |
. «0,п-1 . «1,п-1 • |
, « г, |
У G GF (2) |
|
_ «п-1,0 |
«п-1,1 . |
. « п - 1,п-1_ |
Ранг матрицы Rk(X) определяется как максимальное число линейно независимых над GF (2) строк (или столбце в). Граничный ранг р(А) двоичной матрицы определяется как минимальное число линий (строк и столбцов), в которых содержатся все ненулевые элементы матрицы [1+2].
Функция р(А) удовлетворяет всем аксиомам нормы [1]:
р(А) = 0 о А =
.
. .
.
*
.
.
*
.
.
*
.
.
. .
.
р(А) > 0 о А = 0.
|р(А) - р ( в )| < р(А + в) < р(А) + р ( ву
Гранично-ранговое расстояние. Примеры
Пример. Граничный ранг матрицы
1 1 1
равен 1, граничный ранг матрицы
/1 0 0\ равен 2, граничный ранг матрицы
/1 1 1\ равен 3.
Расстоянием между двумя матрицами А и В одинаковых размеров называется граничный ранг их разности:
<А,В)= р(А - В). (1)
Гранично-ранговое расстояние имеет все свойства обычного расстояния:
-
1) d(A,B') = 0 о A = В.
-
2) d(A, С ) + d(C, В ) > d(A, В) - неравенство треугольника.
-
3) d(B, A) = d(A, В) - свойство симметричности.
Первое и третье свойства получены из отмеченного выше соотношения
d(A, В) = p(A — В) = p(B — А).
Аналогично
d(A,C ) + d(C, В) =
= p(A — С ) + p(C — В) > p((A — С ) + (С — В )) =
= p(A — В ) = d(A — В)
Таким образом, второе свойство расстояния доказано.
Гранично-ранговый код У G GF (2)n-f x n t - это любое подмножество пространства прямоугольных матриц с гранично-ранговой нормой.
Кодовое расстояние равно, по определению, минимальному из попарных расстояний между элементами кода [3]:
d = min p(vt — V j ). t=j
Очевидно, для любого кода d < D = min(ny, nt).
4. Алгоритм вычисления граничного ранга двоичной матрицы
Этот алгоритм был предложен автором в 2018 г. Основная идея алгоритма заключается в том, что на основе сравнения между векторами сумм столбцов и векторами сумм строк можно вычислить максимальное значение элементов. Цель определения максимального значения элементов - управление процессом вычисления граничного ранга, то есть граничным рангом является минимальное число строк и столбцов, в которых содержатся все единицы матрицы.
Вход: А = (A tj ) - двоичная матрица. с размером m х n
Выход: norm = p(A) - граничный ранг двоичной матрицы.
-
1) У ^ 0.
-
2) Вычисление векторов colnm = (colnm[1], colnm[2],... , colnm[n]) и
- Une = (line[1], line[2],..., line[m]). colnm[j] - это сумм а элементов j-m столона матрицы, line[i] - это сумм а элементов i-й строки матрицы:
m colnm[j] = ^2 Ajj j = 1,...,n, г=1 n line[i] = У2 Atj i = 1,... ,m.
j=i
3) Вычисление max _col_var - максимальное значение элементов в векторе colnm, max _col_index - индекс максимального 'значения элементов в векторе colnm. 4) max _line_var - максимальное значение элементов вектора, line, max _line_index -индекс максимального значения элементов в векторе line. 5) While max _line_var > 0 do 6) у ^ у + 1. 7) If max _col_uar > max _line_var then Д,тах co[ index ^ 0, г де i = 1.. .m. 8) Else Mmax _ Une _index,j ^ 0; Г Д6 j — 1 ...Tt. 9) Вычисление векторов colum и line. 10) Вычисление max _col_var, max _col_index. 11) Вычисление max _line_var, max _line_index. 12) end while. 13) norm — p(M) - минимальное значение из трёх значений у, m и п.
Рис. 1. Блок-схема, алгоритма, вычисления граничного ранга, двоичной матрицы
Доказательство. Пусть А - двоичная матрица размером m х п. Пусть у - количество разложенных матриц из А. Разложение матрицы А осуществляется в следующем порядке:
А = Ai + Bi, где Ai - двоичная матрица, у которой только одна строка (или столбец), в которой содержатся максимальное количество единиц из всех строк (или столбцов) матрицы А.
Пример
/1 0 0\ /10 0\ /0 0 0\
1 1 0 = 1 0 0 + 0 1 0 = A i + B1.
001 000 001
Аналогично для Bi: Bi = А2 + B2 и так далее.
В общем случае процесс разложения матрицы имеет следующий вид:
A = Ai + Bi,
Bi = A2 + B2,
B y — i — A y .
Таким образом, на конечном этапе получим A = Ai + A2 + ... + Ау.
С учетом третьей аксиомы получаем
p(A) < p(Ai) + p(A2^ + ••• + p(Ay ) = 1 + 1 + ••• + 1 = у.
Матрицы А г не зависят друг от друга. Поэтому если значение у больше, чем ттг или п, то граничный ранг матрицы А равен min(m, п). В противном случае, как легко увидеть, граничный ранг матрицы А равен у.
5. Пример. Код (3,1,3). Дуальный код (3, 2, 2)
Пусть задан код (р, k,d), где р = 3 размер квадратной матрицы, к = р — 2 = 1-число информационных векторов (ж, у, 2), d = 3 кодовое гранично-ранговое расстояние. Матрицей кода (3,1,3) является бинарная матрица размера 3 х 3. Код (3,1,3) имеет вид
Пусть задано целое число элементов
|
000 100 010 001 |
|
|
G 0 = |
0 0 0 , Gi = 0 10 , G2 = 0 0 1 , G3 = 10 0 000 001 100 010 /1 1 0\ /10 1\ /0 1 1\ /11 1' |
|
G4 = |
0 11 , G5 = 110 , G6 = 10 1 , G7 = 111 101 011 110 111 |
Легко заметить, что p(Go) = 0 и р(Сг ) = 3, г де г = 1... 7.
Рассматривается разность двух матриц G — G j | € G. Поэтому гранично-ранговое расстояние равно 3.
Опишем данный код через G’ матрицу дуального кода (3,2,2) из матрицы G. В резуль тате получим
( ж
У
У ж
2\ / о(ж)
У I v I d(2)
ж Ь(у) + Һ(у)
Ь ( У)
9(ж)
сД) + d(2)
Ф) \
Цу) I
а(ж) + 9(ж)
v
|
/ а |
b |
с |
|
|
v G = |
d |
9 |
Һ |
|
b + Һ |
с + d |
а + 9. |
Дуальный кон (3, 2, 2) имеет гранично-ранговое расстояние 2.
6. Код (р,р — 2, 3). Пример. Код (4, 2, 3)
Код (р,р — 2, 3) характеризуется параметрами (р, к, d) г де р - размер квадратной матрицы, к = р — 2 - число информационных векторов (жг, У г , Z,..., кг, ег), г де г = 0,... ,р — 1, d = р — к + 1 = 3 кодовое гранично-ранговое расстояние.
Для построения кода (р,р — 2, 3) сначала определить сопровождающую матрицу Fn. Пусть / (ж) = ж”+/п-іжп—і+• • •Т/іж+Уо - примитивный многочлен пан полем GF (2). Тогда сопровождающая матрица Fn имеет вид
010 ... 0 0\
001 ... 00
: : ... 01
\ /0 /1
Порождающая матрица кода имеет общую формулу:
ж0 + ж1 + • • • + жп-3\
G =
ж 0 F п + жі F,2 + • • • + ж п - з ^ ” 2
жоҒ” 1 +жіҒ2(п 1) +-----+ж„
Р (п-1)(п-2) 3Ғп /
Здесь выберем сопровождающую матрицу Ғп так, чтобы p(G) > 3. В этом случае код (р, р — 2, 3) является линейным. Поэтому гранично-ранговое расстояние d(G i — G j ) > 3.
Кон (4, 2, 3) характеризуется параметрами (р, к,d). г,ле р = 4 - размер квадратной матрицы. к = р — 2 = 2- число шіформсгщюшіых векторов (ж, y). d = р — к + 1 = 3 кодовое гранично-ранговое расстояние. Символы векторов представляют собой элементы поля GF (2). Пусть G - (4 х 4)-матрица, которая состоит из информационных векторов. Матрица G имеет две информационные диагонали и две проверочные диагонали.
Код задается следующей порождающей матрицей:
G =
x y xF4 + yF2 xF2 + yF4
где x = (ж0 жі ж2 жз), y = (y0 y 1 y 2 y3) - информационные вектор-строкіі длины 4. Здесь выберем сопровождающую матрицу F4 так, чтобы p(G) > 3. А матрица F4 - сопровождающая матрица многочлена ж4 + ж + 1:
|
F 4 = |
0 0 0 1 |
100 010 001 100 |
||||||||||||
|
( ° |
1 |
0 |
0^ |
(0 |
0 |
1 |
0\ |
|||||||
|
x F 4 |
+ y F 2 |
= (ж0 жі ж2 жз) |
0 0 |
0 0 |
1 0 |
0 1 |
+ (У0 |
Уі |
У2 Уз) |
0 1 |
0 1 |
0 0 |
1 0 |
|
|
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
|||||||
|
= (жз + У2 ж0 + жз + У2 + Уз жі + У0 + Уз ж2 + Уі), |
||||||||||||||
|
(0 |
0 |
1 |
0^ |
(1 |
1 |
0 |
0\ |
|||||||
|
x F 2 |
+ y F 4 |
= (ж0 жі ж2 жз) |
0 1 |
0 1 |
0 0 |
1 0 |
+ (У0 |
Уі |
У 2 Уз) |
0 0 |
1 0 |
1 1 |
0 1 |
|
|
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
|||||||
= ($2 + У 0 + У 3 $2 + $3 + У 0 + У 1 + У 3 $0 + $3 + У 1 + У 2 $ 1 + У 2 + У з ).
Таким образом, получена общая формула:
$0 $1
У0 У1
$3 + У2 $0 + $3 + У 2 + У3
$2$3
У2У3
$1 + У0 + Уз $2 + У1.
.$2 + У0 + У3 $2 + $3 + У0 + У1 + У3 $0 + $3 + У1 + У2 $1 + У2 + У3_
Пусть задано целое число матриц множества L = 28 = 256. С помощью компьютера результат получен (табл. 1).
Таблица!
Результат вычисления граничных рангов всех кодовых матриц G
|
Граничный ранг p(G) |
0 |
1 |
2 |
3 |
4 |
|
Количество матриц |
1 |
0 |
0 |
101 |
154 |
Из таблицы результата получено гранично-ранговое расстояние d(Gi — Gj ) > 3.
7. Заключение
Представленный в статье алгоритм является новым. Алгоритм вычисления граничного ранга является основным результатом данной статьи, и с помощью этого алгоритма решалась задача построения кодов с расстоянием 3. Результат построения данных кодов представляет собой основу для решения последующих задач оптимальных кодов, исправляющих одиночные гранично-ранговые ошибки.
Автор выражает благодарность профессору Э.М. Габидулину и д.т.н Н.П. Пилипчук за замечания, которые способствовали улучшению статьи.
Список литературы Алгоритм вычисления граничного ранга двоичной матрицы
- Габидулин Э.М. Лекции по алгебраическому кодированию. Москва: Наука, 2015. С. 62.
- Paterson M.B., Stinson D.R., Wei R. Combinatorial batch codes//Adv. Math. Communications, 3. 2009. P. 13-17.
- Габидулин Э.М. Оптимальные коды, исправляющие ошибки решетчатой конфигурации//Пробл. передачи информ. 1985. Т. 21, вып. 2. С. 103-108.