Minority Report é um filme de ficção científica lançado em 2002, dirigido por Steven Spielberg, estrelado por Tom Cruise e baseado em um conto de Philip K. Dick. O filme se passa em um futuro distópico, em 2054, e explora temas como determinismo, livre-arbítrio e os limites éticos do uso da tecnologia. Nessa história, existe uma força policial que se antecipa e age antes que alguns crimes aconteçam. Fazem isso através de três videntes que trabalham para determinar a iminência e os detalhes desses crimes que estão prestes a ocorrer.
Sondas espaciais, satélites e certos tipos de aeronaves são equipamentos computadorizados que frequentemente são atingidos por radiação. Partículas subatômicas se chocam contra esses aparelhos e às vezes até mesmo atravessam eles de uma superfície à outra. Quando uma dessas partículas é eletricamente carregada, seja com uma carga positiva ou negativa e atinge o computador interno, dependendo do local atingido (memória, CPU etc) , pode provocar uma alteração de bit. Um bit 0 passa a ser um bit 1 ou vice-versa, e isso pode alterar dados ou ainda provocar um comportamento indefinido no software em execução, o que pode levar a um problema ainda maior.
Para mitigar esse risco, os computadores desses equipamentos são projetados com três memórias e processadores redundantes, usando uma técnica conhecida como TMR – Triple Modular Redundancy. Quando ocorre uma divergência de dados entre eles, um circuito votador determina o dado correto através da maioria. Por exemplo, se ao acessar um determinado endereço de memória duas memórias retornam o valor 50 e a terceira memória retorna o valor 51, o circuito votador determina que o valor 50 é o correto e atualiza a terceira memória com esse valor. Por isso é importante uma quantidade ímpar de componentes, evitando empates. O valor divergente apresentado pela minoria é o minority report – o reporte da minoria.
Não necessariamente. Você pode aplicar esse conceito se estiver trabalhando num software que faz o reconhecimento de caracteres da placa de um veículo, por exemplo.
Para evitar erros na captura de dados (devido a alguma interferência externa), você pode fazer três capturas em espaços de meio segundo ou até mesmo um segundo, dependendo da situação. Executa o seu software de reconhecimento nas três imagens capturadas e compara o resultado. No cenário ideal, o resultado seria o mesmo para as três imagens. Se houver divergência, basta fazer a votação. Se dois resultados forem iguais, pode considerá-los como correto, e então você decide o que fazer com o reporte da minoria (ignorar, gravar num log para análise futura etc). Se os três resultados for diferentes, então você tem que trabalhar mais para melhorar esse projeto.
Circuitos redundantes se tornaram muito comuns hoje em dia, em aplicações industriais, na área de saúde e de forma geral, em sistemas de missão crítica.