Máximos de diagonais em uma matriz classificada em colunas e em linhas


7

Deixei {ai} e {bEu} ser sequências não decrescentes de números inteiros não negativos.

Com que velocidade se pode encontrar para todos os ?

cj=max0 0Eu<j{umaEu+bj-Eu-1 1}
0 0jn-1 1

Ingenuamente, leva O(n2) tempo, mas espero que a monotonicidade possa ajudar aqui.

É fácil observar que {cEu} também não diminui. Se considerarmos a matriz M que MEu,j=umaEu+bj , ela é uma matriz classificada na direção da linha e da coluna e estamos procurando o elemento máximo em todas as diagonais.

No entanto, se for uma matriz arbitrária de colunas e de linhas, este problema exigirá tempo Ω(n2) .

Prova: Deixe todos os números abaixo da diagonal principal serem . Os elementos na k ésima diagonal são números aleatoriamente de (k,k+1 1) . A leitura de qualquer entrada não fornece informações para nenhuma outra entrada.

Edit: Este problema é muito mais difícil do que eu imaginava. Podemos modelar esse problema como um problema de convolução ao longo do semiring (min,+) (pegue o dual, pesquise min em vez de max) e ele pode ser resolvido em O(n2registron) tempo, de acordo com a resposta de Ryan Williams no mathoverflow . Porém, ele não usa as informações de que a sequência não diminui.

Respostas:


5

Ótima pergunta! "Transformações de distância de funções amostradas", de Felzenszwalb e Huttenlocher, mostra como calcular isso em .O(nlgn)

"Colares, convoluções e X + Y", de Bremner et al. mostra um algoritmo para esse problema na RAM real e um algoritmo no modelo de árvore de decisão linear não uniforme.O(n2lg2n(lglgn)3)O(nn)


11
Vejo que meu problema é um problema especial de convolução mínima. No entanto, o artigo não diz muito sobre o caso geral. Requer que uma das funções seja convexa / côncava para calcular emO(nregistron)Tempo.
Chao Xu

Eu acho que o primeiro é O(n2registron), o limite que você dá é para o (medEuuman,+)versão.
Chao Xu

11
Veja # 3 na página 5.
jbapple 22/11

Entendo! meu erro.
Chao Xu
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.