Enumerando tipos topológicos de um DAG marcado com vértice

11

Deixe ser um gráfico acíclico dirigido , e deixar λ ser uma função rotulagem mapeamento de cada vértice v V para uma etiqueta λ ( v ) em algum alfabeto finito L . Escrevendo n : = | V | , um tipo topológico de G é uma bijeção σ de { 1 , , n } a V (ou seja, uma ordenação deG=(V,E)λvVλ(v)Ln:=|V|Gσ{1,,n}V em uma sequência) de modo que sempre que ( v , v ) E então σ - 1 ( v ) < σ - 1 ( v ) (ou seja, se houver uma aresta de v a v , v ocorrerá antes de v na sequência). Orótulode σ é a palavra σ ( 1 ) σ ( n ) em LV(v,v)Eσ1(v)<σ1(v)vvvvσσ(1)σ(n) .Ln

Dado , eu gostaria de enumerar os rótulos dos tipos topológicos de G com eficiência. Qual é a complexidade de enumerar os rótulos de tipos topológicos? É claro que, como pode haver muitos exponencialmente, quero estudar a complexidade em função do tamanho da saída ou em termos de atraso. Em particular, a enumeração pode ser realizada com atraso polinomial? (ou mesmo atraso constante?)(G,λ)G

No caso em que todos os vértices de carregam rótulos distintos (ou, equivalentemente, os vértices são { 1 , , n } rotulados por eles mesmos), eu sei que os rótulos podem ser enumerados em tempo amortizado constante, por esse resultado ao enumerar extensões lineares de posets (que é o mesmo que enumerar tipos topológicos de um DAG). No entanto, quando os vértices são rotulados arbitrariamente, pode ser que um número muito grande de tipos topológicos possua o mesmo rótulo, portanto, você não pode apenas enumerar tipos topológicos de G e calcular seus rótulos para obter uma maneira eficiente de enumerá-los. . Na terminologia de poset, o DAG rotulado ( G ,G{1,,n}G pode ser visto como umposetrotuladoe não foi possível encontrar resultados de enumeração sobre eles.(G,λ)

Já conheço a dureza de alguns problemas relacionados, graças às respostas para minhas outras perguntas aqui. Em particular, eu sei que encontrar o rótulo lexicograficamente mínimo é difícil para o NP . Eu também sei que decidir se um determinado rótulo pode ser alcançado por algum tipo de topologia é NP-difícil (a partir da dureza deste problema : dada uma sequência de rótulo candidata , solicite um tipo topológico de G onde cada vértice deve ocorrer em uma posição onde o rótulo correto ocorre em ssGs) No entanto, acho que nada disso implica em dureza para enumeração, pois você pode enumerar em qualquer ordem que desejar (não necessariamente lexicográfica), e um algoritmo de enumeração não pode ser usado para decidir com eficiência se um rótulo é viável, mesmo com atraso constante (pois pode haver exponencialmente muitas seqüências para enumerar primeiro).

ssvVi{1,,n}siλ(v)viGvi, o que pode ser feito claramente em PTIME. Mas, como você produz cada vez mais rótulos, não tenho certeza de como generalizar essa abordagem.

a3nm
fonte

Respostas:

-1

vuu

v1,v2,...,vkuvivju

v1,...,vkO(n2)O~(n)

sbzk
fonte
Obrigado pela sua resposta! No entanto, não entendo por que o ajuste sugerido no primeiro parágrafo seria suficiente para garantir que um rótulo de classificação topológica diferente seja produzido após várias etapas polinomialmente. Por exemplo, se todos os elementos tiverem o mesmo rótulo, existe apenas um rótulo de classificação topológica para enumerar, mas não sei ao certo por que seu algoritmo o notaria e terminaria suficientemente rápido? (Outro ponto: você diz "vizinho", mas o gráfico é um DAG; você quis dizer "filho"?)
a3nm
O ajuste no primeiro parágrafo é gerar todos os pedidos possíveis, independentemente dos rótulos. Para limitar os pedidos no caso de rótulos semelhantes, é importante evitar a seleção de vértices dos mesmos rótulos se eles parecerem estar conectados de maneira semelhante ao gráfico não visitado restante. Assim, eles criariam gráfico isomórfico não visitado, gerando a mesma ordem topológica.
Sbzk 6/08/19
O(n2)
Obrigada pelo esclarecimento. No entanto, estou procurando um polinômio vinculado à complexidade que se aplica a todos os casos, não uma heurística sem garantias teóricas! :)
a3nm