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

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

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

Аннотация научной статьи по математике, автор научной работы — Голуб Владимир Иванович, Гребенник Игорь Валериевич, Кузьменко Виктор Михайлович

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

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

Похожие темы научных работ по математике , автор научной работы — Голуб Владимир Иванович, Гребенник Игорь Валериевич, Кузьменко Виктор Михайлович

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

Combinatorial approach to the building technological stroke codes of minimal length

The problem of building technological stroke codes of minimal length is considered. The method of the problem solving, which is based on the application of the combinatorial partitioning of integer numbers is proposed. The examples of codes realization for marking and automatic identification of the post correspondence are given.

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

проблемы борьбы с организованной преступностью и коррупцией в сфере экономики”. Луганск: РИО ЛИВД МВД Украины, 1997. С.138-140. 5. ПлютаВ. Сравнительный многомерный анализ в экономических исследованиях. М.: Статистика, 1980. 151 с. 6. Scherer A. Neuronale Netze. Grundlagen und Anwendungen. Braunschweig / Weisbaden: Friedr. Vieweg & Sohn Verlagsgesselschaft mbH, 1997. 249 S. 7. Cichocky A., Unbehauen R. Neural Networks for Optimization and Signal Processing. Stuttgart: Teubner, 1993. 526 p. 8. Pham D.T., Liu X. Neural Networks for Identification, Prediction and Control. London: Springer. Verlag, 1995. 238 p. 9. Van Matre J.G., Gilbreath G.H. Statistics for Business and Economics. Homewood, Illinois: Business Publications, Inc., 1987. 786 p.

Поступила в редколлегию 27.09.98 Рецензент: д-р техн. наук Шкварко Ю.В.

Бодянский Евгений Владимирович, д-р техн. наук, профессор кафедры технической кибернетики ХТУРЭ. Научные интересы: теория адаптивных систем, искусственные нейронные сети, техническая диагностика. Увлечения: фелинология, восточные учения, японская поэзия. Адрес: Украина, 310166, Харьков, пр. Ленина, 14, тел. 40-98-90.

Любчик Леонид Михайлович, д-р техн. наук, профессор кафедры системного анализа и управления ХГПУ, лауреат Государственной премии Украины, член IEEE. Научные интересы: теория адаптивных и обучающихся систем, робастное управление, обратные задачи динамики. Адрес: Украина, 310002, Харьков, ул. Фрунзе, 21. E-mail: lyubchik@lotus.kpi.kharkov.ua

Матусовский Григорий Абрамович, д-р юрид. наук, профессор кафедры криминалистики Национальной юридической академии им. Ярослава Мудрого, зав. сектором НИИ изучения проблем преступности Академии правовых наук Украины. Научные интересы: межнаучные связи криминалистики, математико-криминалистические методы, экономическая криминалистика. Увлечения: символика, геральдика. Адрес: Украина, 310022, Харьков, а/я 4539.

Плисс Ирина Павловна, канд. техн. наук, старший научный сотрудник, ведущий научный сотрудник ПНИЛ АСУ ХТУРЭ. Научные интересы: адаптивные системы обработки информации и управления. Адрес: Украина, 310166, Харьков, пр. Ленина, 14, тел. 40-98-90.

УДК 621.391(07), 658.12.512.011

КОМБИНАТОРНЫЙ ПОДХОД К ПОСТРОЕНИЮ ТЕХНОЛОГИЧЕСКИХ ШТРИХОВЫХ КОДОВ МИНИМАЛЬНОЙ ДЛИНЫ

ГОЛУБ В.И., ГРЕБЕННИКИ.В., КУЗЬМЕНКО В.М.

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

Одним из условий повышения эффективности обработки различных отправлений (почтовых, промышленных товаров и т.д.) является нанесение на их упаковку штрихового кода, содержащего всю необходимую информацию. Источниками требований к виду, структуре и характеристикам штриховых кодов служат положения государственных стан -дартов, технология обработки информации об отправлениях, техническая база для нанесения и считывания штриховой информации, вопросы контролепригодности и др.

