Giter VIP home page Giter VIP logo

tfm's Introduction

TFM - Análisis comparativo de la capacidad de aprendizaje del paradigma CBR respecto a otros modelos de aprendizaje máquina.

Clases para la evaluación de los diferentes modelos de MsPacMan y ghosts en el juego MsPacMan vs Ghosts. Implementacion de clases evaluadoras que obtienen información de las evaluaciones realizadas. Posteriormente con esta información se pueden producir gráficas que ayuden a analizar los resultados obtenidos.

Clases Evaluadoras

  • PacManEvaluatorTFM: clase que realiza las evaluaciones entre las diferentes implementaciones que se encuentran en el archivo config.properties. Permite realizar evaluaciones entre las técnicas CBR, Algorítmica, FSM y Rules, tanto para MsPacMan como para ghosts. Estas evaluaciones se realizan en un único proceso de ejecución.

  • PacManEvaluatorTFMBash: clase que realiza las evaluaciones entre las diferentes implementaciones que se encuentrarn en el archivo config.properties. Permite realizar las evaluaciones entre las técnicas CBR, Algorítmica, FSM y Rules. Estas evaluaciones se realizan en varios procesos de ejecución que van siendo creados desde un script de bash. Está pensado para usarlo en servidor y de esta manera si falla un proceso no se pierda toda la información de las evaluaciones previas.

  • PacManEvaluatorQLearnTFM: clase que realiza las evaluaciones entre las diferentes implementaciones Q-learning contra los ghosts que se encuentran en el archivo config.properties. Permite realizar las evaluaciones contra ghosts que usen las técnicas CBR, Algorítmica, FSM y Rules. Estas evaluaciones se realizan en un único proceso de ejecución.

  • PacManEvaluatorQLearnTFMBash: clase que realiza las evaluaciones entre las diferentes implementaciones con Q-learning contra los ghosts que se encuentran en el archivo config.properties. Permite realizar las evaluaciones contra ghosts que usen las técnicas CBR, Algorítmica, FSM y Rules. Estas evaluaciones se realizan en varios procesos de ejecución que van siendo creados desde un script de bash. Está pensado para usarlo en servidor y de esta manera si falla un proceso no se pierda toda la información de las evaluaciones previas.

Localización

Las clases evaluadoras se encuentran en el paquete es.ucm.fdi.ici. La ruta es la siguiente: src/main/java/es/ucm/fdi/ici

config.properties

Para evaluar una implementación se debe poner la localización de la implementación en el archivo config.properties.

Ejemplo

file = results.txt

MsPacManTeams = \
es.ucm.fdi.ici.c2122.practica5.grupo04.MsPacMan,\
es.ucm.fdi.ici.c2122.practica5.grupo08.MsPacMan,\
es.ucm.fdi.ici.c2122.practica5.grupo10.MsPacMan

GhostsTeams = \
es.ucm.fdi.ici.c2122.practica3.grupo02.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo03.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo04.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo05.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo06.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo07.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo08.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo09.Ghosts,\
es.ucm.fdi.ici.c2122.practica3.grupo10.Ghosts

Cuando queremos evaluar los MsPacMan con Q-learning debemos usar el evaluador correspondiente y no poner nada en el apartado MsPacMans. En el apartado GhostsTeams debemos poner los ghosts que queremos que se enfrenten a los MsPacMan con Q-learning.

Ejecución con script de bash

Para ejecutar el evaluador con bash tenemos que tener un script de bash. A continuación se muestra unos ejemplo de script de bash para cada evaluador.

Para PacManEvaluatorTFMBash:


# Ruta al archivo JAR que deseas ejecutar
JAR_FILE="evaluatorTFMBash.jar"

# Número total de ejecuciones
TOTAL_EJECUCIONES=1000

#Ciclos por ejecucion
CICLOS=50

# Loop para ejecutar el JAR 1000 veces pasando el valor de 'i' como argumento de 50 en 50
for ((i = $CICLOS; i <= $TOTAL_EJECUCIONES; i+=$CICLOS)); do
  java -jar "$JAR_FILE" "$i"
done

Para PacManEvaluatorQLearnTFMBash:


# Ruta al archivo JAR que deseas ejecutar
JAR_FILE="evaluatorQLearnTFMBash.jar"

# Número total de ejecuciones
TOTAL_EJECUCIONES=10

#Ciclos por ejecucion
CICLOS=1

# Loop para ejecutar el JAR 1000 veces pasando el valor de 'i' como argumento de 50 en 50
for ((i = $CICLOS; i <= $TOTAL_EJECUCIONES; i+=$CICLOS)); do
  java -jar "$JAR_FILE" "$i"
done

Archivos Obtenidos

Tras la ejecución de los evaluadores se obtienen los siguientes archivos:

  • resultados.csv: archivo que contiene los resultados a lo largo de las evaluaciones en formato csv.
  • casebasesize.csv: archivo que contiene los tamaños de las bases de casos a lo largo de las evaluaciones en formato csv.
  • avgknn.csv: archivo que contiene las medias knn a lo largo de las evaluaciones en formato csv.
  • tiempos.csv: archivo que contiene los tiempos de ejecucion a lo largo de las evaluaciones en formato csv.

Cabe destacar que para las evaluaciones con Q-learning solo sirven los archivos resultados.csv y tiempos.csv, debido a que no tiene base de casos y tampoco medias knn. Los otros dos archivos se crean pero no tienen información.

Estos archivos son los que permiten crear todas las gráficas y las tablas que se encuentran en la memoria del TFM.

tfm's People

Contributors

dbugoi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.