Вы находитесь на странице: 1из 12

Universidad Nacional de Trujillo

Facultad de Ingeniería
Escuela de Ingeniería de Sistemas

“PROYECTO: Juego de la serpiente con


Redes Neuronales”
CURSO: Inteligencia Artificial
INTEGRANTES:
 Cueva Liñán, Oscar
 Medina Febre, Hector
 Mendez Cabrera, Dadsky
 Polo Reyes, Ericka
 Quezada Rivera, María
PROFESOR: Julio Luis Tenorio Cabrera
CICLO: VIII
TRUJILLO – PERÚ
2019

Contenido
INTRODUCCIÓN .......................................................................................................... 2
MARCO TEÓRICO ........................................................................................................ 3
INSTRUCCIONES PARA EL USUARIO ................................................................. 11
INTRODUCCIÓN

Snake Evolution es una aplicación con fin educativo que simula el proceso
evolutivo de la especie serpiente. La Evolución se origina a través de cambios
aleatorios de características hereditarias, combinados con un proceso de
selección natural. Los organismos con mayor capacidad de aprendizaje tendrán
más descendientes, incrementando de esa manera la frecuencia de genes
responsables del aprendizaje.
Para sobrevivir las serpientes deben alimentarse de manzanas (representadas
por esferas rojas), y también deben evitar toparse con los bordes de su
ecosistema. Además de evitar lastimarse a sí misma. Teniendo así una evolución
simulada.

MARCO TEÓRICO

El elemento básico de un sistema neuronal biológico es la neurona. Un sistema


neuronal biológico está compuesto por millones de neuronas organizadas en
capas. En la emulación de dicho sistema neuronal biológico, por medio de un
sistema neuronal artificial, se puede establecer una estructura jerárquica similar
a la existente en el cerebro. El elemento esencial será la neurona artificial, la cual
se organizara en capas. Varias capas constituirán una red neuronal. Finalmente
una red neuronal junto con los interfaces de entrada y salida constituirá el
sistema global de proceso.
 El modelo estándar de neurona artificial
Se va a introducir el denominado modelo estándar de neurona artificial según los
principios descritos en Rumelhart y McClelland (1986) y McClelland y Rumelhart
(1986). Siguiendo dichos principios, la i-´esima neurona artificial estándar
consiste en:
• Un conjunto de entradas xj y unos pesos sinápticos wij , con j = 1, . . . , n
• Una regla de propagación hi definida a partir del conjunto de entradas y los
pesos sinápticos. Es decir:

La regla de propagación más comúnmente utilizada consiste en combinar


Linealmente las entradas y los pesos sinápticos, obteniéndose:

Suele ser habitual añadir al conjunto de pesos de la neurona un parámetro


Adicional θi, que se denomina umbral, el cual se acostumbra a restar al
Potencial pos-sináptico. Es decir:

Si hacemos que los índices i y j comiencen en 0, y denotamos por wi0 = θi


y x0 = −1, podemos expresar la regla de propagación como:
• Una función de activación, la cual representa simultáneamente la salida de
La neurona y su estado de activación. Si denotamos por yi dicha función de
Activación, se tiene:

La Figura 2 muestra el modelo de neurona artificial estándar descrito


previamente. Algunos ejemplos de funciones de activación son los siguientes:

(i) Neuronas todo-nada


En este tipo de neuronas todo-nada, también llamadas dispositivos de umbral,

la es una función escalonada. En tal caso, se tiene:


Este tipo de función de activación es la usada tanto por el modelo de neurona
del perceptrón original –como se ver más adelante– así como por el modelo de
neurona introducido en el trabajo pionero de McCulloch y Pitts (1943). N´otese
que en las neuronas todas-nada la salida es digital.

(ii) Neurona continua sigmoidea


Si queremos obtener una salida continua, es habitual el utilizar como Función
de activación una función sigmoidea. Las funciones sigmoideas
Más usadas son:

Ambas funciones de activación son continuas y diferenciables, y son


usadas en el denominado perceptr´on multicapa.
El requisito de trabajar con funciones diferenciables puede venir impuesto por la
regla de aprendizaje, como sucede –tal y como se explicara posteriormente– con
la regla de retro propagación del error (backpropagation).

La clase Point en Java


Piense en un punto bidimensional como un objeto que consta de dos valores, la
distancia x desde el origen a lo largo de un eje horizontal y la distancia y desde
el origen a lo largo de un eje vertical. En los gráficos de Java, la esquina superior
izquierda de un área de dibujo (como una ventana) se considera el origen (0, 0),
por lo que y aumenta al descender.
Es conveniente pensar en un punto como una sola cosa (no como dos cosas
separadas). Por ejemplo, piensa en el punto final de una línea como una cosa.
Y piensas en la esquina de un cuadrado como una cosa. Este es un ejemplo de
abstracción. En Java, una abstracción generalmente requiere una clase.

Java viene con un paquete de clases predefinidas que se utilizan para crear
interfaces gráficas de usuario, Application Windowing Toolkit o AWT. Una de las
muchas clases en el AWT es la clase Point.

La clase Point describe dos cosas: las variables (los datos) y los métodos (el
comportamiento) de los objetos Point.