Рассмотрим задачу построения технологического штрихового кода, предназначенного для кодирования текстовой информации, который может быть использован, например, при обработке почтовых

отправлений. Опыт применения различных штрихо -вых кодов для маркировки и автоматической идентификации различных видов почтовых отправлений позволяет сформулировать ряд требований к структуре и характеристикам кода [1]:

1. Код должен быть равномерным, т.е. кодовые комбинации должны иметь равную длину.

2. Штрихи в кодовых комбинациях должны иметь одинаковую (минимальную) ширину, а между любыми двумя штрихами должен быть промежуток, не менее чем вдвое превышающий ширину штриха.

Это требование вызвано применением для печати ярлыков со штриховыми кодами и матричных и струйных принтеров, которые допускают отклонение ширины штриха в обе стороны до одной трети от базового размера.

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

4. Код должен позволять обнаруживать и исправлять заданное количество ошибок.

При выполнении требований 1-4 естественно стремление к построению кодовых комбинаций минимальной длины.

Формализуем задачу, исходя из сформулированных требований. Штриховому коду поставим во взаимооднозначное соответствие двоичный код по правилу: штрих единичной ширины обозначим 1, промежуток единичной ширины обозначим 0. В связи с этим далее речь пойдет о построении двоичного кода, удовлетворяющего набору требований, в которые превращаются условия 1-4:

1. Равномерность кода (одинаковое число символов в каждой кодовой комбинации).

2. Между любыми двумя единицами в кодовых комбинациях должно быть не менее двух нулей. Это же требование должно выполняться и при составлении последовательности символов в слово, т.е. не

66

РИ, 1998, № 3

допускается окончание одной кодовой комбинации и одновременно начало другой символом 1.

3. Количество единиц в каждой кодовой комбинации должно быть одинаковым. Каждая кодовая комбинация должна иметь не менее двух полей одинаковой длины, состоящих только из нулей.

4. Двоичный код должен позволять обнаруживать и исправлять заданное количество ошибок.

Информация в двоичном коде, имеющем структуру, которая удовлетворяет описанным выше требованиям, кодируется путем комбинирования полей различной длины, состоящих из нулей и разделенных между собой единицами.

Введем следующие обозначения. Пусть

A = {ai, a2,..., an} — первичный алфавит с n качественными признаками; B = {0,1} — вторичный алфавит; K — множество всевозможных кодовых комбинаций длины L символов вторичного алфавита. Количество элементов множества K можно

оценить как |к| = 2L. Каждая кодовая комбинация

Kj єK имеет вид Kj = bib2 ...bL, bj єB .

Структуру кодовых комбинаций, исходя из сформулированных выше требований, представим в виде

P11P21P3 . . Pq 1Pq+b (1)

где Pj = {0,0,... 0}, |Pj| > 2, i = 1,..., q +1. Количество единиц в каждой кодовой комбина-

q+1 |

ции можно выразить как L - Z pj. Кодовое рас-

i=1

стояние между парой кодовых комбинаций

Kj,Kj є K обозначим d(Kj,Kj).

Таким образом, из множества всех возможных кодовых комбинаций K необходимо выделить под-

множество K* е K, содержащее не менее n элементов, которые удовлетворяют требованиям 1-4. При этом следует стремиться к минимальной длине кодовых комбинаций.

Математическая постановка задачи с учетом введенных обозначений и установленных требований к кодовым комбинациям 1-4 имеет вид

L( n) —— mm, (2)

где L -- длина последовательностей вида

b^2...bL єK* е K, bj єB, i = 1,..., L, (3) имеющих структуру (1):

K

q+1 L - Z

j=1

Pj

q+1

= L - Z

j=1

> n,

Pj1 VKj,Kl е K*

Pj > 2 Vj = 1,2,..., q + 1

j0

VKj єK 3jQ, j0 є {1,2,...,q +1}:

d(Kj,Kj)> d0 VKj,Kj є K

‘ j0

(4)

(5)

(6)

(7)

(8)

Сформулированная задача (2) - (8) представляет собой задачу оптимизации. Однако отсутствие аналитического вида зависимости L( n) и сложность системы ограничений не позволяют применить для ее решения известные методы оптимизации.

