PROYECTO FIN DE CARRERA
Presentado a
LA UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Para obtener el título de
INGENIERO ELECTRÓNICO
por
Juan Camilo Carranza Caro
IMPLEMENTACIÓN DE UN AGENTE CAPAZ DE APRENDER LAS
ACCIONES ÓPTIMAS DE UN ASCENSOR UTILIZANDO
APRENDIZAJE POR REFUERZO
Sustentado el 4 de diciembre de 2014 frente al jurado:
Composición del jurado
- Asesor: Fernando Enrique Lozano Martínez, Profesor Asociado, Universidad de Los Andes
- Jurados: Reinaldo Augusto Uribe Muriel, Estudiante Doctoral, Universidad de los Andes,,,,
v
Contenido
1 INTRODUCCIÓN ... 3
2 OBJETIVOS ... 4
2.1 Objetivo General ... 4
2.2 Objetivos Específicos... 4
2.3 Alcance y productos finales ... 4
3 DESCRIPCIÓN DE LA PROBLEMÁTICA Y JUSTIFICACIÓN DEL TRABAJO ... 5
4 MARCO TEÓRICO Y CONCEPTUAL ... 6
4.1 Aprendizaje por Refuerzo ... 6
4.2 Aprendizaje por Refuerzo como un Proceso de Decisión de Markov. ... 7
4.3 Función de Valor y Q-Learning ... 7
5 DEFINICION Y ESPECIFICACION DEL TRABAJO ... 9
5.1 Definición ... 9
5.2 Especificaciones ... 9
6 METODOLOGÍA DEL TRABAJO ... 10
6.1 Plan de trabajo... 10
6.2 Búsqueda de información ... 11
6.3 Alternativas de desarrollo ... 11
7 TRABAJO REALIZADO ... 12
7.1 Modelo del problema ... 12
7.2 Trabajo computacional... 15
7.3 Resultados Finales ... 17
8 VALIDACIÓN DEL TRABAJO ... 19
8.1 Metodología de prueba ... 19
8.2 Validación de los resultados del trabajo ... 19
8.3 Evaluación del plan de trabajo ... 21
9 CONCLUSIONES ... 22
10 AGRADECIMIENTOS ... 23
11 REFERENCIAS ... 24
1
INTRODUCCIÓN
Cada persona está familiarizada con alguna situación en la que se deba esperar por un ascensor, y todas proceden de la misma manera: se oprime un botón y se espera que llegue un ascensor que vaya en la dirección que necesitamos. El tiempo de espera depende de cómo esté programado el sistema de ascensores para atender las llamadas. Cada lugar o edificación con servicio de ascensor tiene un flujo diferente de personas. Por ejemplo, no se necesita el mismo comportamiento del sistema de ascensores en un edificio residencial que en un edificio de oficinas. Es por esto que la estrategia que debe seguir cada ascensor depende exclusivamente del ambiente en el que se encuentra y es en este punto donde el aprendizaje por refuerzo toma gran importancia.
El aprendizaje por refuerzo plantea métodos que permiten adquirir un “conocimiento” o “experiencia” a partir de la interacción con el ambiente, permitiendo así un mejor desempeño en la tarea cada vez que se repita ésta. Llevándolo al problema en cuestión, aplicar algoritmos de aprendizaje por refuerzo a un sistema de ascensores permite “aprender” una estrategia óptima que satisfaga los requerimientos deseados. Por ejemplo, si hay pasajeros en diferentes pisos que han solicitado el ascensor, ¿cuál debería recogerse primero? Por el contrario, si no hay ninguna solicitud, ¿en qué piso debería ubicarse el ascensor para esperar el próximo pasajero?
El sistema de control de un grupo de ascensores corresponde a un problema de decisión complejo, debido a que tiene características de aleatoriedad, objetivos múltiples y no linealidad. En este proyecto se estudiará el caso en el que se tiene un ascensor atendiendo llamadas en cuatro pisos.
2
OBJETIVOS
2.1 Objetivo General
Implementar un agente capaz de aprender las acciones óptimas de un ascensor utilizando aprendizaje por refuerzo.
2.2 Objetivos Específicos
Identificar variables de control y posibles estados para implementar una solución al problema.
Reconocer restricciones presentes.
Implementar un algoritmo que modele el comportamiento de un ascensor.
Hacer uso de un algoritmo de aprendizaje por refuerzo que le permita al agente aprender la política óptima para el ascensor.
Implementar un algoritmo que modele un comportamiento determinístico de un ascensor, el cual se usará para comparaciones.
2.3 Alcance y productos finales
Un programa desarrollado por el autor que utilice algoritmos de aprendizaje por refuerzo que le permita a un ascensor conocer la política óptima para satisfacer satisfactoriamente la demanda.
Resultados del programa, mostrando comparaciones de la política aprendida con respecto a un comportamiento usual de un ascensor.
3
DESCRIPCIÓN DE LA PROBLEMÁTICA Y JUSTIFICACIÓN DEL TRABAJO
Este proyecto está dirigido a buscar una solución alterna al problema de optimizar el transporte de pasajeros en un ascensor mediante el uso de algoritmos de aprendizaje por refuerzo. La solución que se espera es encontrar la acción óptima de cada posible estado del ascensor de tal manera que se minimice el tiempo medio de espera de los pasajeros. Este problema se considera un problema de optimización dinámico debido a que presenta variables aleatorias que alteran el estado en el que se encuentra el sistema, como por ejemplo la solicitud de un nuevo pasajero de hacer uso del ascensor.
El trabajo realizado puede ser de gran utilidad porque permitiría encontrar la estrategia óptima de un ascensor en diferentes situaciones: ascensor en un hospital, ascensor en un edificio residencial, ascensor en un edificio de oficinas, ascensor en una empresa de carga, etc. Los requerimientos en cada una de estas situaciones varían, en consecuencia, la estrategia óptima que debe seguir el ascensor, también. Bastaría modelar el sistema y aplicar algoritmos de aprendizaje por refuerzo para encontrar una solución simulada y poder llevar este resultado a la práctica.
4
MARCO TEÓRICO Y CONCEPTUAL
4.1 Aprendizaje por Refuerzo
Aprendizaje por refuerzo es aprender qué hacer (cómo asignar acciones a ciertas situaciones), con el fin de maximizar una señal de recompensa numérica. Al agente no se le especifica qué acciones tomar, como en algunas de las formas de aprendizaje de máquina, sino que debe descubrir cuáles acciones terminan en la mayor recompensa recibida. En los casos más interesantes y desafiantes, las acciones pueden afectar no sólo a la recompensa inmediata sino también a la siguiente situación y, por eso, todos los premios posteriores. Estas dos características, ensayo y error, y recompensa atrasada, son los dos rasgos distintivos más importantes de aprendizaje por refuerzo.
Figura 1. Diagrama de aprendizaje por refuerzo.
En la figura 1 se puede observar el diagrama que describe el proceso general que describe al aprendizaje por refuerzo. En dicho diagrama el agente y el ambiente interactúan en una secuencia de intervalos de tiempo discretos, En cada paso el agente percibe que el ambiente se encuentra en un estado y toma una acción . En respuesta, el ambiente hace una transición estocástica a un nuevo estado , y genera una recompensa asociada . El objetivo que busca el agente
es seleccionar la acción de tal manera que maximice la recompensa esperada.
Al principio el agente no tiene conocimiento de qué tiene que lograr ni de cómo tiene que hacerlo, por lo tanto tomará decisiones de ensayo y error para ir almacenando información resultante de dichas decisiones. A medida que se avanza, se utiliza más este conocimiento adquirido (explotación) que el ensayo y error (exploración).
4.2 Aprendizaje por Refuerzo como un Proceso de Decisión de Markov.
Más allá del ambiente y el agente, se pueden identificar cuatro elementos principales de un sistema de aprendizaje por refuerzo, permitiendo así que se modele como un proceso de decisión de Markov.
Un espacio de estados , que describe todos los posibles estados en los que se puede encontrar el ambiente.
Un espacio de acciones , que describe qué acciones son posibles dado un estado .
Una función de recompensa , que retorna la recompensa inmediata recibida por el agente por ir del estado al estado realizando la acción , este valor se denota por .
Una función de probabilidad de transición , que retorna la probabilidad de pasar del estado al estado realizando la acción , este valor se denota por .
Se dice que este problema es un Proceso de Decisión de Markov (MDP) si en él se cumple la propiedad de Markov, i.e., si la siguiente igualdad vale para todo y para toda historia
Es decir, si la respuesta del ambiente (nuevo estado y recompensa recibida) en un tiempo depende únicamente del estado anterior y la acción seleccionada, no es necesaria la historia de estados, acciones y recompensas recibidas desde el inicio hasta el momento actual.
4.3 Función de Valor y Q-Learning
Una función de valor es una función que indica qué tan bueno es un estado y qué tan conveniente es tomar una acción en dicho estado. Esa información de “qué tan bueno es” un estado y una acción está definida en términos del retorno esperado, es decir, de la suma de las recompensas esperadas a partir del estado , tomando la acción . Evidentemente, el valor de un estado depende de la
política que se esté siguiendo, es por esto que hablamos del “valor del estado siguiendo la política ”, y lo denotamos por . La definición formal es:
donde denota el valor esperado dado que el agente sigue la política .
De la misma manera definimos el “valor de la acción en el estado siguiendo la política ”, denotada por , como:
El problema que se busca resolver mediante algoritmos de aprendizaje por refuerzo es encontrar una política óptima que maximice sobre todas las posibles políticas, para todo . En este caso tenemos:
A las funciones y las llamamos “función de valor de estado óptima” y “función de valor de acción óptima” respectivamente.
Existen muchos métodos para resolver el problema de aprendizaje por refuerzo, por ejemplo métodos de Programación Dinámica (DP), métodos de Monte Carlo (MC) y métodos de Diferencias Temporales (TD). Los métodos de DP requieren un modelo completo del ambiente, es decir, un conocimiento de todas las probabilidades de transición entre estados , así como también un conocimiento de todas las recompensas inmediatas . Por otro lado, los métodos TD se caracterizan por ser métodos online que, a partir de la interacción con el ambiente, estiman la función de valor de estado y la función de valor de acción y, de esta manera, no requieren un modelo completo del ambiente para encontrar una política óptima. Este proyecto usa un algoritmo que se encuentra dentro de los métodos de TD llamado Q-Learning.
Q-Learning obtiene una política óptima al aproximar la función de valor de acción óptima . El algoritmo utilizado para lograr esto será presentado más adelante, en la sección 7.2.
5
DEFINICION Y ESPECIFICACION DEL TRABAJO
5.1 Definición
Muchos lugares están interesados en mejorar el transporte de personas o de carga mediante el uso de un ascensor. Es por esto que este trabajo trata de responder a esta necesidad y tiene como objetivo desarrollar un programa que permita dar una solución alterna mediante el uso de aprendizaje por refuerzo y así, lograr comparar los tiempos que el ascensor tarda en atender una solicitud.
5.2 Especificaciones
La plataforma de simulación producto de este trabajo debe modelar el comportamiento de un ascensor lo más acorde a la realidad posible. Es por esto que deben cumplirse ciertas restricciones y especificaciones que garanticen esto.
El ascensor puede atender llamados en todos los pisos, tanto para recoger como para dejar un pasajero.
La llegada de pasajeros es un variable aleatoria con distribución de Poisson, donde el parámetro varía dependiendo del piso de llegada.
El ascensor no puede pasar de largo por un piso si hay algún pasajero que desee bajarse en dicho piso.
El ascensor no puede cambiar su dirección actual a menos que haya dejado a todos los pasajeros dirigiéndose en dicha dirección
La solución debe hallarse por medio de métodos de aprendizaje por refuerzo. Esto último, junto con las restricciones y especificaciones dadas anteriormente para la elaboración de este proyecto, garantizan que el resultado final encuentre una estrategia óptima para el problema abordado.
6
METODOLOGÍA DEL TRABAJO
La metodología de trabajo consistió en la realización de reuniones semanales con el asesor del proyecto, el profesor Fernando Enrique Lozano Martínez, junto con estudiantes doctorales en las cuales se presentaban y discutían los avances e ideas que se tenían del proyecto. De esta manera se lograba enfocar el proyecto de manera adecuada, pues se planteaban nuevos objetivos e igualmente se corregían errores o defectos que el trabajo tuviera a la fecha.
6.1 Plan de trabajo
El proyecto inició con una lectura detallada acerca de qué es aprendizaje por refuerzo y qué elementos componen un problema que se quiera resolver por este medio. Para esta etapa se consultó principalmente el libro de Richard Sutton y Andrew Barto [1]. Igualmente se realizaron sesiones de clase dictadas por el estudiante doctoral Reinaldo Augusto Uribe Muriel en las que se explicaba, por medio de ejemplos concisos, los detalles más importantes a tener en cuenta en el momento de plantear un problema de aprendizaje por refuerzo.
La siguiente etapa en la realización del proyecto consistió en la consulta de información de trabajos previos realizados por otros autores que hubieran abordado el mismo problema, o uno similar a este tales como [2] o [6]. Igualmente se empezó la descripción detallada del modelo que se iba a utilizar, la cual se expone en la sección 7.1 del presente documento.
Posteriormente se inició el trabajo computacional con base en el modelo del ambiente propuesto y en algoritmos de aprendizaje por refuerzo para dar solución al problema. En esta etapa se realizaron sesiones de clase, como las mencionadas anteriormente, en las que se analizaba el funcionamiento de los diferentes algoritmos y se explicaba la solución de éstos por medio de ejemplos. Los algoritmos utilizados en la realización del proyecto se exponen en la sección 7.2 del presente documento.
La etapa final del proyecto consistió en la realización de las simulaciones para la validación de los resultados. En esta etapa se propusieron dos políticas determinísticas diferentes, las cuales sirven como punto de comparación del resultado final obtenido. La explicación de estas políticas, junto con los resultados finales se muestran en la sección 8 del presente documento.
6.2 Búsqueda de información
La búsqueda de información para el desarrollo del trabajo se realizó de manera progresiva dependiendo en qué etapa se encontraba el proyecto. Las fuentes de información que utilicé se debieron principalmente a recomendaciones del estudiante doctoral Reinaldo Augusto Uribe Muriel. Igualmente me basé en referencias citadas en los trabajos de grado de estudiantes de la Universidad de los Andes, los cuales tenían relación con el tema que se estaba tratando.
6.3 Alternativas de desarrollo
Una vez realizada la consulta bibliográfica, me di cuenta de las diferentes alternativas de modelo que se pueden usar para describir el problema. Sin embargo, el número de estados presentes en un modelo, dependen fuertemente en la precisión que se requiera de dicho modelo con la realidad. Se quería entonces encontrar un modelo que, si bien acertara en modelar la realidad, no incluyera un elevado número de estados (la función de valor no se pudiera almacenar en la memoria de un computador) para que la complejidad del trabajo computacional no se incrementara sustancialmente. Es por esto que se decidió trabajar con el modelo expuesto en la sección 7.1, el cual permite tanto aproximación a la realidad como fácil manejo de los algoritmos, sacrificando la precisión en el tiempo de espera de los pasajeros (por ejemplo, el modelo no distingue un pasajero que lleve esperando 15 segundos, a otro que lleve esperando 5 segundos el ascensor).
7
TRABAJO REALIZADO
En esta sección se describe el trabajo realizado a lo largo del proyecto. La secuencia que se presenta es la siguiente: planteamiento del modelo conceptual que representa el sistema de estudio; construcción del modelo de simulación; análisis de los resultados obtenidos.
7.1 Modelo del problema
El ambiente consiste en un edificio de cuatro pisos con un ascensor que atiende llamadas en todos ellos. El objetivo de este proyecto es llegar a una estrategia (o política) óptima, en el sentido en que minimice el tiempo de espera medio de las personas que esperan el ascensor. Para ello debemos dar un representación explícita de cómo se ve el ambiente en cada intervalo de tiempo.
Un estado cualquiera en el tiempo se representa como un vector de 13 posiciones de la siguiente manera:
. Representa el piso en el que se encuentra el ascensor en el tiempo .
. Representa la dirección en la que se está desplazando el ascensor en el tiempo . Si , el ascensor está subiendo. De lo contrario, está bajando.
. Da información acerca de si el ascensor está o no detenido en el tiempo . Si , el ascensor está en movimiento. De lo contrario, se encuentra detenido.
. Representa solicitudes de bajarse en los cuatro pisos, tomando un orden ascendente, i.e., empezando por la solicitud de bajarse en el primer piso y terminando por la solicitud de bajarse en el cuarto piso. Por ejemplo, si quiere decir que sólo hay solicitud activa de bajarse en el tercer piso (ver figura 2).
. Representa qué tanto tiempo lleva esperando un pasajero en cada uno de los 6 botones de llamada del ascensor (1 botón en los pisos extremos
y 2 en los pisos del medio), ordenados de la siguiente manera: ascendentemente empezando por los botones de subida y terminando con los botones de bajada. El valor “1” corresponde a un tiempo de espera mayor a 30 segundos; el valor de “0” corresponde a un tiempo de espera menor a 30 segundos. Por ejemplo, el estado en el que se encuentra la figura 2 corresponde a .
Figura 2. Ejemplo de un posible estado.
En la Figura 2 se puede observar un ejemplo de un posible estado del ascensor. Este estado estaría representado por:
Note que pues no hay llamados de subida en el piso 2, ni hay petición de parar en este mismo piso. Igualmente es importante ver que tanto en los pisos donde no hay personas esperando como en los pisos donde el tiempo de espera es menor a 30 segundos, el valor correspondiente de es . Estos dos casos se diferencian teniendo en cuenta que en los pisos donde hay gente esperando se tiene un tiempo de espera .
Teniendo en cuenta esta definición de estado, el espacio de estados tendría una cardinalidad dada por:
En cada instante de tiempo el agente debe reconocer dos posibles casos para así ver cuáles son las acciones permitidas.
Caso 1. Si el ascensor está en movimiento, la decisión que debe tomar el agente es si para o no en el siguiente piso al que se aproxima.
Caso 2. Si el ascensor está detenido, la decisión que debe tomar el agente es si se mantiene detenido, si empieza a desplazarse para arriba o si empieza a desplazarse para abajo.
En cualquier caso se deben tener en cuenta las restricciones presentes en la lógica de cualquier sistema de ascensores. Por ejemplo, un ascensor no puede pasar de largo un piso si hay alguna persona que desee bajarse en dicho piso. Igualmente un ascensor no puede cambiar de dirección si aún no ha dejado a todos los pasajeros dirigiéndose en la dirección actual.
Como se dijo anteriormente, lo que se quiere lograr es minimizar el tiempo de espera medio de las personas que esperan el ascensor. Este tiempo se toma como el tiempo que transcurre entre la llegada del pasajero y el instante en que el ascensor para en el piso correspondiente y con la dirección que le sirve a la persona. Teniendo esto en cuenta, es coherente definir la función de recompensa en el estado , como:
donde es el indicador llamado que representa qué tanto tiempo lleva esperando un pasajero en cada uno de los 6 botones de llamada del ascensor. Así, la recompensa inmediata para el ejemplo de la figura 2 estaría dada por:
Note que para cualquier instante de tiempo , la recompensa está acotada inferior y superiormente, en particular tenemos que . Bajo esta definición de la función de recompensa, nuestro objetivo es encontrar una política que garantice un recompensa de 0 para cualquier instante de tiempo , el cual representa el valor máximo de retorno esperado.
La llegada de pasajeros por piso se modeló como un proceso de Poisson con parámetro dependiente del número del piso. En la Tabla I se muestra la tasa promedio de pasajeros por minuto para cada piso, así como la probabilidad del piso de destino. Por ejemplo, para el piso 2 se esperan en promedio 2 pasajeros por minuto y, dado que ha llegado un pasajero, la probabilidad de que este vaya a los pisos 1, 3 o 4 es de 0.2, 0.2 y 0.6 respectivamente.
Tabla I. Información Llegada de Pasajeros . Piso Llegada Pasajeros / minuto Piso Destino
1 2 3 4
1 5 0 0.1 0.2 0.7
2 2 0.2 0 0.2 0.6
3 3 0.6 0.2 0 0.2
4 4 0.7 0.2 0.1 0
7.2 Trabajo computacional
En esta sección se exponen los algoritmos usados para la solución del problema, así como algunas definiciones para entender dichos algoritmos.
Terminamos la sección 4.3 afirmando que el método de Q-Learning obtiene una política óptima al aproximar la función de valor de acción óptima . Esto lo logra por medio del siguiente algoritmo [1]:
-- Algoritmo 1: Q-Learning --
1) Inicializa arbitrariamente (e.g., ). 2) Repita (para cada episodio):
1) Inicialice
2) Mientras no sea recurrente*:
1) Seleccione usando cierta política (e.g., -greedy). 2) Tome la acción y observe y .
3) Actualice el valor de mediante:
4)
Mediante este algoritmo se garantiza la convergencia de a siempre y cuando las visitas a cada pareja de estado-acción tiendan a infinito [3].
Como se puede ver en el algoritmo, por episodio se debe hacer una secuencia de toma de acciones y de actualizaciones en la función de valor de acción hasta que se llegue a un estado recurrente. Un estado es recurrente en la medida en la que, comenzando en él, se tenga la certeza de volver sobre sí mismo, i.e., si la probabilidad de que el ambiente se encuentre en el estado después de un cierto número de acciones, partiendo de este mismo estado, es 1.
Antes de implementar el algoritmo 1, es necesario determinar si el modelo del ambiente definido presenta algún estado recurrente. Para esto, hacemos uso de dos algoritmos presentados por Eugene Feinberg y Fenghsu Yang en [4].
Sean dos estados cualesquiera. Decimos que es evitable desde si existe una política determinística tal que , es decir, si la probabilidad de pasar del estado al estado es 0, siguiendo la política . Denotamos por el conjunto de todos aquellos estados desde los cuales es evitable. Es aquí donde hacemos uso del primer algoritmo de los mencionados anteriormente.
-- Algoritmo 2: Encontrar para un dado -- 1) Defina
2) Mientras :
1) Repita (para cada )
Si , entonces
3) 4)
Sea un estados cualquiera y sea un subconjunto de estados. Decimos que es alcanzable desde si existe una política determinística tal que , es decir, si la probabilidad de pasar del estado a cualquier estado que pertenezca a es positiva, siguiendo la política . Denotamos por el conjunto de todos aquellos estados desde los cuales es alcanzable. Es aquí donde hacemos uso del segundo algoritmo de los mencionados anteriormente.
-- Algoritmo 3: Encontrar para un --
1) Construya el grafo , reduciendo el conjunto de nodos al reemplazar el subconjunto por un solo nodo.
2) Para todo defina:
3) Aplique el algoritmo de breadth-search [5] al nodo . La salida de dicho algoritmo es un conjunto de nodos denotado .
Para determinar entonces si un estado es recurrente basta seguir los siguientes pasos [4]:
1. Encontrar utilizando el algoritmo 2. Si entonces concluimos que es recurrente. De lo contrario,
2. Encontrar . Si entonces concluimos que es recurrente.
7.3 Resultados Finales
Primero se hizo uso de los algoritmos 2 y 3 descritos en la sección anterior para determinar si el modelo tenía algún estado recurrente. El resultado obtenido muestra que el estado número 3073 es recurrente. Este estado se ve como:
Es decir, el estado en el cual el ascensor se encuentra parado en el primer piso, con dirección hacia arriba, donde no hay pasajeros dentro del ascensor y donde los tiempos de espera de los seis botones externos no excedan los treinta segundos (puede que no haya solicitud) es un estado recurrente.
A partir de este estado, utilizamos el algoritmo 1 descrito en la sección anterior para determinar la política óptima. Para esto se tomaron 10.000 episodios y se utilizó una estrategia -greedy para seleccionar la acción (con . La política óptima obtenida se muestra en la siguiente figura:
Figura 3. Política óptima .
Para entender la figura 3 es necesario saber la siguiente notación: para una acción , puede tomar tres valores diferentes. Si quiere decir que la acción que toma el agente es detener el ascensor; si quiere decir que la acción que toma el agente es subir; y si quiere decir que la acción que toma el agente es bajar.
La figura 3 está dividida por franjas de color rojo, las cuales marcan la división de número de pisos. Así, los primeros 4096 estados corresponden a los estados donde el ascensor se encuentra en el piso 1, los siguientes 4096 corresponden a los estados donde el ascensor se encuentra en el piso 2 y así sucesivamente.
Vemos entonces que, cuando el ascensor se encuentra en el piso 1, las acciones que toma el agente varían entre detenerse y subir. Cuando el ascensor se encuentra en el piso 4, las acciones que toma el agente varían entre detenerse y bajar. Por último, cuando el ascensor se encuentra en los pisos 2 o 3, el agente toma acción de detenerse, subir o bajar. Este comportamiento sigue una buena lógica. En la siguiente sección comparamos los tiempos de espera del ascensor siguiendo esta política, con respecto a otras dos políticas diferentes.
8
VALIDACIÓN DEL TRABAJO
En esta sección se describe metodología usada para la validación de los resultados obtenidos, así como un análisis de éstos.
8.1 Metodología de prueba
La metodología de prueba utilizada consistió en la comparación de tres políticas diferentes, una de las cuales es la política aprendida por medio del algoritmo de Q-Learning. Para dicha comparación se programó el ascensor para seguir cada una de estas políticas (una a la vez) durante una simulación de trabajo del ascensor equivalente a doce horas. Para cada política, se midió el tiempo de espera medio de las personas, donde el promedio se realizaba cada media hora.
8.2 Validación de los resultados del trabajo
Como se mencionó anteriormente, se utilizaron dos políticas determinísticas para la comparación posterior de la solución al problema. Éstas se describen a continuación:
La política 1 sigue un patrón lógico en el comportamiento del ascensor: si no hay solicitudes al ascensor, éste se queda quieto en el piso en el que esté; en caso de ir en movimiento, sólo para en los pisos en donde haya solicitudes de bajarse o montarse en él; por último, si el ascensor se encuentra en uno de los pisos del medio (pisos 2 o 3) y hay solicitudes que se realizan en el mismo instante de tiempo de atender llamados en los pisos 1 y 4, la política que sigue es siempre atender la llamada del piso 1, siempre y cuando no se viole ninguna restricción de las mencionadas anteriormente.
La política 2 sigue un patrón ilógico en el comportamiento del ascensor: no importa qué solicitudes haya, el ascensor va a seguir un ciclo se subir hasta el último piso y bajar hasta el primer piso, parando en cada piso para dejar o recoger pasajeros, en caso de que los haya.
La política aprendida corresponde a la política óptima derivada de aplicar el algoritmo de Q-Learning.
Una vez realizada la metodología con estas 3 políticas, los tiempos medios de espera de las personas para cada una de estas políticas, tomado del promedio de 100 simulaciones, se muestran a continuación:
Figura 4. Comparación tiempo de espera medio de cada política.
Los resultados que se ven en la figura 4 muestran lo que se esperaba:
El tiempo medio de espera de la política 1 es aproximadamente 23 segundos, siendo esta la mejor política de las 3 comparadas.
El tiempo medio de espera de la política 2 es aproximadamente 41 segundos, afirmando la ineficiencia de dicha política.
El tiempo medio de espera de la política aprendida es aproximadamente 25 segundos.
Bajo la política aprendida , se logra maximizar el retorno esperado, pues el tiempo de espera de los pasajeros está por debajo de los 30 segundos. A continuación se muestra cómo varía el valor del retorno a medida que se aprende la política óptima con la iteración de los episodios:
Figura 5. Desempeño de Q-Learning.
En la figura 5 se puede observar cómo va aumentando el retorno esperado a medida que se recorren más episodios. Se puede observar que el valor se estabiliza aproximadamente a partir de 3500 episodios, lo que indica que, para este caso, al algoritmo le toma 3500 episodios para llegar a la política óptima encontrada.
8.3 Evaluación del plan de trabajo
Al momento de elaborar el proyecto, no se pudo seguir un estricto cumplimiento con el plan de trabajo elaborado en la propuesta del proyecto de grado. Algunos de los tiempos estipulados tomaron más tiempo pues surgían problemas que no se habían tenido en cuenta inicialmente. Igualmente, la corrección de código computacional para el correcto funcionamiento de los algoritmos requiere de tiempo extra.
9
CONCLUSIONES
Los métodos de aprendizaje por refuerzo son una herramienta computacional muy importante para encontrar una solución a un problema en el que se tenga interacción con un ambiente. El hecho de que algunos de ellos no exijan un modelo completo del problema le da una importancia adicional pues permite atacar problemas cotidianos en los que no es posible modelar completamente el sistema que los describe.
La representación de los estados es de gran importancia para la precisión final que se desee tener de los resultados. Sin embargo, al aumentar la precisión de éstos, el costo computacional se ve elevado significativamente.
La buena definición de las recompensas juega un papel fundamental en la solución al problema, ya que estas permiten que se cumpla el objetivo deseado. Una mala definición de las recompensas puede llevar a políticas que no cumplan el objetivo deseado.
10
AGRADECIMIENTOS
En la realización de este proyecto doy gracias al asesor, Fernando Enrique Lozano Martínez y al estudiante doctoral Reinaldo Augusto Uribe Muriel por la colaboración y consejos dados para mejorar los resultados obtenidos. Igualmente agradezco a mis padres Salvador Carranza Ruiz y Nancy Aliria Caro de Carranza por su apoyo y confianza en mí
11
REFERENCIAS
[1] Sutton, R. Barto, A. (1998) Reinforcement Learning: An Introduction. MIT Press.
[2] Crites, R. Barto, A. (1996) Improving Elevator Performance Using Reinforcement Learning.
[3] Kaelbling, L. Littman, L. Moore, A. (1996) Reinforcement Learning: A survey. Journal of Artifficial Intelligence Research, vol 4. pp. 237-285.
[4] Feinberg, E. Yang, F. (2008) On Polynomial cases of the unichain classification problem for Markov decision processes.
[5] Ahuja, R. Magnanti, T. Orlin, J. (1993) Network Flows. Prentice Hall, New Jersey, pp. 73-76.
[6] Zheng, L. Guang, S. Hui, D. (2013) Research on elevator group scheduling system based on reinforcement learning algorithm.
12
APENDICES
Propuesta de Proyecto de Grado:
UNIVERSIDAD DE LOS ANDES
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
PRESENTACIÓN DE PROPUESTA DE PROYECTO DE GRADO
SEMESTRE: 2014-1
FECHA: 26 de mayo de 2014
PROYECTO O TESIS DE GRADO PARA OPTAR EL TÍTULO DE: INGENIERO ELECTRÓNICO
ESTUDIANTE: JUAN CAMILO CARRANZA CARO CÓDIGO: 201014808
TÍTULO DE LA TESIS O PROYECTO:
IMPLEMENTACIÓN DE UN AGENTE QUE SEA CAPAZ DE APRENDER LAS ACCIONES ÓPTIMAS DE UN SISTEMA DE ASCENSORES UTILIZANDO APRENDIZAJE POR REFUERZO.
DECLARACIÓN:
1 - Soy consciente que cualquier tipo de fraude en esta Tesis es considerado como una falta grave en la Universidad. Al firmar, entregar y presentar esta propuesta de Tesis o Proyecto de Grado, doy expreso testimonio de que esta propuesta fue desarrollada de acuerdo con las normas establecidas por la Universidad. Del mismo modo, aseguro que no participé en ningún tipo de fraude y que en el trabajo se expresan debidamente los conceptos o ideas que son tomadas de otras fuentes.
2- Soy consciente de que el trabajo que realizaré incluirá ideas y conceptos del autor y el Asesor y podrá incluir material de cursos o trabajos anteriores realizados en la Universidad y por lo tanto, daré el crédito correspondiente y utilizaré este material de acuerdo con las normas de derechos de autor. Así mismo, no haré publicaciones, informes, artículos o presentaciones en congresos, seminarios o conferencias sin la revisión o autorización expresa del Asesor, quien representará en este caso a la Universidad.
_____________________________________ Firma (Estudiante)
Código: 201014808 CC: 1014238413
_____________________________________ __________________________________ Vo.Bo. ASESOR (Firma) Vo.Bo. COASESOR (Firma)
TRABAJO DE GRADO
AUTORIZACIÓN DE SU USO A FAVOR DE LA UNIVERSIDAD DE LOS ANDES
Yo JUAN CAMILO CARRANZA CARO , mayor de edad, vecino de Bogotá D.C., identificado con la
Cédula de Ciudadanía N° 101423841de Bogotá , actuando en nombre propio, en mi calidad de autor del trabajo de tesis, monografía o trabajo de grado denominado:
IMPLEMENTACIÓN DE UN AGENTE QUE SEA CAPAZ DE APRENDER LAS ACCIONES ÓPTIMAS DE UN SISTEMA DE ASCENSORES UTILIZANDO APRENDIZAJE POR REFUERZO.
haré entrega del ejemplar respectivo y de sus anexos del ser el caso, en formato digital o electrónico (CD-ROM) y autorizo a LA UNIVERSIDAD DE LOS ANDES, para que en los términos establecidos en la Ley 23 de 1982, Ley 44 de 1993, Decisión Andina 351 de 1993, Decreto 460 de 1995 y demás normas generales sobre la materia, utilice y use en todas sus formas, los derechos patrimoniales de reproducción, comunicación pública, transformación y distribución (alquiler, préstamo público e importación) que me corresponden como creador de la obra objeto del documento. PARÁGRAFO: La presente autorización se hace extensiva no sólo a las facultades y derechos de uso sobre la obra en formato o soporte material, sino también para formato virtual, electrónico, digital, óptico, usos en red, internet, extranet, intranet, etc., y en general para cualquier formato conocido o por conocer.
EL AUTOR - ESTUDIANTES, manifiesta que la obra objeto de la presente autorización es original y la realizará sin violar o usurpar derechos de autor de terceros, por lo tanto la obra es de su exclusiva autoría y tiene la titularidad sobre la misma. PARÁGRAFO: En caso de presentarse cualquier reclamación o acción por parte de un tercero en cuanto a los derechos de autor sobre la obra en cuestión, EL ESTUDIANTE - AUTOR, asumirá toda la responsabilidad, y saldrá en defensa de los derechos aquí autorizados; para todos los efectos la Universidad actúa como un tercero de buena fe.
_________________________________
EL AUTOR - ESTUDIANTE.
(Firma) ...
Nombre Juan Camilo Carranza Caro
C.C. N° 101423841
de Bogotá
1. Caracterización del problema
Suponga un edificio de 8 pisos con 3 ascensores disponibles. Para simular el comportamiento de dichos ascensores sería necesario dividir este problema en otros más sencillos (programación dinámica), los cuales caractericen los posibles estados que se puedan presentar. El espacio de estados correspondiente tiene un tamaño enorme, incluye: posibles combinaciones de los estados de los botones de cada piso (2 por piso excepto en los pisos 1 y 8); posibles combinaciones de los estados de los botones de los ascensores; y posibles combinaciones de las posiciones y direcciones de cada ascensor. Obtenemos entonces un espacio de estados de tamaño:
estados.
Es acá donde entra en juego el aprendizaje por refuerzo, debido a que los algoritmos se pueden implementar sin necesidad de un modelo del sistema, más aún, estos algoritmos aprenden a raíz de su propia experiencia. En este proyecto se busca implementar un agente que aprenda, a partir de su interacción con el ambiente, la manera de distribuir un conjunto de ascensores de tal manera que el promedio del tiempo de espera de los usuarios sea lo más bajo posible.
2. Marco Teórico
Aprendizaje por refuerzo es aprender qué hacer (cómo asignar acciones a ciertas situaciones), con el fin de maximizar una señal de recompensa numérica. Al agente no se le especifica qué acciones tomar, como en algunas de las formas de aprendizaje de máquina, sino que debe descubrir cuáles acciones terminan en la mayor recompensa recibida. En los casos más interesantes y desafiantes, las acciones pueden afectar no sólo a la recompensa inmediata sino también a la siguiente situación y, por eso, todos los premios posteriores. Estas dos características, ensayo y error, y recompensa atrasada, son los dos rasgos distintivos más importantes de aprendizaje por refuerzo.
En la figura 1 se puede observar el diagrama que describe el proceso general que describe al aprendizaje por refuerzo. En dicho diagrama el agente y el ambiente interactúan en una secuencia de intervalos de tiempo discretos, En cada paso el agente percibe que el ambiente se encuentra en un estado y toma una acción . En respuesta, el ambiente hace una transición estocástica a un nuevo estado , y genera una recompensa asociada . El objetivo que busca el agente es seleccionar la acción de tal manera que maximice la recompensa esperada.
El sistema de control de un grupo de ascensores corresponde a un problema de decisión complejo, debido a que tiene características de aleatoriedad, objetivos múltiples y no linealidad. Para resolver este problema se puede interactuar con el ambiente, aprendiendo las decisiones que se deben tomar acorde a las circunstancias en las que se encuentra. Esto último es lo que se conoce bajo el nombre de aprendizaje por refuerzo.
3. Caracterización del proyecto
a. Objetivos generales
Implementar un agente que sea capaz de aprender las acciones óptimas de un sistema de ascensores utilizando aprendizaje por refuerzo.
b. Objetivos específicos
- Implementar un sistema de simulación que permita modelar el aprendizaje de los ascensores para suplir la demanda de manera óptima.
- Identificar variables de control y posibles estados para implementar una solución al problema.
- Reconocer restricciones presentes.
- Hacer uso de algoritmos de aprendizaje por refuerzo para tratar el problema.
c. Alcance
Agente capaz de aprender las acciones óptimas de un sistema de ascensores utilizando aprendizaje por refuerzo.
4. Contexto del proyecto y tratamientos
a. Suposiciones
- Sistema de ascensores en un edificio de pisos, con ascensores disponibles. - Los ascensores pueden atender llamados en todos los pisos.
- La llegada de pasajeros es una variable aleatoria con distribución de Poisson, donde el parámetro varía dependiendo de la hora del día.
b. Restricciones
- Un ascensor no puede seguir derecho si un pasajero desea bajarse en dicho piso. - Un ascensor no puede cambiar de dirección a menos que haya dejado a todos los
5. Cronograma
A continuación se muestra el cronograma por semanas para la realización del proyecto de grado.
Tarea Semanas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Estudio del problema de aprendizaje X X X X Recolección de datos X X
Estudio y escogencia del algoritmo X X X X
Implementación del algoritmo X X X X
Entrega de avance X
Pruebas y Ajustes X X X X
Comparación con implementación
actual X X
Conclusiones X X
Elaboración del documento X X X X X X X X X X X X
Entrega del documento al asesor X
Entrega del documento a los revisores X
las acciones óptimas de un ascensor utilizando
aprendizaje por refuerzo
6. Recursos
- Software MatLab. - Documentos de apoyo.
7. Bibliografía
[1] Richard S. Sutton, Andrew G. Barto. Reinforcement Learning: An Introduction [2] Robert H. Crites, Andrew G. Barto. Improving Elevator Performance Using Reinforcement Learning, 1996.
[3] Liu Zheng, Shu Guang, Dong Hui, Research o elevator group scheduling system based on reinforcement learning algorithm, 2013.
[4] Reinaldo Augusto Uribe Muriel. Reconstrucción de rompecabezas mediante técnicas de aprendizaje computacional por refuerzo, 2007. Disponible en línea en la biblioteca de la universidad.
[5] Edwin Dubán Torres García. Diseño y construcción de un programa de computador capaz de jugar Othello basado en aprendisaje por refuerzo, 2005. Disponible en línea en la biblioteca de la universidad.
[6] Andrea Carolina Buitrago. Técnicas de aprendizaje por refuerzo aplicadas a la planeación de caminos en robótica móvil, 2013. Disponible en línea en la biblioteca de la universidad.