DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo...

168
Casa abierta al tiempo U N I V E R S I D A D A U T ÓN O M A M ET R O P O L I T A N A UNIDAD IZTAPALAPA A S E S O R A U T O R DIVISI ´ ON DE CIENCIAS B ´ ASICAS E INGENIER ´ IA LICENCIATURA EN COMPUTACI ´ ON APRENDIZAJE MAQUINAL E INTELIGENCIA ARTIFICIAL EN EL MANEJO DE SEM ´ AFOROS PARA EL CONTROL DE TR ´ ANSITO EN CRUCEROS ASESOR: DR. REN ´ E MAC KINNEY ROMERO AUTOR: MIGUEL ANGEL RAM ´ IREZ G ´ OMEZ 13 de Noviembre de 2012

Transcript of DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo...

Page 1: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Casa abierta al tiempoUNIV

ERSID

ADAU

TÓNOMA METROPO

LITANA

UNIDAD IZTAPALAPA

A S E S O R A U T O R

DIVISION DE CIENCIAS BASICAS E INGENIERIA

LICENCIATURA EN COMPUTACION

APRENDIZAJE MAQUINAL EINTELIGENCIA ARTIFICIAL EN EL

MANEJO DE SEMAFOROS PARA EL

CONTROL DE TRANSITO EN CRUCEROS

ASESOR:

DR. RENE MAC KINNEY ROMERO

AUTOR:

MIGUEL ANGEL RAMIREZ GOMEZ

13 de Noviembre de 2012

Page 2: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Dedicado a...A mi esposa Blanca, ya que gracias a su amor, atencion y apoyo incondicio-

nal he logrado superar el reto que me impuse.

A mis padres Irma y Miguel, por su amor y comprension, por darme la opor-tunidad de hacer de mi vida lo que he considerado mejor para mi.

A mi suegra y mi cunada que de diversas formas me han apoyado en otrosaspectos de mi vida.

AgradecimientosAgradezco a Dios por rodearme de gente con tanto amor, la fortaleza y salud

brindada para continuar y terminar mi carrera.

Agradezco a la Universidad Autonoma Metropolitana por la oportunidadque me dio de realizar mis estudios de Licenciatura y conocer a grandes profe-sores.

Agradezco a mi asesor el Dr. Rene Mac Kinney Romero, por su paciencia yapoyo para la realizacion de el presente trabajo.

1

Page 3: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Indice general

1. Introduccion 91.1. Descripcion del proyecto . . . . . . . . . . . . . . . . . . . . . . . 91.2. Situacion actual del tema al que se relaciona el proyecto . . . . . 91.3. Proposito y justificacion del proyecto . . . . . . . . . . . . . . . . 101.4. Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . 11

1.4.1. Objetivos generales . . . . . . . . . . . . . . . . . . . . . . 111.4.2. Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . 11

1.5. Productos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . 111.6. Restricciones y consideraciones delproyecto. . . . . . . . . . . . . 111.7. Definicion inicial de riesgos . . . . . . . . . . . . . . . . . . . . . 111.8. Organizacion del Documento . . . . . . . . . . . . . . . . . . . . 12

2. Antecedentes 142.1. Semaforos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.1. Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.1.2. Ventajas y Desventajas . . . . . . . . . . . . . . . . . . . 142.1.3. Distribucion de Tiempo . . . . . . . . . . . . . . . . . . . 15

2.2. Distancia de detencion para un movil . . . . . . . . . . . . . . . . 17

3. Aprendizaje Maquinal 203.1. Definicion de Aprendizaje Maquinal . . . . . . . . . . . . . . . . 213.2. Diseno de un Sistema de Aprendizaje . . . . . . . . . . . . . . . 21

3.2.1. Problema de Aprendizaje Bien Definido . . . . . . . . . . 213.2.2. Eleccion de la Funcion Objetivo . . . . . . . . . . . . . . 243.2.3. Representacion de la Funcion Objetivo . . . . . . . . . . . 253.2.4. Algoritmo de Aproximacion de Funciones . . . . . . . . . 253.2.5. El Diseno Final . . . . . . . . . . . . . . . . . . . . . . . . 27

4. Aprendizaje de Conceptos 314.1. Una Tarea de Aprendizaje de Concepto . . . . . . . . . . . . . . 31

4.1.1. Notacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.1.2. La Hipotesis de Aprendizaje Inductivo . . . . . . . . . . . 344.1.3. Aprendizaje de Conceptos como Busqueda . . . . . . . . . 344.1.4. Orden General a Especıfico de las Hipotesis . . . . . . . . 34

2

Page 4: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

4.2. Algoritmo Find-S . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.3. Algoritmo Candidato-Eliminacion . . . . . . . . . . . . . . . . . . 39

4.3.1. Representacion . . . . . . . . . . . . . . . . . . . . . . . . 394.3.2. Algoritmo Lista-Entonces-Eliminar . . . . . . . . . . . . . 404.3.3. Representacion mas Compacta delEspacio de Versiones . 414.3.4. Algoritmo Candidato-Eliminacion . . . . . . . . . . . . . 42

4.4. Observaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.5. Sesgo Inductivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.5.1. Espacio de Hipotesis Sesgado . . . . . . . . . . . . . . . . 444.5.2. Aprendiz Imparcial . . . . . . . . . . . . . . . . . . . . . . 454.5.3. La Inutilidad del Aprendizaje Libre de Prejuicios . . . . . 45

5. Metodologıa General 485.1. Metodologıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.1.1. Representacion . . . . . . . . . . . . . . . . . . . . . . . . 515.1.2. Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.1.3. Simulado . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.1.4. Aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 575.1.5. Evaluacion . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6. Auto Organizacion de Semaforos 616.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.2. Aplicando la Metodologıa I . . . . . . . . . . . . . . . . . . . . . 62

6.2.1. Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . 62

7. Propuesta 727.1. Aplicando la metodologıa deCarlos Gershenson . . . . . . . . . . 73

8. Experimentos y Resultados 778.1. Simulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778.2. Semaforo Estatico . . . . . . . . . . . . . . . . . . . . . . . . . . 79

8.2.1. Experimento 0 . . . . . . . . . . . . . . . . . . . . . . . . 798.3. Semaforo Dinamico . . . . . . . . . . . . . . . . . . . . . . . . . . 81

8.3.1. Experimento 1 . . . . . . . . . . . . . . . . . . . . . . . . 828.3.2. Experimento 2 . . . . . . . . . . . . . . . . . . . . . . . . 848.3.3. Experimento 3 . . . . . . . . . . . . . . . . . . . . . . . . 868.3.4. Experimento 4 . . . . . . . . . . . . . . . . . . . . . . . . 888.3.5. Experimento 5 . . . . . . . . . . . . . . . . . . . . . . . . 88

9. Conclusiones 92

A. Resultados de las SimulacionesSemaforo Estatico 95

3

Page 5: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B. Resultados de las SimulacionesSemaforo Dinamico 109B.1. Experimento 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

B.1.1. Prueba de Aprendizaje de θ. . . . . . . . . . . . . . . . . 109B.1.2. Comparacion 1. Porcentaje de Mejoramiento. . . . . . . . 110

B.2. Experimento 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111B.2.1. Parte I. Aprendiendo ρ. . . . . . . . . . . . . . . . . . . . 111B.2.2. Parte II. Aprendiendo ϕmin. . . . . . . . . . . . . . . . . 112B.2.3. Parte III. Aprendiendo θ. . . . . . . . . . . . . . . . . . . 113

B.3. Experimento 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114B.3.1. Aprendiendo ρ, ϕmin y θ simultaneamente. . . . . . . . . 114

B.4. Experimento 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115B.4.1. Usando el S.D. vs S.E. (Optimos). . . . . . . . . . . . . . 115B.4.2. Mejoramiento Porcentual del Semaforo Dinamico. . . . . 116

B.5. Experimento 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117B.5.1. Usando el S.D. vs S.E. (Promedio). . . . . . . . . . . . . . 117B.5.2. Mejoramiento Porcentual del Semaforo Dinamico. . . . . 118

C. Codigo JAVA 119C.1. Clase Carro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119C.2. Clase Semaforo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124C.3. Clase UICrucero . . . . . . . . . . . . . . . . . . . . . . . . . . . 128C.4. Clase CNoperaciones conexion . . . . . . . . . . . . . . . . . . . 157C.5. Clase Cola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

D. Distancia de Frenado Seguro (Dfs) 166

4

Page 6: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Indice de figuras

2.1. Diagrama de Fases a utilizar. . . . . . . . . . . . . . . . . . . . . 152.2. Diagrama Fase-Ciclo de un Semaforo. . . . . . . . . . . . . . . . 16

3.1. Desarrollo del aprendizaje y surgimiento del sobre entrenamiento 233.2. Diseno final del programa de aprendizaje. . . . . . . . . . . . . . 28

4.1. Instancias, hipotesis, y la relacion “mas general que” . . . . . . . 364.2. Ejemplo Busqueda Find-S . . . . . . . . . . . . . . . . . . . . . 384.3. Espacio de Versiones . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1. Diagrama de las diferentes etapas de la metodologıa. . . . . . . . 51

8.1. Simulador creado y utilizado durante el proyecto. . . . . . . . . . 788.2. Configuraciones con Mejor Rendimiento semaforo fijo . . . . . . . 818.3. Aprendizaje de θ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 838.4. Mejora S.E. vs S.D. prueba de aprendizaje de θ. . . . . . . . . . 838.5. Resultados S.E. vs S.D. durante el aprendizaje de ρ. . . . . . . . 858.6. Resultados S.E. vs S.D. durante el aprendizaje de ϕmin. . . . . . 868.7. Resultados S.E. vs S.D. durante el aprendizaje de θ. . . . . . . . 878.8. Resultados S.E. vs S.D. durante el aprendizaje total. . . . . . . . 878.9. Mejoramiento S.E. vs S.D. con los mejores valores para ambos. . 898.10. Mejoramiento S.E. vs S.D. con valor fijo de luz verde. . . . . . . 90

5

Page 7: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Indice de tablas

4.1. Ejemplos de entrenamiento positivos y negativos . . . . . . . . . 324.2. La Tarea de Aprendizaje del concepto EnjoySport . . . . . . . . 334.3. Algorıtmo Find-S . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.4. Algoritmo Lista-Entonces-Eliminar . . . . . . . . . . . . . . . . . 404.5. Algoritmo Candidato-Eliminacion. . . . . . . . . . . . . . . . . . 43

6.1. Algoritmo 1. Sotl-Request. . . . . . . . . . . . . . . . . . . . . . . 646.2. Algoritmo 2. Sotl-Phase. . . . . . . . . . . . . . . . . . . . . . . . 666.3. Algoritmo 3. Sotl-Platoon. . . . . . . . . . . . . . . . . . . . . . . 676.4. Parametros utilizadas para la simulacion en NetLogo. . . . . . . 68

8.1. Configuraciones utilizadas para el semaforo fijo. . . . . . . . . . . 798.2. Flujos utilizados para la simulacion (carros/s). . . . . . . . . . . 80

A.1. Resultados para flujo = 0.01autos/s por vıa. . . . . . . . . . . . 95A.2. Resultados para flujo = 0.02autos/s por vıa. . . . . . . . . . . . 96A.3. Resultados para flujo = 0.03autos/s por vıa. . . . . . . . . . . . 96A.4. Resultados para flujo = 0.04autos/s por vıa. . . . . . . . . . . . 97A.5. Resultados para flujo = 0.05autos/s por vıa. . . . . . . . . . . . 97A.6. Resultados para flujo = 0.06autos/s por vıa. . . . . . . . . . . . 98A.7. Resultados para flujo = 0.07autos/s por vıa. . . . . . . . . . . . 98A.8. Resultados para flujo = 0.08autos/s por vıa. . . . . . . . . . . . 99A.9. Resultados para flujo = 0.09autos/s por vıa. . . . . . . . . . . . 99A.10.Resultados para flujo = 0.10autos/s por vıa. . . . . . . . . . . . 100A.11.Resultados para flujo = 0.11autos/s por vıa. . . . . . . . . . . . 100A.12.Resultados para flujo = 0.12autos/s por vıa. . . . . . . . . . . . 101A.13.Resultados para flujo = 0.13autos/s por vıa. . . . . . . . . . . . 101A.14.Resultados para flujo = 0.14autos/s por vıa. . . . . . . . . . . . 102A.15.Resultados para flujo = 0.15autos/s por vıa. . . . . . . . . . . . 102A.16.Resultados para flujo = 0.20autos/s por vıa. . . . . . . . . . . . 103A.17.Resultados para flujo = 0.30autos/s por vıa. . . . . . . . . . . . 103A.18.Resultados para flujo = 0.40autos/s por vıa. . . . . . . . . . . . 104A.19.Resultados para flujo = 0.50autos/s por vıa. . . . . . . . . . . . 104A.20.Resultados para flujo = 0.60autos/s por vıa. . . . . . . . . . . . 105A.21.Resultados para flujo = 0.70autos/s por vıa. . . . . . . . . . . . 105

6

Page 8: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

A.22.Resultados para flujo = 0.80autos/s por vıa. . . . . . . . . . . . 106A.23.Resultados para flujo = 0.90autos/s por vıa. . . . . . . . . . . . 106A.24.Resultados para flujo = 1.00autos/s por vıa. . . . . . . . . . . . 107A.25.Resultados para flujo = 10.00autos/s por vıa. . . . . . . . . . . 107A.26.Resumen de los mejores resultados por flujo. . . . . . . . . . . . . 108

B.1. Resultados del aprendizaje de θ . . . . . . . . . . . . . . . . . . . 109B.2. Comparacion 1 del semaforo dinamico con el semaforo fijo. . . . 110B.3. Resultados del aprendizaje de ρ . . . . . . . . . . . . . . . . . . . 111B.4. Resultados del aprendizaje de ϕmin . . . . . . . . . . . . . . . . . 112B.5. Resultados del aprendizaje de θ . . . . . . . . . . . . . . . . . . . 113B.6. Resultados del aprendizaje total . . . . . . . . . . . . . . . . . . 114B.7. Datos obtenidos con S.E. vs S.D. durante la simulacion. . . . . . 115B.8. Mejoramiento Porcentual del semaforo dinamico. . . . . . . . . . 116B.9. Datos obtenidos con S.E. vs S.D. durante la simulacion final. . . 117B.10.Mejoramiento Porcentual del semaforo dinamico. . . . . . . . . . 118

7

Page 9: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

INTRODUCCION

8

Page 10: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 1

Introduccion

1.1. Descripcion del proyecto

El presente proyecto busca mostrar que se puede mejorar la movilidad ycirculacion de los vehıculos dentro de vıas cuyo control en las interseccionesse lleva a cabo con semaforos, que regularmente manejan tiempos fijos parael cambio de luces. Apoyandonos en las areas de la inteligencia artificial y elaprendizaje maquinal buscamos desarrollar un programa que permita manipularel semaforo de forma inteligente.

Primeramente investigaremos los factores que intervienen en el control desemaforos ası como los terminos utilizados, para comprender el problema, yposteriormente estudiar los temas de la Inteligencia Artificial y el AprendizajeMaquinal para ver que herramientas podemos utilizar para modelar de la mejormanera nuestro problema de aprendizaje.

Despues se utilizara el lenguaje de programacion Java para realizar el pro-grama, en principio se busca el control de un crucero, teniendo en mente laposibilidad de extenderlo a un grupo de cruceros. Viendo la posibilidad de si-mular el comportamiento graficamente.

1.2. Situacion actual del tema al que se relacionael proyecto

Los avances en la informatica y en las comunicaciones sin cable hoy en dıaofrecen mas posibilidades para el desarrollo de Sistemas de Transporte Inteli-gente (STI). Estos sistemas implican el uso de un amplia gama de tecnologıasbasadas en telecomunicaciones y electronica, ası como su incorporacion a vehıcu-los y sistemas de transporte. La finalidad de estos STI es la de reducir los atascosy mejorar la seguridad del trafico.

Informaticos de la Rutgers University de Estados Unidos, en colaboracioncon la Universidad Politecnica de Bucarest, en Rumanıa, han desarrollado un

9

Page 11: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

modelo en el cual los semaforos “toman decisiones” de control de las lucesbasandose en la informacion que proviene de los vehıculos[1, NST].

Este modelo registro los picos de flujo de trafico de dos de los principalescruces de la ciudad de Bucarest, en Rumanıa, al tiempo que se establecıa elpatron de dicho flujo desde el laboratorio de computacion distribuida de laRutgers University. El modelo se considera como una representacion simplificadade la realidad en la que aparecen algunas de sus propiedades, mientras que lasimulacion es la experimentacion con un modelo de una hipotesis o un conjuntode hipotesis de trabajo.

En el modelo, a los semaforos se le suministra informacion acerca de la posi-cion y de la velocidad de todos los vehıculos de las calles cercanas de Bucarest, yse les programa para calcular con esta informacion como organizar los cambiosde color de sus luces, con el fin de agilizar el trafico.

Las mediciones de la reduccion del tiempo que pasaban los vehıculos enel cruce, realizadas en comparacion con el tiempo de recorrido calculado enausencia de un mecanismo de control, se acompanaron con mediciones de lasemisiones de CO2 en el mismo lugar y periodo. Estas emisiones disminuyeronun 6.5 % gracias al sistema, y a su vez el tiempo que los conductores pasanesperando en los cruces de las ciudades en horas de maxima afluencia de traficose redujo hasta un 28 %.

Los investigadores senalan que, segun este modelo, tanto los tiempos delos recorridos como el consumo de combustible y las emisiones contaminantes,pueden disminuirse en el mundo real con una gestion inteligente del traficorealizada desde los semaforos.

El modelo abre ademas otra posibilidad: que los coches incorporen un softwa-re especıfico que avise a los conductores tanto de las velocidades recomendablesen funcion de las luces de los semaforos, como en funcion de la cantidad decoches que se pueden encontrar en los atascos. Esta aplicacion tambien podrıatrasladar informacion al sistema para mejorar la regulacion del trafico mediantelos semaforos.

Para que esto ultimo fuera viable, los vehıculos deberıan estar conectados conel sistema informatico que controla los semaforos de cualquier ciudad. Aunqueactualmente esto no es posible, diferentes empresas y grupos de investigacion detodo el mundo trabajan ya en el desarrollo de sistemas de comunicacion entrecoches que puedan adaptarse a este proposito.

1.3. Proposito y justificacion del proyecto

El proposito de este proyecto es aplicar los conocimientos adquiridos durantela carrera e incursionar en la investigacion. La mala planeacion de las vialidadesy senalizaciones, conlleva a problemas como la contaminacion, el alto consumode gasolina, perdida de tiempo en el traslado, accidentes, etc., por lo que esimportante considerar el desarrollo de investigacion sobre este tema. Conside-rando que los automoviles emiten CO2 que contribuye a el calentamiento globaly el estres generado por embotellamientos o transito lento en las vıas carreteras,

10

Page 12: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

ambas afectando finalmente a la salud.

El beneficio que se esperarıa es que al aplicar el software desarrollado alcontrol de semaforos, se optimizaran los tiempos de los recorridos de los au-tomoviles, ahorrando tiempo y dinero, ademas de cuidar el medio ambiente y lasalud al contaminar menos.

1.4. Objetivos del proyecto

1.4.1. Objetivos generales

Crear un programa de control de semaforos el cual aprenda con la experienciay el entrenamiento para que sea capaz de optimizar los tiempos de cambio deluz de forma que mejore el transito vehicular.

1.4.2. Objetivos especıficos

• Aprender a utilizar Java.

• Adquirir los conocimientos basicos del aprendizaje maquinal.

• Desarrollo de reporte utilizando Latex.

1.5. Productos del proyecto

• Programa que aprende a manejar de forma optima los semaforos.

• Reporte Final.

• Simulador(Opcional)

1.6. Restricciones y consideraciones delproyecto.

• No se cuenta con la tecnologıa para realizar pruebas del producto fısica-mente.

• Se restringe el problema a un crucero de dos vıas con un carril con dossemaforos.

1.7. Definicion inicial de riesgos

• No contar con la informacion necesaria para desarrollar el proyecto.

• No terminar en tiempo y forma el proyecto.

• No cumplir con los objetivos.

11

Page 13: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

1.8. Organizacion del Documento

El presente trabajo esta organizado de la siguiente forma: en el Capıtulo 2definimos lo que es un semaforo, sus principales caracterısticas y la distanciade detencion para un movil. En el Capıtulo 3 definimos que es el aprendizajemaquinal y presentamos el diseno de un sistema de aprendizaje. En el Capıtu-lo 4 abordamos el aprendizaje de conceptos y presentamos los algoritmos deaprendizaje Find-S, Candidato-Eliminacion y Lista-Entonces-Eliminar. En elCapıtulo 5 mostramos una metodologıa general para el desarrollo de sistemas.En el Capıtulo 6 se muestra como el Dr. Carlos Hershenson aplica esta metodo-logıa para hacer a los semaforos auto organizados. En el Capıtulo 7, se muestrala propuesta realizada a partir de todo lo visto en los capıtulos anteriores. Enel Capıtulo 8, se explica como se desarrollaron los experimentos llevados a cabopara probar si nuestra propuesta mejora el rendimiento del sistema y los resul-tados obtenidos. Por ultimo en el capıtulo 9 exponemos nuestras conclusionesy las propuestas de trabajos futuros que se puedan llevar a cabo para mejorartodavıa mas el rendimiento del sistema. En el Apendice A y B se muestran losdatos obtenidos de los experimentos realizados en el simulador. En el ApendiceC se puede consultar el codigo realizado para el simulador y el aprendizaje.

12

Page 14: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

ANTECEDENTES

13

Page 15: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 2

Antecedentes

2.1. Semaforos

2.1.1. Definicion

“Es el aparato electromecanico proyectado especıficamente para facilitar elcontrol del transito de vehıculos y peatones, con indicaciones visuales en el ca-mino. Su funcionalidad principal es la de permitir el paso, alternadamente, alas corrientes de transito que se cruzan, permitiendo el uso ordenado y segurodel espacio disponible”[2, Cal].

2.1.2. Ventajas y Desventajas

Un semaforo o una sistema de semaforos, que opere correctamente, tendra unao mas de las siguientes ventajas :

a) Hace ordenada la circulacion del transito y, en ciertos casos, llega aumentarla capacidad de la calle.

b) Reduce la frecuencia de cierto tipo de accidentes.

c) Con espaciamientos favorables se pueden sincronizar para mantener cir-culacion continua, o casi continua a una velocidad constante en una rutadeterminada. En algunos casos, esa velocidad constantes es conveniente-mente reducida para fines de seguridad.

d) Permiten interrumpir periodicamente el transito intenso de una arteriapara permitir el paso de vehıculos y peatones de las vıas transversales.

e) En la mayorıa de los casos representan una economıa considerable conrespecto al control por medio de policıas de transito.

14

Page 16: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

movimiento

detenido

Fase “A“ Fase “B“

Figura 2.1: Diagrama de Fases a utilizar.

Cuando la operacion de un semaforo o un sistema de semaforos es deficien-te, ya sea por falta de elementos de juicio, o bien porque se ha abusado de lossemaforos como una panacea para resolver todos los problemas, pueden presen-tarse alguna o varias de las siguientes desventajas:

a) Se incurrira en gastos no justificados para soluciones que podıan haberseresuelto solamente con senales o en otra forma economica.

b) Producen demoras injustificadas a cierto numero de usuarios, especial-mente tratandose de volumenes de transito pequenos, al causar retardosmolestos por excesiva duracion de la luz roja o del tiempo total del ciclo.

c) Producen reaccion desfavorable en el publico con la consiguiente falta derespeto hacia los semaforos o hacia las autoridades.

d) Excesivo numero de accidentes del tipo alcance, por cambios sorpresivosde color.

e) Perdidas innecesarias de tiempo en las horas del dıa en que se presentanescasos volumenes de transito que no requieren control de semaforos

2.1.3. Distribucion de Tiempo

En cada interseccion el flujo de vehıculos debe ser dividido en diferentesfases de movimiento, en cada uno de los cuales se efectua un desplazamientode vehıculos. Ciertos movimientos reciben el derecho al uso del espacio y se lesindica por medio de una senal verde o de pase, mientras que otros son detenidoscon un rojo o de alto. La seleccion y ordenamiento de movimientos simultaneoses lo que se denomina fase como se muestra en la figura 2.1.

Para obtener un mınimo de retardos cada fase debe incluir el mayor numeroposible de movimientos simultaneos. Se lograra, ası admitir mayor volumen devehıculos en la interseccion, que debe ser un objetivo permanente que no debeolvidarse.

En general el numero de fases diferentes debe reducirse al mınimo, conside-rando la seguridad y la eficiencia. La seleccion de movimientos dentro de cada

15

Page 17: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Calle “A“

Calle “B“

Longitud del ciclo

verde ambar rojo

Intervalo de despeje

Duracion de Duracion de

fase “A“ fase “B“

Figura 2.2: Diagrama Fase-Ciclo de un Semaforo.

fase debe tender a reducir a un mınimo la frecuencia y gravedad de los acciden-tes. La secuencia de fases debe tratar de reducir al mınimo los retardos.

La secuencia completa de fases, en el menor tiempo posible, constituye unciclo del semaforo (Figura 2.2). Por lo general en este, cada fase ocurrira una solavez. Cada fase tendra un tiempo de verde y generalmente, aunque no siempre,un ambar.

La distribucion de tiempo a cada fase debe estar en relacion directa a losvolumenes de transito de los movimientos correspondientes. Ası, la duracion decada fase y del ciclo dependera de la demanda.

Si el espaciamiento entre vehıculos que entran al crucero, medido en tiempo,durante la hora de maxima demanda de transito, es aproximadamente igual enlos carriles de las calles que se cruzan, la subdivision del tiempo total del ciclocon indicacion de verde, sera aproximadamente correcta si los lapsos correspon-dientes a cada calle se hacen directamente proporcionales a los volumenes detransito en los carriles. Esto puede apreciarse en los siguientes ejemplos.

Supongamos que se ha escogido un ciclo de 60 segundos y que el tiempo ne-cesario para que los vehıculos desalojen la interseccion inmediatamente despuesde la indicacion de SIGA, es de 5 segundos en cada calle; esto deja un totalde 50 segundos en SIGA a dividirse entre las dos calles. Supongamos que losvolumenes VA y VB en los carriles durante la hora de maxima intensidad detransito en las calles A y B, son de 400 y 250 vehıculos, respectivamente. Enel primer caso, supongamos que el espaciamiento entre vehıculos para cada unade las calles es el mismo. Los tiempos aproximados TA y TB correspondientes ala indicacion de SIGA, para las calles A y B, respectivamente, se obtiene comosigue:

TA

TB=

400

250

TA + TB = 50seg (tiempo total en SIGA)

16

Page 18: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

TA

50− TA=

400

250;

de dondeTA = 31seg.

TB = 50− 31 = 19seg.

En el segundo caso, supongamos que el espaciamiento entre vehıculos alarrancar en la calle A(EA) es de tres segundos y el espaciamiento (EB) en lacalle B es de cinco segundos. La diferencia en espaciamiento se podrıa debera un alto porcentaje de camiones en el carril de la calle B. La division de lostiempos con indicaciones de SIGA se obtiene, en forma aproximada, como sigue:

TA

TB=VA × EA

VB × EV=

400× 3

250× 5

TA

50− TA=

400× 3

250× 5;

de dondeTA = 24seg.

TB = 50− 24 = 26seg.

2.2. Distancia de detencion para un movil

En todo movimiento existe una distancia total de parada o de detencion (Dt)que contiene los siguientes elementos [3]:

Distancia de percepcion: La distancia de percepcion (Dp) es la distancia querecorre el vehıculo desde el momento en que los ojos ven un riesgo hastaque el cerebro lo reconoce o percibe como tal. En un conductor normaleste tiempo es de 3

4 de segundo (0.75 s).

Distancia de reaccion: La distancia de reaccion (Dr) es la distancia recorridadesde que el cerebro le dice al pie que se quite del acelerador hasta que elpie esta de hecho pisando el pedal de freno. El conductor promedio tieneun tiempo de reaccion de 3

4 de segundo (0.75 s).

Distancia de frenado: La distancia de frenado (Df ) es la distancia que reco-rre el movil hasta su detencion completa, una vez que se han accionadolos frenos.

Y se puede definir como:Dp +Dr +Df = Dt

Todo vehıculo que circule detras de otro habra de hacerlo a una distancia quele permita detenerse en caso de frenado brusco, sin colisionar con el, teniendoen cuenta la velocidad, las condiciones de frenado y adherencia.

17

Page 19: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Apreciar la distancia al conducir resulta difıcil, una sencilla operacion nospuede dar una idea de la distancia a guardar. “Aproximadamente 0.5 metrospor cada kilometro/hora de velocidad”[4, CEA].

Ası por ejemplo si circulamos a 120 km/h la separacion que debemos guardarsera de 60 metros.

18

Page 20: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

APRENDIZAJEMAQUINAL

19

Page 21: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 3

Aprendizaje Maquinal

Los seres humanos tenemos la capacidad de aprender observando, estudian-do, interaccionando, accionando, etc., la inteligencia artificial busca la manerade hacer que las computadoras tambien puedan aprender de la interaccion consu entorno y de ellas mismas aunque falta mucho por hacer para que un sistemaaprenda por sı mismo, como lo hacemos nosotros.

La inteligencia artificial es una especialidad que busca crear sistemas in-teligentes, es decir, darle a las computadoras la capacidad de adaptarse a unentorno versatil, y para poder adaptarse deben tener la capacidad de aprender[5, LPAYDIN].

El campo de accion del aprendizaje maquinal tiene que ver con la cuestionde como construir programas de computadora que automaticamente mejorencon la experiencia. Se han desarrollado muchas aplicaciones en los ultimos anoscon exito para el aprendizaje maquinal, algunos de estos son los programas deminerıa de datos que aprenden a detectar transacciones fraudulentas de tarjetasde credito, sistemas de filtrado de informacion que aprenden las preferenciasde lectura de los usuarios, vehıculos autonomos que aprenden a conducir en lavıa publica, entre otros. Al mismo tiempo, ha habido importantes avances en lateorıa de algoritmos que conforman los cimientos de este ambito.

El aprendizaje maquinal se basa en conceptos y resultados de muchos cam-pos, como la estadıstica, inteligencia artificial, filosofıa, teorıa de la informacion,biologıa, la ciencia del conocimiento, la complejidad computacional, y la teorıade control.

Con un conocimiento acertado de como hacer que las computadoras apren-dan, habrıa muchas aplicaciones nuevas para la computadora y nuevos nivelesde competencia y de personalizacion.

Aunque no se sabe como hacer que los ordenadores aprendan tan bien co-mo la gente, se han inventado algoritmos eficaces para cierto tipo de tareasde aprendizaje como el reconocimiento de voz. Estos algoritmos basados en elaprendizaje maquinal superan a todos los otros metodos que se han intentadohasta la fecha.

20

Page 22: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

3.1. Definicion de Aprendizaje Maquinal

El Aprendizaje Maquinal es definido como cualquier programa de compu-tadora que mejora su rendimiento en una tarea a traves de la experiencia. Deforma mas precisa

Definicion: “Se dice que un programa de computadora aprende de la expe-riencia E con respecto a alguna clase de tarea T y cierta medida de rendimientoP , si su desempeno en las tareas T , medida por P , mejora con la experienciaE”[6, Mitchell].

3.2. Diseno de un Sistema de Aprendizaje

3.2.1. Problema de Aprendizaje Bien Definido

En general, para tener un Problema de Aprendizaje Bien Definido, hay queidentificar tres caracterısticas:

Tarea T : Definir que es lo que el sistema va a aprender. Definir una clase deproblema que abarque formas interesantes de aprendizaje, para explorarlos algoritmos que lo resuelvan, y comprender la estructura fundamentaldel problema de aprendizaje y sus procesos.

Medida de Rendimiento P : Se adopta una Medida de Rendimiento obviadependiendo del problema de aprendizaje. Se requiere para saber si elsistema esta aprendiendo, y con que precision. Para ello se debe definiruna metrica que nos indique el nivel de aprendizaje que ha logrado elsistema. La medida de rendimiento, denotada por P, depende del creadordel sistema y del problema de aprendizaje.

Experiencia de Entrenamiento E: Este elemento define el origen de la ex-periencia. Por supuesto, dependiendo del problema a tratar, se debe definirel proceso de entrenamiento. Al determinar la experiencia de entrenamien-to E, necesitamos tomar en cuenta los siguientes aspectos, respecto a losejemplos utilizados, para inducir las hipotesis: tipo de retroalimentacion,control de los ejemplos y distribucion de ejemplos.

Para nuestro proposito identificamos:

• Tarea T : Adaptar tiempos del semaforo segun el flujo.

• Medida de Rendimiento P : Porcentaje de simulaciones cuyo Co-ciente del flujo de salida con el flujo de entrada es menor o igual alerror permitido.

• Experiencia de Entrenamiento E: Pruebas sobre el simulador.

21

Page 23: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Aspectos de la Experiencia de Entrenamiento

Retroalimentacion Directa e Indirecta: Este atributo proporciona la ex-periencia de entrenamiento en relacion con las decisiones tomadas para elrendimiento del sistema. En la retroalimentacion directa le indicamos alsistema cada una de las reglas que debe utilizar para llevar a cabo su tarea.En la retroalimentacion indirecta se proporciona al sistema un conjuntode estados iniciales y finales, de manera que el mismo sistema debe inferirlas reglas validas para realizar su tarea. En este ultimo caso, es necesarioasignar un credito para cada accion. Por ejemplo, a una accion correctase le asigna un credito positivo, y a una incorrecta se le asigna un creditonegativo. De esta manera se determina si el sistema esta haciendolo bien.Esta asignacion de valores hace de la retroalimentacion indirecta un meto-do mas complejo que la directa. Por lo tanto, aprender del entrenamientocon retroalimentacion directa suele ser mas facil y es la que se facilita ennuestro caso.

Control de Ejemplos: El grado con que el aprendiz controla la secuenciade los ejemplos de entrenamiento es un segundo atributo conocido comoAprendizaje supervisado o no supervisado.

• Aprendizaje Supervisado

• Sin Control: Un sistema no tiene control sobre los ejemplos cuan-do estos son proporcionados por un maestro, el cual, puede serun usuario u otro sistema.

• Control Medio: Este tipo de control lo tiene aquel sistema quecrea ejemplos, pero un maestro es el que indica si estos son apro-piados para que el aprendizaje del sistema sea exitoso.

• Aprendizaje No Supervisado

• Control Total: Ningun maestro guıa el proceso de aprendizaje,en este caso el sistema tiene el control total de los ejemplos, demanera que el sistema los crea, e infiere si son adecuados paraun buen aprendizaje.

Distribucion de Ejemplos: Un tercer atributo de la experiencia de entrena-miento es que tan bien este representa la distribucion de los ejemplos sobrelos que el rendimiento final del sistema P debe ser medido. Si su experien-cia de entrenamiento E consta solo de los ejemplos de entrenamiento, hayun peligro evidente de que esta experiencia de entrenamiento no puede serplenamente representativa de la distribucion de las situaciones sobre lasque posteriormente se pondra a prueba.

Es importante mencionar un problema que puede surgir durante el pro-ceso de aprendizaje: El sobre entrenamiento (en ingles overfitting). Quese define de la siguiente manera: “Dado un espacio de hipotesis H, hǫHsobre-ajusta los datos de entrenamiento si ∃h ∈ H tal que h tiene un error

22

Page 24: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Error de Prueba

Error de Entrenamiento

Porc

enta

jede

Err

or

Tiempo de Aprendizaje

Cuando el error de prueba crece

mientras el error de entrenamiento

decrece, entonces se presenta el

sobre entrenamiento.

Figura 3.1: Desarrollo del aprendizaje y surgimiento del sobre entrenamiento

pequeno sobre los ejemplos de entrenamiento, pero h tiene un error maspequeno que h sobre la distribucion completa de instancias.” [6, Mitchell].

En la figura 3.1 el sobre entrenamiento se muestra como el crecimientodel error que hay entre las distribuciones del conjunto de ejemplos y elconjunto de prueba. En algun momento durante la ejecucion del algoritmode aprendizaje, la hipotesis es tal, que el error (diferencia entre la precisionde la hipotesis sobre el conjunto de entrenamiento y el conjunto de prueba)crece, en ese instante se esta presentando el sobre-entrenamiento, y lahipotesis obtenida generaliza los elementos del conjunto de ejemplos, perono el conjunto de prueba.

Estas situaciones son problematicas porque el dominio de una distribu-cion de ejemplos no conduce necesariamente a resultados optimos durantealguna otra distribucion.

Hasta aquı tenemos una Tarea de aprendizaje totalmente especificada, paracompletar el diseno del sistema de aprendizaje, debemos elegir ahora:

• El tipo exacto de conocimiento que debe ser aprendido

• Una representacion de este conocimiento objetivo y

• Un mecanismo de aprendizaje

La opcion de diseno siguiente es determinar exactamente el tipo de conoci-miento que sera aprendido y como sera utilizado por el programa de rendimiento.

23

Page 25: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

3.2.2. Eleccion de la Funcion Objetivo

El programa solo necesita saber como elegir la mejor opcion entre el conjuntode opciones validas. Esta tarea de aprendizaje es representativa de una ampliaclase de tareas para las cuales las opciones validas que definen un amplio espaciode busqueda se conocen de antemano, pero para los cuales la mejor estrategiade busqueda no se conoce. Muchos problemas de optimizacion se incluyen enesta clase, tales como los problemas de programacion y control de los procesosde fabricacion donde las etapas de fabricacion disponibles son bien conocidas,pero la mejor estrategia para la secuenciacion de ellos no lo es.

Por lo tanto la eleccion mas obvia para el tipo de informacion por aprenderes un programa o una funcion, que elige la mejor opcion para cualquier estadodado. Esta funcion acepta como entrada cualquier estado del conjunto de estadosvalidos B y produce como salida una accion del conjunto de acciones validasM , f : B −→M . Usando esta como una funcion objetivo, nos permitira reducirel problema de mejorar el rendimiento P de una tarea T en el problema deaprendizaje.

Una funcion objetivo alternativa y que a su vez sera mas facil de aprenderes una funcion de evaluacion que asigna un puntaje numerico a cualquier esta-do dado. Llamemos a esta funcion objetivo V y usando de nuevo la notacionV : B −→ R para indicar que V mapea cualquier estado valido del conjunto Ba un valor real. La intencion de esta funcion objetivo V es asignar las puntua-ciones mas altas a los mejores estados. Si el sistema puede aprender una funcionobjetivo V con exito, entonces se puede utilizar para seleccionar la mejor acciondesde cualquier estado actual. Esto se puede lograr mediante la generacion delsucesor del estado producido por cada accion valida, y a continuacion, utilizandoV para elegir el mejor estado sucesor y ası la mejor accion valida.