Схему решения задачи представим в следующем виде. Задавшись начальным значением длины кодовых комбинаций L, построим кодовые комбинации, удовлетворяющие требованиям 1 - 3. Затем, пользуясь сформулированным ниже критерием, попытаемся выбрать подмножество K* из n комбинаций с минимальным кодовым расстоянием d0. Если это возможно, задача решена. В противном случае увеличим длину кодовых комбинаций L и, возможно, количество единиц q в структуре (1) и вернемся к начальному этапу решения задачи.

Опишем процесс построения кодовых комбинаций. Зная их длину L, а также количество единиц

в структуре комбинаций (1) q, распределим L - q

нулей по полям P1,P2 , . ,Pq+1. Учтем при этом, что

количество нулей в каждом поле Pj должно быть не менее двух, а длины по крайней мере двух полей в каждой кодовой комбинации должны совпадать. Отметим также, что различные кодовые комбинации образуются как перестановками полей

P1, P2 ,. ., Pq+1, так и изменением их длин, исходя q+1

из того, что Z Pj = M = L - q . Из сказанного j=1

следует, что задачу построения множества полей

{P1,P2,...,Pq+1} , сумма длин которых равна M , можно свести к известной комбинаторной задаче о разбиении числа M на слагаемые [2]. При этом должны быть приняты ограничения, что в каждой сумме из q + 1 слагаемого должно быть не менее двух одинаковых слагаемых и величина каждого из них должна быть не менее двух. Как следует из [2], общее количество способов представления N числа M в

виде суммы q + 1 слагаемого равно:

N

Cq+1 CM

Cq+1 '-'M+q

(M + q)!

(M - 1)(q + 1)! .

В эти N способов входят и суммы, содержащие одно или несколько нулевых слагаемых. Нулевые

слагаемые соответствуют полям Pj нулевой длины. В нашем случае в каждой кодовой комбинации допустимо единственное поле нулевой длины, стоящее на первом месте, поскольку предыдущая кодовая комбинация оканчивается полем нулей, и требование 2 оказывается выполненным.

По тем же причинам допустимым является и

единственное поле Pj длиной 1, стоящее в начале кодовой комбинации. Однако поле как нулевой, так и единичной длины может быть применено только

в случае, когда общее количество нулей Pj не менее четырех.

РИ, 1998, № 3

67

Разбиения числа M на суммы из q + 1 слагаемого получим с помощью известного для такой задачи рекуррентного соотношения [2]. Пусть необходимо узнать, сколькими способами можно разбить

число M на слагаемые ki,k2,...,km. Обозначим

через F(M) количество таких способов. Тогда F(M) = f(m - k1) + F(M - k2)+...+

+ f(m - km).

(9)

При этом слагаемые ki,k2,...,km различны, а каждое из них в сумме может повторяться неограниченное число раз. Способы считаются различными, если слагаемые или их порядок в сумме различаются.

Значения F(М) для малых M могут быть легко подсчитаны.

В рассматриваемом случае в качестве слагаемых

выступают длины полей P1 ,P2 ?...,Pq+1. Допусти-

мые значения длин полей -- 2,3,..., h < М . В силу

того, что суммарная длина всех полей Pj равна М , длина каждого поля может быть оценена сверху, по крайней мере величиной М . Пользуясь рекуррентным соотношением (9), будем строить разбиение числа М на допустимые слагаемые, причем будем

рассматривать только суммы из q + 1 или q ненулевых слагаемых (во втором случае добавим q + 1 -е слагаемое, равное 0, соответствующее первому полю нулевой длины). Учитывая требование двух полей Pj одинаковой длины в каждой кодовой комбинации, будем считать допустимыми только суммы с двумя одинаковыми слагаемыми. Таким образом, в нашем случае

F( М) = F( М - 1) + F( М - 2)+...+

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

+ F(M - М). (9)

