viernes, 25 de noviembre de 2011

Construyendo herramientas

Para la fase 3 de laboratorio de Programación de Sistemas adaptativos, nos hemos topado con un problema de herramientas, nos fué difícil encontrar alguna que hiciera en Ubuntu la funcionalidad que hace Objectmarker(el cual no pudimos correr en Ubuntu), es poreso que nos dimos un pequeño tiempo para programar algo que lo hiciera.
Para quienes no saben la funcionalidad de la herramienta es tener alguna imágen en donde sale el objeto a identificar, de ahí encerrar en un cuadro y/u obtener las coordenadas de la parte superior izquierda de dicho rectángulo, y el largo y ancho del mismo.

Lenguajes utilizados:

Python: Para hacer el script que renombre todas las imágenes en formato *.jpg, esto se puede modificar si desean aceptar más formatos de imágenes.

JavaScript: Utilizado para hacer en el navegador la interfaz con Canvas de Html5 y obtener las coordenadas.

Script en python para renombrar:



El html:



Parte del JavaScript:





Es importante decir que el javascript empieza leyendo imágenes que van del 0.jpg a cualquier número(como lo hace el script). Si quiere por ejemplo que empieze del 300.jpg tendrá que modificar la variable "cont" global que se declara al inicio en javascript, Y para tener las imágenes nombradas del 300 en adelante o del 0 o cualquier numero en el script de Python se debe modificar la variable "empieza".
Los scripts, el html y el css DEBEN de estar en la misma carpeta.



Aquí muestro como se ve en el navegador:





Descargas:

renombrar.py
estilo.css

imagenes.js
imagenes.html

martes, 16 de agosto de 2011

Tarea 1: Laboratorio

Video demostrativo





Dibujo de la intersección

Sentidos de las calles
Posibles flujos de tránsito entre carriles.

Matriz de conflictos de flujo

Posibles asignaciones conjuntas.


Variables
Largo de cola en carril.
Tiempo de espera del carril, depende de cuantos autos tiene en la fila.

Asignación de tiempo verde
Ciclo fijo:




Ciclo con "optimización"
Se agregan 15 segundos más a la combinacion de autos que contenga un carril con más de 20 coches en espera.

Herramientas
Python(lógica).
Python-Tk(gráficos).

Entradas
Numeros de carros aleatorios parametrizado según carril. Es decir le hemos dado una probabilidad de 70 a los carriles de más flujo y 30 a los de menos flujo. Entendiendo por los de menos flujo los que dan vuelta a su derecha y los de más los que se siguen derecho.
Ciclos de semaforo.

Salidas
Numero de carros en espera.
Numero de carros que pasaron.


Casos de prueba
Horas pico. Tenemos predeterminado que pase un carro cada 0.3 segundos. En esta prueba aumentamos a un carro cada 0.20.
Resultado: Se congestionan más pronto el carril F, pero el tiempo de optimización compensa el tiempo cuando es el turno del F.


Mas congestiones en un carril secundario que en principales. Predeterminadamente tenemos que entren con un 60% más de probabilidad a los carriles que van derecho('b','d','f','h'), y con un 40% a los carriles que dan vuelta('a','c','e','g').
Para esta prueba damos probabilidad 60% a los que dan vuelta y 40% a los que no dan vuelta.
Resultado: Sigue funcionando bien ya que el algoritmo de optimización compensa el tiempo en los carriles de vuelta.

Visualización
Gráficos animados.



martes, 9 de agosto de 2011

Proyecto

Sandra Cecilia Urbina Coronado 1413021
Roberto Carlos Martínez Moreno 1451473
Juan Carlos Espinosa Ceniceros 1535012