УДК 519.142.1:519.725 Кузьмин Олег Викторович,
д. ф.-м. н., профессор, Иркутский государственный университет, тел. (8595)242226, e-mail: quzminov@mail.ru Старков Борис Алексеевич, магистрант,
Институт математики, экономики и информатики, кафедра теории вероятностей и дискретной математики, Иркутский государственный университет, тел. 89246383607, e-mail: stsibrus@gmail.com
БИНАРНЫЕ МАТРИЦЫ, ПОСТРОЕННЫЕ ПРИ ПОМОЩИ ТРЕУГОЛЬНИКА ПАСКАЛЯ,
И ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ
O. V. Kuzmin, B. A. Starkov
BINARY MATRIXES BASED ON PASCAL'S TRIANGLE AND ERROR DETECTION
AND CORRECTION
Аннотация. В данной работе описывается математическая модель, состоящая из нулей и единиц, полученная при арифметических и комбинаторных преобразованиях треугольника Паскаля. Приводится известный метод построения такой бинарной матрицы и осуществляется его сравнение с методом, предложенным в данной работе. Рассматривается свойство самоподобия бинарных матриц. Излагается структура программы на языке Java, которая строит бинарную матрицу по задаваемым параметрам. Приводится интерфейс программы. Исследуется один из классов построения - класс с чередующимися разрядами в образующих, анализируются свойства этого класса. Излагаются основы помехоустойчивого кодирования. Изучаются комбинаторные свойства бинарных матриц, построенных при помощи треугольника типа Паскаля, и приводится применение этих матриц к решению вопросов теории помехоустойчивого кодирования.
Ключевые слова: комбинаторный анализ, бинарные матрицы, треугольник Паскаля, теория кодирования, помехоустойчивое кодирование, фракталы, фрактальная матрица, блочный код.
Abstract. This article describes mathematical model consisting of zeroes and ones, a binary matrix obtained by the arithmetical and combinatorial transformations of Pascal's triangle. There is an earlier method of constructing such a binary matrix and is compared with the method described in this article. The self-similarity properties of the binary matrixes are being examined. The structure of the program in Java, which builds a binary matrix set parameters based on. The program interface is given. One of construction classes - a class with the alternating categories in generatrix is given, properties of this class are analyzed. The bases of error detection and correction are stated. Combinatory properties of the binary matrixes constructed by means of a triangle of Pascal type are studied, and application of these matrixes is given to the solution of problems of error detection and correction.
Keywords: combinatory analysis, binary matrixes, Pascal's triangle, coding theory, error detection and correction, fractals, fractal matrix, block code.
Введение
Бинарные матрицы, элементами которых являются 0 и 1, представляют собой важный класс матриц; они находят огромное количество применений в различных разделах математики. В дискретной математике часто представляют граф в виде бинарной матрицы, например в виде матрицы смежности или матрицы инцидентности [6]. С помощью бинарной матрицы удобно задавать и/или представлять бинарные отношения.
В данной работе излагается метод построения бинарной матрицы при помощи треугольника Паскаля и приводятся некоторые свойства этих матриц и их приложения.
Стоить отметить, что применение вычислительной техники и использование методов и принципов СошрШегёшепсе позволяют автоматизировать многие операции, связанные с преобразованием матриц. Для построения и анализа бинарных матриц на основе треугольника Паскаля большого
размера имеет смысл написание компьютерной программы.
Научно-технический прогресс неизменно влечет за собой увеличение объема данных, для качественной обработки которых требуются все более развитые цифровые системы. За таким большим объемом данных стоит вопрос и об их целостности. Использование высокоэффективной аппаратуры позволит передавать дискретную информацию с высокой надежностью и точностью. Но на практике чаще более выгодным является использование корректирующих кодов, которые позволяют устранять ошибки, возникающие в передаваемых сообщениях из-за наличия шумов в канале передачи информации [2].
Имеется огромное количество зарубежных работ, посвященных помехоустойчивому кодированию. Среди них есть работы К. Шеннона, М. Голея, Д. Месси. В нашей стране также активно велись и ведутся работы, посвященные проблемам теории связи, передачи сигналов, помехо-
Информатика, вычислительная техника и управление
устойчивому кодированию. Стоит отметить, что первые работы по рекуррентному коду принадлежали нашему соотечественнику, Л. Финку. Однако ввиду неосведомленности о работе советских ученых в области кодирования некоторые работы были переоткрыты западными специалистами и названы в их честь. В этой статье рассматривается метод построения помехоустойчивого кода, основанный на отечественной идее.
Построение матрицы при помощи треугольника Паскаля
Представим известный математический объект, треугольник Паскаля, в виде прямоугольной таблицы [1]:
Используя известное правило треугольника Паскаля (элементы, не лежащие на образующей, равны сумме элементов слева и сверху), построим бинарную матрицу, которую будем называть треугольником типа Паскаля с образующими (0, 1, 0,1, ...):
Т а б л и ц а 1
Определение 1. VneN код треугольника типа Паскаля (бинарная матрица) длины 2" задается вышестоящей таблицей размерности 2™х2™+1, если все элементы рассматриваются по mod 2.
При расширении прямоугольной таблицы (см. табл. 1) становится очевидным рекуррентное свойство данной матрицы: каждый новый элемент зависит только от двух элементов, уже вычисленных ранее. Понятно, что вычисление сколько-нибудь большой таблицы по заданной образующей займет некоторое количество времени. Гораздо удобнее составить компьютерную программу, решающую эту проблему: на вход подается образующая, и программа выводит готовую таблицу.
Рис. 1. Интерфейс программы
Интерфейс программы представлен на рис. 1. В программе вводится желаемое количество столбцов и строк, задается образующая. При нажатии на кнопку «Задать» в окно с текстом выводится таблица из нулей и единиц.
Программа, написанная на языке программирования Java, состоит из нескольких классов и методов. Метод, возвращающий код треугольника типа Паскаля, представлен на рис. 2.
public static int[][] pascalLikeTable(int numOfColumns.int numOfRows, int[] generatrix){
int restTimesVertGeneratrix = numOfRows % numOfColumns;
hMatrix[nTimesVertGeneratrix]= new int[restTimesVertGeneratrix];
extVert Generatrix = concat(extVertGeneratrix.hMatrix[i]);
int[][] pascalLikeTable = new int[numOfRows][numOfColumns];
U Присваивание горизонтальной образующей
pascalLikeTable[i][j]=pascalLikeTable[i-l][j]+pascalLikeTable[i][j -1];
Рис. 2. Метод, возвращающий бинарную матрицу
С помощью написанной программы можно получать бинарные матрицы больших размеров без затруднительных расчетов. Анализ таблиц,
ИРКУТСКИМ государственный университет путей сообщения
построенных в программе, позволил рассмотреть наличие в этих структурах фрактального свойства. На рис. 3 представлена матрица с чередующейся образующей.
Матрица, представленная на рис. 3, имеет схожие черты с геометрическим образцом, приведенным в работе [3]. Однако стоит отметить и отличие в построении этих объектов. В работе [3] для получения геометрического образца используется редуцирование треугольника Паскаля по модулю 2. В данной работе излагается иной метод -выбор произвольной бинарной образующей. Комбинируя определенным образом нули и единицы в образующей, можно получить фракталы, не получаемые редуцированием по модулю к. Например, на рис. 4 изображена бинарная матрица, составленная из образующей с чередующеся частью 10100000 и представляющая собой иной фрактал.
Рассмотрим детально один из классов образующих - образующие, чьи разряды поочередно меняются.
Зададимся вопросом: как часто строки в треугольнике типа Паскаля с образующими с чередующимися разрядами будут повторяться?
Рис. 3. Бинарная матрица с чередующейся образующей
Для ответа на этот вопрос сформулируем и докажем теорему 1, которая также является обоснованием применения треугольника Паскаля к задачам кодирования.
Теорема 1. Пусть дана горизонтальная образующая а с чередующимися разрядами 1, 0, 1, 0, ...
Выберем вертикальную образующую таким образом, чтобы при построении треугольника типа Паскаля 1-я строка равнялась _)-й. Тогда между 1-й и _)-й строкой не найдется 2 идентичных строк.
Доказательство:
Рассмотрим последовательность строк треугольника типа Паскаля, начиная с 1-й и заканчивая строкой у, после которой идет строка, равная a. Так как 1-я строка равна _)-й, то первые разряды у этих строк также равны, а следовательно, ввиду чередования разрядов у вертикальной образующей, первый разряд у строки с номером 1+1 равен первому разряду у строки ) +1. Получаем, что у строк с номерами 1+1, )+1 оказываются равными первые разряды и предшествующие им строки. На основании арифметических свойств треугольника типа Паскаля получаем, что строки с номерами 1+1, )+1 равны. Продолжая те же рассуждения, получим, что строка 1+2 равна строке )+2, строка 1+3 равна строке )+3, ..., строка 1+к равна строке )+к (1+к < )-1). Очевидно, можно говорить о периодичности повторения строк.
Теперь воспользуемся методом от противного и предположим, что между 1-й и _)-й строкой найдутся еще 2 равные между собой строки.
Не умаляя общности, предположим, что 1+2 строка равна 1+к строке, причем 1+2 < 1+к < _)-1. Тогда, в силу периодичности повторения, получим, что 1+2 = 1+к = )+к, далее 1+1 = ) +к— 1, и 1 = )+к—2. Но в силу условий теоремы 1-я строка равна _)-й, и потому к=2, то есть 1+2 строка не может быть продублирована в рассмотренной выше последовательности. Ч. т. д.
Помехоустойчивое кодирование
Под кодированием информации понимается процесс преобразования формы сигнала. Из формы, удобной для непосредственного использования информации, сигнал преобразуется в форму, удобную для передачи, хранения или обработки.
Саму задачу кодирования можно сформулировать следующим образом [6]. Зададим алфавиты А = Ц,а2,...,ап}, В = [Ьх,Ь2,...,Ьк} и функцию
Р : Ж ^ В , где W — некоторое подмножество множества всех слов в алфавите А, Ж ^ А .
Функцию Р называют функцией кодирования или просто кодированием, элементы множества Ж — сообщениями, а элементы у = Р(X), X е Ж, у е В*, — кодами. Очевидно, определенному коду соответствует определенное сообщение. Обратная функция Р 1 называется декодированием. Обратная функция существует не всегда.
Информатика, вычислительная техника и управление
Рис. 4. Бинарная матрица, составленная из образующей с чередующейся частью 10100000
Если | В |= к , то ^ называется к-ичным кодированием. В компьютерных системах и системах связи применяется двоичное кодирование, то есть | В |= 2.
В типичных задачах теории кодирования, как и в задачах смежных дисциплин, таких как криптография и сжатие данных, к функции кодирования Г при заданных алфавитах А, В и множестве сообщений Ж ставятся определенные требования. Например, следует составить такое кодирование Г, для которого декодирование будет или невозможным, или же заданной сложности, то есть определение функции декодирования потребует более сложных вычислений по сравнению с функцией кодирования (криптография). Существование декодирования не всегда является необходимым. Записывая информацию на лазерный диск, то есть кодируя сигналы в форму, удобную для хранения, мы ожидаем и возможности декодирования в форму, удобную для использования информации. Однако при кодировании программы с языка высокого уровня в машинные команды обычно не требуется возможности обратного кодирования.
Одним из важных свойств, предъявляемых к кодированию, является помехоустойчивость. Пусть имеется канал связи Ь с шумами. Функция кодирования ¥, для которой справедлив следую-
щий принцип: Г: Ж^ V, V - коды сообщений, V с В* (сообщения кодируются), Ь : У ^ У , У - коды сообщений, подвергшиеся помехам (коды поданы в канал связи Ь с шумами), Г 1 : V ^ Ж (коды декодированы правильно в изначальные сообщения), причем
^ е Ж с А*,Г\С(Г№)) = w,
называется помехоустойчивой.
При этом иногда кодирование должно удовлетворять некоторому критерию оптимальности, который, как правило, связан с минимизацией длин кодов.
Очевидно, что строки рассмотренной выше бинарной матрицы могут служить кодовыми словами, или кодами, так как доказано, что существует определенное число последовательно расположенных строк, среди которых не найдется одинаковых. Иными словами, треугольник типа Паскаля является математическим объектом, содержащим комбинаторные и алгебраические свойства, делающие возможным его применение в теории кодирования. Основными особенностями этого объекта при этом являются простота построения бинарной матрицы и относительно малое количество информации, необходимое для этого построения. Например, для кодирования 8 сообщений нужно указать первый разряд горизонтальной образующей, размер образующей и по построенной матрице произвести последовательное сопоставление сообщений с ее строками.
Если же при построении матрицы две любые произвольно взятые строки отличаются более чем в двух местах, то эта матрица обладает свойствами помехоустойчивости, то есть если при передаче по каналу, кодовое слово подверглось воздействию шума и один разряд изменился на неправильный, эту ошибку будет возможно обнаружить [2].
Приведем два важных для теории кодирования следствия из теоремы 1:
Следствие 1. Задавая определенные вертикальные образующие, можно получить уникальные последовательности кодовых комбинаций.
Следствие 2. Зная { и _), можно провести сдвиг совокупности кодовых слов на 1,., к комбинаций вперед и получить ту же уникальную совокупность, но с другим порядком кодовых слов. Общий подход к построению помехоустойчивых кодов Пусть имеется некоторое множество слов или сообщений Ж ^ - количество сообщений) и требуется задать кодирование при котором каждому сообщению w соответствовало некоторое ^-ичное число разрядности п. Для этого необхо-
димо выбрать такое п, чтобы выполнялось условие 5 <= Кп.
Совокупность наборов слов длины п называется блоковым кодом, а ^-ичные наборы, слова длины п называются кодовыми комбинациями или кодовыми словами.
Если 5 = Кп, то для кодирования используются все возможные К-ичные числа. При этом кодовые комбинации имеют длину п . = к, где к - число
информационных элементов. Такой код не обладает избыточностью, так как любая ошибка просто переделает одну кодовую комбинацию в другую.
Помехоустойчивый код требует же соблюдения
строгого неравенства 5 < Кп , причем п > к. Разрядность п в кодовой комбинации должна позволить
получить 5 разных чисел (5 > 5), из которых по определенным правилам можно отобрать для кодирования 8 чисел. Такие отобранные комбинации называются рабочими или разрешенными. Оставшиеся невыбранными комбинации называются запрещенными (нерабочими). Как итог, мы получаем кодирование ¥, с помощью которого можно обнаруживать ошибки (когда на приемной стороне фиксируется одна из запрещенных комбинаций) или исправлять их (когда на приемной стороне фиксируется запрещенная кодовая комбинация как наиболее похожая на одну из разрешенных). Как видно, для построения помехоустойчивого кода необходимо некоторое количество избыточных элементов
т = п — к (к = К5).
Избыточность К = т / п служит
количественной мерой, с помощью которой можно сравнивать различные коды по степени их оптимальности. Наиболее оптимальным будет такой код, который обеспечивает заданную помехоустойчивость при минимальной избыточности. Подход к построению помехоустойчивого кода на основе свойств бинарной матрицы, построенной при помощи треугольника Паскаля
На рис. 5 приведена схема типичной системы связи с использованием кодов, обнаруживающих и исправляющих ошибки [5].
Источник Кодер(инф. Кодирование двоичных
->двоич.симв.)
символов
Демодулятор Канал Модулятор
Детектор ошибок Декодер Получатель
Предположим, что источник представляет собой сообщение c = 0011. Требуется передать его получателю через кодер по каналу с шумами и восстановить ошибки в случае их обнаружения.
Построим бинарную матрицу по следующему принципу. В качестве первой строки берется само сообщение c = 0011. Далее строится вертикальная образующая с чередующимися разрядами. По первой строке и первому столбцу, используя правило треугольника Паскаля, завершим бинарную матрицу.
0 1 0 1
0 1 1 о
1
0
1 ■1
1 1 о ■1
Составим кодовое слово а из всехстрок построенной матрицы.
а = 0011110101101011 Так как при составлении матрицы мы использовали вертикальную образующую, каждый четвертый разряд в кодовом слове будет отличаться от предыдущего и последующего и, таким образом, если в таком разряде будет допущена ошибка, ее легко можно будет обнаружить и исправить.
Предположим, что в канале произошла одна ошибка и декодер принял следующую комбинацию (ошибочный разряд подчеркнут): а'= 0011111101101011 Обнаружим и исправим ошибку, построив бинарную матрицу 4x4:
0 1
0
1
0
1 1 о
1 1
1 1
1 1
0
1
Используя нарушение правила треугольника Паскаля, можно обнаружить ошибку, используя рядом стоящие элементы.
Предположим теперь, что в канале произошли две ошибки и декодер принял следующую комбинацию:
а"= 0001111101101011 Соответствующая этой комбинации матрица примет вид:
0 1
0
1
0
1 1 о
0
1
1 1
1 1
0
1
Проверяя соответствие правилу с 4-й строки обратно, приходим к нарушению во 2-й строке, после чего обнаруживается и исправляется ошибка в 1-й строке.
Рис. 5. Схема типичной системы связи
Информатика, вычислительная техника и управление
Декодер отбирает первую строку матрицы и передает ее получателю.
Таким образом, бинарные матрицы на основе треугольника Паскаля можно использовать для обнаружения и исправления ошибок.
Заключение
В данной статье изложены некоторые свойства бинарных матриц, построенных с помощью треугольника Паскаля. В частности, показано их приложение к теории помехоустойчивого кодирования.
В дальнейшем планируется описать бинарную матрицу, основанную на треугольной таблице, элементы которой удовлетворяют следующим рекуррентным соотношениям [4]:
У(п, к) = а^-У(п -1, к -1) + (ЗщкУ(п -1, к).
с граничными условиями У(0,0) = У , У (п, к) = 0, если шт(п, к, п - к) < 0.
Величины (%пк_х и /Зпк называются весовыми коэффициентами. Саму треугольную таблицу называют обобщенным треугольником Паскаля [4].
Планируется показать, как с помощью обобщенного треугольника Паскаля возможно задать помехоустойчивый код с определенными свойствами на этапе построения бинарной матрицы.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Кузьмин О.В., Оркина К.П. Построение кодов, исправляющих ошибки, с помощью треугольника типа Паскаля // Вестник Бурят. ун-та. Сер.: Математика и информатика. 2006. Вып. 3. С.32-39.
2. Хэмминг Р.В. Коды, обнаруживающие и исправляющие ошибки // Коды с обнаружением и исправлением ошибок. М. : ИЛ, 1956. С. 7-22.
3. Wolfram S. Geometry of Binomial Coefficients // American Mathematical Monthly. 1984. Vol. 91. №. 9. P. 566-571.
4. .Кузьмин О. В. Обобщенные пирамиды Паскаля и их приложения. Новосибирск : Наука. СО РАН, 2000. 294 с.
5. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки : пер. с англ. М. : Мир, 1976. 594 с.
6. Новиков Ф.А. Дискретная математика для программистов. СПБ : Питер, 2004. 364 с.
УДК 519.685 Буторин Денис Витальевич,
аспирант кафедры «Автоматизация производственных процессов», Иркутский государственный университет путей сообщения, тел. 89041203901, e-mail: den_butorin@mail.ru Филиппенко Николай Григорьевич, к. т. н., доцент кафедры «Автоматизация производственных процессов», Иркутский государственный университет путей сообщения, тел. 89025121754, e-mail: pentagon@mail.ru Филатова Снежана Николаевна, аспирант кафедры «Автоматизация производственных процессов», Иркутский государственный университет путей сообщения, тел. 89041170444, e-mail:filatova_sn@irgups.ru Лившиц Александр Валерьевич, к. т. н., доцент, заведующий кафедрой «Автоматизация производственных процессов», Иркутский государственный университет путей сообщения, тел. 89501378441, e-mail: livnet@list.ru Каргапольцев Сергей Константинович, д. т. н., профессор, проректор по научной работе, Иркутский государственный университет путей сообщения, тел.: 8(3952)638362, e-mail: kck@irgups.ru
АВТОМАТИЗАЦИЯ КОНТРОЛЯ СТРУКТУРНЫХ ПРЕВРАЩЕНИЙ В ПОЛИМЕРНЫХ МАТЕРИАЛАХ ПРИ ЭЛЕКТРОТЕРМИЧЕСКОЙ ОБРАБОТКЕ
D. V. Butorin, N. G. Filippenko, S. N. Filatova, A. V. Livshitz, S. K. Kargapoltcev
AUTOMATION OF CONTROL OF STRUCTURAL TRANSFORMATION IN POLYMERIC
MATERIALS AT HEAT TREATMENT
Аннотация. Проведенный анализ оборудования электротермической обработки полимерных материалов на предмет его автоматизации позволил разработать алгоритм автоматизированного исследования, реализованный в виде программного