Каждое из слагаемых далее снова представим в виде суммы допустимых значений длин полей в соответствии с соотношением (9'). В результате такой конечношаговой процедуры будут получены всевозможные представления М в виде сумм допустимых слагаемых. Из всех сумм выберем те, которые состоят из q + 1 и q слагаемых. К суммам из q слагаемых добавим первое, равное нулю. Таким образом, получим упорядоченные наборы длин полей

P1,P2 , . ,Pq+1 в создаваемых кодовых комбинациях структуры (1), а значит и сами кодовые комбинации, удовлетворяющие требованиям 1-3.

Чтобы выполнить требование 4, касающееся возможности обнаружения и исправления ошибок, необходимо внести в код избыточность, которая определяется увеличением минимального кодового расстояния. Общее выражение для определения кодового расстояния в случае одновременного обнаружения и исправления ошибок имеет вид [3]

d = r + s + 1 , (10)

где r — число обнаруживаемых ошибок; s — число исправляемых ошибок; d — количество символов, в

которых одна кодовая комбинация должна отличаться от другой (d не должно превышать минимального кодового расстояния).

Известно, что увеличить кодовое расстояние между комбинациями можно за счет увеличения их длин L и количества единиц q в структуре (1). Если набор кодовых комбинаций, построенный по описанной выше процедуре и удовлетворяющий требованиям 1-

3, содержит подмножество K* комбинаций с минимальным кодовым расстоянием dp > d, где d определяется из соотношения (10), а количество

элементов в нем

> n , то необходимо выделить

K*, пользуясь каким-либо правилом. В противном случае следует увеличить значения L и q и вновь строить кодовые комбинации, удовлетворяющие требованиям 1-3.

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

Утверждение 1. В равномерном двоичном коде с одинаковым количеством единиц q в каждой кодовой комбинации кодовое расстояние между любыми двумя кодовыми комбинациями x и у является четным числом.

Доказательство. Кодовое расстояние d(x,y) между двумя кодовыми комбинациями x и y двоичного

кода можно определить как количество разрядов xi

и yi, для которых сумма по модулю 2 равна 1. Общее число единиц в двух кодовых комбинациях x и y

равно 2 q . Поэтому кодовое расстояние в рассматриваемом коде можно оценить сверху числом 2 q .

Предположим противное по отношению к утверждению 1. Пусть для некоторых комбинаций x и y кодовое расстояние нечетно и равно 2p + 1, т.е.

d(x,y) = S(xi 0 yi) = 2p + 1. i=1

Каждая пара (xi , yi), определяющая слагаемое суммы, может иметь либо совпадающие значения xi

и yi, и тогда их сумма по модулю 2 равна 0, либо различные, и их сумма по модулю 2 равна 1. Рассмотрим несовпадающие по значениям xi и yi, пары (xi , yi). Поскольку множество совпадающих

пар (xi , yi), где xi = yi =1, содержит одинаковое количество единиц из каждой кодовой комбинации, то и множество несовпадающих по значениям xi и yi пар также содержит одинаковые количества единиц

68

РИ, 1998, № 3

в значениях Xj и yj. Другими словами, на каждую пару (Xj , yj) вида (0,1) приходится пара (1,0). Так как для таких пар Xj Ф yj = 1 ,то сумма по всем

таким парам—четное число 2. Нечетная сумма 2р + 1 может получиться лишь в случае, когда пар какого-либо вида (1,0) или (0,1) на одну больше, чем другого. Но это может быть только при неодинаковом количестве единиц в кодовых комбинациях x и у , что противоречит условию утверждения 1.

Утверждение 2. Для того чтобы минимальное

кодовое расстояние dp в равномерном двоичном

L - разрядном коде с одинаковым числом единиц q в каждой кодовой комбинации было не менее

2Р( Р < q), необходимо и достаточно, чтобы для любых двух кодовых комбинаций x и у выполнялось следующее условие. В каждой из комбинаций x и у должно быть не менее р единиц, расположенных таким образом, чтобы на соответствующих местах во второй комбинации находились нули.

Доказательство. Необходимость.

Пусть кодовое расстояние между некоторыми двумя кодовыми комбинациями x и у больше или

равно 2Р(Р < q):

d(x,y)=Z(xj ф yj)> 2Р . (11)

j=1

Из определения операции сложения по модулю 2 следует, что ее результатом является 0, если слагаемые совпадают, и 1, если они различны. Поэтому из выполнения условия (11) следует, что не менее 2 Р

пар (xj; yj) имеют вид (1,0) и (0,1). В каждой из кодовых комбинаций x и y имеется не менее Р единиц, расположенных в таких позициях, что на соответствующих местах в другой комбинации располагаются нули.

Достаточность. Пусть условие выполнено для любых кодовых комбинаций x и y. Тогда по

определению кодового расстояния, учитывая утверждение 1 и наличие не менее 2 Р пар (xj; yj) вида (0,1) и (1,0), приходим к тому, что сумма (11) для этих комбинаций > 2Р.

Сформулированные утверждения завершают изложение схемы решения задачи (2)-(8).

Минимально возможная длина кодовых комбинаций при выполнении условий 1-4 может быть достигнута путем логических рассуждений и построения оценок длины в конкретных случаях.

Рассмотрим некоторые примеры применения описанной схемы.

Пусть первичный алфавит A состоит из десяти цифр:

A = {0,1,2,3,4,5,6,7,8,9} .

Построим вначале код с минимальной длиной кодовых комбинаций, удовлетворяющий условиям 1-3. Из них следует, что каждая кодовая комбинация

должна содержать минимум три поля Pj, разделенных двумя единицами. Структура кодовой комбинации (1) в этом случае такова:

P1IP2IP3. (12)

В структуре (12) два поля Pj имеют одинаковую длину. Длина оставшегося третьего поля не совпадает с длинами первых и определяется длиной L кодовых комбинаций, которая будет рассчитана далее. Для кодирования первичного алфавита A необходимо построить десять комбинаций. Пусть

PI = Р| = 2, р| > 2 .

Существует три различных комбинации в рамках структуры (1), в которых поле P3 ставится последовательно на первое, второе и третье место. Еще по три комбинации добавится, если длины полей P1, P2, P3 будут:

P = IP2I = 3, |p3 | ф 3;

W = ІР2І = 4, N ф 4;

P = PI = 5, Р| ф 5.

Итого 12 кодовых комбинаций, удовлетворяющих требованиям 1-3. Вычислим длину поля P3 для каждого из случаев. Исходя из структуры (12) и самой большой длины полей P1 и P2 , определим

длину поля P3 минимально возможной р | = 2 . Тогда длина кодовых комбинаций L может быть вычислена как сумма длин полей Pj и двух единиц: L = 5 + 5 + 2 + 2 = 14.

Теперь длина поля P3 может быть вычислена для каждого из значений р| = р| как разность

14 - 2 - P - р|.

Имеем:

P = р| = 2, р| = 8,

P = Р| = 3 , р| = 6,

PI = PI = 4, р| = 4,

P = Р| = 5, р| = 2.

Поскольку в одном из случаев оказалось, что

P = р| = р| = 4 , то при таких значениях длин

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

РИ, 1998, № 3

69

1) [0 0 1 0 0 1 0 0 0 0 0 0 0 0];

