Código de Hamming Aula 022

Aula 23 · Redes Teórico

Transcrição do áudio

Vou aqui explicar o código de Rémin. O livro está ali num formato textual, um formato denso de palavras. O livro, ele confesso que ele é técnico demais. E aí eu fiz uma explicação aqui mais visual, com setinhas e números. Ou seja, vai dar pra entender com uma outra visão. Tá? Vamos lá. O código de Rémin é um código para correção de erros. Ele não é utilizado somente na comunicação de dados. Você sabe muito bem. Vocês estudaram AOC. Vocês são foda em AOC. Vocês viram em AOC, código de Rémin. Tá? Então o número de posições de bits em duas palavras de código, diferem entre si e eles chamam isso de distância de Rémin. É o termo técnico, como foi descrito na literatura. Significa que se duas palavras de código estiverem a uma distância de Rémin, uma da outra, igual a D, então é necessário corrigir de erros de bits. Então nós vamos pegar e criar alguns bits. Em vez de injetar no final, nós vamos injetar esses bits no meio da mensagem e aí nós vamos poder localizar o erro calculando essas distâncias de Rémin. Bom, começamos pegando uma palavra, uma palavra que nós já sabemos que ali é um conjunto de bits. Beleza? Também esse termo é utilizado em AOC, sistemas operacionais teóricos e aqui também. Então nós calculamos as posições que vamos injetar bits redundantes seguindo um padrão de 2 elevado a M. Ou seja, posição 0, posição 1, posição 4, posição 8, 16, 32, 64 e aí nós vamos injetar sempre nessas posições 2 elevado ao número de bits. E para detectar erro de modo confiável você precisa de um código de distância mais 1 que poder naturalmente conseguir converter realmente a massa de dados. Então vamos ao exemplo. Olha só, eu tenho a seguinte mensagem, 1, 0, 0, 0, 0, 1, complicado né? E aí o que eu faço? Eu transformo ela, naturalmente, em uma palavra no qual eu tenho a própria mensagem e os bits de paridade do Rémin. Se você olhar P1, ele não está na mensagem P1, se você olhar, ele está aqui porque ele é um bit de paridade. P2 é um bit de paridade, P4 é um bit de paridade e P8 é um bit de paridade. M3, M5, M6, M7, M19, M10 e M11 são da mensagem. Então essa mensagem está onde tem o Mzinho. Eu vou mostrar esse cálculo aqui. Aqui o livro do Terro Bols simplesmente mostra a mensagem, a palavra, canal e o erro aqui diz que é 5. Vou mostrar para vocês esse cálculo. Vamos lá. Por conforme foi falado na teoria, 2 elevado a 0, 2 elevado a 1, 2 elevado a 2, 2 elevado a 3, entendeu? E aí você vai incrementando. Se você olhar, 2 elevado a 0, aqui ó, P1, 2 elevado a 1, está aqui, P2, 2 elevado a 2, está aqui ó, P4, 2 elevado a 3, 8 aqui. Então assim você vai achando as posições que nós vamos injetar os bits de paridade. São nessas posições que vamos injetar os bits de paridade. Também já está mais do que sabido, do adeal, C, sistemas operacionais, 2 elevado a 0, 1, 2, 3, 4, as vezes vocês já sabem desse cálculo. Praticamente nós nem fazemos esse cálculo, já está entranhado no nosso DNA. Ó, então eu acabei de lhes mostrar como que o Tannibal fez essa passagem aqui, dessa mensagem e injetou esse espesa aqui. A injetou esse espesa pois utilizou a própria teoria de 2 elevado a Obit, conforme está aqui ó. Legal, está aqui. Mas eu coloquei em interrogações, porque o Tannibal já mete os 0, 0, 0 e 1 aqui, como que ele chegou nisso? Vou lhes mostrar. Olha só, eu coloquei em interrogações. A princípio não sabemos. Pense assim, a princípio não sei o que vai ali, mas eu não sei que são essas posições. Aí agora vem o cálculo. Então vamos lá. O P1, o que vai ser colocado em P1 é a soma, o lógico, binária de M3, M5, M7, M9, M11. Como que ele fez isso? M1, eu pego 1 e pulo 1. Pego 1 e pulo 1. Pego 1 e pulo 1. Eu pego 1 e pulo 1. Pego 1 e pulo 1, é até chato fazer isso. Porque é o P1. Legal, porra, pera aí. Para calcular o P2 eu faço como? Pelo nesse 2, eu pego 2 e pulo 2. Pego 2 e pulo 2. Pego 2 e pulo 2, assim vai. Legal, pera aí. Deixa eu ver se eu entendi. O 3, eu vou ter que subir um P4. Olha o 4 aqui. Pego 4 e pulo 4. Continuaria. Não tem mais, parou ali. Pego 8. Peguei 1, 2, 3, 4 e não tem mais. Então é dessa forma que nós pegamos as posições. Vamos agora voltar para o nosso P1. Para e curta, ele meteu um 0 aqui em P1. Como que ele chegou nesse 0? Eu coloquei uma interrogação para você. Vamos calcular para você. P1 eu pego M3, M5, M7, M9 e M11. Os números aqui. 1, 0, 0, 0 e 1. Se eu somar isso em binário, vai dar 0. Por isso que o tânibus mete um 0 aqui. Por isso que ele me coloca um 0 aqui. Pera aí. Então vou lá o P2. O P2 está aqui. Eu pego 1, 1, 0, 1, 0 e 1. Coloquei aqui. Somo isso em binário, deu 0. Por isso o tânibus mete um 0 aqui. Começando a fazer sentido, né garoto? Calma aí. Titei o AI de vinte mostrar a porra. Vamos lá. 4 e 4. Os 4 aqui porque eles já têm 4 não. 4, 5, 4 não. E aí vai. Vamos somar extrago aqui. 0 mais 0 mais 0 é igual a 0. Por isso que o tânibus mete um 0 aqui no P4. E o P8. O 8 é aqui no final. Pegaria 8, não tem 8. E quanto deu aqui? Então termo da mensagem. 0 mais 0 mais 1 é igual a 1. Por isso o tânibus me mete um 1 no P8. Porra, então o que você já prendeu a fazer? Até então. Aqui na minha explicação. Você já aprendeu a achar onde fica os pês, as paridades. Elevado a potência 2. E você acabou de aprender como calcular esses zeros e uns que o tânibus colocou aqui no livro. Porra, legal. Significa que você acabou de aprender a pegar uma mensagem, injetar o código de ramming, mas não mandou ainda. E aí o tânibus chega e fala assim, porra, mandei. Cagou aqui, ele já mete um porra. Pô, tá de sacanagem comigo. Tu já me mete um aqui, cara. Não, porra. Faz o aluno pensar. Tá? Ele meteu aqui um erro aqui e já agrifou o erro pra vocês. Então vamos lá. Vamos calcular esse erro, cara. Vamos calcular esse erro. Então assim, assim ficou a nossa mensagem que vamos enviar. Beleza? Assim ficou a mensagem enviamos pelo canal. Legal. Vamos ver que chegou do outro lado, isso aqui. Isso aqui chegou. Chegou lá. Tá? Tendo o olho, nós sabemos, mas nós temos que fazer o cálculo porra. Então vamos lá. Calculando o P1. P1 é a soma desse, desse, desse, desse, desse, certo? Tá, então vamos lá. Olha o que chegou aqui. Palavra recebida. 1 mais 1 mais 0 mais 0 mais 1. Aqui, ó. Coloquei aqui pra você. Deu? Um? Fudeu. Um é diferente de zero. Opa. Então P1 já tá errado. Mas P1 pode me revelar o erro em M3, M5, M7, M9 e M11. Código de Raman, ele corrige. Corrige qual desses? E agora nós vamos nessa parte da teoria aqui, aonde ele fala sobre distância de Raman. E aonde eu preciso de uma distância maior, né? Pra poder conseguir detectar onde tá a falha. Então vamos lá. Legal. M3, M5, M7, M9, M11. Um desses pode tá cagado. Vamos aumentar aqui a nossa distância de Raman. Vamos para o nosso amigo P2. Porra, P2. Aqui, aqui, aqui, aqui e aqui. Legal, vamos pegar aqui. Aqui o recebido. Tá? Vamos lá. Um mais, zero mais, zero mais, zero mais um. Aqui, aqui, aqui. Deu zero. Opa, zero bateu com zero. Zero bateu com zero. Tá? Tá certo. Tá certo. Quer dizer que M3, M6, M7, M10 e M11 estão corretos. Opa, pera aí. M3. Errado. M3, certo? Ah, ah, ah, ah, ah. Já elimino um da jogada. Pera aí. Elimino mais quem? O 6 e o 7. Vamos lá. Ó, elimino 3. O 6 que não tá aí, o 7. Falta 5, 9 e 11. Ah. Tô começando a eliminar. Pegou, meu garoto. Vamos agora trabalhar com o P4. P4, valida. O M3, o M6 e o M7. Pula 4, depois validaria. Não temos a mensagem maior que isso, então. É só isso aqui mesmo. Vamos ao nosso cálculo. Um mais zero, mais zero. Um mais zero, mais zero, igual a um, que não bateu com zero. P1 tá errado. P1 diz que tá errado. E P4 diz que tá errado. P4, valida. M5, M6 e M7. M5, M6 e M7. Ô, pera aí. Mas M6 e 7, tá certo. O que o P2 diz que M6 e M7, tá certo. Então, sobrou o que, meu amigo? M5. Mas vamos continuar o cálculo. Já achei, tá? Vamos lá. Nós temos que pensar com uma máquina, pensa. Ela vai fazer até terminar o último P. Aqui, o que recebido? O P8, valida. O M9, o M10 e o M11. Aqui, ó. Tá aqui embaixo aqui. M10, M9, M10, M11. Zero, mais zero, mais um, é igual a um que bateu com um. Um bate com um, tá ok. Ou seja, M9, M10 e M11 tão corretos também. Ah, então pera aí. Deixa eu ver se eu entendi. Aqui estão os erros grifados. E aqui estão os sucessos grifados também. Vermelho tá grifado. O que coincidiu e que não teve nada a seu favor. Ou seja, todos falaram que ele tá errado, pô. Então, falou que M3 tá errado. M5 tá errado. M7 tá errado. M9 e M11. Repare que se eu tivesse apenas a distância AU, eu estaria na bosta. Porque não é conclusiva. Vamos pegar mais instâncias. P4, M5, M6 e M7. Vamos aumentar isso aqui. Agora repare que M3, M6, M7, M10 e M11 estão certos, segundo o P2. M9, 10 e 11 estão certos, segundo o P8. Quer dizer que o único que parece que tá errado mesmo é o M5. O Tannibal, então ele vira e fala, pô, agora eu grifo pra você. É aquele cara tá errado. Ao comparar a mensagem enviada com a mensagem recebida, assim, ao olho, com o óculos, ou seja, lá como você queira, é meio complicado no mundo ou o que eu falar de olho nu, né? Pode ser que o olho nu seja uma coisa misógena. Aí o que acontece? Olha, o M5 tá errado e eu mostrei por cálculo. Eu não gosto da explicação do tendo pra Heming, cara. Eu prefiro o Stalin, lá de Alacê, tá? O Heming não é uma teoria de redes de computadores. O Heming é uma teoria natural da computação. Então, olha só, ele coloca assim, cinturão de 5, cagada no erro 5. É o que ele quis dizer, tá? Eu mostrei aqui, através de cálculo, pra vocês, que realmente é no Heming 5. Então, esse foi o código de Heming e no próximo, no vídeo, vou explicar o código de convulsão, cara. Até mais, tchau.
Voltar ao curso