miércoles, 17 de febrero de 2010

RESUMEN DEL PROYECTO

POSTER AGENTE RUTAS TURISTICAS

Estrategias de Busqueda

Modelo de la ruta más corta

Hay que considerar que nuestro objetivo es una conexión de dos nodos especiales llamados origen y destino. A cada ligadura (arco no dirigido) se asocia una distancia no negativa. El objetivo es encontrar la ruta más corta (la trayectoria con la mínima distancia total) del origen al destino.

Se dispone de un algoritmo bastante sencillo para este problema. La esencia del procedimiento es que analiza toda la red a partir del origen; identifica de manera sucesiva la ruta más corta a cada uno de los nodos en orden ascendente de sus distancias (más cortas), desde el origen; el problema queda resuelto en el momento de llegar al nodo destino.

El algoritmo que tenemos a continuación estará aplicado en nuestro agente para obtener una ruta más corta:



AVARA

functionAvara (MAPA,AVARA,OBJETIVO,ORIGEN)

lon=length(AVARA);

i=1;

ind=0;

entrar=1;

ban=0;

while (ban == 0) && (i<=lon)

if (strcmp(OBJETIVO,AVARA{i,1})==1)

if (entrar == 1)

ind_ini=i;

entrar=0;

end

ind_fin=i;

if (strcmp(OBJETIVO,AVARA{i+1,1})==0)

ban=1;

end

end

i=i+1;

end

if (i>lon)

h=msgbox('La direccion no esta bien escrita o no fue considerada en el mapa Turistico','Direccion Inexistente!!!','warn','modal');

return

end

lon=length(MAPA);

aux=ORIGEN;

l=1;

m=1;

for i=1:lon

if (strcmp(aux,MAPA{i,1})==1)

ban=1;

aux1=MAPA{i,2};

j=ind_ini;

while (strcmp(aux1,AVARA{j,3})==0)

j=j+1;

end

texto{l}=AVARA{j,3};

valor(l)=AVARA{j,2};

l=l+1;

end

if (i <>

if (strcmp(aux,MAPA{i+1,1})==0)&&(ban==1)

[C ind]=min(valor);

camino{m}=texto(ind);

m=m+1;

aux=texto(ind);

texto=[];

valor=[];

l=1;

ban=0;

end

end

end

cam=ORIGEN;

for i=1:length(camino)

cam=strcat(cam,',',camino{i});

end

h=msgbox(cam,'Resultado','modal');

Dibujar_Mapa(MAPA,camino);



6.2 Búsqueda A*(I) y A*: Es una suma de las búsquedas heurística y optimal, utiliza la siguiente función para calcular el costo total para cada nodo f(n) = c(n)+h(n), donde: f(n) es el costo total de la ruta desde el estado n hacia el estado final, c(n) es el costo estimado de la ruta para ir del estado n al estado final y h(n) es la heurística asignada al estado n.



Plasmando lo dicho hemos utilizado el siguiente algoritmo para comprobar que A* Es un algoritmo que también puede servir de manera eficiente en nuestro algoritmo:


ALGORITMO A*


FunctionAsterisco (MAPA,AVARA,OBJETIVO,ORIGEN)

lon=length(AVARA);

i=1;

ind=0;

entrar=1;

ban=0;

while (ban == 0) && (i<=lon)

if (strcmp(OBJETIVO,AVARA{i,1})==1)

if (entrar == 1)

ind_ini=i;

entrar=0;

end

ind_fin=i;

if (strcmp(OBJETIVO,AVARA{i+1,1})==0)

ban=1;

end

end

i=i+1;

end

if (i>lon)

h=msgbox('La direccion no esta bien escrita o no fue considerada en el mapa Turistico','Direccion Inexistente!!!','warn','modal');

return

end

lon=length(MAPA);

aux=ORIGEN;

l=1;

m=2;

camino{1}=ORIGEN;

for i=1:lon

if (strcmp(aux,MAPA{i,1})==1)

ban=1;

aux1=MAPA{i,2};

j=ind_ini;

while (strcmp(aux1,AVARA{j,3})==0)

j=j+1;

end

texto{l}=AVARA{j,3};

valor(l)=AVARA{j,2}+MAPA{i,3};

l=l+1;

end

if (i <>

if (strcmp(aux,MAPA{i+1,1})==0)&&(ban==1)

[C ind]=min(valor);

camino{m}=texto(ind);

m=m+1;

aux=texto(ind);

texto=[];

valor=[];

l=1;

ban=0;

end

end

end

cam=[];

for i=1:length(camino)

cam=strcat(cam,',',camino{i});

end

h=msgbox(cam,'Resultado','modal');

Dibujar_Mapa(MAPA,camino);

1. ESTADO DEL CONOCIMIENTO

1.1 Creación de la Ontología para un Agente Inteligente para Rutas Turísticas.