2) [0 0 1 0 0 0 0 0 0 0 0 1 0 0];

3) [0 0 0 0 0 0 0 0 1 0 0 1 0 0];

4) [0 0 0 1 0 0 0 1 0 0 0 0 0 0];

5) [0 0 0 1 0 0 0 0 0 0 1 0 0 0];

6) [0 0 0 0 0 0 1 0 0 0 1 0 0 0];

7) [0 0 0 0 1 0 0 0 0 1 0 0 0 0];

8) [0 0 0 0 0 1 0 0 0 0 0 1 0 0];

9) [0 0 0 0 0 1 0 0 1 0 0 0 0 0];

10) [0 0 1 0 0 0 0 0 1 0 0 0 0 0].

Минимальное кодовое расстояние dp в построенном коде равно двум, т.е. код позволяет обнаруживать одиночные ошибки. Попытаемся сократить длину кодовых комбинаций, оставаясь в рамках требований 1-3. Для этого изменим структуру кодовых комбинаций, рассматривая ее в виде

P1IP2IP3IP4. (13)

Минимальная длина кодовой комбинации структуры (13) равна 11 (3 единицы + 4 поля Pj длиной 2). Однако такая комбинация единственна. Если одно из полей Pj будет иметь длину 3, это породит 4 комбинации длиной 12, что недостаточно для кодирования 10 цифр. Построим код, имеющий структуру кодовых комбинаций (13) и длину L = 13. Количество единиц в структуре (13) q = 3 , количество нулей M = 10 . Пользуясь рекуррентным соотношением (9'), получим всевозможные разбиения числа 10 на суммы трех и четырех слагаемых, среди которых содержатся по два одинаковых:

(2 2 3 3); (2 2 2 4); (2 2 6); (3 3 4); (2 4 4); (1 3 3 3);

(2 3 2 3); (2 2 4 2); (2 6 2); (3 4 3); (4 2 4); (1 2 2 5);

(2 3 3 2); (2 4 2 2); (6 2 2); (4 3 3); (4 4 2); (1 5 2 2);

(3 2 2 3); (4 2 2 2); (1 2 5 2);

(3 2 3 2);

(3 3 2 2).

Всего допустимых разбиений получено 23. Соответствующие им двоичные коды имеют вид

1) [0 0 1 0 0 1 0 0 0 1 0 0 0];