Esto hara que sea mas facil disenar un algoritmo de entrenamiento. Porejemplo, podemos definir el valor objetivo V (b) para un estado arbitrario b enB, de la siguiente manera:

1. si b es un estado final, que es favorable, entonces V (b) = 100

2. si b es un estado final que no favorece, entonces V (b) = −100

3. si b es un estado final que ni perjudica, ni favorece, entonces V (b) = 0

4. si b no es un estado final, entonces V (b) = V (b′), donde b′ es el mejor estadofinal que se puede lograr a partir de b y accionando de forma optima hastael final.

Excepto por los casos triviales (casos 1-3) en el que ya se ha terminado,determinar el valor de V (b) para un estado particular (caso 4) requiere de buscarpor delante utilizando el mejor estado siguiente correspondiente a b′, ¡todo elcamino hasta el final!.

El objetivo del aprendizaje en este caso, es descubrir una descripcion opera-tiva de V, que pueda ser utilizada por el programa para evaluar los estados yseleccionar las acciones correctas dentro de los lımites de tiempo real.

24

Page 26: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Generalmente puede ser muy difıcil aprender perfectamente tal forma ope-racional de V . Lo que esperamos del algoritmo de aprendizaje es obtener unaaproximacion de la funcion objetivo.

Para referirnos a la funcion que en realidad es aprendida por nuestro pro-grama utilizamos el sımbolo V, para distinguirla de la funcion objetivo idealV.

3.2.3. Representacion de la Funcion Objetivo

Una vez determinada la funcion objetivo ideal V, debemos elegir una repre-sentacion que el programa de aprendizaje utilizara para describir la funcion Vque aprendera. Por ejemplo, podrıamos permitir al programa que utilice unagran tabla con una entrada especıfica para representar el valor de V para cadaestado distinto. O podrıamos representar V usando un conjunto de reglas quecoinciden con las caracterısticas correspondientes al estado, o una funcion poli-nomio de segundo grado que caracterice estados predefinidos, o una red neuronalartificial.

Ası, por un lado, podemos elegir la representacion mas extensa que nospermita acercarnos lo mas posible a la representacion de la funcion objetivoideal V, pero por otro lado, la representacion mas extensa requerira mas datosde entrenamiento del programa a fin de elegir las hipotesis alternativas quepuede representar.

Una forma mas simple, serıa representar la funcion objetivo utilizando unaecuacion lineal. Para cualquier estado dado, la funcion V se calcularıa como unacombinacion lineal de las n-caracterısticas del estado (x1 . . . xn).

Por lo tanto, nuestro programa de aprendizaje representa V (b) como unafuncion lineal de la forma:

V (b) = w0 + w1x1 + · · ·+ wnxn

Donde de w0 a wn son coeficientes numericos, o pesos, a elegir por el algoritmode aprendizaje. Los valores aprendidos para los pesos w1 a wn determinan laimportancia relativa de varios de los componentes del estado que determinanel valor del estado, mientras que el peso w0 sera una constante aditiva para elvalor del estado.

El conjunto de opciones de diseno que se han planteado hasta ahora nos per-miten reducir el problema de aprendizaje de estrategias al problema de aprenderlos valores de los coeficientes w0 a wn en la representacion de la funcion objetivo.

3.2.4. Algoritmo de Aproximacion de Funciones

Para conocer la funcion objetivo V se requiere un conjunto de ejemplos deentrenamiento, cada uno de estos describe un estado especıfico b y el valor deentrenamiento Vtrain(b) de b, en otras palabras, cada ejemplo de entrenamientoes un par ordenado de la forma 〈b, Vtrain(b)〉.

Para esto requerimos un procedimiento que primero deriva tales ejemplos deentrenamiento, desde la experiencia de entrenamiento indirecta a disposicion del

25

Page 27: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

aprendiz, entonces, ajusta los pesos wi para adaptarse mejor a estos ejemplosde entrenamiento.

Estimacion de los Valores de Entrenamiento

Hay que recordar que la unica informacion de entrenamiento disponible paranuestro aprendiz es si finalmente logra el objetivo o no. Ademas, necesitamosejemplos de entrenamiento que asignan puntajes especıficos para determinadosestados. Aunque es facil asignar un valor a los estados que corresponden al estadofinal, es menos obvio asignar valores a los estados intermedios mas numerososque se producen antes del final. Incluso, el hecho de que el objetivo fue alcanzadoo no, eventualmente no indica que cada estado a lo largo del camino fuesenecesariamente bueno o malo. Por ejemplo, si el programa no logra el objetivo,todavıa puede darse el caso de que los estados que ocurren antes de llegar alfin deban ser valorados muy positivamente y que la causa de la perdida sea unamala accion posterior.

Regla para Estimar los Valores de Entrenamiento

Vtrain(b)← V (sucesor(b)) (3.1)

La siguiente regla para estimar los valores de entrenamiento utiliza la versionactual de V para estimar los valores de entrenamiento que seran utilizados pararefinar esta misma funcion, utilizando los valores estimados del sucesor(b) paraestimar el valor del estado b. Esto tendra sentido si V tiende a ser mas precisapara los estados mas cercanos al final.

Ajuste de los Pesos

Lo unico que falta es especificar el algoritmo de aprendizaje para la eleccionde los pesos wi que mejor se adapten al conjunto de ejemplos de entrenamiento{〈b, Vtrain(b)〉}. Un enfoque comun es definir la mejor hipotesis, o conjunto depesos, tales que minimicen el error cuadratico E entre los valores de entrena-miento y los valores previstos por la hipotesis V .

E ≡∑

〈b,Vtrain(b)〉∈{ejemplos de entrenamiento}

(Vtrain(b)− V (b))2

Buscamos los pesos, o equivalentemente la V, que minimice E para los ejem-plos de entrenamiento observados. Se conocen varios algoritmos para encontrarlos pesos de una funcion lineal que minimizan E definido de esta manera. Unalgoritmo de este tipo se llama mınimos cuadrados promedio, o regla de forma-cion LMS. Para cada ejemplo de entrenamiento observado este ajusta los pesosen una pequena cantidad en la direccion que reduce el error para el ejemplode entrenamiento. Este algoritmo puede ser visto como la realizacion de una

26

Page 28: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

busqueda estocastica gradiente descendiente a traves del espacio de hipotesisposibles (valores de los pesos) para reducir al mınimo el error cuadratico E.

El algoritmo LMS se define de la siguiente manera:

LMS Regla de Actualizacion de Pesos.

Para cada ejemplo de entrenamiento (b, Vtrain(b))

• Use los pesos actuales para calcular V (b)

• Para cada peso wi, actualizarlo segun

wi ← wi + η(Vtrain(b)− V (b))xi

Aquı η es una constante pequena (por ejemplo, 0.1) que modera el tamanodel peso actualizado. Hay que notar que cuando el error (Vtrain(b)−V (b)) es cero,no se cambian los pesos. Cuando (Vtrain(b)− V (b)) es positivo (es decir, cuandoV (b) es muy baja), entonces cada peso se incrementa en proporcion al valor de sufuncion correspondiente. Esto aumentara el valor de V (b), reduciendo el error. Siel valor de alguna xi es cero, entonces su peso no se altera independientementedel error, de modo que el peso solo se actualiza en aquellas cuyas propiedadesrealmente ocurren.

3.2.5. El Diseno Final

El diseno final del sistema de aprendizaje puede ser descrito por cuatromodulos de programas distintos que representan los componentes centrales demuchos sistemas de aprendizaje. Estos cuatro modulos, que se resumen en lafigura 3.2, son los siguientes:

Sistema de Rendimiento: Es el modulo que debe resolver la tarea de ren-dimiento, mediante el uso de la(s) funcion(es) objetivo aprendido(as). Senecesita una instancia de un problema nuevo como entrada y produce unregistro de la solucion como salida. En nuestro caso, para que pueda elSistema de Rendimiento seleccionar su proxima accion, cada paso esta de-terminado por la funcion de evaluacion aprendida V. Por lo tanto, se esperaque para mejorar su rendimiento esta funcion de evaluacion se haga cadavez mas precisa.

Crıtico: Toma como entrada el registro y produce como salida un conjunto deejemplos de entrenamiento de la funcion objetivo. Como se muestra enla figura 3.2, cada ejemplo de entrenamiento en este caso corresponde aun estado en el registro, junto con una estimacion del valor de la funcionobjetivo VTrain. En nuestro caso, el Crıtico corresponde a la regla de laformacion dada por la Ecuacion 3.1.

27

Page 29: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Generador deExperimentos

Sistema deRendimiento

Crıtico

Generalizador

Nuevos problemas(Tablero Inicial del juego)

Hipotesis(V )

Seguimiento de solucionesHistorial de juegos

Ejemplos de entrnamiento{〈b1, Vtrain(b1)〉, 〈b2, Vtrain(b2)〉, . . . }

Figura 3.2: Diseno final del programa de aprendizaje.

Generalizador: Toma como entrada los ejemplos de entrenamiento y produceuna hipotesis de salida que es la estimacion de la funcion objetivo. Ge-neraliza a partir de los ejemplos de entrenamiento especıficos, sugiere ypropone una funcion general que cubre estos ejemplos y otros casos masalla de los ejemplos de entrenamiento. En nuestro ejemplo, el generaliza-dor concuerda con el algoritmo LMS, y la hipotesis de salida es la funcionV descrita por los pesos aprendidos w0, . . . , wn.

Generador de Experimentos: Toma como entrada la hipotesis actual (fun-cion aprendida actualmente) y genera un nuevo problema (es decir, elestado inicial del tablero) a explorar por el Sistema de Rendimiento. Sufuncion es tomar de la practica los nuevos problemas que maximizan latasa de aprendizaje de todo el sistema.

Muchos sistemas de aprendizaje maquinal pueden ser caracterizados en termi-nos de estos cuatro modulos genericos. Restringiendo el tipo de conocimientoque puede ser adquirido a una simple funcion de evaluacion lineal. Limitando lafuncion de evaluacion a que dependa solo de las caracterısticas especıficas previs-tas para el estado. Si la funcion objetivo de la funcion V , puede ser representadapor una combinacion lineal de estas caracterısticas, entonces nuestro programatendra una buena oportunidad de aprender. Si no, por lo menos aprendera unabuena aproximacion.

Una perspectiva util en el aprendizaje maquinal es, tratar de buscar unespacio muy amplio de hipotesis posibles para determinar la que mejor se adaptea los datos observados y sin conocimiento previo por parte del aprendiz. La tareadel aprendiz es, entonces, buscar a traves de este gran espacio para ubicar lahipotesis que es mas coherente con los ejemplos de entrenamiento disponibles.

Con pesos apropiados, el algoritmo LMS logra este objetivo ajustando deforma iterativa los pesos, con la adicion de una correccion a cada peso cada vezque la funcion de evaluacion de la hipotesis predice un valor que difiere del valor

28

Page 30: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

de entrenamiento.En general cuando se necesita clasificar datos o tomar decisiones basadas

en la experiencia, sin importar la disciplina que lo requiera, se puede utilizartecnicas de aprendizaje maquinal. Sin embargo hasta ahora tenemos solo unaidea muy general de como se representa el conocimiento y como se realiza labusqueda.

29

Page 31: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

APRENDIZAJE DECONCEPTOS

30

Page 32: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 4

Aprendizaje de Conceptos yOrden General a Especıfico

En el presente capıtulo se hara referencia a definiciones tomadas del libro deMitchell [6].

El aprendizaje de conceptos se puede ver como un problema de busqueda dela hipotesis que mejor se adapte a los ejemplos de entrenamiento, dentro de unespacio predefinido de hipotesis posibles. En muchos casos, esta busqueda puedeorganizarse eficientemente aprovechando una estructura natural que se da sobreel espacio de hipotesis, ordenamiento de hipotesis (de general a especıfico).

La gente aprende continuamente conceptos o categorıas generales tales como“pajaro”, “coche”, etc. Cada concepto puede ser visto como la descripcion dealgun subconjunto de objetos o eventos definidos en un conjunto mas amplio.

Un concepto se puede considerar como una funcion booleana definida sobreun conjunto mas amplio, por ejemplo, una funcion definida sobre todos losanimales, cuyo valor es cierto para las aves y falso para otros animales.

Podemos considerar el problema de inferir automaticamente la definicion ge-neral de un concepto, dando ejemplos etiquetados como miembros o no miembrosdel concepto. Esta tarea comunmente se conoce como el aprendizaje de concep-tos, o de aproximacion a una funcion booleana a partir de ejemplos.

Definicion: “El Aprendizaje de conceptos es la inferencia de una funcionbooleana a partir de un conjunto de ejemplos de entrenamiento de entrada ysalida”.

4.1. Una Tarea de Aprendizaje de Concepto

Consideremos por ejemplo la tarea de aprendizaje del concepto objetivo “dıasen los que mi primo Aldo disfruta de su deporte el futbol”. En la Tabla 4.1 se

31

Page 33: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

describe un conjunto de dıas ejemplo, cada uno representado por un conjunto deatributos. El atributo EnjoySport indica si Aldo disfruta de su deporte el futbolen ese dıa. Cada hipotesis consiste de un conjunto de restricciones sobre losatributos de instancia donde cada hipotesis es un vector de seis restricciones,especificado por los valores de los seis atributos Cielo, Ambiente, Humedad,Viento, Cancha y Pronostico.

La tarea es aprender a predecir el valor de EnjoySport en un dıa arbitrario,basado en los valores de sus otros atributos.

Para cada atributo de la hipotesis:

• “?” indica que cualquier valor es aceptable para este atributo,

• especificar un solo valor deseado (por ejemplo, calido) para el atributo, o

• indicar por un “∅” que no hay ningun valor aceptable.

Si alguna instancia x satisface todas las restricciones de la hipotesis h, en-tonces h clasifica x como un ejemplo positivo (h(x) = 1).

Ejemplo Cielo Ambiente Humedad Viento Cancha Pronostico EnjSpo1 Soleado Calido Normal Fuerte Pasto Mismo Si2 Soleado Calido Alta Fuerte Pasto Mismo Si3 Lluvioso Frio Alta Fuerte Pasto Cambio No4 Soleado Calido Alta Fuerte Tierra Cambio Si

Tabla 4.1: Ejemplos de entrenamiento positivos y negativos para el conceptoobjetivo EnjoySport.

La hipotesis mas general -cada dıa es un ejemplo positivo-, esta representadopor

〈?, ?, ?, ?, ?, ?〉

La hipotesis mas especıfica posible -el dıa no es un ejemplo positivo- esrepresentado por

〈∅, ∅, ∅, ∅, ∅, ∅〉

La tarea de aprendizaje de conceptos puede ser descrita por el conjuntode instancias sobre las cuales es definida; la funcion objetivo, el conjunto dehipotesis candidatas consideradas por el aprendiz, y el conjunto de ejemplos deentrenamiento disponibles. La definicion de la tarea de aprendizaje del conceptoEnjoySport se muestra en la Tabla 4.2 de forma general.

4.1.1. Notacion

Conjunto de Instancias: Es el conjunto de elementos sobre los cuales es de-finido el concepto y se denota por X .

Ejemplo:X es el conjunto de todos los dıas posibles, cada uno representadopor los atributos Cielo, Ambiente, Humedad, Viento, Cancha y Pronostico.

32

Page 34: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Teniendo en cuenta:

• Instancias X: dıas posibles, cada uno descrito por los atributos

◦ Cielo (con los valores posibles Soleado, Nublado y Lluvioso),

◦ Ambiente (con valores Calido y Frıo),

◦ Humedad (con valores Normal y Alta),

◦ Viento (con valores Fuerte y Debil),

◦ Cancha (con valores Pasto y Tierra), y

◦ Pronostico (con valores Mismo y Cambio).

• Las hipotesis H: Cada hipotesis es descrita por un conjunto de restriccionessobre los atributos Cielo, Ambiente, Humedad, Viento, Agua y Pronostico. Lasrestricciones pueden ser “?” (cualquier valor es aceptable), “∅” (sin valor esaceptable), o un valor especıfico.

• Concepto objetivo c : EnjoySport : X −→ {0, 1}

• Ejemplos de entrenamiento D: ejemplos positivos y negativos de la funcionobjetivo

Determine:

• Una hipotesis h en H tal que h(x) = c(x) para todo x en X.

Tabla 4.2: La Tarea de Aprendizaje del concepto EnjoySport

Concepto Objetivo: Es el concepto o la funcion que hay que aprender, sedenota por c. y puede ser cualquier funcion booleana definida sobre elvalor de la instancia X , es decir,

c : X −→ {O, 1} (4.1)

El concepto objetivo corresponde a el valor del atributo EnjoySport.

c(x) = 1 si EnjoySport = Si

c(x) = 0 si EnjoySport = No

Para aprender el concepto objetivo, al aprendiz se le muestra un conjuntode ejemplos de entrenamiento.

• Instancias en las que c(x) = 1 son llamadas ejemplos positivos, o miembrosdel concepto objetivo.

• Instancias en las que c(x) = 0 son llamadas ejemplos negativos, o que noson miembros del concepto objetivo.

Para describir el ejemplo de entrenamiento que consiste de la instancia x deX y el valor de su concepto objetivo c(x) lo podemos representar por el parordenado 〈x, c(x)〉.

El conjunto de ejemplos de entrenamiento disponibles lo denotamos por D.Dado un conjunto de ejemplos de entrenamiento del concepto objetivo c, elproblema que enfrenta el aprendiz es estimar c.

33

Page 35: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

El sımbolo H lo usaremos para denotar el conjunto de todas las posibleshipotesis que el aprendiz puede considerar en relacion con la identidad del con-cepto objetivo.H esta determinada por el disenador quien elige la representacionde la hipotesis. Cada hipotesis h en H representa una funcion booleana definidasobre un valor X , es decir:

h : X −→ {O, 1}

El objetivo del aprendiz es encontrar una hipotesis h tal que h(x) = c(x)para toda x en X .

4.1.2. La Hipotesis de Aprendizaje Inductivo

Definicion: “Cualquier hipotesis encontrada para aproximar la funcion ob-jetivo sobre un conjunto suficientemente grande de ejemplos de entrenamiento,tambien aproximara la funcion objetivo sobre los ejemplos no observados”.

4.1.3. Aprendizaje de Conceptos como Busqueda

El aprendizaje de conceptos puede ser visto como la busqueda a traves deun gran espacio de hipotesis definidas implıcitamente por su representacion.

Al elegir una representacion para la hipotesis, el disenador del algoritmode aprendizaje define implıcitamente el espacio de todas las hipotesis que elprograma puede representar y por lo tanto aprender.

Si vemos el aprendizaje como un problema de busqueda, entonces es necesa-rio analizar estrategias diferentes para la busqueda de los espacios de hipotesis,algoritmos que hagan eficiente la busqueda en espacios de hipotesis muy grandeso infinitos para encontrar la hipotesis que mejor ajuste a los datos de entrena-miento.

4.1.4. Orden General a Especıfico de las Hipotesis

Existen algoritmos de aprendizaje de conceptos que organizan la busquedaa traves del espacio de hipotesis, apoyandose en la estructura que existe en elproblema de aprendizaje de conceptos: el ordenamiento de general a especıficode las hipotesis.

Tomando en cuenta esto, podemos disenar algoritmos de aprendizaje quebusquen de manera exhaustiva incluso en espacios de hipotesis infinitos, sinenumerar explıcitamente todas las hipotesis.

Por ejemplo, si tomamos dos hipotesis

h1 = 〈Soleado, ?, ?, Fuerte, ?, ?〉

h2 = 〈Soleado, ?, ?, ?, ?, ?〉

y consideremos el conjunto de casos que se clasifican positivos por h1 y h2.Como h2 impone menos restricciones a las instancias, clasifica mas casos comopositivos que h1. De hecho, cualquier caso clasificado positivo por h1 tambien

34

Page 36: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

sera clasificado positivo por h2. Por lo tanto, podemos decir que h2 es mas ge-neral que h1.

Definicion: “Sea X el conjunto de ejemplos y H el conjunto de las hipote-sis. Para cualquier instancia x ∈ X y h ∈ H, decimos que x satisface a h si ysolo si h(x) = 1.

Podemos definir la relacion “mas general que o igual a” en terminos del con-junto de instancias que satisfacen las dos hipotesis: Dadas las hipotesis hj y hk,hj es mas general que o igual a hk si y solo si cualquier instancia que satisfacehk tambien satisface a hj.

Definicion: “Sean hj y hk funciones booleanas definidas sobre X. Entonceshj es “mas general o igual a” hk (se escribe hj ≥g hk) si y solo si

(∀x ∈ X)[(hk(x) = 1)→ (hj(x) = 1)]

Tambien sera util tener en cuenta los casos en que una hipotesis es estric-tamente mas general que otra. Por lo tanto, diremos que hj es (estrictamente)“mas general que” hk (se escribe hj >g hk) si y solo si (hj ≥g hk)∧ (hk �g hj).

Y por ultimo la inversa, es decir que hj es “mas especıfico que” hk cuandohk es “mas general que” hj.

Para ejemplificar estas definiciones, consideramos las hipotesis h1, h2, y h3,del ejemplo EnjoySport, que se muestran en la Figura 4.1.

¿Como son estas tres hipotesis respecto a la relacion ≥g?

• La hipotesis h2 es mas general que h1, porque todos los casos que satisfagah1 tambien satisfacen h2.

• Del mismo modo, h2 es mas general que h3.

• Ni h1 ni h3 es “mas general” que el otro, aunque los casos satisfechos porestas dos hipotesis se intersectan, tampoco uno es subconjunto del otro.

Las relaciones ≥g y >g se definen independiente del concepto objetivo, solodependen de las instancias que cumplen las dos hipotesis y no de la clasificacionde las instancias, de acuerdo con el concepto objetivo.

Formalmente, la relacion ≥g define un orden parcial sobre el espacio dehipotesis H (la relacion es reflexiva, anti-simetrica y transitiva). De manerainformal, cuando decimos que la estructura tiene un orden parcial (en lugar detotal), se entiende que puede haber pares de hipotesis tales como h1 y h3, talesque h1 �g h3 y h3 �g h1.

Como mencionamos al inicio de esta seccion la relacion ≥g es importanteporque proporciona una estructura util sobre el espacio de hipotesis H paracualquier problema de aprendizaje de conceptos.

35

Page 37: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Instancias X Hipotesis H

bb bb

b

b b

b

b

b

b

b

b

x1

x2

b

b

bbb

bb

bb

bbb

bb

h1 h3

h2

Especıfico

General

x1 =< Soleado,Calido, Alta, Fuerte, T ierra, Mismo >x2 =< Soleado,Calido, Alta,Debil , Pasto, Mismo >

h1 =< Soleado, ?, ?, Fuerte, ?, ? >h2 =< Soleado, ?, ?, ?, ?, ? >

h3 =< Soleado, ?, ?, ?, T ierra, ? >

Figura 4.1: Instancias, hipotesis, y la relacion “mas general que”. El cuadrode la izquierda representa el conjunto X de todas las instancias, el cuadro dela derecha H el conjunto de todas las hipotesis. Cada hipotesis corresponde aun subconjunto de X (el subconjunto de instancias clasificadas como positivas).Las flechas que conectan las hipotesis representan la relacion “mas general que”,con la flecha apuntando hacia las hipotesis menos generales. Tenga en cuenta elsubconjunto de instancias caracterizadas por h2 contiene a el subgrupo carac-terizado por h1, por lo tanto, h2 es “mas general que” h1.

En las siguientes secciones trataremos dos algoritmos de aprendizaje deconceptos que aprovechan este orden parcial para organizar eficientemente labusqueda de la hipotesis que se ajusta a los datos de entrenamiento

4.2. Find-S: Encontrar una HipotesisMaximamente Especıfica.

Primeramente se dice que una hipotesis “cubre” un ejemplo positivo si cla-sifica correctamente el ejemplo como positivo. Teniendo esto en mente y parautilizar el ordenamiento parcial “mas general que” para organizar la busquedacomenzamos con la hipotesis mas especıfica posible en H , entonces generaliza-mos esta hipotesis cada vez que no llega a cubrir un ejemplo de entrenamientoobservado como positivo.

El algoritmo Find-S no hace caso a los ejemplos negativos y siempre quese asuma que el espacio de hipotesis H contiene una hipotesis que describeel concepto objetivo verdadero c y que los datos de entrenamiento no contienenningun error, la hipotesis actual h no requiere revision en respuesta a un ejemplonegativo.

El algoritmo Find-S muestra una manera en la que el ordenamiento parcial“mas general que” se puede utilizar para organizar la busqueda de una hipotesisaceptable (Ver Tabla 4.3).

36

Page 38: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Inicializar h con la hipotesis mas especıfica en H

Para cada instancia de entrenamiento positiva x

• Para cada una de las restricciones de los atributos ai, en h

◦ Si la restriccion ai, es satisfecha por x

Entonces no hacemos nada

◦ Sino reemplazamos ai en h por la siguiente restriccion mas general que essatisfecha por x

Salida de la hipotesis h

Tabla 4.3: Algorıtmo Find-S

Por ejemplo, si al aprendiz se le da la secuencia de ejemplos de entrenamien-to de la Tabla 4.1 para la tarea EnjoySport. El algoritmo Find-S inicializa lahipotesis mas especıfica h en H .

h = 〈∅, ∅, ∅, ∅, ∅, ∅〉

Al observar el primer ejemplo de entrenamiento de la Tabla 4.1, es un ejemplopositivo, ası que nuestra hipotesis actual es demasiada especıfica y no satisfaceel ejemplo, por lo que cada uno de los valores de los atributos de la hipotesisse sustituyen por la siguiente restriccion mas general que se ajusta al ejemplo;usando los valores de los atributos de este ejemplo de entrenamiento.

h = 〈Soleado,Calido,Normal,Fuerte,Pasto,Mismo〉

Esta h sigue siendo muy especıfica, pues nos indica que todos los demas casosson negativos, excepto para el ejemplo de entrenamiento que hemos observado. Siutilizamos ahora el segundo ejemplo de entrenamiento, como tambien es positivoobliga al algoritmo a generalizar aun mas h, sustituyendo el atributo en h queno es satisfecho por el nuevo ejemplo con un “?” en lugar del valor. Ahora lahipotesis es representada como

h = 〈Soleado,Calido, ?,Fuerte,Pasto,Mismo〉

El tercer ejemplo de entrenamiento es negativo, entonces el algoritmo no haceningun cambio a h. Ası h, clasifica correctamente este ejemplo como negativoy por lo tanto no se necesita revisar. Recordando que la hipotesis actual h esla hipotesis especıfica mas consistente con los ejemplos positivos observados ycomo el concepto objetivo c tambien se supone en H y es coherente con losejemplos de entrenamiento positivo, c debe ser “mas general que o igual a” h.Ademas el concepto objetivo c nunca cubrira un ejemplo negativo, por lo tantono sera necesaria una revision de h en respuesta a cualquier ejemplo negativo.

Finalmente el cuarto ejemplo nos permite generalizar un poco mas h.

h = 〈Soleado,Calido, ?,Fuerte, ?, ?〉

37

Page 39: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Instancias X Hipotesis H

Especıfico

General

b

b

bb

b

b

b

b

b

b

⊕ ⊕

⊗x3

x1 x2

x4

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

h0

h1

h2,3

h4

h0=<∅, ∅,∅, ∅, ∅, ∅>

x1=<Soleado Calido Normal Fuerte Pasto Mismo>,+ h1=<Soleado Calido Normal Fuerte Pasto Mismo>

x2=<Soleado Calido Alta Fuerte Pasto Mismo>,+ h2=<Soleado Calido ? Fuerte Pasto Mismo>

x3=<Lluvioso Frio Alta Fuerte Pasto Cambio>,- h3=<Soleado Calido ? Fuerte Pasto Mismo>

x4=<Soleado Calido Alta Fuerte Tierra Cambio>,+ h4=<Soleado Calido ? Fuerte ? ?>

Figura 4.2: La busqueda del espacio de hipotesis realizada por Find-S. Labusqueda se inicia (h0), con la hipotesis mas especıfica en H , entonces con-sidera hipotesis generales incrementadamente (h1 . . . h4) segun lo dispuesto porlos ejemplos de entrenamiento. En el diagrama del espacio de instancias, losejemplos de entrenamiento positivos se indican con “⊕”, los negativos con “⊗”y las instancias que no han sido presentados como ejemplos de entrenamientose indican con un cırculo solido.

La figura 4.2 muestra esta busqueda en funcion de las instancias y el espaciode hipotesis. En cada paso, la hipotesis es generalizada solo en lo necesario paracubrir el nuevo ejemplo positivo y ası tener la hipotesis especıfica mas consistentecon los ejemplos de entrenamiento observados hasta el momento.

Find-S garantiza la salida de la hipotesis mas especıficas dentro de H quesea consistente con los ejemplos de entrenamiento positivo.

¿El aprendiz converge al concepto objetivo correcto?

Find-S encuentra una hipotesis consistente con los datos de entrenamiento,pero no tiene forma de determinar si encontro la unica hipotesis deH consistentecon los datos (el concepto objetivo correcto), o si hay otras hipotesis que sonconsistentes.

Nos interesa un algoritmo de aprendizaje que pueda determinar si se haconvergido y al menos trate la incertidumbre sobre la verdadera identidad delconcepto objetivo.

¿Por que preferir la hipotesis mas especıfica?

Si haya multiples hipotesis consistentes con los ejemplos de entrenamiento,Find-S encuentra la mas especıfica, pero como saber si debemos preferir estahipotesis sobre la mas general, o alguna otra hipotesis de generalidad intermedia.

38

Page 40: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

¿Los ejemplos de entrenamiento son consistentes?

Existe la posibilidad de que los ejemplos de entrenamiento contengan erroreso ruido que puede inducir un error grave, ya que no se toman en cuenta losejemplos negativos. Seria conveniente un algoritmo que puede detectar los datosde entrenamiento inconsistentes y que pueda adaptarse a este tipo de errores.

¿Que pasa si hay varias hipotesis consistentes maximamente especıfi-cas?

Para el espacio de hipotesis de la tarea EnjoySport, siempre hay una unicahipotesis mas especıfica consistente con cualquier conjunto de ejemplos positi-vos, pero, para otro espacio de hipotesis distinto pueden haber varias hipotesisespecıficas maximas consistentes con los datos. En este caso, Find-S debe serextendido para permitir dar marcha atras en sus opciones de como generalizarla hipotesis, para dar cabida a la posibilidad de que el concepto objetivo se en-cuentra a lo largo de una rama diferente de la rama que se ha seleccionado porel ordenamiento parcial.

4.3. Espacio de Versiones y el AlgoritmoCandidato-Eliminacion

El algoritmo Candidato-Eliminacion, aborda varias de las limitaciones deFind-S. La idea principal es obtener a la salida un conjunto que describa todaslas hipotesis consistentes con los ejemplos de entrenamiento sin enumerarlasexplıcitamente.

Las aplicaciones practicas de los algoritmos Candidato-Eliminacion y Find-Sestan limitadas por el hecho de que ambos funcionan mal cuando se les da losdatos de entrenamiento con ruido.

4.3.1. Representacion

El algoritmo Candidato-Eliminacion encuentra todas las hipotesis que sepueden describir y que son consistentes con los ejemplos de entrenamiento ob-servados.

Definicion: Una hipotesis h es consistente con un conjunto de ejemplosde entrenamiento D si y solo si h(x) = c(x) para cada ejemplo (x, c(x)) en D.

Consistente(h,D) ≡ (∀〈x, c(x)〉 ∈ D)⇐⇒ h(x) = c(x)

La diferencia entre esta definicion de consistente y la definicion de satisfacerradica en que el ejemplo x satisface la hipotesis h cuando h(x) = 1, indepen-dientemente de si x es un ejemplo positivo o negativo del concepto objetivo. Sin

39

Page 41: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

embargo, si el ejemplo es consistente con h entonces h(x) = c(x) que dependedel concepto objetivo.

Definicion: El espacio de versiones, que se denota V SH,D, con respectoal espacio de hipotesis H y los ejemplos de entrenamiento D, es el subconjuntode hipotesis de H consistentes con los ejemplos de entrenamiento en D.

V SH,D ≡ {h ∈ H | Consistente(h,D)}

El espacio de versiones recibe este nombre porque contiene todas las versionesposibles del concepto objetivo.

4.3.2. Algoritmo Lista-Entonces-Eliminar

El algoritmo Lista-Entonces-Eliminar se puede aplicar siempre que el espa-cio de hipotesis H es finito. Este algoritmo surge de la idea de representar elespacio de versiones con un listado de todos sus miembros.

El algoritmo Lista-Entonces-Eliminar inicializa el espacio de versiones paraque contenga todas las hipotesis en H , y una vez inicalizado elimina cualquierhipotesis considerada incompatible con los ejemplos de entrenamiento, reducien-do el espacio de versiones a medida que observa mas ejemplos, hasta que solocontenga la hipotesis que es compatible con todos los ejemplos observados, elconcepto objetivo deseado.

Si los datos disponibles son insuficientes para reducir el espacio de versiones auna sola hipotesis, entonces el algoritmo da salida a todo el conjunto de hipotesisconsistentes con los datos observados (Ver Tabla 4.5).

Ventajas: Garantiza como salida todas las hipotesis consistentes con los datosde entrenamiento.

Desventaja: Se requiere enumerar todas las hipotesis en H .

V ersionSpace← una lista que contiene todas las hipotesis H

Para cada ejemplo de entrenamiento, (x, c(x)) eliminar de V ersionSpace

cualquier hipotesis h para el que h(x) 6= c(x)

Salida de la lista de las hipotesis en V ersionSpace

Tabla 4.4: Algoritmo Lista-Entonces-Eliminar

40

Page 42: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

S: {< Soleado, Caliente, ?, Fuerte, ?, ? >}

< Soleado, ?, ?, Fuerte, ?, ? > < Soleado, Caliente, ?, ?, ?, ? > <?, Caliente, ?, Fuerte, ?, ? >

G: {< Soleado, ?, ?, ?, ?, ? >,<?, Caliente, ?, ?, ?, ? >}

Figura 4.3: Espacio de versiones, con su conjunto de lımites generales y especıfi-cos. El espacio de versiones incluye las seis hipotesis que se muestran, pero puederepresentarse mas simple por S y G. Las flechas indican las instancias de la re-lacion “mas general que”. Este es el espacio de versiones para el problema deaprendizaje del concepto Enjoysport y los ejemplos de entrenamiento.

4.3.3. Representacion mas Compacta delEspacio de Versiones

El algoritmo Candidato-Eliminacion trabaja bajo el mismo principio que elalgoritmo Lista-Entonces-Eliminar pero este emplea una representacion muchomas compacta del espacio de versiones. El espacio de versiones se representa porsus miembros mas generales, y menos generales que establecen lımites generalesy especıficos respectivamente para delimitan el espacio de versiones dentro delespacio de hipotesis parcialmente ordenado.

El algoritmo Candidato-Eliminacion representa el espacio de versiones al-macenando solo a los miembros mas generales (etiquetados con G en la figura4.3) y a los mas especıficos (etiquetados con S en la figura 4.3). Si considera-mos solo estos dos conjuntos S y G es posible enumerar todos los miembros delespacio de versiones, generando las hipotesis que se encuentran entre estos dosconjuntos aprovechando el ordenamiento parcial “de lo general a lo especıfico”sobre las hipotesis.

Definicion: El lımite general G, con respecto al espacio de hipotesis H ylos datos de entrenamiento D, es el conjunto de los miembros generales maximosde H consistentes con D [6, Mitchell].

G ≡ {g ∈ H | Consistente(g,D) ∧ (¬∃g′ ∈ H)[(g′ >g g) ∧ Consistente(g′, D)]}

Definicion: El lımite especıfico S, con respecto al espacio de hipotesisH y los datos de entrenamiento D, es el conjunto de los miembros generales

41

Page 43: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

mınimos (es decir, maximo especıfico) de H consistentes con D [6, Mitchell].

S ≡ {s ∈ H | Consistente(s,D) ∧ (¬∃s′ ∈ H)[(s >g s′) ∧ Consistente(s′, D)]}

Siempre que el conjunto G y S esten bien definidos, especifican completa-mente el espacio de versiones

Teorema Representativo del Espacio de Versiones. Sea X un conjuntoarbitrario de instancias y sea H un conjunto de hipotesis con valores boolea-nos definidas sobre X. Sea c : X −→ {O, 1} un concepto objetivo arbitrariodefinido sobre X, y sea D un conjunto arbitrario de ejemplos de entrenamiento{〈x, c(x)〉}. Para todos los X,H, c, y D de tal manera que S y G estan biendefinidos,

V SH.D = {h ∈ H | (∃s ∈ S)(∃g ∈ G)(g ≥g h ≥g s)}.

[6, Mitchell].

4.3.4. Algoritmo Candidato-Eliminacion

El algoritmo Candidato-Eliminacion como ya mencionamos, calcula el espa-cio de versiones que contiene todas las hipotesis de H que son consistentes conuna secuencia observada de ejemplos de entrenamiento.

Comienza por inicializar el espacio de versiones para el conjunto de todas lashipotesis de H , inicializando el conjunto lımite G con la hipotesis mas generalen H ,

G0 = {〈?, ?, ?, ?, ?, ?〉}

e inicializa el conjunto lımite S con la hipotesis mas especıfica generalmente

S0 = {〈∅, ∅, ∅, ∅, ∅, ∅〉}.

Estos dos conjuntos lımite delimitan el espacio de hipotesis entero, porquecada otra hipotesis en H es a la vez mas general que S0 y mas especıfico que G0.A medida que cada ejemplo de entrenamiento se considera, los conjuntos lımiteS y G son generalizados y especifializados, respectivamente, descartando del es-pacio de versiones las hipotesis incompatibles con el ejemplo de entrenamiento.Una vez que se han procesado todos los ejemplos, el espacio de versiones con-tendra solo las hipotesis consistentes con los ejemplos (Este algoritmo se resumeen la Tabla 4.5).

Note la dualidad en la forma en que influyen los ejemplos positivos y ne-gativos en S y G. Tenga en cuenta que el algoritmo se especifica en terminosde operaciones, como el calculo de las generalizaciones y las especializacionesmınimas de las hipotesis dadas, y la identificacion de hipotesis no mınima yno maxima. La implementacion detallada de estas operaciones dependera, porsupuesto, de las representaciones especıficas para las instancias e hipotesis. Sinembargo, el propio algoritmo se puede aplicar a cualquier tarea de aprendizajede conceptos y espacio de hipotesis para las cuales estas operaciones esten bien.

