Una forma de pensar en la entropía es "obtener información promedio", por lo que creo que es mejor volver a modelar la información. Sé de dos enfoques básicos para modelar matemáticamente la información. (Perdóname por dar referencias de Wikipedia, pero en mi humilde opinión, no son malas).
Información de Shannon , que analiza los conjuntos de símbolos, las distribuciones de probabilidad de esos, los códigos que pueden transferir información entre los conjuntos de símbolos y las longitudes de esos códigos. Los conceptos generales de eficiencia de código, ruido, detección y corrección de errores mediante redundancia, etc. se expresan en términos de la teoría de la información de Shannon. Una forma de expresar información es decir que es la longitud del código binario más corto que podría representar un símbolo. Esto se basa en la probabilidad, que es un valor numérico asignado a un símbolo o evento por algún observador.
Información de Solomonoff (o Kolmogorov ). Aquí hay otra explicación. En esta formulación, el contenido de información de un símbolo o evento está representado por la longitud del programa más corto que podría calcularlo. Aquí nuevamente, es relativo, no a un observador que asigna probabilidad, sino a una máquina universal que puede ejecutar el programa. Dado que cada máquina universal puede ser simulada por una máquina de Turing universal, eso significa, en cierto sentido, que el contenido de información del símbolo o evento no es relativo, sino absoluto.
Si puedo tomarme la libertad de decir lo que creo que esto significa en términos cotidianos, sobre lo que escribí un libro , simplemente significa que la complejidad de un programa es su duración, cuando cosas como la especificación funcional y el lenguaje se mantienen constantes, con asignaciones para cosas como comentarios y longitudes de nombre. Pero hay un problema con esto: el "tarpit APL", donde la concisión es igual a la incomprensibilidad.
Es mucho mejor considerar (como lo hice mientras estudiaba IA) que la especificación funcional del programa consiste en un modelo mental, que no solo es real, sino que está codificado de manera eficiente, es decir, con una redundancia lo suficientemente pequeña que cambia la opinión sobre los requisitos. se puede hacer sin demasiado peligro de hacerlo internamente inconsistente, es decir, tener un "error". Entonces, el proceso de programación es un canal de información que toma como entrada el modelo mental, y su salida es el código fuente de trabajo. Luego, cuando se realiza un cambio en el modelo mental, ese delta debe alimentarse a través del proceso de programación y convertirse en un delta correspondiente en el código fuente. Ese delta se mide fácilmente. Diferencia la fuente entre antes de aplicar ese delta, y después de aplicarlo (completamente, con todos los errores resueltos), y cuente el número de bloques de código insertados, eliminados y reemplazados. Cuanto más pequeño es, mejor representa el lenguaje del código fuente el lenguaje en el que está representado el modelo mental (en términos de sustantivos, verbos y estructura). Si esa medida se promedia de alguna manera en el espacio de posibles cambios funcionales, ese es un concepto de entropía del lenguaje fuente, y menos es mejor. Hay un término para esto:Lenguaje específico de dominio (DSL)
Lo siento si las referencias son débiles / personales, pero creo que esta pregunta general es muy importante.