Secciones de este documento
- Agentes basados en tablas
- Agentes basados en reglas
- Agente reflejo con estado interno
- Agentes basados en metas
- Agente racional
- Agentes basados en conocimiento
Representación del Conocimiento
- Lógica proposicional
- Lógica de primer orden
- Redes Semánticas
- Frames (marcos)
- Reglas de producción
- Búsqueda
- Planificación
Proyecto de Rodrigo Hunrichse para la asignatura Inteligencia Artificial, Semestre 1999-I, por Rodrigo Hunrichse
Hay una
tarea,
que definimos el 19990318, semestral, en una hoja que incluía algunas preguntas acerca de un tema de interés de los alumnos, tema el que debiéramos de desarrollar aplicándole Inteligencia artificial. Las tareas son individuales, y debiéramos de crearles una
página web,
en donde poner el avance del mismo.
He aquí mi Proyecto:
Este semestre hay que analizar un tema desde el punto de vista
de la I.A., los demás temas se pueden leer en la
página del ramo:
www.udec.cl/~dcampos/aiweb/
Yo escogí un tema en el que estoy familiarizado, ya que estuve trabajando en un proyecto acerca de ello el semestre
1998-II.
El título que le puse esta primera vez fue:
"Digitalización o creación de una biblioteca digital"
(Ver Proyecto #2 de la asignatura Proyectos de Sistemas Informáticos del semestre 1998-II).
Este problema lo veré en alguna de sus partes, a
través de soluciones planteadas durante el curso, y una
de las primeras aproximaciones es a través de Agentes
Inteligentes
(Ver documento del profesor
[www.inf.udec.cl/~campos/aiweb/representacion_agentes.htm])
Como es un supuesto inteligente, supondré que los libros
digitales (e-libros, e-documentos, etc.) ya existen, ya que la
digitalización de textos corresponde a un problema de OCR
(Optical Character Recogni?cing) que si bien es muy abordable
desde el punto de vista de la I.A., por otro lado suena poco
inteligente el intentar digitalizar textos (modernos) ya que
seguramente han sido traspasados a formatos digitales (incluso
se venden en CD algunos libros, enciclopedias, etc.) por lo que
se justifica. Para textos antiguos... tarea para otros, yo los
despliego solamente.
Agentes Inteligentes
- Agentes basados en tablas
Un ejemplo de Estímulos- respuestas a búsquedas
exactas, las inexactas pueden devolver listados de posibles
salidas, que no vienen al caso listarlas, ya que son
innumerables.
consulta_libro (ISBN = 96880682X) |
Título: Artificial Intelligence: A modern Approach
- Autor: Russell, Stuart J. (Stuart Jonathan)
- Autor: Norvig, Peter
- ISBN: 968880682X
- Código Dewey: 006.3 R917
- Editorial: México : Prentice-Hall Hispanoamericana
- Biblioteca: BC, Circulación.
- Edición: xxvii
- Año: 1996
- Ejemplares: 1
- Páginas: 979
- Serie(s):
- Inteligencia artificial de Prentice-Hall.
- Materia(s):
- INTELIGENCIA ARTIFICIAL.
|
consulta_dewey (Dewey = 006.3 R917) |
Título: Artificial Intelligence: A modern Approach
- Autor: Russell, Stuart J. (Stuart Jonathan)
- Autor: Norvig, Peter
- ISBN: 968880682X
- Código Dewey: 006.3 R917
- Editorial: México : Prentice-Hall Hispanoamericana
- Biblioteca: BC, Circulación.
- Edición: xxvii
- Año: 1996
- Ejemplares: 1
- Páginas: 979
- Serie(s):
- Inteligencia artificial de Prentice-Hall.
- Materia(s):
- INTELIGENCIA ARTIFICIAL.
|
consulta_libro (ISBN = 8448118588) |
Título: Inteligencia Artificial
- Autor: Rich, Elaine
- ISBN: 8448118588
- Código Dewey: 006.3 R371
- Editorial: Madrid : McGraw-Hill/Interamericana de España
- Biblioteca: Reserva BC.
- Edición: 2a. ed.
- Año: 1994
- Ejemplares: 1
- Páginas: 703
- Materia(s):
- INTELIGENCIA ARTIFICIAL.
|
consulta_dewey (Dewey = 006.3 R371) |
Título: Inteligencia Artificial
- Autor: Rich, Elaine
- ISBN: 8448118588
- Código Dewey: 006.3 R371
- Editorial: Madrid : McGraw-Hill/Interamericana de España
- Biblioteca: Reserva BC.
- Edición: 2a. ed.
- Año: 1994
- Ejemplares: 1
- Páginas: 703
- Materia(s):
- INTELIGENCIA ARTIFICIAL.
|
(Al tope está el índice de contenidos)
- Agentes basados en reglas
Reglas aplicadas a lo que son búsquedas:
- si ambos hay un único autor de un libro, y este autor no
ha escrito más libros dentro del KB, o el título
buscado calza únicamente con un libro de la KB, entonces
desplegar los datos del libro.
- si un calce devuelve más de un libro presente en el
KB, desplegar el calce de la categoría completa, y su
asociado autor(es) y clasificación Dewey.
(Al tope está el índice de contenidos)
- Agente reflejo con estado interno
aplicado al mismo caso, si estoy en un ambiente de
búsqueda específico, entonces:
[tupla variable : valor, donde {} representa necesariamente uno
de la lista, [] opcional]
- buscando_por: {título | ISBN | código_Dewey |
autor | materia | año | editorial | etc. }
- aceptando_entradas_parciales: {sí | no }
- idioma: {español | English | Français | italiano |
português| etc. }
- clave_libro_digital_desplegado: clave
- sección_libro_digital_desplegado: sección
Además algunas reglas:
- si
aceptando_entradas_parciales = sí , entonces buscar en
toda la categoría por la clave de búsqueda y
devolver las respuestas que calcen
- Sino, buscar sólo hasta que se encuentre el calce
exacto de la entrada, previa validación, si se aplica a la
categoría.
(Al tope está el índice de contenidos)
- Agentes basados en metas
Si se piensa que el objetivo o meta es encontrar un libro que
sea de utilidad para el usuario que hace las búsquedas,
- se le puede sugerir los libros más pedidos,
- se le puede sugerir los libros más buscados;
- cada nueva sesión se pueden volver a hacer las
búsquedas fallidas anteriores, o avisar si se ha
incorporado a la KB nuevos libros que las calcen (incluso si se
han modificado).
- ofrecer la opción de refinar una búsqueda que
devuelven muchos calces,
- ordenarlos por algún criterio(s): por ejemplo
- si hay ejemplares disponibles,
- calza mejor la(s) búsqueda(s),
- priorizando una categoría sobre otra (por ejemplo materia
más que autor)
- sugerir calces por las materias relacionadas,
- sugerir calces por los autores relacionados,
- sugerir calces por las series relacionadas,
- sugerir calces por los títulos similares,
- sugerir calces por los series similares, etc.
En el caso de los módulos de lectura de textos digitales,
- capítulos ya leídos,
- libros ya consultados,
- posición en la que quedó la última
sesión.
Podemos suponer que si se ha leído una edición, no
sugerir versiones anteriores, o listarlas al final; ni sugerir
traducciones de la misma obra a otros idiomas que el que el
usuario conoce.
(Al tope está el índice de contenidos)
- Agente racional
El sistema debe guardar la historia de lo buscado, leído,
tiempo, fecha y resultados de las búsquedas. No debería
registrar percepciones redundantes (como la re-lectura de un capítulo,
un libro ya leído, una búsqueda con los mismos resultados, etc.)
a menos que no hayan problemas de recuperación de las mismas percepciones
por no ser únicas.
Una de las razones es que el agente pueda medir el grado de éxito
del usuario, el cual puede ser abstraído como
- la cantidad de un libro leído,
- cantidad de libros que al aparecer en una búsqueda
ya hayan sido leídos,
- que una búsqueda efectivamente liste libros que coincidan
(en alguna medida) con los criterios de búsqueda,
- cantidad de libros listados en una búsqueda que estén disponibles
para lectura,
- etc.
Algunas reglas:
- búsqueda por más de una categoría
puede devolver muchos resultados parciales antes de hacer las
búsquedas restringidas a las salidas de la
búsqueda anterior, por lo que se recomienda buscar
primero por la categoría que tenga menos entradas o
esté ordenada.
(Al tope está el índice de contenidos)
- Agentes basados en conocimiento
Dentro de la Base del Conocimiento (Knowledge Base) debiera tener
guardadas algunas cosas, como por ejemplo:
- todos los libros tienen autor(es), puede ser estos autores desconocidos.
- todo libro en papel tiene una fecha (año) de publicación,
puede esta fecha ser desconocida.
- todo libro tiene por lo menos una primera edición, pudiendo este libro tener más ediciones y reediciones.
- todo libro tiene ISBN y título
- algunos libros tienen clasificación Dewey, tienen Materia(s) relacionadas, Series, etc.
- algunos libros tienen secciones, siendo estas secciones por ejemplo:
introducción, capítulos, bibliografía, apéndices,
índices, prólogos, etc.
-
Luego se aproxima el problema (o parte de éste) a través de
Sistemas Expertos.
Representación del Conocimiento
(Al tope está el índice de contenidos)
- Lógica proposicional
Algunas representaciones bajo Cálculo Proposicional.
(Ver documento del profesor
[www.inf.udec.cl/~campos/aiweb/prop.html])
Esta representación ha aparecido después de representarse bajo
lógica de primer orden,
ya que en esta última se representa mejor.
Reglas para todos los casos
- libro (x) -> tiene_Título (x, T)
- libro (x) -> tiene_ISBN (x, i)
- libro (x) -> tiene_autor (x, a)
- libro (x) -> tiene_año (x, a)
- libro (x) -> parte_de_libro (x, xi)
- parte_de_libro (k, x) -> título_capítulo (x, c)
- parte_de_libro (k, x) -> fichero_parte (x, f)
[f es el URL en donde encontrar el fichero a desplegar]
- (autor (a) -> escribe_libro (x, a)
- (autor (x) -> autor_tiene_nombre (x, n)
- autor (x) -> año_nacimiento (x, a)
- parte_de_libro (k, x) ^ leído_por (x, p, t)
[p es la persona, y t es el momento en el que fue leído]
- libro_leído_por (x, p) ->
(x1,
x2, ..., xn
parte_de_libro (x, xi) ^ leído_por (x, p, ti)
[p es la persona, y los ti son los momentos en los
que las partes xi fueron leídas, un libro ha
sido leído sólo cuando todas sus
partes han sido leídas por la misma persona]
-
persona (x) -> tiene_RUN (x, r)
Una instancia de libro:
- tiene_Título (ISBN=968880682X, "Artificial Intelligence: A modern Approach")
- tiene_ISBN (ISBN=968880682X, 968880682X)
- tiene_autor (ISBN=968880682X, autor=1234567-3)
- tiene_autor (ISBN=968880682X, autor=1234568-2)
- tiene_año (ISBN=968880682X, 1996)
- parte_de_libro (ISBN=968880682X, capítulo=968880682X-1)
- parte_de_libro (ISBN=968880682X, capítulo=968880682X-2)
- ...
- título_capítulo (capítulo=968880682X-2, "Capítulo II")
- ...
Una instancia de autor:
- autor_tiene_nombre (autor=1234567-3, "Russell, Stuart J. (Stuart Jonathan)")
- ...
- tiene_autor (autor=1234568-2, "Norvig, Peter")
- ...
Una instancia de capítulo:
- parte_de_libro (ISBN=968880682X, capítulo=968880682X-2)
- título_capítulo (capítulo=968880682X-2, "Capítulo II")
- parte (capítulo=968880682X-2, "/cgi-bin/URLcapitulo?968880682X-2")
- leído_por (capítulo=968880682X-2, RUN=12695765-3,
"19990401~12:00 (Chile Invierno)")
Una instancia de Persona:
- tiene_RUN (RUN=12695765-3, 12695765-3)
- usuario_tiene_nombre (RUN=12695765-3, "Hunrichse, Molina, Rodrigo, Javier")
El problema surge porque no hay cuantificadores
en las relaciones, ni sabe el sistema si un ISBN corresponde a un libro,
un autor, o si ha sido leído por un usuario.
Así que el Cálculo de Predicados
no son suficiente, algo se mejora al representarse bajo
Lógica de primer orden
(Al tope está el índice de contenidos)
Lógica de primer orden
Algunas representaciones bajo Cálculo de
Predicados de Primer Orden
(Ver documento del profesor [www.inf.udec.cl/~campos/aiweb/calc1.html])
-
(libro (x) -> tiene_Título (x, T))
-
(libro (x) -> tiene_ISBN (x, i))
-
(libro (x) -> tiene_autor (x, a))
-
(libro (x) -> tiene_año (x, a))
-
(libro (x) ->
(1,
x2, ..., xn
parte_de_libro (x, xi))
-
parte_de_libro (k, x) -> título_capítulo (x, c)
-
parte_de_libro (k, x) -> fichero_parte (x, f)
[f es el URL en donde encontrar el fichero a desplegar]
-
(autor (a) -> escribe_libro (x, a))
-
(autor (x) -> autor_tiene_nombre (x, n))
-
(autor (x) -> año_nacimiento (x, a))
-
parte_de_libro (k, x) ^ leído_por (x, p, t)
[p es la persona, y t es el momento en el que fue leído]
-
libro_leído_por (x, p) ->
(1,
x2, ..., xn
parte_de_libro (x, xi) ^ leído_por (x, p, ti))
[p es la persona, y los ti son los momentos en los
que las partes xi fueron leídas, un libro ha
sido leído sólo cuando todas sus
partes han sido leídas por la misma persona]
-
persona (x) -> tiene_RUN (x, r)
Una instancia de libro:
- tiene_Título (ISBN=968880682X, "Artificial Intelligence: A modern Approach")
- tiene_ISBN (ISBN=968880682X, 968880682X)
- tiene_autor (ISBN=968880682X, autor=1234567-3)
- tiene_autor (ISBN=968880682X, autor=1234568-2)
- tiene_año (ISBN=968880682X, 1996)
- parte_de_libro (ISBN=968880682X, capítulo=968880682X-1)
- parte_de_libro (ISBN=968880682X, capítulo=968880682X-2)
- ...
- título_capítulo (capítulo=968880682X-2, "Capítulo II")
- ...
Una instancia de autor:
- autor_tiene_nombre (autor=1234567-3, "Russell, Stuart J. (Stuart Jonathan)")
- ...
- tiene_autor (autor=1234568-2, "Norvig, Peter")
- ...
Una instancia de capítulo:
- parte_de_libro (ISBN=968880682X, capítulo=968880682X-2)
- título_capítulo (capítulo=968880682X-2, "Capítulo II")
- parte (capítulo=968880682X-2, "/cgi-bin/URLcapitulo?968880682X-2")
- leído_por (capítulo=968880682X-2, RUN=12695765-3,
"19990401~12:00 (Chile Invierno)")
Una instancia de Persona:
- tiene_RUN (RUN=12695765-3, 12695765-3)
- usuario_tiene_nombre (RUN=12695765-3, "Hunrichse, Molina, Rodrigo, Javier")
(Al tope está el índice de contenidos)
Redes Semánticas
Puesto que las imágenes no son algo fácil de
hacer, pretendo representar las redes semánticas en
hipertexto:
- libro <-tiene_Título-> Título
- libro <-tiene_Autor-> Autor
- libro <-tiene_ISBN-> ISBN
- libro <-tiene_Código_dewey-> Código Dewey
- libro <-tiene_Editorial-> Editorial
- libro <-tiene_Edición-> Edición
- libro <-tiene_Año-> Año
- libro <-tiene_Páginas-> Páginas
- libro <-tiene_Series-> Serie
- libro <-tiene_Materia-> Materia
- libro <-tiene_Sección-> Sección
- libro <-solicitado_por-> Persona
- libro <-solicitado_en-> Momento
- Persona <-tiene_Nombre_de-> Nombre
- Persona <-tiene_RUN_de-> RUN
- ...
- Sección <-leída_por-> Persona
- Sección <-leída_en-> Momento
Una instancia de libro:
- libro <-instancia_de-> ISBN=968880682X
- ISBN=968880628X <-tiene_Autor-> Russell, Stuart J. (Stuart Jonathan)
- ISBN=968880628X <-tiene_Autor-> Norvig, Peter
- ISBN=968880628X <-tiene_ISBN-> 968880682X
- ISBN=968880628X <-tiene_Código_Dewey-> 006.3 R917
- ISBN=968880628X <-tiene_Editorial-> México: Prentice-Hall Hispanoamericana
- ISBN=968880628X <-tiene_Biblioteca-> BC, Circulación.
- ISBN=968880628X <-tiene_Edición-> xxvii
- ISBN=968880628X <-tiene_Año-> 1996
- ISBN=968880628X <-tiene_Páginas-> 979
Las partes de un libro:
- Sección <-es_un-> Introducción
- Sección <-es_un-> Capítulo
- Sección <-es_un-> Apéndice
- Sección <-es_un-> Prólogo
- Sección <-es_un-> ...
- Capítulo <-es_un-> Capítulo 1
- Capítulo <-es_un-> Capítulo i
- Capítulo <-es_un-> Capítulo I
- Capítulo <-es_un-> Capítulo Primero
- ...
Una solicitud:
- ISBN=968880628X <-solicitado_en-> 19990401~12:00 (Chile Invierno)
- ISBN=968880628X <-solicitado_por-> RUN=12695765-3
Una instancia de Persona:
- Persona <-instancia_de->
- RUN=12695765-3 <-tiene_Nombre_de-> Rodrigo Hunrichse
- RUN=12695765-3 <-tiene_RUN_de-> 12695765-3
- ...
El problema surge porque hay relaciones entre
más de dos nodos, así que las redes
semánticas tradicionales no son suficiente.
(Al tope está el índice de contenidos)
Frames (marcos)
Un ejemplo de representación por medio de frames:
(Ver documento del profesor [www.inf.udec.cl/~intartif/marcos.htm])
FRAME e-libro
- Nombre:
- rango: caracteres[1-100]
opcional: no
- AUTOR:
- cantidad mínima: 0
- cantidad máxima: 3
- opcional: sí
- if-added: cantidad_de_autores++, desplegar en el
espacio de autor, añadir al autor a la lista de autores.
- año de nacimiento:
- rango: números enteros hasta el año presente
- opcional: sí
- if-added: desplegar en el espacio del autor de la
forma Autor [año de nacimiento - año de muerte]
- año de muerte:
- rango: números enteros hasta el año presente
- opcional: sí
- if-added: desplegar en el espacio del autor de la
forma Autor [año de nacimiento - año de muerte]
- ISBN:
- rango: caracteres[1-40]
- opcional: no
- Editorial:
- rango: caracteres[1-40]
- País: caracteres[1-60]
- opcional: no
- Año:
- rango: números enteros hasta el año
presente
- opcional: sí
- Código Dewey:
- rango: caracteres[1-40]
- opcional: no
- Edición:
- rango: caracteres[1-40]
- opcional: no
- Páginas:
- rango: números naturales
- opcional: sí
- Materias:
-
Una instancia de libro:
FRAME ISBN=968880682X
- Nombre: Artificial Intelligence: A modern Approach
- AUTOR: Russell, Stuart J. (Stuart Jonathan)
- ISBN: 968880682X
- Código Dewey: 006.3 R917
- Editorial: México : Prentice-Hall Hispanoamericana
- Edición: xxvii
- Año: 1996
- Páginas: 979
- Materia(s):
- INTELIGENCIA ARTIFICIAL.
No hay más actividades en donde ocurran eventos que
modifiquen conductas, por lo que los frames no son buena
elección de KB, excepto por la posible herencia al
ingresar nuevas ediciones de un nuevo libro, pero no siempre.
No suelen añadírseles secciones a un libro
(edición), ni descubrírseles nuevos autores,
excepto quizás correcciones, las que sobrescriben los
datos anteriores. Por eso, los Frames no son tan buen modelo por
defecto.
(Al tope está el índice de contenidos)
Reglas de producción
(Al tope está el índice de contenidos)
Búsqueda
Debemos definir estados y metas, así que ahora enuncio
algunos:
- Metas
- leer todos los libros disponibles relacionados con una Materia
- leer todos los libros disponibles relacionados con un Autor
- leer todos los libros disponibles relacionados con un Autor
- Estados:
- el usuario no ha leído partes del libro
- el usuario ha laído partes del libro pero no todas
- el usuario ha laído todas las partes del libro
- el usuario ha leído ninguno de los libros disponibles relacionados con una Materia
- el usuario ha leído algunos de los libros disponibles relacionados con una Materia
- el usuario ha leído todos los libros disponibles relacionados con una Materia
- el usuario ha leído ninguno de los libros disponibles relacionados con un Autor
- el usuario ha leído algunos de los libros disponibles relacionados con un Autor
- el usuario ha leído todos los libros disponibles relacionados con un Autor
Buscar libros por materia no es un buen ejemplo porque se listan
todos. Ni por título.
- Operadores:
- leer una parte del libro (ej.:
- el usuario lee capítulo 1 del libro ISBN=968880682X.
- el usuario lee capítulo 2 del libro ISBN=968880682X.
- el usuario lee capítulo 3 del libro ISBN=968880682X.
- ...
)
- Prueba de meta:
- el usuario ha leídos todas las partes de un libro
- el usuario ha leído todos los libros disponibles relacionados con un Autor
- el usuario ha leído todos los libros disponibles relacionados con una Materia
- Costo de ruta:
- Todos el mismo valor (podría ser ascendente (o
descendente) en el orden de las partes en el libro lineal, pero
en rigor es el mismo)
- Estado Inicial:
- el usuario no ha leído partes del libro
- el usuario ha leído ninguno de los libros disponibles relacionados con una Materia
- el usuario ha leído ninguno de los libros disponibles relacionados con un Autor
Falta
(Al tope está el índice de contenidos)
Planificación
Falta
(Al tope está el índice de contenidos)
Aviso de actualización por e-mail a los Profesores.
Última modificación de este documento: 19990625 viernes por Rodrigo "Alley'Gator" Hunrichse.
Comentarios y sugerencias por e-mail a rhunrich@ing.udec.cl
Volver al tope de este documento
[volver a asignatura Inteligencia Artificial por Rodrigo Hunrichse]
[volver a asignaturas tomadas por Rodrigo Hunrichse]
[volver al índice de la homepage]
Copyright © 1997,1998,1999 (o anterior)
by
Rodrigo "Alley'Gator" Hunrichse.