TP Lógico - 2012 Espionaje La agencia SD-6 posee una base de conocimientos con las caracterĆsticas de sus agentes, que utiliza para seleccionarlos y armar equipos que envĆa a diferentes partes del mundo a cumplir misiones de espionaje. Los agentes pueden ser espĆas, francotiradores, ninjas o tirabombas, lo que se representa mediante el predicado agente/2, que relaciona el nombre del agente con el correspondiente functor, de la siguiente manera.
agente(sloane, espia([ingles, frances, italiano])).
agente(vaughn, francotirador(150)).
agente(bristow, tirabombas(26)). agente(irina, Ā tirabombas(4)).
agente(guillermo, ninja(judo, [estrellita,nunchaku])). agente(emilio, ninja(karate, [sai])). El predicado misión/3 relaciona a una misión con agentes que requiere y el tipo de misión: mision(unViolinistaEnElTejado, 2, asesinato). mision(expresoDeOriente, 4, volarTren). mision(extermineitors, 2, exterminio). Las misiones, de acuerdo con su objetivo, tienen distintos requerimientos. Cada uno de estos lo puede cumplir cualquiera de los agentes, excepto en las misiones de exterminio, caso en el cual todos los agentes deben cumplir todos los requisitos. requisito(asesinato, sigilo). requisito(asesinato, distancia(100)). /*francotirador*/ requisito(volarTren, explosivos(11)). /*cant. de bombas*/ requisito(volarTren, idioma(italiano)). /*espĆa*/ requisito(volarTren, fuerza). requisito(exterminio, fuerza). requisito(exterminio, sigilo). RequerimientosHacer los siguientes predicados, de manera que sean totalmente inversibles a menos que se indique lo contrario. 1) cumpleRequisito/2 que permite saber si un agente cumple con un requisito (No se requiere que este predicado sea inversible para el primer parĆ”metro.)
?- cumpleRequisito(explosivos(11),A). A = bristow; ?- cumpleRequisito(distancia(100),A). A = vaughn 2) esUtil/2, que relaciona el nombre de una misión con cada agente que cumple con algún requisito de la misma. ?- esUtil(extermineitors, Quien). Quien = sloane ; Quien = guillermo ; ⦠3) esIndispensable/2, que relaciona una misión y a un agente cuando este agente es el único que cumple con un algún requerimiento de la misión. (Hacer dos soluciones alternativas, una de ellas sin utilizar listas auxiliares) ?- esIndispensable(unViolinistaEnElTejado, Quien). Quien = vaughn (porque es el único que cumple el requerimiento de distancia(100)) 4) rambo/1, que se cumple para un agente si este es útil para todas las misiones. ?- rambo(guillermo). Yes. 5) equipoPosible/2, que relaciona a una misión y un conjunto de agentes útiles para la misma. Considerar la cantidad de agentes requerida. ?- equipoPosible(unViolinistaEnElTejado, Equipo). Equipo = [sloane, vaughn]; ... 6) eshImposhible/1, que se cumple para aquella misión para la cual ningún equipo posible cumple todos los requisitos. ?- eshImposhible(Mision). Mision = expresoDeOriente 7) estoEstaLlenoDeNinjas/1, que se cumple para aquella misión en la que todos los equipos posibles estÔn formados únicamente por ninjas. ?- estoEstaLlenoDeNinjas(extermineitors). Yes. |