Skip to content

Macarse/sia2012

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TP01
====

Para ejecutar el TP01 ir a la carpeta TP01 y ejecutar `mvn package`.
Ir a la carpeta target y ejecutar `java -jar TP01-0.0.1-SNAPSHOT.one-jar.jar --help`
para ver la lista de comandos disponible.

los comandos mas utilizados son:
 -s: para seleccionar la estrategia para resolver el problema deseada. Las opciones validas son: [BFS | DFS | IterativeDepth | Greedy | Astar] 

 -l: para seleccionar el nivel de dificultad del tablero. En estos momentos hay 4 tableros cargados, de los cuales el numero 2 no tiene solucion

 -h: para seleccionar la heuristica deseada. las opciones son: [ BiggerRowsFirst | MorePayers | UpperLevelFirst | HStar ]

 -c: para seleccionar la funcion de costo constante. Si no se asigna ninguna se escogera la default (1). Este costo puede ser cualquier numero float.

 --help: imprime ayuda

Ejemplo de uso:
java -jar TP01-0.0.1-SNAPSHOT.one-jar.jar -l 4 -s Greedy -h Biggerrowsfirst

TP02
====

PRIMERA ENTREGA
===============

REQUIREMENTS:
This program needs to be executed in Matlab!

EXECUTION:
1. Open Matlab and navigate to the folder that contains all the .m files.

How to execute generate the graphics:

 - In the matlab-console type: 
 [in, out, w, er] = plotter(N, error, @input, @function, @derivated_function, @seed);
 	where: 	N = number of entries of the perceptron (in our case between 2 and 5)
 			error = desired error 
 			input = function that creates the input of the perceptron (@createAndInput, @createOrInput for "AND" and "OR")
 			function = activation function (@step , @lineal, @no_lineal_tanh )
 			derivated_function = the activation function derivated.
 			seed = you can provide a constant seed in order to be able to reproduce scenarios or compare functions (@constant_seed) or a variable one (@variable_seed)

 Example:
 	[in, out, w, er] = plotter(5, 0.01, @createAndInput, @step, @step_deriv, @constant_seed);


SEGUNDA ENTREGA
===============

REQUIREMENTS:
This program needs to be executed in Matlab!

EXECUTION:
1. Open Matlab and navigate to the folder that contains all the .m files.

How to execute generate the graphics:

- In the matlab-console type: 
plotter(g, g_deriv, N, input_gen, epsilon, eta);

where:

 - g = activation function (@step , @lineal, @no_lineal_tanh )
 - g_deriv = the activation function derivated.
 - N = number of entries of the perceptron (in our case between 2 and 5)
 - input_gen = function that creates the input of the perceptron (@generateSymmetricIndexes_stepWrap, @generateSymmetricIndexes_stepWrap)
 - epsilon = desired error
 - eta 

Example:

plotter(@no_lineal_exp, @no_lineal_deriv_exp, 5, @generateSymmetricIndexes_stepWrap, 0.001, 0.02);


TERCERA ENTREGA
===============

REQUIREMENTS:
This program needs to be executed in Matlab!

EXECUTION:
1. Open Matlab and navigate to the folder that contains all the .m files.

How to execute generate the graphics:

- In the matlab-console type: 
initial

Inside the initial.m script you will find the variables to modify.

TP03
====

Para entrenar la red basta configurar en el archivo trainNet.m las imagenes con las que se desea entrenar la red y luego ejecutarlo tipeando en la consola:

>> trainNet

Para probar que sucede al presentar una imagen a la red, basta con tipear:

>>testImage(weights, <NOMBRE_IMAGEN>)

donde <NOMBRE_IMAGEN> debe ser reemplazado por el nombre de la imagen deseada. weights es una variable de entorno que ya fue seteada por trainNet

Si se quiere probar la red de manera sincrónica se debe cambiar en el archivo `testimage.m` `getOutput` por `getAsyncOutput`.


TP04
====

Este TP corre en Java pero usa MATLAB Builder JA para correr código de
Matlab desde Java.

Para poder usar MATLAB Builder JA:

1) Instalar el MATLAB Compiler Runtime. El instalador para mac se
encuentra en:
  <mcr_root>*/toolbox/compiler/deploy/maci64/MCRInstaller.dmg