42

Page 44: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Inicializar G al conjunto de hipotesis generales maximas en H

Inicializar S al conjunto de hipotesis especıficas maximas en H

Para cada ejemplo de entrenamiento d, hacer

Si d es un ejemplo positivo

• Eliminar de G cualquier hipotesis inconsistente con d

• Para cada hipotesis s de S que no sea consistente con d

◦ Quitar s de S

◦ Anadir a S todas las generalizaciones mınimas h de s tales que

⋄ h es consistente con d y algun miembro de G es mas general que h

◦ Eliminar de S cualquier hipotesis que es mas general que otra hipotesis enS

Si d es un ejemplo negativo

• Eliminar de S cualquier hipotesis inconsistente con d

• Para cada hipotesis g en G que no sea consistente con d

◦ Quitar g de G

◦ Anadir a G todas las especializaciones mınimas h de g tal que

⋄ h es consistente con d y algun miembro de S es mas especıfico que h

◦ Eliminar de G cualquier hipotesis que es menos general que otra hipotesisen G

Tabla 4.5: Algoritmo Candidato-Eliminacion Usando espacios de versiones.

4.4. Observaciones Sobre Espacios de Versionesy Candidato-Eliminacion

¿El algoritmo Candidato-Eliminacion converge a la hipotesis correc-ta? El espacio de versiones aprendido por el algoritmo Candidato-Eliminacionconverge hacia la hipotesis que describe de forma correcta el concepto objetivosiempre y cuando no haya errores en los ejemplos de entrenamiento y exista talhipotesis en H .

Si se utilizan nuevos ejemplos de entrenamiento, pueden servir para el moni-toreo del espacio de versiones y determinar si aun existe ambiguedad en relacioncon el concepto objetivo verdadero o para identificar este sin temor a equivo-carnos, tras observar suficientes ejemplos de entrenamiento.

Por lo tanto, el concepto objetivo es aprendido exactamente cuando los lımi-tes S y G convergen en una sola hipotesis identica.

Si los datos de entrenamiento contienen errores el algoritmo sigue siendo utilpues elimina el concepto objetivo correcto del espacio de versiones. Dando sufi-cientes datos de entrenamiento adicionales, el aprendiz detecta inconsistenciasal notar que los conjuntos lımite S y G convergen a un espacio de versiones vacıo.

43

Page 45: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Por lo tanto, un espacio de versiones vacıo indica que no hay ninguna hipote-sis en H consistente con todos los ejemplos de entrenamiento observados.

¿Que Ejemplo de Entrenamiento Debera Solicitar el Aprendiz a Con-tinuacion? La estrategia de consulta optima para un aprendiz de conceptoses generar instancias que cumplen con la mitad de las hipotesis del espacio deversiones actual. Cuando esto es posible, el tamano del espacio de versiones sereduce a la mitad con cada nuevo ejemplo, y el concepto objetivo correcto sepuede encontrar. Si no es posible construir una instancia que coincida con lamitad de las hipotesis, se necesitaran un mayor numero de consultas ⌈log2|V S|⌉.

¿Como Pueden Ser Usados Conceptos Aprendidos Parcialmente? Sino hay ejemplos de entrenamiento adicionales disponibles y el aprendiz es re-querido para clasificar nuevas instancias que aun no se han observado, a pesarde que el espacio de versiones todavıa contiene multiples hipotesis, que indicanque el concepto objetivo aun no se ha aprendido completamente, es posible cla-sificar a ciertos ejemplos con el mismo grado de confianza, como si el conceptoobjetivo se hubiese identificado de forma unica.

4.5. Sesgo Inductivo

¿Que pasa si el concepto objetivo no se encuentra en el espacio de hipotesis?¿Se puede evitar esta dificultad mediante el uso de un espacio de hipotesis,que incluya todas las hipotesis posibles? ¿De que manera el tamano de esteespacio de hipotesis influye en la capacidad del algoritmo para generalizar a lasinstancias no observadas? ¿De que manera el tamano del espacio de hipotesisinfluye en el numero de ejemplos de entrenamiento que se deben observar? Estasson cuestiones fundamentales para la inferencia inductiva en general.

4.5.1. Espacio de Hipotesis Sesgado

El sesgo del espacio de hipotesis tiene que ver con su conformacion. Si quequeremos asegurar que el espacio de hipotesis contenga el concepto objetivodesconocido, podrıamos enriquecer el espacio de hipotesis para incluir todaslas hipotesis posibles. Por ejemplo, al considerar el ejemplo EnjoySport, estelimita el espacio de hipotesis para incluir solo las conjunciones de los valoresde los atributos y debido a esta restriccion, el espacio de hipotesis no puederepresentar conceptos objetivo disyuntivos simples, como “Cielo = Soleado oCielo = Nublado”.

El problema es que hemos sesgado al aprendiz para considerar solo hipotesisconjuntivas. En este caso se requiere un espacio de hipotesis mas expresivo.

44

Page 46: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

4.5.2. Aprendiz Imparcial

La solucion al problema de asegurar que el concepto objetivo esta en lahipotesis del espacio H es proporcionar un espacio de hipotesis capaz de repre-sentar todos los conceptos a ensenar, en otras palabras, es capaz de representarcada posible subconjunto de las instancias X . Recordando que el conjunto detodos los subconjuntos de un conjunto X es el conjunto potencia de X , el nume-ro de subconjuntos distintos que se pueden definir sobre un conjunto X quecontiene |X | elementos es 2|X|.

Por lo tanto, hay 2|X|, conceptos objetivos distintos que se pueden definir coneste espacio de instancias y que nuestro aprendiz pueda llamar para aprender.

Para que nuestra tarea de aprendizaje sea imparcial definimos un nuevoespacio de hipotesis H ′ que pueda representar cada subconjunto de instancias(H ′ corresponda con el conjunto potencia de X). Definimos H ′ deforma que per-mita disyunciones, conjunciones y negaciones arbitrarias de nuestras hipotesisanteriores.

Ahora ya no tenemos problemas de expresividad pero surge otro problema:el algoritmo de aprendizaje de conceptos es ahora completamente incapaz degeneralizar mas alla de los ejemplos observados. Por lo tanto, los unicos ejem-plos que se clasifican inequıvocamente por S y G son los propios ejemplos deentrenamiento observados. Por lo tanto tendrıamos que presentar cada instanciasimple en X como un ejemplo de entrenamiento con el fin de converger a unsolo concepto objetivo final.

4.5.3. La Inutilidad del Aprendizaje Libre de Prejuicios

Un aprendiz que no hace suposiciones a priori sobre la identidad del conceptoobjetivo no tiene ninguna base racional para clasificar las instancias no vistas.El algoritmo Candidato-Eliminacion fue capaz de generalizar mas alla de losejemplos de entrenamiento observados en nuestra formulacion original de latarea EnjoySport porque fue sesgada por el supuesto implıcito de que el conceptoobjetivo puede ser representado por un conjunto de valores de atributos. En loscasos en que esta suposicion es correcta (y los ejemplos de entrenamiento estanlibres de errores), la clasificacion de instancias nuevas tambien seran correctas.

El sesgo inductivo de un aprendiz se puede definir como el conjunto de su-puestos adicionalesB suficientes para justificar estas inferencias inductivas comoinferencias deductivas.

Definicion: Considere un algoritmo de aprendizaje de conceptos L para elconjunto de instancias de X. Sea c un concepto arbitrario definido sobre X, ysea Dc = {〈x, c(x)〉} un conjunto arbitrario de ejemplos de entrenamiento de c.Sea L(xi, Dc), denota la clasificacion asignada a la instancia xi por L despuesde un entrenamiento sobre los datos Dc . El sesgo inductivo de L es cualquierconjunto mınimo de afirmaciones B tales que para cualquier concepto objetivoc le corresponden ejemplos de formacion Dc.

(∀xi ∈ X)[(B ∧Dc) ⊢ L(xi, Dc)]

45

Page 47: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Entonces en el algoritmo de ELIMINACION-CANDIDATO, ¿Cual es el ses-go inductivo? El concepto objetivo c esta contenido en el espacio de hipotesisdado H.

Los siguientes tres algoritmos de aprendizaje, se enumeran de los sesgadosmas debiles a los sesgados mas fuertes.

1. APRENDIZ-MEMORIZA: Este aprendizaje corresponde simplemente enalmacenar cada ejemplo de entrenamiento observado en la memoria. Lasinstancias siguientes seran clasificadas buscandolas en la memoria. Si lainstancia se encuentra en la memoria, la clasificacion almacenada se de-vuelve. De lo contrario, el sistema se niega a clasificar a la nueva instancia.

2. Algoritmo Candidato-Eliminacion: Las nuevas instancias se clasifican soloen el caso en el que todos los miembros del espacio de versiones actualesten de acuerdo sobre la clasificacion. De lo contrario, el sistema se niegaa clasificar a la nueva instancia.

3. Find-S : Este algoritmo, encuentra la hipotesis mas especıfica consistentecon los ejemplos de entrenamiento. A continuacion, utiliza esta hipotesispara clasificar todas las instancias posteriores.

El aprendizaje memorıstico no tiene sesgo inductivo. La clasificacion para lasnuevas instancias siguientes se establece deductivamente a partir de los ejemplosde entrenamiento observados, sin supuestos adicionales. El algoritmo Candidato-Eliminacion tiene un sesgo inductivo mas fuerte: el concepto objetivo puede serrepresentado en su espacio de hipotesis. Como tiene un sesgo mas fuerte, esteclasificara algunos casos que el algoritmo APRENDIZ-MEMORIZA no clasifica.Por supuesto, la correccion de tales clasificaciones depende por completo de lacorreccion de este sesgo inductivo. El algoritmo Find-S tiene un sesgo aun masinductivo. Ademas del supuesto de que el concepto objetivo puede ser descritoen su espacio de hipotesis, se tiene un supuesto adicional de sesgo inductivo: quetodas las instancias son casos negativas a menos que se suponga lo contrario porel conocimiento de otras.

Es importante tener en cuenta lo que significa caracterizar los metodos deinferencia inductiva y la fuerza de su sesgo inductivo. Metodos mas fuertemen-te sesgados hacen mas saltos inductivos, clasificando una mayor proporcion deinstancias no vistas. Algunos sesgos inductivos corresponden a supuestos ca-tegoricos que descartan por completo ciertos conceptos, tales como el sesgode “el espacio de hipotesis H que incluye el concepto objetivo.” Otros sesgosinductivos simplemente ordenan las hipotesis indicando las preferencias como“hipotesis mas especıficas son preferibles a hipotesis mas generales.” Algunossesgos estan implıcitos en el aprendiz y son inalterables por el.

46

Page 48: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

METODOLOGIAGENERAL

47

Page 49: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 5

Metodologıa General

En el presente capıtulo abordaremos una metodologıa propuesta por CarlosGershenson donde propone un marco conceptual para la Auto-Organizacion [7].

Definicion: Un agente es una descripcion de una entidad que actua sobresu entorno.

Por ejemplo un operador que actua en un mercado, un banco de peces queactua sobre un arrecife de coral, o un equipo que funciona en una red. Cadaelemento y cada sistema, pueden ser vistos como agentes con objetivos y com-portamientos con el fin de alcanzar metas. El comportamiento de los agentespueden afectar (de forma positiva, negativa o neutra) al cumplimiento de lasmetas de otros agentes, estableciendo ası una relacion. La satisfaccion o cum-plimiento de los objetivos de un agente puede ser representada mediante unavariable σ ∈ [0, 1].

La satisfaccion del sistema σsys puede ser representada de forma recursivacomo una funcion f : R2n+1 → [0, 1] de la satisfaccion σi de los n elementos quelo constituyen:

σsys = f(σ1, σ2, . . . , σn, ω0, ω1, ω2, . . . , ωn)

donde ω0 es un prejuicio y los otros pesos determinar la importancia dadaa cada σi. Si el sistema es homogeneo y los componentes tienen interaccioneslineales, entonces f sera la suma ponderada de σi, ωi = 1

n∀i 6= 0, ω0 = 0.Para los sistemas heterogeneos, f puede ser una funcion no lineal. Sin em-

bargo, los pesos ω′is se determinan tautologicamente por la importancia de la

σi de cada elemento para la satisfaccion del σsys sistema. Si varios elementosdisminuyen σsys a medida que aumentan su σi, no se consideran como parte delsistema independiente de la no linealidad de f .

Encontrar una funcion f explıcita puede ser difıcil, pero una aproximacionpuede ser muy util.

48

Page 50: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Otro metodo consiste en alterar el sistema eliminando o modificando los ele-mentos del sistema, y observar el efecto sobre σsys. Mediante el analisis de losefectos provocados por diferentes alteraciones, la funcion f puede ser reconstrui-da y obtener los pesos ωi′s. Si un pequeno cambio ∆σi en cualquier σi produceun cambio |∆σsys| ≥ |∆σi|, el sistema puede decirse que es fragil. Entonces,maximizar σsys y evitar conflictos entre los elementos ya no es una tarea obvia,implica delimitar los comportamientos de los agentes s que reducen a otra σi,preservando al mismo tiempo su funcionalidad.

No es nada mas minimizar la interferencia o friccion entre elementos, la siner-gia o “interferencia positiva” tambien debe ser promovida. No es posible decir acada elemento que hacer o como hacerlo, pero sus comportamientos deben serlimitados o modificados a fin de que sus objetivos sean alcanzados, tratar debloquear los objetivos de otros elementos lo menos como sea posible.

Los mediadores se determinan por un observador, y pueden ser internos oexternos al sistema (dependiendo de donde el observador establece los lımitesdel sistema). Por ejemplo en el trafico urbano: semaforos, senales y reglas paramediar entre los pilotos, tratan de minimizar los conflictos, que resultan de lacompetencia para conducir a traves del espacio en las vıas. Estas tienen exito,siempre y cuando todo el mundo se adhiere a ellos. Un mediador puede ser vistocomo una generalizacion de “capataz”.

Definicion: Un mediador arbitra entre los elementos de un sistema, pa-ra reducir al mınimo los conflictos y fricciones, interferencias y maximizar lacooperacion y la sinergia.

Por lo tanto, la eficacia del mediador puede medirse directamente medianteσsys. Individualmente, se puede medir la “friccion” φi ∈ [−1, 1] que causa elagente i en el resto del sistema, relacionando el cambio de satisfaccion ∆σi delelemento i con el cambio en la satisfaccion ∆σsys del sistema:

φi =−∆σi −∆σsys(n− 1)

n(5.1)

La friccion se produce cuando el aumento de la satisfaccion de un elementoprovoca una disminucion en la satisfaccion de algunos otros y tal disminuciones mayor al aumento logrado. La disminucion de la friccion dara lugar a σsys

mayores porque es precisamente como la friccion es definida en la Ecuacion 5.1,es decir, como la diferencia en el cambio de la satisfaccion de un elemento, afectaa la variacion de satisfaccion del sistema.

Si φi > 0, es porque hubo una disminucion notable en σsys, o una disminuciondesproporcionada en σi. Si φi < 0, lo mas probable es que se debe a un aumentode σsys, o algun notable aumento en σi con un costo mınimo para el sistema.Tenga en cuenta que φi = 0 no implica una ausencia de conflicto, ya que unagente puede “obtener” satisfaccion proporcionalmente a la “perdida” de lasatisfaccion de otro(s) agente(s). La Friccion negativa implicarıa sinergia, cuando∆σi ≥ 0, mientras que otros elementos tambien aumentan su σ. El papel de un

49

Page 51: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

mediador serıa maximizar σsys minimizando φ′is. Con este enfoque, la friccionpuede ser visto como un tipo de interaccion entre los elementos.

Suavizar las interacciones locales no proporcionan pistas sencillas en cuantoa lo que va a ocurrir en el nivel superior. Por lo tanto, el sistema debe ser ob-servado en los dos niveles: haciendo cambios locales y globales, observando loscomportamientos locales y globales, y analizando como uno afecta al otro.

Al mismo tiempo, la dependencia ǫ ∈ [−1, 1] de un elemento para el sistemapuede medirse mediante el calculo de la diferencia de la satisfaccion σi cuando elelemento interactua dentro del sistema y su satisfaccion σi cuando el elementoesta aislado σi.

ǫ = σi − σi. (5.2)

De esta manera, la dependencia total se da cuando la satisfaccion del ele-mento σi dentro del sistema es maxima y su satisfaccion σi es mınima cuandoel elemento esta aislado. Un resultado negativo implica que el elemento estarıamas satisfecho por su cuenta y en realidad es “esclavizado” por el sistema.

Ahora podemos usar las dependencias de los elementos de un sistema paramedir la integracion de un sistema τ ∈ [−1, 1], que puede ser visto como unamedida de una transicion gradual meta-sistema (MTS).

τ =1

n

n∑

i=1

ǫi. (5.3)

Un MST es un proceso gradual, y sera total cuando los elementos no seancapaces de alcanzar sus metas por si mismos es decir, σi → 0.

Podemos ver que esta tautologıa sera util para describir los sistemas arti-ficiales que cumplan con nuestras expectativas como disenadores por tener unalto τ .

5.1. Metodologıa

La metodologıa propuesta recibe los requisitos de un sistema, y permite aldisenador producir un sistema que cumple con estos. La metodologıa incluye lossiguientes pasos: representacion, modelado, simulacion, aplicacion y evaluacion,la Figura 5.1 presenta estos pasos. Estos pasos no necesariamente deben serseguidos de uno en uno, se pueden combinar las etapas unas con otras. Tambienpuede regresar a otra etapa, cuando el disenador necesita reconsiderar algo antesde terminar un ciclo / iteracion.

Esta metodologıa no debe ser vista como una receta que proporciona so-luciones hechas y listas, sino mas bien como una guıa para orientarnos en labusqueda de estas soluciones.

50

Page 52: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

1. Representación

2. Modelado

3. Simulación

4. Aplicación

5. Evaluación

Figura 5.1: Diagrama de las diferentes etapas de la metodologıa.

Las etapas propuestas no son nuevas, son similares a las propuestas por me-todologıas de desarrollo iterativo e incrementales. Sin embargo, hay que obser-var que la retroalimentacion activa entre etapas dentro de cada iteracion puedeayudar en el diseno de sistemas listos para hacer frente a las incertidumbres endominios de problemas complejos. La novedad de la metodologıa radica en elvocabulario utilizado para describir la auto-organizacion de los sistemas.

5.1.1. Representacion

El objetivo de este paso es desarrollar una especificacion (que puede serprovisional) de los componentes del sistema.

Hay muchas representaciones posibles de un sistema, dependiendo de laslimitaciones y requisitos, que ademas pueden estar incompletos. El disenadordebe elegir un vocabulario apropiado (metaforas para hablar del sistema), losniveles de abstraccion, granularidad, variables e interacciones que deben tenerseen cuenta. Todo esto depende a su vez de la experiencia del disenador. Laeleccion entre los diferentes enfoques puede depender mas de la experiencia deldisenador que de los beneficios del enfoque.

La representacion debera considerar al menos dos niveles de abstraccion,pero si hay muchas variables e interacciones en el sistema, mas niveles se puedecontemplar. Como los elementos y los sistemas pueden ser considerados agentes,podemos hacer referencia a todas ellas como X − agentes, donde X denota elnivel de abstraccion en relacion con los elementos mas simples. Por ejemplo, unaabstraccion de tres capas serıa contemplar elementos (0− agentes) que formansistemas (subsistemas, 1 − agentes) que son elementos de un sistema mayor(supersistema, 2− agentes).

Cada uno de estos tiene metas y satisfacciones σ(x) que pueden ser descritose interrelacionados. La satisfaccion del sistema que se esta disenando, sera de-terminado por las tareas que se esperan de ella. Si estas se cumplen, entoncesse puede decir que el sistema esta “satisfecho”. Por lo tanto, el disenador debeconcentrarse en los elementos que se esfuerzan por alcanzar esta satisfaccion.

51

Page 53: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

5.1.2. Modelado

En la ciencia, los modelos idealmente deberıan ser lo mas simple posible,y predecir tanto como sea posible. Por lo tanto, un buen modelo requiere unabuena representacion. La “elegancia” del modelo dependera en gran medida delas metaforas que usamos para hablar sobre el sistema. Si el modelo resulta serengorroso, la representacion debera ser revisada.

El modelado debe especificar un mecanismo de control que garantice queel sistema hace lo que debe hacer. Dado que estamos interesados en la auto-organizacion de los sistemas, el control sera interno y distribuido. Si el problemaes demasiado complejo, este se puede dividir en diferentes subproblemas. Elmodelado deberıa considerar tambien diferentes ventajas y desventajas para elsistema.

Mecanismos de Control

El mecanismo de control puede ser visto como un mediador, que garantiza laadecuada interaccion entre los elementos de un sistema, y que debe producir elrendimiento deseado. Sin embargo, no se puede tener un control estricto sobre unsistema de auto-organizacion. Mas bien, el sistema debe ser dirigido. En ciertosentido, la auto-organizacion de los sistemas son como adolescentes: no puedenser estrictamente controlados, ya que tienen sus propios objetivos. Podemosunicamente tratar de dirigir sus acciones, tratando de mantener sus variablesinternas dentro de ciertos lımites, de modo que los sistemas (adolescentes) nose “quiebren”.

Al desarrollar un control, el disenador debe encontrar aspectos del sistema,subsistemas, o restricciones que impidan las interferencias negativas entre loselementos (friccion) y promover las interferencias positivas (sinergia). En otraspalabras, el disenador debe buscar la manera de reducir al mınimo las friccio-nes φ′is que se traducira en la maximizacion de lo satisfaccion global σsys. Elrendimiento de diferentes mediadores se puede medir utilizando la ecuacion 5.1.

El mecanismo de control debe ser adaptable. Dado que el sistema es dinamicoy hay varias interacciones dentro del sistema y con su entorno, el mecanismode control debera ser capaz de hacer frente a los cambios dentro y fuera delsistema, ser robusto. Un control adaptativo sera eficiente en mas contextos queuno rıgido. En otras palabras, el control debe ser activo en la busqueda desoluciones. Un mecanismo de control rıgido no sera capaz de hacer frente a lacomplejidad del sistema.

Existen varios metodos para el desarrollo de un control adaptativo, por ejem-plo, Sastry y Bodson (1994), citado por Mitchell [6]. Pero estos deben ser aplica-dos de una manera distribuida, en un intento de reducir la friccion y promoverla sinergia.

Pueden identificarse diferentes metodos para la reduccion de la friccion enun sistema. En los siguientes casos sera considerado un agente A que es afectadonegativamente por el comportamiento de un agente B.

52

Page 54: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Tolerancia: Esto puede ser visto como la aceptacion de otros y sus metas. Apuede tolerar B por modificacion de sı mismo para reducir la friccion cau-sada por B, y por lo tanto aumentar σA. Esto se puede hacer moviendosea otro lugar, buscando mas recursos, o haciendo cambios internos. En unecosistema, un animal puede permitir una nueva criatura en su territorio,o incluso renunciar a su propio territorio, para evitar conflictos.

Cortesıa Este serıa el caso opuesto a la tolerancia. B deberıa modificar sucomportamiento para no reducir σA. En el mismo ecosistema, el nuevoanimal podrıa optar por buscar otro territorio para evitar conflictos.

Compromiso: Una combinacion de cortesıa y tolerancia: los dos agentes A y Bdeben modificar sus comportamientos para reducir la friccion. Esta es unabuena alternativa cuando ambos elementos causan friccion entre sı. Estosera comun cuando A y B son similares, como en los sistemas homogeneos.Dos animales podrıan compartir el mismo territorio. Si los recursos sonsuficientes, tolerando la otra es menos problematico que luchar entre sı.

Imposicion: Esto podrıa ser visto como cortesıa forzada. El comportamientode B podrıa ser cambiado por la fuerza. El control podıa lograr esto allimitar B o con la imposicion de cambios internos. En algunas sociedadesde primates, el macho-α hace de “policıa” entre los miembros de su grupopara evitar conflictos.

Erradicacion: Como caso especial de imposicion, B puede ser erradicada. Estociertamente disminuye σB , pero puede ser una alternativa cuando σB nocontribuye mucho a σsys, o cuando la friccion causada por B en el restodel sistema es muy alta. El sistema inmune elimina algunas celulas que noson necesarias para el organismo.

Apoptosis: B puede “cometer suicidio”. Este serıa un caso especial de cor-tesıa, donde B se destruira a sı mismo por el bien del sistema. “Muerteprogramada” en las celulas que se produce cuando ya no son necesariaspara el organismo.

La diferencia entre el compromiso / apoptosis y la imposicion / erradica-cion es que en los casos anteriores, el cambio es provocado por el agente en sı,mientras que en el segundo el cambio es impuesto por un mediador. Toleranciay compromiso podrıan ser generados por un agente o por un mediador.

Para la reduccion de la friccion se puede utilizar diferentes metodos depen-diendo del problema. Un buen control seleccionara aquellos casos en los cualesσ′s no se reduce mas que la ganancia en σsys. La eleccion del metodo depen-dera tambien de la importancia de los diferentes elementos del sistema. Ya quelos elementos mas importantes contribuyen mas a σsys, estos elementos pue-den tener preferencia por el control en algunos casos. Diferentes metodos paraaumentar la sinergia tambien se pueden identificar. Estos consisten en tomarmedidas para aumentar σsys, incluso si algunos σ′s se reducen:

53

Page 55: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Cooperacion Dos o mas agentes adaptan su comportamiento para el beneficiodel conjunto. Esto puede o no reducir algunos σ′s. Por ejemplo, el grupode caza permite a los animales cazar a la presa que una sola persona noserıa capaz de derribar.

Individualismo: Un agente puede optar por aumentar su σ si aumenta σsys.Un mediador debe evitar el aumento de σsys, si la friccion de estos reduceσ′s, es decir. Por ejemplo, el exito de una empresa es util para la economıade un paıs, ya que constituye una fuente de empleo y de recursos a travesde impuestos.

Altruismo: Un agente puede elegir sacrificar el aumento de su σ o reducir suσ con el fin de aumentar σsys. Esto tendrıa sentido solo si el aumentorelativo de σsys es mayor que la disminucion de la σ del agente altruista.Un mediador debe evitar altruismo perdido. Filantropos sacrificar partede su fortuna en beneficio de la sociedad.

Explotacion: Esto serıa Altruismo forzada: un agente es accionado para redu-cir su σ para aumentar σsys. Las naciones imperialistas se han beneficiadode la esclavitud y el colonialismo, independientemente de la baja satisfac-cion de los esclavos / colonias.

Con los criterios presentados, la busqueda de soluciones puede ser guiadacon un fin determinado. Sin embargo, si la relacion entre la satisfaccion de loselementos y la satisfaccion del sistema es demasiado oscura, metodos (a ciegas)como algoritmos geneticos siguen siendo una buena alternativa.

En general, el control debe explorar alternativas diferentes, tratando de au-mentar constantemente σsys reduciendo al mınimo la friccion y maximizar lasinergia. Este es un proceso constante, ya que un sistema de auto-organizacionse encuentra en un entorno dinamico para crear “soluciones” para la situacionactual. Tenga en cuenta que un mediador no necesariamente maximiza la satis-faccion de los agentes. Sin embargo, debe tratar de hacerlo por el sistema. Lalimitacion o la promocion de las fuentes de complejidad nos permitira disponerde un sistema capaz de realizar su funcion.

Dividiendo el Problema

Si el sistema a tratar tiene muchos parametros, entonces puede ser vistocomo un sistema cognitivo. Se debe “conocer” o “anticipar” lo que debe ha-cer de acuerdo con la situacion actual y la historia anterior. Ası, el problemaprincipal es, que elementos crear, y lo podrıamos dividir en los problemas de lacomunicacion, la cooperacion y la coordinacion.

Para un sistema de auto-organizacion, sus elementos se deben comunicar:deben “entender” lo que otros elementos, o mediadores, “quieren” decirles. Estoes facil si las interacciones son simples: los sensores pueden dar significado a lasconductas de los otros elementos. Pero a medida que las interacciones se vuelvenmas complejas, la cognicion requerida por los elementos tambien debe aumen-tar, ya que necesitan procesar mas informacion. Los nuevos significados pueden

54

Page 56: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

ser aprendidos para adaptarse a las condiciones cambiantes. Estos pueden serrepresentados como “conceptos”, o codificados, por ejemplo, en los pesos de unared de aprendizaje neuronal.

La aplicacion precisa y las interpretaciones filosoficas no son relevantes paraun ingeniero, si el resultado es el deseado. El problema de la cooperacion hasido ampliamente estudiada mediante la teorıa de juegos

Hay varias maneras de favorecer la colaboracion, por mencionar dos de ellos:el uso de etiquetas y niveles de seleccion multiples han demostrado producirun comportamiento cooperativo. Esto sin duda va a reducir la friccion y por lotanto aumentar σsys.

Los elementos de un sistema se deben coordinar a la vez que reducen lafriccion, no interferir entre sı. Un aspecto importante de la coordinacion esla division del trabajo. Esto puede promover la sinergia, ya que los distintoselementos pueden especializarse en lo que hacen bien y confiar en los demaspara que hagan en lo que son buenos. Este proceso producirıa un σsys masalto en comparacion con el caso en que cada elemento esta destinado a realizartodas las funciones independientemente de lo bien que cada elemento ejecutacada funcion.

Un buen control promovera la division del trabajo por mediacion de unequilibrio entre la especializacion y la integracion: los elementos deben dedicarmas tiempo para lo que son mejores, pero aun debe tomar en cuenta el restodel sistema.

Otro aspecto de la coordinacion es el flujo de trabajo: si algunas tareas sonrequisitos previos para otras tareas, un mediador debe sincronizar los agentespara reducir al mınimo los tiempos de espera.

Compensaciones

Un sistema tiene que ser capaz de hacer frente a la complejidad de su dominiopara alcanzar sus metas. Hay varias ventajas y desventajas que pueden seridentificados para alcanzar un equilibrio y enfrentar mejor esta complejidad:

Complejidad Elementos / Interacciones: La complejidad del sistema re-querido para hacer frente a la complejidad de su dominio puede ser abor-dado en un extremo del espectro por elementos complejos con pocas /interacciones simples, y por el otro con elementos simples con varias /interacciones complejas.

Calidad / Cantidad: Un sistema puede consistir en un extremo de una seriede pocos elementos complejos, y en el otro de varios elementos simples.

Economıa / Redundancia: Resolver un problema con el menor numero po-sible de elementos es economico. Pero un sistema mınimo es muy fragil.La redundancia es una forma de favorecer la robustez del sistema. Sinembargo, la redundancia en exceso tambien puede reducir la velocidad deadaptacion y aumentar los costes de mantenimiento del sistema.

55

Page 57: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Homogeneidad / Heterogeneidad: Un sistema homogeneo sera mas facilde comprender y controlar. Un sistema heterogeneo sera capaz de hacerfrente a una mayor complejidad con menos elementos, y sera capaz deadaptarse mas rapidamente a los cambios repentinos. Si hay un sistemade diez agentes sera capaz de resolver cada una de las diez tareas, un sis-tema homogeneo sera capaz de resolver diez tareas robustamente (si noconsideramos combinaciones como nuevas tareas). Un sistema completa-mente heterogeneo serıa capaz de resolver un centenar de tareas, pero serıafragil si un agente falla.

La heterogeneidad tambien aporta la diversidad, que puede acelerar lavelocidad de exploracion, adaptacion y evolucion, ya que las diferentessoluciones pueden buscarse en paralelo. La diversidad tambien esta re-lacionada con la cantidad de variedad de perturbaciones que el sistemapuede hacer frente.

Sistema / Contexto: El procesamiento y el almacenamiento de informacionse puede llevar a cabo internamente por el sistema, o el sistema puede ex-plotar su entorno y “apoyarse” de la complejidad de este, lo que le permitealmacenar o procesar informacion. Por ejemplo, un robot de navegacionpuede utilizar un mapa interno para guiarse a traves de un laberinto, osimplemente puede seguir paredes para la exploracion. En el primer casola tarea se resuelve mediante el procesamiento interno del robot, mientrasque en el segundo el robot interactua activamente con su entorno, usandola informacion proporcionada por el mismo.

Capacidad / Claridad: Un sistema potente va a resolver una serie de proble-mas complejos, pero no va a ser muy util si el funcionamiento del sistemano puede ser entendido. Los disenadores deben ser capaces de comprenderel sistema con el fin de ser capaces de controlarlo.

Generalidad / Particularidad: Un modelado abstracto permitira al disenadoraplicar lo modelado en diferentes contextos. Sin embargo, los detalles par-ticulares debe ser considerados para que la aplicacion sea factible.

Solo hay una manera muy relativa de medir la mencionada compensacion.Sin embargo, debe tenerse en cuenta durante el desarrollo del sistema. Duranteel desarrollo de un sistema en particular, las compensaciones se aclararan unavez que la simulacion esta en marcha, de esta manera pueden ser reconsideradasy actualizar el modelado.

5.1.3. Simulado

El objetivo de esta etapa es la construccion del simulador que implementael modelo desarrollado en la fase de modelado, y probar diferentes escenarios yestrategias de mediacion. En esta etapa, las conductas precisas de un sistemacomplejo no pueden deducirse facilmente a partir del modelo, es decir, no son

56

Page 58: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

reducibles. En otras palabras, un modelo tiene que “funcionar” antes de quepueda ser entendido.

El desarrollo de la simulacion debe proceder por etapas: de lo abstracto alo particular. En primer lugar, un escenario de analisis y prueba debe ser utili-zado para probar los principales conceptos desarrollados durante el modelado.Solo cuando estos son probados y refinados, deberıan detallarse e incluirse en lasimulacion, ya que existen detalles particulares que toman tiempo para desarro-llarse, y no tiene sentido invertir tiempo y esfuerzo antes de saber si el modeladoesta en el camino correcto. Los detalles tambien pueden influir en el resultadode la simulacion, por lo que se debe esperar a que los mecanismos principales seentiendan.

La simulacion debe comparar las soluciones propuestas con los enfoques tra-dicionales. Esto es para asegurarse de que la aplicacion de la auto-organizacionen el sistema aporta algun beneficio. Idealmente, el disenador debe desarrollarmas de un control para comprobar en la simulacion. Una situacion piedra-papel-tijeras podrıa surgir, donde no hay un control que sea mejor en todas las situa-ciones (considerando tambien los controles clasicos). El disenador puede ajustaro combinar los controles y, a continuacion, comparar de nuevo en la simulacion.

Los experimentos llevados a cabo con la ayuda del simulador deberıan irdesde el mas simple al mas extenso. Experimentos sencillos mostraran pruebasde concepto, y sus resultados pueden ser utilizados para mejorar el modelado.Una vez que esto es robusto, deben hacerse amplios estudios para estar segurodel rendimiento del sistema bajo condiciones diferentes.

Con base en los resultados de la simulacion y puntos de vista, el modeladoy representacion se pueden mejorar. Una simulacion debe ser madura antes dela puesta en practica en el mundo real.

5.1.4. Aplicacion

La funcion de esta etapa es basicamente utilizar el modelo desarrollado yprobarlo en un sistema real. Si este es un sistema de software, la transicion nosera tan difıcil, ya que el software se ha desarrollado ya en la etapa de simulacion.

Una forma util para desarrollar simulaciones robustas consiste en anadir unpoco de ruido en el sistema. De esta manera, la simulacion ya estara lista parahacer frente a situaciones inesperadas generadas por el ruido.

Soluciones teoricas buenas pueden ser muy difıciles, caras e imposibles deimplementar (por ejemplo, si se tratara de acceso instantaneo a la informacion,leer la mente, teletransportacion, etc.). La factibilidad de la aplicacion debetenerse en cuenta durante el proceso de diseno. En otras palabras, el disenadordebe tener un aplicacion sesgada en todas las etapas de la Metodologıa.

Si el sistema propuesto resulto ser demasiado caro o complicado, todos losesfuerzos del disenador serıan infructuosos. Si el sistema esta desarrollado paraun cliente, deberıa haber retroalimentacion entre los desarrolladores y clientesdurante todo el proceso (Cotton, 1996, citado por Mitchell [6]) para evitar lainsatisfaccion del cliente una vez que el sistema se implemente. El legado de los

57

Page 59: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

sistemas anteriores tambien debe ser considerado para el diseno: Si la imple-mentacion actual es para modificar, pero no sustituye completamente el sistemaanterior, el disenador esta limitado por las capacidades del sistema antiguo. Lasrestricciones nos permiten, un estudio piloto que debe hacerse antes de iniciaruna aplicacion completa, para detectar incongruencias y problemas inesperadosentre la simulacion o etapas de modelado y la aplicacion. Con los resultados deeste estudio piloto, la simulacion, el modelado y la representacion pueden serajustados.

5.1.5. Evaluacion

Una vez que la aplicacion esta en marcha, el funcionamiento del nuevo sis-tema, se mide y se compara con las prestaciones de sistemas anteriores.

Las restricciones nos permiten, continuar con los esfuerzos para tratar demejorar el sistema, ya que los requisitos que tiene que cumplir sin duda van acambiar con el tiempo (por ejemplo, cambios de la demanda, capacidad, etc.)El sistema sera mas adaptativo si no se considera su solucion como la mejor deuna vez por todas, y es capaz de cambiar de acuerdo con su rendimiento y losrequisitos cambiantes.

Notas de la Metodologıa

Todas las flechas que regresan en la Figura 5.1 se dan porque no es posiblepredecir el resultado de las estrategias antes de que se hayan ensayado. Todala informacion y las eventualidades no pueden abstraerse, ni propiedades emer-gentes pueden predecirse antes de que hayan sido observados. Las propiedadesemergentes son a posteriori.

La metodologıa propuesta sera util para dominios de problemas impredeci-bles y / o no estacionarias, situaciones donde no es posible considerar todo elsistema de antemano. Tambien podrıa ser util para las tareas creativas, don-de un sistema de auto-organizacion puede explorar el espacio de diseno de unamanera alternativa. La metodologıa es aplicable, en principio, para describircualquier sistema, pero serıa redundante en dominios de problemas simples oestacionario, es decir, con una solucion fija, donde la adaptacion no es necesaria.

Para ciertos sistemas, algunas σ′s pueden ser difıciles de definir o medir. Sinembargo, siguiendo la metodologıa le puede ayudar en la definicion de estas va-riables despues de un modelado inicial o Simulacion. Al igual que la funcion f ylos pesos ω′

is, la metodologıa no requiere una definicion precisa de satisfaccionespara empezar a explorar soluciones. Estos vienen en muchos casos a posteriori.

