Teste / identificação de uma classificação topológica

8

Você é dado um conjunto de Directed acíclico Gráficos G 1 , G 2 , . . . , L n sobre o mesmo conjunto de m vértices V . Você também está dado uma permutação do conjunto de vértices ( v 1 , v 2 , . . . , V m ) . Qual é o melhor algoritmo que poderia identificar os gráficos entre G 1 , G 2 , . . . , G nnG1,G2,...,GnmV(v1,v2,...,vm)G1,G2,...,Gnque tem como uma espécie topológica? Poderia alguém teste se ( v 1 , v 2 , . . . , V m ) é um tipo topológica de um DAG L sobre V em vez de sub-linear? (v1,v2,...,vm)(v1,v2,...,vm)GV

Hsien-Chih Chang 張顯 之
fonte
6
Você é capaz de construir uma estrutura de dados com base no conjunto de gráficos antes de receber a ordem dos vértices? Você precisa olhar para todos os gráficos e todas as arestas m - 1 na ordem, portanto, a menos que você possa pré-processar os gráficos de alguma forma, não parece que você poderia superar o tempo linear. nm1
Mjqxxxx
Hsien-Chih Chang, qual seria uma boa técnica de pré-processamento que permita uma solução melhor? Algum tipo de hash? Eu acho que você pode vencer o tempo linear se puder aproximar a solução (algoritmo probabilístico).
precisa saber é o seguinte
@ user2471: Como eu disse na sua resposta anterior, este post foi escrito por @Steve, não eu;)
Hsien-Chih Chang 21 之
Desculpe Hsien-Chih Chang, a minha pergunta era para todos :)
user2471
@ user2471, não precisa se desculpar! Espero que alguém familiarizado com esta pergunta poste uma boa resposta: D
Hsien-Chih Chang #

Respostas:

3

Isso pode ser feito em tempo quase linear.

π=(v1,,vm)k=k(π)(u,v)πMiGiπO(kMi)O(kMi)

πkmlogm(log m)a[w]wπk=O(logm)O((logm)Mi)

Ω(KMi)KK=o(logm)Ω(Mi)

András Salamon
fonte
Qual algoritmo pode ser usado para criar k = log m. É sufixo árvores?
vincent mathew
0

Método trivial:

GS = {G1,G2...G3}
for v in (v1,v2,...vm)
      remove all graphs from GS where indegree(v) != 0
      remove v and attached edges from remaining GS

Não é tão rápido quanto você deseja. Mas resolve um problema que "pode ​​haver vários pedidos topológicos válidos do DAG". E encontrar todos eles não é uma boa ideia.

Pratik Deoghare
fonte