Encontre quais vértices excluir do gráfico para obter o menor componente maior

8

Dado um gráfico , encontre vértices , cuja remoção resultaria em um gráfico com o menor componente maior. G=(V,E)k{v1,,vk}

Presumo quee grande o problema é difícil (NP-difícil), mas estou interessado em pequenos valores de k ( k \ in \ {1, 2, 3, 4 \} ).n=|V|kkk{1,2,3,4}

Para k=1 , acho que é possível encontrar o melhor vértice {v1} para remover, executando a busca única em profundidade do gráfico (ou seja, verificando os pontos de articulação).

Para k=2 , seria possível encontrar os melhores vértices {v1,v2} executando n pesquisas em profundidade (cada uma delas no gráfico GEu=G/{vEu} ). Uma abordagem semelhante pode ser aplicada no caso k>2 .

Gostaria de saber se existe alguma solução melhor do que isso.

(Relacionado: contando o número mínimo de vértices sem necessariamente enumerá-los )

MindaugasK
fonte
Bem, ele generaliza a cobertura de vértices, que solicita os vértices modo que o tenha um componente maior do tamanho de um singleton. S={v1,,vk}GS
precisa
Por exemplo, um algoritmo parametrizado é um algoritmo FPT se for executado no tempo para alguns , e um algoritmo é um algoritmo XP se for executado no tempo . f(k)nccnf(k)
Gål GD
Você pode vir com mais algumas informações? Estou bastante interessado no pano de fundo desse problema.
precisa
Eu enfrentei esse problema enquanto procurava o subgrafo conectado comum máximo de dois gráficos. Verifique os comentários na sua resposta :)
MindaugasK

Respostas:

9

O problema que você está descrevendo é conhecido como Conectividade da ordem dos componentes no campo de medidas de vulnerabilidade dos gráficos . A versão de decisão do problema é a seguinte:

Conectividade da ordem dos componentes :

Entrada: Gráfico , os inteiros eG=(V,E)k

Pergunta: Existe um conjunto de vértices de tamanho no máximo modo que o tamanho do maior componente de seja no máximo ?XVkGX

O problema é obviamente NP-completo, pois generaliza a cobertura de vértices; o caso em que é a cobertura do vértice. Portanto, o problema não pode ser corrigido por um parâmetro tratável quando parametrizado por (a menos que ). O problema também é conhecido por ser -hard quando parametrizado por . Portanto, temos que recorrer a algoritmos com um tempo de execução exponencial em=1FPT=W[1]W[1]kk+.

Pergunta muito interessante. Para entradaG,k,, uma abordagem de força bruta seria:

branching(G,k,l):
    Find a connected set of vertices D of G of size l+1
    if no such D exists:
            return True // no component of size > l
    for v in D:
        if branching(G-v,k-1,l):
            return True
    return False

O algoritmo é executado no tempo (+1)kn2.

Observe que qualquer instância yes G,k, do problema tem largura de árvore e, na verdade, largura de caminho, no máximo k+. Isso pode ser observado ao ver que a tomada de um conjunto de exclusõesXde tamanho no máximo produz um gráfico onde cada componente conectado tem tamanho no máximo . Portanto, uma decomposição de caminho válida é simplesmente construir uma bolsa para cada um dos componentes no e adicionar todo a cada bolsa. Daqui resulta que qualquer instância yes possui .kGXGXX|E(G)|n(k+)

Um problema relacionado foi estudado no passado sob o nome Graph Integrity ou Vertex Integrity para distinguir a versão de exclusão de vértice e a versão de exclusão de borda:

Integridade do vértice :

Entrada: GráficoG=(V,E)inteiro p

Pergunta: Existe um conjunto de vérticesXV de tal modo que |X|+maxDcc(GX)|D|p?

Ou seja, a soma do conjunto de exclusões e o tamanho do componente máximo devem ser minimizados. Esse problema também é difícil para o NP. Veja, por exemplo,

  • Clark, LH, Entringer, RC, Fellows, MR: complexidade computacional da integridade. J. Combin. Matemática. Combin. Comput 2, 179-191 (1987)
  • Fellows, M., Stueckle, S .: A ordem de imersão, subgráficos proibidos e a complexidade da integridade da rede. J. Combin. Matemática. Combin. Comput 6, 23-32 (1989)
Pål GD
fonte
Bem, na verdade estou trabalhando com gráficos químicos, que são planares com uma probabilidade muito alta.
precisa
Então você pode conferir o teorema do separador planar (Lipton e Tarjan), que diz que você pode encontrar O(n)separadores.
precisa
Eu resolvi esse problema como sugeri na pergunta, fazendo |V|+1- profundidade-primeira-pesquisa (uma para encontrar pontos de articulação, |V|para encontrar pares de pontos de articulação). O componente máximo dos gráficos químicos (moléculas), que são escassos, geralmente pode ser suficientemente pequeno ao excluir apenas 1-2 átomos (vértices) (com raras exceções). Eu não estava procurando a solução ideal, só queria 1, 2 ou 3 átomos, cuja remoção 'cortaria' a molécula em pequenas partes, e o DFS era suficiente.
precisa
Na verdade, o problema que afirmei na pergunta não era exatamente o que eu queria resolver. Cada vértice também tinha pesos associados. Assim, eu queria escolher vértices, que não resultam apenas no menor componente maior, mas que soma de peso também é pequena.
MindaugasK
Isso por si só era um subproblema de outro problema: encontre o máximo de subestrutura conectada comum de 2 moléculas dadas (encontre o máximo subgrafo induzido conectado comum de 2 gráficos). Depois de mapear um único átomo de uma molécula com todos os mapeamentos possíveis de outra, você pode remover esse átomo de consideração, e é bom se ele "corta" a molécula. Talvez eu deva declarar isso como outra pergunta.
MindaugasK