Untitled
unknown
perl
a year ago
3.6 kB
1
Indexable
Never
%Base de conocimiento para la tarea de Declarativa %Centros de estudio lugar(colegio_santa_cecilia). lugar(itca_fepade). lugar(fesa). %Centros de salud lugar(hospital_san_rafael). %Centros de gasolineria lugar(gasolineria_uno). %Centros de parques recreativos lugar(parque_daniel_hernandez). lugar(parque_san_martin). lugar(parque_cafetalon). lugar(parque_la_familia). lugar(estadio_nacional_las_delicias). lugar(parque_ecologico_san_jose). %Centros de centro comercial lugar(plaza_merliot). lugar(plaza_la_skina). lugar(plaza_las_ramblas). %Calles de lugares % lugar(ccCarretera_panamericana). lugar(carrerera_panamericana_central). %prueba de intersecciones lugar(cccarrerera_panamericana_central). lugar(ccpuntoUno). lugar(ccpuntoDos). lugar(ccpuntoTres). lugar(ccpuntoCuatro). lugar(ccpuntoPDaniel). %Coordenadas %311 417 %529 426 %775 436 % COORDENADAS % Sintaxis de coordenadas, agregadas como predicados: % -> coordenada(lugar, coordenadaX, coordenadaY). % % Centro de estudio coordenada(colegio_santa_cecilia, 546, 296). coordenada(itca_fepade, 714, 407). coordenada(fesa, 563, 207). % Centro de Salud coordenada(hospital_san_rafael, 775, 436). % Centro de Gasolinera coordenada(gasolineria_uno, 300, 418). % Centro de parques recreativos coordenada(parque_daniel_hernandez, 532, 399). coordenada(parque_san_martin, 583, 402). coordenada(parque_cafetalon, 640, 326). coordenada(parque_la_familia, 647, 183). coordenada(estadio_nacional_las_delicias, 273, 416). coordenada(parque_ecologico_san_jose, 456, 61). % Centros de centro comercial coordenada(plaza_merliot, 791, 269). coordenada(plaza_la_skina, 306, 287). coordenada(plaza_las_ramblas, 975, 460). coordenada(carretera_panamericana_central,529,426). %Puntos de interseccion coordenada(ccpuntoPDaniel,556,400). coordenada(ccpuntoUno,775,415). coordenada(ccpuntoDos,745,410). coordenada(ccpuntoTres,713,408). coordenada(ccpuntoCuatro,713,434). %Funcion que retorna la calle y coordenada obtener_coordenada(Lugar, Coor) :- coordenada(Lugar, X, Y), Coor = coordenada(Lugar, X, Y). %Conexiones de las coordenadas %Direccional conecta_con(carretera_panamericana_central,hospital_san_rafael). %conecta_con(plaza_merliot,hospital_san_rafael). %pruebas conecta_con(plaza_merliot, puntoUno ). conecta_con(ccpuntoUno, ccpuntoDos). conecta_con(ccpuntoDos, ccpuntoTres). conecta_con(ccpuntoTres, ccpuntoCuatro). conecta_con(ccpuntoCuatro, hospital_san_rafael). %Conexiones de Gasolineria conecta_con(gasolineria_uno,carretera_panamericana_central). conecta_con(carretera_panamericana_central, parque_daniel_hernandez). %conecta_con(plaza_merliot,hospital_san_rafael). % Base de conocimiento y definiciones anteriores % ... % Predicado para encontrar una ruta % X: Inicio, Y: Destino, R: Ruta ir_hacia(X, Y, R) :- abolish(eslabon, 1), assert(eslabon(X)), ir_hacia_rec(X, Y, [X], R), % Inicialmente, la ruta solo contiene el punto de inicio writeln(R). % Caso base: se ha llegado al destino ir_hacia_rec(X, Y, TempR, R) :- conecta_con(X, Y), writeln(Y), assert(eslabon(Y)), reverse([Y | TempR], R). % Invierte la lista para que quede en orden de inicio a destino % Caso recursivo: sigue buscando la ruta ir_hacia_rec(X, Y, TempR, R) :- conecta_con(X, Z), not(eslabon(Z)), assert(eslabon(Z)), ir_hacia_rec(Z, Y, [Z | TempR], R), writeln(Z), !. prueba(X):- lugar(X).