/ ** comentario de peti: OPINEN ALGO!! **/
chicos creo este archivo asi vamos agragando algunos avances del proyecto..
Cuando se agregan datos los pongamos en rojo asi los encontramos de toke :p
Dale ;)
Proyecto de IA:
Objetivo: Encontrar el mejor camino (con respecto a tiempo) en una ciudad real desde un origen y destino brindado por el usuario haciendo distintas combinaciones te recorridos en colectivos o a pie.
Alcances:
Desde que el usuario ingresa una interseccion de calles origen y otra destino hasta que el sistema devuelve la mejor forma de llegar hasta alli.
A tener en cuenta:
* Realizar recorridos de colectivos
* Generador de baches al azar (?) /** Comentario de Nico: me parece medio al pedo **/ /** Comentario de peti: lo lei en el libro de IA, pero posta q es al pedo **/
* Detectar densidad del trafico en distintas calles
* Detectar Espera en Paradas de colectivos y cantidad de gente
* REAS (Rendimiento, Entorno. Actuadores, Sensores)
* Velocidad media a pie, y velocidad media de los colectivos. Se puede hacer algo simple, o aplicar leyes de fisica (aceleracion, velocidad inicial, velocidad final, etc.)
Cosas que hay q hacer:
* Agregar sentidos a las calles (ya esta)
* Agregar recorridos de colectivos (ya esta)
* Agregar paradas de colectivos en mapa (ya esta)
* Agregar costos de calles en mapa
* Estaría bueno ir haciendo un Diagrama de Clases ( se hace ? )
* Programar :p (En proceso despues publico el source, si alguien conoce alguna pagina para hacerlo avisar!)
Estructura de datos:
Por ejemplo:
Para ir de la interseccion de la calle 0 y de la calle 3, hasta la calle 0 y 5, primero se buscarían todas las alternativas de los caminos posibles, uno sería el recorrido de la calle 03-04 y 04-05.
Entonces la suma de las 2 calles seria el costo de tiempo total.
Algo asi seria? o sea suponte que pasa por esa parte de la calle, que tomamos como costo ? el promedio (4) o por la parte que pasa (1), porque se supone que, mientras el tiempo pasa, la densidad cambia, es dinamica.
No se si conviene tener en cuenta una variable "densidad de trafico", estaria bueno hacer como este applet y que la tardanza de los colectivos dependa de la cantidad de autos que hay. Y eso ayudaria a medir tambien
el tiempo que se tarda en cruzar una calle si es muy transitada..
Tambien tendriamos que utilizar semaforos, si no va a ser imposible cruzar una calle si hay mucho trafico..
1) El link del applet no anda
2) Necesitamos sabes con anticipacion que bondi va a tomar, si tenemos 2 bondis que recorren 3 calles y llegan al mismo lugar necesitamos elegir el más rápido dependiendo del tráfico de las calles que recorren. Pienso yo, otra cosa, los numeros q puse pueden representar la cantidad de vehiculos en cierto momento
Con respecto a la 2) Despues lo pensé bien y tenes razon.
TIREN IDEAS PLSSSSSSS!!
prototipo de interfaz muy prmitivo, pero aporta. Para ir adelantando...
¿Que hay hasta el momento?
Por ahora tenemos una lista enlazada donde se encuentran los grafos de los caminos de un mapa con sus respectivos costos y demas.
Para acceder a cada lista se hace a través de una tabla Hash que directamente con el nombre accedemos a la lista enlazada en tiempo constante (es el mejor tiempo).
En este momento estoy haciendo una función de búsqueda por anchura para encontrar el camino más corto, despues a esa misma función le podemos agragar heurística para hacer otro algoritmo más optimizado.
Luciano.
luciano:
Tenemos un Objeto que se llama Calle con las variables:
public String ID; // nombre de interseccion
public double distanciaMinima = Double.POSITIVE_INFINITY; //sirve para calcular el camino mas corto
public Calle anterior; // sirve para calcular el camino mas corto
public Conecciones[] adyacencias; // colección de intersecciones que llega la actual
otro objeto es Conecciones con las variables:
public final Calle vertice; // otra intersección donde llega la actual.
public final double costo; // el costo (tiempo) en llegar a la siguiente
Tenemos un arrego Calle[] donde agregamos todos los vértices pero en realidad lo más óptimo sería hacerlo con una tabla Hasha así aseguramos un tiempo constante.
Ya tengo un algoritmo de Dijkstra que recorre los camino y obtine el más óptimo.
Cuando tenga el código y funcione se los comparto, me esta tirando un error raro que ya lo solucionaré
Fotos del proyecto:
http://picasaweb.google.com/LucianoDiGiuseppe/ProyectoIA
Libro de IA (ingles):
http://rapidshare.com/files/102481823/26h8ak
Paginas interesantes de prgramacion:
http://www-cs-students.stanford.edu/~amitp/gameprog.html#paths
http://theory.stanford.edu/~amitp/GameProgramming/References.html
probando 1 2 3
No hay comentarios:
Publicar un comentario