La mayorıa de las metodologıas en la literatura se aplican a los sistemas desoftware. Este es mas general, ya que es independiente del dominio. Los prin-cipios presentados son tales que pueden ser aplicados a cualquier dominio parael desarrollo de un sistema de funcionamiento selforganizing: cualquier sistema

58

Page 60: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

puede ser modelado como un grupo de agentes, con satisfacciones dependiendode sus objetivos. La pregunta es cuando es util el uso de esta metodologıa. Solola aplicacion de la metodologıa proporcionara una respuesta a esta pregunta.

59

Page 61: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

AUTO ORGANIZACION

60

Page 62: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 6

Auto Organizacion deSemaforos

6.1. Introduccion

Durante decadas, la gente ha estado utilizando metodos matematicos ycomputacionales que encuentran los perıodos y fases apropiados (es decir, ci-clos) del semaforo, de modo que las variables consideradas se optimicen. Sinembargo, muchos metodos aplicados hoy en dıa no toman en cuenta el estadoactual del trafico. Si los coches son demasiado lentos para la velocidad promedioesperada, esto podrıa dar la perdida de las fases dictadas por el semaforo. Si vandemasiado rapido, van a tener que esperar hasta la fase de luz verde cada quellegan a una interseccion. Los metodos de optimizacion son ciegos a las situa-ciones “anormales”, como cuando muchos vehıculos entran o salen de un lugardeterminado, al mismo tiempo, como en un estadio despues de un partido.

Podemos tratar el control de semaforos no tanto como un problema de opti-mizacion, sino mas bien como un problema de adaptacion, ya que los flujos detrafico y las densidades cambian constantemente.

La optimizacion da la mejor solucion posible para una configuracion da-da. Por ejemplo, en el diseno de las alas, la optimizacion ofrece una buenasolucion, ya que las exigencias aerodinamicas de un avion son constantes, esdecir, para una determinada velocidad, el peso, etc, pero ya que la configura-cion esta cambiando constantemente en el trafico real, parece que nos irıa mejorcon un mecanismo adaptativo que con un mecanismo que a veces es optimo,creando problemas en algun momentos. De hecho, los sistemas “inteligentes”modernos de administracion avanzada de trafico utilizan metodos de aprendi-zaje para adaptar las fases de los semaforos, normalmente usando un ordenadorcentral.

Otra razon para preferir un metodo adaptativo es que la optimizacion puedeser computacionalmente cara. Tratar de encontrar todas las posibles solucionesoptimas de una ciudad no es factible, ya que el espacio de configuracion es

61

Page 63: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

demasiado grande, incierto y cambia constantemente.Utilizaremos la auto-organizacion de los semaforos para ilustrar los diferentes

pasos de la Metodologıa del capıtulo anterior. Estos semaforos se llaman auto-organizados ya que el rendimiento global esta dado por las reglas locales seguidaspor cada semaforo que no son conscientes de la situacion de otras interseccionesy ademas se las arreglan para lograr una coordinacion global.

6.2. Aplicando la Metodologıa I

Existen nuevos metodos adaptativos capaces de superar a los metodos tradi-cionales rıgidos. Con el uso de estos nuevos metodos, los semaforos son capacesde auto-organizarse y adaptarse a las cambiantes condiciones del trafico sin co-municacion directa con otros semaforos y con el uso de reglas simples, reduciendolos tiempos de espera, el numero de coches parados, y aumentar la velocidadmedia.

6.2.1. Requerimientos

El objetivo es desarrollar un sistema de control de semaforos viable y efi-ciente.

Representacion

El sistema de semaforos puede ser modelado en dos niveles: a nivel del vehıcu-lo y a nivel de la ciudad. Estos son faciles de identificar porque los vehıculosson objetos que se mueven a traves de la ciudad estableciendo claras diferen-cias espacio-tiempo. El objetivo de los vehıculos es fluir tan rapido como seaposible, por lo que su “satisfaccion” σ se puede medir en terminos de su veloci-dad promedio y tiempo de espera promedio en un semaforo en rojo. Los cochestienen una σ maxima si van tan rapido como pueden y no se detienen en lasintersecciones. σ sera cero si un coche se detiene por tiempo indefinido.

El objetivo del sistema de semaforos a nivel de la ciudad es permitir a losvehıculos circular lo mas rapido posible, mientras media los conflictos derivadosdel espacio y el tiempo en las intersecciones. Esto reducira al mınimo el consumode combustible, el ruido, la contaminacion y el estres en la poblacion.

La satisfaccion de la ciudad se puede medir en terminos de las velocidadespromedio y el promedio de los tiempos de espera de todos los vehıculos (es decir,promedio de σi, ∀i), y con el porcentaje promedio de los coches inmoviles. σsys

sera maximo si todos los coches van tan rapido como sea posible, y son capacesde fluir a traves de la ciudad sin parar.

Si se produce un atasco de trafico y todos los vehıculos se detienen indefini-damente, entonces harıa que σsys sea mınima.

62

Page 64: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Modelado

Ahora el problema para el control puede ser formulado: encontrar un meca-nismo que coordinara los semaforos para que estos intercedan entre los vehıculospara reducir su friccion (es decir, tratar de evitar que lleguen al mismo tiempo alcrucero). Esto maximizara las satisfacciones de los vehıculos y de la ciudad (σ′

isy σsys). Dado que todos los vehıculos contribuyen por igual a σsys, idealmenteel control debe minimizar las fricciones a traves de Compromiso.

Simulacion

Varias simulaciones de trafico utilizan automatas celulares para modelar eltrafico eficazmente ya que son computacionalmente baratos. Sin embargo, elaumento de poder de computo en los ultimos anos ha permitido el desarrollode simulaciones multi-agente para crear simulaciones mas realistas de trafico.Ası, una simple simulacion puede ser desarrollada en NetLogo un entorno demodelado multi-agente.

El modelo “Gridloc” se puede ampliar para implementar diferentes estra-tegias de control de trafico. Consiste de una red de trafico abstracto con in-tersecciones entre arterias cıclicas con solo un carril de dos tipos: verticales uhorizontales. El flujo de Coches es en lınea recta, ya sea hacia el este o haciael sur. Cada cruce tiene semaforos que permiten el flujo de trafico en solo unade las de las arterias de la interseccion con una luz verde. Las luces amarillas orojas detienen el trafico. La secuencia de luces para una arteria dada es de colorverde-amarillo-rojo-verde. Los Coches simplemente tratan de ir a una velocidadmaxima de 1 “parche” por paso de tiempo, pero se detienen cuando un coche ouna luz roja o amarilla esta delante de ellos. El tiempo es discreto, pero no elespacio. Los Coches utilizan una aceleracion de 0,099 para acelerar o reducir lavelocidad. Un “parche” es un cuadrado del medio ambiente del tamano de uncoche.

Modelado

En el metodo sotl-request, cada semaforo mantiene un contador κi de losinstantes que pasan los vehıculos acercarse solo en la luz roja, independiente-mente de la condicion o de la velocidad de los coches (es decir, en movimientoo detenido), a partir de una distancia ρ. κi puede ser visto como la integral deespera / acercandose de coches con el tiempo. Cuando κi alcanza un umbral θ,la luz verde se vuelve amarilla, y al paso siguiente de tiempo se vuelve rojo conκi = 0, mientras que la luz roja que conto cambia a verde. De esta manera, sihay mas coches que se acercan o en espera antes de un semaforo en rojo, la luz sepondra verde mas rapido que si hay muy pocos coches. Este simple mecanismo,descrito formalmente por el algoritmo 1(Tabla:6.1), logra la auto-organizacionde la siguiente manera: si hay un solo o solo unos pocos vehıculos, estos perma-neceran un perıodo mas largo de tras de un semaforo en rojo. Esto da tiempopara que otros coches se unan a ellos. A medida que mas coches se unan al

63

Page 65: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

grupo, los coches permaneceran perıodos mas cortos detras de un semaforo enrojo.

Una vez que hay suficientes autos, la luz roja se cambia por la verde inclusoantes de que los coches lleguen a la interseccion, lo que genera “ondas verdes”bajo demanda. Tener “pelotones” o “convoyes” de coches moviendose juntosmejora el flujo de trafico, en comparacion con una distribucion homogenea delos automoviles, ya que existen grandes areas vacıas entre pelotones, que puedenser utilizados por el cruce de pelotones con pocas interferencias. El metodo sotl-request no tiene una fase o un reloj interno. Los semaforos cambian solo cuandolas condiciones anteriores se cumplen. Si no hay vehıculos que esten llegando aun semaforo en rojo, la luz complementaria puede permanecer en verde.

1 ParaCada (Instante) hacer

2 κi+ = carrosaproximandoseRojo dentro de ρ;3 Si (κi ≥ θ) entonces

4 cambioDeLuces();5 κi = 0;6 FinSi

7 FinParaCada

Tabla 6.1: Algoritmo 1. Sotl-Request.

Representacion

Se vuelve claro ahora que serıa util considerar los semaforos como agentestambien. Su objetivo es “deshacerse” de los coches lo mas rapido posible. Pa-ra ello, debe evitar las luces verdes en las calles vacıas y las luces rojas en lascalles con alta densidad de trafico. Dado que las satisfacciones de los semaforosy los vehıculos son complementarios, deben interactuar a traves de la coopera-cion para lograr la sinergia. Ademas, σsys podrıa formularse en terminos de lasatisfaccion de los semaforos, los vehıculos, o ambas cosas.

Modelado

Dos metodos clasicos se llevaron a cabo para comparar su rendimiento consotl-request : Marching y optim. Marching es un metodo muy simple. Todas lasluces de trafico en el paso de marcha: todas las luces verdes son o bien hacia elsur o hacia el este, sincronizadas en el tiempo.

Las intersecciones tienen una fase ϕi, que cuenta los pasos de tiempo. ϕi

se pone a cero cuando la fase alcanza el valor del perıodo p. Cuando ϕi == 0,las luces del semaforos en rojo cambian a verde y las amarillas a rojo. Lasluces verdes se tornan amarillas un paso de tiempo anterior, es decir, cuandoϕi == p−1. Un ciclo completo de una interseccion consta de los pasos de tiempo2p. Las intersecciones en“Marchando” son tales que ϕi == ϕj , ∀i, j.

64

Page 66: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

El metodo optim se implementa tratando de establecer fases ϕi de los semafo-ros para que, tan pronto como una luz roja se vuelve verde, el coche que fuedetenido encuentre el siguiente semaforo en verde. En otras palabras, se obtieneuna solucion fija que promueve el flujo en ondas verdes hacia el sureste. El en-torno de simulacion tiene un radio r de parches cuadrados, de manera que estosse pueden identificar con coordenadas (xi, yi), xi, yi ∈ [−r, r]. Por lo tanto, cadaarteria se compone de 2r + 1 parches.

Con el fin de sincronizar todas las intersecciones, semaforos en rojo y enverde deben recurrir al amarillo en el paso de tiempo anterior. El periodo debeser p = r + 3. El tres se anade como un margen adicional para la reaccion y lostiempos de aceleracion de los automoviles (se encontro por ensayo y error quees mejor, para densidades bajas).

Estos dos metodos no son adaptativos, su comportamiento esta dictado deantemano, y no tienen en cuenta el estado real del trafico. Por lo tanto, no puedehaber cooperacion entre los vehıculos y los semaforos, ya que estos ultimos tienencomportamientos fijos. Por otro lado, las luces de trafico en el marco del metodosotl-request son sensibles a la condicion de trafico actual, y por lo tanto puederesponder a las necesidades de los vehıculos entrantes.

Simulacion

Experimentos preliminares mostraron que sotl-request, en comparacion conlos dos metodos tradicionales, alcanza muy buenos resultados para densidadesde trafico bajas pero malos resultados para las densidades de trafico altas. Estose debe a que depende del valor de θ, densidades de trafico altos pueden causarque las luces de trafico cambien instantaneamente. Esto obstruye el flujo detrafico. Un nuevo modelo fue desarrollado teniendo en cuenta este factor.

Modelado

El metodo sotl-phase usa le metodo sotl-request y solo le agrega la siguienterestriccion: un semaforo no se cambiara si el tiempo transcurrido desde el ultimocambio de luz es menor que una fase mınima, es decir, ϕi < ϕmin. Una vez queϕi ≥ ϕmin, las luces cambiaran si/cuando κi ≥ θ. Esto evita el cambio rapidodel semaforo. Sotl-Phase se describe mediante el algoritmo 2 (Tabla:6.2).

Simulacion

Sotl-Phase es menos eficaz que sotl-request para densidades de trafico muybajas, pero aun mucho mejor que los metodos clasicos. Sin embargo, sotl-phasesupero a estos tambien para altas densidades. Un fenomeno inesperado fue obser-vado: para densidades de trafico determinados, sotl-phase logra la sincronizacioncompleta, en el sentido de que ningun coche se detuvo. Por lo tanto, las velo-cidades fueron maximas y no hubo tiempo de espera ni coches parados. Ası, lasatisfaccion fue maxima para los vehıculos, semaforos, y la ciudad. Esta es unasituacion interesante, pero poco realista, ya que la sincronizacion completa se

65

Page 67: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

1 ParaCada (Instante) hacer

2 κi+ = carrosaproximandoseRojo dentro de ρ;3 Si (ϕi ≥ ϕmin)entonces

4 Si (κi ≥ θ) entonces

5 cambioDeLuces();6 κi = 0;7 FinSi

8 FinSi

9 FinParaCada

Tabla 6.2: Algoritmo 2. Sotl-Phase.

logra debido a la topologıa toroidal del entorno de simulacion. La sincronizacioncompleta se logra porque pelotones son promovidos por el semaforo, y pelotonespuede moverse mas rapido a traves de los semaforos de la ciudad de modulacion.Si dos secciones se aproximan a una interseccion, sotl-phase detendra a uno deellos, y permitira que el otro pase sin detenerse. El ultimo peloton mantienesu fase ya que da la vuelta al toro, y el primero ajusta su velocidad hasta queencuentra una fase que no causa conflicto con el otro peloton.

Modelado

Entendiendo el comportamiento de los pelotones, podemos ver que es unsistema favorable sobre un contexto de compensacion. No hay necesidad de lacomunicacion directa entre las luces de trafico ya que la informacion en realidadse puede enviar usando los pelotones de vehıculos. Los semaforos pueden comu-nicarse a traves de su medio ambiente, donde los vehıculos se conceptualizancomo el medio para los semaforos.

Otro metodo fue desarrollado, sotl-platoon, anadiendo dos restricciones asotl-phase para regular el tamano de pelotones. Antes de sustituir una luz rojaa verde, sotl-platoon comprueba si un peloton no esta atravesando, para noromperlo. Mas precisamente, una luz roja no se cambia a verde si en el cruce,hay al menos un coche que se aproxima a los parches ω (distancia desde dondeson sensadas las colas en la luz verde) de la interseccion. Esto mantiene pelotonesjuntos mediante la prevencion de separar los ultimos autos de las “colas” delresto del peloton . Para densidades altas, esta restriccion solo podrıa causarestragos, ya que pelotones grandes bloquean el flujo de trafico de la calle en lainterseccion. Para evitar esto, una segunda restriccion se introduce. La primerarestriccion no se tiene en cuenta si hay mas coches que µ (tamano maximo decola) aproximandose a la interseccion. De esta manera, pelotones largos puedeser divididos, y la restriccion solo entra en vigor cuando el peloton pronto pasaraa traves de la interseccion. Esto se describe formalmente por el algoritmo 3(Tabla B.1)

El metodo cut-off se implemento, con el fin de comparar los metodos autoorganizadores con un metodo trafico tradicional de respuesta al trafico, que ha

66

Page 68: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

demostrado ser mejor que los metodos rıgidos en las intersecciones individuales.La idea del metodo de corte es simple: un semaforo verde se mantendra hastaque una fila de coches esperando parado alcanza una longitud de coches λ. Eneste momento, la luz verde se vuelve amarillo, y en el proximo paso del tiempo,rojo, mientras que la luz opuesta se vuelve verde. La ventaja de este metodo esque puede adaptarse a las cambiantes demandas de trafico.

La desventaja es que los coches paran en una interseccion antes de quecambie. Recordemos que los metodos sotl mantienen un recuento de los cochesque se acercan, independientemente de su velocidad. Por lo tanto, los coches notienen que parar para cambiar un semaforo. Para tener una idea de los beneficiosde los diferentes metodos de control, se comparo tambien con un esquema no-correlacion no-corr : a cada semaforo, se le asigna una fase al azar ϕi , y su valorno cambia durante la ejecucion de la simulacion. Todos ellos tienen el mismoperiodo p. Por lo tanto, no existe una correlacion entre diferentes intersecciones.

1 ParaCada (Instante) hacer

2 κi+ = carrosaproximandoseRojo dentro de ρ;3 Si (ϕi ≥ ϕmin)entonces

4 Sino (0 < carrosaproximandoseV erde dentro de ω < µ) entonces

5 Si (κi ≥ θ) entonces

6 cambioDeLuces();7 κi = 0;8 FinSi

9 FinSino

10 FinSi

11 FinParaCada

Tabla 6.3: Algoritmo 3. Sotl-Platoon.

Las simulaciones se realizaron para obtener estadısticas promedio en el rendi-miento de los diferentes metodos de control. Estos fueron velocidad, porcentajede vehıculos parados, y el tiempo de espera. Los resultados se obtuvieron decorridas de 10.000 pasos de tiempo con condiciones iniciales aleatorias en unarejilla de 10 × 10 arterias de r = 80 (por lo tanto 3120 parches disponibles,lo que representa el maximo teorico capacidad de carga), con estos parametrosp = 83, θ = 41, ρ = 8, ϕmin = 20, ω = 4, µ = 3 y λ = 3 (Ver Tabla 6.4 para unadescripcion concisa de los parametros). Se encontro que estos son los mejoresparametros para cada metodo por una exploracion de prueba y error del espaciode parametros.

Para cada metodo en cada corrida se hizo variar el numero de carros (mos-trado en el eje x) de 20 a 2000, en pasos de 20 (101 corridas en total), con losmismos parametros. Los resultados se extrajeron de NetLogo usando un pequenoprograma Java desarrollado para automatizar la simulacion de corridas.

De los resultados obtenidos se puede ver que el metodo Marching no es muyeficiente para densidades de poco trafico, es decir, cuando hay aproximadamente

67

Page 69: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Variable Explicacion Usado porr Radio (en parches) de simula-

cion. El medio ambiente tieneparches de coordenadas (x, y) ∈[−r, r].

Medio ambiente.

p Periodo para metodos de ciclo fi-jo.

Marching, optim yno-corr.

θ Umbral de contador κi. Todos los metodossotl.

ρ Distancia (en parches) desdedonde los coches se cuentan enla luz roja.

Todos los metodossotl.

ϕmin Fase mınima verde. Sotl-phase y sotl-platoon.

µ Tamano maximo del peloton (co-la).

Sotl-platoon.

ω Distancia (en parches ) a la quelas colas son detectadas en la luzverde.

Sotl-platoon.

λ Numero de coches esperando enla cola para activar el interruptorde luz.

Cut-off.

Tabla 6.4: Parametros utilizadas para la simulacion en NetLogo.

menos de tres coches entre intersecciones. Dado que la mitad de las arterias (todohacia el este o todo hacia el sur) tienen luces rojas, esto hace que casi la mitad delos coches se detengan en cualquier momento, reduciendo la velocidad promediode los vehıculos. Por otro lado, su rendimiento se degrada lentamente a medidaque las densidades de trafico llegan a ciertos niveles, y realiza el mejor paradensidades muy altas, es decir, cuando mas de ocho automoviles se encuentranentre las intersecciones, y la formacion de atasco de trafico es probable. Esto esdebido a que mantiene una estricta division del espacio ocupado por los coches,y las interferencias son menos probables. Sin embargo, cuando hay demasiadoscoches, se forman “puntos muertos”, es decir, todos los coches se detienen.

Para densidades bajas, el metodo optim es aceptable. Sin embargo, para al-tas densidades de coches puede introducir un bloqueo mucho mas rapido quecon otros metodos. Esto se debe a que los coches que esperaban detras de otroscoches en los semaforos no llegan a las olas verdes, reduciendo su velocidad y lavelocidad de los coches que van detras de ellos. Ademas, aun cuando habra al-gunos coches que no paran, que fluyen a traves de las olas verdes, habra unnumero equivalente de coches esperando para entrar en una ola verde, perdien-do el tiempo ganado por los coches en la ola verde. Por lo tanto, el rendimientono puede ser mucho mejor que Marching. Este metodo podrıa ser util solo cuan-do la distribucion del flujo de trafico es muy desigual, por ejemplo, 90% de los

68

Page 70: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

coches fluyen en una direccion.Sotl−request ofrece el mejor rendimiento para las densidades de poco trafico

porque los pelotones pueden cambiar rapidamente la luz roja a verde, en lamayorıa de los casos antes de llegar realmente a las intersecciones. Puesto quela densidad de trafico es baja, ello no obstruye tanto a los vehıculos que seaproximan a la interseccion en la arteria correspondiente. Sin embargo, paraaltas densidades de este metodo es extremadamente ineficiente, ya que existeuna conmutacion constante de luces, debido al hecho de que θ se alcanza muyrapidamente. Esto reduce la velocidad de los automoviles, ya que dejan en lucesamarillas el semaforo, pero tambien rompe pelotones, de modo que los pocoscoches que pasan tendran una mayor probabilidad de esperar mas tiempo en elsiguiente cruce.

Sotl-phase no funciona tan bien como sotl-request en baja densidad debidoa que en muchos casos los coches tienen que esperan detras de las luces rojashasta que κi alcance a ϕmin, por la falta de coches que se aproximen en laarteria correspondiente. El funcionamiento de los metodos sotl podrıa mejorarsepara densidades bajas, reduciendo θ, desde pequenos pelotones que tenga queesperar demasiado tiempo en las luces rojas. A medida que la densidad detrafico alcanza un nivel medio, explotara eficazmente el tamano de los pelotonespara acelerar su cruce de la interseccion. Con los parametros considerados, enlas regiones alrededor de 160 coches, y de nuevo alrededor de 320 coches, sotl-phase puede lograr la sincronizacion completa en el espacio, en el sentido deque el peloton no tiene que parar, por lo que todos los coches pueden ir a unavelocidad maxima. Como se ha descrito anteriormente, se forman pelotones detamanos observados 3 ≤ coches ≤ 15. Uno o dos pelotones de flujo por la calle.Recuerde que los pelotones pueden cambiar semaforos en rojo a verde antes dellegar a una interseccion, si ϕi ≥ ϕmin. Si un peloton se mueve en una arteriaque esta obstruida, esto sera porque todavıa ϕi < ϕmin, debido a un pelotonque este cruzando, o haya cruzado la interseccion recientemente en la arteriacomplementaria. La espera del peloton va a cambiar su fase en comparacioncon otros pelotones que fluyen. Sin embargo, si recientemente no a cruzado unpeloton, una seccion mantendra su fase relativa a otros pelotones.

Esto induce pelotones que no interfieren unos con otros, hasta que todos ellosvan a la velocidad maxima, es decir, con una friccion mınima. Podemos probarque esta condicion es robusta al restablecer los periodos del semaforo y κi. Sinembargo, el momento preciso en que se alcanza la sincronizacion completa puedevariar.

Para algunas condiciones iniciales, la sincronizacion completa no se logra, pe-ro sin embargo se aborda. Una de estas condiciones iniciales se presenta cuandohay demasiados coches asignados al azar en una calle, de modo que no puededejar espacio suficiente para el cruce de pelotones, para cruzar algunos cochesdeben detenerse o el peloton cruzar sin detenerse.

El fenomeno de la sincronizacion completa nos muestra como la auto-organi-zacion de los semaforos forma pelotones, que a su vez modulan los semaforos.Esta retroalimentacion es tal que se maximiza la velocidad media y reduce almınimo los tiempos de espera y los coches parados (y por lo tanto la friccion)

69

Page 71: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

de una manera robusta. Los semaforos son auto organizados eficientemente sin“saber” de antemano los lugares o las densidades de los coches.

Cuando hay una densidad de trafico muy alto, optim y sotl-request tienenbloqueos con frecuencia, donde todo el trafico es detenido. Sotl-phase se com-porta similar a marching, ya que los semaforos cambian en cuanto κi ≥ φmin, yapara entonces en la mayorıa de los casos κi ≥ θ. Esto tambien reduce el tamanode los pelotones, que si es muy larga pueden generar bloqueos. Sin embargo,cuando la densidad de trafico es demasiado alto, los bloqueos seran inevitables,aunque marching genera menos bloqueos que sotl-phase. Esto es porque con elmetodo marching en las arterias enteras se detienen o se avanza. Esto reducela probabilidad de tener una luz verde donde los coches no pueden pasar (porejemplo, debido a una luz roja por delante, y una fila de coches esperando paracruzar), que bloquean la arteria de cruce en la siguiente fase.

Sotl-platoon logra mantener pelotones juntos, la sincronizacion completacomunmente se logra para una amplia gama de densidades, con mas eficaciaque sotl-phase. Esto se debe a las restricciones de este metodo para prevenirque el peloton deje a unos cuantos coches por detras, con un coste tiempo deespera pequeno para los vehıculos. Sin embargo, este coste es mucho menorque romper un peloton y esperar vehıculos por separado para unirse de nuevo.Una seccion esta dividida solo si µ = 3, y un peloton de tamano tres se lasarreglara para cambiar las luces de trafico sin parar para los parametros de si-mulacion utilizados. Sin embargo, para altas densidades de trafico se agregandemasiados pelotones, por lo que los atascos de trafico son mas probables. Elmetodo sotl-platton falla cuando un peloton esperando para cruzar la calle es losuficientemente largo para llegar a la interseccion anterior, pero no lo suficien-te como para cortar su cola. Esto evitara la espera de los coches por avanzar,ası mas coches se incorporan hasta hacer mas largo el peloton. Este fracaso pro-bablemente podrıa evitarse mediante la introduccion de restricciones adicionalesen el metodo.

Cut-off funciona mejor que los metodos rıgidos, ya que responde al estadoactual del trafico (con excepcion de densidades muy bajas, cuando los cochesen las calles nunca pueden alcanzar la longitud de corte λ). Sin embargo, no estan eficaz como los metodos sotl, ya que los coches se detiene antes de podercambiar un semaforo en rojo a verde. Sin embargo, para altas densidades surendimiento es comparable a sotl-phase, con un mejor rendimiento que los otrosdos metodos sotl.

Con no-corr, se puede observar que todos los metodos tienen una mejorasobre la asignacion de la fase aleatoria. Sin embargo, la diferencia entre la no-corr y metodos rıgidos es menor que la que existe entre los metodos rıgidos ylos adaptativos. Esto sugiere que, para densidades de bajo trafico, la adaptaciones mas importante que la “ciega” correlacion. Para densidades de alto trafico,lo contrario parece ser el caso. Sin embargo, los metodos sotl hacen su propiacorrelacion.

70

Page 72: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

PROPUESTA

71

Page 73: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 7

Propuesta

En los capıtulos anteriores mencionamos algunas de las caracterısticas prin-cipales de los semaforos, algunas tecnicas del aprendizaje maquinal y la meto-dologıa general aplicada al desarrollo de sistemas auto organizables.

Hemos presentado los elementos basicos que deben ser definidos para disenare implementar un programa que aprende. Estos elementos son:

• Tarea T.

• Medida de rendimiento P.

• Experiencia de entrenamiento E.

• Funcion objetivo.

• Representacion de la funcion objetivo.

• Eleccion del algoritmo de entrenamiento.

Asimismo indicamos que existen distintos tipos de aprendizaje, pero en par-ticular el aprendizaje que utilizaremos es el inductivo: aprendizaje que induceuna hipotesis a partir de un conjunto de ejemplos.

Es importante indicar que muchos problemas de aprendizaje se pueden mo-delar como problemas de optimizacion, donde se tiene que optimizar la funcionobjetivo.

Por otro lado, mencionamos que cuando se requiere clasificar un conjunto dedatos, o tomar decisiones basadas en la experiencia, el aprendizaje maquinal sepuede tomar como herramienta para llevar a cabo tales tareas.

El aprendizaje de conceptos, nos ha permitido ejemplificar y ampliar la ideade aprendizaje maquinal al definir:

• Un lenguaje para representar las hipotesis, el espacio de busqueda y elconjunto de entrenamiento.

• Una relacion de orden entre las hipotesis de manera que se pueda recorrerel espacio de busqueda.

72

Page 74: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Nuestra propuesta pretende utilizar partes de todo lo antes mencionado,haremos que el semaforo sea adaptativo al medio ambiente utilizando “sotl-phase”como control, a la vez que tendra que aprender algunos de los parametrosque utiliza (θ, ρ, ϕmin) de forma que nos permita tener los mejores parametrospara determinado flujo

7.1. Aplicando la metodologıa de

Carlos Gershenson

Tenemos:

Requerimientos: Desarrollar un sistema de control de semaforos eficiente yviable.

Representacion: Modelado en dos niveles, a nivel de vehıculos y a nivel deciudad.

• Objetivo de los vehıculos: Fluir tan rapido como sea posible.

• La satisfaccion de los vehıculos σ sera: en terminos de su velocidadpromedio y tiempo de espera promedio en un semaforo en rojo.

σ = 1 si van tan rapido como pueden, y no se detienen en las inter-secciones.

σ = 0 si un coche se detiene por tiempo indefinido.

definida como:

σ =V P

Vmax+ exp−TE/60s

2

donde V P es la velocidad promedio del coche, Vmax es la velocidadmaxima permitida en la vıa y TE es el tiempo de espera detenidodetras del semaforo.

• Objetivo del sistema de semaforos a nivel de la ciudad: Permitir a losvehıculos circular lo mas rapido posible, mientras media los conflictosderivados del espacio y el tiempo en las intersecciones.

• Satisfaccion de la ciudad σsys sera: en terminos de las velocidadespromedio y el promedio de los tiempos de espera de todos los vehıcu-los.

σsys =1

n

n∑

i=1

σi. (7.1)

donde n es el numero de carros que pasaron el semaforo.

σsys sera maximo si todos los coches van tan rapido como sea posible,y son capaces de fluir a traves de la ciudad sin parar.

σsys sera mınima si se produce un atasco de trafico y todos los vehıcu-los se detienen indefinidamente.

73

Page 75: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Modelado: El mecanismo que utilizaremos para coordinar los semaforos sera Soft-Phase. Tratando de minimizar la friccion entre los vehıculos que se apro-ximan a la interseccion a traves del Compromiso y maximizando las satis-facciones de los vehıculos y de la ciudad (σ′

is y σsys).

Contador κi de los instantes que pasan los vehıculos acercarse solo enla luz roja, independientemente de la condicion o de la velocidad de loscoches a partir de una distancia ρ.

Variable Explicacionθ Umbral de contador κi.ρ Distancia donde se ubica el sensor para la deteccion de los coches se encuentran detras de la

ϕmin Fase mınima verde.

El algoritmo se muestra en la Tabla 6.2.

Para el aprendizaje de los parametros θ, ρ y ϕmin, utilizaremos una tecnicade prediccion muy similar a lo que se utiliza en algoritmos geneticos para elaprendizaje de los pesos. Se fijan los valores de dos de los parametros y unovaria dependiendo de la satisfaccion del sistema σsys y del numero de carrosque pasan el crucero NCP .

Por ejemplo:

Elegimos el parametro que queremos aprender primero y se fijan los otros.Los valores de ρ y ϕmin constantes y θ variando de la siguiente manera:

Al iniciar la simulacion el valor pronosticado para θ (θpro), sera θpro = θ

Usaremos una variable de conmutacion de signo ϑ ∈ {1,−1}.

Se realiza una corrida de cierto tiempo (10min) y se calcula σsys y NCP ,

si empeora σsys o NCP , ϑ cambia de signo

en caso contrario, ϑ mantiene el signo

ası θ = θ + ϑ

se calcula el pronostico θpro de la siguiente manera:

θpro = θpro + ψ ∗ (θ − θpro)

donde ψ es el coeficiente de aprendizaje, de tal suerte, que en cuanto mascorridas de entrenamiento se realicen el valor de θpro converja al valor realrequerido de θ para el sistema.

Los ejemplos de entrenamiento para cada corrida se crean con los valoresiniciales de la corrida anterior, y el valor de θ actualizado.

Posteriormente de la misma forma se realiza el calculo de los demasparametros fijando los restantes en los valores pronosticados.

74

Page 76: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Nuestra medida de rendimiento es el tiempo general del sistema para pasarel semaforo o el crucero (TGSPPS o TGSPPC ), definido como:

TGSPPS = 410/V PS + TEPS

donde V PS es la velocidad promedio del sistema y TEPS es el tiempopromedio del sistema.

La manera de ver si nuestro sistema aprendio de manera correcta, nos ladara la comparacion de la medida de rendimiento que obtengamos durante lasimulacion del semaforo dinamico con los parametros aprendidos y la medidade rendimiento obtenida con el semaforo estatico.

75

Page 77: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Experimentosy

Resultados

76

Page 78: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 8

Experimentos y Resultados

En este capıtulo presentamos los experimentos llevados a cabo, ası como losresultados obtenidos de la ejecucion del simulador para el semaforo estatico, elaprendizaje del semaforo adaptativo y la comparacion de resultados.

8.1. Simulador

Como se menciono anteriormente, se requirio del uso de un simulador el cualfue desarrollado con el apoyo de la IDE Eclipse y usando Java como lenguaje.El codigo se puede consultar en el apendice C.

El fin del simulador es poder ver el comportamiento del sistema al cambiarlos parametros del semaforo. Se compone de dos partes:

Pantalla de Simulacion.

Panel de Control.

• Modo de Uso del Simulador.

• Seccion de Resultados.

• Seccion de Configuracion.

• Seccion de Controles de Reproduccion de la Simulacion.

Pantalla de Simulacion

En esta se muestra la simulacion del transito vehicular en un crucero queconsiste de dos vıas de un solo sentido y un solo carril con sus respectivossemaforos. Ademas cuenta con un control de velocidad del simulador que permiteacelerar la simulacion. Un indicador de tiempo, que indica el tiempo transcurridode la simulacion y otro de estado (Iniciado, Suspendido, Resumido).

77

Page 79: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Figura 8.1: Simulador creado y utilizado durante el proyecto.

Panel de Control

Con tiene las cuatro secciones siguientes:

Modo de Uso del Simulador: compuesta por tres botones:

Entrenamiento: Permite al sistema aprender por si mismo para obte-ner los mejores parametros para el semaforo dinamico.

Simulador con semaforo inteligente: Nos permite utilizar el simula-dor con el semaforo dinamico para ver su respuesta y poder modificar laconfiguracion en tiempo real.

Simulador con semaforo estatico: Nos permite utilizar el simuladorcon el semaforo estatico para ver su respuesta y poder modificar la confi-guracion en tiempo real.

Seccion de Resultados: Muestran algunos de los resultados obtenidos du-rante la simulacion o entrenamiento. La velocidad promedio (VP), el tiem-po de espera promedio (TEP), el tiempo general para pasar el semaforo(TG) y el flujo de salida, por hora. Y tambien el promedio de los datosanteriores por horas transcurridas que sobre llamamos, del sistema (VPS,TEPS, TGSPPS y FlujoOut).

Seccion de Configuracion: cuenta con controles deslizables para ajustarlos condiciones iniciales y posteriores de la simulacion (flujo de entrada,tiempo de luz verde (ϕmin), distancia del sensor (ρ)y sumatoria de tiemposde los autos de tras de un semaforo en rojo (θ).

78

Page 80: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Seccion de Controles de Reproduccion de la Simulacion: Consta de tresbotones (iniciar, pausar y salir) cuyas funciones son descritas por su nom-bre.

Recordemos que el objetivo del semaforo dinamico (adaptativo e inteligente)es obtener un rendimiento mayor al que presentarıa un semaforo estatico. Paradeterminar si se cumplio con el objetivo, se analizaron los resultados obtenidosdurante la simulacion.

8.2. Semaforo Estatico

El semaforo estatico tiene asignado tiempos fijos de duracion para cada unade las luces independientemente de si existe algun automovil que requiera el pasoo no. Ası que para tener un punto de comparacion con la aplicacion desarrolladapara el semaforo dinamico simulamos el funcionamiento del semaforo estaticocon diferentes configuraciones y flujos.

8.2.1. Experimento 0

Primeramente se manejo cierto tiempo en segundos para el ciclo completo yla duracion de la luz verde. En todos los casos se uso una duracion de 3 segundospara la luz ambar y para ambas vıas se manejo la misma duracion de las lu-ces ya que hacemos el supuesto que en ambas vıas existe el mismo flujo vehicular.

Las Configuraciones propuestas para los ciclos y luz verde del semaforo semuestran en la tabla 8.1. El tiempo de la luz roja queda determinado por ladiferencia entre la suma del tiempo de duracion de la luz verde con la ambar, yel tiempo asignado al ciclo.

Configuracion 1 2 3 4 5 6 7 8Ciclo 18 44 70 96 122 148 174 200Verde 5 18 31 44 57 70 83 96

Configuracion 9 10 11 12 13 14 15 16Ciclo 226 252 278 304 330 356 382 408Verde 109 122 135 148 161 174 187 200

Tabla 8.1: Configuraciones utilizadas para el semaforo fijo.

Ademas las vıas tienen una longitud de 400m, con un lımite de velocidad de40Km/h y el ancho de la calle es de 10m. Por lo tanto para librar el crucerodeben hacer un recorrido mınimo de 410m.

Los flujos propuestos se muestran en la tabla 8.2:Una vez definidas las configuraciones del semaforo y los flujos a utilizar, la

simulacion se realizo de la siguiente manera:

79

Page 81: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.080.09 0.1 0.11 0.12 0.13 0.14 0.15 0.20.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

Tabla 8.2: Flujos utilizados para la simulacion (carros/s).

a) Para cada una de las configuracion del semaforo se utilizo cada uno de losflujos de la Tabla 8.2.

b) Se realizaron corridas de una hora durante 24 horas.

c) En cada corrida se calculo:

• la velocidad promedio (V P ).

• el tiempo de espera promedio detras del semaforo (TEP )

• el tiempo general para pasar el crucero a una distancia de 410m(TGS) definido como:

TGS = 410/V P + TEP

• el numero de autos que pasaron el crucero (NCP ).

• y el flujo de salida.

d) transcurridas las 24 horas se calculo:

• los promedios de los datos obtenidos en las 24 corridas (V P , TEP )

• con estos se calculo el tiempo general del sistema para pasar el cruceroo semaforo (TGSPPS o TGSPPC) de la misma forma que TGS.

• con el NCP total, se calcula el flujo de salida.

realizando un total de 16 ∗ 24 ∗ 24 = 9216 corridas.