2) [0 0 1 0 0 0 1 0 0 1 0 0 0];

3) [0 0 1 0 0 0 1 0 0 0 1 0 0];

4) [0 0 0 1 0 0 1 0 0 1 0 0 0];

5) [0 0 0 1 0 0 1 0 0 0 1 0 0];

6) [0 0 0 1 0 0 0 1 0 0 1 0 0];

7) [0 0 1 0 0 1 0 0 1 0 0 0 0];

8) [0 0 1 0 0 1 0 0 0 0 1 0 0];

9) [0 0 1 0 0 0 0 1 0 0 1 0 0];

10) [0 0 0 0 1 0 0 1 0 0 1 0 0];

11) [1 0 0 1 0 0 1 0 0 0 0 0 0];

12) [1 0 0 1 0 0 0 0 0 0 1 0 0];

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

13) [1 0 0 0 0 0 0 1 0 0 1 0 0];

14) [1 0 0 0 1 0 0 0 1 0 0 0 0];

15) [1 0 0 0 1 0 0 0 0 1 0 0 0];

16) [1 0 0 0 0 1 0 0 0 1 0 0 0];

17) [1 0 0 1 0 0 0 0 1 0 0 0 0];

18) [1 0 0 0 0 1 0 0 0 0 1 0 0];

19) [1 0 0 0 0 1 0 0 1 0 0 0 0];

20) [0 1 0 0 0 1 0 0 0 1 0 0 0];

21) [0 1 0 0 1 0 0 1 0 0 0 0 0];

22) [0 1 0 0 0 0 0 1 0 0 1 0 0];

23) [0 1 0 0 1 0 0 0 0 0 1 0 0].

Из полученных 23 кодовых комбинаций не удается выделить множества K* из 10 элементов с минимальным кодовым расстоянием больше 2, данный код позволяет обнаруживать единственную ошибку.

Можно ли построить код, удовлетворяющий требованиям 1-3, с кодовыми комбинациями меньшей длины? Очевидно, в рамках структур (12), (13) нельзя.

Если же рассматривать структуры кодовых комбинаций с большим числом единиц и/или полей Pj , то это приводит к возрастанию длины кодовых комбинаций. Проводя построения, аналогичные приведенным выше, легко показать, что длина комбинаций в коде, удовлетворяющем требованиям 1-3 и имеющем структуру 1Pi IP2 IP3 IP4 , будет не менее 14. В коде со структурой P11P21P31P41P5 минимальная длина кодовых комбинаций будет более 15.

