martes, 17 de agosto de 2010

Ensayo: Programas del universo

NOTA: Para leer este texto en el formato original (word) dar click AQUÏ
 

Para definir Universo, las palabras más utilizadas son: “todo lo que existe”, y este concepto se ha mantenido durante gran parte de la historia del hombre. Es por eso que se han generado algunas teorías y principios para poder explicar lo que nos rodea, las cuales se basan en las ciencias, además de la observación del comportamiento de los seres en el entorno. En este texto, se tratara aquello con un enfoque a la computación y la tecnología.
 
El principio de la “Navaja de Ockham” enuncia que si hay varias teorías que tienen las mismas condiciones y llevan a los mismos resultados, se debe preferir la que es más simple. Con respecto a la computación y programación, esta idea me parece muy aceptable porque lo que uno puede hacer en muchas líneas de código, se puede reducir a solo unas cuantas. Sin embargo en relación a las actividades que tienen que ver con el comportamiento humano (derecho, medicina, etc.) se hace necesaria la búsqueda de la mayor cantidad de pruebas para afirmar una sentencia.
 
Por otro lado esta teoría busca reducir al máximo el número de variable “innecesarias”, por lo que en la búsqueda del conocimiento eliminó al hombre como intermediario. Esto me parece absurdo, ya que para que algo sea estudiado es necesario que exista la curiosidad, y para que esta se dé, lógicamente existen seres que la posean. Así mismo pueden darse casos en que las variables sean necesarias, pero sean tan “parecidas” que al eliminarse una, todo el resultado sea muy distinto al esperado. 
 
La “Navaja de Ockham” se ve involucrada con el avance de la ciencia en que su postulado puede producir diferentes resultados en relación a los descubrimientos que el hombre va teniendo, ya que muchas veces se ha tomado como simple, aquello que no tiene explicación (lo toma como algo natural). Por ejemplo: Antes se creía que la tierra era plana, pero había algunas personas que afirmaban que era “esférica”; desde luego la  opción más preferible, basándose en el principio, era la primera. 
 
La teoría de Ockham tiene una aplicación en las ciencias de la computación y en ingeniería de Software, en principios como el de KISS, que consisten en mantener el software tan simple como sea posible. Sin embargo debe tenerse en cuenta que simple no es lo mismo que fácil. La solución más simple por lo general es la más difícil de encontrar.
 
Otro principio acerca de nuestro universo es el llamado “Principio antrópico”. Este afirma que el universo evolucionó hasta la forma como es, porque esa era la manera de que existiera vida inteligente. A mi parecer, es una forma de poner al ser humano como el “fin” del universo, es decir, tratar de observarlo como la forma más superior que pueda existir en este. Este principio se divide en 2:
 
El Principio Antrópico Débil, el cuál afirma que nuestra existencia implica un Universo con condiciones que posibilitan la inteligencia basada en una estructura biológica. Contra esto se puede decir que no necesariamente la inteligencia  tiene que ser de origen biológico, un ejemplo es la inteligencia artificial desarrollada a través de métodos computacionales. Por otro lado, la definición de algo biológico es confusa, ya que la tecnología limita la exploración de los seres que se conocen como vivos al planeta.
 
El principio fuerte  nos dice que el universo es así porque desde su primer instante la condición de que llegue a desarrollar vida inteligente determina tales propiedades. Si se le ve desde el punto de vista de Ockham, este principio no tiene sentido, ya que es más sencilla una explosión de materia que lo originó todo (Big Bang),  que un universo con muchas variables que se organizan específicamente para crear a un ser inteligente. 
 
El principio antrópico también menciona que todo lo que existe y ha existido se tiene que dar en el momento exacto, es decir, las propiedades de las partículas actuales son distintas a aquellas que existieron antes. Observando la Programación Orientada a Objetos hay una similitud en cuanto a que los elementos del universo son como objetos que tienen un tiempo determinado por un constructor y un destructor, además que todos pertenecen a clases específicas y si hubiese el objetivo de crear un ser inteligente, este sería el “Output” del programa. 
 
Sin embargo, cuando se manejan algoritmos de tipo evolutivo es posible determinar que aquello que evoluciona es producto del medio que el programador crea, más no al revés, por lo que la inteligencia sería producto del universo.
 
Hablando acerca del origen del universo podemos hallar una teoría relacionada con el campo de la computación:
 
El universo computable de Konrad Zuse se refiere a que toda la física es susceptible de ser creada en computación. Si bien, los avances científicos han permitido que se estudien algunas magnitudes físicas así como la simulación de estas a través de computadores, es posible que en un futuro se lleguen a conocer todos los aspectos de la física y la tecnología permita recrear todo aquello que conocemos. 
 
