Tercera entrega de proyecto
-
Upload
juan-garza -
Category
Technology
-
view
346 -
download
10
Transcript of Tercera entrega de proyecto
Dra. Sara Elena Garza
Tercera Entrega del Proyecto
Integrantes del proyecto
Gisella Margarita Tamez González 1496111
Irma Patricia González Badillo 1481215
Jesús Eduardo Fermín Tamez 1482056
Juan Manuel Garza Garza 1452301
Nuestro proyecto esta basado en una aplicación de android llamada line-runner, la cual consiste en un personaje que se encuentra corriendo sobre una línea horizontal y que al momento de presentársele un obstáculo, en este caso, un cuadrito, sea capaz de esquivarlo mediante un salto.
Este proyecto es adaptativo desde el momento en que nuestro personaje estará familiarizado con el escenario en el cual se desarrollará el juego, y pueda ser capaz de identificar cuáles son los peligros a los cuales se va a tener que estar enfrentando, aquellos a los que tendrá que aprender a esquivar o evitar, para así lograr su objetivo.
Al momento de hacer esto el personaje se encontrará adaptándose a su plataforma, razón por la cual éste proyecto será adaptativo.
Nuestro proyecto dio un giro totalmente inesperado para el equipo, principalmente porque es la parte mas importante y el objetivo de esta clase, ya que el método que íbamos a utilizar era el de redes neuronales, pero por problemas, que en el transcurso de la presentación se darán a conocer, cambiamos por la técnica de “Sistemas expertos: Lógica difusa” y tuvimos un gran atraso en esta 3era etapa.
¿Qué hemos Hecho? Principalmente nuestro mayor logro fue hacer que el juego ya se pueda “jugar”, ya que para esta entrega nos tomo de sorpresa la parte adaptativa y nosotros teníamos la idea de que primero habría que hacer que nuestro juego funcionara con nuestra inteligencia para posteriormente aplicarle “inteligencia artificial”.
Tenemos toda la parte grafica y lógica de tal manera de que nuestro juego ya puede ser usado.
¿Qué hemos Hecho? Otro de nuestros avances es que ya tenemos varias reglas que sigue nuestro personaje, que son las que aplicamos en la lógica difusa.
También hemos investigado sobre la lógica difusa y nos hemos basado en ejemplos para buscar la manera de acoplarla a nuestro proyecto (aquí esta una página usada para esto: http://pythonr2.wordpress.com/2008/10/29/un-tipico-ejemplo-de-logica-borrosa-o-disfusa-en-python/)
Aparte de ver tutoriales en youtube y volver a realizar investigaciones
¿Qué nos falta por hacer?
Lo que nos falta por hacer es asentar bien nuestras reglas para la lógica difusa de nuestro programa, ya que como lo mencionamos nos tomo de sorpresa y seguir mejorando la parte adaptativa.
Otra cosa que nos faltaría son pequeños detalles del juego como la puntuación y cosas graficas que hay que modificar.
Para esta 3era entrega de proyecto tuvimos un giro inesperado de nuestro proyecto, ya que al estar en clase vimos un nuevo tema “lógica difusa” lo cual nos dio otra 2nda opción para implementarla.
No queríamos cambiar nuestro objetivo principal que era hacerlo mediante una red neuronal, pero se nos presentaron demasiados problemas en los cuales invertimos mucho tiempo en vano y que no pudimos resolver.
Uno de los principales problemas fue el sistema operativo que usamos todos los miembros del equipo (windows) en el cual no pudimos trabajar con pybrain.
Para solucionarlo trabajamos con Ubuntu de manera booteable, pero no logramos mucho ya que de igual manera no logramos instalar pybrain debido a que este depende de mas librerías.
Otro problema fue intentar adaptarnos a un sistema operativo diferente a lo habitual, manejar la terminal no tomo mas tiempo y por mas que intentamos implementar la red y tomar la información de pybrain.org nos resulto imposible.
La solución fue recurrir a la 2nda opción, el uso de la lógica difusa en nuestro programa y nos pusimos a investigar mas sobre ella
Libro “Python para todos” es un libro sobre
programación en Python escrito por Raúl González
Duque. Se trata de un tutorial de Python adecuado
para todos los niveles.
Tutorial de python
http://aprenderpython.com/
Videos Relacionados:
http://www.youtube.com/watch?v=sADWnGsTLFk
http://www.youtube.com/watch?v=MrJD4GJuRVo
&feature=list_other&playnext=1&list=SP46E99FE946C
1C946
http://www.youtube.com/watch?v=8yF8fo7rNvQ&l
ist=UUWDzmLpJP-
z4qopWVA4qfTQ&index=24&feature=plcp
(Aprende python desde cero)
• http://pythonr2.wordpress.com/2008/10/29/un-
tipico-ejemplo-de-logica-borrosa-o-disfusa-en-
python/
• http://thales.cica.es/rd/Recursos/rd98/TecInfo/08/
fuzzy.htm
• http://answermath.com/fuzzy_logic_sets.htm
• http://es.wikipedia.org/wiki/L%C3%B3gica_difusa
Videos Relacionados Actualizados:
• http://www.youtube.com/watch?v=JPrJMyHI
PfM
• http://www.youtube.com/watch?v=JPrJMyHI
PfM
• http://www.youtube.com/watch?v=E_kZDvw
ofHY&feature=watch-vrec
LOGICA DIFUSA
La lógica difusa o borrosa, también conocida como lógica fuzzy, es una lógica que nos permite procesar datos inciertos. La lógica difusa consigue tener infinitas degradaciones entre el valor verdadero y falso.
La lógica difusa tiene una mayor aplicación a los hechos del mundo en que vivimos ya que el razonamiento humano, tiende a producirse de esta forma, obteniendo conclusiones a partir de múltiples hechos que observa en su entorno.
• En un conjunto encontramos una
colección de objetos en el que es
posible decidir cuando un objeto de
nuestro universo de discurso esta o no
en esa colección. Es decir,
abtrayendonos podemos asumir que
un conjunto es exactamente una
función en el que se asocia al
conjunto de valores 0,1 el valor 1 a los
objetos que estén dentro del conjunto
y 0 a los que no.
Principalmente la lógica difusa esta enfocada a la
toma de decisiones cuando existen datos o
conocimientos inciertos. Por otro lado, también es
usada en el reconocimiento de patrones ambiguos o
como un componente de sistemas expertos difusos.
La lógica difusa se basa en conjuntos para hacer
operaciones usuales, dichos conjuntos son los
llamados conjuntos difusos.
• Un esquema de funcionamiento típico para
un sistema difuso podría ser de la siguiente
manera:
• Aqui se encuentra la clase jugador, en donde se
manda a llamar la sprite, y la función “update” para
actualizar el “rectángulo” del sprite.
• Clase Cuadros: Aquí se encuentra los cuadros que harán
que nuestro personaje, tenga dificultades y son su objetivo,
esquivarlos, la función update funciona igual al del jugador.
• Colision es la función que usamos para las colisiones entre el
jugador y los 2 cuadros.
Este while es el más importante del
programa debido a que es lo que hace que
el programa sea infinito (al menos de que el
jugador toque el cuadro).
• En este if es donde se aplica lo que usamos de lógica
difusa, en donde el programa analiza lo que es lo que
se viene acercándose, después al ver que el cuadro
esta muy cerca, se realiza el movimiento del brinco.
• Y para finalizar estos 2 ifs son para que los cuadros
cuando salgan de la ventana se regresen al inicio, en un valor random y así hacer nuestro programa más
interesante.