Um número surpreendente de problemas tem reduções bastante naturais na programação linear (LP). Veja o Capítulo 7 de [1] para exemplos como fluxos de rede, correspondência bipartida, jogos de soma zero, caminhos mais curtos, uma forma de regressão linear e até avaliação de circuitos!
Como a avaliação do circuito se reduz à programação linear, qualquer problema em deve ter uma formulação de programação linear. Portanto, temos um "novo" algoritmo de classificação, via redução para um programa linear. Então, minhas perguntas são
- Qual é o programa linear que classificará uma matriz de números reais?
- Qual é o tempo de execução do algoritmo de classificação reduzir para LP e resolver?
- Algoritmos de S. Dasgupta, C. Papadimitriou e U. Vazirani (2006)
Respostas:
A resposta a seguir é basicamente equivalente à que você já conhece, mas pode parecer um pouco menos "mágica". Por outro lado, é mais técnico, mas acredito que a técnica geral "escreva seu problema como uma otimização em matrizes de permutação e invoque Birkhoff-von Neumann" é excelente.
Para uma permutação de { 1 , … , n } defina a matriz de permutação P σ como a matriz 0-1, de modo que P i j = 1 se j = σ ( i ) e P i j = 0 caso contrário. Esta é simplesmente a matriz que permite as coordenadas de um vetor x de acordo com σ : se y = P σ x então y i = x σσ {1,…,n} Pσ Pij=1 j=σ(i) Pij=0 x σ y=Pσx . Denotareiy= P σ xcomoσ(x) apartir de agora.yi=xσ(i) y=Pσx σ(x)
Mais uma definição: um não negativo matriz H é duplamente estocástica se cada uma das suas linhas e cada uma das suas colunas montantes para um.n×n M
E um fato que é muito importante na otimização combinatória - o teorema de Birkhoff-von Neumann:
Observe que uma matriz duplamente estocástica é definida pelas desigualdades
∀ j : n ∑ i = 1 M i j = 1 ∀ i , j : M i j ≥ 0
Portanto, dada uma entrada a ser classificada, precisamos apenas apresentar um objetivo linear f a ( Ma=(a1,…,an) fa(M)
E pronto, você tem um programa linear para classificação. Parece bobagem para classificação, mas esse é, de fato, um método poderoso de otimização.
fonte