2) Es posible que tenga que modificar el path a javabuilder.jar
Si el MATLAB Compiler Runtime se instala en macOS es path debería
ser el correcto (/Applications/MATLAB/MATLAB_Compiler_Runtime/v713/toolbox/javabuilder/jar/javabuilder.jar)

3) Agregar las siguientes variables de entorno:

export DYLD_LIBRARY_PATH=/Applications/MATLAB/MATLAB_Compiler_Runtime/v713/runtime/maci64:/Applications/MATLAB/MATLAB_Compiler_Runtime/v713/sys/os/maci64:/Applications/MATLAB/MATLAB_Compiler_Runtime/v713/bin/maci64:/System/Library/Frameworks/JavaVM.framework/JavaVM:/System/Library/Frameworks/JavaVM.framework/Libraries

export XAPPLRESDIR=/Applications/MATLAB/MATLAB_Compiler_Runtime/v713/X11/app-defaults

4) Es necesario que el eclipse se levante desde consola para que levante las variables de entorno seteadas en el punto anterior.

---------------------------------------------------------------------------------------------------------------------------------------------
Archivo de configuración
---------------------------------------------------------------------------------------------------------------------------------------------

El TP04 puede configurarse mediante un archivo .properties.
A continuación se detalla todas las posibles configuraciones que se pueden realizar. 

Aclaraciones:
 - X.XX Significa un double.
 - X Significa un entero.
 - El archivo debe ser pasado por parametro al programa.
 Por ejemplo "configuration/conf.properties"

-------------------
----- General -----
-------------------
popSize = X
generationGap = X.XX
architecture = X (donde x pertenece [1,7]. Seleccionamos distintas arquitecturas de la red)

-------------------
--- Operadores ----
-------------------

mutation = (Classic o NotUniform)
mutationProbability = X.XX

NotUniform.decreaseConstant = X.XX
NotUniform.generationToDecrease = X

Backpropagation.probability = X.XX (Por default es 0)
Backpropagation.iterations = X (Por default es 30)

crossover = Recibe 5 posibles operadores, Classic, Multiple Point, Uniform, Anular y Gene.
crossoverProbability = X.XX

MultiplePoint.cutPoints = X (default = 1)

Uniform.probability = X.XX (default = 1)

-------------------
---- Selección ----
-------------------

selection = Recibe 5 operadores posibles:
Elite, Boltzman, Tournament, Universal y Rulette.
Si se desea poner más de uno, se debe dividir con "/" cada uno.

Elite.toSelect = X (default = 1)

Rulette.toSelect = X (default = 1)

Tournament.toSelect = X (default = 1)
Tournament.tSize = X (default = 1)

Universal.toSelect = X (default = 1)

Boltzman.toSelect = X (default = 1)
Boltzman.maxTemperature = X.XX (default = 1000)
Boltzman.minTemperature = X.XX (default = 100)
Boltzman.decrement = X.XX (default = 5)

-------------------
---- Reemplazo ----
-------------------

replacement = Igual que selection

replacement.Elite.toSelect = X (default = 1)

replacement.Rulette.toSelect = X (default = 1)

replacement.Tournament.toSelect = X (default = 1)
replacement.Tournament.tSize = X (default = 1)

replacement.Universal.toSelect = X (default = 1)

replacement.Boltzman.toSelect = X (default = 1)
replacement.Boltzman.maxTemperature = X.XX (default = 1000)
replacement.Boltzman.minTemperature = X.XX (default = 100)
replacement.Boltzman.decrement = X.XX (default = 5)

----------------------------
---- Condición de corte ----
----------------------------

ending = Recibe 4 posibilidades:
Content, MaxGeneration, Optimum y Structural.

Content.improvement = X.XX (default = 1)
Content.iterationToImprove = X (default = 1)

MaxGeneration.iterationToEnd = X (default = 1)

Optimum.optimum = X.XX (default = 1)
Optimum.tolerance = X.XX (default = 1)

Structural.iterationsToCheck = X (default = 1)
Structural.iterationToEnd = X (default = 1)
Structural.popSize = X (default = 1)