Таким образом, двоичный код для кодирования десяти цифр, удовлетворяющих требованиям 1-3, с минимальной длиной кодовых комбинаций, равной 13, имеет структуру (13) и может быть составлен из любых 10 кодовых комбинаций, выбранных из полученных 23. Требование 4, касающееся возможности обнаружения и исправления ошибок, выполняется для предложенного кода лишь в том случае, когда требуется обнаруживать одну ошибку и не требуется их исправлений. Для выполнения требования 4 в более общем виде необходимо внесение в код большей избыточности. Пусть требуется при кодировании десяти цифр обнаруживать две и исправлять одну ошибку. В соответствии с соотношением (10) необходимо, чтобы минимальное кодовое расстояние в таком коде было равно 4.

Попытаемся получить такой код, оставаясь в рамках структуры (13) с q = 3 единицами и длиной кодовых комбинаций L = 14 . Пользуясь рекуррентным соотношением (9'), получим допустимые разбиения числа M = 11 на слагаемые. Всего таких разбиений 38:

1) (2 2 2 5); 11) (3 2 2 4); 21) (0 2 2 7); 31) (1 2 6 2);

2) (2 2 5 2); 12) (3 2 4 2); 22) (0 2 7 2); 32) (1 6 2 2);

3) (2 5 2 2); 13) (3 4 2 2); 23) (0 7 2 2); 33) (1 3 3 4);

4) (5 2 2 2); 14) (4 2 2 3); 24) (0 3 3 5); 34) (1 3 4 3);

5) (2 2 3 4); 15) (4 2 3 2); 25) (0 3 5 3); 35) (1 4 3 3);

6) (2 2 4 3); 16) (4 3 2 2); 26) (0 5 3 3); 36) (1 2 4 4);

70

РИ, 1998, № 3

7) (2 3 2 4); 17) (2 3 3 3); 27) (0 3 4 4); 37) (1 4 2 4);

8) (2 3 4 2); 18) (3 2 3 3); 28) (0 4 3 4); 38) (1 4 4 2).

9) (2 4 2 3); 19) (3 3 2 3); 29) (0 4 4 3);

10) (2 4 3 2); 20) (3 3 3 2); 30)(1 2 2 6); Приведенным наборам соответствуют следующие

38 двоичных кодовых комбинаций:

1) [0 0 1 0 0 1 0 0 1 0 0 0 0 0];

2) [0 0 1 0 0 1 0 0 0 0 0 1 0 0];

3) [0 0 1 0 0 0 0 0 1 0 0 1 0 0];

4) [0 0 0 0 0 1 0 0 1 0 0 1 0 0];

5) [0 0 1 0 0 1 0 0 0 1 0 0 0 0];

6) [0 0 1 0 0 1 0 0 0 0 1 0 0 0];

7) [0 0 1 0 0 0 1 0 0 1 0 0 0 0];

8) [0 0 1 0 0 0 1 0 0 0 0 1 0 0];

9) [0 0 1 0 0 0 0 1 0 0 1 0 0 0];

10) [0 0 1 0 0 0 0 1 0 0 0 1 0 0];

11) [0 0 0 1 0 0 1 0 0 1 0 0 0 0];

12) [0 0 0 1 0 0 1 0 0 0 0 1 0 0];

13) [0 0 0 1 0 0 0 0 1 0 0 1 0 0];

14) [0 0 0 0 1 0 0 1 0 0 1 0 0 0];

15) [0 0 0 0 1 0 0 1 0 0 0 1 0 0];

16) [0 0 0 0 1 0 0 0 1 0 0 1 0 0];

17) [0 0 1 0 0 0 1 0 0 0 1 0 0 0];

18) [0 0 0 1 0 0 1 0 0 0 1 0 0 0];

19) [0 0 0 1 0 0 0 1 0 0 1 0 0 0];

20) [0 0 0 1 0 0 0 1 0 0 0 1 0 0];

21) [1 0 0 1 0 0 1 0 0 0 0 0 0 0];

22) [1 0 0 1 0 0 0 0 0 0 0 1 0 0];

23) [1 0 0 0 0 0 0 0 1 0 0 1 0 0];

24) [1 0 0 0 1 0 0 0 1 0 0 0 0 0];

25) [1 0 0 0 1 0 0 0 0 0 1 0 0 0];

26) [1 0 0 0 0 0 1 0 0 0 1 0 0 0];

