Trabajo Práctico 2: Programación Dinámica
El algoritmo de solución recibe por parámetro la ubicación del archivo con los datos a resolver, con el formato propuesto por la cátedra, y al terminar imprime el valor de la ganancia obtenida, y el plan de entrenamiento
En el código fuente se cuenta con la lista de ejemplos provistos por la cátedra, así como otros propuestos por nosotros. Para ejecutar alguno:
python3 algoritmo.py ./data/10.txt
Lo que dará por resutado
Ganancia maxima: 380
Plan de entrenamiento: Entreno, Descanso, Entreno, Descanso, Entreno, Entreno, Entreno, Entreno, Entreno, Entreno
##Formato propuesto por la cátedra
En la primera línea el valor de la cantidad de días a considerar (n)
En las siguientes n líneas, las ganancias de dichos días (nuestros e_i).
En las siguientes n líneas, la energía con la que se cuenta al día 1, 2, 3, ..., n de estar entrenando sin haber descansando previamente (nuestros s_i)
Para generar un archivo de ejemplo, se ejecuta el script generador.py
y se imprime el resultado por stdout
python3 generador.py <cantidad de días> [seed]
Por ejemplo:
python3 generador.py 5 73
Imprime por consola:
5
20
51
72
14
91
97
88
61
54
19
Dónde, en la primer línea, el 5 corresponde a la cantidad de días.
Las siguientes 5 líneas las ganancias:
20
51
72
14
91
Y las últimas 5 líneas las energias correspondientes a cada día, si no se descansa:
97
88
61
54
19
Para generar un archivo que se pueda usar en el algoritmo principal, se pude redireccionar el stdout:
python3 generador.py 5 73 > ejemplo.dat
Utiliza al generador.py para generar sets de datos, y los resuelve utilizando algoritmo.py. Recibe por parametro la semilla a utilizar en el generador. Genera valores desde 500 hasta 20k, con saltos de 500.
Los datos son guardados en /data/n.dat, siendo n la cantidad de días.
El resultado final se guarda en /data/run-results.csv, listo para abrir y generar un gráfico de cantidad de días vs tiempo de ejecución (milisegundos).
Cada ejecución sobreescribe los archivos.
se ejecuta:
./graficador.sh