Agrupa os arquivos para o tamanho médio do maior arquivo

0

Eu tenho 6 arquivos e gostaria de agrupá-los por 2 ou 3 de acordo com o tamanho médio.

file1.log 50G
file2.log 40G
file3.log 20G
file4.log 10G
file5.log 30G
file6.log 70G

File6 is 70G é o maior arquivo e gostaria de agrupar o restante dos arquivos de acordo com o maior.

A saída deve ficar assim:

  1. O grupo de 1 deve conter todos os arquivos - Paralelo 1
  2. Agrupar por 2 - Paralela 2

Resultado 1

file4.log 10G
file5.log 30G
file6.log 70G

Saída 2

file1.log 50G
file2.log 40G
file3.log 20G

A média de aviso é de que ambos os arquivos são iguais.

O terceiro grupo paralelo 3 deve ficar assim:

saída 1

file6.log 70G

output2

file1.log 50G
file3.log 20G

output3

file2.log 40G
file4.log 10G
file5.log 30G

Não precisa ser a média exata, basta dividir o arquivo na média mais próxima possível.

Obrigado !!

    
por Kwa Arboncana 27.11.2018 / 07:04

1 resposta

0

Isso parece ser praticamente equivalente ao problema Bin Packing .

O problema de Bin Packing é NP-difícil, então não há nenhum atalho conhecido para fazê-lo, força bruta (tentar todas as opções em uma ordem sensata que exclui tentativas bobas, como adicionar mais arquivos a um grupo já superdimensionado) é o caminho a percorrer.

Para seis arquivos, a abordagem de força bruta deve ser simples o suficiente para ser feita manualmente; Basta listar todos os agrupamentos possíveis, contar como eles dividem o uso do arquivo e escolher aquele que oferece o menor tamanho máximo de grupo.

    
por 27.11.2018 / 09:24