La tabla A.26 muestra un resumen de las resultados obtenidos, contiene sololas configuraciones con las que se obtuvo un mejor rendimiento para cada flujoteniendo como criterio el menor tiempo TGSPPS.

La figura 8.2 muestra la grafica de los resultados de la tabla A.26, utilizandoel tiempo de duracion de la luz verde de la configuracion indicada en la tabla8.1 y el eje de las abscisas en escala logarıtmica.

De alguna forma los resultados obtenidos para el semaforo estatico nos danuna aproximacion de los tiempos de luz verde y tamano del ciclo que nos con-viene usar, dependiendo del flujo, para tener un desempeno aceptable de estesemaforo. En el apendice A (Ver pagina 95) se muestran todos los resultadosobtenidos de la simulacion.

80

Page 82: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuraciones Con Mejor Rendimiento por FlujoTGPPS(s)

Tiempo de Luz Verde (s)

Flujo (carros/s)

900

800

700

600

500

400

300

200

100

0

80

70

60

50

40

30

20

10

00.01 0.1 1.0 10

# Autos

Figura 8.2: Resultados obtenidos de las configuraciones con mejor rendimiento

CONCLUSIONES: De la figura 8.2, se observa que existe una relaciondirecta entre el flujo y el tiempo que debe durar la luz verde del semaforo, y porende el tiempo de espera de tras del semaforo. Ası, conforme aumenta el flujo,lavelocidad promedio de la vıa tiende a disminuir. Ademas se observa que losdatos tienden a crecer y de repente inicia un decaimiento brusco en los valoresde los datos; por inspeccion se esperarıa que el numero de autos que pasanel crucero llegase de forma creciente a un limite y el tiempo de espera fuesecreciendo tal vez de forma polinomial, todo esto limitado por las condiciones develocidad maxima (40 km/h). En la tabla A.26 se observa que hasta el flujo de0.13 los datos tienen el comportamiento descrito. Podrıamos suponer que existeun sesgo en los datos debido al modelado del simulador, puesto que este soloconsidera los autos que se muestran en la pantalla, es decir el numero de autosque pueden estar en la vıa de 400m, de tal manera que aun que se maneje unflujo mayor la capacidad de la vıa limita y sesga los resultados, llega el momentoen que existen carros en la cola fuera de la imagen del simulador que no puedenconsiderarse.

8.3. Semaforo Dinamico

La idea principal de este proyecto es que el semaforo sea dinamico que seadapte a su entorno y que aprenda los mejores parametros requeridos para esto,de forma que se auto organice dependiendo del flujo vehicular.

Realizamos algunos experimentos para ver como serıa el comportamientode los parametros dependiendo del flujo vehicular. Para esto fijamos todos losparametros menos uno el cual se fue ajustando de forma que al terminar tuviera-mos el mejor parametro para este flujo y parametros fijados hasta este momento

81

Page 83: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

como se explico en la seccion 7.1

Los parametros que tenemos que aprender son θ, ρ y ϕmin.

8.3.1. Experimento 1

Primeramente hablaremos de los supuestos que se tomaron en consideracion.El primer supuesto es que podemos saber el flujo vehicular en la vıa (Carrospor segundo), que podrıa ser calculado auxiliandose del uso del GPS (GlobalPositioning System) en los autos, y el segundo supuesto, los semaforos tienensensores que se pueden ajustar para detectar los carros a cierta distancia, ası,el semaforo tendra que aprender y adaptarse al flujo vehicular.

Prueba de Aprendizaje de θ.

Se realizo una prueba de aprendizaje para θ, en un inicio θ solo representael numero de Carros aproximandose al semaforo desde la distancia ρ, haciendoque el semaforo funcione de forma similar al metodo cut-off (Ver pagina 66) yfijamos el valor de los parametros ρ = 50m y ϕmin = 70s.

Los datos obtenidos para θ con la simulacion se muestran en la Tabla B.1.Con ayuda de estos datos podemos hacer algunos supuestos como: θ aumentaconforme aumenta el flujo y que el flujo de salida sera menor respecto al flujo deentrada a partir de flujos mayores a 0.11 (carros/s), de hecho existe un puntode inflexion que puede observarse en la figura 8.3.

En la figura 8.3 se observa como la velocidad promedio disminuye conformeaumenta el flujo. Lo que provoca que el tiempo TGSPPS aumente.

Si comparamos los resultados para el semaforo dinamico, con los obtenidospara el semaforo estatico (Ver tabla A.26), podemos observar que el tiempo deespera promedio es mayor en el semaforo inteligente, esto se debe a que pararealizar el cambio de luz se deben formar pelotones de tamano θ dentro de ladistancia ρ ademas debe de transcurrir un tiempo verde mınimo en la otra vıaantes de poder cambiar la luz, por lo que podemos suponer que los valores de losparametros fijos utilizados no son cercanos a los optimos o ¿es mejor el semaforoestatico?.

Tambien se puede notar que el numero de autos que pasan el crucero porhora, es mayor con el semaforo dinamico. Para flujos bajos tienen casi el mismorendimiento, pero para flujos a partir de 0.1 carros/s, que pueden considerarseflujos altos, es mayor la diferencia a pesar del sesgo que comentamos anterior-mente en el analisis de los resultados del semaforo estatico.

La figura 8.4 muestra la mejora porcentual ofrecida (rendimiento) por elsemaforo dinamico con respecto al semaforo estatico que se obtiene si solo nos

82

Page 84: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

90.0

80.0

70.0

60.0

50.0

40.0

30.0

20.0

10.0

0.0

8.0

7.0

6.0

5.0

4.0

3.0

2.0

1.0

0.00.0 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16

VPS (m/s)

(carros)

Flujo (carros/s)

Flujo de salida (carro/s)

TGSPPS (s)

TEPS (s)

θ

Figura 8.3: Aprendizaje de θ con ρ = 50 con diferentes flujos de entrada.

fijamos en el numero de carros que pasan el crucero en una hora (Flujo de sali-da) o si solo nos fijamos en el tiempo que tomarıa pasar el crucero (TGSPPS).Los table B.2 contiene los datos utilizados para realizar la grafica.

Es importante notar que aun que no se utilizaron los mejores parametrosiniciales para el semaforo dinamico, se logra mejorar el flujo de salida para lamayorıa de los flujos utilizados, a diferencia del tiempo TGSPPS, el automovi-lista pasa mayor tiempo detenido o con menor velocidad promedio. Si lo vemosdesde el punto de vista de satisfaccion del sistema y del auto, por inspeccion nosdamos cuenta que no es la satisfaccion deseada, por lo que hay que modificarlos parametros.

0.0

-50.0

-100.0

-150.0

-200.0

-250.0

-300.0

-350.0

30.0

25.0

20.0

15.0

10.0

5.0

0.0

-5.0

Mejora del Flujo de salida (%)

Mejora de TGSPPS (%)

Flujo (carros/s)

0.0 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16

Figura 8.4: Mejora obtenida con el semaforo dinamico durante la prueba deaprendizaje del parametro θ.

83

Page 85: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Estos son resultados de una primera instancia, donde solamente estamosconsiderando el valor de θ, faltarıa ver como afecta el rendimiento una vez queaprenda los parametros ρ y ϕmin.

8.3.2. Experimento 2

Analizando un poco mas, deseamos que se incremente la satisfaccion de losautos σi lo que implica mayor satisfaccion del sistema σsys, y esto se logra redu-ciendo los tiempos de espera detras del semaforo y/o logrando ir lo mas rapidoposible.

Decidimos cambiar el significado de θ de manera que tenga la funcion reque-rida por el metodo sotl-request (Ver pagina 63). Si utilizaramos los tiempos deluz verde del semaforo estatico para ϕmin dependiendo del flujo de entrada, y sefijara θ = 0s, tendrıamos la configuracion del semaforo estatico, ası, los carrostiene que esperar que transcurra ϕmin y el semaforo cambia automaticamente ala siguiente fase sin importar si hay o no carros en el crucero o aproximandose.

Parte I. Aprendiendo ρ.

Fijamos θ = 1s de forma que en cuanto detecte un carro cambie la fase sies que ya transcurrio ϕmin para tratar de minimizar el tiempo que los carrosesperan de tras del semaforo. Entonces el parametro por aprender sera ρ y losparametros fijos seran ϕmin = 5s (Tiempo mınimo para la luz verde) y θ = 1s.

Para tener una idea de como mejoran los resultados conforme se aprendemas parametros, comparamos los resultados obtenidos (TGSPPS, F lujoOut)durante el aprendizaje de cada parametro (ρ, ϕmin y θ) con los resultados obte-nidos para el semaforo estatico. Cabe mencionar que los datos obtenidos duranteel aprendizaje son predicciones no promedios como es el caso en los datos obte-nidos con el semaforo estatico.

Ası, los resultados obtenidos durante la parte I se muestran en la tabla B.3 yla grafica correspondiente se muestra en la figura 8.5, en esta podemos observarque con los parametros utilizados, para flujos menores a 0.06carros/s pareceque pudimos igualar los mejores valores obtenidos con el semaforo estatico, sinembargo, para flujos mayores el flujo de salida decrece y el tiempo TGSPPSaumenta considerablemente en el semaforo dinamico.

Parte II. Aprendiendo ϕmin.

Una vez que se aprendio el valor del parametro ρ en la parte I, se procedio alaprendizaje del tiempo mınimo de la luz verde ϕmin, utilizando los valores de ρaprendidos, θ = 1s y ϕinicial = 5s.

84

Page 86: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

2500

2000

1500

1000

500

0

900

800

700

600

500

400

300

200

100

00.01 0.1 1.0

FlujoOut S.D. (carros/s)

TGSPPS (s) S.D.

Flujo (carros/s)

TGSPPS (s) S.E.

FlujoOut S.E. (carros/s)

Figura 8.5: Comparacion de resultados obtenidos con el semaforo dinamico(S.D.) durante el aprendizaje del parametro ρ con los obtenidos por el semaforoestatico (S.E.).

Los resultados obtenidos durante la parte II se muestran en la tabla B.4, conestos datos realizamos la grafica de la figura 8.6 donde podemos observar quehubo una mejora considerable. Para flujos menores a 0.13carros/s, los valoresobtenidos son muy similares a los reportados con el uso del semaforo estatico,sin embargo, para flujos mayores, el flujo de salida aumenta casi al doble encomparacion con el experimento anterior y supera al semaforo estatico hastaantes del flujo de 0.6carros/s. El tiempo TGSPPS aumenta considerablementeen comparacion con lo obtenido por el semaforo estatico pero se reduce en unpoco mas de la mitad en comparacion con el experimento anterior.

Parte III. Aprendiendo θ.

Solo nos resta aprender el parametro θ. Hasta el momento parece ser queal aprender un parametro nuevo el funcionamiento del semaforo mejora, comolo indican los datos que estamos considerando, sin embargo, hay que tener enmente que estos parametros pueden no ser los optimos.

Una vez que se aprendio el valor del parametro ϕmin y el valor del parametroρ para cada flujo de entrada, utilizaremos estos valores para aprender el valorde θ iniciando con θ = 1s para cada flujo de entrada.

Los resultados obtenidos durante la parte III se muestran en la tabla B.5,con estos datos realizamos la grafica de la figura 8.7 donde podemos observarque las mejoras ya no son tan marcadas como en el experimento anterior. Dehecho son muy similares, pero se puede observar que el flujo de salida siguesiendo mayor al obtenido con el semaforo estatico y se observa que el tiempoTGSPPS tiende a seguir disminuyendo aproximandose mas al obtenido con elsemaforo estatico.

85

Page 87: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

1000

900

800

700

600

500

400

300

200

100

0

900

800

700

600

500

400

300

200

100

00.01 0.1 1.0

FlujoOut S.D. (carros/s)

TGSPPS (s) S.D.

Flujo (carros/s)

TGSPPS (s) S.E.

FlujoOut S.E. (carros/s)

Figura 8.6: Comparacion de resultados obtenidos con el semaforo dinamico(S.D.) durante el aprendizaje del parametro ϕmin con los obtenidos por elsemaforo estatico (S.E.).

En teorıa el aprendizaje obtenido en este experimento nos tomo 120 horaspor flujo (24), y por parametro (3); un total de 8640 horas (360 dıas). Y aunası solo logramos acercarnos a un 50 % de los flujos utilizados, del 0.01 al 0.12(carros/s). Muy probablemente tiene que ver con la forma en que se fue dandoel aprendizaje, la forma en que inicializamos los parametros fijos.

8.3.3. Experimento 3

Teniendo en mente los datos obtenidos para el semaforo estatico, decidimosrealizar un experimento mas. Para el aprendizaje de los parametros requeridosen la simulacion del semaforo inteligente utilizamos los tiempos de luz verde(ver tabla 8.1) de las mejores configuraciones reportadas en la tabla A.26 comotiempo mınimo de la luz verde ϕmin.Ademas realizamos modificaciones en la forma en que el sistema utilizara losparametros.

Para aprender modifica primero ρ evalua si el cambio favorece o no, despuesmodifica ϕmin evalua si el cambio favorece o no y finalmente modifica θ, eva-lua si el cambio favorece o no y vuelve a iniciar el ciclo hasta cubrir un total de120 horas para cada uno de los flujos. Con esto pretendemos reducir el tiempoen una tercera parte y ver que tan buena fue la decision de utilizar los tiemposde la luz verde de los ciclos del semaforo estatico.

Los resultados obtenidos durante el experimento 3 se muestran en la tablaB.6, con estos datos realizamos la grafica de la figura 8.8 donde podemos obser-var que el aprendizaje de los datos de forma conjunta parece tener mejores resul-tados que los obtenidos en el experimento 2. Para casi todo los flujos el semaforo

86

Page 88: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

1000

900

800

700

600

500

400

300

200

100

0

900

800

700

600

500

400

300

200

100

00.01 0.1 1.0

FlujoOut S.D. (carros/s)

TGSPPS (s) S.D.

Flujo (carros/s)

TGSPPS (s) S.E.

FlujoOut S.E. (carros/s)

Figura 8.7: Comparacion de resultados obtenidos con el semaforo dinamico(S.D.) durante el aprendizaje del parametro θ con los obtenidos por el semaforoestatico (S.E.).

estatico es superado o igualado en la disminucion del tiempo TGSPPS, sin em-bargo para el flujo de salida esta mas cerrado y las diferencias no son tan fuertes,pero se aproximo mas al comportamiento del semaforo estatico.

Ahora solo nos queda probar como funcionan los parametros aprendidos ycomparar el rendimiento.

900

800

700

600

500

400

300

200

100

0

0.01 0.1 1.0

FlujoOut S.D. (carros/s)

TGSPPS (s) S.D.

Flujo (carros/s)

TGSPPS (s) S.E.

FlujoOut S.E. (carros/s)

Figura 8.8: Comparacion de resultados obtenidos con el semaforo dinamico(S.D.) durante el aprendizaje total de parametros con los obtenidos por elsemaforo estatico (S.E.).

87

Page 89: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

8.3.4. Experimento 4

El siguiente experimento consistio en obtener los valores de TGSPPC, Flu-joOut y Satisfaccion del sistema (σsys), realizando corridas de 7 horas para cadauno de los flujos, utilizando alternadamente el semaforo Dinamico (con ρ, ϕmin

y θ aprendidos en el experimento 2) y el semaforo estatico (con tiempos delciclo y luz verde optimos obtenidos en el experimento 0); el cual en principiono deberıa cambiar el tiempo del ciclo y tampoco el tiempo de la luz verde, sinembargo, solo por cuestiones de comparacion es que permitimos que el semaforoestatico utilizara los mejores ciclos y tiempos de luz verde para cada flujo, paratener una referencia del aprendizaje logrado por el semaforo dinamico.

Comparamos los resultados obtenidos por ambos semaforos. Los datos quese obtuvieron son promedios a diferencia de los obtenidos en los experimentos1, 2 y 3. Los datos obtenidos se muestran en la tabla B.7. La figura 8.9 muestrael mejoramiento porcentual del tiempo TGSPPS, del FlujoOut y de σsys ob-tenidos por el semaforo dinamico respecto al semaforo estatico (Ver tabla B.8).

El circulo rojo indica la zona donde no hubo mejora o empeoraron los resul-tados para el semaforo dinamico comparado con los obtenidos por el semaforoestatico. Ası, se puede ver que para la mayor parte de los flujos utilizados elsemaforo dinamico mejora el tiempo TGSPPS y el flujo de salida, sin embargoel mejoramiento porcentual de σsys se observa que practicamente la mitad delos casos σsys empeora y para los demas, se iguala o mejora.

8.3.5. Experimento 5

El siguiente y ultimo experimento es casi igual al anterior, la diferencia con-siste en que en este se tomo el tiempo promedio de la luz verde de las mejoresconfiguraciones del semaforo estatico, para simular una situacion real donde elflujo de autos no es fijo pero el comportamiento del semaforo si.

Los datos obtenidos se muestran en la tabla B.9. La figura 8.10 muestrael mejoramiento porcentual del tiempo TGSPPS, del FlujoOut y de σsys ob-tenidos por el semaforo dinamico respecto al semaforo estatico (Ver tabla B.10).

Los resultados fueron muy similares a los del experimento anterior, solo en eltiempo TGSPPS es donde se puede ver una pequena mejora. El flujo de saliday la satisfaccion del sistema parece haber permanecido igual, las diferencias sonmınimas con el experimento anterior.

88

Page 90: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Mejora de TGSPPS (%)

0.01

0.07

0.13

0.15

0.20

0.30

0.020.03

0.04

0.05

0.06

0.08

0.09

0.10

0.11

0.12

0.14

0.40

0.50

0.60

0.70

0.80

0.901.00

Flujo (carros/s)

20

0

-20

-40

Mejora de FlujoOut (%

)

0.01

0.07

0.13

0.15

0.20

0.30

0.020.03

0.04

0.05

0.06

0.08

0.09

0.10

0.11

0.12

0.14

0.40

0.50

0.60

0.70

0.80

0.901.00

Flujo (carros/s)

60

40

20

0

-20

Mejora

de S

ati

sfa

cció

n (

%)

0.01

0.07

0.13

0.15

0.20

0.30

0.020.03

0.04

0.05

0.06

0.08

0.09

0.10

0.110.12

0.14

0.40

0.50

0.60

0.70

0.80

0.901.00

Flujo (carros/s)

20

0

-20

Figura 8.9: Comparacion de resultados obtenidos con el semaforo dinamico(S.D.) y el semaforo estatico (S.E.). Mejoramiento porcentual del S.E. vs S.D.con los mejores valores para los parametros de ambos.

89

Page 91: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Mejora

de TGSPPS (%)

0.01

0.07

0.13

0.15

0.20

0.30

0.020.03

0.04

0.05

0.06

0.08

0.09

0.10

0.11

0.12

0.14

0.40

0.50

0.60

0.70

0.80

0.901.00

Flujo (carros/s)

20

0

-20

-40

Mejora

de FlujoOut (%

)

0.01

0.07

0.13

0.15

0.20

0.30

0.020.03

0.04

0.05

0.06

0.08

0.09

0.10

0.11

0.12

0.14

0.40

0.50

0.60

0.70

0.80

0.901.00

Flujo (carros/s)

40

20

0

-20

-40

Mejora

de S

ati

sfa

cció

n (

%)

0.01

0.07

0.13

0.15

0.20

0.30

0.020.03

0.04

0.05

0.06

0.08

0.09

0.10

0.110.12

0.14

0.40

0.50

0.60

0.70

0.80

0.901.00

Flujo (carros/s)

20

0

-20

Figura 8.10: Comparacion de resultados obtenidos con el semaforo dinamico(S.D.) y el semaforo estatico (S.E.). Mejoramiento porcentual del S.E. vs S.D.con los valores aprendidos para los parametros del semaforo dinamico y el pro-medio de los mejores valores obtenidos para la duracion de la luz verde delsemaforo estatico.

90

Page 92: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

CONCLUSIONES

91

Page 93: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Capıtulo 9

Conclusiones

En el capıtulo 1 presentamos como objetivo principal, crear un programa decontrol de semaforos el cual aprendiera de su entorno para que fuese capaz deoptimizar los tiempos de cambio de luz de forma que mejore el transito vehicu-lar, los resultados del trabajo y analisis realizado los presentamos en el capıtulo8.

La metodologıa utilizada es util en este tipo de proyectos por la libertadque ofrece para la retroalimentacion entre etapas, permitiendo de esta manerarevisar y mejorar en nuestro caso el modelado.

Principalmente el sistema logro aprender parametros optimos, no necesa-riamente los mejores. Esto se debe a que las condiciones iniciales del sistemapueden ser las mismas pero la generacion de los autos es aleatoria, de formaque nunca se analizo el mismo sistema, solamente sistemas similares como es enrealidad el sistema de estudio.

Como puedo verse en los experimentos 5 y 6, y tomando en consideracion lamedida de rendimiento propuesta en el aprendizaje de los parametros de Sotl-Phase podemos decir que se logro el objetivo principal.

Aunque la satisfaccion del sistema no es la medida de rendimiento propues-ta, es interesante notar como se muestra en las graficas de las figuras 8.9 y 8.10,el mejoramiento en la satisfaccion parece no haberse logrado, a pesar de sercriterio para el aprendizaje de los mejores parametros del control Sotl-Phase.Esto podrıa explicarse por la forma en que fue definida σsys donde n representael numero de autos que pasan el crucero (Ver seccion 7.1).

Aun con esto, los parametros obtenidos para el semaforo adaptativo ofrecenun rendimiento mayor al que ofrece un semaforo estatico.

Ası, podemos concluir que el sistema aprendio bien pero no tanto como para

92

Page 94: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

mejorar la satisfaccion obtenida con el semaforo estatico. Se podrıa mejorar conmas entrenamiento y re-definiendo la satisfaccion del sistema, tal vez conside-rando el flujo de entrada en lugar de utilizar el flujo de salida (numero de autosque pasan el crucero).

Sin duda alguna se lograron cubrir todos los objetivo, y como se planteo enlos riesgos, no se logro terminar en tiempo mas sin embargo si en forma, ya quese requirio trabajar de tiempo completo para poder cubrir todos los objetivosplanteados.

El aprendizaje obtenido de este proyecto fue importante, mas alla de lo queeste problema representa a nivel mundial. No por restarle importancia sino masbien, por todo lo que involucro afrontarlo, el uso y desarrollo de nuevas he-rramientas fue un reto que no habıa experimentado durante mi estancia en launiversidad. Estoy satisfecho con el esfuerzo realizado a pesar de saber que haymuchas cosas que mejorar, por hacer, por aprender, por desarrollar.

93

Page 95: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

ApendicesSimulador y Resultados

94

Page 96: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Apendice A

Resultados de lasSimulacionesSemaforo Estatico

Las configuraciones para el semaforo se indican como (C − V ) donde Cindican el tiempo para el ciclo completo y V el tiempo de la luz verde. El flujoindicado es para ambas vıas por lo tanto el flujo del sistema equivale al dobledel flujo.

La configuracion con mejor rendimiento se marca con un asterisco.

Configuracion autos/h VPS TEPS TGSPPS*18–5 73 9.40921 0.0509104 43.625344–18 69 9.06585 0.991243 46.215970–31 74 8.68367 5.82948 53.044596–44 72 8.3615 11.6566 60.6908122–57 69 8.14095 17.1472 67.5098148–70 70 7.95162 24.4 75.9618174–83 72 7.80446 29.8921 82.4262200–96 70 7.71596 35.5065 88.6431226–109 66 7.56412 41.1461 95.3494252–122 75 7.46996 47.4558 102.342278–135 73 7.46978 50.0571 104.945304–148 70 7.34537 59.9087 115.726330–161 71 7.18566 65.2874 122.346356–174 70 7.24221 69.5611 126.174382–187 71 7.03373 81.4828 139.773

Tabla A.1: Resultados para flujo = 0.01autos/s por vıa.

95

Page 97: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS*18–5 144 9.06313 0.290045 45.528344–18 139 8.93175 1.0199 46.923570–31 140 8.47914 5.73958 54.093596–44 141 8.31536 10.9187 60.2251122–57 141 8.07077 16.8644 67.665148–70 142 7.91092 22.0473 73.8744174–83 139 7.74084 28.9122 81.878200–96 140 7.66552 33.6137 87.0999226–109 139 7.4896 40.4344 95.177252–122 142 7.31517 47.215 103.263278–135 142 7.22463 54.0768 110.827304–148 140 7.11541 59.9389 117.56330–161 140 7.01727 66.2114 124.639356–174 138 6.92169 71.664 130.898382–187 142 6.84374 80.4157 140.324

Tabla A.2: Resultados para flujo = 0.02autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 215 8.50195 1.56904 49.7933

*44–18 216 8.84745 1.12462 47.465770–31 207 8.49756 5.58086 53.8396–44 210 8.1467 11.1914 61.5185122–57 214 7.89346 16.8552 68.7969148–70 215 7.68796 23.3501 76.6802174–83 213 7.54075 28.3956 82.7669200–96 210 7.42101 34.9308 90.1793226–109 207 7.32037 41.1622 97.1703252–122 209 7.13163 47.1727 104.663278–135 208 7.08144 54.1113 112.009304–148 206 6.8421 62.9793 122.902330–161 207 6.80176 68.4262 128.705356–174 213 6.68614 74.7239 136.045382–187 208 6.62471 81.5863 143.476

Tabla A.3: Resultados para flujo = 0.03autos/s por vıa.

96

Page 98: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 282 7.55386 6.84321 61.1201

*44–18 285 8.69561 1.34415 48.494470–31 279 8.3767 5.50487 54.450296–44 282 8.02534 10.9486 62.0368122–57 284 7.78215 16.7285 69.4132148–70 284 7.4953 23.0539 77.7548174–83 288 7.3665 29.0005 84.6578200–96 278 7.24572 35.15 91.7351226–109 283 7.06735 42.2113 100.225252–122 279 6.89881 50.6791 110.11278–135 282 6.80066 55.4956 115.784304–148 284 6.71252 61.2193 122.299330–161 283 6.61748 69.0723 131.029356–174 280 6.59153 73.2821 135.483382–187 279 6.51219 81.2807 144.24

Tabla A.4: Resultados para flujo = 0.04autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 349 5.8419 31.4362 101.619

*44–18 348 8.45694 1.84737 50.328370–31 350 8.1531 5.71937 56.00796–44 352 7.88651 10.9192 62.9067122–57 354 7.63545 16.7771 70.4739148–70 353 7.41131 22.8228 78.1436174–83 358 7.14186 29.4411 86.8491200–96 353 6.95036 35.5004 94.4902226–109 355 6.83792 42.5239 102.484252–122 351 6.69292 49.033 110.292278–135 349 6.59693 55.846 117.996304–148 351 6.51573 61.8121 124.737330–161 348 6.52682 65.9105 128.728356–174 352 6.30152 76.6603 141.724382–187 346 6.30234 80.8309 145.886

Tabla A.5: Resultados para flujo = 0.05autos/s por vıa.

97

Page 99: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 386 2.92622 163.258 303.371

*44–18 425 8.09856 2.64782 53.274170–31 424 7.92463 6.30745 58.044996–44 418 7.6485 11.2146 64.8198122–57 419 7.4524 16.7523 71.7681148–70 424 7.20028 22.6643 79.6065174–83 421 6.9566 29.6451 88.5819200–96 420 6.72646 36.2081 97.1614226–109 419 6.68351 42.5581 103.903252–122 421 6.50468 49.2241 112.256278–135 416 6.43574 56.1856 119.892304–148 425 6.24879 63.362 128.975330–161 422 6.20268 68.4267 134.527356–174 424 6.04878 75.7289 143.511382–187 413 6.09971 80.5882 147.805

Tabla A.6: Resultados para flujo = 0.06autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 391 1.77103 363.6 595.104

*44–18 503 7.41975 4.62438 59.882370–31 496 7.51564 7.79155 62.344596–44 491 7.40958 11.8647 67.1985122–57 498 7.1634 17.5673 74.8027148–70 494 6.93551 23.1798 82.2959174–83 494 6.68896 30.0315 91.3265200–96 490 6.54858 36.3315 98.9405226–109 491 6.46736 42.2257 105.621252–122 493 6.26648 48.4759 113.903278–135 497 6.11687 56.4345 123.462304–148 491 6.009 63.5118 131.743330–161 491 5.92644 70.9698 140.151356–174 483 5.83605 78.5952 148.848382–187 492 5.68612 86.3196 158.425

Tabla A.7: Resultados para flujo = 0.07autos/s por vıa.

98

Page 100: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 394 1.27283 568.025 890.14244–18 558 6.44165 9.79661 73.4449*70–31 578 6.90595 10.291 69.660196–44 560 6.86859 14.7898 74.4818122–57 569 6.84165 18.6357 78.5628148–70 558 6.63018 24.9556 86.7941174–83 559 6.43686 31.5891 95.2848200–96 562 6.26635 37.2327 102.662226–109 559 6.19775 43.1157 109.269252–122 558 6.00397 50.4112 118.699278–135 560 5.90883 57.3341 126.722304–148 556 5.77075 65.1045 136.152330–161 570 5.60909 70.9567 144.052356–174 552 5.66318 75.9623 148.36382–187 553 5.49435 84.6884 159.31

Tabla A.8: Resultados para flujo = 0.08autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 395 1.17514 648.529 997.42444–18 615 4.68763 26.2158 113.68*70–31 634 6.05614 15.7228 83.422796–44 634 6.16009 19.7939 86.3513122–57 630 6.2673 23.2717 88.6906148–70 629 6.24457 26.0775 91.7345174–83 636 6.13411 32.4915 99.3309200–96 628 5.99528 38.5847 106.972

. 226–109 629 5.74624 46.334 117.685252–122 631 5.57892 53.1248 126.616278–135 639 5.48467 58.103 132.857304–148 625 5.4299 66.3076 141.815330–161 630 5.35692 71.4207 147.957356–174 626 5.28354 78.8139 156.413382–187 619 5.17218 87.2034 166.474

Tabla A.9: Resultados para flujo = 0.09autos/s por vıa.

99

Page 101: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18 –5 395 1.05193 739.461 1129.2244 –18 638 2.8507 48.9823 192.80670 –31 685 4.13279 42.2283 141.43596 –44 693 4.80385 36.7584 122.107122 –57 702 4.83343 40.4601 125.286*148 –70 705 5.63409 31.828 104.599174 –83 701 5.46 38.678 113.769200 –96 698 5.3602 44.1084 120.598226 –109 703 5.22923 51.1355 129.541252 –122 691 5.29144 54.5012 131.985278 –135 695 5.09427 62.5354 143.018304 –148 689 5.03046 68.9864 150.49330 –161 701 4.85445 76.5895 161.048356 –174 690 4.85838 82.7801 167.17382 –187 686 4.84118 88.8965 173.587

Tabla A.10: Resultados para flujo = 0.10autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 395 1.01428 786.806 1191.0344–18 642 2.02482 59.5889 262.07670–31 701 2.70237 74.1389 225.85896–44 723 3.23665 72.4821 199.156122–57 735 3.43853 72.9401 192.177*148–70 755 4.73965 44.7896 131.294174–83 759 4.42409 57.0057 149.68200–96 747 4.6858 55.2468 142.745226–109 754 4.4972 65.4794 156.647252–122 763 4.53827 65.3667 155.71278–135 761 4.53061 70.9848 161.48304–148 766 4.34767 80.5778 174.881330–161 766 4.16814 90.7717 189.137356–174 760 4.23082 90.7711 187.679382–187 761 4.09985 100.309 200.312

Tabla A.11: Resultados para flujo = 0.11autos/s por vıa.

100

Page 102: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 396 0.96725 849.355 1273.2444–18 644 1.68096 62.7559 306.66470–31 706 1.95174 94.3884 304.45796–44 733 2.23254 109.26 292.908122–57 749 2.41983 115.446 284.879*148–70 798 3.06544 85.0783 218.827174–83 796 3.11878 93.3854 224.847200–96 798 2.96983 108.257 246.312226–109 792 2.99671 114.122 250.939252–122 814 3.30373 96.9418 221.044278–135 810 3.20685 106.351 234.202304–148 806 3.23858 111.877 238.476330–161 801 3.2781 117.062 242.135356–174 816 3.25684 119.443 245.332382–187 802 3.34555 122.286 244.837

Tabla A.12: Resultados para flujo = 0.12autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 395 0.923706 881.709 1325.5744–18 645 1.45029 65.1114 347.81470–31 709 1.66841 102.021 347.76396–44 737 1.74302 139.846 375.07122–57 752 1.88015 155.462 373.529*148–70 806 2.22013 127.936 312.61174–83 808 2.21846 144.317 329.13200–96 806 2.16324 156.277 345.808226–109 804 2.38115 149.753 321.938252–122 829 2.28504 151.48 330.907278–135 825 2.39321 146.989 318.307304–148 822 2.29985 162.166 340.439330–161 819 2.32368 175.748 352.192356–174 833 2.58496 149.008 307.618382–187 833 2.49143 165.934 330.499

Tabla A.13: Resultados para flujo = 0.13autos/s por vıa.

101

Page 103: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 396 0.913212 921.029 1369.99

*44–18 645 1.40634 65.5535 357.09170–31 708 1.48075 106.949 383.83596–44 739 1.61462 149.428 403.358122–57 754 1.7434 168.836 404.009148–70 809 1.93717 153.667 365.316174–83 810 1.85344 178.305 399.515200–96 812 1.88391 184.193 401.825226–109 808 1.8551 203.253 424.266252–122 835 1.89838 194.224 410.197278–135 830 1.96888 195.696 403.936304–148 827 1.889 207.546 424.592330–161 826 1.87051 223.33 442.521356–174 841 2.05167 201.385 401.222382–187 840 1.94799 212.777 423.25

Tabla A.14: Resultados para flujo = 0.14autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 396 0.887644 944.701 1406.6

*44–18 645 1.29847 66.6087 382.36570–31 709 1.43086 108.221 394.76296–44 738 1.51304 157.457 428.434122–57 753 1.60385 182.56 438.195148–70 810 1.72228 178.311 416.367174–83 810 1.66592 204.115 450.225200–96 812 1.71916 212.93 451.42226–109 811 1.68254 229.004 472.683252–122 836 1.7885 212.343 441.585278–135 836 1.75624 227.77 461.223304–148 830 1.72102 239.04 477.272330–161 829 1.75703 248.559 481.907356–174 844 1.79843 231.846 459.822382–187 842 1.77018 247.924 479.539

Tabla A.15: Resultados para flujo = 0.15autos/s por vıa.

102

Page 104: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 396 0.85513 1045.81 1525.27

*44–18 646 1.19389 67.7519 411.16870–31 711 1.31073 112.405 425.20796–44 741 1.33315 169.766 477.308122–57 757 1.39115 207.43 502.151148–70 815 1.47663 214.385 492.043174–83 815 1.47178 258.09 536.664200–96 816 1.4768 281.766 559.393226–109 816 1.50318 303.889 576.644252–122 843 1.56151 296.549 559.115278–135 841 1.55392 311.279 575.128304–148 838 1.5664 323.78 585.527330–161 836 1.59041 332.68 590.476356–174 853 1.58795 326.475 584.669382–187 851 1.63057 337.93 589.376

Tabla A.16: Resultados para flujo = 0.20autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 396 1.13281 1109.35 1471.28

*44–18 648 1.60011 68.1848 324.41770–31 713 1.79589 114.098 342.39696–44 742 1.86077 173.343 393.682122–57 759 1.90886 213.874 428.662148–70 817 2.07302 224.274 422.053174–83 818 1.99931 274.871 479.942200–96 819 2.05754 313.417 512.684226–109 820 2.07703 350.288 547.685252–122 848 2.12079 344.906 538.23278–135 846 2.17813 364.522 552.757304–148 844 2.20557 378.35 564.243330–161 842 2.20757 393.526 579.251356–174 860 2.24046 385.966 568.965382–187 857 2.18103 396.819 584.804

Tabla A.17: Resultados para flujo = 0.30autos/s por vıa.

103

Page 105: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 396 1.60235 1113.15 1369.03

*44–18 650 2.48158 68.188 233.40670–31 714 2.74058 113.922 263.52596–44 742 2.76343 173.692 322.058122–57 760 2.87412 213.92 356.572148–70 818 3.13914 224.234 354.843174–83 819 3.15126 275.158 405.264200–96 820 3.11347 313.903 445.589226–109 820 3.14606 351.094 481.415252–122 848 3.27269 346.188 471.468278–135 847 3.29541 364.676 489.092304–148 844 3.28023 379.702 504.693330–161 844 3.29668 393.495 517.862356–174 861 3.3798 387.373 508.682382–187 858 3.35717 398.459 520.586

Tabla A.18: Resultados para flujo = 0.40autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 396 1.86319 1113.78 1333.83

*44–18 649 2.91939 68.2837 208.72470–31 714 3.20901 113.875 241.64196–44 743 3.29755 173.543 297.878122–57 761 3.42015 213.57 333.448148–70 819 3.67206 224.153 335.807174–83 820 3.68718 275.075 386.272200–96 820 3.68449 313.869 425.146226–109 822 3.73945 350.626 460.268252–122 848 3.81824 347.012 454.392278–135 847 3.86564 364.803 470.865304–148 844 3.85389 380.165 486.551330–161 844 3.88464 393.791 499.335356–174 861 3.96756 386.661 489.999382–187 859 3.97353 397.862 501.045

Tabla A.19: Resultados para flujo = 0.50autos/s por vıa.

104

Page 106: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 396 2.05312 1113.49 1313.18

*44–18 650 3.20956 68.217 195.9670–31 714 3.49717 114.064 231.30296–44 742 3.59061 173.661 287.847122–57 761 3.72992 213.86 323.781148–70 819 3.97461 224.255 327.41174–83 820 4.02613 274.955 376.79200–96 820 4.03187 313.941 415.631226–109 821 4.04183 351.015 452.454252–122 848 4.16468 347.185 445.632278–135 847 4.17764 365.248 463.389304–148 845 4.19272 379.832 477.62330–161 844 4.20139 394.292 491.879356–174 862 4.27891 386.357 482.175382–187 860 4.29529 397.523 492.977

Tabla A.20: Resultados para flujo = 0.60autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 396 2.17207 1113.65 1302.41

*44–18 650 3.38395 68.21 189.3770–31 714 3.69894 114.044 224.88796–44 743 3.79957 173.605 281.512122–57 761 3.92951 213.764 318.103148–70 819 4.23081 224.139 321.047174–83 820 4.24757 275.119 371.644200–96 821 4.24274 313.812 410.448226–109 821 4.25908 351.348 447.613252–122 848 4.39252 346.866 440.206278–135 847 4.40421 365.171 458.264304–148 845 4.41991 379.792 472.554330–161 845 4.45583 393.039 485.054356–174 861 4.49973 387.453 478.57382–187 860 4.52443 397.406 488.025