Por otro lado, la computación puede ir más allá de la física, ya que al no limitarse en esta y no ser algo cuantificable, permite crear leyes que no existen en la vida real, o incluso quebrantar las reales. Digamos que se hace una simulación de un ecosistema selvático, entonces le podríamos poner una gravedad 4000 veces mayor a la real. Como en la informática se pueden diseñar programas con cualquier tipo de objetivos, el principio antrópico se vería afectado al no ser el único objetivo la creación de seres inteligentes. 
 
El software es invisible, no ocupa un espacio físico, a pesar de poder representar cualquier realidad física existente o inexistente. A través de la programación se puede representar cualquier pensamiento contemplado en la mente del hombre. En una escala industrial se requiere que el software represente las necesidades de los clientes. La representación, obtención de lo que los clientes requieren puede ser un proceso difícil.
 
Aunque toda física sea susceptible de ser reproducida, teniendo en cuenta que él software no ocupa un lugar físico, se podrían representar entidades de una forma lógica, esto supone la capacidad de aproximar u obtener soluciones a problemas del pensamiento, pero a nivel físico, seguirían las mismas limitaciones. 
 
Cuando se habla de simplicidad a nivel de software, se pueden tener en cuenta aspectos como la usabilidad del mismo, la rapidez del mismo, la forma en la que interactúan diferentes componentes en el software. Como expresión del pensamiento humano es muy difícil medir la simplicidad de una forma objetiva ó desde un único punto de vista.
 
Ante el argumento de Dios como programador, este postulado es interesante pues el programador tiene el poder de crearlo todo. Sin embargo Dios no es caprichoso y las personas que elaboran programas de computador por lo general trabajan en equipos, y como seres humanos tienen diferentes modos de pensamiento que incrementan la complejidad en la creación o que con buena coordinación pueden producir mejores resultados.
 
Ante el argumento de garbage in garbage out, es interesante ver que aplica para la programación pues si a un programa, se le proporcionan parámetros de entrada sin sentido lo más probable es obtener datos sin sentido como salida. Esto puede ser controlado por los programadores si ante parámetros inválidos de entrada informan al usuario de esta situación o en algunos casos la generación de salidas sin sentido puede ser una alternativa.
 
El desarrollo de programas es un proceso creativo que implica contemplar el mayor espacio de parámetros de entrada posible y la mayor cantidad de situaciones inesperadas posibles para tener software susceptible a fallas, la complejidad es algo que pertenece al software y una forma de enfrentarla es a través del proceso creativo de construcción de software. 
 
Cambiando de aspecto, si se tiene un ejemplo de dos casos como el de una moneda (esta se tiene que lanzar hasta que caiga cara), en la medida en el que se incrementa el número de lanzamientos mayor es el espacio de posibles valores en el que se pueda dar una solución requerida. Si se observa el tipo de función de 2^n, se habla de una función exponencial que crece rápidamente. Esto representa la complejidad del universo y el posible espacio de soluciones y dimensiones que se pueden tener si para un espacio simple de dos únicas opciones se tiene este espacio de tipo exponencial. 
 
Aplicando el principio de Ockham, el número de espacio de dimensiones correspondería a esta función (2^n)  ya que 2 es el mínimo número (natural) del que pueden salir otros al elevarse n veces. Sin embargo, si al probar varias veces y en una vez se necesitan menos pasos, 2^n se divide en 2, lo que llevaría a una cantidad de pasos igual a 1. La aplicación al universo de esta reducción de pasos resultaría en que lo actual resultó espontáneamente de algo previo, lo que haría dejar de ver al universo  como un algoritmo.
 
Como conclusión, podría decirse que la complejidad en cuanto a computación, realmente corresponde al concepto dado por Jürguen Schmidhuber: Lo simple es aquello que es más rápido, no lo más extenso. Se podría dar que hayan existir 2 programas que tengan distinta cantidad de código, pero igual objetivo. Si el más extenso logra el objetivo en un menor tiempo, estará gastando recursos, y al verse menos “variables innecesarias” involucradas, por el principio de Ockham este es el programa preferible (el más simple). 
 
También se puede llegar a otra conclusión: El principio antrópico es casi que incorrecto puesto que al hombre crear la computación, dio paso a la siguiente generación de inteligencia, que no corresponde a la biología tradicional;  esta es la inteligencia artificial.

No hay comentarios:

Publicar un comentario