write resueltos primer orden logica genealogico funciones formularios ejercicios clausulas arbol prolog

resueltos - prolog pdf



¿Cómo puedo escribir reglas para las siguientes preguntas y hechos en Prolog? (0)

  1. Escribe una regla Prolog para encontrar cualquier ruta entre dos estaciones.

    route(Station1, Station2, Route)

donde Station1 y Station2 son nombres de estaciones y Route es una lista de estaciones que conectan Station1 y Station2 en orden, incluyendo Station1 y Station2.

  1. Escriba una regla Prolog para encontrar el tiempo que toma viajar en una ruta entre dos estaciones, en el supuesto de que el tiempo para viajar entre las estaciones adyacentes es de 4 minutos. Ignore cualquier momento asociado con líneas cambiantes en intercambios.

    route_time(Station1, Station2, Route, Minutes)

donde Station1 y Station2 son nombres de estaciones, Route es una lista de estaciones que conectan Station1 y Station2 en orden, incluidas Station1 y Station2, y Minutes es el tiempo necesario.

station(al,[metropolitan]). station(ls,[metropolitan,central]). station(kx,[metropolitan,victoria]). station(bs,[metropolitan]). station(fr,[metropolitan]). station(ke,[northern]). station(em,[northern,bakerloo]). station(tc,[northern,central]). station(ws,[northern,victoria]). station(eu,[northern]). station(wa,[bakerloo]). station(pa,[bakerloo]). station(oc,[bakerloo,central,victoria]). station(ec,[bakerloo]). station(nh,[central]). station(lg,[central]). station(cl,[central]). station(bg,[central]). station(br,[victoria]). station(vi,[victoria]). station(fp,[victoria]).


/* Facts about the direct connection between two stations. The adjacent rule shows the connections between two stations */ adjacent1(X,Y):- adjacent(X,Y);adjacent(Y,X). /* The first rule is X is adjacent Y IF and only IF X is adjacent to Y and Y is adjacent to X */


/* Bakerloo Line adjacents*/ adjacent(em,ec). adjacent(em,ke). adjacent(em,tc). adjacent(em,oc). adjacent(oc,vi). adjacent(oc,ws). adjacent(oc,pa). adjacent(oc,lg). adjacent(oc,tc). adjacent(pa,wa).


/* Central Line Adjacents*/ adjacent(bg,ls). adjacent(ls,al). adjacent(ls,kx). adjacent(ls,cl). adjacent(cl,tc). adjacent(lg,nh).


/*Metro adjacents*/ adjacent(kx,fp). adjacent(kx,ws). adjacent(kx,bs). adjacent(bs,fr).


/* Northern Line*/ adjacent(tc,ws). adjacent(ws,eu).


/*Victoria line */ adjacent(br,vi).