Comprimiendo un archivo más allá de lo posible

Hay un concurso para todo y uno bien nardo como el de comprimir un archivo de 1GB de texto de Wikipedia en lo más pequeño posible sin perder ni un byte al recuperarlo. Así es, un concurso nerd con un premio calculado de una forma más extraña todavía.

El "Compressing of Human Knowledge" es un premio que va más allá de la ingeniería ya que busca no velocidad sino la capacidad matemática de reducir ese archivo a lo más pequeño posible.

El último récord bajó un 1.04% al predecesor y logró unos 114Mb de ese gigabyte original.

Hace un par de días Saurabh Kumar logró reducir el archivo a 114.146.155 bytes y se llevó a casa un premio de €5187, que sé que no parece mucho, pero el premio se basa en un cálculo en la relación entre lo obtenido y la diferencia con el premio anterior.

El archivo en cuestión, enwik9, es un extracto de Wikipedia por lo que se trata de texto plano entendible. 

Las reglas son las siguientes:

  • Create a Linux or Windows compressor comp.exe of size S1 that compresses enwik9 to archive.exe of size S2 such that S:=S1+S2 < L := 114'156'155 (previous record).
  • If run, archive.exe produces (without input from other sources) a 109 byte file that is identical to enwik9.
  • If we can verify your claim, you are eligible for a prize of 500'000€×(1-S/L). Minimum claim is 5'000€ (1% improvement).
  • Restrictions: Must run in ≲50 hours using a single CPU core and <10GB RAM and <100GB HDD on our test machine.

La máquina donde se ejecuta es una Dell Latitude vieja con un Intel Core i7-620M de dos núcleos y 4 threads a 2.67Hz ¿Por qué tan modesto? Porque la idea de este concurso no es usar la fuerza bruta de los procesadores y algoritmos ya conocidos sino desarrollar nuevos, ideas que quedaron colgadas, que por ahí no son tan eficientes con el hardware actual pero podrían derivar en nuevo hardware que hoy nadie está pensando.

Es salir del molde de lo establecido desde una fórmula muy matemática y no tan ingenieril. No es mala idea, eh!

Este concurso de compresión está motivado por el hecho de que ser capaz de comprimir bien está estrechamente relacionado con actuar de manera inteligente, reduciendo así el escurridizo concepto de inteligencia a números de un tamaño de archivo fijo. 

Para comprimir datos, uno tiene que encontrar regularidades en ellos, lo cual es intrínsecamente difícil (muchos investigadores viven de analizar datos y encontrar modelos compactos). Por lo tanto, los compresores que superan a los compresores "tontos" actuales deben ser más inteligentes. 

Dado que el premio quiere estimular el desarrollo de compresores inteligentes "universales", se necesita un corpus de datos "universal". Podría decirse que Wikipedia es una buena instantánea del conocimiento del mundo humano. Entonces, el compresor final debería "comprender" todo el conocimiento humano, es decir, ser realmente inteligente. enwik9 es, con suerte, un extracto representativo de 1 GB de Wikipedia.

En el fondo todo apunta a Inteligencia Artificial,  Marcus Hutter, el creador del concurso, trabaja como investigador en Google DeepMind.

Me gusta también que ponen un límite de mejora de 1%, es decir, si estás en 0.99% tendrás que seguir rompiéndote la cabeza para mejorar tu algoritmo.

Antes se hacía con un archivo de 100Mb (Enwik8) pero por razones obvias, las capacidades mayores y para representar más conocimiento en un mismo archivo, se pasó al de 1000Mb.

Me mata que el sitio oficial sea tan años 90s... ojo, lo argumentan y todo en su FAQ y los re banco 😁

Si te gustó esta nota podés...
Invitame un café en cafecito.app


Otros posts que podrían llegar a gustarte...

Comentarios

  • NestorJM     26/07/2023 - 11:31:50

    "Este concurso de compresión está motivado por el hecho de que ser capaz de comprimir bien está estrechamente relacionado con actuar de manera inteligente"

    Me encanta este concepto que era fundamental cuando programábamos en maquinitas de 16 o 48K de memoria y en esa exigua cantidad de bytes metíamos algoritmos rebuscados, datos codificados, gráficos, etc...
    Luego, con las PC apelábamos al PKzip, ARC, etc para poder almacenar más en los carísimos diskettes.

    Ahora no se entiende porqué cualquier aplicación chota ocupa centenares de megas ¿la abundancia mató al ingenio?

    • Fabio Baccaglioni     26/07/2023 - 11:49:33

      si, la abundancia mató al ingenio

      hoy un juego AAA promedio pesa un mínimo de 100GB, ni los developers saben en qué se gasta tanto, cada actualización es también de 80GB, porque "es más fácil" pisar todo que sólo aquello que realmente modificaste.

      Al tener RAM y disco baratos se redujo el foco en eso y se volvió todo más tonto, era inevitable.

  • Ignacio     26/07/2023 - 12:00:56

    me hizo acordar a la escena de Silicon Valley de Pipe Pipper.. con el algoritmo de reducción.. :D:D:D

    • Mauro     26/07/2023 - 19:48:23

      esta? https://www.youtube.com/watch?v=P-hUV9yhqgY de las mejores escenas de la serie

  • Alejandro     26/07/2023 - 12:19:54

    Fascinante!
    La explicación que dan el por qué la pagina luce anticuada, esta muy genial :D

  • Gustavo V     26/07/2023 - 23:08:58

    otra maravilla de la compresión, son los llamados zipboms básicamente archivos zip que son tamaño chico (10MB por ejemplo) que abusan del algoritmo y generan archivos de 100GB o más.

    • Danbat     27/07/2023 - 13:52:59

      Esos son los rickrolling de los archivos. Una vez caí en eso y me colapsó el disco.

  • Josepzin     28/07/2023 - 00:57:55

    No conocía este concurso, muy interesante!!

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https

Negrita Cursiva Imagen Enlace


Comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador. Los comentarios son filtrados por ReCaptcha V3.