José Iván Ferrer Ruiz, 468659
Daniel Salas Fukutake, 468938
José Alberto Ugalde del Rosal, 1161567
Actividad de Programación 2: Recocido Simulado
A) El medio ambiente es una superficie que cuenta con diferentes propiedades físicas, incluyendo viento y fricción en la superficie. En el se encuentra un pequeño bloque y aleatoriamente se selecciona un punto u objetivo. El bloque cuenta con “propulsores” simulados que apuntan desde cada uno de sus lados y pueden ejercer un impulso inicial en diferentes intensidades moviéndolo a través del medio.
B) El objetivo de la simulación es acercar el bloque al punto final lo más posible en un periodo corto de tiempo. Se debe optimizar la distancia que el bloque recorre en el periodo de tiempo, la mejor distribución de los propulsores para llegar al objetivo. Si se corre continuamente se busca optimizar el camino que sigue el bloque (aproximando a una línea).
C) Solución planteada usando Recocido Simulado.
Configuración:
((ox, oy), m, (wx, wy), wf, (pxn, pxp, pyn, pyp))
donde:
(ox, oy) -> Posición del bloque.
m -> Masa del bloque.
(wx, wy) -> Fuerza del viento.
wf -> Fricción.
(pxn, pxp, pyn, pyp) -> Intensidades usadas en cada propulsor.
Ejemplos:
s1: ((58, 294), 190, (476, 446), (-149.44838339381619, -249.45895066606923), (168.77246735900459, 252.01837423622706, 77.607627925924334, 269.74872001041877))
f(s1) = 576.059892655
s2: ((58, 294), 190, (476, 446), (-149.44838339381619, -249.45895066606923), (184.0264545952796, 301.57066221021796, 112.57185068902984, 210.17509796748897))
f(s2) = 610.623109614
s3: ((58, 294), 190, (476, 446), (-149.44838339381619, -249.45895066606923), (128.5459172769589, 118.65525456155197, 93.871981155212438, 237.23015248433393))
f(s3) = 741.920412938
Reordenamientos:
Los reordenamientos involucran mutar la tupla (pxn, pxp, pyn, pyp) para asignar nuevos valores a cada propulsor.
Ejemplos:
(643.6223, 133.7548, 121.3245, 021.9974) ->
(266.4353, 932.7348, 213.4443, 269.2228) ->
(024.8762, 176.4358, 021.3243, 573.8237)
Función objetivo:
La función objetivo toma todas las fuerzas que actúan sobre el bloque y calcula la posición final del objeto. La energía equivale a la distancia entre la posición final y el punto el objetivo, que el algoritmo busca minimizar.
Calendario de recocido:
T inicial = 100
T final = 0
dT por ciclo = 0.001
El calendario fue seleccionado aleatoriamente, pero después de varias pruebas se determinó que proporcionaba resultados aceptables.
D) Video
E) Conclusiones después de la programación.
La programación del algoritmo como tal fue sumamente rápida, resultó más complicado el encontrar funciones objetivo y de reordenamiento adecuadas para generar resultados aceptables. Una vez definidas, el algoritmo funcionó correctamente y permitió hacer cambios fácilmente para experimentar con diferentes valores.
El algoritmo fue programado de tal forma que sea independiente de esta implementación por lo que resultaría sencillo reutilizarlo en otro caso. Creemos que fue una buena experiencia para aprender de que forma funcionan estos algoritmos.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.