domingo, 29 de outubro de 2017

Redes, máquinas de estados e centralidade de eigenvector

Propus recentemente o seguinte problema, inspirado num desafio que encontrei em brilliant.org:
Uma máquina gera aleatoriamente as letras de A a Z, com igual probabilidade. Eventualmente, qualquer palavra que pensemos acabará por ser gerada. Considerando as palavras HEART e EARTH, qual delas, se houver, tem maior probabilidade de surgir em primeiro lugar?
Sendo do mesmo comprimento, se as palavras não tivessem letras, ou grupos de letras, em comum, a resposta seria muito simples - têm a mesma probabilidade. Mas há ali quatro letras em comum, EART, e mais um H, que numa das palavras surge em primeiro lugar e na outra em último. Dará este pormenor vantagem a uma das palavras?
Há uma solução intuitiva, e pode-se recorrer a uma simulação, como fiz neste sítio.
É interessante olhar para esta questão como uma máquina de estados, em que a entrada é o fluxo de letras e os estados memorizam a informação relevante para identificar uma ou outra palavra:
As transições (interacções) entre os estados podem ser representadas por uma matriz, em que os valores são proporcionais às probabilidades de transição entre os estados, ou o número de entradas que conduzem a essas transições:


Esta matriz, é a matriz de adjacências de um grafo (ou rede). Note-se que ao estado EART só se podem suceder dois estados, o que coloca a palavra EARTH em inferioridade em relação à palavra HEART.
A centralidade de eigenvector evidencia essa relação