Os códigos de barras

Noutro apartado falamos do ISBN, o código que identifica cada libro de xeito unívoco. E mostramos unha imaxe dun código de barras que incluía os díxitos correspondentes a un certo ISBN. Aquel apartado estaba dedicado a explicar en que consiste o ISBN, e agora imos proceder a botar unha ollada a outro tipo de códigos, que están presentes na maioría de artigos que calquera de nós podemos comprar, dende un libro na libraría até a comida no supermercado: os códigos de barras.

Os códigos de barras. Norman Jospeh Woodland.
Figura 1. Norman Joseph Woodland en IBM explicando o seu prototipo de escáner para produtos con códigos de barras.
Fonte: The New York Times.

Os códigos de barras foron inventados por Norman Joseph Woodland (1921 – 2012, figura 1) e Bernard Silver (1924 – 1963) no ano 19521. Máis tarde, en 1977, creouse a asociación EAN (European Article Numbering) como unha organización europea que xestionaba estándares utilizados no comercio internacional. No ano 2005 fusionaríase coa UCC (Uniform Code Council), a súa equivalente estadounidense, dando lugar á GS1, que é a organización que actualmente se encarga de implementar estándares que contribúan a resolver problemas que xorden coa globalización e o comercio entre países.

Un dos sistemas que xestiona a GS1 é o código de barras. Actualmente o estándar máis empregado2 nese ámbito é o EAN-13 (figura 2), que se desenvolveu a partir do estándar orixinal UPC-A (Universal Product Code) creado en 1970 por George J. Laurer (1925 – 2019). Incluído no estándar GTIN (Global Trade Item Number) da GS1, o EAN-13 consiste nun número de 13 díxitos que está codificado por 30 barras verticais.

Nun código de barras, cada barra negra equivale a un 1 e cada barra branca a un 0, dando lugar así a un sistema binario que pode ser recoñecido, “lido”, polos escáneres. Dos 13 díxitos que o forman, os tres primeiros indican o país (no caso de España son do 840 ao 8493), os catro ou cinco seguintes a empresa, o resto até completar os doce primeiros díxitos indican o produto e o último é un díxito de control. Se vostede leu xa o apartado dedicado ao ISBN, decataríase deseguida de que ese formato é moi similar ao que determina o estándar ISBN-13, que tal como se explicaba no apartado correspondente, conta tamén con 13 díxitos, sendo o último deles de control.

Os códigos de barras. Formato EAN-13.
Figura 2. Un código de barras segundo o estándar EAN-13.
Fonte: GS1.

Para calcular o díxito de control hai que realizar unha serie de operacións básicas. Primeiro colócanse os díxitos do primeiro ao duodécimo por orde, e a continuación multiplícanse por 3 os que ocupan unha posición par (segundo, cuarto, etc.). Faise a suma de todos eles, e así mesmo súmanse tamén os que ocupan posición impar. Unha vez computado o resultado, o díxito de control é o número que se debe engadir a ese resultado para obter un número divisible por 10. Expresado en termos matemáticos, o díxito de control é o inverso aditivo da suma de comprobación en módulo 10.

Trátase exactamente do mesmo método empregado para calcular o díxito de control no caso do estándar ISBN-13, que xa tratamos noutro apartado. E de aí que cando mercamos un libro o código de barras sexa o propio ISBN: ten o mesmo tamaño, unha estrutura similar e idéntica forma de calcular e verificar o díxito de control. E con isto comprobamos a utilidade do novo estándar ISBN-13 adoptado para os libros no ano 2007, pois grazas a el os libros que mercamos nunha libraría teñen un código de barras que é, directamente, o seu código ISBN-13. Deste xeito os vendedores poden empregar o mesmo sistema para libros e para outro tipos de produtos á venda.

Cando falamos do ISBN xa mostramos un exemplo completo de cómo achar o díxito de control unha vez establecidos os outros 12 díxitos, así que volver coas mesmas sería un chisco repetitivo. Porén, agora botaremos unha ollada ao aspecto que teñen estes cálculos escritos con notación matemática.

O último díxito do código de barras, o de control, fica nun rango entre 0 e 9 de tal xeito que a suma do produto de cada un dos 13 díxitos por un peso alterno entre 1 e 3, é un múltiplo de 10. En aritmética modular isto escríbese así:

    \[x_1 + 3x_2 + x_3 + 3x_4 + x_5 + 3x_6 +x_7 + 3x_8 + x_9 + 3x_{10} + x_{11} + 3x_{12} + x_{13} \equiv 0 \mod 10\]

Esa é a condición que debe cumprir, pero o cálculo que nos di cal debe ser o número que se poña na última posición do código ten o aspecto seguinte:

r =  10 - \left( x_1 + 3x_2 + x_3 + 3x_4 + x_5 + 3x_6 + x_7 + 3x_8 +x_9 + 3x_{10} +x_{11} + 3x_{12} \right) \mod 10

    \[x_{13} = \begin{cases}r & r<10 \\ 0 & r=10 \end{cases}\]

A introdución de díxitos de control para os códigos de barras realízase principalmente para detectar erros na transcripción do número. Entre os erros máis frecuentes está o de transposición de dous díxitos adxacentes, é dicir, que ao escribir o número se cambia a orde de dous díxitos consecutivos, por exemplo se se cola un 13245 no canto de 12345. Nos código de barras o díxito de control permite detectar un único erro de trasposición sempre e cando a diferencia entre ambos díxitos non sexa 5.

E por que non serve nese caso? Pois pense vostede que nun código aparecen o 6 e o 1 consecutivamente, por exemplo nas posicións cuarta e quinta; ao realizar a suma de comprobación faríase 6\cdot 3 + 1 \cdot 1 = 19. Se houbese unha transposición e o cuarto díxito fose o 1 e o quinto o 6, na suma de comprobación aparecería 1\cdot 3 + 6\cdot 1 = 9. Como 9 e 19 son congruentes en módulo 10 (ambos deixan resto 9 ao seren divididos por 10), o código produciría o mesmo díxito de control tanto no caso correcto coma no caso con transposición. Este era o motivo polo que o ISBN-10 utilizaban un módulo 11 no canto dun módulo 10… pero claro, iso require máis díxitos que os do 0 ao 9, o cal resulta máis incómodo. Non todo poden ser vantaxes.

Algunhas referencias:

  • Alonso Álvarez, José Nicanor e Mirás Calvo, Miguel Ángel (2019). Mate-glifos. Orixe e evolución dos símbolos en Matemáticas. Edicións Xerais, Vigo.

2 Non é o único, pero si o máis empregado. <https://www.gs1.org/standards/barcodes/ean-upc.>

3 Pode consultarse o listado dos prefixos xa asignados na páxina web <http://www.actives.net/resources/PERFIJOSBARRAS.pdf>.

Deixa un comentario