Tabla A.21: Resultados para flujo = 0.70autos/s por vıa.

105

Page 107: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 396 2.26118 1113.19 1294.51

*44–18 650 3.52248 68.1689 184.56470–31 714 3.83821 114.126 220.94796–44 743 3.94266 173.64 277.631122–57 761 4.07844 213.906 314.434148–70 820 4.39419 223.857 317.162174–83 820 4.40008 275.097 368.277200–96 821 4.38844 313.847 407.275226–109 821 4.40796 351.675 444.689252–122 848 4.55162 346.933 437.011278–135 847 4.57475 364.918 454.54304–148 844 4.5634 380.276 470.121330–161 844 4.57889 393.948 483.49356–174 861 4.6664 386.761 474.623382–187 860 4.67834 397.464 485.102

Tabla A.22: Resultados para flujo = 0.80autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 397 2.32882 1113.18 1289.24

*44–18 649 3.60505 68.2756 182.00570–31 714 3.95306 113.977 217.69496–44 743 4.05091 173.634 274.846122–57 761 4.20542 213.574 311.067148–70 820 4.50913 223.965 314.891174–83 820 4.52225 274.993 365.656200–96 821 4.50589 313.864 404.856226–109 821 4.53453 351.234 441.651252–122 849 4.67606 346.607 434.288278–135 847 4.68523 365.116 452.625304–148 845 4.6915 379.681 467.073330–161 844 4.6974 393.706 480.988356–174 861 4.77006 387.67 473.622382–187 860 4.79939 397.169 482.597

Tabla A.23: Resultados para flujo = 0.90autos/s por vıa.

106

Page 108: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Configuracion autos/h VPS TEPS TGSPPS18–5 397 2.38364 1113.27 1285.27

*44–18 650 3.7096 68.1609 178.68570–31 714 4.02527 114.064 215.92196–44 743 4.13223 173.686 272.906122–57 761 4.29322 213.647 309.146148–70 820 4.59907 223.964 313.112174–83 820 4.60073 275.213 364.33200–96 821 4.59387 313.884 403.134226–109 821 4.61892 351.533 440.298252–122 848 4.75629 346.969 433.17278–135 847 4.77132 365.102 451.032304–148 845 4.78032 379.706 465.474330–161 844 4.79167 393.735 479.3356–174 861 4.86452 387.308 471.592382–187 860 4.883 397.561 481.526

Tabla A.24: Resultados para flujo = 1.00autos/s por vıa.

Configuracion autos/h VPS TEPS TGSPPS18–5 397 2.38364 1113.27 1285.27

*44–18 650 3.7096 68.1609 178.68570–31 714 4.02527 114.064 215.92196–44 743 4.13223 173.686 272.906122–57 761 4.29322 213.647 309.146148–70 820 4.59907 223.964 313.112174–83 820 4.60073 275.213 364.33200–96 821 4.59387 313.884 403.134226–109 821 4.61892 351.533 440.298252–122 848 4.75629 346.969 433.17278–135 847 4.77132 365.102 451.032304–148 845 4.78032 379.706 465.474330–161 844 4.79167 393.735 479.3356–174 861 4.86452 387.308 471.592382–187 860 4.883 397.561 481.526

Tabla A.25: Resultados para flujo = 10.00autos/s por vıa.

107

Page 109: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Flujo Configuracion autos/h VPS TEPS TGSPPS0.01 18–5 73 9.40921 0.0509104 43.62530.02 18–5 144 9.06313 0.290045 45.52830.03 44–18 216 8.84745 1.12462 47.46570.04 44–18 285 8.69561 1.34415 48.49440.05 44–18 348 8.45694 1.84737 50.32830.06 44–18 425 8.09856 2.64782 53.27410.07 44–18 503 7.41975 4.62438 59.88230.08 70–31 578 6.90595 10.291 69.66010.09 70–31 634 6.05614 15.7228 83.42270.10 148 –70 705 5.63409 31.828 104.5990.11 148–70 755 4.73965 44.7896 131.2940.12 148–70 798 3.06544 85.0783 218.8270.13 148–70 806 2.22013 127.936 312.610.14 44–18 645 1.40634 65.5535 357.0910.15 44–18 645 1.29847 66.6087 382.3650.20 44–18 646 1.19389 67.7519 411.1680.30 44–18 648 1.60011 68.1848 324.4170.40 44–18 650 2.48158 68.188 233.4060.50 44–18 649 2.91939 68.2837 208.7240.60 44–18 650 3.20956 68.217 195.960.70 44–18 650 3.38395 68.21 189.370.80 44–18 650 3.52248 68.1689 184.5640.90 44–18 649 3.60505 68.2756 182.0051.00 44–18 650 3.7096 68.1609 178.68510.0 44–18 650 3.7096 68.1609 178.685

Tabla A.26: Resumen de los mejores resultados por flujo.

108

Page 110: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Apendice B

Resultados de lasSimulacionesSemaforo Dinamico

B.1. Experimento 1.

B.1.1. Prueba de Aprendizaje de θ.

flujo θ VPS TEPS TGSPPC autos/h ProFlujo0.01 2 7.41793 112.467 167.738 72 0.010.02 2 7.12873 138.848 196.362 144 0.020.03 2 7.09114 128.531 186.349 215 0.02986110.04 2 7.04146 72.1536 130.38 287 0.03986110.05 2 6.91165 55.5817 114.902 359 0.04986110.06 3 6.72886 47.549 108.481 430 0.05972220.07 3 6.59085 41.2107 103.418 506 0.07027780.08 3 6.31376 41.1805 106.118 574 0.07972220.09 3 5.9443 35.5002 104.474 645 0.08958330.1 3 5.32837 35.198 112.145 717 0.09958330.11 4 3.81271 60.5024 168.038 789 0.1095830.12 4 2.66236 96.4819 250.48 813 0.1129170.13 4 2.23142 129.719 313.459 817 0.1134720.14 4 1.92886 157.975 370.535 817 0.1134720.15 5 1.73617 177.15 413.302 817 0.113472

Tabla B.1: Resultados del aprendizaje de θ con ρ = 50m y ϕmin = 70s.

109

Page 111: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.1.2. Comparacion 1. Porcentaje de Mejoramiento.

FlujoInTGSPPS (s) autos/h Mejoramiento (%)

SemD SemE SemD SemE TGSPPS FlujoOut0.01 167.74 43.63 72 73 -284.50 -1.370.02 196.36 45.53 144 144 -331.30 0.000.03 186.35 47.47 215 216 -292.60 -0.460.04 130.38 48.49 287 285 -168.86 0.700.05 114.90 50.33 359 348 -128.30 3.160.06 108.48 53.27 430 425 -103.63 1.180.07 103.42 59.88 506 503 -72.70 0.600.08 106.12 69.66 574 578 -52.34 -0.690.09 104.47 83.42 645 634 -25.23 1.740.1 112.15 104.60 717 705 -7.21 1.700.11 168.04 131.29 789 755 -27.99 4.500.12 250.48 218.83 813 798 -14.46 1.880.13 313.46 312.61 817 806 -0.27 1.360.14 370.54 357.09 817 645 -3.76 26.670.15 413.30 382.37 817 645 -8.09 26.67

Tabla B.2: Comparacion de TGSPPS y flujo de salida promedio del semaforoestatico (Tabla A.26)con TGSPPS y flujo de salida pronosticado por el semaforodinamico (Tabla B.1) para cada flujo, obteniendo el porcentaje de mejoramientode TGSPPS y flujo de salida.

110

Page 112: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.2. Experimento 2.

B.2.1. Parte I. Aprendiendo ρ.

flujo ρ VPS TEPS TGSPPC autos/h ProFlujo0.01 171 10.4832 0 39.11 71 0.009861110.02 19 10.0338 0.0179365 40.8797 137 0.01902780.03 104 10.2416 0.0271975 40.0601 224 0.03111110.04 41 9.64658 0.168513 42.6706 292 0.04055560.05 36 9.31328 0.885758 44.9089 350 0.04861110.06 17 6.7191 63.187 124.207 398 0.05527780.07 30 2.74256 356.39 505.885 402 0.05583330.08 31 1.71147 673.721 913.281 400 0.05555560.09 25 1.43054 880.196 1166.8 398 0.05527780.1 9 1.26029 1054.77 1380.1 397 0.05513890.11 18 1.18575 1197.56 1543.33 397 0.05513890.12 12 1.03297 1252.4 1649.31 396 0.0550.13 66 1.08753 1340.29 1717.29 399 0.05541670.14 9 1.0484 1412.57 1803.64 396 0.0550.15 22 0.968924 1462.78 1885.93 396 0.0550.2 10 0.888704 1650.66 2112 396 0.0550.3 76 1.18051 1792.73 2140.03 396 0.0550.4 33 1.6826 1802.5 2046.18 396 0.0550.5 13 1.90088 1805.47 2021.16 396 0.0550.6 47 2.11533 1803.35 1997.18 397 0.05513890.7 58 2.18826 1803.1 1990.46 397 0.05513890.8 9 2.25404 1805.27 1987.16 396 0.0550.9 83 2.34178 1806.83 1981.91 396 0.0551 40 2.39457 1798.44 1969.66 396 0.055

Tabla B.3: Resultados del aprendizaje de ρ con parametros iniciales θ = 1s,ϕmin = 5s y ρ = 7m.

111

Page 113: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.2.2. Parte II. Aprendiendo ϕmin.

flujo ϕmin VPS TEPS TGSPPC autos/h ProFlujo0.01 13 10.425 0.179008 39.5077 71 0.009861110.02 12 9.6863 0.168237 42.4961 141 0.01958330.03 7 10.2069 0.0990473 40.2679 217 0.03013890.04 6 9.67956 0.279674 42.637 291 0.04041670.05 8 9.02752 1.27576 46.6924 373 0.05180560.06 19 8.29431 4.43819 53.8697 425 0.05902780.07 14 7.40865 11.2068 66.5475 495 0.068750.08 45 7.01308 18.4398 76.902 578 0.08027780.09 31 6.07302 24.5519 92.0636 636 0.08833330.1 49 5.2999 43.9125 121.272 686 0.09527780.11 108 4.55542 83.0029 173.006 757 0.1051390.12 52 3.11523 123.684 255.295 774 0.10750.13 72 2.34293 195.04 370.035 802 0.1113890.14 124 1.96899 303.778 512.007 827 0.1148610.15 145 1.76849 365.042 596.879 831 0.1154170.2 65 1.51935 319.356 589.209 801 0.111250.3 60 2.01715 336.76 540.017 791 0.1098610.4 109 3.34037 552.017 674.758 831 0.1154170.5 75 3.63533 385.316 498.098 801 0.111250.6 131 4.15706 596.559 695.186 839 0.1165280.7 13 2.87698 738.44 880.951 537 0.07458330.8 13 2.98045 748.904 886.467 536 0.07444440.9 13 3.06449 758.864 892.655 539 0.07486111 10 9.997236 768.572 898.391 544 0.0755555

Tabla B.4: Resultados del aprendizaje de ϕmin con parametros iniciales θ = 1s,ϕmin = 5s y ρ con los valores aprendidos (Tabla B.3).

112

Page 114: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.2.3. Parte III. Aprendiendo θ.

flujo θ VPS TEPS TGSPPC autos/h ProFlujo0.01 2 10.4986 0.08287 39.1358 72 0.010.02 2 9.32743 0.669408 44.6258 142 0.01972220.03 2 10.1196 0.0145284 40.5299 213 0.02958330.04 3 9.62509 0.242 42.839 284 0.03944440.05 13 8.85625 0.960674 47.2557 356 0.04944440.06 2 8.42348 3.62737 52.3008 414 0.05750.07 24 7.77711 6.67775 59.3966 510 0.07083330.08 29 6.93121 23.0836 82.2364 580 0.08055560.09 38 6.49581 21.4018 84.5194 647 0.08986110.1 21 5.81912 43.2289 113.686 714 0.09916670.11 19 4.49596 94.1425 185.336 785 0.1090280.12 11 3.39165 102.451 223.336 768 0.1066670.13 3 2.33426 194.347 369.992 790 0.1097220.14 29 2.09115 310.832 506.897 842 0.1169440.15 46 1.87264 355.287 574.229 838 0.1163890.2 6 1.51683 337.887 608.188 798 0.1108330.3 3 2.09411 346.266 542.053 782 0.1086110.4 13 3.26324 553.98 679.622 838 0.1163890.5 11 3.71057 431.305 541.8 812 0.1127780.6 10 4.2241 608.431 705.493 842 0.1169440.7 6 3.21313 70.9433 198.545 626 0.08694440.8 1 3.24732 108.628 234.885 612 0.0850.9 4 3.55116 77.535 192.99 633 0.08791671 17 3.38814 445.593 566.603 606 0.0841667

Tabla B.5: Resultados del aprendizaje de θ con parametros iniciales θ = 1s, ρ yϕmin con los valores aprendidos (Tablas B.3 y B.4 respectivamente).

113

Page 115: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.3. Experimento 3.

B.3.1. Aprendiendo ρ, ϕmin y θ simultaneamente.

flujo ρ ϕmin θ VPS TEPS TGSPPC autos/h ProFlujo0.01 205 44 18 9.9316 1.34361 42.626 71 0.009861110.02 12 18 4 9.55264 1.72084 44.6409 124 0.01722220.03 101 11 3 9.67993 0.752563 43.1082 189 0.026250.04 42 29 10 9.54223 1.51292 44.4798 273 0.03791670.05 38 46 20 9.23711 2.85672 47.2429 353 0.04902780.06 57 69 13 9.14561 3.50488 48.3351 397 0.05513890.07 16 37 14 8.03074 11.0006 62.0544 494 0.06861110.08 32 40 26 7.54093 13.5164 67.8864 565 0.07847220.09 51 79 39 7.46737 14.7307 69.6362 631 0.08763890.1 12 94 19 6.70437 34.2996 95.4537 692 0.09611110.11 20 101 15 5.69775 56.3963 128.355 761 0.1056940.12 13 77 14 5.07953 73.496 154.212 790 0.1097220.13 69 73 2 4.50176 94.846 185.921 809 0.1123610.14 12 15 26 4.42818 96.6519 189.241 717 0.09958330.15 5 5 39 4.30156 108.671 203.985 749 0.1040280.2 12 20 1 4.2136 108.427 205.731 652 0.09055560.3 73 13 2 4.13672 108.186 207.299 651 0.09041670.4 33 21 11 3.95885 110.471 214.036 613 0.08513890.5 18 18 6 3.6586 126.888 238.953 642 0.0891667

Tabla B.6: Resultados del aprendizaje de ρ, θ y ϕmin con parametros inicialesθ = 1s, ϕmin = 5s y ρ = 7m.

114

Page 116: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.4. Experimento 4.

B.4.1. Usando el Semaforo Dinamico VS el Semaforo Estati-co (Optimos).

Flujo TGS–E FlujoO–E σsys−E TGS–D FlujoO–D σsys−D0.01 44.0239 0.0093254 0.923899 41.4452 0.00978175 0.9502190.02 42.5871 0.0131415 0.938875 42.6459 0.0148264 0.9380190.03 43.1693 0.0176865 0.932796 42.7051 0.0197784 0.9373390.04 43.113 0.0226332 0.93308 43.1775 0.0248165 0.9327780.05 110.673 0.0275066 0.851372 105.326 0.0298571 0.8533050.06 100.588 0.0324729 0.853985 96.6762 0.0347503 0.8557490.07 94.2201 0.0375076 0.853289 90.0495 0.0373498 0.8628470.08 920.612 0.040369 0.821886 880.087 0.043869 0.7911030.09 844.263 0.0469666 0.76493 810.624 0.0498104 0.7404270.1 782.284 0.0524467 0.7086 756.424 0.0550357 0.6915140.11 741.471 0.0573554 0.661339 730.709 0.0599757 0.6400460.12 717.253 0.0623464 0.6194 709.325 0.064189 0.5953140.13 700.713 0.0659087 0.573128 698.069 0.067674 0.5526330.14 695.723 0.06931 0.533669 724.836 0.0710693 0.5161060.15 743.978 0.0726594 0.499799 775.37 0.0742011 0.4845760.2 802.865 0.0755952 0.470341 799.421 0.0767528 0.4569890.3 794.093 0.0777207 0.444408 787.984 0.0786514 0.4325460.4 781.714 0.0795289 0.421359 788.057 0.0805804 0.4108020.5 795.927 0.0815117 0.400896 795.627 0.0823434 0.3915610.6 10487.1 0.055496 0.0782958 14681.7 0.0865476 0.08776850.7 14978.6 0.0971892 0.10008 14181.5 0.0949851 0.1076580.8 13202.1 0.0936389 0.111633 12143.1 0.0927381 0.1139470.9 10450.9 0.055496 0.0911782 14403.8 0.0718452 0.0958371 14954.4 0.0773148 0.102503 14630.6 0.0814236 0.107757

Tabla B.7: Resultados del semaforo dinamico (D) y semaforo estatico (E) du-rante la simulacion para diferentes flujos. El semaforo estatico utiliza los mejoresvalores encontrados para la luz verde dependiendo del flujo. El semaforo dinami-co utiliza los parametros aprendidos para cada flujo.

115

Page 117: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.4.2. Mejoramiento Porcentual del Semaforo Dinamico.

Flujo TGSPPS–M FlujoOut–M σsys−M0.01 5.8575001306 4.893623866 2.84879624290.02 -0.1380699789 12.8212152342 -0.09117294630.03 1.0753011978 11.8276651683 0.48703039040.04 -0.1496068471 9.64644858 -0.03236592790.05 4.8313500131 8.545221874 0.22704528690.06 3.8889330735 7.0132325724 0.20656100520.07 4.426444039 -0.4207147351 1.12013631960.08 4.401963042 8.670019074 -3.74540994740.09 3.9844219159 6.054941171 -3.20329964830.1 3.3057048335 4.9364402336 -2.4112334180.11 1.4514390988 4.5685323439 -3.21968007330.12 1.1053282454 2.9554232482 -3.88860187280.13 0.3773299482 2.6784020926 -3.57599000570.14 -4.1845677087 2.5383061607 -3.29099123240.15 -4.2194796083 2.1218176864 -3.04582442140.2 0.4289637735 1.5313141575 -2.838791430.3 0.7693053584 1.1974930746 -2.66916887180.4 -0.8114220802 1.3221608749 -2.50546446140.5 0.0376918989 1.0203443187 -2.32853408370.6 -39.9977114741 55.9528614675 12.09860554460.7 5.3215921381 -2.2678445753 7.5719424460.8 8.0214511328 -0.9619933596 2.07286375890.9 -37.8235367289 29.4601412714 5.10955469621 2.1652490237 5.3143770662 5.1257036379

Tabla B.8: Mejoramiento porcentual del semaforo dinamico sobre el estatico.

116

Page 118: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.5. Experimento 5.

B.5.1. Usando el Semaforo Dinamico VS el Semaforo Estati-co (Promedio).

Flujo TGS–E FlujoO–E σsys−E TGS–D FlujoO–D σsys−D0.01 43.4867 0.0103571 0.929062 41.6173 0.0103968 0.9511460.02 42.6585 0.0138029 0.93958 41.4767 0.0129861 0.9514770.03 997.244 0.0183889 0.904826 837.704 0.0202679 0.9144630.04 724.517 0.0230754 0.913792 639.363 0.0251364 0.9160490.05 614.644 0.0277645 0.849314 558.631 0.0302103 0.8523550.06 512.726 0.033061 0.852616 474.368 0.0352794 0.8549350.07 442.705 0.0379258 0.853171 413.646 0.0377565 0.8627410.08 1201.84 0.0406349 0.825407 1142.92 0.0441171 0.7944580.09 1091.8 0.0471335 0.767536 1044.14 0.0500022 0.7436940.1 1000.88 0.0525721 0.719384 960.666 0.0550754 0.7061070.11 935.068 0.0573932 0.675679 910.435 0.0599432 0.6557690.12 895.693 0.0623508 0.631942 881.036 0.0641948 0.6072860.13 865.358 0.0659127 0.58462 856.084 0.0676778 0.5636780.14 847.822 0.0693129 0.544305 871.554 0.0710714 0.5263580.15 885.997 0.0726615 0.509697 775.37 0.0742011 0.4845760.2 802.865 0.0755952 0.470341 799.421 0.0767528 0.4569890.3 794.093 0.0777207 0.444408 787.984 0.0786514 0.4325460.4 781.714 0.0795289 0.421359 788.057 0.0805804 0.4108020.5 795.927 0.0815117 0.400896 795.627 0.0823434 0.3915610.6 10487.1 0.055496 0.0782958 14681.7 0.0865476 0.08776850.7 14978.6 0.0971892 0.10008 14181.5 0.0949851 0.1076580.8 13202.1 0.0936389 0.111633 12143.1 0.0927381 0.1139470.9 10450.9 0.055496 0.0911782 14403.8 0.0718452 0.0958371 14954.4 0.0773148 0.102503 14630.6 0.0814236 0.107757

Tabla B.9: Resultados del semaforo dinamico (D) y semaforo estatico (E) duran-te la simulacion para diferentes flujos. El semaforo estatico utiliza el promedio delos mejores valores encontrados para la luz verde. El semaforo dinamico utilizalos parametros aprendidos para cada flujo.

117

Page 119: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

B.5.2. Mejoramiento Porcentual del Semaforo Dinamico.

Flujo TGSPPS–M FlujoOut–M σsys−M0.01 4.2987856057 0.3833119309 2.37702112450.02 2.7703740169 -5.9175970267 1.26620404860.03 15.9980907381 10.2181207141 1.06506665370.04 11.7532093795 8.9315894849 0.24699275110.05 9.1130800919 8.8090907454 0.35805367630.06 7.4811887831 6.7100208705 0.27198645110.07 6.5639647169 -0.4463979666 1.12169776050.08 4.9024828596 8.5694809142 -3.74954416430.09 4.3652683642 6.0863292563 -3.10630380860.1 4.0178642794 4.761651142 -1.84560679690.11 2.6343538652 4.4430350634 -2.94666550240.12 1.6363865744 2.9574600486 -3.90162388320.13 1.0716951828 2.6779361185 -3.58215593030.14 -2.7991724678 2.5370457736 -3.29723225030.15 12.4861596597 2.1188662497 -4.92861445130.2 0.4289637735 1.5313141575 -2.838791430.3 0.7693053584 1.1974930746 -2.66916887180.4 -0.8114220802 1.3221608749 -2.50546446140.5 0.0376918989 1.0203443187 -2.32853408370.6 -39.9977114741 55.9528614675 12.09860554460.7 5.3215921381 -2.2678445753 7.5719424460.8 8.0214511328 -0.9619933596 2.07286375890.9 -37.8235367289 29.4601412714 5.10955469621 2.1652490237 5.3143770662 5.1257036379

Tabla B.10: Mejoramiento porcentual del semaforo dinamico sobre el estatico.

118

Page 120: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Apendice C

Codigo JAVA

C.1. Clase Carro

package mike.ram.datos;

/*** Define al Carro con sus propiedades fundamentales* @author Miguel Angel Ramırez Gomez*/public class Carro {

/** * Velocidad (metros sobre segundo).*/public float vel;/** * Aceleracion (metros sobre segundo al cuadrado).*/public float acel;/** * Velocidad Maxima permitida (metros sobre segundo).*///Podrıa pertenecer mejor a una clase ”Vialidad”public static float velMax;/** * Momento de creacion del Carro (segundos).*/public int iniTime;/** * Indica si ya fue considerado en los calculos.*/public boolean considerado;/** * Posicion inicial (metros). */public float iniPos;/** * Posicion instantanea (metros).*/ //Avence sobre la calle en metrospublic float pos;/** * Almacena la suma de las velocidades instantaneas del Carro.*/public float sumVel;/** * Velocidad Promedio del recorrido del Carro (hasta pasar el crucero).*/public float velProm;/** * Tiempo que duro el recorrido del Carro (hasta pasar el crucero).*/public int timeLife;/** * Tiempo que el Carro estuvo detenido (antes de pasar el crucero).*/public int tDetenido;/** * Distancia Recorrida.*/public float distRecor;

119

Page 121: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// C A R R O/*** Inicializa los parametros del Carro.* @param timer Tiempo en segundos transcurrido hasta el momento de crear el Carro.* @param velP Velocidad maxima permitida en la vıa.*/public Carro(int timer, float velP) {

velMax = velP;vel = velMax;acel = 0;considerado = false;iniTime = timer;pos = 0;iniPos = 0;sumVel = 0;velProm = 0;timeLife = 0;tDetenido = 0;

}

// V E L/*** Obtiene la velocidad instantanea del Coche.* @return Velocidad instantanea del Coche.*/public float vel() {

return vel;}

// A C E L/*** Obtiene la aceleracion instantanea del Coche.* @return Aceleracion instantanea del Coche.*/public float acel() {

return acel;}

// P O S/*** Obtiene la posicion instantanea del Coche.* @return Posicion instantanea del Coche.*/public float pos() {

return pos;}

// A C E L E R A R/** * Hace la funcion de acelerador.*/public void Acelerar() {

if ( vel == velMax )acel = 0;

else {acel = 1;vel += acel;if ( vel > velMax) {

vel = velMax;

120

Page 122: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

acel = 0;}

}pos = pos + vel;

}

// C A L C U L A A V P/*** Calcula la aceleracion, velocidad y posicion nuevas del Carro a partir de las* condiciones actuales del mismo y del Carro de enfrente (Enfrenear o acelerar).* @param X Es la Distancia que existe entre el frente del Carro y el frente del* Carro de adelante.* @param N Es el tamano del Carro de enfrente mas un metro de espaciado que* se desea exista entre los Carros en el frenado total.*/public void calculaAVP(float X, float N) {

float velAux = (float) (( X - N) / 3.3);acel = (velAux - vel);vel = velAux;pos = pos + vel;

}

// P O S V E L A C E L/*** Calcula la posicion, velocidad y aceleracion nuevas del Carro a partir de las condiciones* actuales del mismo, y su entorno.* Calcula el Tiempo detenido y la suma de velocidades instantaneas.* @param senal Indica el color de la luz en el semaforo ((0, Verde), (1,ambar),(2,rojo)).* @param ocupado Indica si el crucero esta ocupado por algun Carro.* @param Xlin Distancia a la que se encuentran las lineas peatonales.* @param indice Indica la posicion en la cola de Carros.* @param posCF Indica la posicion actual del Carro de enfrente sobre la vıa.*/public void PosVelAcel(int senal, boolean ocupado, float Xlin, int indice, float posCF) {

int Sem = 0;//El Carro se encuentra antes del semaforo?if ( pos < Xlin )

Sem = senal;// Tengo la luz verde y el crucero esta libre?if ( Sem == 0 && !ocupado ) {

//No es el primer Carro?if ( indice != 0 ) {

//Distancia de frenado segurofloat Dfs = (float) ( 3.3 * vel + 7 );// Distancia del Carro al Carro de enfrentefloat Xab = posCF - pos;// Frenar por aproximacion al Carro de enfrente?if ( Xab <= Dfs )

calculaAVP(Xab, 7);else

Acelerar();}else

Acelerar();}else { //No es el primer Carro?

if ( indice != 0 ) {

121

Page 123: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

float Dfs = (float) ( 3.3 * vel + 7 );// Tengo Carro Enfrente antes de pasar el semaforo?if ( Xlin > posCF) {

float Xab = posCF - pos;// Frenar por aproximacion al Carro de enfrente?if ( Xab <= Dfs )

calculaAVP(Xab, 7);else

Acelerar();}else { //Auto de enfrente ya paso el semaforo

float Xsa = Xlin - pos;// Frenar por aproximacion al semaforo?if ( Xsa <= Dfs ) {

//Posible reduccion de velocidad para ver si puede frenarfloat velAux = (float) (Xsa/ 3.3);acel = (velAux - vel);// No alcanzo a frenar?if ( acel < -3.5) {

float Xab = posCF - pos;// Frenar por aproximacion al Carro de enfrente?if ( Xab <= Dfs )

calculaAVP(Xab, 7);else

Acelerar();}else {

vel = velAux;pos += vel;

}}else

Acelerar();}

}else {

float Dfs = (float)(3.3 * vel);float Xsa = Xlin - pos;// Frenar por aproximacion al semaforo?if ( Xsa <= Dfs) {

//Posible reduccion de velocidad para ver si puede frenarfloat velAux = (float) (Xsa / 3.3);acel = velAux - vel;if ( acel < -3.5)

Acelerar();else {

vel = velAux;pos += vel;

}}else

Acelerar();}

}timeDetenido();sumaVel();

}

122

Page 124: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// C A M B P O S/*** Cambia la posicion actual del Carro por la posicion p.* @param p Posicion nueva para el Carro.*/public void cambPos(float p) {

pos = p;}

// S U M A V E L/** * Realiza el acumulado de las velocidades instantaneas del Carro. */public void sumaVel(){

sumVel += vel;}

// T I M E D E T E N I D O/*** Realiza el acumulado del tiempo que el Carro esta detenido.* Se considera detenido a una velocidad menor a 0.01 m/s.*/public void timeDetenido() {

if (vel < 0.01)tDetenido++;

}

// D E T E N I D O/*** Indica si el Carro esta detenido.* @param v Velocidad instantanea del Coche.* @return Falso o Verdadero.*/public boolean detenido(float v) {

return (v >= 0.01) ? false : true;}

// T I M E L I F E/*** Calcula el lapso de tiempo transcurrido desde que se creo el Carro hasta el actual instante.* @param timer Indica el actual instante* @return Tiempo transcurrido*/public int timeLife(int timer) {

timeLife = timer - iniTime;return timeLife;

}

// R E C O R R I D O/** * Calcula la dsistancia recorrida al momento de requerirlo. */public float recorrido() {

distRecor= pos - iniPos;return distRecor;

}}

123

Page 125: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

C.2. Clase Semaforo

package mike.ram.datos;/*** Define el Semaforo Estatico con sus propiedades fundamentales.* @author Miguel Angel Ramırez Gomez.*/public class Semaforo {

/** Tiempo que dura el ciclo (s).*/public int ciclo;/** Tiempo mınimo permitido de duracion del ciclo (s)*/int cicloMin;/** Tiempo maximo posible para la luz verde (s)*/int verdeMax;/** Tiempo de la luz verde para la vıa horizontal (s)*/int verdeH;/** Tiempo de la luz verde para la vıa vertical (s)*/int verdeV;/** Tiempo de Luz Verde mınimo para paso de peatones = 5s */static int verdeMin = 5;/** Tiempo de Luz Roja para limpiar crucero = 1s (crucero en alto total) */static int rojoCrucero = 1;/** Tiempo de Luz Ambar 3s */static int ambar = 3;/** Tiempo maximo permitido de duracion del ciclo (s)*/static int cicloMax = 400;

// S E M A F O R O 1/** * Inicializa los parametros del semaforo con fases iguales. */public Semaforo() {

cicloMin = cicloMin();verdeMax = verdeMax();ciclo = 60;verdeH = 26;

}

// S E M A F O R O 2/*** Inicializa los parametros del semaforo con fases iguales.* Calcula el tiempo del ciclo dependiendo del valor ingresado para verdeIn de forma* que las fases tengan los mismos tiempos.* @param verdeIn Tiempo que dura la luz verde en la vıa horizontal.*/public Semaforo (int verdeIn) {

ciclo = 2 * verdeIn + 2 * rojoCrucero + 2 * ambar;verdeH = verdeIn;

}

// S E M A F O R O 3/*** Inicializa los parametros del semaforo con fases diferentes.* Calcula las fases dependiendo de los valores ingresados para cicloIn y verdeIn.* verdeIn se usa para el tiempo de la luzverde de la primer fase.* El verde de la segunda fase depende de cicloIn, verdeIn y la luz ambar.* @param cicloIn Tiempo que dura el ciclo.* @param verdeIn Tiempo que dura la luz verde en la vıa horizontal.*/

124

Page 126: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

public Semaforo(int cicloIn, int verdeIn) {cicloMin = cicloMin();if (cicloIn <= cicloMin){

ciclo = cicloMin;verdeH = verdeMin;

}else{

if (cicloIn < cicloMax ) {ciclo = cicloIn;if (verdeIn <= verdeMin)

verdeH = verdeMin;else {

verdeMax=verdeMax();if (verdeIn ¡= verdeMax)

verdeH=verdeIn;else

verdeH = verdeMax;}

}else {

ciclo = cicloMax;if (verdeIn <= verdeMin)

verdeH = verdeMin;else {

verdeMax = verdeMax();if (verdeIn <= verdeMax)

verdeH = verdeIn;else

verdeH = verdeMax;}

}}

}

// C I C L O M I N/*** Calcula el cicloMin necesario dependiendo de verdeMin, ambar y rojoCrucero.* @return tiempo mınimo requerido para el ciclo.*/public int cicloMin() {

return verdeMin*2 + ambar*2 + rojoCrucero*2;}

// V E R D E V/*** Calcula el tiempo necesario para la luz verde de la vıa vertical dependiendo* de verdeMin, ambar y rojoCrucero.* @return tiempo de la luz verde.*/public int verdeV() {

return ciclo - (verdeH + ambar * 2 + rojoCrucero * 2);}

// V E R D E M A X/*** Calcula el tiempo maximo verdeMax para la luz verde dependiendo de verdeMin,* ambar y rojoCrucero.

125

Page 127: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

* @return tiempo maximo de la luz verde.*/public int verdeMax() {

return ciclo - (verdeMin + ambar * 2 + rojoCrucero * 2);}

// C O N F I G T I M E/*** Calcula las fases dependiendo de los valores ingresados para cicloIn y verdeIn.* @param cicloIn Tiempo que dura el ciclo.* @param verdeIn Tiempo que dura la luz verde en la vıa horizontal.*/public void configTime(int cicloIn, int verdeIn) {

cicloMin = cicloMin();if (cicloIn <= cicloMin){

ciclo = cicloMin;verdeH = verdeMin;

}else{

if (cicloIn < cicloMax ) {ciclo = cicloIn;if (verdeIn <= verdeMin)

verdeH = verdeMin;else {

verdeMax = verdeMax();if (verdeIn <= verdeMax)

verdeH = verdeIn;else

verdeH = verdeMax;}

}else {

ciclo = cicloMax;if (verdeIn <= verdeMin)

verdeH = verdeMin;else {

verdeMax = verdeMax();if (verdeIn <= verdeMax)

verdeH = verdeIn;else

verdeH = verdeMax;}

}}

}

// C I C L O/*** Calcula el tiempo del ciclo dependiendo del valor ingresado para verdeIn* de forma que las fases tengan los mismos tiempos.* @param verdeIn Tiempo que dura la luz verde en la vıa horizontal.* @return Tiempo que dura el ciclo.*/public void Ciclo (int verdeIn) {

ciclo = 2 * verdeIn + 2 * rojoCrucero + 2 * ambar;verdeH = verdeIn;

}

126

Page 128: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// S E M A F O R O A/*** Indica con numeros la senal correspondiente a la luz que emite el semaforo horizontal* dependiendo del tiempo.* 0. Luz Verde.* 1. Luz Ambar.* 2. Luz Roja.* @param timer Indica el instante transcurrido de tiempo.* @return Senal del semaforo horizontal.*/public int semaforo A(int timer) {

timer %= ciclo;int senal = 0;if (timer < verdeH)

senal = 0;else {

if (timer < verdeH + ambar)senal = 1;

elsesenal = 2;

}return senal;

}

// S E M A F O R O B/*** Indica con numeros la senal correspondiente a la luz que emite el semaforo vertical* dependiendo del tiempo.* 0. Luz Verde.* 1. Luz Ambar.* 2. Luz Roja.* @param timer Indica el instante transcurrido de tiempo.* @return Senal del semaforo vertical.*/public int semaforo B (int timer) {

timer %= cicloint senal = 0;if (timer < verdeH + ambar + rojoCrucero)

senal = 2;else {

if (timer < ciclo - ambar - rojoCrucero)senal = 0;

else {if (timer < ciclo - rojoCrucero)

senal = 1;else

senal = 2;}

}return senal;

}}

127

Page 129: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

C.3. Clase UICrucero

package mike.ram.vistas;

import mike.ram.datos.*;import mike.ram.mysql.*;import java.awt.Color;import java.awt.Font;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.AdjustmentEvent;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import java.awt.*;import java.util.Date;import java.util.Random;

// U I C R U C E R O/*** interfase grafica para el simulador de transito de un crucero de dos vıas con un carril.* @author Miguel Angel Ramırez Gomez.* @version 1.0*/public class UICrucero extends JFrame {

private static final long serialVersionUID = 1L;

//VARIABLES SEMAFORO GENERALES/** * Indica el color de la luz del semaforo horizontal inicialmente en verde.*/int SemA = 0; //Luz Verde/** * Indica el color de la luz del semaforo vertical inicialmente en rojo.*/int SemB = 2; //Luz Roja/** *Indica las horas transcurridas de simulacion.*/int hora = 0;/** *Indica los minutos transcurridas de simulacion.*/int min = 0;/** *Indica los segundos transcurridas de simulacion.*/int seg = -1;// Variables para calculos por hora./** * Suma de las velocidades promedio de cada Carro, que paso el crucero (durante una hora).*/float sumVelPromSystem = 0;/** * Suma de los tiempos de espera de cada Carro, que paso el crucero (durante una hora).*/float sumTimeEspSystem = 0;/** * Numero total de Carros que pasaron el crucero (durante una hora) .*/int numCarrosPasaron = 0;/** * Numero de carros por segundo que ingresan.*/double flujoEnt = 0.01;/** * Numero de carros por segundo que egresan en una corrida.*/double flujoSal = 0;// Variables calculadas por hora./** * Velocidad promedio del sistema.*/float velPromSys = 0;/** * Tiempo promedio del sistema detenido de tras de la luz roja.*/float tPromDetenSys = 0;/** * Tiempo General del Sistema para pasar el Semaforo.* TGS = 410 / velPromSys + tPromDetenSys.*/

128

Page 130: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

