Referência original para Huffman em forma de Merge Sort?

8

Qual é a primeira publicação do conceito de otimização de mesclagem por

  1. identificar sequências de posições consecutivas em ordens crescentes (também conhecidas como execuções) em tempo linear; então
  2. mesclando repetidamente as duas seqüências mais curtas e adicionando o resultado dessa mesclagem à lista de fragmentos classificados.

Em algumas de minhas publicações (por exemplo , http://barbay.cl/publications.html#STACS2009 , http://barbay.cl/publications.html#TCS2013 ), usei esse truque para classificar mais rapidamente e gerar uma estrutura de dados compactada para permutação.

Parece que esse truque foi introduzido antes, apenas no contexto de uma classificação mais rápida, mas nem eu nem meu aluno conseguimos encontrar a referência de volta?

Jeremy
fonte
você checou Knuth? Lembro-me que havia um pouco em execução no TAOCP.
Mikolas 9/08/16
1
n/2ρn(1+lgρ)(n1,,nρ)n(1+2H(n1,,nρ))
O(n(1+lg(r+1)))

Respostas:

9

Encontrei o resultado oculto em um obscuro relatório técnico 4p: compartilho meus resultados aqui caso outras pessoas estejam interessadas.

  1. Knuth menciona execuções em sua descrição de "classificação de mesclagem natural" (página 160 do tomo 3 da 3ª edição), mas ele analisa sua complexidade apenas em média (que produz n / 2 execuções), não em função do número ρ de corre
  2. em 1985, Mannila provou que o Natural Mergesort leva tempo dentro de O (n (1 + lg (r + 1))) para classificar n elementos que formam r runs.
  3. em 1996, Tadao Takaoka ( http://dblp.uni-trier.de/pers/hd/t/Takaoka:Tadao ) introduziu a noção de entropia da distribuição dos tamanhos (n1,…, nρ) das execuções em um artigo técnico de 4 páginas, intitulado "Minimal MergeSort", e comprovou a complexidade das comparações den(1+2H(n1,,nρ))
  4. em 2009, a técnica foi apresentada no simpósio Fundamentos de Matemática da Ciência da Computação (juntamente com resultados sobre classificação, caminhos mais curtos e árvores mínimas).
  5. em 2010, foi publicado na revista Information Processing sob o título "Entropia como complexidade computacional", com um co-autor adicionado, Yuji Nakagawa ( https://www.semanticscholar.org/author/Yuji-Nakagawa/2219943 ) .

Uno-me às referências bibtex abaixo.

@TechReport {1997-TR-MinimalMergesort-Takaoka, autor = {Tadao Takaoka}, título = {Mergesort mínima}, instituição = {Universidade de Canterbury}, ano = 1997, nota = { http://ir.canterbury.ac. nz / handle / 10092/9676 , acessado pela última vez em [2016-08-23 ter]], abstract = {Apresentamos um novo algoritmo de classificação adaptável, chamado classificação de mesclagem mínima, que mescla as execuções ascendentes na lista de entradas de menor para maior, isto é, mesclando as duas listas mais curtas de cada vez. Mostramos que esse algoritmo é ideal em relação à nova medida de pré-ordenação, chamada entropia.}}

Neste artigo, introduzimos a medida da entropia H (S) para incerteza nos dados de entrada parcialmente resolvidos S (X) = (X 1, ..., X k), onde X é o conjunto de dados inteiro e cada X i é já resolvido. Usamos a medida de entropia para analisar três exemplos de problemas, classificação, caminhos mais curtos e árvores de abrangência mínima. Para classificar X i é uma execução ascendente e, para caminhos mais curtos, X i é uma parte acíclica no gráfico fornecido. Para árvores de abrangência mínima, Xi é interpretado como uma árvore de abrangência mínima parcialmente obtida para um subgráfico. A medida de entropia, H (S), é definida considerando pi = | X i | / | X | como uma medida de probabilidade, isto é, H (S) = - nΣki = 1pilogpi, onde n = kii = 1 | Xi |. Em seguida, mostramos que podemos classificar os dados de entrada S (X) no tempo de O (H (S)) e resolver o problema do caminho mais curto no tempo de O (m + H (S)) em que m é o número de arestas do gráfico.

@article {2010-JIP-EntropyAsComputationalComplexity-TakaokaNakagawa, autor = {Tadao Takaoka e Yuji Nakagawa}, título = {Entropia como complexidade computacional}, diário = jip, volume = {18}, páginas = {227--241}, ano = {2010}, url = { http://dx.doi.org/10.2197/ipsjjip.18.227 }, doi = {10.2197 / ipsjjip.18.227}, registro de data e hora = {Wed, 14 Sep 2011 13:30:52 +0200 }, biburl = { http://dblp.uni-trier.de/rec/bib/journals/jip/TakaokaN10 }, bibsource = {bibliografia da ciência da computação dblp, http://dblp.org}, abstract = {Se a instância do problema fornecida for parcialmente resolvida, queremos minimizar nosso esforço para resolver o problema usando essas informações. Neste artigo, apresentamos a medida de entropia, H (S), para incerteza em dados de entrada parcialmente resolvidos S (X) = (X1,.., Xk), onde X é o conjunto de dados inteiro e cada Xi já está resolvido. Propomos um algoritmo genérico que funde repetidamente o Xi e termina quando k se torna 1. Usamos a medida de entropia para analisar três exemplos de problemas, classificação, caminhos mais curtos e árvores de abrangência mínima. Para classificar Xi é uma execução ascendente, e para árvores de abrangência mínima, Xi é interpretado como uma árvore de abrangência mínima parcialmente obtida para um subgráfico. Para caminhos mais curtos, Xi é uma parte acíclica no gráfico fornecido. Quando k é pequeno, o gráfico pode ser considerado quase acíclico. A medida de entropia, H (S), é definido considerando pi = ¦Xi¦ / ¦X¦ como uma medida de probabilidade, ou seja, H (S) = -n (p1 log p1 +.. + pk log pk), onde n = ¦X1¦ +. . . + ¦Xk¦. Mostramos que podemos classificar os dados de entrada S (X) no tempo O (H (S)) e que podemos concluir a árvore de abrangência de custo mínimo no tempo O (m + H (S)), em que m no número de arestas. Em seguida, resolvemos o problema do caminho mais curto no tempo O (m + H (S)). Por fim, definimos a entropia dupla no processo de particionamento, segundo o qual damos o tempo limite em uma classificação rápida genérica e o problema do caminho mais curto para outro tipo de gráficos quase acíclicos.} onde m no número de arestas. Em seguida, resolvemos o problema do caminho mais curto no tempo O (m + H (S)). Por fim, definimos a entropia dupla no processo de particionamento, segundo o qual damos o tempo limite em uma classificação rápida genérica e o problema do caminho mais curto para outro tipo de gráficos quase acíclicos.} onde m no número de arestas. Em seguida, resolvemos o problema do caminho mais curto no tempo O (m + H (S)). Por fim, definimos a entropia dupla no processo de particionamento, segundo o qual damos o tempo limite em uma classificação rápida genérica e o problema do caminho mais curto para outro tipo de gráficos quase acíclicos.}
}

Jeremy
fonte