Capítulo Setenta e Quatro: Você Encontrou um Verdadeiro Pervertido
“Peço aos dois concorrentes que reflitam durante três minutos.”
Logo após, passados os três minutos, o apresentador entregou o microfone a Cássio Kun.
“Agora convidamos o colega Cássio a responder.”
Ele, com o rosto ruborizado, gaguejou por um bom tempo: “Sinto muito, não aprofundei meus estudos nesse campo... A rede neural recursiva é uma rede neural artificial com estrutura hierárquica em árvore, cujos nós processam informações de forma recursiva conforme a ordem de conexão, sendo um dos algoritmos de aprendizado profundo.”
Depois de recitar algumas definições com esforço, percebendo que não conseguiria enganar mais, Cássio concluiu: “Peço desculpas, por enquanto não tenho uma ideia especialmente boa.”
Ouviu-se uma onda de vaias na plateia. Cássio, apesar do embaraço, manteve-se firme no palco.
Ele ergueu os olhos para Tiago Longe.
Vamos ver o que você consegue responder. Se não souber nada, por que sua pontuação na entrevista foi tão superior à minha?
“Agora convidamos o colega Tiago a responder.”
“Tenho uma dúvida.” Tiago levantou a mão. “Já ouvi falar em redes hopfield, mas o que significa estabilidade da rede?”
O questionador sorriu: “Se certos pesos da rede conseguem convergir para um ponto de equilíbrio – isso se chama convergência dos pesos – então a saída pode se ajustar ao resultado esperado, ou seja, o sistema é estável. Portanto, convergência refere-se às variáveis, estabilidade refere-se ao sistema.”
“Se não há garantia de estabilidade do sistema, o controle torna-se instável e a convergência da rede perde sua base.”
Tiago ponderou por instantes e respondeu: “Esse campo de pesquisa, também não aprofundei, apenas li alguns artigos. Mas tenho algumas ideias simples, talvez você goste de ouvi-las.”
“... Primeiro, a questão da monotonicidade: no modelo hopfield de estado contínuo em tempo discreto, se a função de ativação dos neurônios é monotônica, ou pelo menos localmente monotônica.”
“Segundo, ao estudar as condições em que a função de energia se torna convexa, podemos tratar a execução da rede hopfield como um problema de otimização convexa com restrições, tentando demonstrar se há condições suficientes para a existência de um ponto global único de mínimo...”
“Otimização convexa, você está absolutamente certo! Otimização convexa é justamente minha área de atuação, tenho mais uma pergunta...”
Desta vez, Tiago tocou no coração do questionador, que propôs mais questões sobre otimização convexa, e eles passaram a discutir matemática ali mesmo.
Por fim, a pedido do apresentador, Tiago concluiu: “Se alguém quiser debater mais sobre otimização convexa, procure-me nos bastidores. Aqui não dá para entrar em detalhes...”
Muitas das respostas vinham apenas de seu repertório cotidiano, improvisadas. Se fosse capaz de redigir um artigo acadêmico tão facilmente, nem precisaria subir ao palco, poderia ser chamado de “deus das publicações”.
A plateia respondeu com aplausos.
Em poucos instantes, ficou claro quem era superior.
Cássio Kun desejou encontrar um buraco no chão para se esconder.
Com o rosto ainda mais vermelho, esforçou-se para se motivar, talvez a diferença se devesse à quantidade de exemplos, por acaso caíram questões que ele não dominava e o outro sim.
O apresentador perguntou: “Participante número 666, apresente sua pergunta.”
A questionadora era uma jovem, e sua dúvida era mais prática, menos obscura: “Gostaria de saber sobre questões de cache em servidores.”
“O cache tem dois estágios: primeiro, o estágio de armazenamento, em períodos de baixa demanda, usa-se recursos ociosos de comunicação para armazenar dados nos dispositivos de cada usuário. Segundo, o estágio de distribuição, durante picos de demanda, cada usuário solicita aleatoriamente um arquivo completo ao servidor, que então distribui os dados completos considerando todas as demandas, para atender a todos.”
“Minha pergunta é: como elaborar o esquema de cache de forma mais científica?”
A questionadora até projetou um PPT na tela.
Era uma questão técnica, mas todos entenderam o que estava sendo perguntado.
O apresentador anunciou: “Muito bem, têm três minutos para pensar.”
O microfone passou para Tiago Longe.
Ele sorriu: “Acho melhor deixar o colega Cássio Kun responder primeiro. Temo que, se eu falar antes, ele não terá mais nada a dizer.”
A plateia explodiu em risos e até assobios.
Alguns acreditaram, outros não.
Cássio Kun ficou surpreso, desta vez tinha alguma ideia, e Tiago parecia precisar de mais tempo para pensar.
“... Tenho uma sugestão: cada usuário armazena uma porcentagem M/N de cada arquivo, e na fase de distribuição o servidor envia a cada usuário a parte faltante, correspondente a (1-M/N) dos dados; neste caso, a quantidade de dados transmitidos R=K(1-M/N)...”
“Não sei se já ouviram falar de um método chamado ‘cache codificado’, o algoritmo é o seguinte...”
“Você está certo.”
Apesar da resposta, a questionadora ficou levemente desapontada; cache codificado é a ideia mais trivial, com algoritmos já consolidados, sem valor de pesquisa. Se alguém propusesse isso para um projeto, provavelmente seria rejeitado pelo orientador.
Agora era a vez de Tiago, que limpou a garganta.
“A ideia do colega Cássio é boa. Na fase de distribuição, ao utilizar as relações entre os dados já armazenados, pode-se desenhar combinações codificadas para o conteúdo a ser transmitido, permitindo que vários usuários decodifiquem simultaneamente a parte de dados necessária de uma única transmissão, obtendo um ganho global de cache.”
“Mas há uma limitação: é necessário dividir cada arquivo em um número que cresce exponencialmente com o número de usuários K; como sabemos, divisões exponenciais são impraticáveis nos algoritmos...”
“Posso usar sua caneta digital e o telão?”
O apresentador hesitou, “Pode.”
Tiago desenhou alguns gráficos na tela.
“... Essencialmente, trata-se de um problema de teoria combinatória dos grafos. O objetivo é encontrar um esquema de cache em que F seja de ordem polinomial em K, com R constante. Ou então provar se tal esquema existe ou não.”
“Obviamente, a possibilidade de dividir os arquivos em número polinomial, alcançando um nível industrialmente viável, depende inteiramente de se conseguir construir matematicamente um problema de hipergrafo com certas propriedades, que são as seguintes...”
“Acredito que, ao transformar a questão em problema matemático, já se pode escrever um artigo interessante. Quanto à resposta, não posso dar certeza agora, é apenas uma ideia. O detalhe de como resolver esse problema de grafos, cabe ao colega pensar.”
Ouviu-se um burburinho na plateia.
Entre os curiosos havia vários especialistas, capazes de distinguir facilmente o que era relevante.
Palmas!
Poucos minutos depois, a questionadora foi a primeira a aplaudir.
O público explodiu em aplausos.
Cássio Kun já não tinha mais coragem de permanecer ali, com o rosto em brasa, acenou rapidamente admitindo a derrota.
Finalmente entendeu, diante de uma prova de cem pontos, ele tirara cem pela competência, mas o outro também tirara cem porque a prova só permitia cem.
“Cássio, você encontrou um verdadeiro gênio!”
“Pois é...”
“Não foi uma derrota injusta.”