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

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

CC BY
152
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЩЕРОССИЙСКИЕ КЛАССИФИКАТОРЫ / КОДЫ / КОНТРОЛЬНОЕ ЧИСЛО / МОДУЛЬ / ВЕСОВЫЕ КОЭФФИЦИЕНТЫ / ВЗВЕШЕННАЯ СУММА / RUSSIAN CLASSIFICATIONS / CODES / CONTROL NUMBER / MODULE / WEIGHTING COEFFICIENTS / WEIGHTED SUM

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

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

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

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

МАТЕМАТИЧЕСКОЕ ОБОСНОВАНИЕ АЛГОРИТМА КОНТРОЛЯ ПРАВИЛЬНОСТИ КОДОВ, УСТАНОВЛЕННЫХ В ОБЩЕРОССИЙСКИХ КЛАССИФИКАТОРАХ

Саков А.А., д.э.н., доцент, директор департамента общероссийских классификаторов технико-экономической и социальной информации Российского научно-технического центра информации по стандартизации, метрологии и оценке соответствия (ФГУП

«СТАНДАРТИНФОРМ»»

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

Ключевые слова: общероссийские классификаторы; коды; контрольное число; модуль; весовые коэффициенты; взвешенная сумма.

MATHEMATICAL PROOF OF CONTROL ALGORYTHM FOR CODE ACCURACY USED IN RUSSIAN CLASSIFICATORS

Sakov A., doctorate degree in economic sciences, associate professor, head of the department of Russian classifications of technical, economical and social information at Russian scientific and technical centre for information on standardization, metrology and conformity

assessment (FGUP «STANDARTINFORM.»)

The article is devoted to describing the control algorithm for code accuracy used in Russian classifications and providing mathematical proof using sets theory.

Keywords: Russian classifications, codes, control number, module, weighting coefficients, weighted sum.

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

Для контроля правильности кодов в соответствии с Правилами стандартизации ПР 50.1.024-2005 «Основные положения и порядок проведения работ по разработке, ведению и применению общероссийских классификаторов» [1] используется алгоритм, приведенный в следующей методике расчета контрольного числа.

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

Контрольное число для кода представляет собой остаток от деления полученной суммы на модуль «11». При этом контрольное число должно иметь один разряд, значение которого находится в пределах от 0 до 9.

Если получается остаток, равный 10, то для обеспечения одноразрядного контрольного числа проводится повторный расчет с применением последовательности весов, сдвинутой на два разряда влево (3, 4, 5, ...).

Если и в случае повторного расчета остаток от деления вновь сохраняется равным 10, то значение контрольного числа проставляется равным «0». Например, применительно к Общероссийскому классификатору продукции (ОКП), код в котором составляет шесть десятичных цифр, расчет контрольного числа осуществляется следующим образом.

Код ОКП 5 6 2 8 2 1

Вес разрядов 1 2 3 4 5 6

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

5х1 + 6х2 + 2х3 + 8х4 + 2х5 + 1х6 = 71 (1)

Остаток от деления полученной суммы на модуль «11» равен 5:

71 : 11 = 6 (5) (2)

Контрольное число для данного кода по модулю «11» равно 5.

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

Несмотря на то, что данная методика применяется уже много лет, по её содержанию постоянно возникают вопросы. Поэтому в данной статье приводится математическое обоснование алгоритма, представленного в методике, приведенной в [1].

Выражения (1) и (2) в общем случае можно записать в виде

й Ь - пт = Ь (3)

I=1

В выражении (3) в - длина кода, ^ ... - цифры, соответствующие ьм разрядам кода, Ь ... - весовые коэффициенты, соответствующие ьм разрядам кода, п - модуль, т - целое число, включая ноль, Ь - остаток от деления взвешенной суммы цифр кода на модуль.

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

Обозначим указанные классы через

А0"Л"Л"Л-1

(4)

Здесь для А0 b=0, для А b=k, для А b=l, для А п х b=n-1.

Величины й., Ь., п, т, Ь из (3) также будут принадлежать к вполне определенным классам (4), причем не обязательно различным. Например, ^=5 попадает в класс А5 = Ь7=7 попадают в класс Аг Перейдем от операций над элементами (3) классов к операциям над

самими классами (4) как над некоторыми множествами.

Эти операции введем следующим образом.

1. Сложение:

2. Вычитание:

3. Умножение:

АкА1 = Аь, к1 - тп = Ь ,о < Ь < п -1 (7)

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

С учетом введенных операций (5), (6), (7) для классов (4) аналогично (3) можно записать:

X А й, А ^ = А (8)

/=1

Например, для кода 34 2874 и весовых коэффициентов 1, 2, 3, 4, 5, 6 соотношение (8) можно записать в виде:

А3А1 + А4А2 + А2А3 + А8А4 + А7А5 + А4А6 = А,

Следовательно, указанный код в (4) относится к классу А,, что согласуется со значением остатка Ь=9, вычисленным для кода 34 2874 по формуле (3).

Для выявления ошибки в коде в соотношении (8) должен измениться остаток Ь, т.е. сумма в (8) должна перейти в (4) из одного класса в другой.

Наиболее распространенной ошибкой, связанной с человеческим фактором, является изменение цифры в одном разряде кода.

Например, вместо правильного кода 29 5316 записано 29 5816. В результате такой ошибки одно из слагаемых в выражении (8) должно перейти из некоторого класса А1 в класс А1, и, следовательно, вся сумма выражения (8) перейдет в другой класс. Пусть в этом слагаемом весовой коэффициент И. £ Ак, неискажённая цифра кода ё^А1, искаженная цифра кода сР 1^А[

Тогда не должно выполняться следующее равенство

Ак а=а1 а1,

или

А (А1 - А1") = А0- (9)

Равенство (9) нарушается, если каждый сомножитель в левой части (9), а также их произведение не равны нулю (Ао).

Чтобы Ак ф Ао, любой весовой коэффициент не должен быть равен нулю (или кратен модулю).

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

Второй сомножитель в равенстве (9) не будет равен нулю, если А ф Аг, т.е. искаженные и неискаженные цифры разрядов кода всегда окажутся в разных классах. При цифровых десятичных кодах разряды в коде могут принимать любое значение от 0 до 9 включительно, т.е. в (4) должно быть не менее 10 различных классов, а, следовательно, модуль должен быть больше 10. Модуль не может быть равным 10, так как 10 - число не простое. Ближайшим простым числом, большим 10, является 11, которое и должно быть принято в качестве модуля. Использование в качестве модуля следующих после 11 простых чисел, например 13, при однозначном контрольном числе приводит к нежелательному появлению новых двузначных остатков 11 и 12.

Отметим также, что при значении модуля меньше 10 (например, п = 7) и при искажении в разряде кода, заключающемся в замене цифры 2 на цифру 9, ошибка не будет обнаружена, так как обе цифры относятся к одному и тому же классу А2 (по модулю п = 7). Например, при использовании модуля п = 7 и весовых коэффициентов 1, 2, 3, 4, 5, 6 для правильного кода 56 2321 и искаженного кода 56 2391 остаток, вычисленный по (3), получается равным 2 и ошибка не обнаруживается.

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

Для нахождения дополнительных требований к весовым коэффициентам предположим, что произошла ошибка, заключающаяся в перестановке цифр, находящихся на 1-м и _]-м разрядах кода. Например, вместо правильного кода 394516 записано 354916.

В этом случае для выявления ошибок необходимо, чтобы сумма произведений весовых коэффициентов и цифр на 1-м и _]-м разрядах

кода после искажения переходила в другой класс в (4).

Пусть на 1-м и _]-м разрядах кода весовые коэффициенты