27) [1 0 0 0 1 0 0 0 0 1 0 0 0 0];

28) [1 0 0 0 0 1 0 0 0 1 0 0 0 0];

29) [1 0 0 0 0 1 0 0 0 0 1 0 0 0];

30) [0 1 0 0 1 0 0 1 0 0 0 0 0 0];

31) [0 1 0 0 1 0 0 0 0 0 0 1 0 0];

32) [0 1 0 0 0 0 0 0 1 0 0 1 0 0];

33) [0 1 0 0 0 1 0 0 0 1 0 0 0 0];

34) [0 1 0 0 0 1 0 0 0 0 1 0 0 0];

35) [0 1 0 0 0 0 1 0 0 0 1 0 0 0];

36) [0 1 0 0 1 0 0 0 0 1 0 0 0 0];

37) [0 1 0 0 0 0 1 0 0 1 0 0 0 0];

38) [0 1 0 0 0 0 1 0 0 0 0 1 0 0].

РИ, 1998, № 3

Применим к построенным двоичным кодовым комбинациям утверждение 2 и попытаемся выбрать из них десять комбинаций с минимальным кодовым расстоянием 4. Такие десять комбинаций существуют. Например, ими могут быть следующие ( их номера в списке 1, 11, 17, 19, 22, 24, 29, 30, 33, 38):

[0 0 1 0 0 1 0 0 1 0 0 0 0 0];

[0 0 0 1 0 0 1 0 0 1 0 0 0 0];

[0 0 1 0 0 0 1 0 0 0 1 0 0 0];

[0 0 0 1 0 0 0 1 0 0 1 0 0 0];

[1 0 0 1 0 0 0 0 0 0 0 1 0 0];

[1 0 0 0 1 0 0 0 1 0 0 0 0 0];

[1 0 0 0 0 1 0 0 0 0 1 0 0 0];

[0 1 0 0 1 0 0 1 0 0 0 0 0 0];

[0 1 0 0 0 1 0 0 0 1 0 0 0 0];

[0 1 0 0 0 0 1 0 0 0 0 1 0 0].

В заключение отметим, что пользуясь предложенным общим комбинаторным подходом к построению штриховых кодов, можно строить коды, удовлетворяющие достаточно широкому классу условий. Набор таких условий не исчерпывается сформулированными выше требованиями 1-4 и может быть существенно видоизменен.

Литература: 1. Березанский Р.Г., Голуб В.И. Метод и технические средства автоматической идентификации почтовых отправлений на основе применения штриховых кодов // Почтовая связь. Распространение печати. 1991. Вып.1. М.: ЦНТИ “Информсвязь”. С.75-78. 2. Виленкин Н.Я. Комбинаторика. М.: Наука, 1969. 328 с. 3. Цымбал В.П. Теория информации и кодирование. К .: Вища шк., 1992. 263 с. 4. ДСТУ 3144-95 Коды и кодирование информации. Штриховое кодирование. Термины и определения. 5. ДСТУ 3145-95 Коды и кодирование информации. Штриховое кодирование. Общие требования. 6. КНД 50-051-95 Коды и кодирование информации. Штриховое кодирование. Применение штриховых кодов.

Поступила в редколлегию 07.09.98 Рецензент: д-р техн. наук Нефедов Л.И.

Голуб Владимир Иванович, директор инженерного центра УОПС “УКРПОЧТА”. Научные интересы: автоматизированные системы в почтовой связи. Адрес: Украина, 252001, Киев, Крещатик, 22, тел. (044) 229-91-41, (044) 276-01-84.

Гребенник Игорь Валериевич, канд. физ.-мат. наук, доцент кафедры системотехники ХТУРЭ. Научные интересы: дискретная оптимизация. Адрес:Украина, 310726, Харьков, пр.Ленина, 14, тел. 40-93-06, 69-69-47.

Кузьменко Виктор Михайлович, канд. техн. наук, доцент, профессор кафедры системотехники ХТУРЭ. Научные интересы: математическое и имитационное моделирование технологических процессов. Адрес: Украина, 310726, Харьков, пр.Ленина, 14, тел. 40-93-06.

71

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