Escrito por Caique Paiva
Conhecimento Prévio Necessário
- Programação Dinâmica
- Componentes Fortemente Conexas
Veja que, dois vértices
e
são
-alcançáveis se e somente se eles estão na mesma componente fortemente conexa, e veja que podemos dividir o grafo em várias componentes conexas. Com isso, seja
o menor número de vértices para criar um grafo
-alcançável. Então, temos que
min
com
variando de modo que
, ou seja,
é o tamanho de uma das componentes conexas. Essa
elas são calculadas em
(
elementos e
a transição).
Em todos os grafos
-alcançáveis com
vértices, a cota de pares não-direcionados é
porque nós temos exatamente
pares de vértices que são alcançáveis de um para outro, ou seja, não são não-direcionados. Podemos conseguir essa cota com a seguinte construção: Seja
uma sequência de componentes fortemente conexas que estão de acordo com os valores da
. Faça a primeira componente conexa ter os vértices de
, a segunda os
e assim vai. Ligamos uma aresta de
para
se
, sem contar as que já temos para fazer as componentes fortemente conexas serem fortemente conexas. Se repetir aresta, é só excluir uma das repetições
Segue o código para melhor entendimento (Link).