кг А ик £ А £ . цифры разрядов кода с1. £ А ^ и с1 £ А £ . , тогда не должно выполняться равенство

A, A / + A k . A /.= A , A /. + A k.A / ki kJ /J ki /J kJ /i

(A kt - Akj XA/і - A/, )=A0 ■

(10)

В общем случае А ^ фА I . , поэтому чтобы равенство (10) не выполнялось, требуется в дополнение к условиям, перечисленным

выше, принять еще одно условие:

А = А

* Л- (11)

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

При этом следует учитывать, что каждый из классов в (4) содержит много чисел, равнозначных с учетом выражения (8) при их использовании в качестве весовых коэффициентов. Например, для модуля п = 11 одинаковый результат дает выбор в качестве весового коэффициента 100 или 1, поскольку они оба относятся к классу АДт.е. дают при делении на 11 в остатке 1).

С этих позиций рассмотрим код как некоторое десятичное число и представим его в виде суммы согласно равенству (8).

Например,

4832 = 103 4 + 102.8 + 101.3 + 1.2.

В этом равенстве весовые коэффициенты равны

; 103 h2 = 102 , Из = 10, h4 = 1

Для модуля п = 11: Ь = 103 в остатке дает 10, Ь2 = 102 в остатке дает 1, Ь3 = 10 в остатке дает 10, Ь4 = 1 в остатке дает 1.

Это означает, что непосредственное деление на модуль десятичного числа, соответствующего коду, эквивалентно построению суммы согласно равенству (8) с набором весовых коэффициентов 10, 1, 10, 1, ..., которые, однако, не удовлетворяют условиям (11).

Например, при записи вместо правильного кода 4832 искаженного кода 5822 и их непосредственном делении на модуль п = 11 остаток получается одинаковым (Ь = 3), т.е. ошибка не обнаруживается. Поэтому для вычисления контрольного числа и предусмотрен специальный алгоритм, реализованный выражениями (1) и (2).

