Programa educacional para trabalhar com cartĂ”es perfurados (ou a histĂłria de como o “big data” foi processado de 1890 a 1970)

No perĂ­odo de 1890-1970, todo o processamento de big data foi realizado por meio de cartĂ”es perfurados. Os cartĂ”es perfurados, por sua vez, foram processados ​​usando o chamado “Equipamento de gravação”, cujo elo central era o “classificador de cartĂ”es perfurados” eletromecĂąnico. CartĂ”es perfurados e equipamentos relacionados foram usados ​​para resolver uma ampla variedade de tarefas: censo, contabilidade, estoque, folha de pagamento etc.


Como as pessoas trabalhavam com cartÔes perfurados? Qual algoritmo o classificador eletromecùnico de cartÔes perfurados seguiu? Como foi realizada a classificação por campos de dados numéricos? E na corda? Sobre tudo isso - abaixo.



  • Uma caracterĂ­stica marcante do equipamento de gravação dos tempos prĂ©-computador: era originalmente completamente eletromecĂąnico. Ainda nĂŁo havia eletrĂŽnicos para lĂąmpadas. A "inteligĂȘncia" do equipamento de gravação foi construĂ­da com escovas de arame (para reconhecer furos em cartĂ”es perfurados), um relĂ© eletromecĂąnico e rodas mecĂąnicas (para somar os valores). Apesar de sua primitividade tecnolĂłgica, o “equipamento de gravação” revolucionou o processamento de big data.

Como as pessoas trabalhavam com cartÔes perfurados?


  • Cada cartĂŁo perfurado armazenava um registro de dados (atĂ© 80 dĂ­gitos ou caracteres). Cada registro de dados consistia em vĂĄrios campos. O classificador de cartĂ”es perfurados organizou os cartĂ”es na ordem necessĂĄria para o operador (de acordo com um dos campos de dados), apĂłs o qual a mĂĄquina, chamada de "tabulador", leu os cartĂ”es perfurados classificados, extraiu os campos necessĂĄrios deles (novamente, especificados pelo operador) e imprimiu o relatĂłrio.
  • Como exemplo, considere como cartĂ”es perfurados foram usados ​​para processar faturas. As empresas tinham um cartĂŁo perfurado separado para cada fatura emitida para pagamento (veja o exemplo na figura abaixo). Campos de dados como nĂșmero do fornecedor, data do pagamento, valor do pagamento etc. foram indicados no cartĂŁo perfurado.
  • O processo de negĂłcios de processamento automatizado de dados correspondente Ă© o seguinte. O classificador de cartĂ”es perfurados Ă© instruĂ­do a classificar os cartĂ”es perfurados pelo nĂșmero do fornecedor. ApĂłs a classificação, os cartĂ”es perfurados sĂŁo passados ​​para o tabulador, que gera um relatĂłrio lendo a linha desejada de cada cartĂŁo perfurado. Um contador mecĂąnico incorporado no tabulador derruba automaticamente o valor total.
  • Muitos outros processos de negĂłcios, como folha de pagamento, estoque e cobrança, foram realizados em tempos prĂ©-computador de maneira semelhante.

O princípio de operação do classificador eletromecùnico de cartÔes perfurados


  • O classificador pega uma pilha de cartĂ”es perfurados e os classifica de acordo com o campo de dados especificado pelo operador. Por exemplo, pela afiliação de funcionĂĄrios a um departamento especĂ­fico. Porque Como opção, para que, depois de agrupar funcionĂĄrios por departamentos, gere um relatĂłrio sobre a implementação do plano de vendas por cada um dos departamentos da empresa.
  • Para resolver esse problema, os cartĂ”es perfurados sĂŁo classificados primeiro com base no campo "departamento" e depois transferidos para o tabulador, que resume o campo "vendas", imprimindo os resultados intermediĂĄrios de cada departamento no relatĂłrio.
  • O operador coloca o pacote de cartĂ”es perfurados que precisam ser classificados em uma bandeja especial, a partir da qual eles sĂŁo direcionados um a um pelo classificador. O classificador lĂȘ os cartĂ”es perfurados e os distribui em 13 bolsos: dez digitais, dois de “zona” (para processar valores de sequĂȘncia); e um para cartĂ”es perfurados descartados (que nĂŁo especificam um valor pelo qual a classificação foi realizada).
  • O algoritmo usado pelo classificador de cartĂ”es perfurados Ă© muito diferente dos algoritmos geralmente aceitos atualmente. A principal diferença Ă© que os cartĂ”es perfurados nĂŁo se comparam.

Algoritmo de classificação bit a bit


