Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Primera Unidad
1. Primera Semana:
1.1inteligencia artificial:
1.1.1 Historia de Inteligencia Artificial:
Se podría situar los orígenes de la inteligencia artificial con la definición de la
neurona formal dada por McCulloch y Pitts [1943], como un dispositivo binario
con varias entradas y salidas.
La inteligencia artificial en los años sesentas, como tal no tuvo muchos éxitos ya
que requería demasiada inversión para ese tiempo y la mayoría de tecnologías
eran propias de grandes centros de investigación. En los años 70’s a 80’s se
lograron algunos avances significativos en una de sus ramas llamada Sistemas
Expertos, con la introducción de PROLOG LISP.
1
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Monitoreo
Diseño
Existen dos variantes del diseño donde puede actuar un Sistema Experto:
Diseño en ingeniería: basado en criterios técnicos y científicos, busca la
optimización económica e incrementar la eficiencia. Diseño industrial: responsable
de rectificar las omisiones del diseño en ingeniería.
En ambos casos, los Sistemas Expertos actúan con el objetivo de encontrar la
solución óptima al propósito marcado.
Planificación
Control
2
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Simulación
Instrucción
Recuperación de información
3
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
BASADOS EN REGLAS:
BASADOS EN CASOS CBR (Case Based Reasoning):
BASADOS EN REDES :
4
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
2 Objetos:
son archivos que tu generas, y estos archivos son realizados para que la
computadora pues "tomar decisiones" en base a las condiciones previas que le
introduces... se basan en los conceptos de unificación y backtracking (deshacer o
regresar) y en base a estos conceptos y las condiciones toma la decisión más
lógica . Se conocen como programas de desición lógica
3 Dominios y Predicados:
Sección de dominios
DOMAINS
ENTERO = INTEGER
5
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Ejemplo:
DOMAINS
El símbolo ";" indica que el dominio LECTURA puede referirse tanto a libros como
a revistas, es decir, tanto los objetos libros como los objetos revistas pertenecen al
dominio LECTURA.
DOMAINS
PREDICATES
lectores(LECTOR)
CLAUSES
GOAL
lectores(lee(X,Y)).
6
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
X=antonio, Y=libro("cervantes","quijote","anaya")
X=pepe, Y=revista("hola",22)
X=juan, Y=libro("delphi4","alvarez","anaya")
En estos dominios podemos definir tipos de objetos que sólo se pueden comportar
como una única clase de objetos. Mientras que en el caso anterior un determinado
dominio podía definir un objeto u otro, en el caso de dominios de
objetos Functorless dicho dominio sólo puede definir un objeto compuesto. La
sintaxis de este tipo de dominios es similar a la anterior salvo porque es necesario
especificar la palabra struct y no puede haber más de una definición de objeto por
dominio.
Con este tipo de declaración los objetos utilizado mantienen una sintaxis muy
parecida a la de C.
Ejemplo:
DOMAINS
En ocasiones, puede ser útil definir sinónimos de dominios que son estándar, para
una mayor legibilidad del programa, por ejemplo. Así pues en la siguiente
declaración:
DOMAINS
ENTERO = integer
7
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Las listas son estructuras comunes de datos en Prolog consideradas como una
forma de objeto compuesto. Son secuencias de elementos generalmente
homogéneos. Sin embargo, en Visual Prolog es fácil crear listas heterogéneas
mediante el uso eficaz de declaración de dominios.
dominiolista = dominiocomponentes*
DOMAINS
DOMAINS
8
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
donde:
Ejemplo:
DOMAINS
listapares = par*
listaenteros = integer*
PREDICATES
predicadosuma(par, INTEGER)
cubo: unaria
cuadrado: unaria
CLAUSES
/*---*/
operacion([],_,[]).
9
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
4 Tipos de dominios:
Dominios de objetos compuestos.
Dominios de objetos compuestos functorless.
Sinónimos de Dominios Estándar.
Dominós tipo Lista.
Dominios Tipo Predicado.
2. Segunda Semana:
2.1. aspectos fundamentales de los sistemas expertos:
De acuerdo a estos dos aspectos de determinismo, Visual Prolog soporta los siguientes
tipos de predicados:
10
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
determ: puede fallar y debe producir una única solución, es decir, no hacen
backtracking.
multi: nunca debe fallar y puede producir múltiples soluciones mediante la
técnica de backtracking.
Todos los predicados se definen internamente con alguno de estos modos. Para los
predicados definidos como determ, procedure, failure o erroneous el compilador
dará un warning para cada cláusula o regla del programa que dé como resultado
un predicado no determinista.
11
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
12
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
13
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
3. Tercera Semana:
3.1. aspectos fundamentales de un sistema experto
ETAPA DESCRIPCIÓN
14
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
o Niveles de desarrollo:
o Lenguaje de programación:
15
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
16
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
SEGUNDA UNIDAD
4. Semana 4 :
4.1.
4.1.1. Representación de conocimientos:
HISTORIA
Los responsables de los primeros esquemas de representación formalizados fueron Quillian
(1968) y Shapiro & Woddmansee (1971). Las redes semánticas han sido muy utilizadas
en Inteligencia Artificial (máquinas inteligentes) para representar el conocimiento y por tanto ha
existido una gran diversificación de técnicas. Los elementos básicos que encontramos en todos
los esquemas de redes son:
1. Estructuras de datos en nodos, que representan conceptos, unidas por arcos que
representan las relaciones entre los conceptos.
17
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
CONCEPTO DE RED
Una red semántica o esquema de representación en Red es una forma de representación de
conocimiento lingüístico en la que los conceptos y sus interrelaciones se representan mediante
un grafo.
En un grafo o red semántica los elementos semánticos se representan pornodos. Dos elementos
semánticos entre los que se admite se da la relación semántica que representa la red, estarán
unidos mediante una línea, flecha o enlace o arista. Cierto tipo de relaciones no simétricas
requieren grafos dirigidos que usan flechas en lugar de líneas
Nodo=Objeto
Una Red Semántica es una representación gráfica del conocimiento en la que existe una jerarquía
de Nodos.
Nodos:
Representan
Arcos:
Representan
18
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
ES UN: El cual usa para identificar que un cierto pertenece a una clase mayor de objeto.
TIENE-UN: Este tipo de arcos se utiliza para identificar que un cierto nodo tiene o pase unas
ciertas características o atributo o propiedad.
TIPOS DE ARCOS:
Tipos de Redes
Redes IS-A: En las que los enlaces entre nodos están etiquetados.
Gráficos conceptuales: En los que existen dos tipos de nodos: de conceptos y de relaciones
Redes de marcos: En los que los puntos de unión de los enlaces son parte de la etiqueta del nodo
19
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
5. Semana 5:
5.1. Aspectos principales del Cálculo de predicados:
Write (+Termino) Si Termino está instanciada a un término, lo saca por pantalla. Si
Termino no está instanciada, se sacará por pantalla una variable numerada de
forma única (por ejemplo _69).
Display (+Termino) Se comporta como “write”, excepto que pasa por alto
cualquier declaración de operadores que se haya hecho.
Read (-Termino) Lee el siguiente término que se teclee desde el ordenador. Debe
ir seguido de un punto “.” y un “retorno de carro”. Instancia Término al término
leído, si Termino no estaba instanciada. Si Termino si que está instanciada, los
comparará y se satisfará o fracasará dependiendo del éxito de la comparación.
20
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
/* ibl(L) <- imprime la lista L de forma bonita, es decir saca por pantala los elementosa de
la lista separados por un espacio y terminado en salto de línea
*/ ibl([]) :- nl.
ibl([X|Y]) :- write(X),
tab(1), ibl(Y).
?- X=[esto,es,una,lista],write(X),nl,display(X),nl,ibl(X).
[esto,es,una,lista]
6. Semana 6:
6.1. siguientes aspectos
6.1.1. Reglas de producción
21
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Introducción
Sistemas canónicos
Post '43 estudió las propiedades de sistemas de reglas (que llamó sistemas canónicos).
Por ejemplo:
A = {a,b,c} (alfabeto)
Sistemas canónicos
Reglas de producción
Se tiene:
22
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Por ejemplo:
Que significa:
23
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Partes principales
Un sistema de producción tiene:
Un conjunto de reglas ( base de conocimiento)
Un interprete de reglas o máquina de inferencia (que decide qué regla
aplicar, controla la actividad del sistema)
Una memoria de trabajo (que guarda los datos, metas, y resultados
intermedios)
Memoria de Trabajo
Guarda inferencias/aseveraciones temporalmente.
Memoria de Trabajo
Los datos de la memoria de trabajo son los que permiten cumplir las condiciones
de las reglas y dispararlas (las reglas verifican la existencia de elementos en la
memoria de trabajo para disparar).
Máquina de Inferencia
El interprete o máquina de inferencia realiza el ciclo reconoce-actua:
Máquina de Inferencia
Generalmente el ciclo empieza con unos datos iniciales y para cuando no hay
reglas aplicables (o por una regla).
24
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Máquina de Inferencia
Existen diferentes estrategias de razonamiento: a nivel global las reglas pueden
ser llevadas en un encadenamiento hacia adelante o en un encadenamiento
hacia atrás.
Estrategias de Razonamiento
Encadenamiento hacia adelante (forward chaining/ data driven/ event driven/
bottom-up) parte de hechos para cumplir condiciones y ejecutar acciones
(creando nuevos hechos)
Estrategias de Razonamiento
Encadenamiento hacia atrás (backward chaining/ goal driven/ expectation
driven/ top-down) parte de los estados meta y trata de cumplir las condiciones
necesarias para llegar a ellos.
25
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Explicación
Explicaciones sirven para:
Explicación
Ejemplo de explicaciones
Reglas:
R1: If una persona tiene $30,000 y tiene grado de licenciatura Then debe de
invertir a plazo fijo
R2: If una persona gana mas de $120,000 al año y tiene licenciatura Then debe
de invertir en acciones
R3: If una persona es menor de 30 y esta invirtiendo a plazo fijo Then debe
invertir en acciones
R5: If una persona quiere invertir en acciones Then debe de invertir en Telmex
Ejemplos de meta-reglas
26
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Apareamiento de Patrones
Normalmente existen variables en las reglas y se tiene que hacer un
“apareamiento de patrones”.
And ?y > 12
And ?y < 20
Apareamiento de Patrones
En Bwd: Hipótesis (con variables) apareamos consecuencias (con variables) y
producimos nuevas hipótesis (con variables). Se acerca más a unificación.
27
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Tercera unidad
7. Semana 7:
7.1. Reporta el avance de proyecto1.
Portada
Introducción (Para que sirve la aplicación.)
Desarrollo (Diagrama de red semántica)
Preguntas que se le pueden hacer al sistema para obtener el diagnostico
Código
Reglas en Prolog
En prolog una regla consiste de una cabeza y un cuerpo.
La cabeza y el cuerpo están conectados por el símbolo :- que se pronuncia si.
Por ejemplo las reglas anteriores.
Ace(x):-animal(x), tiene(X, Plumas)
Hermana(X,Y):- mujer(x)
Padres(x,m,p), padres(y,m,p)
Programa ejemplo:
Console(user)
Varon(eduardo)
Varon(Alberto)
Mujer(Alicia)
Mujer(Victoria)
Padres(Eduardo, victoria, alberto)
Padres (Alicia, Victoria, Alberto)
Hermana(x,y):- mujer(x)
Padres(x,m,p), padres(y,m,p).
Ctrl+d = mensaje de compilación correcta
Preguntas
?- hermana(Alicia, edurado).
True
?- hermana(Alicia,x)
X=Eduardo
Programa ejemplo
Ladron(juan)
Gusta(maria, alimento)
Gusta(maria, vino)
Juan(gusta, x) . gusta(x, vino)
Puede robar(x,y) – ladron (x), gusta (x,y)
Control+d
28
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
Varon (mario)
Mujer(Alicia
Mujer(veronica)
Mujer(victoria)
Mujer(beatriz)
Padres(eduadro,francisco, victoria)
Padres(Alicia, francisco, victoria)
Padres(luis, Eduardo, veronica)
Padres(Beatriz, Alicia, mario)
Esposos(Eduardo, veronica)
Esposos(mario, alicia)
Esposos(francisco, victoria
Hermana(ella, x)
Mujer(ella).padres(ella,m,p),padres(x,m,p)
Hermano(el, x):- varon(el), padres(el,m,p),padres(x,m,p)
Hijo(el,x):-varon(el),padres(el,x,_)
Hijo(el,x):-varon(el),padres(el,_,x)
Hija(ella,x):-mujer(ella),padres(el,x,_)
Hija(ella,x):-mujer(ella),padres(el,_,x)
Se pueden hacer en bloc de notas para utilizarlos en prolog. Con extensión .pl
29
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
?-lista([H|T]).
H=1
T=[2,3]
?-lista([H,J|T]).
H=1
J=2
T=[3]
Longitud ([],0).
Longitud ([_|T],N):-longitud(T,N0), N is N0 + 1.
?- longitud([a,b,c],L).
L=3
?- longitud([a,b,c],4).
No
Búsqueda de un elemento
30
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
pertenece(X,[X|_]) .
pertenece(X,[_|R]):- pertenece(X,R).
?- pertenece(b,[a,b,c]).
Yes
?- pertenece(b,[a,[b,c]]).
No
?- pertenece([b,c],[a,[b,c]]).
Yes
?- pertenece(X,[a,b]).
X=a;
X=b
Eliminar elemento de una lista
Elimina(X,[X|T],T).
Elimina(X,[H|T],[H|T1]):- elimina(X,T,T1).
?- elimina(1,[1,2,3,4],R).
R = [2,3,4]
?- elimina(1,R,[2,3]).
R = [1, 2, 3] ;
R = [2, 1, 3] ;
R = [2, 3, 1]
?- elimina(X,[1,2,3],Y).
X = 1, Y = [2,3] ;
X = 2, Y = [1,3] ;
31
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
X = 3, Y = [1,2]
Concatenar listas
concatenar([],L,L).
concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3).
?- concatenar([1,2],[3,4],R).
R = [1, 2, 3, 4].
?- concatenar(X,Y,[1,2]).
X = [], Y = [1,2] ;
X = [1], Y = [2] ;
X = [1,2], Y = []
Comprobar si una lista es la inversa de otra
inversa([],[]).
?- inversa([a,b,c,d],[d,c,b,a]).
Yes/Si
inver(L1,L2):-inver(L1,L2,[]).
inver([],L,L).
32
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
inver([H|T],L,S):-inver(T,L,[H|S]).
?- inver([a,b,c,d],[d,c,b,a]).
Yes
8. Semana 8:
8.1.
8.1.1. Reconoce las estrategias de inferencia.
8.1.2. Encadenamiento de reglas hacia atrás y hacia adelante.
Un grupo de múltiples reglas de inferencia que contiene un problema con su
solución se llama cadena.
Una cadena que realiza una búsqueda o camino desde el problema a la solución
se llama una cadena hacia adelante.
Este tipo de cadena va desde los hechos hsta las conclusiones que siguen a partir
de los hechos.
Una cadena que transita hacia atrás desde una hipótesis hasta los hechos que
soportan tal hipótesis se llama una cadena hacia atrás. Otra forma de definirla
es en términos de una meta que puede estar formada por submetas que se han
cumplido.
p->q
p conejo(x)->mamifero(x)
_____________ mamifero(x)->animal(x)
:. q
Por tanto una cadena causal de encadenamiento hacia adelante se representa
mediante una secuencia de enlaces que conectan el consecuente de una regla
con el antecedente de la siguiente.
Ejemplo:
conejo(Bugs Bunny)
33
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
conejo(x)-> mamifero(x)
mamifero(x)-> animal(x)
aminal(Bugs Bunny)
Características comunes
Conozco más el encadenamiento hacia atrás ya que conozco el pasado, pero el
futuro no.
34
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
9. Semana 9:
9.1. Reconoce en que consiste el interfaz del usuario.
La interfaz de usuario es el espacio donde se producen las interacciones entre seres
humanos y máquinas. El objetivo de esta interacción es permitir el funcionamiento y
control más efectivo de la máquina desde la interacción con el humano.
Las interfaces básicas de usuario son aquellas que incluyen elementos como menús,
ventanas, contenido gráfico, cursor, los beeps y algunos otros sonidos que la
computadora hace, y en general, todos aquellos canales por los cuales se permite la
comunicación entre el ser humano y la computadora.
35
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
El objetivo del diseño de una interfaz es producir una interfaz que sea fácil de usar
(explicarse por sí misma), eficiente y agradable para que al operar la máquina dé el
resultado deseado.
Trata los sintomas como una lista. La cabeza es el diagnostico y la “cola” son los sintomas.
Puede contestar a las preguntas 'porque' e incluye capacidad de explicacion. Elimina dinamicamente las
aseveraciones agregadas despues de cada consulta.
*/
:- dynamic
conocido/1.
consulta:-
haz_diagnostico(X),
escribe_diagnostico(X),
ofrece_explicacion_diagnostico(X),
clean_scratchpad. consulta:-
haz_diagnostico(Diagnosis):-
write(Diagnosis), write('.'), nl, write('Para esto necesito saber si '), write(Sintoma), write('.'), nl,
pregunta_sobre(Diagnosis, Sintoma, Reply). process(Diagnosis, Sintoma, Respuesta, Reply):- Respuesta \==
no, Respuesta \== si, Respuesta \== porque, nl, write('Debes contestar si, no o porque.'), nl,
pregunta_sobre(Diagnosis, Sintoma, Reply).
36
Sistemas Expertos
Eduardo Ramírez Benavides
Universidad de Chiclayo
ofrece_explicacion_diagnostico(Diagnosis): pregunta_si_necesita_explicacion(Respuesta),
actua_consecuentemente(Diagnosis, Respuesta).
pregunta_si_necesita_explicacion(Respuesta):-
escribe_lista_de_sintomas([]).
escribe_lista_de_sintomas([Head | Tail]): write(Head), nl,
escribe_lista_de_sintomas(Tail).
clean_scratchpad:- retract(conocido(X)),
fail. clean_scratchpad. conocido(_):- fail.
not(X):- X,!,fail. not(_).
37