Considere o problema em que nos é dado como entrada um gráfico acíclico direcionado , uma função de rotulação de para um conjunto com uma ordem total (por exemplo, os números inteiros) e onde nos perguntam para calcular o tipo topológico lexicograficamente menor de em termos de . Mais precisamente, um tipo topológico de é uma enumeração de como , tal que para todos os , sempre que houver um caminho de para emλ V L < L G λ G V v = v 1 , … , v n i ≠ j v i v j G i < j S l = λ ( v 1 ) , … , λ ( v n ) | V | l < LEX l ′ i , então devemos ter . O rótulo dessa classificação topológica é a sequência de elementos de obtidos como . A ordem lexicográfica dessas seqüências (todas com comprimento ) é definida como se houver alguma posição tal que e para todos os . Preste atenção ao fato de que cada etiqueta em pode ser atribuída a vários vértices em (caso contrário, o problema é trivial). l j = l ′ j j < i S V
Esse problema pode ser declarado em uma variante de computação ("calcular a classificação topológica lexicograficamente mínima") ou em uma variante de decisão ("essa palavra de entrada é a classificação topológica mínima?"). Minha pergunta é: qual é a complexidade desse problema ? Está em PTIME (ou em FP, para a variante de computação) ou é NP-difícil? Se o problema geral for difícil para o NP, também estou interessado na versão em que o conjunto de possíveis rótulos é corrigido com antecedência (ou seja, existe apenas um número constante de rótulos possíveis).
Observações:
Aqui está um pequeno exemplo do mundo real para motivar o problema. Podemos ver o DAG como representando tarefas de um projeto (com um relacionamento de dependência entre eles) e os rótulos são números inteiros que representam o número de dias que cada tarefa leva. Para concluir o projeto, levarei a mesma quantidade total de tempo, independentemente da ordem que eu escolher para as tarefas. No entanto, gostaria de impressionar meu chefe e, para fazer isso, quero concluir o maior número possível de tarefas o mais rápido possível (de maneira gananciosa, mesmo que isso signifique ser muito lento no final, porque as tarefas mais difíceis permanecem). A escolha do pedido lexicograficamente mínimo otimiza o seguinte critério: Desejo escolher um pedido tal que não exista outro pedido e vários dias depois deO ' n n O ' O n O ' m < n o ' odias, eu teria terminado mais tarefas com a ordem que com a ordem (ou seja, se meu chefe olha o tempo , dou uma melhor impressão com ), mas, apesar de todos os eu não concluí menos tarefas com a ordem que com a ordem .
Para dar uma idéia do problema: Eu já sei pelas respostas anteriores que o seguinte problema relacionado é difícil: "existe um tipo topológico que atinge a seguinte sequência"? No entanto, o fato de eu querer uma sequência mínima para essa ordem lexicográfica parece restringir muito as possíveis ordens topológicas que podem alcançá-la (em particular, as reduções nessas outras respostas não parecem mais funcionar). Intuitivamente, há muito menos situações em que temos uma escolha a fazer.
Observe que parece haver reformulações interessantes dos problemas em termos de cobertura de conjuntos (ao restringir o problema a DAGs bipartidos, ou seja, com altura dois): dado um conjunto de conjuntos, enumere-os na ordem que minimiza lexicograficamente a sequência,,, ,. O problema também pode ser reformulado em gráficos não direcionados (expanda progressivamente uma área conectada do gráfico seguindo a ordem que minimiza a sequência lexicográfica dos rótulos descobertos). No entanto, devido ao fato de a sequência ter Para ser ganancioso o tempo todo, por definição da ordem lexicográfica, não consigo obter reduções (por exemplo, da árvore Steiner) para funcionar.
Agradecemos antecipadamente por suas idéias!
De acordo com essa referência (1), o primeiro problema de ordem topológica lexicograficamente é NLOG-completo.
Convém dar uma olhada mais aprofundada no artigo para garantir que ele cubra os casos em que você está interessado. Em particular, com base na versão do relatório técnico (pdf) desse artigo, parece que eles ' está tratando a ordenação lexicográfica dos vértices como estrita (por exemplo: em sua notação, para u ≠ v )), mas não tenho certeza se isso afeta a aplicabilidade do resultado.λ ( u ) ≠ λ ( v ) u ≠ v
fonte