Если обозначить максимально допустимую длину кода через Т, то из условия (11) принадлежности коэффициентов для всех разрядов различным классам (4) следует, что должно выполняться неравенство:

Т < п-1 (12)

Условие (12) означает, что при модуле п = 11 и однозначном контрольном числе максимальная длина кода, защищаемого от ошибок, может быть не более 10.

Кроме того, важно обратить внимание на то, что при выборе модуля п = 11 двузначное контрольное число получается только в одном случае, когда Ь= 10. Поэтому для обеспечения однозначного контрольного числа необходимо исключить этот случай. В частности, в принятой для общероссийских классификаторов методике расчета контрольного числа [1] рекомендуется проводить повторный расчет контрольного числа с последовательностью весовых коэффициентов, сдвинутой на два разряда влево.

Рассмотрим, для каких кодов это не дает желаемого результата.

Равенство (8) применительно к ОКП, в котором длина кода равна 6, можно записать в виде:

А1 А й 1 + А 2 А й2 +...+А 6А й6= АЬ (13)

После сдвига последовательности весовых коэффициентов на два разряда влево получаем:

А з А й 1 + А 4 А й2 +...+А 8 А й6 = АЬ' (14)

Контрольные числа будут одинаковы, если правые части в равенствах (13) и (14) будут равны, т.е. Аь = А ь ». В^гчитая из равенства

(14) равенство (13), получаем:

или

hi

(А з- А1) А й 1 + (А 4- А 2) А й 2 +...+(А 8- А 6) А й 6 = А 0

с учетом операции (6) имеем

A 2(A d x + A d2 +...+ A d6 )=A 0

или

Условие (15) означает, что при применении основной и сдвинутой последовательности весовых коэффициентов контрольное число не изменяется, если сумма цифр разрядов кода равна или кратна модулю.

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

Например, для кода 19 6240, сумма цифр которого делится на 11, контрольное число равно 10 как для основной, так и для сдвинутой на два разряда влево последовательности весов. Условие (15) следует использовать при необходимости исключения кодов, для которых получается двузначное контрольное число, равное 10.

Заменяя (14) на

A 2 A d х + A з A d2 +...+A 7 A d6 = Ab"

или на

А4 А Лх + А5 А+-+А9 А d6 - Аь

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

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

Литература:

1. Основные положения и порядок проведения работ по разработке, ведению и применению общероссийских классификаторов // Правила стандартизации ПР 50.1.024-2005. - М.: СТАНДАРТИНФОРМ, 2006. - 34 с.

ОСНОВНЫЕ ПРИНЦИПЫ ОЦЕНКИ ЭФФЕКТИВНОСТИ ИНВЕСТИЦИЙ В ИННОВАЦИОННЫЕ ПРОЕКТЫ

Быстров С.А., д.э.н.

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

Ключевые слова: принцип; оценка; эффективность; инвестиции; инновации; проект.

BASIC PRINCIPLES OF EVALUATING THE EFFECTIVENESS OF INVESTMENTS IN INNOVATIVE PROJECTS

Bystrov S., doctorate degree in economic sciences

The article classifies the basic principles of evaluating the effectiveness of investments into innovative projects, reveals their contents as well as proves the necessity of complex usage of these principles in assessing projects of innovative character.

Keywords: principle; evaluation; effectiveness; investments; innovation; project.

Не смотря многообразие условий реализации, анализ и оценка эффективности инвестиций в инновационные проекты осуществляются на основе единых принципов. Анализ показывает, что в современной научной литературе, как правило, выделяют три группы принципов [1, 2]:

1) методологические, т.е. наиболее общие, обеспечивающие при их применении рациональное поведение экономических субъектов независимо от характера и целей проекта;

2) методические, обеспечивающие экономическую обоснованность оценок эффективности проектов и решений, принимаемых на их основе;

3) операциональные, соблюдение которых облегчит и упростит процедуру оценок эффективности проектов и обеспечит необходимую точность оценок.

Основными методологическими принципами являются: 1) измеримость; 2) сравнимость; 3) выгодность; 4) согласованность интересов; 5) платность ресурсов; 6) неотрицательность и максимум

эффекта; 7) антисимметричность; 8) системность; 9) комплексность.

К числу методических принципов относят: 1) сравнение ситуаций «с проектом» и «без проекта»; 2) уникальность; 3) субоптимизация; 4) неуправляемость прошлого; 5) динамичность; 6) временная ценность денег; 7) неполнота информации; 8) структура капитала; 9) многовалютность.

Среди операциональных принципов различают следующие: 1) взаимосвязь параметров; 2) моделирование; 3) организационно-экономический механизм реализации проекта; 4) многостадийность; 5) информационная и методическая согласованность; 6) симпли-фикация.

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

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