Sistemas expertos
Tenemos el siguiente conocimiento directo:
Bertoldo y Bartolo son rufianes.
Romeo y Bertoldo, como su nombre indica, son nobles.
Bartolo es unplebeyo.
Gertrudis y Julieta son damas.
Julieta es hermosa.
También disponemos del siguiente conocimiento indirecto:
Los plebeyos desean a cualquier dama, mientrasque los nobles sólo a aquellas que son
hermosas.
Los rufianes, para satisfacer sus instintos, raptan a las personas a las que desean.
Construir un programa querefleje dicho conocimiento y permita resolver las siguientes
cuestiones:
1) ¿Qué noble es un rufián?
2) ¿Quién es susceptible de ser raptada por Romeo?
3) ¿Quién puederaptar a Julieta?
4) ¿Quién rapta a quién?
5) ¿A quién desea Bartolo?
6) ¿Y Romeo?
7) ¿Cuál hermosa dama es deseada por Bartolo?
SOLUCIÓN:
rufian(bertoldo).rufian(bartolo).
noble(romeo).
noble(bertoldo).
plebeyo(bartolo).
dama(gertrudis).
dama(julieta).
hermosa(julieta).
desea(S,X):-
plebeyo(S)->
(dama(X));noble(S)->
(dama(X), hermosa(X)).
rapta(S,X):-
rufian(S),
desea(S,X).CONSULTAS:
1) ¿Qué noble es un rufián?
?- noble(X), rufian(X).
X = bertoldo.
2)¿Quién es susceptible de ser raptada por Romeo?
?- rapta(romeo,X).
false.
3) ¿Quién puede raptar a Julieta?
?- rapta(X,julieta).
X = bertoldo ;
X = bartolo.
4) ¿Quiénrapta a quién?
?- rapta(S,X).
S = bertoldo,
X = julieta ;
S = bartolo,
X = gertrudis ;
S = bartolo,
X = julieta.
5) ¿A quién desea Bartolo?
?- desea(bartolo,X).
X= gertrudis ;
X = julieta.6) ¿Y Romeo?
?- desea(romeo,X).
X = julieta.
7) ¿Cuál hermosa dama es deseada por Bartolo?
?- hermosa(X),desea(bartolo,X).
X = julieta.
Regístrate para leer el documento completo.