1. Dirjase a la Biblioteca de la Carrera de Informtica y obtenga una tesis cuya temtica se
encuentre relacionada con la vida artificial. Anote el autor, tutor y fecha de presentacin. Luego responda lo siguiente:
Ttulo: Virus forma de vida artificial en evolucin Autor: Benigno Flix Coparicona Saire Tutor: Ing. Rolando Campuzano Arzabe Fecha: La Paz, Bolivia 2002
a) Cul es el problema que resuelve con el uso del paradigma de la vida artificial? Desea incrementar la capacidad de ocultamiento viral de un virus de computadora a travs del uso de Ingeniera de Mutacin.
b) Cul es el proceso que sigue para obtener el prototipo de la aplicacin propuesta? A travs del uso de criptografa, generacin de nmeros pseudo-aleatorios e ingeniera de mutacin genera mecanismos para que el prototipo (Nmesis) pueda ocultarse en una mquina infectada.
c) Cul es el dispositivo de prueba que utiliza para verificar y validar su prototipo? Al ser el prototipo (Nmesis) un virus computacional este debe ser probado en un sistema operativo con el cual sea compatible, en este caso, la familia Windows 9.x y en especfico afecta a archivos .exe y .scr (screen saver)
d) Qu mtodo sigue la construccin del prototipo? Para la ocultacin hacia el sistema de este virus encripta a este con llaves de 8, 16 y 32 bits como tambin hace uso de llamadas a las APIs del sistema operativo que se encuentran en kernel32.dll y user32.dll
e) Cul es la utilidad del modelo de vida artificial propuesto? Al ser un virus informtico daino a simple vista no se puede ver una utilidad, pero, por otro lado al describir una tcnica de propagacin y ocultamiento que para aquel entonces era considerada daina, esta metodologa de reproduccin, ocultamiento, etc. Puede ser utilizada como vector de partida para la contraofensiva de proteccin (antivirus)
2. Considerando las caractersticas de una mascota y utilizando las propiedades mecnicas de la vida, demostrar que la mascota es un ente vivo.
Reproduccin propia Sea cual sea la especie de la mascota, esta puede reproducirse haciendo un proceso de apareamiento con otra mascota de la misma especie pero del sexo contrario Comportamiento emergente Una mascota cuenta con un conjunto de cromosomas a partir de esto, se puede definir las caractersticas que tendr en un futuro la mascota Metabolismo/adaptabilidad Dependiendo del ambiente, bsicamente esta mascota al ser un ser vivo necesita de comida, agua y cierta temperatura para que esta pueda sobrevivir. Evolucin Al reproducirse los hijo(a)s de la mascota pueden ser mejores que el padre (odo ms agudo, un olfato ms preciso, etc.)
3. Utilizando las propiedades mecnicas de la vida, demostrar que un virus de computacin es un ente vivo
Reproduccin propia Los virus de computadora se reproducen automticamente, poseen un mecanismo con el cual al momento de introducir un medio de almacenamiento al computador, este se ejecuta automticamente ocasionando la reproduccin del virus Comportamiento emergente En ocasiones a partir de una secuencia de bits o cdigo en lenguaje ensamblador se puede auto-crear el y emerger hacia toda la computadora Metabolismo/adaptabilidad Los virus de computadora tienden a adaptarse a diferentes sistemas operativos (de la misma plataforma), por ejemplo si un virus fue creado para Windows XP tranquilamente puede ejecutarse y reproducirse en Windows 7 Evolucin Muchas veces los fabricantes de antivirus obtienen la cura para un virus determinado, una vez que existe la cura, el creador del virus crea un virus ms evolucionado intentando que dicho virus ya no pueda ser eliminado como su predecesor.
4. Con base en la definicin proporcionada por John Conway construya un programa en Matlab para el juego de la vida
En base al cdigo proporcionado en el siguiente link: http://www.mathworks.com/matlabcentral/fileexchange/4514-gol-game-of-life-v-2-5- 1/content/gol.m podemos obtener un juego de la vida en el cual la parte del cdigo ms relevante es la siguiente:
CelsAnt=[];
while ~salir while ejec if demora ~= inf;pause(demora);end while pausa;pause(0.1);end if ejec if grabar if numAnim<10 numAnimStr = strcat('000',numAnimStr); else if numAnim<100 numAnimStr = strcat('00',numAnimStr); else if numAnim<1000 numAnimStr = strcat('0',numAnimStr); end end end grabarStr = strcat(imgPathStr,nomAnimStr,numAnimStr,extAnimS tr); if rgb == 1 imwrite(imgCels,gris,grabarStr); else imwrite(imgCels,grabarStr); end numAnim = numAnim+1; numAnimStr = num2str(numAnim); end
CelsAnt = Cels; if rgb==3 Cels(:,:,1) = vida(CelsAnt(:,:,1)); Cels(:,:,2) = vida(CelsAnt(:,:,2)); Cels(:,:,3) = vida(CelsAnt(:,:,3)); else Cels = vida(CelsAnt); end imgCels = uint8(255-Cels); set(imgHndl,'CData',imgCels) if rgb ==1 colormap(gris) end iters = iters + 1; actualizar('iters',iters);
if demora == inf
set(pausaTxt,'Visible','on','string',' Press any key to continue') pause set(pausaTxt,'Visible','off') end
% La animacin se detiene si las "clulas" no cambian if isequal(Cels,CelsAnt) ejec = 0; grabar = 0; actualizar('estado',[pausa,ejec,grabar]); end end end pause(0.1) end
Y en las siguientes capturas de pantallas podemos observar como inicia el juego, la poblacin inicial y la poblacin final.