float TGS = 0;// Variables para calculos por 24 horas/** * Suma de las velocidades promedio de cada Carro, que paso el crucero (durante 24 horas).*/float sumVPS = 0;/** * Suma de los tiempos de espera de cada Carro, que paso el crucero (durante 24 horas).*/float sumTEPS = 0;/** * Numero total de Carros que pasaron el crucero (durante 24 horas) .*/int sumNCP = 0;/** * Numero de carros por segundo.*/double FlujoOut = 0;// Variables calculadas para 24 hora./** * Velocidad promedio del sistema.*/float VPS = 0;/** * Tiempo promedio del sistema detenido de tras de la luz roja.*/float TEPS = 0;/** * Tiempo General del Sistema para pasar el Semaforo.* TGSPPC = 410 / VPS + TEPS*/float TGSPPC = 0;/** * Numero de carros que pasan despues de cierto tiempo.*/int NCP = 0;// Auxiliar para el cambio de signo thetaint z = 3;// Auxiliar para el cambio de signo en rhoint r = 5;// Auxiliar para el cambio de signo en luz verdeint v = 5;// Tiempo mınimo de la luz verdeint VerdeMin = 0;// Coeficiente de Aprendizajedouble CoefApren = 0.4;//Pronostico del Umbraldouble Protheta = 0;//Pronostico de distancia del sensordouble Prorho = 0;//Pronostico de tiempo de luz verde mınimodouble ProLVmin = 0;//Pronostico de autos que pasarandouble ProAutos = 0;//Pronostico de flujo de salidadouble ProFlujo = 0;

//VARIABLES SEMAFORO ESTATICOint verde = 5;//VARIABLES SEMAFORO INTELIGENTE/** * Tiempo en segundos de la luz preventiva ambar para el Semaforo Inteligente.*/int yellowSI = 3;/** * Tiempo en segundos de la luz verde.*/int verdeSI = 5;/** * Numero de autos esperando de tras de la luz roja en la vıa horizontal.*/int CarWaitingH = 0;/** * Numero de autos esperando de tras de la luz roja en la vıa vertical.*/int CarWaitingV = 0;/** * Numero de autos acercandose a una distancia rho en la vıa horizontal.*/int kV = 0;/** * Numero de autos acercandose a una distancia rho en la vıa vertical.*/int kH = 0;double satisfaccionCarro = 0;double sumaSatisCarro = 0;

129

Page 131: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

double satisfaccionSistemaTot = 0;double satisfaccionSistemaDesp = 0;double sumaSatisfaccionSys = 0;double proSatisfaccionSys = 0;double SigmaSys = 0;double SigmaSysAnt = 0;double aux = 0;int AUX = 0;int registro = 1;/** *Numero de coches por vıa disponibles para la simulacion.*/static int numAutos = 200;/** * Indica como sera usado del simulador* (0, Aprendizaje)* (1, Simulacion con Semaforo Inteligente)* (2, Simulacion con Semaforo Estatico)*/int uso = 0;// H I L O/** * Se utiliza para indicar que hay que terminar los procesos(hilos).*/boolean apagado;/** * Pasto en el simulador.*/private JLabel fondo = new JLabel();/** * Calle horizontal en el simulador.*/private JLabel street1 = new JLabel();/** * Calle vertical en el simulador.*/private JLabel street2 = new JLabel();/** * Panel de controles en el simulador*/private JLabel ctrlInfo = new JLabel();/** * Semaforo vıa horizontal en el simulador.*/private JLabel sH = new JLabel();/** * Semaforo vıa vertical en el simulador.*/private JLabel sV = new JLabel();/** * Sensor vıa horizontal en el simulador.*/private JLabel sensorH = new JLabel();/** * Sensor vıa vertical en el simulador.*/private JLabel sensorV = new JLabel();/** * Lineas vıa horizontal en el simulador.*/private JLabel lineasH = new JLabel();/** * Lineas vıa vertical en el simulador.*/private JLabel lineasV = new JLabel();/** * Conjunto de coches en la vıa horizontal en el simulador.*/private JLabel[] autosH = new JLabel[numAutos];/** * Conjunto de coches en la vıa vertical en el simulador.*/private JLabel[] autosV = new JLabel[numAutos];// P A N E L D E C O N T R O L/** * Etiqueta Resultados en el panel de control del simulador.*/private JLabel L00 = new JLabel(”RESULTADOS”);/** * Etiqueta Configuracion en el panel de control del simulador.*/

private JLabel L0 = new JLabel(”CONFIGURACION”);/** * Etiqueta Flujo In en el panel de control del simulador.*/private JLabel L1 = new JLabel(”Flujo In: 0.01auto/s”);/** * Etiqueta Flujo Out en el panel de control del simulador.*/private JLabel L2 = new JLabel(”Flujo Out: 0auto/s”);/** * Etiqueta RHO en el panel de control del simulador.*/private JLabel L3 = new JLabel(”Sensor colocado a: 7m”);/** * Etiqueta theta en el panel de control del simulador.*/private JLabel L4 = new JLabel(”Sensando: 5s”);

130

Page 132: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

/** * Etiqueta LuzVerde Tiempo mınimo en el panel de control del simulador.*/private JLabel L5 = new JLabel(”Tiempo Luz Verde: 5s”);/** * Etiqueta Tiempo de Espera Promedio del Sistema en el panel de control del simulador.*/private JLabel L6 = new JLabel(”TEPS: 0s”);/** * Etiqueta Velocidad Promedio del Sistema en el panel de control del simulador.*/private JLabel L7 = new JLabel(”VPS: 0m/s”);/** * Etiqueta Tiempo General del Sistema para Pasar el Semaforo en el panel de control del simulador.*/private JLabel L8 = new JLabel(”TGSPPC: 0s”);/** * Etiqueta Velocidad del Simulador en el panel de control del simulador.*/private JLabel L9 = new JLabel(”Velocidad del Simulador”);/** * Etiqueta Velocidad del Simulador en el panel de control del simulador.*/private JLabel L10 = new JLabel(”Normal Rapido”);/** * Indica Velocidad del Simulador.*/private JLabel L11 = new JLabel(”1024X ”);/** * Etiqueta Corrida de una hora de Simulador.*/private JLabel L12 = new JLabel(”Por Corrida (1h)”);/** * Indica Tiempo de Espera de la corrida.*/private JLabel L13 = new JLabel(”TEP: 0s”);/** * Indica Velocidad Promedio de la corrida.*/private JLabel L14 = new JLabel(”VP: 0m/s”);/** * Indica Tiempo General para pasar el semaforo en una corrida.*/private JLabel L15 = new JLabel(”TG: 0s”);/** * Indica el Flujo de Salida de la corrida.*/private JLabel L16 = new JLabel(”FlujoSal: 0auto/s”);/** * Etiqueta Despues de 24hrs de simulacion.*/private JLabel L17 = new JLabel(”Despues de 0hrs”);/** * Etiqueta RHO en el panel de control del simulador.*/private JLabel L18 = new JLabel(”Colocar sensor a: 0m”);/** * Etiqueta theta en el panel de control del simulador.*/private JLabel L19 = new JLabel(”Autos a sensar: 0autos”);/** * Etiqueta Time en el panel de control del simulador.*/private JLabel L20 = new JLabel(”Time:”);/** * Etiqueta Estado en el panel de control del simulador.*/private JLabel L21 = new JLabel(”Estado:”);/** * Boton para aprendizaje.*/private JButton aprender = new JButton(”Entrenamiento”);/** * Boton para usar Semaforo Inteligente.*/private JButton semInt = new JButton(”SimSemInt”);/** * Boton para usar Semaforo Estatico.*/private JButton semEst = new JButton(”SimSemEst”);/** * Boton para iniciar simulacion.*/private JButton a = new JButton(”Iniciar”);/** * Boton para pausar simulacion.*/private JButton b = new JButton(”Pausar”);/** * Boton para reiniciar simulacion.*/private JButton c = new JButton(”Salir”);/** * Barra para seleccionar flujo de entrada.*/public Scrollbar sbFlujo = new Scrollbar();/** * Almacena el flujo de entrada seleccionado en la barra para el flujo.*/public double FlujoIn=(float) 0.01;/** * Barra para seleccionar la velocidad de la simulacion.*/public Scrollbar sbFactorTime = new Scrollbar();/** * Almacena la velocidad seleccionada para el simulador.*/public int factorX=1;/** * Barra para seleccionar tiempo de la Luz Verde.*/public Scrollbar sbLuzVerde = new Scrollbar();/** * Almacena la velocidad seleccionada para el simulador.*/

131

Page 133: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

public int tLuzVerde=5;/** * Barra para seleccionar la velocidad de la simulacion.*/public Scrollbar sbRho = new Scrollbar();/** * Almacena la velocidad seleccionada para el simulador.*/public double Rho = 7;/** * Barra para seleccionar tiempo de la Luz Verde.*/public Scrollbar sbTheta = new Scrollbar();/** * Almacena la velocidad seleccionada para el simulador.*/public double Theta = 5;//////////////////////////////////////////////////////////////////

/** * Hilos de los coches, semaforos y tiempo.*/private Simulador sim1;/** * Inicializa y retorna las imagenes de los carros utilizados en la vıa horizontal (imagen y posicion).*/private JLabel[] createAutosH(){

for (int i = 0; i < numAutos; i++){autosH[i] = new JLabel();autosH[i].setBounds(new Rectangle(10, 10, 10, 10));autosH[i].setIcon(new ImageIcon(”imagenes/Smart Blue Izq.png”));autosH[i].setLocation(i*7+1000, 400);

}return autosH;

}/** * Inicializa y retorna las imagenes de los carros utilizados en la vıa vertical (imagen y posicion).*/private JLabel[] createAutosV(){

for (int i = 0; i < numAutos; i++){autosV[i] = new JLabel();autosV[i].setBounds(new Rectangle(10, 10, 10, 10));autosV[i].setIcon(new ImageIcon(”imagenes/Smart Blue Izq.png”));autosV[i].setLocation(400, i*7+1000);

}return autosV;

}

/** * Termina los procesos existentes.*/public void safeStop(){

apagado=true;}

// U I C R U C E R O (Constructor)/** * Inicializa la interfaz grafica.*/public UICrucero() {

this.setLocation(80, 50);this.getContentPane().setLayout(null);this.setSize(1000, 600);this.setTitle(”Simulacion de Control de Transito”);this.setResizable(false);this.setVisible(true);

// P A N E L D E C O N T R O LL00.setBounds(new Rectangle(845, 55, 170, 20));L12.setBounds(new Rectangle(830, 80, 160, 10));L13.setBounds(new Rectangle(830, 95, 160, 10));L14.setBounds(new Rectangle(830, 105, 160, 10));L15.setBounds(new Rectangle(830, 115, 160, 10));

132

Page 134: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

L16.setBounds(new Rectangle(830, 125, 160, 10));L3.setBounds(new Rectangle(820, 415, 155, 10));L4.setToolTipText(”Suma de los tiempos de los carros que se encuentran entre el sensor y el semaforo.”);L4.setBounds(new Rectangle(820, 445, 155, 10));L17.setBounds(new Rectangle(830, 165, 160, 10));L6.setBounds(new Rectangle(830, 180, 155, 10));L7.setBounds(new Rectangle(830, 200, 155, 10));L8.setBounds(new Rectangle(830, 220, 155, 10));L2.setBounds(new Rectangle(830, 240, 155, 10));L18.setBounds(new Rectangle(830, 260, 155, 10));L19.setBounds(new Rectangle(830, 280, 155, 10));L0.setBounds(new Rectangle(830, 320, 170, 20));L1.setBounds(new Rectangle(820, 355, 155, 10));L5.setBounds(new Rectangle(820, 385, 155, 10));L9.setBounds(new Rectangle(20, 20, 155, 10));L10.setBounds(new Rectangle(20, 45, 160, 10));L11.setBounds(new Rectangle(88, 45, 160, 10));L20.setBounds(new Rectangle(20, 65, 100, 20));L21.setBounds(new Rectangle(20, 80, 155, 20));L00.setFont(new Font(”MS Reference Sans Serif”, 1, 16));L0.setForeground(Color.WHITE);L0.setFont(new Font(”MS Reference Sans Serif”, 1, 16));L1.setFont(new Font(”MS Reference Sans Serif”, 1, 11));L2.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L3.setFont(new Font(”MS Reference Sans Serif”, 1, 11));L4.setFont(new Font(”MS Reference Sans Serif”, 1, 11));L5.setFont(new Font(”MS Reference Sans Serif”, 1, 11));L6.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L7.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L8.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L9.setFont(new Font(”MS Reference Sans Serif”, 1, 11));L10.setFont(new Font(”MS Reference Sans Serif”, 4, 9));L11.setFont(new Font(”MS Reference Sans Serif”, 4, 9));L12.setFont(new Font(”MS Reference Sans Serif”, 3, 11));L13.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L14.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L15.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L16.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L17.setFont(new Font(”MS Reference Sans Serif”, 3, 11));L18.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L19.setFont(new Font(”MS Reference Sans Serif”, 2, 11));L20.setFont(new Font(”MS Reference Sans Serif”, 1, 11));L21.setFont(new Font(”MS Reference Sans Serif”, 1, 11));

// SB Flujo de EntradasbFlujo.setOrientation(0);sbFlujo.setValue(1);sbFlujo.setMaximum(30);sbFlujo.setUnitIncrement(1);sbFlujo.setBlockIncrement(1);sbFlujo.setMinimum(1);sbFlujo.setBounds(new Rectangle(820, 365, 160, 15));sbFlujo.addAdjustmentListener(new java.awt.event.AdjustmentListener() {

public void adjustmentValueChanged(AdjustmentEvent ev) {sbFlujo adjustmentValueChanged(ev);

}});

133

Page 135: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// SB Tiempo de Luz VerdesbLuzVerde.setOrientation(0);sbLuzVerde.setValue(1);sbLuzVerde.setMaximum(197);sbLuzVerde.setUnitIncrement(13);sbLuzVerde.setBlockIncrement(1);sbLuzVerde.setMinimum(5);sbLuzVerde.setBounds(new Rectangle(820, 395, 160, 15));sbLuzVerde.addAdjustmentListener(new java.awt.event.AdjustmentListener() {

public void adjustmentValueChanged(AdjustmentEvent ev) {sbLuzVerde adjustmentValueChanged(ev);

}});// SB RhosbRho.setOrientation(0);sbRho.setValue(7);sbRho.setMaximum(410);sbRho.setUnitIncrement(1);sbRho.setBlockIncrement(1);sbRho.setMinimum(7);sbRho.setBounds(new Rectangle(820, 425, 160, 15));sbRho.addAdjustmentListener(new java.awt.event.AdjustmentListener() {

public void adjustmentValueChanged(AdjustmentEvent ev) {sbRho adjustmentValueChanged(ev);

}});// SB ThetasbTheta.setOrientation(0);sbTheta.setValue(5);sbTheta.setMaximum(370);sbTheta.setUnitIncrement(1);sbTheta.setBlockIncrement(1);sbTheta.setMinimum(1);sbTheta.setBounds(new Rectangle(820, 455, 160, 15));sbTheta.addAdjustmentListener(new java.awt.event.AdjustmentListener() {

public void adjustmentValueChanged(AdjustmentEvent ev) {sbTheta adjustmentValueChanged(ev);

}});// SB Velocidad del simuladorsbFactorTime.setOrientation(0);sbFactorTime.setValue(20);sbFactorTime.setMaximum(20);sbFactorTime.setUnitIncrement(1);sbFactorTime.setBlockIncrement(1);sbFactorTime.setMinimum(0);sbFactorTime.setBounds(new Rectangle(20, 30, 160, 10));sbFactorTime.addAdjustmentListener(new java.awt.event.AdjustmentListener() {

public void adjustmentValueChanged(AdjustmentEvent ev) {sbFactorTime adjustmentValueChanged(ev);

}});// Semaforo HorizontalsH.setIcon(new ImageIcon(”imagenes/apagado.png”));sH.setLocation(350,420);sH.setSize(35,85);

134

Page 136: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// Semaforo VerticalsV.setIcon(new ImageIcon(”imagenes/apagadoH.png”));sV.setLocation(420,350);sV.setSize(85,35);// Sensor HorizontalsensorH.setIcon(new ImageIcon(”imagenes/sensor.png”));sensorH.setLocation((int) (400-Rho),400);sensorH.setSize(2,13);// Sensor VerticalsensorV.setIcon(new ImageIcon(”imagenes/sensor.png”));sensorV.setLocation(400,(int) (400-Rho));sensorV.setSize(13,2);// Lineas VerticallineasV.setIcon(new ImageIcon(”imagenes/lineasV.png”));lineasV.setLocation(400,397);lineasV.setSize(13,3);// Lineas HorizontallineasH.setIcon(new ImageIcon(”imagenes/lineasH.png”));lineasH.setLocation(397,400);lineasH.setSize(3,13);// Panel de ControlctrlInfo.setBounds(new Rectangle(850, 0, 100, 0));ctrlInfo.setIcon(new ImageIcon(”imagenes/ctrlInfo.png”));ctrlInfo.setLocation(813, -130);ctrlInfo.setSize(200,800);// Vıa Horizontalstreet1.setBounds(new Rectangle(850, 385, 100, 95));street1.setIcon(new ImageIcon(”imagenes/pavimento 1.png”));street1.setLocation(0, 400);street1.setSize(1000,13);// Vıa Verticalstreet2.setBounds(new Rectangle(850, 385, 100, 95));street2.setIcon(new ImageIcon(”imagenes/pavimento 1.png”));street2.setLocation(400, 0);street2.setSize(13,600);// Pastofondo.setBounds(new Rectangle(850, 385, 100, 95));fondo.setIcon(new ImageIcon(”imagenes/background pasto.jpg”));fondo.setLocation(0, 0);fondo.setSize(1000,600);// Boton aprenderaprender.setToolTipText(”Entrenamiento y aprendizaje del semaforo inteligente.”);aprender.setBounds(new Rectangle(820, 10, 160, 20));aprender.setFont(new Font(”MS Reference Sans Serif”, 1, 11));aprender.addActionListener(new ActionListener() {

@SuppressWarnings(”deprecation”)public void actionPerformed(ActionEvent e) {

uso = 0;aprender.setBounds(new Rectangle(820, 10, 160, 20));aprender.setFont(new Font(”MS Reference Sans Serif”, 1, 11));semInt.setBounds(new Rectangle(820, 30, 80, 20));semInt.setFont(new Font(”MS Reference Sans Serif”, 4, 8));semEst.setBounds(new Rectangle(900, 30, 80, 20));semEst.setFont(new Font(”MS Reference Sans Serif”, 4, 8));L13.setBounds(new Rectangle(830, 95, 160, 10));L14.setBounds(new Rectangle(830, 105, 160, 10));L15.setBounds(new Rectangle(830, 115, 160, 10));

135

Page 137: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

L16.setBounds(new Rectangle(830, 125, 160, 10));L17.setBounds(new Rectangle(830, 165, 160, 10));L6.setBounds(new Rectangle(830, 180, 155, 10));L7.setBounds(new Rectangle(830, 200, 155, 10));L8.setBounds(new Rectangle(830, 220, 155, 10));L2.setBounds(new Rectangle(830, 240, 155, 10));sensorH.show();sensorV.show();L3.show();L4.show(); L18.show();L19.show();sbRho.hide();sbFlujo.hide();sbTheta.hide();sbLuzVerde.hide();repaint();

}});// Boton Semaforo InteligentesemInt.setToolTipText(”Simula el control de transito con semaforos inteligentes.”);semInt.setBounds(new Rectangle(820, 30, 80, 20));semInt.setFont(new Font(”MS Reference Sans Serif”, 4, 8));semInt.addActionListener(new ActionListener() {

@SuppressWarnings(”deprecation”)public void actionPerformed(ActionEvent e) {

uso=1;semInt.setBounds(new Rectangle(820, 10, 160, 20));semInt.setFont(new Font(”MS Reference Sans Serif”, 1, 11));semEst.setBounds(new Rectangle(820, 30, 80, 20));semEst.setFont(new Font(”MS Reference Sans Serif”, 4, 8));aprender.setBounds(new Rectangle(900, 30, 80, 20));aprender.setFont(new Font(”MS Reference Sans Serif”, 4, 8));L13.setBounds(new Rectangle(830, 100, 160, 10));L14.setBounds(new Rectangle(830, 120, 160, 10));L15.setBounds(new Rectangle(830, 140, 160, 10));L16.setBounds(new Rectangle(830, 160, 160, 10));L17.setBounds(new Rectangle(830, 190, 160, 10));L6.setBounds(new Rectangle(830, 210, 155, 10));L7.setBounds(new Rectangle(830, 230, 155, 10));L8.setBounds(new Rectangle(830, 250, 155, 10));L2.setBounds(new Rectangle(830, 270, 155, 10));L3.show();L4.show();sensorH.show();sensorV.show();L19.hide();L18.hide();sbRho.show();sbFlujo.show();sbTheta.show();sbLuzVerde.show();repaint();

}});// Boton Semaforo EstaticosemEst.setToolTipText(”Simula el control de transito con semaforos estaticos.”);semEst.setBounds(new Rectangle(900, 30, 80, 20));semEst.setFont(new Font(”MS Reference Sans Serif”, 4, 8));semEst.addActionListener(new ActionListener() {

@SuppressWarnings(”deprecation”)public void actionPerformed(ActionEvent e) {

uso=2;semEst.setBounds(new Rectangle(820, 10, 160, 20));semEst.setFont(new Font(”MS Reference Sans Serif”, 1, 11));

136

Page 138: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

aprender.setBounds(new Rectangle(820, 30, 80, 20));aprender.setFont(new Font(”MS Reference Sans Serif”, 4, 8));semInt.setBounds(new Rectangle(900, 30, 80, 20));semInt.setFont(new Font(”MS Reference Sans Serif”, 4, 8));L13.setBounds(new Rectangle(830, 100, 160, 10));L14.setBounds(new Rectangle(830, 120, 160, 10));L15.setBounds(new Rectangle(830, 140, 160, 10));L16.setBounds(new Rectangle(830, 160, 160, 10));L17.setBounds(new Rectangle(830, 190, 160, 10));L6.setBounds(new Rectangle(830, 210, 155, 10));L7.setBounds(new Rectangle(830, 230, 155, 10));L8.setBounds(new Rectangle(830, 250, 155, 10));L2.setBounds(new Rectangle(830, 270, 155, 10));sensorH.hide();sensorV.hide();L18.hide();L19.hide();sbRho.show();sbFlujo.show();sbTheta.show();sbLuzVerde.show();repaint();

}});// Boton Iniciara.setBounds(new Rectangle(848, 495, 110, 20));a.setFont(new Font(”MS Reference Sans Serif”, 1, 11));a.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {jButton1 actionPerformed(e);

}});// Boton Pausarb.setBounds(new Rectangle(848, 515, 110, 20));b.setFont(new Font(”MS Reference Sans Serif”, 1, 11));b.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {jButton2 actionPerformed(e);

}});// Boton Reiniciarc.setBounds(new Rectangle(848, 535, 110, 20));c.setFont(new Font(”MS Reference Sans Serif”, 1, 11));c.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {jButton3 actionPerformed(e);

}});// Conjunto de autos creados para la vıa horizontal.JLabel[] autosH=createAutosH();for (int i=0;i¡autosH.length;i++){

this.add(autosH[i]);}// Conjunto de autos creados para la vıa vertical.JLabel[] autosV=createAutosV();for (int i=0;i¡autosV.length;i++){

this.add(autosV[i]);}

137

Page 139: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

this.add(L00);this.add(L0);this.add(L20);this.add(L21);this.add(L1);this.add(L2);this.add(L3);this.add(L4);this.add(L5);this.add(L6);this.add(L7);this.add(L8);this.add(L9);this.add(L10);this.add(L11);this.add(L12);this.add(L13);this.add(L14);this.add(L15);this.add(L16);this.add(L17);this.add(L18);this.add(L19);this.add(sH);this.add(sV);this.add(lineasH);this.add(lineasV);this.add(sensorH);this.add(sensorV);this.add(sbFlujo);this.add(sbFactorTime);this.add(sbLuzVerde);this.add(sbRho);this.add(sbTheta);this.getContentPane().add(aprender, null);this.getContentPane().add(semInt, null);this.getContentPane().add(semEst, null);this.getContentPane().add(a, null);this.getContentPane().add(b, null);this.getContentPane().add(c, null);this.add(ctrlInfo);this.add(street1);this.add(street2);this.add(fondo);repaint();

}

/** * Ajusta el Flujo con el que se inicia el simulador.* Depende del uso del simulador.* @param ev Evento Cambio Valor*/void sbFlujo adjustmentValueChanged(AdjustmentEvent ev) {

FlujoIn = 0.01 * sbFlujo.getValue();L1.setText(”Flujo In: ” + FlujoIn + ”auto/s”);repaint();

}

138

Page 140: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

/** * Ajusta el tiempo de la luz verde con la que se inicia el Simulador.* @param ev Evento Cambio Valor.*/void sbLuzVerde adjustmentValueChanged(AdjustmentEvent ev) {

tLuzVerde = sbLuzVerde.getValue();L5.setText(”Tiempo Luz Verde: ” + tLuzVerde + ”s”);repaint();

}

/** * Ajusta el tiempo de la luz verde con la que se inicia el Simulador.* @param ev Evento Cambio Valor.*/void sbRho adjustmentValueChanged(AdjustmentEvent ev) {

Rho= sbRho.getValue();L3.setText(”Rho: ” + Rho + ”m”);sensorH.setLocation((int) (400 - Rho),400);sensorV.setLocation(400,(int) (400 - Rho));repaint();

}

/** * Ajusta el Umbral theta con la que se inicia el Simulador.* @param ev Evento Cambio Valor.*/void sbTheta adjustmentValueChanged(AdjustmentEvent ev) {

Theta= sbTheta.getValue();L4.setText(”Theta: ” + Theta + ”s”);repaint();

}

void sbFactorTime adjustmentValueChanged(AdjustmentEvent ev) {int aux = 1;int X = sbFactorTime.getValue();if (X == 0)

factorX = 1024;else {

for (int i = 0; i < X; i++)aux = aux * 2;

factorX = 1024 / aux;}L11.setText(”” + aux + ”X”);repaint();

}

// M A I N/** * Crea una instancia nueva de UICrucero*/public static void main(String[] args) throws Exception {

JFrame.setDefaultLookAndFeelDecorated(true);new UICrucero();

}

// E M P E Z A R/** * Crea una instancia de la clase extendida Simulador llamada sim1*/public void empezar(){

// factorX = 1000 es 1 seg.sim1 = new Simulador(factorX,sH,sV,autosH,autosV);

}

139

Page 141: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

//// BOTONES DEL PANEL DE CONTROL /////** * Indica si el simulador se a suspendido o no.*/public boolean issuspended = false;@SuppressWarnings(”deprecation”)private void jButton1 actionPerformed(ActionEvent e) {

if(!issuspended) {L21.setText(”Estado: Iniciado”);empezar();sim1.start();Toolkit.getDefaultToolkit().beep();

}else {

sim1.resume();issuspended = false;L21.setText(”Estado: Resumido”);

}}

@SuppressWarnings(”deprecation”)private void jButton2 actionPerformed(ActionEvent e) {

sim1.suspend();issuspended = true;L21.setText(”Estado: Suspendido”);

}private void jButton3 actionPerformed(ActionEvent e) {

safeStop();issuspended = true;L21.setText(”Estado: Re-Iniciado”);

System.exit(1);}///////////////////////////////////////////////////////

// Almacena fecha y hora actualstatic Date d = new Date();// Semilla para generar numeros aleatorios@SuppressWarnings(”deprecation”)// Hora del dıa convertida a segundos para que funcione como semillastatic long semilla = d.getHours()*3600 + d.getMinutes()*60 + d.getSeconds();// Funcion random para generar numeros aleatoriosstatic Random rnd = new Random(semilla);// Indica si se crea o no un Carro nuevostatic boolean crear = false;

// Muestra el tiempo en el panel de control.public void reloj(){

seg++;if(seg == 60) { seg = 0; min++; }if(min == 60) { min = 0; hora++; }L20.setText(”Time:”+hora+”:”+min+”:”+seg);

}

// S I M U L A/** * Genera el hilo que controla la simulacion*/class Simulador extends Thread {

long tiempo;JLabel SemH;JLabel SemV;

140

Page 142: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

boolean contando = true;private JLabel[] autosH;private JLabel[] autosV;

// S I M U L A (Constructor)/** * Inicializa la simulacion con los parametros que se pasan*/public Simulador(int tiempo, JLabel SemH, JLabel SemV , JLabel[] autosH, JLabel[] autosV){

this.tiempo = tiempo;this.SemH = SemH;this.SemV = SemV;this.autosH = autosH;this.autosV = autosV;

}

public void run() {// Realiza la conexion a la base dedatosCNoperaciones conexion conn = new CNoperaciones conexion();// Se crean las colas para los datos de los carrosCola<Carro> colaH = new Cola<Carro>();Cola<Carro> colaV = new Cola<Carro>();// Indican si el cruce es ocupado por algun carroboolean cruceOcupadoH = false;boolean cruceOcupadoV = false;// Tiempo en segundosint t = 0;

//// VARIABLES PARA SEM FIJO CALCULOS ////// Reloj del Ciclo del Semaforo.int timer = 0;int ciclo = 21;Semaforo sem = new Semaforo(ciclo, tLuzVerde); //Inicializa Semaforo////Datos Semaforo Ghersenson//boolean cambio = true;

while(!apagado) {/////// FACTOR DE VELOCIDAD DEL SIMULADOR ///////try {

Thread.sleep(factorX);} catch (InterruptedException e1) {

// TODO Bloque catch generado automaticamentee1.printStackTrace();

}/////////////////////////////////////////////////////

reloj();

// SEMAFORO ESTATICOif (uso == 2) {

VerdeMin = tLuzVerde;sem.Ciclo(tLuzVerde);SemA = sem.semaforo A(timer);SemB = sem.semaforo B(timer);semaforosG(SemA,SemH,SemB,SemV,t);autosG (colaH, autosH, 0, 0, t); //Rho = 0 para sem estatico.autosG (colaV, autosV, 1, 0, t);calculos2(t, sem.ciclo);timer++;

}

141

Page 143: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// SEMAFORO DINAMICOif (uso == 1) {

VerdeMin = tLuzVerde;semaforosG(SemA,SemH,SemB,SemV,t);autosG (colaH, autosH, 0, (float) Rho, t); //Rho!=0 para sem inteligenteautosG (colaV, autosV, 1, (float) Rho, t);calculos2(t, sem.ciclo);cambio = swithing(cambio, (float) Theta, VerdeMin);

}// ENTRENAMIENTOif (uso == 0) {

if (hora == 120) { // 5 DIASt = 0; registro++; hora = 0; min = 0; seg = 0;

}if (registro == 25) apagado = true;//Descomentar y comentar para seleccionar aprendizaje//aprendeRho(t, colaH, colaV, conn, registro);//aprendePhi(t, colaH, colaV, conn, registro);//aprendeTheta(t, colaH, colaV, conn, registro);aprende (t, colaH, colaV, conn, registro);semaforosG(SemA,SemH,SemB,SemV,t);autosG (colaH, autosH, 0, (float) Rho, t); //rho = 0 para sem estaticoautosG (colaV, autosV, 1, (float) Rho, t);cambio = swithing(cambio, (float) Theta, VerdeMin);

}

////OPCION DE SIMULACION CON LOS DATOS APRENDIDOS/////////Descomentar para realizar la comparacion entre////////los semaforos estatico y dinamico./////////////////* if (hora%7 == 0){ // Cada 7 horas.

try {simula(t, conn);

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}*//////////////////////////////////////////////////////////

Transito(colaH,SemA, cruceOcupadoV);Transito(colaV,SemB, cruceOcupadoH);CreaAuto(FlujoIn, t, colaH, ”Horizontal”);CreaAuto(FlujoIn, t, colaV, ”Vertical”);t++;

}conn.cierraConexion();

}}

// C R E A A U T O/*** Genera e Inicializa los carros dependiendo del flujo y la vıa.* @param flujo Numero de carros por segundo.* @param time Momento de creacion.* @param cola Contendra la informacion de los carros como se van creando depende de la vıa.* @param calle Texto que indica la orientacion de la calle*/ public static void CreaAuto(double flujo, int time, Cola<Carro> cola, String calle ){

142

Page 144: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

//CREAMOS CARRO SEGUN EL FLUJOdouble random=rnd.nextDouble();if (random <= flujo)

crear = true;if (crear){

Carro car = new Carro(time, (float) 11.0);cola.encolar(car);int tam = cola.getSize();if (tam >1){

float posAutoDelante = cola.elementos.get(tam-2).pos;//Distancia de frenado seguro + el tamano del auto + 1m de separacion// 3.3 (11) + 6 + 1 = 43.3if (posAutoDelante < 43.3){

float p = (float) (posAutoDelante - 43.3);cola.elementos.elementAt(tam-1).cambPos(p);cola.elementos.elementAt(tam-1).iniPos = p;

}}crear = false;

}}

// T R A N S I T O/*** Controla los parametros de los carros de la vıa y el crucero* @param cola Contendra la informacion de los carros como se van creando depende de la vıa.* @param Sem Indica la senal del semaforo* @param cruceOcupado*/public static void Transito(Cola<Carro> cola, int Sem, boolean cruceOcupado){

if (!cola.colaVacia()){int tamano = cola.getSize();for(int i = 0; i < tamano; i++){

float posicion = cola.elementos.get(i).pos;if (i == 0)

cola.elementos.elementAt(i).PosVelAcel(Sem, cruceOcupado, 398, i, 0);else {

float posAutoDelante = cola.elementos.get(i-1).pos;cola.elementos.elementAt(i).PosVelAcel(Sem, cruceOcupado,398, i, posAutoDelante);

}if (posicion >= 400) {

if (posicion < 410)cruceOcupado = true;

elsecruceOcupado = false;

}}

}}

// D E T E C T A U T O S/*** Sensor que detecta Carros aproximandose a cierta distancia del semaforo.* @param Sem Senal de semaforo.* @param XSem Distancia a la que se encuentra el semaforo.* @param pos Posicion del Carro sobre la vıa.* @param rho Distancia entre el sensor y el semaforo.

143

Page 145: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

* @param k Numero de Carros aproximandose detectados por el sensor.* @param via Orientacion de la vıa.* @return Numero de Carros detectados por el sensor.*/public static int detectAutos(int Sem, float XSem, float pos, float rho, int k, String via){

if (Sem == 2) {float deltaX = XSem - rho;if (pos >= deltaX && pos <= XSem)

k = k + 1;}return k;

}

// A U T O S G/*** Muestra los carros dependiendo de la vıa.* Ademas detecta los Carros detenidos detras del semaforo cuando esta en rojo.y realiza calculos1* @param cola Contiene la informacion de los carros, depende de la vıa.* @param autos Conjunto de imagenes de carro asignadas para la vıa.* @param direccion Indica la orientacion de la vıa (0 Horizontal, 1 Vertical)* @param rho Distancia entre el sensor y el semaforo.* @param time Tiempo transcurrido.*/public void autosG (Cola<Carro> cola, JLabel[] autos, int direccion, float rho, int time) {

if(cola.getSize() != 0){float posicion;int tam = cola.getSize();for (int i = 0; i < tam;i++){

posicion = cola.elementos.elementAt(i).pos();if (posicion > 800) { //Sale de la pantalla del simulador?

cola.desencolar();tam = cola.getSize();i–;if (tam >= numAutos)

tam = numAutos - 1;autos[tam].setIcon(new ImageIcon(”imagenes/Smart Green Arriba.png”));autos[tam].setLocation(-10, -10);

}else {

if (posicion ¿= 0) {//Esta en la pantalla del simulador?int n = i% numAutos;if (direccion == 0) {

autos[n].setIcon(new ImageIcon(”imagenes/Smart Green Izq.png”));autos[n].setLocation((int)cola.elementos.elementAt(i).pos - 7, 402);

}else {

autos[n].setIcon(new ImageIcon(”imagenes/Smart Green Arriba.png”));autos[n].setLocation(405, (int) cola.elementos.elementAt(i).pos-9);

}calculos1(cola, i, posicion, time, direccion);

}//Carros detenidos detras del semaforoif (direccion == 0)

CarWaitingH=detectAutos(SemA,400,cola.elementos.elementAt(i).pos,rho, CarWaitingH, ”H”);else

CarWaitingV=detectAutos(SemB,400,cola.elementos.elementAt(i).pos,rho, CarWaitingV, ”V”);calculos1(cola, i, posicion, time, direccion);

144

Page 146: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

}}tam = cola.getSize();if (tam < numAutos) {

for (int i = tam; i < numAutos; i++) {autos[i].setIcon(new ImageIcon(”imagenes/Smart Green Arriba.png”));autos[i].setLocation(-10, -10);

}}

}}

// C A L C U L O S 1/*** Calcula la velocidad promedio y el tiempo detenido para cada Carro que ha pasado el semaforo* Y realiza el agregado para el calculo de VP, TEP y TGP de la corrida.* @param cola* @param i* @param posicion* @param time* @param direccion*/public void calculos1(Cola<Carro> cola, int i, float posicion, int time, int direccion) {

cola.elementos.get(i).timeDetenido();if (posicion >= 410 && cola.elementos.get(i).considerado == false) {

numCarrosPasaron++;sumVelPromSystem += cola.elementos.get(i).velProm = (cola.elementos.get(i).pos -

cola.elementos.get(i).iniPos)/cola.elementos.elementAt(i).timeLife(time);sumTimeEspSystem += cola.elementos.get(i).tDetenido;cola.elementos.elementAt(i).considerado = true;sumaSatisCarro +=satisfaccionCarro=((cola.elementos.get(i).velProm/11) +

Math.exp(-(cola.elementos.get(i).tDetenido)/60))/2;}

}

// C A L C U L O S 2/** * Realiza los promedios.* @param t Unidad de tiempo de la simulacion (segundo actual).* @param ciclo Duracion de las dos fases del semaforo.*/public void calculos2(int t, int ciclo){

if (t % 3600 == 0 && t != 0) {//Cada HorasatisfaccionSistemaDesp = sumaSatisCarro/numCarrosPasaron;tPromDetenSys = sumTimeEspSystem / numCarrosPasaron;velPromSys=sumVelPromSystem / numCarrosPasaron;TGS = (float) (tPromDetenSys + 410.0 / velPromSys);flujoSal = (float) (numCarrosPasaron / 7200.0);sumaSatisfaccionSys += satisfaccionSistemaDesp;sumTEPS += tPromDetenSys;sumVPS += velPromSys;sumNCP += numCarrosPasaron;TEPS = (float) (sumTEPS / hora);VPS = (float) (sumVPS/hora);TGSPPC = (float) (410.0 / VPS + TEPS);FlujoOut = sumNCP / (7200.0 * hora);satisfaccionSistemaTot = sumaSatisfaccionSys / hora;actualizaPanel();

145

Page 147: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

flujoSal = 0;sumVelPromSystem = 0;sumTimeEspSystem = 0;numCarrosPasaron = 0;sumaSatisCarro=0;aux=0;AUX=0;

}}

