Em um gráfico , fazemos o seguinte processo:
- Inicialmente, todos os nós em são incolores.
- Embora existam nós não coloridos em , cada nó não colorido faz o seguinte:
- Seleciona um número real aleatório e o envia a todos os seus vizinhos;
- Compara seu número com o número de seus vizinhos; se o seu número é estritamente menor, o vizinho pinta-se de vermelho e notifica todos os vizinhos.
- Se um vizinho ficar vermelho, esse nó se pintará de preto.
Por exemplo:
- Suponha que o gráfico seja um caminho: abcde.
- Suponha que os números na primeira etapa sejam: 1-2-0-3-4.
- Os nós a e c são pintados de vermelho; os nós ed são pintados de preto.
- Na segunda etapa, apenas o nó e permanece sem cor; é trivialmente mínimo, portanto se pinta de vermelho.
MINHA PERGUNTA É: qual é o número médio de etapas que esse processo executa antes de todos os nós serem coloridos?
Meu cálculo atual me leva a uma estimativa, o que parece bom demais para ser verdade. Aqui está o cálculo:
Considere um nó com vizinhos. A probabilidade de que será o menor entre seus vizinhos é . Se isso acontecer, entãoe todos os seus vizinhos serão coloridos. Portanto, o número esperado de vértices coloridos em cada etapa é por nó . Portanto, o número total esperado de vértices coloridos em cada etapa éentão em tempo em que todos os nós serão coloridos.
Se essa análise estiver errada (o que provavelmente é o caso), qual é o número real de etapas?
EDIT: Como observado por @JukkaSuomela, o algoritmo descrito acima é devido a Metivier et al, 2011 e é explicado e analisado nestas notas de aula . Eles provam que o tempo de execução é.
Mas ainda não estou convencido de que essa análise seja rigorosa. Em todos os gráficos que verifiquei, parece que o algoritmo termina em tempo esperado.
Minha pergunta é agora: qual é o pior gráfico em que esse algoritmo realmente exige passos em média?