Soma máxima da sub-matriz


7

Dada uma matriz de números inteiros, encontre uma sub-matriz cuja soma é máxima. Se houver apenas uma linha ou apenas uma coluna, isso equivale a encontrar um subconjunto máximo .n×mUMA

A versão 1D pode ser resolvida em tempo linear por programação dinâmica. A versão 2D pode ser resolvida em fazendo um loop sobre todos os pares de colunas e usando o algoritmo 1D na matriz cujo comprimento é o número de linhas na matriz em que cada posição mantém a soma dos elementos na linha entre as duas colunas.O(n3)rr

Se a matriz for dada por:

(1 1-20 0-1 15433178-45-12199)

Então, para o par de colunas , a soma máxima da sub-matriz pode ser encontrada usando o algoritmo 1D na matriz (de cima para baixo):(0 0,2)

(1 1-2+0 0=-1 15+43+31=79-45-12+19=-38.)
Alguém sabe de um algoritmo para resolver este problema?O(n2)

Confira este vídeo explicando esta pergunta. Você

Respostas:


2

Eu encontrei o seguinte: Sung Eun Bae, algoritmos sequenciais e paralelos para o problema geral generalizado do subarray . Leia as páginas 18-30, onde diz que existem algoritmos cúbicos e sub-cúbicos para esse problema (no caso geral), por exemplo , Tadao Takaoka algoritmo .O(nm2)O(n3registroregistronregistron)

Também encontrei um comentário no fórum dizendo que esse problema pode ser resolvido em para matrizes com N elementos diferentes de zero usando a árvore de segmentos "engraçada" (você pode perguntar ao comentarista sobre detalhes).O(N2registroN)


A única coisa que eu odeio neste site é que ele está escrito em russo (embora eu o use muito).
precisa saber é

@ saadtaame Eu acho que está escrito em PHP. E você pode usar tradutores para entender textos escritos em russo. Mas eu aconselho você a não dizer essas palavras "Eu odeio", "para não insultar os sentimentos dos crentes" (russ. Provérbio). Alguns de nós (geralmente aqueles que conhecem línguas estrangeiras) têm muito orgulho da nossa língua sem limites (eu também). А вот это перевести нечерезче.
21413 Ralor

Não queria magoar seus sentimentos, desculpe. Sim, eu uso tradutores (eu disse que uso muito o site). Bem, você pode nos fazer um grande favor traduzindo o site para inglês.
precisa saber é
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.