8/12/2019 Representacion Del Conocimiento Prolog
1/28
Area de Computacin e InteligenciaArtificial
1
Representacin del conocimientomediante lgica formal
Introduccin a PROLOG
8/12/2019 Representacion Del Conocimiento Prolog
2/28
Area de Computacin e InteligenciaArtificial
1
Representacin del conocimiento
Lo que nos interesa es la representacin, es decir,la modelizacin del conocimiento
Orientaciones:
Simblica: la descripcin del comportamiento inteligente se
basa en sistemas simblicos, ms o menos formalizados
Conexionista: para describir el comportamiento inteligentese modelizan sistemas neuronales
8/12/2019 Representacion Del Conocimiento Prolog
3/28
Area de Computacin e InteligenciaArtificial
1
Representacin del conocimiento
Tratamos de encontrar la forma de modelizar quesea apropiada para el tratamiento computacional
de la inferencia.
Debe tener en cuenta que la inferencia se realizasobre conocimiento incompleto o incierto
(aproximado o con incertidumbre): No sabemos si el paciente tiene paludismo
Muy posiblemente el paciente tiene una
infeccin en la faringe
8/12/2019 Representacion Del Conocimiento Prolog
4/28
Area de Computacin e InteligenciaArtificial
1
Sistemas basados en el
conocimiento El componente principal de un sistema basado en
conocimiento (en adelante, SBC) es su base de
conocimientos, o BC.
En realidad slo es un conjunto de representaciones
de ciertos hechos acerca del mundo. A cada una de
estas representaciones se le denomina oracin. Lasoraciones se representan en un lenguaje llamado
lenguaje para la representacin del conocimiento,
que puede ser un lenguaje natural (como el queusamos nosotros) o un lenguaje formal (por ejemplo
un lenguaje de programacin).
8/12/2019 Representacion Del Conocimiento Prolog
5/28
Area de Computacin e InteligenciaArtificial
1
Sistemas basados en el
conocimiento Sobre esta base de conocimientos podra hacer varias
acciones, como tratarla para llegar a una conclusin
(proceso llamado inferencia) o incluso modificarla(aprendizaje) para adaptarla a otros planteamientos.
Esquemticamente se pueden describir las acciones que
puede realizar un SBC de la siguiente forma:1.El SBC informa a la BC lo que percibe.
2. Se le pregunta a la BC cul es la accin que debe emprender. Esta puede
estar decidida por un conjunto de reglas preestablecidas, o necesitar de un
proceso de inferencia para llegar a la decisin.
3. El agente realiza la accin que haya decidido de acuerdo a ese proceso de
inferencia.
4. Aprender y posiblemente modificar su BC de acuerdo a lo realizado y a si se
ha conseguido el objetivo perseguido o no.
8/12/2019 Representacion Del Conocimiento Prolog
6/28
Area de Computacin e InteligenciaArtificial
1
Sistemas basados en el
conocimiento Estas acciones se corresponden con las siguientes funciones cognitivas:
Percepcin, o cmo es la entrada de informacin sensorial del mundo que nosrodea.
Conocimiento, o cmo representamos esa informacin proveniente de lossentidos.
Memoria, o de qu forma almacenamos esa informacin en nuestro sistemacognitivo.
Razonamiento, o cmo tratamos esa informacin para realizar inferencias y llegara conclusiones vlidas.
Bsqueda de soluciones
Accin, o cual va a ser la respuesta que se va a dar en funcin quiz del proceso deinferencia realizado.
Lenguaje natural Procesos de consciencia, o cmo somos conscientes de que tratamos con
informacin, de cmo realizar una metacognicin de nuestro sistema cognitivo (sieso es posible) y de cmo puedo saber que yo soy yo y no la persona con la que
estoy hablando.
8/12/2019 Representacion Del Conocimiento Prolog
7/28
Area de Computacin e InteligenciaArtificial
1
Sistemas basados en el
conocimiento Aqu trataremos de los procesos de representacin del
conocimento (tanto desde el punto de vista simblico
como conexionista), de los procesos de razonamientotanto formal como informal (o con incertidumbre) y delos procesos de aprendizaje.
8/12/2019 Representacion Del Conocimiento Prolog
8/28
Area de Computacin e InteligenciaArtificial
1
Formalismos de representacin
Lgicas (clsica, multivaluadas, modales ydifusa)
Reglas de produccin (con incertidumbre -
MYCIN)
Redes semnticas y causales (bayesianas)
Marcos y guiones
Redes neuronales y sistemas neuroborrosos.
8/12/2019 Representacion Del Conocimiento Prolog
9/28
Area de Computacin e InteligenciaArtificial
1
Construccin de una base deconocimientos mediante la lgica
formal En principio, un lenguaje de representacin del
conocimiento consta de dos aspectos bsicos: Sintxis, que explica cmo es la forma en que se construyen las
oraciones como combinacin de estructuras ms sencillas (porejemplo las palabras en un lenguaje natural). As podemos decirque la oracin Un bueno ser jefe justoest sintcticamente malconstruida, debido a los signos o elementos de esta oracin estnmal ordenados.
Semntica, que explica la correspendencia entre los elementos o
signos que componen un lenguaje y los objetos que representan.Por ejemplo podemos decir que la palabra juez designa a unapersona que imparte justicia.
8/12/2019 Representacion Del Conocimiento Prolog
10/28
Area de Computacin e InteligenciaArtificial
1
Construccin de una base deconocimientos mediante la lgica
formal Podramos hacer una analoga entre forma y contenido
respectivamente.
Y a partir de aqu podemos definir el concepto deinferenciacomo el proceso que lleva de unas premisas auna conclusin, y que en principio puede ser vlida o no.
Pero, qu entendemos por validez, o por una oracinvlida? Se dice que una oracin es vlida si y slo si esverdadera en todos y cada uno de los casos posibles,
independientemente del objeto que representen.
8/12/2019 Representacion Del Conocimiento Prolog
11/28
Area de Computacin e InteligenciaArtificial
1
Construccin de una base deconocimientos mediante la lgica
formal As tambin se suele hablar de validez formalo de que un
razonamiento es formalmente vlidocuando dadas unas
premisa necesariamentese obtiene una conclusinconcreta. A stas oraciones que son necesariamenteverdaderas se les conoce con el nombre de tautologas
Por ejemplo, si decimos que Todos los perros ladrany quePipo esun perro, de sto podr concluir quePipo ladra.
8/12/2019 Representacion Del Conocimiento Prolog
12/28
Area de Computacin e InteligenciaArtificial
1
Tipos de razonamiento
Asu vez, un razonamiento puede ser deductivo, si la informacincontenida en la conclusin no aporta ningn conocimiento que no se
pueda deducir de forma inmediata de las premisas (como es el casoanterior) o inductivocuando de la informacin contenida en laspremisas no se infiere de forma inmediata la conclusin.
Por ejemplo deMercurio gira en una rbita elptica, Venus gira en
una rbita elptica, la Tierra gira en una rbita elpticapodemosinferir quePlutn gira en una rbita elptica, pero eso no esnecesariamente verdadero. A lo sumo ser verdadero con una ciertaprobabilidad o plausibilidad, y as llamaremos a estos razonamientos
razonamientos probabilsticoso plausibles. stos razonamientos sonlos que se usan en ciencia y los que aportan de verdad conocimiento.
8/12/2019 Representacion Del Conocimiento Prolog
13/28
Area de Computacin e InteligenciaArtificial
1
Tipos de razonamiento
Por ltimo, llamaremos modeloa un mundo en el que una oracin esverdadera bajo una determinada interpretacin. Y as, habr oraciones
que sern verdaderas en un determinado modelo y otras que no. Por lo tanto disponemos de un lenguaje formal, que ser independiente
del modelo en el que se site, y que nos permitir representar todos loselementos u objetos de un modelo (o mundo) mediante signosde
forma no ambigua, un conjunto de reglas (reglas de formacin) paramanipular esos signos y efectuar inferencias para llegar a conclusionesy un conjunto de reglas de transformacinque permitir transformaruna combinacin bien construida en otra igualmente bien construida.
Estos elementos constituyen lo que se denomina lgica.
8/12/2019 Representacion Del Conocimiento Prolog
14/28
Area de Computacin e InteligenciaArtificial
1
Lgica
Podemos distinguir dos tipos dentro de lo que se llama lgica clsica(aquella que la conclusin, si es verdadera lo es con certeza, es decir, sin
ningn grado de probabilidad, mientras que hay otros tipos de lgicas noclsicas, como puede ser la lgica difusa -o Fuzzy Logicen el que unaconclusin slo es verdadera con un cierto grado de certeza)
Lgica propositivao lgica de enunciadoscuando los signos que
manejamos son proposiciones completas (por ejemplo, apodrasignificar el perro de Juan es negro, y usaremos smbolos llamadosconectorespara hacer oraciones ms complejas, como por ejemplo elperro de Juan es negro y no lleva correa.
Lgica de predicados de primer orden, en el que manejamos objetos ypredicados sobre objetos, as comopropiedades(hermano de, padre de),cuantificadores(algunos, todos, ningn) y conectores.
8/12/2019 Representacion Del Conocimiento Prolog
15/28
Area de Computacin e InteligenciaArtificial
1
Lgica
Lgica de predicados de orden superioren el que podemos hacerinferencias sobre la lgica, es decir, tener un conocimiento que
podramos llamar metalgico. Lgicas multivaluadas, en las que tratamos con varios valores de
verdad, como por ejemplo las trivaluadas de Kleen y de Lukasiewiczdonde se introduce el valor 1/2para las proposiciones cuyo valor de
verdad es indeterminado (por ejemplo las proposiciones futuras). stas sern las herramientas de que dispondremos para
representar el conocimiento. As que vamos a ver cmo construiruna base de conocimientos en base al lenguaje utilizado para
representar los conceptos. En principio elegiremos la lgica depredicados como un buen lenguaje para hacerlo.
8/12/2019 Representacion Del Conocimiento Prolog
16/28
8/12/2019 Representacion Del Conocimiento Prolog
17/28
Area de Computacin e InteligenciaArtificial
1
Elementos de una base de
conocimientos Predicados: atributos de los elementos
Elementos: proposiciones.
Constantes:se escriben en minsculas, por ejemplopedro,
gripe.
Variables lgicas: Las vriables en Prolog no son
variables en el sentido habitual, por eso las llamamosvariables lgicas. Se escriben como una secuencia de
caracteres alfabticos comenzando siempre por mayscula
o subrayado. Por ejemplo Persona, X, _
La variable annima: todas ellas se representan medianteel smbolo de subrayado _.
Operadores.El operadorY se representa por ,
8/12/2019 Representacion Del Conocimiento Prolog
18/28
Area de Computacin e InteligenciaArtificial
1
Elementos de una base de
conocimientos Hechos: expresan relaciones (predicados) entre
elementos (proposiciones). Deben acabar en punto.
Por ejemplo es(juan,alto).
Reglas: condiciones si-entonces. Se escribe primero el
consecuente y luego el/los antecedentes.
Por ejemploes(X, espaol):-nacio(X,madrid).
8/12/2019 Representacion Del Conocimiento Prolog
19/28
Area de Computacin e InteligenciaArtificial
1
Proceso de razonamiento
Base de conocimiento: hechos y reglas.
Objetivos
Unificacin
8/12/2019 Representacion Del Conocimiento Prolog
20/28
Area de Computacin e InteligenciaArtificial
1
El shell de Prolog
?- El smbolo ?- nos indica la zona donde podemos escribir losobjetivos a ejecutar.
Mi primer objetivo Swi-Prolog 1.4 #0: Sat Nov 27 19:27:11 1999
?- t(X,3) = t(4,Z).
X = 4,
Z = 3
yes
Observese que los objetivos acaban en un punto (.), si pulsamos intro
antes de escribir el punto
ocurre un salto de lnea, pero nada ms. Cuando escribimos el punto y
pulsamos INTRO es cuando
se ejecuta el objetivo.
8/12/2019 Representacion Del Conocimiento Prolog
21/28
Area de Computacin e InteligenciaArtificial
1
El shell de Prolog
A continuacin, el shell nos dice si el objetivo tiene xito o no, y cualesson las ligaduras de lasvariables. Despus aparece un signo de interrogacin (?). En estemomento es cuando le podemospedir que nos muestre otra solucin tecleando un punto y coma (;) ypulsando INTRO:
Swi-Prolog 1.4 #0: Sat Nov 27 19:27:11 1999 ?- t(X,3) = t(4,Z).
X = 4, Z = 3 ? ;
no ?-
8/12/2019 Representacion Del Conocimiento Prolog
22/28
Area de Computacin e InteligenciaArtificial
1
El shell de Prolog
Como no hay ms soluciones en nuestro ejemplo, el shell dice "no" ynos permite escribir otro objetivo.
Compilando y cargando codigo ?- consult(c:/prog1.pl').
yes
?-
Obsrvese que el nombre del fichero fuente (y su ruta, si es necesario)
se escribe en un trmino entre comillas simples. Esta es la forma
habitual de escribir nombres de fichero.
8/12/2019 Representacion Del Conocimiento Prolog
23/28
Area de Computacin e InteligenciaArtificial
1
Eficiencia
Ordenacin de clusulas:
1 las ms especficas
2 las ms generales (con recursividad)Ejemplo:
antecesor(X,Y):-padre_de(X,Y).
antecesor(X,Y):-padre_de(X,Y),antecesor(Z,Y).
Ordenacin de trminos dentro de una clusula:
1 los trminos ms especficos
2 los trminos ms generales (recursivos)
Ejemploantecesor(X,Y):-padre_de(X,Y),antecesor(Z,Y).
8/12/2019 Representacion Del Conocimiento Prolog
24/28
Area de Computacin e InteligenciaArtificial
1
Operadores
Desigualdad \== Comprueba si dos trminos son distintos
Desigualdad aritmtica =\= Verifica la desigualdad de dos expresiones
Operadores lgicos y aritmticos: < > =< >= Aritmticos: + - * / abs ^(potencia) max min
Asignacin [is]. Evala la segunda expresin e intenta asignar el valor
obtenido a la variable. No es conmutativo!
Ejemplo: Incremento(X,Y):-Y is X+1 Negacin: not millonario(X), o not(X=:=0)
Agregar hechos: assert(padre_de(luis,pepe)).
NOTA: deben ser procedimientos dinmicos, no estticos. Para convertir
un trmino en dinmico debo agregar a la BC el siguiente procedimiento::-dynamic padre_de/2.
Eliminar hechos:retract(padre_de(luis,pepe)).
8/12/2019 Representacion Del Conocimiento Prolog
25/28
Area de Computacin e InteligenciaArtificial
1
Listas
[a,b,c] Lista con tres elementos
[ ] Lista vaca
[a|L] Lista con el elemento a en la cabecera y el resto en la variable L (cola) [a,b|L]
[X|L] Lista con el primer elemento instanciado en la variable X y el resto en lavariable L (cola)
[X,Y|L]
di d l j d
8/12/2019 Representacion Del Conocimiento Prolog
26/28
Area de Computacin e InteligenciaArtificial
1
Predicados para el manejo delistas
N de elementos de una lista: longitud (Lista,N): longitud([ ],0).
Pertenencia a una lista: pertenece(X,Lista).
Concatenar dos listas: concatenar(L1,L2,L3).
Eliminar un elemento X de una lista L, y como
consecuencia se obtiene la nueva lista L2:
elimina(X,L1,L2). Invertir los elementos de una lista: invertir(L1,L2).
8/12/2019 Representacion Del Conocimiento Prolog
27/28
Area de Computacin e InteligenciaArtificial
1
Estructuras de datos en Prolog
Ejemplo:
reino(juan,portugal).
reino(juan,suecia).
aos_de_reinado(reino(duarte,portugal),1433,1438).
aos_de_reinado(reino(juan,portugal),1481,1495).
aos_de_reinado(reino(duarte,suecia),1568,1592).
?-aos_de_reinado(reino(juan,portugal),X,Y).
X=1481.
Y=1495.
?- aos_de_reinado(reino(juan,Pais),X,Y).P = portugal
X = 1481
Y = 1495
8/12/2019 Representacion Del Conocimiento Prolog
28/28
Area de Computacin e InteligenciaArtificial
1
Estructuras de datos en Prolog
Cmo podra saber si un rey ha estado reinando en algn pasdurante un cierto ao?
reino(juan,portugal).
reino(juan,suecia).aos_de_reinado(reino(duarte,portugal),1433,1438).
aos_de_reinado(reino(juan,portugal),1481,1495).
aos_de_reinado(reino(duarte,suecia),1568,1592).
en_el_trono(X,P,Ao):-aos_de_reinado(reino(X,P),A,B),Ao>=A,Ao=
Top Related