Está en la página 1de 62

Ingenierı́a del Conocimiento.

Formalización e
Implementación

SCALAB

Universidad Carlos III de Madrid

IC. 2015-16

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 1 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 2 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 2 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 2 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 2 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 2 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 2 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 3 / 50


Formalización del Conocimiento

Modelización del problema desde el punto de vista del sistema


Un modelo formal es una representación computable de los
conocimientos y conducta del experto
Un modelo computable está formado por:
Una base de conocimientos
Un motor de inferencias
Una/s estragegia/s de control
Formalizar consiste en:
Representar simbólicamente los conceptos mediante alguno de los
formalismos existentes,
organizarlos de acuerdo con algún modelo de diseño y
determinar los métodos de inferencia

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 4 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 5 / 50


Representación del Conocimiento

Los SBC diferencian entre los conocimientos sobre el problema y los


conocimientos sobre cómo resolver el problema
El ordenador trata con una representación simbólica del problema
Problemas para representar el conocimiento:
Una misma información se puede representar de múltiples formas
La representación en el ordenador no siempre refleja la realidad
Todas las representaciones son imperfectas
Tipos de formalismos:
Basados en conceptos: marcos
Basados en relaciones: lógica y redes semánticas
Basados en acciones: sistemas de producción y guiones

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 6 / 50


Componentes de un Sistema de Producción

Base de hechos o memoria de trabajo (BH o WM): conocimiento


sobre el dominio en un determinado momento
Base de reglas (BR): conjunto de reglas (producciones)
SICondiciones ENTONCES Acciones
Estrategia de control, intérprete de reglas, o motor de inferencias
(EC o MI): responsable de encadenar los ciclos de funcionamiento

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 7 / 50


Base de Hechos

Almacena el estado actual de la tarea o problema


Los datos almacenados pueden ser permanentes, temporales,
generales y especı́ficos
La BH presenta tres estados:
Estado inicial: situación origen del problema
Estados metas: situación objetivo
Estados intermedios: representan en cada instante, el estado del
problema en curso de solución
Ejemplo: 8 puzzle
1 2 3 1 2 3 1 2 3 1 2 3
5 6 4 5 6 4 5 6 4 5 6
4 7 8 7 8 7 8 7 8
Estado inicial Estados intermedios Estado final

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 8 / 50


Base de Reglas

La mayor parte de los conocimientos sobre la resolución del problema


se representan en un conjunto de reglas o produciones
Cada regla presenta la forma:
SICondiciones ENTONCES Acciones

- Condición o antecedente: lista de cosas a verificar en la BH


- Consecuente: conjunto de acciones a realizar sobre la BH
Ejemplo: 8 puzzle

1 2 3 Regla-mover-arriba
Regla-mover-abajo
5 6
Regla-mover-derecha
4 7 8 Regla-mover-izquierda

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 9 / 50


EC o Motor de Inferencias

Examina en cada ciclo de funcionamiento la BH y decide qué regla


ejecutar, encadenando las reglas en los ciclos de resolución
Funcionamiento:
1 Fase de decisión: selección de la regla
(Etapa de restricción (opcional))
Etapa de equiparación o filtrado. rete
Etapa de resolución del conjunto conflicto
Una regla se activa cuando sus precondiciones son ciertas en el estado
actual de la BH
2 Fase de acción: ejecución de la regla
Por ejemplo, si una condición de una regla presenta la forma: (enfermedad $x corazón) y la BH
del sistema es: (enfermedad Pepe pulmón) (enfermedad Juan corazón) (enfermedad Marı́a
corazón) (edad Pepe 18) existirán dos posibles instanciaciones de esta condición. Una con la
variable $x tomando el valor Juan y otra tomando el valor Marı́a

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 10 / 50


Ejemplo: 8 puzzle. Representación

1 2 3
1 1 2 3 X
2 5 6
3 4 7 8

Representación: casilla(x,y,valor) ((x=1,y=1) esquina superior izq.)


