Complexidade do homomorfismo do dígrafo para um ciclo orientado
Dado um grafo orientado fixo (d�rafo) , a -COLORING problema decisão pergunta se um digrama de entrada tem um homomorphism para . (Um homomorfismo de para é um mapeamento de para que preserva os arcos, ou seja, se é um arco de , então é um arco de )D L D L D F V ( L ) V ( D ) u v L f ( u ) f ( v ) DDDDDGGDDGGDDffV( G )V(G)V(D)V(D)uvuvGGf(u)f(v)f(u)f(v)DD
A classe de problemas COLORING está fortemente ligada à conjectura de dicotomia para CSPs declarada por Feder e Vardi (acessível no cidadão ).DD
No presente artigo de 2001 (acessível na página do autor, aqui ), Feder prova um teorema dicotomia quando é um ciclo orientado (por ciclo orientada quero dizer um ciclo sem direção, onde cada aresta é substituído por um único arco, que pode ser orientado de forma arbitrária) , em outras palavras, ele mostra que para qualquer ciclo orientada , -COLORING é ou polinomial-tempo solúvel ou NP-completo.DDDDDDD
Infelizmente, a classificação de Feder é altamente não trivial e não explícita, pois a complexidade de muitos casos está relacionada à complexidade de certas variantes restritas de SAT que dependem da orientação. Ao examinar o artigo, não consegui determinar a resposta para minha pergunta:
Pergunta: Qual é o menor tamanho de um ciclo orientado modo que -COLORING seja NP-complete?DDDDD
A resposta pode ser declarada em algum lugar da literatura, mas não consegui encontrá-la.
Editar:Deixe-me dar mais detalhes sobre a classificação de Feder. Feder mostra que qualquer ciclo orientado a NP completo deve ser equilibrado, ou seja, ter o mesmo número de arcos nas duas direções (portanto, ele tem ordem uniforme). Em seguida, considere os "níveis" induzidos pela orientação (comece a percorrer o ciclo em um vértice arbitrário; se um arco der certo, você aumenta 1, se um arco fica à esquerda, diminui 1). Então, se houver no máximo uma "execução de cima para baixo", é polinomial. Se houver pelo menos três dessas "execuções" e o ciclo for um núcleo, será NP-completo. (No exemplo dos comentários de András, existem três "corridas", mas o ciclo não é essencial.) Os casos mais complicados são aqueles com duas "corridas de cima para baixo". Alguns são difíceis, outros polinomiais, e Feder os relaciona a problemas especiais de SAT para obter uma dicotomia.
Como uma pergunta intermediária: qual é o menor ciclo orientado que possui três execuções "de cima para baixo" e é um núcleo? Esse exemplo seria NP-completo pela discussão acima.
Não recordo uma resposta rápida na literatura (talvez Barnaby Martin ou Florent Madelaine saberiam). No entanto, o tamanho é de no máximo 6 vértices e 6 arestas direcionadas, pois é possível reduzir -Colouring a -Colouring para um dígrafo seis vértices substituindo cada aresta não direcionada nos gráficos por dois arcos apontando para um novo vértice entre seus pontos. pontos finais. K3K3DDDD
Obrigado András. No entanto, eu acho que a resposta deve ser maior porque o núcleo deste exemplo é simplesmente um dígrafo com um arco único, que pode ser resolvido em tempo polinomial ...
Você está certo, a construção que propus é muito simples.
Perguntei a Florent Madelaine e Barnaby Martin, mas eles não sabem a resposta diretamente, embora pareçam estar interessados ​​:-) Meu colega perguntou a Feder por e-mail na semana passada, mas ele ainda não respondeu.
Meu segundo impulso foi usar uma versão rígida do triângulo. No entanto, com o dispositivo de rigidez de Chvátal et al. (JCT 1971) o triângulo rigidificado parece exigir um número de vértices que seja pelo menos 9v + 36, se o gráfico de entrada tiver v vértices e não estiver claro como modificar esses dispositivos para os caminhos. Talvez seja possível usar um caminho direcionado rígido para substituir cada aresta, mas não está claro para mim como fazer isso, mantendo a capacidade de mapear qualquer aresta do gráfico para qualquer aresta do triângulo (mas em nenhum outro lugar), pois o A maneira óbvia de fazer isso é exigir simetria.
Para a pergunta intermediária (um núcleo com três execuções de cima para baixo), que tal isso?
Alguma notação: descreverei execuções por palavras em , com, por exemplo, correspondendo a um subgrafo . O nível aumenta em arcos e diminui em arcos, e suponho que seu mínimo seja . Algumas restrições simples são:{l,r}∗{l,r}∗llrlllrl⋅←⋅←⋅→⋅←⋅⋅←⋅←⋅→⋅←⋅rrll00
Não pode haver uma execução consistindo apenas em s ou apenas em s, porque, caso contrário, há um homomorfismo óbvio de para essa execução (mapeando cada nó de para aquele com o mesmo nível). Isso também implica que o nível máximo deve ser pelo menos .llrrDDDD33
Se o nível máximo fosse , todas as execuções top-bottom (resp bottom-top) teriam a forma (resp. ; novamente, não é muito difícil encontrar um homomorfismo de à execução, o que minimiza .33llr(lr)illllr(lr)illrrl(rl)irr)rrl(rl)irr)DDii
No entanto, para o nível máximo existe uma solução de comprimento : considere dado por . Possui as execuções necessárias de cima para baixo e é um núcleo (veja abaixo). Pelas restrições acima, é necessariamente mínimo, pois cada execução possui apenas uma única borda "para trás".443636DD(rrrlrrlllrll)3(rrrlrrlllrll)3
Para nos convencer de que isso é essencial, vamos primeiro nomear os vértices ( ). Os vértices inferiores (ou seja, nível ) são . Qualquer homomorfismo de a um subgráfico deve preservar níveis e, em particular, ; módulo o óbvio automorfismo , basta considerar o caso . Considere a vizinhança de em (anotada com níveis):v1,…,v36v1,…,v3600v1,v13,v25v1,v13,v25φφDDφ(v1)∈{v1,v13,v25}φ(v1)∈{v1,v13,v25}vi↦vi+12vi↦vi+12φ(v1)=v1φ(v1)=v1v1v1DD
v34(1)→v35(2)←v36(1)←v1(0)→v2(1)→v3(2)→v4(3)←v5(2)→v6(3)→v7(4)v34(1)→v35(2)←v36(1)←v1(0)→v2(1)→v3(2)→v4(3)←v5(2)→v6(3)→v7(4)
Começando com , temos . Mas se , então , e não temos valor possível para . Obtemos . Em seguida , mas para obtemos , sem valor possível para . Portanto, deve ser a identidade em toda a execução e, repetindo o mesmo argumento para as execuções restantes, o mesmo ocorre em todos osφ(v1)=v1φ(v1)=v1φ(v2)∈{v36,v2}φ(v2)∈{v36,v2}φ(v2)=v36φ(v2)=v36φ(v3)=v35φ(v3)=v35φ(v4)φ(v4) φ ( v 5 ) ∈ { v 3 , v 5 } φ ( v 5 ) = v 3 φ ( v 6 ) = v 4 φ ( v 7 ) φ v 1 → … → v 7 D φ Dφ(v2)=v2,φ(v3)=v3,φ(v4)=v4φ(v2)=v2,φ(v3)=v3,φ(v4)=v4φ(v5)∈{v3,v5}φ(v5)∈{v3,v5}φ(v5)=v3φ(v5)=v3φ(v6)=v4φ(v6)=v4φ(v7)φ(v7)φφv1→…→v7v1→…→v7DD. Em particular, não mapeia em um subgráfico apropriado.φφDD
Essa mesma análise mostra que todos os ciclos orientados balanceados com duas execuções que são núcleos têm comprimento de pelo menos 24, certo? Então isso dá um limite mais baixo à resposta do problema principal.
Sim, bom argumento.
Ótimo, obrigado, isso é muito útil! Podemos nos convencer à mão de que isso é essencial? (observe que existe um algoritmo de tempo polinomial para verificar se um ciclo orientado é um núcleo: crie o conjunto de subcaminhos orientados modo que seja um arco de , e em seguida, verificar se mapeia para qualquer destes caminhos; isto pode ser feito em polytime, ver Gutjahr et al: sciencedirect.com/science/article/pii/0166218X9290294K )| V ( D ) | { D - a a D } DDD|V(D)||V(D)|{D−a{D−aaaD}D}DD