А  Б  В  Г  Д  Е  Ж  З  И  Й  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч  Ш  Щ  Э  Ю  Я  A-Z

 

m=S/7 – ширина модуля знака символа,
Итак, алгоритм декодирования, изложенный ГОСТом, предписывает следующие действия:
1. Измерение ширины знака S;
2. Определение ширины модуля m=S/7;
3. Измерение величин e1, e2, в1, в2; где в1 и в2 – ширина штриховых элементов знака;
4. Определение отношений e1/m; e2/m; (в1+ в2)/m[951];
5. Определение параметров Е1 и Е2 – в зависимости от того, в какой интервал попадают значения e1/m и е2/m;
6. Определение знака данных по табл.4.10 по параметрам Е1 и Е2. В некоторых случаях необходимо использовать дополнительный параметр («вторичный детерминант») (в1+в2)/m.
На эту последовательность действий мы будем ссылаться в дальнейшем следующим образом: «п... Алгоритма»
Ошибка или…?
Что же сделали авторы рассматриваемого исследования? Решив сравнить результаты декодирования вспомогательных знаков и знака цифры "6" с одинаковой шириной модуля m=1, они сразу обратились к п. З Алгоритма. Заметив, что далее при декодировании использовались только два измеренных значения – расстояния e1 и е2, авторы сделали такой вывод: «для распознавания используется толькоширина обоих штрихов знака и пробела между ними. Все пробелы, подчеркиваем – все, находящиеся за пределами этих двух штрихов, составляющих знак, просто игнорируются алгоритмом распознавания! Следуя ГОСТу…, подсчитывается параметр e1, равный расстоянию от передней кромки первого штриха до передней кромки второго штриха знака; параметр е2, равный расстоянию от задней кромки первого штриха до задней кромки второго штриха; иногда еще требуется сумма ширин первого и второго штрихов»; и что имеет значение только "знак «штрих-пробел-штрих» (все – шириной в один «модуль»[952] ); количество пробелов справа и слева от знака – по вкусу (они все равно не участвуют в декодировании)".
Далее авторы для знака цифры "6" и для вспомогательных знаков при m=1 (не объяснив, как они получили это значение) выполнили все действия, предусмотренные Алгоритмом, начиная с п. З, и получили для всех знаков: e1=2; e2=2; Е1=2; Е2=2. По табл.4.10 определили значение знака данных: "6" – одно и то же и для всех знаков, и сделали вывод: алгоритм декодирования ГОСТа единственным образом распознает вспомогательные знаки как цифру "6". Этот результат они и ожидали получить в соответствии со своим общим (и ошибочным) выводом: «все пробелы, лежащие за пределами трех элементов знака Ш П Ш игнорируются алгоритмом декодирования».
В чем же ошибка приведенных выше рассуждений?
Авторы упоминают только e1 и е2, но ведь для декодирования необходимо знать их относительные значения: e1/m и е2/m. А для их определения необходимо знать значение ширины модуля m. Но как его узнать? Это же не универсальная константа вроде постоянной Планка. Ширина модуля разная не только для разных этикеток со штрих-кодом – она меняется даже в пределах одного и того же символа за счет искажений, возникающих при считывании его сканером (например, если этикетка находится на цилиндрической поверхности), и даже в пределах одного и того же знака символа. Но в этом последнем случае считают, что на протяжении знака она меняется незначительно, и полагают m=S/7, где S – ширина информационного знака символа, состоящего из 7 модулей. И такое определение m в реальных считывающих устройствах проводится для каждого знакасимвола[953]. Оно предусмотрено и алгоритмом декодирования ГОСТа (при вычислении базовых пороговых значений). Таким образом, для декодирования информационного знака символа существенно необходимо знать общую ширину знака, которая определяется всемиштрихами и пробелами, образующими знак.
Приведем пример. Пусть нам встретился знак из трех элементов «штрих-пробел-штрих», в котором все элементы –равной ширины, а ширина поля пробелов справа или слева от этого трехэлементного знака неизвестна. Как он будет декодирован? Для декодирования нужно определить, сколько модулей укладывается в расстояниях e1 и е2, а для этого необходимо знать ширину одного модуля. Но ее можно определить только тогда, когда виден весь знак в целом, со всеми принадлежащими ему пробелами. Если рядом будет пробел с шириной в четыре раза большей, чем ширина каждого из упомянутых элементов, то ширина модуля будет равна ширине каждого элемента; при этом e1/m=e2/m=2, и знак будет декодирован как "6". Если же рядом будет пробел шириной в половину ширины элемента, то модуль будет вдвое уже каждого элемента; при этом e1/m=e2/m=4, и знак будет декодирован как "1".
Итак, утверждение авторов, что пробелы, окружающие трехэлементный знак, игнорируются алгоритмом декодирования, ошибочно – от ширины этих пробелов существенно зависит результат декодирования.
Что же привело авторов исследования к ошибке? Об этом можно лишь догадываться. Может быть, некорректная запись: е1=Е1 и е2=Е2 (нельзя ставить знак равенства между размерной и безразмерной величинами даже если они численно равны). Может быть, то, что авторы свои рассуждения начали с п. З Алгоритма, не показав, как же все-таки они получили значение m=1. Может быть, то, что они отбросили часть процедуры декодирования, связанную с определением «базовых значений RT», не заметив, что она важна не только как задающая некоторые интервалы при наличии всевозможных неточностей, но и как устанавливающая (и это очень важно) масштаб, задающая единицу длины S/7, в которой и выражаются расстояния e1 и е2. Так или иначе, ученые специалисты забыли о величине m и о том, что ее необходимо измерять.
Тем не менее, они получили определенный результат, как будто действительно игнорируя пробелы: «все вспомогательные знаки алгоритмом ГОСТа декодируются как шестерки». Как это могло быть? Теперь-то мы, наконец, приступаем к главной «тайне» исследования, скрываемой его авторами: какие же все-таки знаки они сначала начертали в тетрадке для арифметики, а потом декодировали? Попробуем восстановить пропущенное авторами: п.1 и п.2 Алгоритма.
Тайна исследования ученых – специалистов
Известно следующее:
1. В знаке содержится последовательность элементов равной ширины: «штрих-пробел-штрих» («трехэлементный знак»).
2. Ширина каждого элемента равна одному модулю знака.
3. Ширина модуля знака m=1.
4. Авторы декодировали знак в соответствии с п.4.6 ГОСТа.
Поскольку авторы действовали по ГОСТу, они должны были измерить ширину знака S и поделить ее на 7, определив ширину модуля знака m. Результат деления они сообщили: m=1. Какова же была ширина знака S? Так как m=S/7, то S=m*7. При m=1 S=7! Это означает, что знак, который декодировали ученые – специалисты, состоял из следующей последовательности штрихов и пробелов (все – шириной в один модуль): «Ш П Ш П П П П». А это, в соответствии с табл.4.1 ГОСТа, – знак цифры "6". Таким образом, авторы, пририсовав «по вкусу» к типовому знаку-ограничителю четыре пробела, подменили его знаком шестерки. В результате декодирования знака шестерки получилась, конечно, шестерка.
Подобным же образом они, по-видимому, подменили и центральный знак-ограничитель: с одной стороны знака отбросили один пробел, с другой стороны пририсовали к знаку по вкусу три дополнительных пробела («они все равно не участвуют в декодировании»), получили знак шестерки, декодировали его и опять получили шестерку.
Нам могут возразить: «Для вспомогательного знака шириной S=3, нужно S делить не на 7, а на 3. Тогда и при S=3 получается правильное значение ширины модуля m=1. Так, наверное, и делали ученые – специалисты».
На это ответим следующее: "Чтобы ширину знака S делить не на 7, а на 3, необходимо заранее, еще до выполнения действия деления, распознать декодируемый знак как знак вспомогательный, иначе деление на 3 необъяснимо. После такого распознавания (идентификации) все действия со знаком (измерение каких-то параметров, преобразование) уже не имеют характера декодирования[954]. Декодировать, собственно, уже нечего, «устройство» знака, в общем, уже известно, можно только что-то уточнять, проверять, сравнивать, использовать результаты измерений для экстраполяции. В этом заключается существенное отличие знаков вспомогательных от информационных: после идентификации знака как знака информационного его необходимо именно декодировать – определить, какую цифру (от 0 до 9) он кодирует. Алгоритм ГОСТа все предлагаемые ему знаки рассматривает как информационные и декодирует их. И всегда S делит на 7. Если ученые специалисты делили на 3 и на 5, они просто подменили алгоритм ГОСТа другим алгоритмом, который каким-то образом распознает знак как вспомогательный (еще до п.2 Алгоритма), а после распознавания сравнивает его по табл.4.10 с информационными знаками по некоторым параметрам.
Таким образом, если авторы подменили алгоритм, то для вспомогательных знаков, не тождественных ни с одним из информационных знаков (повторяем: еще до применения процедуры декодирования знак рассматривался состоящим из трех модулей, в отличие от информационных знаков, всегда состоящих из семи модулей), было установлено сходство (по параметрам e1/m и е2/m) со знаком цифры "6". Полученный результат в этом случае полностью эквивалентен простому сопоставлению таблиц кодирования 4.1 и 4.2. Ничего нового такое «декодирование» с использованием таблицы 4.10 здесь не дает. Знаки похожи, но не тождественны (все – в полном соответствии с табл.4.1 и 4.2) – как и писали критикуемые учеными-специалистами авторы.
Итак, ученые-специалисты в своих рассуждениях либо подменили вспомогательные знаки знаком цифры "6" и «доказали» их тождество знаку цифры "6", либо подменили алгоритм, и установили сходство вспомогательных знаков со знаком цифры "6".
Какой из этих двух вариантов имел место в действительности? Поскольку авторы настаивают на тождестве знаков, утверждают, что можно пририсовывать произвольное число пробелов к трехэлементному знаку и выносят суждение об алгоритме ГОСТа, то, как нам кажется, они скорее всего подменили знаки. Но утверждать, что это точно так, мы не можем, тайну эту могут раскрыть только сами ученые –специалисты.
А о возможной подмене алгоритма заметим следующее. Если авторы все-таки подменили алгоритм декодирования, описанный в ГОСТе, другим алгоритмом, который, говоря их же словами, есть уже не закон, а частное мнение какой-то группы лиц, то они нарушили не только букву закона, но и его дух. Дело в том, что алгоритм ГОСТа имеет особое назначение: он рекомендуется для декодирования знаков символа с целью определения допусков на размеры знаков, параметры которых отличны от номинальных, в том числе и для определения допуска на ширину знака (см. п.4.6 ГОСТа).
Ширина одного и того же знака может изменяться, например, из-за типографского дефекта: поле пробелов справа или слева от трехэлементного знака может быть увеличено или сокращено. Для знака шестерки предельное сокращение поля пробелов составляет четыре модуля, и типовой знак-ограничитель с точки зрения алгоритма ГОСТа, если уж его применять для «декодирования» вспомогательных знаков, должен рассматриваться именно как такой дефектный знак шестерки. Вопрос в том, как будет декодирован этот знак в соответствии с алгоритмом ГОСТа: как шестерка или как какая-то другая цифра? Но сам алгоритм изменять нельзя: измеренную ширину знака недопустимо делить на 3 или на 5 не только потому, что это формально не предусмотрено ГОСТом, но и потому, что это не соответствует сути дела: по смыслу алгоритма ширину знака всегда нужно делить на 7.
Если бы авторы обратили внимание на назначение алгоритма ГОСТа, они бы, несомненно, насторожились: неужели возможно такое, что алгоритм, предназначенный для определения допусков на ширину знака символа, настолько нечувствителен к ее изменению, что «не заметит» ее уменьшения более чем в два раза при «потере» четырех модулей из семи? Желающие могут решить простую задачу: найти максимальное значение величины сокращения поля пробелов (выраженное в единицах ширины модуля знака), при котором знак шестерки еще будет распознаваться алгоритмом декодирования ГОСТа как шестерка.
Декодирование вспомогательных знаков по ГОСТу
Таким образом, авторы либо применили один и тот же алгоритм (алгоритм ГОСТа) для декодирования тождественных знаков (знаков шестерки), либо применили два разных алгоритма (один из которых не соответствует алгоритму ГОСТа) для декодирования разных знаков. В обоих случаях получились очевидные результаты.
Чтобы получить результат содержательный, необходимо к разным знакам – к знакам вспомогательным и к знаку цифры 6 – применить один и тот же алгоритм декодирования, именно – алгоритм, описанный в ГОСТе. Авторы декларировали это намерение, но не осуществили его, в ходе своих ошибочных рассуждений подменив либо декодируемый знак, либо алгоритм декодирования.
Применим алгоритм ГОСТа для декодирования вспомогательных знаков.1. Для типового знака-ограничителя:
E1 =2; е2=2;
S=3; m=3/7;
e1/m=e2/m=2*7/3=4, 67. Так как это значение попадает в интервал от 4, 5 до 5, 5, то Е1=Е2=5.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
Поиск книг  2500 книг фантастики  4500 книг фэнтези  500 рассказов