Universo

De WikiIdeas, la enciclopedia libre.

Esta idea suena un poco a ciencia ficción, pero como idea estúpida es algo que a todos nos gustaría ver hecho o hacerlo.

Todos sabemos que la informática se ha centrado en intentar reproducir el comportamiento de un ser humano. Aunque haya tenido otras aplicaciones, las cosas que dominan son las chorradas que nos hacen manejar el mundo o crear cosas como si fueramos Dioses, de ahi que uno de los juegos que mas exitos han tenido son Los Sims, son juegos que te permiten actuar como si fueras un Dios. Y también algo que ultimamente esta teniendo eco en las noticias y en las películas, los robots.

Mi idea se centra en hacer programas que evolucionen, no es algo nuevo pero bueno.

Mi primera conclusión era hacer un programa que dada una entrada y una salida deseada, implementara el algoritmo que se acercara a esa solución, ejemplo práctico:

  1. A partir de un modelo base de programa, generar mutaciones a ese programa (insertar lineas de codigo aleatorias y borrar lineas de codigo aleatorias) y ver que resultados da. Por ejemplo generamos 1000 programas
  2. Aceptar los más aptos (100) y eliminar el resto (900). Los más aptos ante un algoritmo de ordenación seria aquellos que han tenido una salida lo mas cercana a la deseada.
  3. Repetir el paso 1, generando 10 mutaciones por cada programa exitoso, con lo cual tendriamos otra vez 1000 programas.
  4. En el paso 1 seria bueno siempre dejar una mutación invariable por si hemos encontrado una correcta.

Es complicado de explicar e incluso de hacer, pero la idea es definir operaciones basicas para modificar el programa y ver que sucede.

Despues de pensar esto, pense que se podía hacer algo no tan sencillo y obvio. Se podría hacer un programa que se mutase a si mismo y viviera dentro del sistema operativo. El problema de esto es que un programa asi podria bloquear el ordenador o podrían pasar cosas tan impredecibles que no sabriamos si se esta llevando correctamente o no.

Mejoras a este problema, hacer un programa llamado UNIVERSO que sería como un Framework o una Máquina Virtual, que controlaria a todos aquellos programas que viven dentro de el y tomaria decisiones sobre si un programa deberia morir, no deberia consumir tanta CPU, etc....

Los programas deberian ejecutarse dentro de ese UNIVERSO y no afectarian al funcionamiento normal del sistema. Podrian hacerse mutaciones y cosas parecidas, pero el dominio de ejecucion estaria dentro del UNIVERSO.

Hablando con slack hemos visto que el mayor problema que tiene este sistema es saber decidir cuales son los programas aptos y cuales no, como también tomar una decision de como visualizar todos estos programas para saber si esta funcionando bien el sistema, si evoluciona y si este proyecto podria tener sentido.

Bueno, de momento dejo aqui la idea aunque seguramente se muera de asco.

--BorSanZa

--aTMsA 21:38 2 may, 2005 (CEST) Yo diria que el mayor problema no es decidir que programas son aptos o no, que dependiendo de lo que se quiera puede ser mas facil o no, por ejemplo un metodo seria el del code wars, el programa que pierde es peor y au. El problema de verdad es que para sacar algun resultado interesante habria que pillar unos añitos de uso en el blue gene, o similar. Vamos, ya solo para que una mutacion no produzca un segfault...