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!