Variantes eficientemente computáveis ​​da complexidade de Kolmogorov


28

A complexidade do prefixo Kolmogorov (ou seja, é o tamanho do programa auto-delimitador mínimo que gera ) possui vários recursos interessantes:xK(x)x

  1. Corresponde a uma intuição de fornecer a strings com padrões ou estrutura uma complexidade menor do que strings sem.
  2. Ela nos permite definir condicional complexidade , ou ainda melhor por algum oráculo .K ( x | O ) OK(x|y)K(x|O)O
  3. É sub-aditivo .K(x,y)K(x)+K(y)

No entanto, tem uma desvantagem terrível: retornar dado é indecidível.xK(x)x

Eu me perguntei se existe uma variante da complexidade Kolmogorov usando um modelo restrito de computação (usando linguagens mais fracas que as TMs ou usando TM limitada com recursos) que preserva os recursos (1) e (2) (recurso ( 3) é um bônus, mas não uma obrigação) enquanto é computável com eficiência?K(x)

A motivação para esta pergunta é para uso em estudos de simulação de vários modelos de brinquedos da evolução. Portanto, é preferível uma resposta que tenha sido usada como uma "aproximação aproximada" da complexidade de Kolmogorov no trabalho numérico. No entanto, o objetivo não é ir completamente experimental, de modo relativamente simples linguagem de descrição / limpa / modelo-de-cálculo para é o preferido, para que ele possa ser possível provar alguns teoremas razoáveis sobre quão drasticamente difere de e sobre que tipo de strings.K KKKK

Relaciona perguntas

Complexidade de Kolmogorov com linguagens de descrição fracas

Existe uma noção sensata de um algoritmo de aproximação para um problema indecidível?

Respostas:


10

Gzip. Cilibrasi e Vitanyi têm um artigo muito bom, onde usam o gzip como uma aproximação da complexidade de Kolmogorov para fazer cluster. Clustering por compactação


1
como eles definem complexidade condicional?
Artem Kaznatcheev

1
Sejam A e B dois documentos e AB sejam os dois concatenados. Eles observam a proporção de SIZE (gzip (A) + gzip (B)) para SIZE (gzip (AB)).
Chad Brewbaker

1
Deve-se estar ciente de que há desvantagens no uso do gzip (e similar) para aproximar a complexidade de Kolmogorov: bactra.org/notebooks/cep-gzip.html . Isso não diz que não é útil para agrupar conjuntos de dados da vida real, mas diz que sua utilidade para conjuntos de dados da vida real nos diz algo sobre como esses conjuntos de dados são diferentes, por exemplo, da saída de um gerador de números pseudoaleatórios ...
Joshua Grochow

3

Pensei mais na minha pergunta e cheguei à possível solução. Ele tem duas limitações, é definido apenas em cadeias de comprimento (embora eu discutirei isso mais) e não fala sobre máquinas universais de Turing, mas sim seguindo uma pergunta anterior e usando um modelo alternativo de computação.n=2m


Basicamente, podemos interpretar uma string com | x | = 2 m como uma função f x : { 0 , 1 } m{ 0 , 1 } . Então, nossa medida de complexidade K ( x ) é o tamanho (número de arestas) do diagrama de decisão binária ordenada reduzida única (ROBDD; com o pedido padrão fixo) representando f x . Isso satisfaz a condição [1]. Além disso, como os ROBDDs podem ser calculados em tempo polinomial em 2 mx|x|=2mfx:{0,1}m{0,1}K(x)fx2m, temos uma medida eficiente.

Para satisfazer a condição [2], precisamos modificar os BDDs padrão, permitindo um tipo especial no nó. Normalmente nós são rotulados por índices , incluiremos um nó oracle especial. Para K ( x | y ) em que | y | = 2 m , permitiremos nós especiais nos BDDs da seguinte forma:i{1,...,m}K(x|y)|y|=2m

a|a|=miaify(a)K(x|x)=2K(x|y)K(x)y

[Nota: não está claro se a complexidade condicional ainda pode ser calculada com eficiência :(]

x.y0x1yK(x.y)K(x)+K(y)


K(x)x|x|=2m|y|=2lm>lK(x.y)=K(x)+K(y)

Infelizmente, também existem algumas limitações na minha abordagem. Não podemos ir muito além dos OBDDs; se considerarmos árvores de decisão mínimas ou apenas BDDs, abordaremos os problemas de intratabilidade abordados nesta resposta . Mesmo para pedidos variáveis ​​de OBDDs, parece haver resultados intratáveis . Parece que os OBDDs são o limite dessa abordagem de complexidade de Kolmogorov, que não é tão parecida com a padrão.


2

Não sou especialista, mas se você precisar de uma medida de complexidade prática para seqüências de caracteres, poderá dar uma olhada na medida de complexidade T de Titchener .

Consulte o site da Titchener para uma rápida introdução; seus artigos podem ser baixados em formato pdf .

Resumo - Uma nova medida da complexidade de cadeias finas é apresentada com base em um processo de produção hierárquico recursivo específico . A partir do limite máximo, deduzimos uma relação entre complexidade e conteúdo total de informações. ..artigo completo ...

Também encontrei alguns documentos sobre implementações práticas (veja, por exemplo, " Um algoritmo de decomposição rápida em T ")


2

Basicamente, quase qualquer método de aprendizado de máquina ou compactação é uma aproximação à complexidade de Kolmogorov:

  • p(x)logp(x)
  • nK(x)n+sCsCx

Assim, você pode simplesmente procurar padrões com qualquer compressor ou distribuição de probabilidade e quanto melhor eles compactarem seus dados, melhor seu limite superior para K (x). Apenas certifique-se de adicionar o tamanho do próprio compressor ao tamanho dos dados compactados para obter a estimativa.

K(x)

K(x)K

Você também pode usar um tempo limitado para definir sua classe de modelo, o que leva à resposta de Suresh. Basicamente, se você assumir que sua fonte de dados possui complexidade de tempo polinomial e tentar todas as máquinas de Turing polinomiais para compactá-la, pode ter certeza de ter estimado com precisão a complexidade de Kolmogorov. Isso ainda pode não ser tão prático, mas, por limites de tempo mais baixos, você pode calcular a mistura bayesiana completa de uma boa aproximação a ela.

Para detalhes técnicos, consulte este documento . Disclaimer: Eu sou um dos autores.

K(x)K(x)


-1

Você está procurando recursos limitados pela complexidade de Kolmogorov. Você pode começar com este documento e se ramificar.


2
obrigado pelo link para o artigo, mencionei a complexidade limitada dos recursos na questão, mas realmente há interesse em medidas que sejam eficientemente computáveis. Parece que o artigo mostra que as 'seqüências aleatórias' desses modelos correspondem a conjuntos de alta complexidade. Isso sugere que decidir a complexidade de uma string nesses modelos não é eficientemente computável, não é?
Artem Kaznatcheev
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.