// A C T U A L I Z A P A N E L/** * Actualiza la posicion del sensor en el simulador y la informacion del panel de controles.*/public void actualizaPanel(){

L13.setText(”TEP: ” + (float)tPromDetenSys +”s”);L14.setText(”VP: ” + (float)velPromSys + ”m/s”);L15.setText(”TG:” + (float)TGS + ”s”);L16.setText(”FlujoSal: ” + (float)flujoSal + ”a/s”);L1.setText(”Flujo In: ” + (float)FlujoIn + ”auto/s”);L5.setText(”Tiempo Luz Verde: ” + tLuzVerde + ”s”);L17.setText(”Despues de ” + hora + ”hrs”);L6.setText(”TEPS: ” + (float)(TEPS) + ”s”);L7.setText(”VPS: ” + (float)(VPS) + ”m/s”);L8.setText(”TGSPPC: ” + (float)(TGSPPC) + ”s”);L2.setText(”Flujo Out: ” + (float)FlujoOut + ”a/s”);L18.setText(”Colocar sensor a: ” + Prorho + ”m”);L19.setText(”Tiempo a sensar: ” + Protheta + ”s”);L3.setText(”Sensor colocado a: ” + Rho + ”m”);L4.setText(”Sensando: ” + Theta + ”s”);sensorH.setLocation((int)(400 - Rho),400);sensorV.setLocation(400,(int)(400 - Rho));repaint();

}

// S E M A F O R O S G/** * Muestra las senales del semaforo dependiendo del tiempo y la vıa.* @param SemA Senal que controla la vıa horizontal.* @param SemH Muestra la senal del semaforo en la vıa horizontal.* @param SemB Senal que controla la vıa vertical.* @param SemV Muestra la senal del semaforo en la vıa vertical.* @param timer Segundo actual de la simulacion*/public void semaforosG(int SemA, JLabel SemH, int SemB, JLabel SemV, int timer) {

// Semaforo Via Horizontalif (SemA == 2)

SemH.setIcon(new ImageIcon(”imagenes/rojoN.png”));if (SemA == 1){

if (timer %2 == 0)SemH.setIcon(new ImageIcon(”imagenes/ambarN.png”));

elseSemH.setIcon(new ImageIcon(”imagenes/apagado.png”));

}if (SemA == 0)

SemH.setIcon(new ImageIcon(”imagenes/verdeN.png”));SemH.setLocation(350,420);SemH.setSize(35,85);SemH.setVisible(true);// Semaforo Via Vertical

146

Page 148: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

if (SemB == 0)SemV.setIcon(new ImageIcon(”imagenes/verdeH.png”));

if (SemB == 1){if (timer % 2 == 0)

SemV.setIcon(new ImageIcon(”imagenes/apagadoH.png”));else

SemV.setIcon(new ImageIcon(”imagenes/ambarH.png”));}if (SemB == 2)

SemV.setIcon(new ImageIcon(”imagenes/rojoH.png”));SemV.setLocation(420,350);SemV.setSize(85,35);SemV.setVisible(true);

}

// S W I T C H I N G ///** * Realiza el cambio de luces del semaforo inteligente* @param cambio Tiene valores booleanos para indicar el cambio de semaforo una vez que* se alcanzo el umbral theta y el tiempo mınimo de luz verde.* @param theta2 Numero de carros a detectar antes de poder permitir el paso de estos.* @param verdeMin Tiempo mınimo que durara la luz verde.* @return falso o verdadero*/public boolean swithing(boolean cambio, float theta2, int verdeMin) {

if (cambio) { //SEMAFORO VERTICALkV = CarWaitingV;if (kV >= theta2){

SemB = 2; SemA = 1;yellowSI–;if (yellowSI < 0) {

SemB = 2; SemA = 2;verdeSI–;if (yellowSI < -1)

SemB = 0; SemA = 2;if (verdeSI < 0) {

yellowSI = 3;verdeSI = verdeMin;cambio = false;kV = 0;CarWaitingV = 0;CarWaitingH = 0;

}}

}}else {//SEMAFORO HORIZONTAL

kH = CarWaitingH;if (kH >= theta2){

SemA = 2; SemB = 1;yellowSI–;if (yellowSI < 0) {

verdeSI–;SemA = 2; SemB = 2;if (yellowSI < -1)

SemA = 0; SemB = 2;if (verdeSI < 0) {

yellowSI = 3;

147

Page 149: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

verdeSI = verdeMin;cambio = true;kH = 0;CarWaitingH = 0;CarWaitingV = 0;

}}

}}return cambio;

}

// A P R E N D E R H O/*** Realiza la tarea de aprendizaje del parametro Rho del control Sotl-Phase para el semaforo dinamico.* @param t Instante de tiempo transcurrido en el sistema.* @param colaH Contiene la informacion de los carros que circulan por la vıa horizontal.* @param colaV Contiene la informacion de los carros que circulan por la vıa vertical.* @param conn Conexion a la base de datos.* @param registro Indice del registro requerido de la base de datos.*/public void aprendeRho(int t, Cola<Carro> colaH, Cola<Carro> colaV,

CNoperaciones conexion conn, int registro){if (t == 0){

try {FlujoIn = conn.obtenFlujo(registro);VerdeMin = conn.obtenVerdeMin(registro);tLuzVerde = VerdeMin;Rho = conn.obtenRho(registro);Prorho = Rho;Theta = conn.obtenTheta(registro);Protheta = Theta;verde = VerdeMin;actualizaPanel();

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}else {

if (t % 600 == 0){Prorho = Prorho + CoefApren * (Rho - Prorho);SigmaSys = (sumaSatisCarro - aux) / (numCarrosPasaron - AUX);if (NCP > numCarrosPasaron - AUX —— SigmaSysAnt > SigmaSys)

r =- r;aux = sumaSatisCarro;SigmaSysAnt = SigmaSys;NCP = numCarrosPasaron - AUX;AUX = numCarrosPasaron;Rho += r;if (Rho <= 7)

Rho = 7;actualizaPanel();

}if (t % 3600 == 0) {

satisfaccionSistemaDesp = sumaSatisCarro / numCarrosPasaron;double auxSatis = proSatisfaccionSys;

148

Page 150: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

auxSatis = auxSatis + CoefApren * (satisfaccionSistemaDesp - auxSatis);proSatisfaccionSys = auxSatis;double auxAutos = ProAutos;auxAutos = auxAutos + CoefApren * (numCarrosPasaron - auxAutos);ProAutos = auxAutos;if (ProAutos > FlujoIn * 7200.0)

auxAutos = FlujoIn * 7200.0;if (numCarrosPasaron >= auxAutos && satisfaccionSistemaDesp >= proSatisfaccionSys){

flujoSal = (int)ProAutos / 7200.0;ProFlujo = flujoSal;Rho = Prorho;if (Prorho - Rho > 0.5)

Rho += 1;int AuxProAutos = (int)(ProAutos);velPromSys = sumVelPromSystem / numCarrosPasaron;tPromDetenSys = sumTimeEspSystem / numCarrosPasaron;VPS = (float) (VPS + (CoefApren * ( velPromSys - VPS)));TEPS = (float) (TEPS + (CoefApren * ( tPromDetenSys - TEPS)));TGSPPC = (float)(410.0 / VPS + TEPS);try {

conn.guardaDatos(registro, (int) Theta, (float)Protheta, (float)Rho, (float)Prorho,AuxProAutos, (float) ProAutos, (float) FlujoIn, (float) ProFlujo, (float)VPS,(float)TEPS,(float)TGSPPC, VerdeMin, (float) ProLVmin, proSatisfaccionSys);

} catch (Exception e) {// TODO Bloque catch generado automaticamente

e.printStackTrace();}

}tPromDetenSys = 0;velPromSys = 0;numCarrosPasaron = 0;sumVelPromSystem = 0;sumTimeEspSystem = 0;sumaSatisCarro = 0;AUX = 0;aux = 0;colaH.VaciarCola(colaH);colaV.VaciarCola(colaV);

}}

}

// A P R E N D E P H I/*** Realiza la tarea de aprendizaje del parametro Phi del control Sotl-Phase para el semaforo dinamico.* @param t Instante de tiempo transcurrido en el sistema.* @param colaH Contiene la informacion de los carros que circulan por la vıa horizontal.* @param colaV Contiene la informacion de los carros que circulan por la vıa vertical.* @param conn Conexion a la base de datos.* @param registro Indice del registro requerido de la base de datos.*/public void aprendePhi(int t, Cola<Carro> colaH, Cola<Carro> colaV,

CNoperaciones conexion conn, int registro){if (t == 0){

try {FlujoIn = conn.obtenFlujo(registro);VerdeMin = conn.obtenVerdeMin(registro);

149

Page 151: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

tLuzVerde = VerdeMin;Rho = conn.obtenRho(registro);Prorho = Rho;Theta = conn.obtenTheta(registro);Protheta = Theta;verde = VerdeMin;sensorH.setLocation((int)(400 - Rho),400);sensorV.setLocation(400,(int)(400 - Rho));

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}else {

if (t % 600 == 0){ // Cada 10 minutosProLVmin = ProLVmin + CoefApren * (VerdeMin - ProLVmin);SigmaSys = (sumaSatisCarro - aux) / (numCarrosPasaron - AUX);if (NCP > numCarrosPasaron - AUX —— SigmaSysAnt > SigmaSys)

v =- v;aux = sumaSatisCarro;SigmaSysAnt = SigmaSys;NCP = numCarrosPasaron - AUX;AUX = numCarrosPasaron;VerdeMin += v;if (VerdeMin <= 5)

VerdeMin = 5;actualizaPanel();

}if (t % 3600 == 0) { // Cada hora

satisfaccionSistemaDesp = sumaSatisCarro / numCarrosPasaron;double auxSatis = proSatisfaccionSys;auxSatis=auxSatis + CoefApren * (satisfaccionSistemaDesp - auxSatis);proSatisfaccionSys = auxSatis;double auxAutos = ProAutos;auxAutos = auxAutos + CoefApren * (numCarrosPasaron - auxAutos);ProAutos = auxAutos;if (ProAutos > FlujoIn * 7200.0)

auxAutos = FlujoIn * 7200.0;if (numCarrosPasaron >= auxAutos && satisfaccionSistemaDesp >= proSatisfaccionSys){

flujoSal = (int)ProAutos / 7200.0;ProFlujo = flujoSal;VerdeMin = (int) ProLVmin;if (ProLVmin - VerdeMin > 0.5)

VerdeMin += 1; int AuxProAutos = (int)(ProAutos);velPromSys = sumVelPromSystem / numCarrosPasaron;tPromDetenSys = sumTimeEspSystem / numCarrosPasaron;VPS = (float) (VPS + (CoefApren * ( velPromSys - VPS)));TEPS = (float) (TEPS + (CoefApren * ( tPromDetenSys - TEPS)));TGSPPC = (float)(410.0 / VPS + TEPS);try {

conn.guardaDatos(registro, (int) Theta, (float)Protheta, (float)Rho, (float)Prorho,AuxProAutos, (float) ProAutos, (float) FlujoIn, (float) ProFlujo, (float)VPS,(float)TEPS,(float)TGSPPC, VerdeMin, (float) ProLVmin, proSatisfaccionSys);

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}

150

Page 152: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

}tPromDetenSys = 0;velPromSys = 0;numCarrosPasaron = 0;sumVelPromSystem = 0;sumTimeEspSystem = 0;sumaSatisCarro = 0;AUX = 0;aux = 0;colaH.VaciarCola(colaH);colaV.VaciarCola(colaV);

}}

}

// A P R E N D E T H E T A/*** Realiza la tarea de aprendizaje del parametro Theta del control Sotl-Phase para el semaforo dinamico.* @param t Instante de tiempo transcurrido en el sistema.* @param colaH Contiene la informacion de los carros que circulan por la vıa horizontal.* @param colaV Contiene la informacion de los carros que circulan por la vıa vertical.* @param conn Conexion a la base de datos.* @param registro Indice del registro requerido de la base de datos.*/public void aprendeTheta(int t, Cola<Carro> colaH, Cola<Carro> colaV,

CNoperaciones conexion conn, int registro){if (t == 0){ // Carga datos de la base de conocimientos.

try {FlujoIn=conn.obtenFlujo(registro);VerdeMin=conn.obtenVerdeMin(registro);tLuzVerde=VerdeMin;Rho = conn.obtenRho(registro);Prorho = Rho;Theta = conn.obtenTheta(registro);Protheta = Theta;verde = VerdeMin;sensorH.setLocation((int)(400 - Rho),400);sensorV.setLocation(400,(int)(400 - Rho));

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}else {

if (t % 600 == 0){ //Cada 10 minutosProtheta = Protheta + CoefApren * (Theta - Protheta);SigmaSys = (sumaSatisCarro - aux) / (numCarrosPasaron - AUX);if (NCP > numCarrosPasaron - AUX —— SigmaSysAnt > SigmaSys) {

z =- z;}aux = sumaSatisCarro;SigmaSysAnt = SigmaSys;NCP = numCarrosPasaron - AUX;AUX = numCarrosPasaron;Theta += z;if (Theta <= 0)

Theta = 1;

151

Page 153: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

actualizaPanel();}if (t % 3600 == 0) { // Cada hora

satisfaccionSistemaDesp = sumaSatisCarro/numCarrosPasaron;double auxSatis = proSatisfaccionSys;auxSatis = auxSatis + CoefApren * (satisfaccionSistemaDesp - auxSatis);proSatisfaccionSys = auxSatis;double auxAutos = ProAutos;auxAutos = auxAutos + CoefApren * (numCarrosPasaron - auxAutos);ProAutos = auxAutos;if (ProAutos > FlujoIn * 7200.0)

auxAutos = FlujoIn * 7200.0;if (numCarrosPasaron >= auxAutos && satisfaccionSistemaDesp >= proSatisfaccionSys){

flujoSal = (int)ProAutos / 7200.0;ProFlujo = flujoSal;Theta = (int) Protheta;if (Protheta - Theta > 0.5)

Theta += 1;int AuxProAutos = (int)(ProAutos);velPromSys = sumVelPromSystem / numCarrosPasaron;tPromDetenSys = sumTimeEspSystem / numCarrosPasaron;VPS = (float) (VPS + (CoefApren * ( velPromSys - VPS)));TEPS = (float) (TEPS + (CoefApren * ( tPromDetenSys - TEPS)));TGSPPC = (float)(410.0/VPS+TEPS);try {

conn.guardaDatos(registro, (int) Theta, (float)Protheta, (float)Rho, (float)Prorho,AuxProAutos, (float) ProAutos, (float) FlujoIn, (float) ProFlujo, (float)VPS,(float)TEPS,(float)TGSPPC, VerdeMin, (float) ProLVmin, proSatisfaccionSys);

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}tPromDetenSys = 0;velPromSys = 0;numCarrosPasaron = 0;sumVelPromSystem = 0;sumTimeEspSystem = 0;sumaSatisCarro = 0;AUX = 0;aux = 0;colaH.VaciarCola(colaH);colaV.VaciarCola(colaV);

}}

}

// A P R E N D E/*** Realiza la tarea de aprendizaje de los parametros rho, theta y phi del control Sotl-Phase* para el semaforo dinamico.* @param t Instante de tiempo transcurrido en el sistema.* @param colaH Contiene la informacion de los carros que circulan por la vıa horizontal.* @param colaV Contiene la informacion de los carros que circulan por la vıa vertical.* @param conn Conexion a la base de datos.* @param registro Indice del registro requerido de la base de datos.*/

152

Page 154: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

public void aprende(int t, Cola<Carro> colaH, Cola<Carro> colaV,CNoperaciones conexion conn, int registro){

if (t == 0){ // Carga datos de la base de conocimientos.try {

FlujoIn = conn.obtenFlujo(registro);VerdeMin = conn.obtenVerdeMin(registro);tLuzVerde = VerdeMin;Rho = conn.obtenRho(registro);Prorho = Rho;Theta = conn.obtenTheta(registro);Protheta = Theta;//thetaIni = (int) Theta;verde = VerdeMin;registro++;

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}else {

if (t % 1800 == 600) { // En los primeros 10 minutos de 30, aprendizaje de Theta.if (ProFlujo / FlujoIn > 0.9) // Afina el coeficiente de aprendizaje.

CoefApren = 0.03;// Pronostico parcial de ThetaProtheta = Protheta + CoefApren * (Theta - Protheta);// Satisfaccion parcial del sistemaSigmaSys = (sumaSatisCarro - aux) / (numCarrosPasaron - AUX);// Condicion de ejemplo positivoif (NCP > numCarrosPasaron - AUX —— SigmaSysAnt > SigmaSys) {

z =- z; Theta += z;}//Actualizacion de variablesaux = sumaSatisCarro;SigmaSysAnt = SigmaSys;NCP = numCarrosPasaron - AUX;AUX = numCarrosPasaron;if (Theta <= 1) // Verifica valor mınimo permitido

Theta = 1;Rho += r;

}if (t % 1800 == 1200) { // En los segundos 10 minutos de 30, aprendizaje de Rho.

if (ProFlujo / FlujoIn > 0.9)CoefApren = 0.03;

Prorho = Prorho + CoefApren * (Rho - Prorho); // Pronostico parcial de RhoSigmaSys = (sumaSatisCarro - aux) / (numCarrosPasaron - AUX);if (NCP > numCarrosPasaron - AUX —— SigmaSysAnt > SigmaSys) {

r =- r; Rho += r;}//Actualizacion de variablesaux = sumaSatisCarro;SigmaSysAnt = SigmaSys;NCP = numCarrosPasaron-AUX;AUX = numCarrosPasaron;if (Rho <= 7) // Verifica valor mınimo permitido

Rho = 7;VerdeMin += v;

}

153

Page 155: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

if (t % 1800 == 0) { // En los terceros 10 minutos de 30, aprendizaje de Phi.if (ProFlujo / FlujoIn > 0.9)

CoefApren = 0.03;// Pronostico parcial de PhiProLVmin = ProLVmin + CoefApren * (VerdeMin - ProLVmin);SigmaSys = (sumaSatisCarro - aux) / (numCarrosPasaron - AUX);if (NCP > numCarrosPasaron - AUX —— SigmaSysAnt > SigmaSys) {

v =- v; VerdeMin += v;}//Actualizacion de variablesaux = sumaSatisCarro;SigmaSysAnt = SigmaSys;NCP = numCarrosPasaron - AUX;AUX = numCarrosPasaron;if (VerdeMin <= 5)

VerdeMin = 5;Theta += z;

}if (t % 3600 == 0) { // Cada hora

//Satisfaccion del SistemasatisfaccionSistemaDesp = sumaSatisCarro/numCarrosPasaron;double auxSatis = proSatisfaccionSys;//Pronostico de Satisfaccion del SistemaauxSatis = auxSatis + CoefApren * (satisfaccionSistemaDesp - auxSatis);proSatisfaccionSys = auxSatis;double auxAutos = ProAutos;//Pronostico de Flujo de Salida del sistemaauxAutos = auxAutos + CoefApren * (numCarrosPasaron - auxAutos);ProAutos = auxAutos;if (ProAutos > FlujoIn * 7200.0) // Mejoro el flujo de salida respectoal de entrada?

auxAutos = FlujoIn * 7200.0;//Mejoro el Flujo de salida y la satisfaccion del sistema?if (numCarrosPasaron >= auxAutos && satisfaccionSistemaDesp >= proSatisfaccionSys){

flujoSal = (int)ProAutos / 7200.0;//if (flujoSal >= ProFlujo ) {ProFlujo = flujoSal;// Aplicando pronosticos para mejorarlos.Theta = (int) Protheta;if (Protheta - Theta > 0.5)

Theta += 1;Rho = (int)Prorho;if (Prorho - Rho > 0.5)

Rho += 1;VerdeMin = (int)ProLVmin;if (ProLVmin - VerdeMin > 0.5)

VerdeMin += 1;if (VerdeMin <= 5)

VerdeMin = 5;if (Rho <= 7)

Rho = 7;if (Theta <= 1)

Theta = 1;int AuxProAutos = (int)(ProAutos);// Calculo de datos..velPromSys = sumVelPromSystem / numCarrosPasaron;tPromDetenSys = sumTimeEspSystem / numCarrosPasaron;VPS = (float) (VPS + (CoefApren * ( velPromSys - VPS)));

154

Page 156: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

TEPS = (float) (TEPS + (CoefApren * ( tPromDetenSys - TEPS)));TGSPPC = (float)(410.0/VPS+TEPS);// guardando en la base de conocimiento.try {

conn.guardaDatos(registro, (int) Theta, (float)Protheta, (float)Rho, (float)Prorho,AuxProAutos, (float) ProAutos, (float) FlujoIn, (float) ProFlujo, (float)VPS,(float)TEPS,(float)TGSPPC, VerdeMin, (float) ProLVmin, proSatisfaccionSys);

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}// Re-Inicia valores de variables auxiliares y colas.tPromDetenSys = 0;velPromSys = 0;numCarrosPasaron = 0;sumVelPromSystem = 0;sumTimeEspSystem = 0;sumaSatisCarro = 0;AUX = 0;aux = 0;colaH.VaciarCola(colaH);colaV.VaciarCola(colaV);}

}actualizaPanel();

}

// S I M U L A/*** Sirve para realizar la comparacion de rendimiento entre los semaforos (estatico y dinamico).* @param t Instante de tiempo transcurrido en el sistema.* @throws Exception*/public void simula(int t, CNoperaciones conexion conn) throws Exception{

if (t == 0){ //Inicia con el Semaforo Estatico.// Carga el flujo de entrada.FlujoIn = conn.obtenFlujo(registro);// Carga los mejores valores obtenidos para la luz verde.//VerdeMin = conn.obtenVerdeEst(registro);VerdeMin = 27;// Selecciona el modo de uso ”2” (Simular con Semaforo Estatico).semEst.doClick();actualizaPanel();

}else {

if (t % 50400 == 25200) { //Inicia con el Semaforo Dinamico.// Carga los parametros aprendidos de la base de conocimiento del semaforo inteligente.FlujoIn = conn.obtenFlujo(registro);VerdeMin = conn.obtenVerdeMin(registro);tLuzVerde = VerdeMin;Rho = conn.obtenRho(registro);Prorho = Rho;Theta = conn.obtenTheta(registro);Protheta = Theta;//thetaIni = (int) Theta;verde = VerdeMin;

155

Page 157: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// Selecciona el modo de uso ”1” (Simular con Semaforo Inteligente).semInt.doClick();guardainfo(t, conn);actualizaPanel();

}if (t % 50400 == 0) { //Inicia con el Semaforo Estatico.

semEst.doClick();guardainfo(t, conn);registro++;//VerdeMin = conn.obtenVerdeEst(registro);VerdeMin = 27;FlujoIn = conn.obtenFlujo(registro);actualizaPanel();

}}// Termina el simulador?if (registro == 25)

apagado = true;}

// G U A R D A I N F O/*** Manda la informacion a la base de datos donde se almacenan los resultados obtenidos para la* comparacion de rendimiento del sistema dependiendo del tipo de semaforo (dinamico o estatico).* @param t Instante de tiempo transcurrido en el sistema.*/public void guardainfo(int t, CNoperaciones conexion conn){

if (uso == 1) {//Termino semaforo Estaticotry {

conn.guardaRendSE(registro, (float)TGSPPC, (float) FlujoOut, (float) satisfaccionSistemaTot);} catch (Exception e) {

// TODO Bloque catch generado automaticamentee.printStackTrace();

}}if (uso == 2) { //Termino Semaforo Dinamico

try {conn.guardaRendSD(registro, (float)TGSPPC, (float) FlujoOut, (float) satisfaccionSistemaTot);

} catch (Exception e) {// TODO Bloque catch generado automaticamentee.printStackTrace();

}}// Reinicia las variables consideradas para el analisis.TGSPPC = 0;FlujoOut = 0;satisfaccionSistemaTot = 0;

}}

156

Page 158: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

C.4. Clase CNoperaciones conexion

package mike.ram.mysql;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;

/*** Conexion con MySQL para leer, escribir y actualizar la base de conocimiento* para el aprendizaje del semaforo inteligente, y mas.

* @author Miguel Angel Ramırez Gomez*/public class CNoperaciones conexion {

Connection conn = null;/** *Inicializa la conexion*/public CNoperaciones conexion(){

generaConexion();{

// G E N E R A R C O N E X I O N/** Realiza la conexion con la base de datos de MySQL*/public void generaConexion(){

try{

String userName = ”root”;String password = ””;String url = ”jdbc:mysql://localhost/proyecto”;//Uso del driver (jar) anadido al proyecto para establecer conexionClass.forName (”com.mysql.jdbc.Driver”).newInstance ();//Se agrega el driver para establecer la conexion con la BDDriverManager.registerDriver(new org.gjt.mm.mysql.Driver());//En este punto la conexion ya esta establecida.conn = DriverManager.getConnection (url, userName, password);System.out.println (”Conexion establecida con la BD”);

}catch (Exception e){

System.err.println (”No se puede conectar con el servidor”);}

}

// C I E R R A C O N E X I O N/** Cierra la conexion con la base de datos de MySQL*/public void cierraConexion(){

try {conn.close ();System.out.println (”Conexion terminada”);

}catch (Exception e) { /* ignore close errors */ }

}

// O B T E N F L U J O/*** Obtiene el flujo de entrada de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.

157

Page 159: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

* @return flujo.* @throws Exception*/public double obtenFlujo(int registro) throws Exception{

double flujo = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT flujo FROM semInteligente WHERE id = ” + registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

flujo = rs.getDouble(”flujo”);}rs.close();s.close();System.out.println (”Flujo = ” + flujo);return flujo;

}

// O B T E N V P S/*** Obtiene la velocidad promedio del sistema (VPS) de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return VPS.* @throws Exception*/public double obtenVPS(int registro) throws Exception{

double VPS = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT VPS FROM semInteligente WHERE id = ” + registro);ResultSet rs = s.getResultSet();if (rs.first()==true){

VPS = rs.getDouble(”VPS”);}rs.close();s.close();System.out.println (”VPS = ” + VPS);return VPS;

}

// O B T E N T E P S/*** Obtiene el tiempo de espera promedio del sistema (TEPS) de la tabla semInteligente de la BD* proyecto.* @param registro Indica la posicion dentro de la tabla.* @return TEPS.* @throws Exception*/public double obtenTEPS(int registro) throws Exception{

double TEPS = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT TES FROM semInteligente WHERE id = ” + registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

TEPS = rs.getDouble(”TES”);}rs.close();s.close();System.out.println (”TEPS = ” + TEPS);

158

Page 160: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

return TEPS;}

// O B T E N T H E T A/*** Obtiene el tiempo de la suma de los tiempos de espera de los autos detenidos detras del* semaforo (Theta)* de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return Theta.* @throws Exception*/public float obtenTheta(int registro) throws Exception{

float Theta = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT tetha FROM semInteligente WHERE id = ” + registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

Theta = rs.getFloat(”tetha”);}rs.close();s.close();System.out.println (”Theta = ” + Theta);return Theta;

}

// O B T E N P R O T H E T A/*** Obtiene el tiempo pronosticado para Theta de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return Protheta.* @throws Exception*/public double obtenProTheta(int registro) throws Exception{

double Protetha = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT ProTetha FROM semInteligente WHERE id = ” + registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

Protetha = rs.getDouble(”ProTetha”);}rs.close();s.close();System.out.println (”Protetha = ” + Protetha);return Protetha;

}

// O B T E N R H O/*** Obtiene la distancia del sensor (Rho) de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return Rho.* @throws Exception*/public int obtenRho(int registro) throws Exception{

int rho = 0;Statement s = conn.createStatement();

159

Page 161: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

s.executeQuery (”SELECT rho FROM semInteligente WHERE id = ” + registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

rho = rs.getInt(”rho”);}rs.close();s.close();System.out.println (”rho = ” + rho);return rho;

}

// O B T E N P R O A U T O S/*** Obtiene el flujo de salida (autos/s) de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return ProAutos.* @throws Exception*/public double obtenProAutos(int registro) throws Exception{

double ProAutos = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT ProAutos FROM semInteligente WHERE id = ”+registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

ProAutos = rs.getDouble(”ProAutos”);}rs.close();s.close();System.out.println (”ProAutos = ” + ProAutos);return ProAutos;

}

// O B T E N P R O F L U J O/*** Obtiene el flujo de salida pronosticado (autos/s) de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return ProFlujo.* @throws Exception*/public double obtenProFlujo(int registro) throws SQLException {

double ProFlujo = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT ProFlujo FROM semInteligente WHERE id = ”+registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

ProFlujo = rs.getDouble(”ProFlujo”);}rs.close();s.close();System.out.println (”ProFlujo = ” + ProFlujo);return ProFlujo;

}

// O B T E N R V E R D E M I N/*** Obtiene el tiempo mınimo de la luz verde (verdeMin) de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.

160

Page 162: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

* @return verdeMin.* @throws Exception*/public int obtenVerdeMin(int registro) throws SQLException {

int verdeMin = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT verdeMin FROM semInteligente WHERE id = ”+registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

verdeMin = rs.getInt(”verdeMin”);}rs.close();s.close();System.out.println (”VerdeMin = ” + verdeMin);return verdeMin;

}

// O B T E N R V E R D E E S T/*** Obtiene el tiempo mınimo de la luz verde (verdeMin) de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return verdeMin.* @throws Exception*/public int obtenVerdeEst(int registro) throws SQLException {

int verdeMin = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT LuzVerde FROM semEstatico WHERE id = ”+registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

verdeMin = rs.getInt(”LuzVerde”);}rs.close();s.close();System.out.println (”LuzVerde Estatico = ” + verdeMin);return verdeMin;

}

// O B T E N S A T I S F A C C I O N/*** Obtiene el tiempo mınimo de la luz verde (verdeMin) de la tabla semInteligente de la BD proyecto.* @param registro Indica la posicion dentro de la tabla.* @return sat.* @throws Exception*/public double obtenSatisfaccion(int registro) throws SQLException {

double Sat = 0;Statement s = conn.createStatement();s.executeQuery (”SELECT Satisfaccion FROM semInteligente WHERE id = ”+registro);ResultSet rs = s.getResultSet();if (rs.first() == true){

Sat = rs.getDouble(”satisfaccion”);}rs.close();s.close();System.out.println (”satisfaccion = ” + Sat);return Sat;

161

Page 163: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

}

// G U A R D A D A T O S/*** Actualiza los datos con los obtenidos durante el aprendizaje.* @param registro Indica el registro a actualizar.* @param tetha* @param ProTetha* @param rho* @param ProRho* @param autos* @param ProAutos* @param flujo* @param ProFlujo* @param VPS* @param TES* @param TGSPPS* @param VerdeMin* @param ProLVmin* @param Satisfaccion* @throws Exception*/public void guardaDatos(int registro, int tetha, float ProTetha, float rho, float ProRho,

int autos, float ProAutos, float flujo, float ProFlujo, float VPS, float TES,float TGSPPS, int VerdeMin, float ProLVmin, double Satisfaccion) throws Exception{

Statement s = conn.createStatement();s.executeUpdate(”UPDATE semInteligente SET tetha=”’ + tetha + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET ProTetha=”’ + ProTetha + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET rho=”’ + rho + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET ProRho=”’ + ProRho + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET autos=”’ + autos + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET ProAutos=”’ + ProAutos + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET flujo=”’ + flujo + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET ProFlujo=”’ + ProFlujo + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET VPS=”’ + VPS + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET TES=”’ + TES + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET TGSPPS=”’ + TGSPPS + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET verdeMin=”’ + VerdeMin + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET ProLVm=”’ + ProLVmin + ””’ + ”WHERE id = ”+registro);s.executeUpdate(”UPDATE semInteligente SET Satisfaccion=”’ + Satisfaccion+ ””’ + ”WHERE id = ”+registro);s.close();

}

162

Page 164: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// G U A R D A D A T O S S E M E S T/** Inserta el conjunto de valores obtenidos con el semaforo estatico en la tabla semEstatico.*/public void guardaDatosSemEst(float flujo, float flujoSal, int autos, float VPS, float TES,

float TGSPPS, String CONFIG) throws SQLException{Statement s = conn.createStatement();s.executeUpdate(”INSERT INTO semEstatico (flujo, flujoSal, autos, VPS, TES, TGSPPS, CONFIG)VALUES (”’+ flujo + ”’, ”’ + flujoSal + ”’, ”’ + autos + ”’, ”’ + VPS + ”’, ”’ + TES + ”’,”’+ TGSPPS +”’, ”’+ CONFIG +”’)”);s.close();

}

// G U A R D A R E N D S E/*** Guarda los datos necesarios para ver el rendimiento del Semaforo Estatico.* @param registro Indica el registro a actualizar.* @param TGSPPS SE Tiempo general del sistema para pasar el semaforo o crucero.* @param FlujoOut SE Numero de autos por segundo que pasan el crucero.* @param Satisfaccion SE Satisfaccion del sistema utilizando el Semaforo Estatico.* @throws Exception*/public void guardaRendSE(int registro, float TGSPPS SE, float FlujoOut SE,

float Satisfaccion SE) throws Exception{Statement s = conn.createStatement();s.executeUpdate(”UPDATE rendimiento SET TGSPPS SE=”’ + TGSPPS SE + ””’ + ”WHERE idrendimiento = ”+registro);s.executeUpdate(”UPDATE rendimiento SET FlujoOut SE=”’ + FlujoOut SE + ””’ + ”WHERE idrendimiento = ”+registro);s.executeUpdate(”UPDATE rendimiento SET Satisfaccion SE=”’ + Satisfaccion SE + ””’ + ”WHERE idrendimiento = ”+registro);s.close();

}

// G U A R D A R E N D S D/*** Guarda los datos necesarios para ver el rendimiento del Semaforo Dinamico.* @param registro Indica el registro a actualizar.* @param TGSPPS SE Tiempo general del sistema para pasar el semaforo o crucero.* @param FlujoOut SE Numero de autos por segundo que pasan el crucero.* @param Satisfaccion SE Satisfaccion del sistema utilizando el Semaforo Dinamico.* @throws Exception*/

public void guardaRendSD(int registro, float TGSPPS SD, float FlujoOut SD,float Satisfaccion SD) throws Exception{

Statement s = conn.createStatement();s.executeUpdate(”UPDATE rendimiento SET TGSPPS SD=”’ + TGSPPS SD + ””’ + ”WHERE idrendimiento = ”+registro);s.executeUpdate(”UPDATE rendimiento SET FlujoOut SD=”’ + FlujoOut SD + ””’ + ”WHERE idrendimiento = ”+registro);s.executeUpdate(”UPDATE rendimiento SET Satisfaccion SD=”’ + Satisfaccion SD + ””’ + ”

WHERE idrendimiento = ”+registro);s.close();

}}

163

Page 165: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

C.5. Clase Cola

package mike.ram.datos;import java.util.Vector;

/*** Define la Cola que contendra la informacion del Tipo de objeto* que se le pase como parametro.* @param <Tipo> Objeto que se pasa como parametro.*/public class Cola <Tipo> {

private int size;public Vector <Tipo> elementos;

// C O L A/** *Inicializa la cola. */public Cola() {

super();elementos = new Vector<Tipo>();size = 0;

}

// C O L A V A C I A/*** Indica si la cola es vacia.* @return Verdadero o Falso.*/public boolean colaVacia () {

if ( size == 0 )return true;

return false;}

// V A C I A R C O L A/*** Vacia la Cola X* @param X Cola que deseamos vaciar*/public void VaciarCola(Cola<Tipo> X){

while (!X.colaVacia())X.desencolar();

}

// G E T S I Z E/*** Obtiene el tamano de la cola.* @return Tamano de la cola*/public int getSize() {

return (size);}

// E N C O L A R/** * Agrega elemento a la cola. */public void encolar ( Tipo o ) {

elementos.add(size++, o);}

164

Page 166: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

// D E S E N C O L A R/*** Saca el objeto de la cola.* @return Objeto sacado de la cola.*/public Tipo desencolar () {

Tipo retorno;try {

if(colaVacia())throw new ErrorColaVacia();

else {retorno = elementos.get(0);elementos.remove(0);size–;return retorno;

}} catch(ErrorColaVacia error) {

System.out.println(“ERROR: la cola esta vacıa”);return null;

}}

}

// E R R O R C O L A V A C I A/*** Define el error de cola vacıa.* @author towy*/@SuppressWarnings(”serial”)class ErrorColaVacia extends Exception {

public ErrorColaVacia() {super();

}}

165

Page 167: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Apendice D

Distancia de FrenadoSeguro (Dfs)

Para el programa las unidades de longitud son el metro(m) y de tiempo elsegundo(s), ası que todo estara definido en este contexto. Velocidad V (m/s),Posicion X(m) y Aceleracion A(m/s2).

La Distancia de Frenado Seguro propuesta es simplemente la suma de ladistancia de frenado mas la distancia de seguridad.

Distancia de frenado: La definimos como la distancia en metros, necesariapara detener el carro al accionar los frenos, con la aproximacion de 0.5mpor Km/s.

Df = 0.5V (3.6) = 1.8V

Factor de Conversion 3.6s/m.

Distancia de seguridad: La definimos como la distancia recorrida en metros,del momento en que percibimos que hay que frenar y reaccionar paraaplicar los frenos. Recordando que el tiempo de percepcion (tp)y el tiempode reaccion (tr) es de 0.75s

Ds = (tp + tr)V = 2TpV = 2(0.75)V = 1.5V

Distancia de frenado seguro:

Dfs = Df +Ds = 1.8V + 1.5V

Dfs = 3.3V

166

Page 168: DIVISION DE CIENCIAS B´ ASICAS E INGENIER´ ´IA ...148.206.53.84/tesiuami/UAMI15904.pdf · apoyo para la realizacio´n de el presente trabajo. 1 ... Clase Semaforo ... Mejoramiento

Bibliografıa

[1] NewScientist Tech Web-Site http://www.newscientist.com/article/dn13306

[2] Rafael Cal y Mayor I. C.: Ingenieria de TransitoRepresentaciones y Servicios de Ingenieria S. A. Mexico, 1972.

[3] Profesor en Linea http://www.profesorenlinea.cl/fisica/Detencion_de_movil.html

[4] CEA Seguridad Vial http://www.seguridad-vial.net/distancias.asp

[5] E. A LPAYDIN: Introduction to Machine LearningMassachusetts Institute of Technology, 2004.

[6] Tom M. Mitchell: Machine LearningMcGraw-Hill, 1997.

[7] Carlos Gershenson: Design and Control of Self-organizing SystemsMexico City Boston VicosaMadrid Cuernavaca BeijingCopIt ArXives, 2007.

167