BH inicial:
(casilla(x 1)(y 1)(valor 1)) (casilla(x 2)(y 1)(valor 2)) (casilla(x 3)(y 1)(valor 3))
(casilla(x 1)(y 2)(valor 0)) (casilla(x 2)(y 2)(valor 5)) (casilla(x 3)(y 2)(valor 6))
(casilla(x 1)(y 3)(valor 4)) (casilla(x 2)(y 3)(valor 7)) (casilla(x 3)(y 3)(valor 8))
BH final:
(casilla(x 1)(y 1)(valor 1)) (casilla(x 2)(y 1)(valor 2)) (casilla(x 3)(y 1)(valor 3))
(casilla(x 1)(y 2)(valor 4)) (casilla(x 2)(y 2)(valor 5)) (casilla(x 3)(y 2)(valor 6))
(casilla(x 1)(y 3)(valor 7)) (casilla(x 2)(y 3)(valor 8)) (casilla(x 3)(y 3)(valor 0))
SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 11 / 50
Ejemplo: 8 puzzle. Reglas
Si ?casilla ← (casilla (x ?x) (y ?y) (valor 0))
Arriba ?casilla1 ← (casilla (x ?x) (y ?y1) (valor ?v))
(test ?y1=?y-1)
Entonces (modify ?casilla (valor ?v)) (modify ?casilla1 (valor 0))

Si ?casilla ← (casilla (x ?x) (y ?y) (valor 0))


Abajo ?casilla1 ← (casilla (x ?x) (y ?y1) (valor ?v))
(test ?y1=?y+1)
Entonces (modify ?casilla (valor ?v)) (modify ?casilla1 (valor 0))

Si ?casilla ← (casilla (x ?x) (y ?y) (valor 0))


Derecha ?casilla1 ← (casilla (x ?x1) (y ?y) (valor ?v))
(test ?x1=?x+1)
Entonces (modify ?casilla (valor ?v)) (modify ?casilla1 (valor 0))

Si ?casilla ← (casilla (x ?x) (y ?y) (valor 0))


Izquierda ?casilla1 ← (casilla (x ?x1) (y ?y) (valor ?v))
(test ?x1=?x-1)
Entonces (modify ?casilla (valor ?v)) (modify ?casilla1 (valor 0))
SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 12 / 50
Encadenamiento hacia Adelante
1 2 3
1 1 2 3 X
2 5 6
3 4 7 8

BH inicial: (casilla11 (x 1) (y 1) (valor 1)) Y


