Suponha que temos uma matriz n por n. É possível reordenar suas linhas e colunas para obter uma matriz triangular superior?
Esta questão é motivada por este problema: Ordenação topológica positiva
O problema de decisão original é pelo menos tão difícil quanto este, então um resultado de completude do NP também resolveria isso.
Edit: Laszlo Vegh e Andras Frank chamaram minha atenção para um problema equivalente solicitado por Gunter Rote: http://lemon.cs.elte.hu/egres/open/Graphs_extendable_to_a_uniquely_matchable_bipartite_graph
Editar: A redução para o problema original é a seguinte. Suponha que o DAG tenha apenas dois níveis, que corresponderão às linhas e colunas da matriz. Além disso, temos um único nó com peso +1. Todos os outros no nível inferior têm peso -1 e no nível superior +1.
fonte
Respostas:
O problema acabou sendo NP-completo. Você pode ler mais em detalhes aqui e aqui . Pequeno resumo:
A redução é de um problema que Dasgupta, Jiang, Kannan, Li e Sweedyk demonstrou ser NP-completo: dado um gráfico bipartido G e um número inteiro k, decida se G tem um subgrafo induzido em 2k nós que podem ser estendidos para seja singularmente correspondível. Foi observado pelo Stéphane Vialette que isso reduz a versão correspondente bipartida exclusiva desse problema se adicionarmos nk nós isolados às duas classes.
fonte
Atenção: Esta é uma resposta parcial baseada em conjecturas e boatos! Enquanto o problema mais geral de David Eppstein é NP-completo, talvez este esteja em P.
Até agora, não consegui encontrar nenhum exemplo em que um gráfico atenda a essas condições, mas deixa de ser UPMX. Nesse caso, talvez eles sejam suficientes. Pode-se provar isso pelo seguinte algoritmo:
Você pode caracterizar quais novas arestas criariam uma correspondência perfeita usando o teorema de Hall, e não é difícil caracterizar quais novas arestas violariam o limite de grau. Infelizmente, mesmo que seja verdade que sempre existe uma aresta do tipo certo, não consegui provar.
fonte
Este artigo, Obtendo uma matriz triangular por permutações independentes de coluna de linha Fertin, Rusu e Vialette, mostra que o problema é NP-completo para matrizes quadradas binárias.
fonte
O problema é NP-completo, mas onde está o algoritmo para resolvê-lo? Eu tenho um algoritmo que funciona em muitos exemplos, mas não posso demonstrar que isso funcionará o tempo todo.
fonte