Como, entĂŁo, um classificador de cartĂ”es perfurados consegue fazer seu trabalho? Ele implementa um elegante algoritmo de “classificação bit a bit”. A linha inferior: o classificador de cartĂ”es perfurados processa um dĂ­gito do campo de dados por vez; para classificar por um campo de trĂȘs dĂ­gitos, um pacote de cartĂ”es perfurados deve ser passado pelo classificador trĂȘs vezes. EntĂŁo o algoritmo:


  1. Classificando cartÔes perfurados de acordo com um campo de dados numérico especificado pelo operador, o classificador, durante a primeira execução, processa apenas o bit menos significativo desse campo. E de acordo com o valor dessa categoria, ele decide onde deixar cair o cartão perfurado atual: qual dos 10 bolsos digitais (de zero a nono).
  2. Depois que o classificador termina de distribuir os cartÔes perfurados nos bolsos, o operador os retira e os coloca em um pacote comum. Em ordem: começando do zero e terminando no nono.
  3. O operador coloca o pacote montado de cartÔes perfurados no classificador e repete as etapas 1 e 2 sequencialmente para cada categoria.
  4. Tudo, agora os cartÔes perfurados estão classificados.


Vantagens do algoritmo de classificação bit a bit


  • O algoritmo de classificação bit a bit Ă© elegante e rĂĄpido. Sua complexidade computacional Ă© O (n log n). Em outras palavras, com um aumento no nĂșmero de cartĂ”es, a duração do algoritmo aumenta linearmente e nĂŁo exponencialmente.
  • O algoritmo de classificação bit a bit pode ser tecnicamente implementado como um projeto eletromecĂąnico simples.
  • Apesar de nĂŁo serem colocadas mais de 3600 cartĂ”es na bandeja de entrada de um classificador de cartĂ”es perfurados, ele pode classificar um nĂșmero muito maior de cartĂ”es perfurados se o operador executar as duas açÔes a seguir em tempo hĂĄbil: (1) carregar novos pacotes de cartĂ”es perfurados em uma bandeja em tempo hĂĄbil; (2) esvazie os bolsos digitais em tempo hĂĄbil (para que nĂŁo transbordem).

Como os dados da string sĂŁo codificados


  • Como observado acima, os valores numĂ©ricos sĂŁo codificados no cartĂŁo perfurado com orifĂ­cios. Um buraco na coluna. JĂĄ classificamos sua classificação. Agora resta entender como as strings sĂŁo codificadas no cartĂŁo perfurado e como o classificador as organiza.
  • Para trabalhar com seqĂŒĂȘncias de caracteres no classificador de cartĂ”es perfurados, existem dois bolsos "zonais" (11 e 12), alĂ©m de 10 digitais. O princĂ­pio da codificação de caracteres alfabĂ©ticos Ă© o seguinte (veja a figura abaixo). Cada letra Ă© codificada com dois orifĂ­cios no cartĂŁo perfurado: um orifĂ­cio no nĂșmero (de 1 a 9) e um orifĂ­cio na "zona" (0, 11 ou 12).
  • Observe: uma string com zeros Ă© digitalizada ao processar campos de dados numĂ©ricos e “zonal” ao processar campos de dados de string.

Algoritmo de classificação de cadeia de caracteres


Graças a essa codificação, o classificador pode classificar os campos de dados da sequĂȘncia em ordem alfabĂ©tica. Para fazer isso, ele precisa de duas corridas. O algoritmo Ă© o seguinte:


  1. Na primeira execução, o classificador de cartĂ”es perfurados organiza os cartĂ”es da mesma maneira que ao classificar campos de dados numĂ©ricos. A diferença Ă© que, com a classificação alfabĂ©tica, apenas nove bolsos estĂŁo envolvidos: do 1Âș ao 9Âș.
  2. Após a classificação, o operador remove os cartÔes perfurados dos bolsos digitais. Novamente, em ordem (como no caso de pedido por um campo de dados numérico): começando do primeiro bolso e terminando no nono. O operador envia o baralho coletado para classificação pela segunda vez.
  3. Na segunda execução, o classificador de cartĂ”es perfurados lĂȘ apenas as linhas das “zonas” (0, 11 e 12) e ignora as linhas com nĂșmeros.
  4. Como resultado, os cartĂ”es perfurados ordenados sĂŁo distribuĂ­dos pelo classificador em trĂȘs bolsos “zonais”: de A a I sĂŁo colocados no 12Âș bolso; de J a R - no dia 11; de S a Z - no 0Âș.
  5. Se vocĂȘ precisar classificar nĂŁo por um primeiro caractere, mas por dois ou trĂȘs primeiros caracteres, por exemplo, o processo descrito acima (etapas de um a quatro) serĂĄ executado seqĂŒencialmente para cada caractere. I.e. para cada sĂ­mbolo, sĂŁo executadas duas execuçÔes no classificador de cartĂ”es perfurados.


Portanto, quando ainda nĂŁo havia computadores, as empresas processavam big data usando cartĂ”es perfurados. Apesar de os cartĂ”es perfurados estarem irrevogavelmente desatualizados, ainda encontramos a influĂȘncia deles sobre o estado atual da tecnologia de computadores - sempre que precisamos tolerar a formatação de texto com linhas de 80 caracteres. Algo semelhante Ă© observado, por exemplo, ao trabalhar com o Far Manager.

Source: https://habr.com/ru/post/pt426499/


All Articles