Función de Evaluación y Función de Aptitud (fitness)

La función de evaluación generalmente es la función objetivo, es decir, es lo que


se quiere llegar a optimizar (ej: número de aciertos, número de movimientos,
etc.). Es necesario decodificar la solución presente en el cromosoma para
evaluarla.
La función de aptitud (fitness) es la que permite valorar la aptitud de los
individuos y debe tomar siempre valores positivos.
Ambas funciones suelen ser iguales, pero puede ser que la función objetivo sea
muy compleja, tome valores negativos, o no proporcione un valor numérico y,
por lo tanto, sea necesario definir una función de aptitud diferente.
En un algoritmo genético la información ha de codificarse para poder trabajar
adecuadamente con ella. Cómo hemos visto, existen numerosos sistemas de
codificación, aunque nosotros utilizaremos la codificación real.
Una vez definido el sistema de codificación a emplear se verá cómo actúan los
operadores básicos de selección, cruce y mutación sobre este código.

Función Sigmoidea

Muchos procesos naturales y curvas de aprendizaje de sistemas complejos


muestran una progresión temporal desde unos niveles bajos al inicio, hasta
acercarse a un clímax transcurrido un cierto tiempo; la transición se produce en
una región caracterizada por una fuerte aceleración intermedia. La función
sigmoidea permite describir esta evolución. Su gráfica tiene una típica forma de
"S". A menudo la función sigmoidea se refiere al caso particular de la función
logística.

Función Gaussiana
La función gaussiana, se denomina de tal forma en honor al matemático,
astrónomo y físico alemán Carl Friedrich Gauss. Esta es una función que se
puede definir mediante la siguiente expresión:
donde a, b y c corresponden a constantes reales (a > 0).
La gráfica de la función es simétrica y su forma es de campana, por esta razón
se denomina generalmente campana de Gauss. El parámetro a es
correspondiente al alto de la campana que se centra en el punto b, estableciendo
c la anchura de la misma.

Supervivencia del más apto

La "supervivencia del más apto" es una frase propia de la teoría evolutiva de


Charles Darwin y el darwinismo social, como una descripción alternativa de
la selección natural. En su sentido esencial, se refiere a la supervivencia de
ciertos rasgos sobre otros que se reproducen en las siguientes generaciones,
mientras que los otros rasgos tienden a desaparecer. El concepto fue acuñado
por Herbert Spencer y retomado por Charles Darwin.
Diversos autores consideran que la frase se ha usado en contextos que no son
compatibles con el significado original, aunque otros señalan que desde el
principio contenía una connotación social negativa que incitaba la supremacía
de una raza o de una especie sobre otra.
Algoritmo Simétrico

Los algoritmos simétricos o clave secreta encriptan y desencriptan con la misma


llave. Las principales ventajas de los algoritmos simétricos son su seguridad y
su velocidad. Son aproximadamente 1.000 veces más rápidos que los
asimétricos.
Algunos algoritmos simétricos
 DES
 3DES
 RC2
 RC4
 RC5
 IDEA
 AES
 Blowfish

Algoritmo Asimétrico

Los algoritmos asimétricos o clave pública se caracteriza por usar una clave para
encriptar y otra para desencriptar. Una clave no se derivará de la otra. Emplean
longitudes de clave mucho mayores que los simétricos. La complejidad de
cálculo que comportan los hace más lentos que los algoritmos de cifrado
simétricos. Por ello, los métodos asimétricos se emplean para intercambiar la
clave de sesión mientras que los simétricos para el intercambio de información
dentro.
Algunos algoritmos asimétricos
 Diffie-Hellman
 RSA
 ElGamal
 Criptografía de curva elíptica

Hash
Hash se refiere a una función o método para generar claves o llaves que
representen de manera casi unívoca a un documento, registro, archivo, etc.,
resumir o identificar un dato a través de la probabilidad, utilizando una función
hash o algoritmo hash. Un hash es el resultado de dicha función o algoritmo.
Son usadas en múltiples aplicaciones, como los arrays asociativos, criptografía,
procesamiento de datos y firmas digitales, entre otros. Una buena función de
hash es una que experimenta pocas colisiones en el conjunto esperado de
entrada; es decir que se podrán identificar unívocamente las entradas.

INSTRUCCIONES PARA EL USUARIO


 Presionar tecla A para pausar y visualizar las serpientes existentes, cada
una tiene su color respectivo.
 Presionar tecla B para continuar con la simulación.
 Presionar tecla C para visualizar las estadísticas tras cada generación (g) de
serpientes.
 Presionar la tecla D para ocultar las estadísticas.

OBSTÁCULOS

 El muro
 La serpiente
 La comida

REFLEJOS

🐍 Muchas especies de serpientes para descubrir


🐍 ¡Una historia alucinante con giros vípedos!

🐍 La inesperada mezcla de juegos de evolución y clicker incrementales


🐍 Ilustraciones tipo 2D.

🐍 Juego abierto: ¡disfruta de la libertad!


🐍No se dañaron serpientes en la fabricación de este juego, solo a los
desarrolladores.

Вам также может понравиться