(casilla21 (x 2) (y 1) (valor 2))
...
(casilla33 (x 3) (y 3) (valor 8))
Equiparación:
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
(Abajo, ?x=1, ?y=2, ?y1=3, ?v=4, ?casilla=#casilla12, ?casilla1=#casilla13)
(Derecha, ?x=1, ?y=2, ?x1=2, ?v=5, ?casilla=#casilla12, ?casilla1=#casilla22)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
Ejecución: (- (casilla12 (x 1) (y 2) (valor 0)))
(+ (casilla12 (x 1) (y 2) (valor 1)))
(- (casilla11 (x 1) (y 1) (valor 1)))
(+ (casilla11 (x 1) (y 1) (valor 0)))
Equiparación . . .
SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 13 / 50
Encadenamiento hacia Adelante
1 2 3
1 1 2 3 X
2 5 6
3 4 7 8

BH inicial: (casilla11 (x 1) (y 1) (valor 1)) Y


(casilla21 (x 2) (y 1) (valor 2))
...
(casilla33 (x 3) (y 3) (valor 8))
Equiparación:
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
(Abajo, ?x=1, ?y=2, ?y1=3, ?v=4, ?casilla=#casilla12, ?casilla1=#casilla13)
(Derecha, ?x=1, ?y=2, ?x1=2, ?v=5, ?casilla=#casilla12, ?casilla1=#casilla22)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
Ejecución: (- (casilla12 (x 1) (y 2) (valor 0)))
(+ (casilla12 (x 1) (y 2) (valor 1)))
(- (casilla11 (x 1) (y 1) (valor 1)))
(+ (casilla11 (x 1) (y 1) (valor 0)))
Equiparación . . .
SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 13 / 50
Encadenamiento hacia Adelante
1 2 3
1 1 2 3 X
2 5 6
3 4 7 8

BH inicial: (casilla11 (x 1) (y 1) (valor 1)) Y


(casilla21 (x 2) (y 1) (valor 2))
...
(casilla33 (x 3) (y 3) (valor 8))
Equiparación:
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
(Abajo, ?x=1, ?y=2, ?y1=3, ?v=4, ?casilla=#casilla12, ?casilla1=#casilla13)
(Derecha, ?x=1, ?y=2, ?x1=2, ?v=5, ?casilla=#casilla12, ?casilla1=#casilla22)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
Ejecución: (- (casilla12 (x 1) (y 2) (valor 0)))
(+ (casilla12 (x 1) (y 2) (valor 1)))
(- (casilla11 (x 1) (y 1) (valor 1)))
(+ (casilla11 (x 1) (y 1) (valor 0)))
Equiparación . . .
SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 13 / 50
Encadenamiento hacia Adelante
1 2 3
1 1 2 3 X
2 5 6
3 4 7 8

BH inicial: (casilla11 (x 1) (y 1) (valor 1)) Y


(casilla21 (x 2) (y 1) (valor 2))
...
(casilla33 (x 3) (y 3) (valor 8))
Equiparación:
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
(Abajo, ?x=1, ?y=2, ?y1=3, ?v=4, ?casilla=#casilla12, ?casilla1=#casilla13)
(Derecha, ?x=1, ?y=2, ?x1=2, ?v=5, ?casilla=#casilla12, ?casilla1=#casilla22)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?x=1, ?y=2, ?y1=1, ?v=1, ?casilla=#casilla12, ?casilla1=#casilla11)
Ejecución: (- (casilla12 (x 1) (y 2) (valor 0)))
(+ (casilla12 (x 1) (y 2) (valor 1)))
(- (casilla11 (x 1) (y 1) (valor 1)))
(+ (casilla11 (x 1) (y 1) (valor 0)))
Equiparación . . .
SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 13 / 50
Encadenamiento hacia Atrás (a la prolog)

Metas: (casilla11 (valor 2))


(casilla21 (valor 0))
...
(casilla33 (valor 8))
Reducción: selección meta (por ejemplo, la primera)
(casilla11 (valor 2))
Equiparación:
(Arriba, ?v=2, ?casilla=#casilla11)
(Abajo, ?v=2, ?casilla=#casilla11)
(Derecha, ?v=2, ?casilla=#casilla11)
(Izquierda, ?v=2, ?casilla=#casilla11)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?v=2, ?casilla=#casilla11)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 14 / 50


Encadenamiento hacia Atrás (a la prolog)

Metas: (casilla11 (valor 2))


(casilla21 (valor 0))
...
(casilla33 (valor 8))
Reducción: selección meta (por ejemplo, la primera)
(casilla11 (valor 2))
Equiparación:
(Arriba, ?v=2, ?casilla=#casilla11)
(Abajo, ?v=2, ?casilla=#casilla11)
(Derecha, ?v=2, ?casilla=#casilla11)
(Izquierda, ?v=2, ?casilla=#casilla11)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?v=2, ?casilla=#casilla11)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 14 / 50


Encadenamiento hacia Atrás (a la prolog)

Metas: (casilla11 (valor 2))


(casilla21 (valor 0))
...
(casilla33 (valor 8))
Reducción: selección meta (por ejemplo, la primera)
(casilla11 (valor 2))
Equiparación:
(Arriba, ?v=2, ?casilla=#casilla11)
(Abajo, ?v=2, ?casilla=#casilla11)
(Derecha, ?v=2, ?casilla=#casilla11)
(Izquierda, ?v=2, ?casilla=#casilla11)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?v=2, ?casilla=#casilla11)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 14 / 50


Encadenamiento hacia Atrás (a la prolog)

Metas: (casilla11 (valor 2))


(casilla21 (valor 0))
...
(casilla33 (valor 8))
Reducción: selección meta (por ejemplo, la primera)
(casilla11 (valor 2))
Equiparación:
(Arriba, ?v=2, ?casilla=#casilla11)
(Abajo, ?v=2, ?casilla=#casilla11)
(Derecha, ?v=2, ?casilla=#casilla11)
(Izquierda, ?v=2, ?casilla=#casilla11)
Resolución del CC (por ejemplo, primera regla):
(Arriba, ?v=2, ?casilla=#casilla11)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 14 / 50


Encadenamiento hacia Atrás (a la prolog)

Ejecución: introducir las condiciones de la regla instanciada en conjunto de metas


?casilla=#casilla11 y (?casilla ← (casilla (x ?x) (y ?y) (valor 0)))
entonces ?x=1, ?y=1
y añade meta (casilla11 (valor 0))
?v=2 y (?casilla1 ← (casilla (x ?x) (y ?y1) (valor ?v)))
entonces (?casilla1 ← (casilla (x 1) (y ?y1) (valor 2)))
(test ?y=?y1+1), ?y=1 y (?casilla1 ← (casilla (x 1) (y ?y1) (valor 2)))
entonces ?casilla1=#casilla01 e ?y1=0 !!!
y añade meta (casilla01 (valor 2))!!!
La lista de metas quedarı́a como: (casilla11 (valor 0))
(casilla01 (valor 2))!!!
(casilla21 (valor 0))
...
(casilla33 (valor 8))
Reducción: . . .

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 15 / 50


Encadenamiento hacia Atrás (a la prolog)

Ejecución: introducir las condiciones de la regla instanciada en conjunto de metas


?casilla=#casilla11 y (?casilla ← (casilla (x ?x) (y ?y) (valor 0)))
entonces ?x=1, ?y=1
y añade meta (casilla11 (valor 0))
?v=2 y (?casilla1 ← (casilla (x ?x) (y ?y1) (valor ?v)))
entonces (?casilla1 ← (casilla (x 1) (y ?y1) (valor 2)))
(test ?y=?y1+1), ?y=1 y (?casilla1 ← (casilla (x 1) (y ?y1) (valor 2)))
entonces ?casilla1=#casilla01 e ?y1=0 !!!
y añade meta (casilla01 (valor 2))!!!
La lista de metas quedarı́a como: (casilla11 (valor 0))
(casilla01 (valor 2))!!!
(casilla21 (valor 0))
...
(casilla33 (valor 8))
Reducción: . . .

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 15 / 50


Rediseño (Encadenamiento hacia Atrás)

Si ?casilla ← (casilla (x ?x) (y ?y) (valor 0))


(test ?y>1)
Arriba ?casilla1 ← (casilla (x ?x) (y ?y1) (valor ?v))
(test ?y1=?y-1)
Entonces modifica(?casilla,valor,?v),modifica(?casilla1,valor,0)
Si . . .
Abajo (test ?y<3)
Entonces modifica(?casilla,valor,?v),modifica(?casilla1,valor,0)
Si . . .
Derecha (test ?x<3)
Entonces modifica(?casilla,valor,?v),modifica(?casilla1,valor,0)
Si . . .
Izquierda (test ?x>1)
Entonces modifica(?casilla,valor,?v),modifica(?casilla1,valor,0)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 16 / 50


Estrategias de Resolución del Conjunto Conflicto

Primera regla
Más conocimiento
Más prioridad
Más especı́fica
Más general
Referente al elemento más nuevo
No aplicada antes (principio de refracción)
Más veces aplicada
Aleatoriamente
Explorar todas
Metarreglas
Mezcla de estrategias

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 17 / 50


Ejemplo 8 puzzle. Condición de Parada

Regla Finalizar: tendrá más prioridad que las otras


Si (casilla (x 1) (y 1) (valor 1)) (casilla (x 2) (y 1) (valor 2))
(casilla (x 3) (y 1) (valor 3)) (casilla (x 1) (y 2) (valor 4))
(casilla (x 2) (y 2) (valor 5)) (casilla (x 3) (y 2) (valor 6))
(casilla (x 1) (y 3) (valor 7)) (casilla (x 2) (y 3) (valor 8))
(casilla (x 3) (y 3) (valor 0))
Entonces (printout t “Solución Encontrada”) (halt)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 18 / 50


Ejercicios

1 Se tienen 5 monedas dispuestas como se muestra a continuación:


ARARA
El anverso de la moneda está representado por A y el reverso por R.
En cada movimiento se puede dar la vuelta a cualquier par de
monedas contiguas. La situación final que se quiere obtener es la
siguiente:
RRRAR
Se pide:
Descripción de la Base de Hechos
Descripción de las reglas que forman la Base de Reglas
Determinar las reglas que se ejecutan para pasar a la situación final
2 Imprimir por pantalla los no del 1 al 100
3 Contar el no de instancias de un tipo particular

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 19 / 50


Marcos (Minsky 1975)

Conceptos: clases, marcos (frames), . . .


Subconceptos: subclases
Herencia: simple o múltiple
Instancias: objetos
Atributos: slots, campos, caracterı́sticas, . . .
Facetas: atributos de atributos (valor, tipo de valores, comentario,
cardinalidad, . . . )
Relaciones: subclase-de (herencia), parte-de (entre atributos),
instancia-de
Métodos: funciones asociadas a los marcos
Demonios: funciones que vigilan las operaciones sobre los atributos

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 20 / 50


Descripción de un Marco

(CLASE o MARCO≡Concepto (es-un CLASE-PADRE)


(Atributo1 ≡SLOT O CAMPO
(FACETAS)
tipo de dato
cardinalidad mı́nima/máxima
valor por defecto
valores permitidos
DEMONIO1 DEMONIO2 . . . )
(Atributo2 . . . )
...
(AtributoN . . . )
MÉTODO1 MÉTODO2 . . .
)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 21 / 50


Ejemplo de un Sistema de Marcos: 8 puzzle
CASILLA
es-un:
Atributo Tipo Posibles valores Cardinalidad Valor defecto
X Número {1,2,3} 1..1 1
Y Número {1,2,3} 1..1 1
valor Número 1..1 0
Casilla11 Casilla21 Casilla31
instancia-de: CASILLA instancia-de: CASILLA instancia-de: CASILLA
X 1 X 2 X 3
Y 1 Y 1 Y 1
valor 1 valor 2 valor 3
Casilla12 Casilla22 Casilla32
instancia-de: CASILLA instancia-de: CASILLA instancia-de: CASILLA
X 1 X 2 X 3
Y 2 Y 2 Y 2
valor 0 valor 5 valor 6
Casilla13 Casilla23 Casilla33
instancia-de: CASILLA instancia-de: CASILLA instancia-de: CASILLA
X 1 X 2 X 3
Y 3 Y 3 Y 3
valor 4 valor 7 valor 8

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 22 / 50


Relaciones entre Marcos

Relaciones estándar:
Son independientes del dominio
Son dos: Subclase-de y Instancia-de
La técnica de inferencia basada en herencia de propiedades razona
sobre ellas
Relaciones no estándar:
Representan dependencias entre conceptos de un dominio
Hay que buscar formas de implementarlas: atributos cuyo valor es una
referencia a otro marco
Hay que implementar las inferencias

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 23 / 50


Relación Subclase-de

Permite construir un SBC mediante la especialización de conceptos


generales en conceptos más especı́ficos
Semántica: el concepto representado por Mh es una especialización o
subconjunto del concepto representado por Mp . Ej. Un elefante es un
animal pero una trompa NO es un elefante
Permite la herencia de propiedades: la clase hija tiene todas las
propiedades (atributos) de la clase padre y de las clases anteriores en
la jerarquia
Definir los atributos comunes en la clase más abstracta y en las
subclases los atributos particulares

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 24 / 50


Relación Instancia-de

Representa un ejemplar o individuo de una clase


Siempre están relacionados con un marco clase
Tienen todos los atributos rellenos: bien con valores especı́ficos dados
por el usuario o valores por defecto asignados por el sistema
Los mecanismos de inferencia trabajan sobre instancias de
marcos

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 25 / 50


Ejemplo de Marcos

UNIVERSIDAD
es-un:
Atributo Tipo Posibles valores Cardinalidad V. defecto
nombre cadena 1..1
titulaciones lista instancias 1..100
departamentos lista instancias 1..10
número-alumnos número 1..1 0
tipo sı́mbolo {pública, privada, iglesia} 1..1 pública
UNIVERSIDAD-PÚBLICA
es-un: UNIVERSIDAD
Atributo Tipo Posibles valores Cardinalidad V. defecto
tipo pública
comunidad-autónoma instancia 1..1
financiación número 1..1

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 26 / 50


Otras Clases

TITULACIÓN
es-un:
Atributo Tipo Posibles valores Cardinalidad V. defecto
nombre cadena 1..1
universidad instancia 1..1
departamentos lista instancias 1..10
número-alumnos número 1..1 0
alumnos lista instancias 0..1000
centro instancia
ASIGNATURA
es-un:
Atributo Tipo Posibles valores Cardinalidad V. defecto
nombre cadena 1..1
titulacion instancia 1..1
número-alumnos número 1..1 0
alumnos lista instancias 0..1000

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 27 / 50


Ejemplo de Instancia

GII-UC3M
es-un: TITULACIÓN
Atributo Posibles valores/Valor
nombre “Grado en Ingenierı́a Informática”
universidad #UC3M
departamentos (#Dept-Informática-UC3M #Dept-Fı́sicas-UC3M . . . )
número-alumnos 800
centro #EPS-UC3M

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 28 / 50


Métodos

Funciones definidas sobre una clase que permiten manipular los


atributos
Los métodos se definen de forma genérica en la definición del marco
pero se invocan (ejecutan) a través de una INSTANCIA de la clase
Posible pseudocódigo:
send o enviar: llamada a algún método de una INSTANCIA
send(instancia,metodo, argumentos) o
enviar ?instancia metodo arg1 arg2 . . .
get: coge el valor de un atributo de una instancia
get(instancia, atributo) o valor=?instancia.atributo
set: da valor al atributo de una instancia
set(instancia,atributo,valor) o ?instancia.atributo=valor
self: referencia a la propia instancia
get(self,atributo) o ?self.atributo
add o añadir: añade un valor a un multislot
add(instancia, atributo, valor) o añadir ?instancia.atributo valor

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 29 / 50


Ejemplo de Métodos

Método ASIGNATURA.matricular (?alumno ∈ ALUMNO)


a~
nadir ?self.alumnos ?alumno
?self.número-alumnos= (?self.número-alumnos) + 1
enviar ?self.titulacion matricular ?alumno
enviar ?alumno matricular ?self

Método TITULACIÓN.matricular (?alumno ∈ ALUMNO)


if not(member(?alumno,?self.alumnos)))
then a~
nadir ?self.alumnos ?alumno
?self.número-alumnos=(?self.número-alumnos) + 1

Método ALUMNO.matricular (?asignatura ∈ ASIGNATURA)


...

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 30 / 50


Demonios

Son funciones que se ejecutan automáticamente


Se definen sobre los ATRIBUTOS de las clases
Los eventos que originan que se ejecuten son:
if-need: antes de leer el valor del atributo
if-set: después de cambiar el valor
if-added(valor): antes de añadir un valor a un multislot

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 31 / 50


Ejemplo de Demonios

Demonio UNIVERSIDAD.número-alumnos:if-needed ()
número=0
For ?titulación in ?self.titulaciones
número=número+(enviar ?titulacion dame-número-alumnos)

Demonio TITULACION.número-alumnos:if-set ()
enviar ?self.universidad cambia-número-alumnos
(enviar ?self.universidad dame-número-alumnos)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 32 / 50


Ejercicio Mundo de los Bloques

Definición del problema


Mesa: que puede contener como mucho 10 bloques
Bloques:
que pueden soportar un bloque sobre ellos
otros más anchos, que pueden soportar dos
los bloques suelen estar sobre la mesa
Hay brazos de robot, que pueden:
coger bloques que estén sobre la mesa u otro bloque
dejar bloques sobre la mesa u otros bloques
Ejemplo situación inicial • Acción coger bloque
C B C B

A A

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 33 / 50


Ejercicio Mundo de los Bloques: Representación

BRAZO−ROBOT
bloque−cogido(0/1) SOPORTE
bloques−sobre(0/1)

MESA(es−un SOPORTE) BLOQUE−GENERICO(es−un SOPORTE)


bloques−sobre(0/10) bloque−debajo(0/1)

SUPERBLOQUE(es−un BLOQUE−GENERICO) BLOQUE(es−un BLOQUE−GENERICO)


bloques−sobre2(0/1)

Instancias para representar el ejemplo anterior:


([mesa] of MESA (bloques-sobre [A]))
([A] of SUPERBLOQUE (bloque-debajo [mesa]) (bloques-sobre [C])
(bloques-sobre2 [B]))
([C] of BLOQUE (bloque-debajo [A]) (bloques-sobre [nil]))
([D] of BLOQUE (bloque-debajo [A]) (bloques-sobre [nil]))
([robot] of BRAZO-ROBOT (bloque-cogido [nil]))

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 34 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 35 / 50


Control en los SBC

Función: manejar los conocimientos del dominio de manera que


facilite y gestione su aplicación
Definición: conjunto de informaciones, datos y conocimientos que
proporcionan al sistema los criterios necesarios para decidir cómo
aplicar los conocimientos del dominio durante la resolución de un
problema
El componente de control puede encontrarse:
Implı́cito: integrado como parte del programa
Explı́cito: en la base de conocimientos ≡ metaconocimiento

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 36 / 50


Mecanismos de Control

De bajo nivel:
Para la resolución del conjunto conflicto: estrategias de resolución
Para la creación del conjunto conflicto: algoritmos de BÚSQUEDA
De alto nivel:
Necesario cuando el problema es complejo:
Cantidad de conocimiento implicado
Combinación de conocimiento representado mediante distintos
formalismos
Dificultad de representar y manejar el estado de un problema
Arquitecturas:
Se utilizan arquitecturas especı́ficas para resolver los problemas de
control en SBC complejos
Sirven para coordinar el conocimiento de diversas fuentes
Ejemplos: agendas, pizarras y sistemas de AGENTES

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 37 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 38 / 50


Implementación. Historia

Hoy dı́a utilizamos motores de inferencia ya programados


Antes se programaban tb al construir el SBC
Pionero fue EMYCIN: con encadenamiento hacia atrás, factores de
certeza y facilidades de explicación
Otro fue R1/Xcon del que surgió OPS5

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 39 / 50


Implementación. Lenguajes

CommonLisp: ANSI, Allegro, UFASoft, etc.


Prolog: www.swi-prolog.org
CLIPS y FuzzyCLIPS
JESS: http://www.jessrules.com/

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 40 / 50


Implementación. Entornos

Entornos integrados con facilidades e interfaz


Algunas muy orientadas a la adquisición: OPAL (Musen 1989), SALT
(Marcus 1988)
Caracterı́sticas:
Versatilidad de representación
Depuración
Eficiencia
Ayuda para incorporar capacidad explicativa
Integración con otros lenguajes/aplicaciones

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 41 / 50


Implementación. Herramientas libres

Herramientas para construir sistemas expertos


Ver web:
http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/expert/part1/faq-doc-5.html
FOCL, SOAR, OPS5, BABYLON, MOBAL, MIKE, RT-Expert, ES,
WindExs

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 42 / 50


Implementación. FOCL

FOCL escrito en Common Lisp


Incluye:
Facilidad para apredizaje automático desde ejemplos
Un interfaz gráfico para modificar/escribir reglas y hechos
Un intérprete con encadenamiento hacia atrás

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 43 / 50


Implementación. RT-Expert

Rápida ejecución. Real Time Expert


Facilidad para integrarse con programas escritos en C
Encadenamiento hacia atrás
Incluye librerı́a en C para ejecutar motor de inferencias

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 44 / 50


Implementación. MIKE

Micro Interpreter for Knowledge Engineering


Implementada en prolog por la Open Univ. (Reino Unido)
Conflictos definidos por usuario
Encadenamiento hacia atrás y hacia adelante
Facilidad para representar marcos y para integrar autoexplicación
Herramientas gráficas para seguimiento de la ejecución

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 45 / 50


Implementación. MOBAL

Representaciones del dominio en lógica de primer orden


Facilidad para la adquisición de conocimiento y para su verificación
mediante interfaz gráfico
Incluye herramientas de aprendizaje automático

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 46 / 50


Implementación. Babylon

Incluye facilidades para marcos, programación con restricciones


Está escrito en Common Lisp

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 47 / 50


Implementación. Entornos comerciales
Acquire: énfasis en adquisición
http://www.aiinc.ca/acquire/acquire.shtml
Art: Integración con C, ADA y Lisp. Acceso a BBDD.
Automated Reasoning Tool de Inference Corporation
GURU: fuzzy y BBDD
http://www.downloaddatabase.com/databasesoftware/guru.html
KEE: reglas y marcos. Búsqueda. Integrable en Lisp. IntelliCorp
NEXPERT OBJECT: notación gráfica muy rica. Marcos
Goldworks: integración con C. Marcos, reglas.
http://www.goldhill-inc.com/goldworks.htm
G2 (Gensym’s Corporation’s G2 Expert Systems Development
Environment): tiempo real, OO y reglas (atrás y adelante).
Integración con C y Fortran
Blaze Advisor:
http://www.fico.com/en/Products/DMTools/Pages/FICO-Blaze-Advisor
ILOG Jrules: IBM
SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 48 / 50
Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 49 / 50


Indice

1 Formalización

2 Representación del Conocimiento


Sistemas de Producción
Marcos

3 Control en los SBC


Búsqueda
Sistemas de Agentes

4 Implementación de SBC

5 (Tratamiento de la Incertidumbre)

6 (Búsqueda)

SCALAB (UC3M) Ingenierı́a del Conocimiento. Formalización e Implementación IC 50 / 50

También podría gustarte