SEMFORO INTELIGENTE
INTEGRANTES
FREDDY FERNANDO OJEDA POMA
INTRODUCCIN
Los agentes de software han mostrado una nueva forma de trabajar con computadores, permitiendo delegar en un programa (el agente) ciertas tareas que, de otra forma, solamente podran hacer los humanos. En algunos casos, puede tratarse simplemente de tareas repetitivas, pero en otros, puede ser una solucin a problemas complejos. En este trabajo analizamos la posibilidad de emplear un agente semforo cuya funcin principal es facilitar el control del trnsito de vehculos y peatones, de manera de que pasen alternadamente a travs de la interseccin.
OBJETIVOS
POR SER : Comunicativo: Debe entender las necesidades u objetivos del usuario Capaz: Debe tener la capacidad de saber como dar un servicio y proporcionar informacin Autnomo: Debe poder interactuar con el entorno tomando decisiones y actuando por si solo Adaptativo: debe ser capaz de aprender del entorno
FUNCIONAMIENTO
Este proyecto desarrollara un sistema inteligente que , a partir de cmaras IP instaladas en los semforo, ejecute en tiempo real decisiones sobre los tiempos de cada luz de un semforo para la optimizacin del trafico en una interseccin
agente
Medidas de Rendimiento
Entorno
Actuadores
Sensores
Agilizar el Trafico
Calles
Luz Amarilla
Detector de Vehculos
Peatones
Luz verde
Cmara
Trficos
Luz Roja
import java.awt.*; public class SemaforoIA extends CreaVentanas { private Iniciarnn Semaforo1, Semaforo4; private Image[] estadoLuces=new Image[4]; private Image carro1, carro3; private Image cruce, Imgsemaforo1; private int X2, Y2, X1, Y1; private AEstrellaParaSemaforo busqueda; private String semaforo[] = {"verde1.gif","amarillo1.gif","rojo1.gif","apagado.gif"}; private Graphics G; private Image I; private Dimension D; private MediaTracker Mt;
public SemaforoIA() { super("A G E N T E S E M A F O R O Cindhy Celi, Freddy Ojeda \t\t\t\t\t\t Inteligencia Artificial", 0, 0, 0, 0, Color.gray, true); Mt = new MediaTracker(this);
}
private void cargarImagenes() { cruce = Toolkit.getDefaultToolkit().getImage("edificios\\cruce2.png"); //FONDO carro1 = Toolkit.getDefaultToolkit().getImage("carros\\arrabj4.gif"); //auto de arriba carro3 = Toolkit.getDefaultToolkit().getImage("carros\\izqder.gif"); //auto izquierda Imgsemaforo1 = estadoLuces[3]; //Semaforo }
public void Iniciar() { int tVerde=0, tVerdeParpa=0, tRojo=0; int nCarrosX=0, nCarrosY=0;// contador=0; nCarrosX =(int)(Math.random()*10); nCarrosY =(int)(Math.random()*10); busqueda(); tVerde=tiempoV(nCarrosX, nCarrosY); tRojo=tiempoR(nCarrosX, nCarrosY); System.out.println(" \n NUMERO DE VEHICULOS APROXIMNDOSE A LA INTERSECCIN:\n\t\t por la 18 de Noviembre = "+nCarrosX+"\n\t\t por la Azuay "+nCarrosY);
\t=
if(nCarrosX>=nCarrosY) System.out.println("\n Avancen los de la 18 = "+tVerde+" ms"+ "\n Avancen los de la Azuay = "+tRojo+"ms"); else System.out.println("\n Avancen los de la Azuay = "+tVerde+" ms"+ "\n Avancen los de la 18 = "+tRojo+" ms");
if (nCarrosX >= nCarrosY){ Semaforo1 = new Iniciarnn("Calle Azuay",6000,2000,1000); Semaforo4 = new Iniciarnn("Calle 18 de Nov", tVerde,tVerdeParpa,tRojo); //tiempo del semaforo verde, parpadeaverde, rojo Semaforo1.start(); Semaforo4.start(); } else{ Semaforo1 = new Iniciarnn("Calle Azuay",6000,2000,1000); Semaforo4 = new Iniciarnn("Calle 18 de Nov", tRojo,tVerdeParpa,tVerde); / /tiempo del semaforo verde, parpadeaverde, rojo Semaforo1.start(); Semaforo4.start(); } } public int tiempoV(int nx, int ny) { int tVerde=0; int VelAuto=2000; //tiempo que un auto demora en cruzar el cruce
}
public int tiempoR(int nx, int ny) { int tRojo=0; int VelAuto=2000; //tiempo que un auto demora en cruzar el cruce if(nx==0) tRojo=ny*VelAuto;
if(ny >= nx ) tRojo = (nx+ny)*VelAuto/ny; //else{ tRojo = ny * VelAuto; else{ tRojo = (nx+ny)*VelAuto/nx; }
};
};
public MoverAutos(String pNombre,int pVerde,int pParpaverde,int pAmarillo) { super(pNombre); verde = pVerde; parpaverde = pParpaverde; amarillo = pAmarillo; aTiempo = new int[] { verde, parpaverde, amarillo, 0 }; activo = true;
public MoverAutos(String pNombre,int pVerde,int pParpaverde,int pAmarillo) { super(pNombre); verde = pVerde; parpaverde = pParpaverde; amarillo = pAmarillo; aTiempo = new int[] { verde, parpaverde, amarillo, 0 }; activo = true;