Tema General Sistemas Basados en Conocimientos
Tema General Sistemas Basados en Conocimientos
Tema General Sistemas Basados en Conocimientos
Fundamentos de la Inteligencia
Artificial
Fuente: http://borrowbits.com/2012/03/inteligencia-artificial-mito-orealidad/
Bienvenida
Estimados estudiantes bienvenidos! a la primera semana del curso,
donde abordaremos los conceptos bsicos de la inteligencia artificial,
su historia y aplicaciones en sectores industriales y empresariales.
Trataremos el test de Turing que permite determinar en qu momento
una mquina adquiere la categora de comportamiento inteligente.
Alan Turing es considerado el padre de la inteligencia artificial.
Asimismo presentaremos la estructura de los sistemas basados en
conocimiento. Los contenidos se complementan con interesantes
lecturas, valiosos videos, pginas interactivas e importantes
actividades de evaluacin que conducen a la metacognicin y a la
comprobacin de los aprendizajes logrados.
Empecemos!
Introduccin al tema
Fuente: http://psmheuristica.webnode.com.ve/clasificacion-metodosheuristicos/sistema-basados-en-el-conocimiento-sbc/
El estudio de la inteligencia artificial se inicia formalmente en
la dcada de los aos 50, y desde entonces sus tcnicas han sido
utilizadas y aplicadas en diversas reas comunes al desempeo
cotidiano de las personas, ayudando, reemplazando, simulando las
acciones o decisiones tomadas por individuos con ciertas
caractersticas en particular.
La Inteligencia Artificial basada en las ciencias de la
computacin se complementa con la fisiologa y filosofa,
reuniendo varios campos (robtica, sistemas expertos,
sistemas inteligentes entre otros), todos los cuales tienen en
comn la creacin de mquinas que pueden en primer lugar
comportarse y posteriormente "pensar" tal y como lo hacen los
humanos. La idea de construir una mquina, que pueda ejecutar
tareas que parecen necesitar de la inteligencia humana para llevarse
a cabo es un atractivo. Las tareas que han sido estudiadas desde este
punto de vista incluyen juegos, traduccin de idiomas, diagnstico,
robtica, suministro de asesora experta en diversos temas.
Aunque no existe una definicin nica, se entiende sus reas de
aplicacin que las vamos conociendo a travs de su historia y los
legados dejados por los investigadores de la disciplina. Los temas de
la inteligencia artificial son relativamente nuevos y en permanente
evolucin por lo que es necesario ubicar el contexto en el que se
desarrollan las aplicaciones y la tecnologa utilizada, sin las
computadoras actuales no hubiera sido posible el avance de la
disciplina.
Por esta razn en esta sesin estudiamos los conceptos generales de
la inteligencia artificial, su historia, aplicaciones y tests para verificar
cuando una mquina tiene comportamiento inteligente. Es
fundamental
comprender
los
contenidos
propuestos
para
Aprendizajes esperados
Conozcamos ahora las capacidades y actitudes a desarrollar en este
primer tema:
Capacidades
Actitudes
Marco conceptual
Analiza el marco conceptual del tema
La inteligencia artificial es relativamente nueva (se inicia formalmente
a mediados del sigo pasado) sin embargo a la fecha no tenemos una
definicin precisa, los autores la definen en funcin de los diferentes
escenarios en los que se producen las soluciones. Se desarroll
gracias a la tecnologa computacional y actualmente se aplica
prcticamente en todos los campos del quehacer humano.
Observa detenidamente el siguiente esquema, en el encontrars de
un "vistazo" de manera sintetizada los principales concepto de la
temtica que abordaremos. Qu conceptos o categoras te llaman la
atencin?
Fuente: http://despiertaalfuturo.blogspot.com/2014/11/inteligenciaartificial-puede-extinguir.html
La historia del ser humano se ha visto rodeada de creaciones e
innovaciones tecnolgicas que van desde el invento de herramientas
para la agricultura y uso de la rueda que le permitan ahorro de
esfuerzo en la realizacin de tareas fsicas hasta el desarrollo de
herramientas computacionales que apoyan el procesamiento de
informacin, muy til en la gestin de las empresas. En este proceso
de innovaciones aparece la necesidad de procesar conocimiento
humano en un computador que apoye en la toma de decisiones que
requieran cierto grado de inteligencia.
La inteligencia artificial es una rama del conocimiento humano de
reciente aparicin (fue formalizada a mediados del siglo pasado) con
respecto a otras reas como la matemticas, la fsica y la qumica que
tiene varios siglos de tratamiento y estudio. La idea es convertir al
computador en una herramienta de procesamiento de conocimientos,
para ello se requieren realizar un conjunto de tareas, tales como, el
reconocimiento e interpretacin de imgenes, el reconocimiento e
interpretacin del lenguaje natural, el tratamiento de informacin
para elaborar diagnsticos y pronsticos, la deduccin de teoremas,
la participacin en juegos electrnicos, entre otras.
La aparicin de las modernas computadoras hace posible
tcnicamente la implementacin de tareas como la visin artificial,
tratamiento
del
lenguaje
natural
fundamentales
para
el
Relativa
Los
Propuesta por
nfasis en
Criterio
Charial y McDermot
pensamiento
Inteligencia ideal,
racionalidad
Rich y Knight
comportamiento
Inteligencia humana
Inteligencia humana
Racionalidad
Enfoque cognoscitivo.
Enfoque lgico.
test
piensan
de Enfoque
de
inteligentes.
actan
agentes
Procesamiento
simblico:
problemas
de
naturaleza
no
numrica.
Sistemas
basados
en
conocimiento:
visin
cognoscitiva,
estructural.
Agentes
inteligentes:
personalidad
sociedades
de
componentes
con
Fuente:
http://cio.com.mx/inteligencia-artificial-como-puede-serusada-por-las-empresas/
SOLUCION DE PROBLEMAS EN GENERAL. Estudia los sistemas
capaces de hallar mtodos para solucionar problemas de cierto grado
de complejidad.
PERCEPCION. Estudia sistemas capaces de reaccionar al entorno y
actuar sobre el, se usan sensores y para captar las variables del
mundo exterior y actuadores para modificar el entorno. Incluye
sistemas de visin artificial, reconocimiento de formas, etc.
COMPRENSION DE LENGUAJE NATURAL. Estudia sistemas que
interpretan el lenguaje natural y permiten la interaccin entre
humanos y mquinas mediante lenguajes no estructurados.
APRENDIZAJE, DEMOSTRACION DE TEOREMAS, JUEGOS. Estudia
tcnicas de aprendizaje que permitan a una mquina captar
informacin del mundo exterior y generar sus propios aprendizajes,
asimismo puede reconocer formas y smbolos matemticos con el
objetivo de demostrar teoremas. Tambin se trabaja con la teora de
juegos de manera que las mquinas se comporten inteligentemente,
por ejemplo en el juego de ajedrez. Tradicionalmente se han
estudiado escenarios que requieren deduccin como son los casos del
granjero, la gallina, el perro y el maz, los misioneros y los canbales,
etc.
SISTEMAS EXPERTOS. Son sistemas capaces de tomar decisiones
en base a informacin almacenada adecuadamente, la misma que es
tratada por un motor de inferencias. Ejemplos de estos sistemas son:
el diagnstico mdico, la ingeniera qumica, la exploracin geolgica,
el diseo de computadoras entre otros.
LENGUAJES DE LA INTELIGENCIA ARTIFICIAL. Para desarrollar
aplicaciones en Inteligencia artificial se usan lenguajes como Prolog
(basado en la lgica) y LISP (procesamiento de listas), en la
Las computadoras
El software
Los programas
La tecnologa
Los robots
Adaptarse al entorno.
Conversacional.
Chateador.
Chatbot.
Chatting
Fuente:
http://www.rutherfordjournal.org/article040101.html. Rosenblatt
Segn Jackson
Hitos
Clsico
1950
1965
Romnt 1965
ico
1875
1975
Modern - a la
o
fech
a
Ao
s
Gestacin
1943
1956
Entusiasm
oy
1952
grandes
expectativ 1969
as
Hitos
Dosis de
realidad
1966
1974
Sistemas
basados
en
conocimie
nto
1969
1979
1986
Regreso de a la
redes
fech
neuronales a
de los SE.
Cambio gradual hacia los tcnicos y lejos
de los rudos (implica cierto grado de
madurez y estabilidad) e.g.,
reconocimiento de voz (HMM),
incertidumbre (Bayes), planeacin (Tweak),
robtica, aprendizaje (PAC), etc...
Biografas
Alan Newell
Hijo de profesor de radiologa de la universidad de
Stanford se cri en San Francisco y se gradu en
Stanford, despus de graduarse pas un ao en
Princeton, pero decidi que no era un matemtico y opt
por trabajar para la RAND Corporation en un proyecto
sobre el modelado de un centro regional de defensa
area. Newell conoci a Simon, con el que comparti su
afinidad acerca de la I.A. (Fuente: Aircenter.net)
El problema cientfico le elige, usted no lo elige. Mi estilo
es ocuparse de un solo problema, a saber, la naturaleza
de la mente humana. se es el problema que he cuidado
a travs de mi carrera cientfica, y ser de esta manera
hasta el final."
Alan
Allen Newell condujo una vida muy productiva y exitosa
Newell
como informtico. Aqu est algo de la "heurstica" que
(1927,199 utiliz:
2)
"Haga lo que usted ame, quiera a lo qu usted hace."
Persona de gran energa y entusiasmo increbles que
sola decir esto.
"Ayude a otros a encontrar un estado similar, no importa
cmo de diferente puedan ser sus opciones" . Puesto
que l era feliz y seguro en lo que l haca, Allen se
imbua sobre lo que haca la gente, y podra ayudarle a
habilitacin
1953-54: Trabajo inacabado en biologa y fsica
1954 (el 7 de de junio): Muerte por el envenenamiento
de cianuro, Wilmslow, Cheshire.
Alan Turing demostr que una serie de instrucciones
sencillas podan resolver cualquier problema complejo.
l y su equipo desarrollaron el Colossus, uno de los
primeros ordenadores. Esta enorme mquina empleaba
1500 vlvulas, que se quemaban a razn de una cada
pocos minutos. El Colossus poda procesar 5000
caracteres por segundo y tena la misin de descifrar el
cdigo alemn Enigma.
Es considerado por muchos como el padre de la
inteligencia artificial.
1903 El 28 de diciembre nace en Budapest (Hungra)
Janos Louis Neumann
1921 Primer escrito matemtico publicado junto con su
tutor.
John Von 1933 Es nombrado profesor en la Universidad de
Neunman Princeton (Nueva Jersey, EEUU), refugio de Einstein y de
(1903,
otros matemticos emigrados de Europa
1957)
1942 Publica un libro sobre la aplicacin de la teora de
juegos a la economa
1944 Tiene noticias sobre el proyecto secreto ENIAC
1945 Asiste a las primeras pruebas de la bomba atmica
1947 Informe sobre el ENIAC y el bosquejo del diseo de
un nuevo ordenador, que recibir el nombre de EDVAC
(Electronic Discrete Variable Computer) y ser
construido segn sus ideas
1951 JOHNIAC, el ordenador diseado personalmente
por Neumann, entra en funcionamiento en la
Universidad de Princeton
1951-1953 Presidente de la American Mathematical
Society. Trabaja en la teora de autmatas
1955 El presidente Eisenhower le nombre comisionado
de la US Atomic Energy
1957 El 8 de febrero muere de cncer en Washington
D.C (U.S.A). Como un honor especial se dedica un
volumen completo del Bulletin of the American
Mathematical Society a su vida y obra.
Hasta 1945 la arquitectura fsica de todo ordenador
servan a la par de programa en el plano ms estricto, y
por lo tanto los cometidos de estas mquinas eran
inamovibles, a menos que los ingenieros se atreviesen a
cambiar las conexiones, esto adems de ser una tarea
ardua y en ocasiones casi imposible, era sumamente
costoso. John Von Neumann sugiri en 1945 una
alternativa hacia una arquitectura ms verstil. Nacido
en Budapest en 1903, Neumann a ofrecido a la
Herbert
Simon
(1916 2001)
Claude
Elwood
Shannon
(19162001)
Hurbert
Dreyfus
(1929-)
Sistemas desarrollados
Fuente: http://www.monografias.com/trabajos64/inteligencia-artificialinvestigacion-sistemas-computo/inteligencia-artificial-investigacionsistemas-computo2.shtml
MACSYMA AM - D. Lenat
ELIZA - Weisenbaum
Shakey - SRI
SHDRLU - Winogard
MYCIN - E. Shortliffe
ELIZA
MYCIN
los estados
de venta al
financieros
Prdidas y
Problemas clsicos
Fuente: https://deista.wordpress.com/2010/05/09/juego-matematicolas-torres-de-hanoi/
En los cursos universitarios se han propuesto un conjunto de
problemas denominados clsicos tales como: Las N reinas, Las torres
de Hanoi, Los misioneros y los canbales., El problema de los baldes,
El problema del agente viajero, El problema del granjero, etc.
Planteamos resolver el Problema de los baldes (todo un reto para
inteligentes)
Tenemos 2 baldes de agua vacos, uno con capacidad de 6 galones y
otro con capacidad de 8 galones. Teniendo en cuenta que podemos
llenar cada uno de los baldes como queramos, Cmo podramos
llenar el balde de 8 galones exactamente hasta la mitad?
(Supongamos que no existe ninguna marca de medidas en los
baldes).
En la siguiente tabla se observan acciones que conducen a una
solucin:
Nmero
Accin
incompleto,
inconsistente,
Sistemas
de
apoyo
en
la
planificacin
articulando
coherentemente objetivos complejos e interrelacionados y las
acciones que optimicen el logro de los mismos teniendo en
cuenta las dependencias y restricciones existentes.
Mdulo de razonamiento.
o
Interfaz de interaccin.
Mdulo de Aprendizaje
Historia
de
la
inteligencia
https://www.youtube.com/watch?v=ivW6zUse6h0
El
test
de
v=Y90a6Xwwh3w
Mquina
logra
aprobar
el
test
www.youtube.com/watch?v=TQuszZQKQTc
artificial:
turing: https://www.youtube.com/watch?
de
Turing:
Sangre.
Leucocitos.
Dendritas.
Clulas madre.
Cuerpo.
Sinapsis.
capacidad
Robocop.
Boris.
Eugenne.
de
Asimo.
Bibliografa
1. Bourcier, D. Inteligencia artificial y derecho. Disponible en la
Biblioteca de la USS.
2. Russell y Norving (2004). Inteligencia artificial: Un enfoque
moderno. Pearson Education S.A. 2da edicin. Espaa.
Disponible en la Biblioteca de la USS.
3. Delgado, A. Inteligencia artificial y minirobots. Disponible en la
Biblioteca de la USS.
4. Escolano, F. Inteligencia artificial, modelos,tcnicas y reas de
aplicacin.. Disponible en la Biblioteca de la USS.
5. Nilsson, N. Inteligencia artificial: Una nueva sntesis. Disponible
en la Biblioteca de la USS.
6. Pajarez, M. Inteligencia artificial e ingeniera del conocimiento.
Disponible en la Biblioteca de la USS.
7. Palma, J. Inteligencia artificial. Disponible en la Biblioteca de la
USS.
8. Ponce, P. Inteligencia artificial con aplicaciones en ingeniera.
Disponible en la Biblioteca de la USS.
9. Sistemas basados en
conocimientos. http://www.wolnm.org/apa/articulos/Sistemas_Ba
sados_Conocimiento.pdf?target=
Lecturas recomendadas
Para saber ms
Ponemos a tu disposicin y te invitamos a revisar dos interesantes
documentos que te ayudaran a reforzar y ampliar los temas que
hemos estudiado.
URL: http://www.comoves.unam.mx/numeros/articulo/2/lainteligencia-artificial-hacia-donde-nos-lleva
Breve descripcin:
El documento presenta un anlisis sobre la capacidad de inteligencia
artificial que pueden adquirir las mquinas, incluye una entrevista al
Dr. Ismael Espinoza del Laboratorio de Ciberntica de la UNAM quin
analiza la tendencia en la disciplina y el impacto en las personas.
...
URL: https://www.bbvaopenmind.com/articulo/el-futuro-de-lainteligencia-artificial-y-la-cibernetica/?fullscreen=true
Breve descripcin:
El autor Kevin Warwick, Profesor de ciberntica de la Universidad de
Reading, analiza los cyborg que son seres humanos que han recibido
implantes de componentes electrnicos para realizar tareas propias
de los humanos, por ejemplo visin, audicin, locomocin, etc.
Conclusiones de la sesin
Durante esta semana de aprendizaje hemos comprendido que:
Metacognicin
Las siguientes preguntas te ayudarn a reflexionar sobre tus propios
aprendizajes, es un ejercicio recomendado pata razonar e identificar
nuestro esfuerzo intelectual, la finalidad es guiar nuestras acciones y
procesos mentales.
De la temtica abordada que te llam ms la atencin?
Consideras que aprendiste con los temas abordados?
Tuviste dificultad
solucionaste?
con
algn
tema
actividad?
Cmo
lo
Tema
02.
conocimiento
Representacin
del
Fuente: http://lanegavi.blogspot.com/
Bienvenida
Estimados estudiantes bienvenidos! a la segunda semana del curso,
donde abordaremos la representacin del conocimiento basado en
reglas, aplicaremos la lgica de predicados y conoceremos el lenguaje
Prolog para el tratamiento de reglas. Durante esta semana
trabajaremos con el IDE Turbo Prolog que nos permite trabajar en
forma sencilla introducindonos al mundo de la programacin
declarativa.. Los contenidos se complementan con interesantes
lecturas, valiosos vdeos, pginas interactivas e importantes
actividades de evaluacin que conducen a la metacognicin y a la
comprobacin de los aprendizajes logrados.
Continuemos!
Introduccin al tema
Fuente: http://psmheuristica.webnode.com.ve/clasificacion-metodosheuristicos/sistema-basados-en-el-conocimiento-sbc/
La representacin de conocimiento es el punto de partida cuando
tratamos de disear soluciones que requieren cierto grado de
inteligencia con el uso de computadoras. Los sistemas operativos
actuales permiten ejecutar programas basados en algoritmos y con
ellos podemos implementar aplicaciones informticas. El uso de la
lgica de predicados cambia el paradigma de la programacin
algortmica hacia la programacin declarativa, concentrndonos en
los datos y la definicin de reglas, sobre las cuales realizamos
inferencias para lograr soluciones relacionadas con el conocimiento
que podemos extraer de la informacin o datos.
Se ha diseado un lenguaje que nos permite implementar el
requerimiento del prrafo anterior conocido como Prolog
(Programacin lgica) y se basa en el paradigma de la programacin
declarativa que consiste precisamente declarar hechos o datos,
definir reglas que los relaciona y el motor de inferencias de Prolog
produce resultados.
Esta nueva forma de programar es sencilla, pero es necesario un
ambiente en el cual se asle los objetos computacionales para tratar
objetos de informacin durante el proceso de aprendizaje, por esta
razn presentaremos un IDE tradicional conocido como Turbo Prolog,
el cul no sirve para realizar soluciones profesionales en la actualidad,
sin embargo, nos permite ingresar al mundo de la programacin
declarativa, posteriormente presentaremos IDEs modernos y visuales.
Durante esta semana conoceremos la estructura bsica de un
programa Prolog y los conceptos de tratamiento de variables y el
procesamiento de reglas. La recursividad es un concepto
Aprendizajes esperados
Ocultar
Conozcamos ahora las capacidades y actitudes a desarrollar en este
primer tema:
Capacidades
Ocultar
Actitudes
Ocultar
Reconoce los
conocimientos.
conceptos
de
los
sistemas
basados
en
Marco conceptual
Analiza el marco conceptual del tema
Estimado estudiante te invitamos a participar activamente de las
actividades de aprendizaje relacionadas con la representacin del
conocimiento que nos permitir conocer la lgica de predicados y su
tratamiento con el lenguaje Prolog, asimismo conoceremos un nuevo
paradigma conocido como programacin declarativa concentrando
nuestra atencin en los datos que son procesados con reglas bien
definidas, conoceremos el concepto de variables ligadas y
aprenderemos a usar la recursividad.
Observa detenidamente el siguiente esquema, en el encontrars de
un "vistazo" de manera sintetizada los principales concepto de la
temtica que abordaremos. Qu conceptos o categoras te llaman la
atencin?
2.1 Lgica
Fuente:
https://poiritem.wordpress.com/2009/11/16/6-4-2-agentesinteligentes-y-la-naturaleza-de-su-entorno/
El mundo que nos rodea est formado por un conjunto de objetos
con propiedades particulares que se relacionan entre s y que los
diferencian uno a otro, generando lo que llamamos conocimiento.
Estas relaciones se expresan en lenguaje natural hablado o escrito
utilizando oraciones que el ser humano interpreta de acuerdo a
formas de razonamiento que an son motivo de estudio por parte de
los especialistas en ramas como la psicologa, sociologa, etc.
La concepcin moderna de la IA permite definir al agente
inteligente como un ente que posee conocimiento y puede razonar
sobre las acciones a realizar frente a cierto impulso o cambio en el
mundo que lo rodea.
En trminos generales la Inteligencia Artificial (IA) busca que un
computador se comporte frente a determinadas situaciones como lo
hara un ser humano. En trminos especficos intentamos representar
el conocimiento humano en un computador y partir de ello generar
formas de razonamiento para resolver problemas que requieran cierto
grado de inteligencia.
Respecto al primer punto los lenguajes naturales estn orientados
fundamentalmente para cumplir fines de comunicacin entre seres
humanos por lo que utilizar stos para representar conocimiento en
un computador resulta una tarea muy complicada y probablemente
por el momento fuera de esquema. Por ello recurrimos a un
de
Juan
..........se
denota
............
Fuente: http://www.upf.edu/hipertextnet/numero-2/linguistica.html
Expresin
Juan es
Pedro
padre
Objetos
de Juan, Pedro
Relacin
padre
est casado
Miguel
est Miguel, Fsica
matriculado en Fsica
matriculado
Ana, karate
Garca, dicta
practica
Fuente: http://sofialenguajesprogra.blogspot.com/
Una variable libre puede ser ligada solamente una vez. Esto
difiere de la operacin de asignacin que existe en otros
lenguajes en los que una variable puede recibir varios valores
en forma sucesiva, en PROLOG sto ltimo no es posible por el
contexto mismo que las variables representan.
P es padre de B y
M es madre de A y
M es madre de B.
Formulamos la siguiente pregunta objetivo:
Luis es hermano de Pedro ?
Haciendo un anlisis de ejecucin decimos:
1. El objetivo es determinar si Luis es hermano de Pedro. Esto
equivale a decir A es hermano de B. A se liga con Luis y B
se liga con Pedro.
2. Con este objetivo entramos a la forma de razonamiento y
tomamos la primera premisa P es padre de Luis. Buscando en
los hechos encontramos Juan es Padre de Pedro por lo tanto
P se liga con Juan, decimos que sta premisa es verdadera y
continuamos con la segunda.
3. P es padre de B. En el objetivo B fue ligada con Pedro y en
la primera premisa P fue ligada con Juan, por lo tanto buscamos
el hecho Juan es padre de Pedro determinando que es
verdadera por lo que continuamos con la tercera premisa.
4. M es madre de A. En el objetivo A fue ligada con Luis, sin
embargo M an no ha sido ligada y se dice que M es una
variable libre. En ste caso buscamos en los hechos el primer
valor que pueda ligar con M. As tenemos que Ana es madre
de Luis permite ligar A con Ana hacindose verdadera por lo
que continuamos con la cuarta premisa.
5. M es madre de B. En el objetivo B fue ligada con Pedro y en
la tercera premisa M fue ligada con Ana, por lo tanto
buscamos el hecho Ana es madre de Pedro determinando
que es verdadera. As mismo no hay ms premisas que buscar.
6. Habiendo determinado que todas las premisas de la forma de
razonamiento son verdaderas concluimos que la objetivo Luis
es hermano de Pedro es verdadero
7. En el caso que una premisa hubiera sido falsa, no se contina
con la siguiente y se dice que el objetivo es falso.
2.5
Estructura
de
un
tratamiento de variables.
programa,
Fuente: http://ia-israel.blogspot.com/2014_06_01_archive.html
tiene
tres
componentes
bsicos:
Tipos de datos
En TProlog existen tipos de datos estndar predefinidos:
STRING...........Secuencia
comillas, incluye el espacio.
de
caracteres
encerrados
entre
Constantes
1. Las constantes en TProlog tienen la misma concepcin que en
otros lenguajes, y representan datos en s mismos.
2. Ejemplos de constantes:
Juan....... constante tipo string
234 ........... constante tipo integer
inicio,
men,
opcion(char),
programa,
fin.
Observe:
Ejemplo:
clauses
hermano(A,B):- sexo(A,masculino),
padre(P,A),
padre(P,B),
madre(M,A),
madre(M,B),
A <> B.
Observe:
El uso de variables: A, B, P, M.
Predicados extralgicos
TProlog define una serie de predicados estandard para complementar
las tareas propias del computador, tales como, limpiar pantalla, leer e
imprimir datos, etc. En ste captulo presentamos algunos de estos
predicados:
--------------------------------------------------------------------------------------------------------------------Predicado: WRITE
Sintaxis : write(Lista de argumentos) ............. (o,...............)
Donde: Lista de argumentos puede ser uno o ms argumentos
separados por comas.
Los argumentos pueden ser son constantes o variables ligadas.
Funcin: Escribe sobre el dispositivo de salida el valor de los
argumentos.
-----------------------------------------------------------------------------------------------------------------Predicado: READLN
Sintaxis: readln(X) ............. (o)
Donde: X es una variable libre cuando el predicado es invocado
X es de tipo string o symbol
Funcin : Lee desde el dispositivo de entrada una cadena hasta que
encuentra un salto de linea. En el caso del teclado, el salto de linea
corresponde a la tecla <enter>.
La cadena es ligada a la variable X.
Nota : Invocando el predicado readln(_) hace que el programa
detenga su ejecucin hasta que se presione <enter>.
En ste caso se dice que que el argumento corresponde a una
variable annima.
--------------------------------------------------------------------------------------------------------------------Predicado: READINT
Sintaxis : readint(X) ............. (o)
Donde: X es una variable libre cuando el predicado es invocado
X es de tipo integer
Funcin : Lee desde el dispositivo de entrada una cadena hasta que
encuentra un salto de linea. En el caso del teclado, el salto de linea
corresponde a la tecla <enter>.
La cadena es convertida internamente al tipo integer y ligada a la
variable X.
Si la cadena leda no corresponde con la sintaxis del tipo integer se
produce una falla.
--------------------------------------------------------------------------------------------------------------------Predicado: READREAL
Sintaxis : readreal(X) ............. (o)
Donde: X es una variable libre cuando el predicado es invocado
X es de tipo real
Funcin : Lee desde el dispositivo de entrada una cadena hasta que
encuentra un salto de linea. En el caso del teclado, el salto de linea
corresponde a la tecla <enter>.
La cadena es convertida internamente al tipo real y ligada a la
variable X.
Si la cadena leda no corresponde con la sintaxis del tipo real se
produce una falla.
---------------------------------------------------------------------------------------------------------------------
Predicado: READCHAR
Sintaxis : readchar(X) ............. (o)
Donde: X es una variable libre cuando el predicado es invocado
X es de tipo char
Funcin : Lee desde el dispositivo de entrada un caracter. (No
necesita salto de linea)
El caracter es ligado a la variable X.
--------------------------------------------------------------------------------------------------------------------Predicado: CLEARWINDOW
Sintaxis : clearwindow
Funcin : Limpia la ventana activa.
--------------------------------------------------------------------------------------------------------------------Predicado: MAKEWINDOW
Sintaxis : makewindow(NunVent, AtrPant, AtrMarco, TitVent, Fila, Col,
Prof, Ancho )
(i, i, i, i, i, i, i, i)
(o, o, o, o, o, o, o, o)
Donde: NumVent... integer ..... Nmero de Ventana
AtrPant...... integer ..... Atributo de Pantalla
AtrMarco.. integer ..... Atributo del Marco
TitVent ..... string ........ Ttulo de la Ventana
Fila ........... integer ...... Nmero de Fila, esquina superior izquierda
Col ........... integer ...... Nmero de Columna, esquina superior
derecha
--------------------------------------------------------------------------------------------------------------------Predicado: BEEP
Sintaxis : beep
Funcin : Genera la emisin de un sonido corto a travs del parlante
de computador.
--------------------------------------------------------------------------------------------------------------------Predicado: NL
Sintaxis : nl
Funcin : Genera un salto de linea, ubican el cursor al inicio de la
siguiente linea.
deporte(Pedro,E)...................... E no ligado.
deporte(F,voleyball)................. F no ligado.
VARIABLES ANONIMAS
Algunas veces no se requiere el valor de un argumento en cierta
clusula, PROLOG provee de un concepto de variable annima, que se
denota por el caracter subrayado _ y al momento de leer el
predicado se ignora el valor del argumento referenciado.
A manera de ejemplo, supongamos que tenemos el predicado
alumno: alumno(Nombre, Sexo, Talla, Peso)
y en cierta clusula solo interesa el nombre y el peso, podemos
invocar la siguiente clusula: alumno(Nombre, _, _, Peso)
que se lee: el alumno Nombre tiene un peso de Peso kilos.
ENTRADA / SALIDA ESTANDARD
Los predicados estandard para entrada/salida son read y write
descritos anteriormente. Veamos un ejemplo simple. Programa que
lee una cadena relacionada con cierto valor:
predicates
lee_c(string,string) /* lee_c(M, C): muestra el mensaje M y lee la
cadena C */
clauses
lee_c(M,C):- write(M),
beep,
readln(C).
goal
clearwindow,
lee_c(Entre un nombre: ,X),
write(Nombre ledo: ,X),
nl,
lee_c(Presiona <enter> para continuar ... ,_).
2.6 Recursividad
Fuente:
http://www.mundonet.es/control-de-flujo-estructurasiterativas-ejercicio-3.html?Pg=Entrega10.htm
FOR i = 1 TO 20 DO writeln(notas(i));
El proceso repetitivo de la ejecucin de un menu se puede programar
de la siguiente manera:
opcion =
MIENTRAS
fin
opcion
<>
INICIO
{cuerpo del menu]
LEER(opcion)
proceso(opcion)
FIN
Muchos lenguajes como C y Pascal ejecutan procesos iterativos
basados en stas estructuras. Esto es propio de ellos porque han sido
diseados para implementar soluciones algortmicas.
Cambiemos de giro a nuestros comentarios.
La definicin recursiva del factorial de un nmero es:
factorial(0) = 1
factorial(n) = n * factorial(n-1), si N > 0
La aplicacin de sta frmula recursiva nos permite deducir que:
factorial(8) = 8 * factorial(7)
Observe que para calcular el factorial de 8 se requiere el factorial de
7, que en ste momento no conocemos. As para calcular el factorial
de 7 necesitamos conocer el factorial de 6. Para calcular el factorial
de 5 necesitamos conocer el factorial de 4 y as sucesivamente.
Cuando lleguemos al factorial de 0 podemos detener el proceso
recursivo y completar los factoriales que quedaron pendientes de
solucin.
Los lenguajes como C y Pascal tienen la capacidad de procesar
funciones recursivas, ademas tienen definida la operacin de
asignacin por lo que el siguiente cdigo implementa la funcin
factorial de un nmero en forma recursiva:
FUNCION factorial(n:integer)
INICIO
SI n = 0 ENTONCES factorial = 1.
SI n > 0 ENTONCES factorial = n * factorial(n-1).
FIN
Observamos que el cdigo comprendido entre el bloque INICIO ... FIN
es muy semejante a la definicin recursiva por lo que resulta una
codificacin ms natural que la usada con la estructura FOR.
La implementacin de un procedimiento menu desde un enfoque
recursivo podra ser:
menu()
INICIO
{cuerpo del menu}
LEER(opcion)
proceso(opcion)
SI opcion <> fin ENTONCES menu
FIN
Desde otro punto de vista cuando se trabaja con asignacin dinmica
de memoria es muy importante el tratamiento de punteros y las
implementaciones se basan en procesos recursivos. La definicin de
estructuras de datos tipo listas o rboles requiere declaraciones
recursivas
y
sus
procesos
son
implementados
tambin
recursivamente.
El siguiente cdigo declara recursivamente la estructura lista de
nmeros:
NUEVO_TIPO
lista_numeros = REGISTRO
INICIO
dato(ENTERO)
sig_dato(PUNTERO a lista_numeros)
FIN
Mientras que el siguiente cdigo implementa un procedimiento
recursivo para recorrer la lista (Intente implementarlo usando FOR):
recorre_lista()
INICIO
FIN
Historia
de
la
inteligencia
https://www.youtube.com/watch?v=ivW6zUse6h0
El
test
de
v=Y90a6Xwwh3w
Mquina
logra
aprobar
el
test
www.youtube.com/watch?v=TQuszZQKQTc
turing:
artificial:
https://www.youtube.com/watch?
de
Turing:
Sangre.
Leucocitos.
Dendritas.
Cuerpo.
Clulas madre.
Sinapsis.
Retroalimentacin
La neurona artificial propuesta por McCullock-Pitts contiene Axn,
dendritas, cuerpo y sinapsis.
El test de Turing permite medir:
La capacidad de razonamiento de una mquina.
Retroalimentacin
El test de Turing permite conocer la
comportamiento humano de una mquina.
capacidad
de
Robocop.
Boris.
Eugenne.
Asimo.
Retroalimentacin
En Junio del 2015 cuando se realiza un concurso organizado por la
Real Society recordando el 60 aniversario de la muerte de Turing,
una mquina conocida como bot conversacional Eugene
Goostman logra pasar el test de Turing.
Bibliografa
1. Bourcier, D. Inteligencia artificial y derecho. Disponible en la
Biblioteca de la USS.
2. Russell y Norving (2004). Inteligencia artificial: Un enfoque
moderno. Pearson Education S.A. 2da edicin. Espaa.
Disponible en la Biblioteca de la USS.
3. Delgado, A. Inteligencia artificial y minirobots. Disponible en la
Biblioteca de la USS.
4. Escolano, F. Inteligencia artificial, modelos,tcnicas y reas de
aplicacin.. Disponible en la Biblioteca de la USS.
5. Nilsson, N. Inteligencia artificial: Una nueva sntesis. Disponible
en la Biblioteca de la USS.
6. Pajarez, M. Inteligencia artificial e ingeniera del conocimiento.
Disponible en la Biblioteca de la USS.
7. Palma, J. Inteligencia artificial. Disponible en la Biblioteca de la
USS.
8. Ponce, P. Inteligencia artificial con aplicaciones en ingeniera.
Disponible en la Biblioteca de la USS.
9. Sistemas
basados
en
conocimientos.
http://www.wolnm.org/apa/articulos/Sistemas_Basados_Conocim
iento.pdf?target=
Lecturas recomendadas
Para saber ms
Ponemos a tu disposicin y te invitamos a revisar dos interesantes
documentos que te ayudaran a reforzar y ampliar los temas que
hemos estudiado.
URL:
http://www.comoves.unam.mx/numeros/articulo/2/lainteligencia-artificial-hacia-donde-nos-lleva
Breve descripcin:
El documento presenta un anlisis sobre la capacidad de inteligencia
artificial que pueden adquirir las mquinas, incluye una entrevista al
Dr. Ismael Espinoza del Laboratorio de Ciberntica de la UNAM quin
analiza la tendencia en la disciplina y el impacto en las personas.
...
URL:
https://www.bbvaopenmind.com/articulo/el-futuro-de-lainteligencia-artificial-y-la-cibernetica/?fullscreen=true
Breve descripcin:
El autor Kevin Warwick, Profesor de ciberntica de la Universidad de
Reading, analiza los cyborg que son seres humanos que han recibido
implantes de componentes electrnicos para realizar tareas propias
de los humanos, por ejemplo visin, audicin, locomocin, etc.
Conclusiones de la sesin
Durante esta semana de aprendizaje hemos comprendido que:
logra
pasar
Metacognicin
Las siguientes preguntas te ayudarn a reflexionar sobre tus propios
aprendizajes, es un ejercicio recomendado pata razonar e identificar
nuestro esfuerzo intelectual, la finalidad es guiar nuestras acciones y
procesos mentales.
De la temtica abordada que te llam ms la atencin?
Consideras que aprendiste con los temas abordados?
Tuviste dificultad
solucionaste?
con
algn
tema
actividad?
Cmo
lo
Fuente:http://www.desarrolloweb.com/articulos/1573.php
Bienvenida
Estimados estudiantes bienvenidos! a la tercera semana del curso,
donde continuaremos estudiando el lenguaje Prolog. Durante esta
semana trabajaremos con dos IDEs adicionales, usaremos SWI-Prolog
en sus dos versiones texto y grficos y el IDE Visual Prolog en su
versin comunitaria. Esta semana conoceremos las rutas para buscar,
descargar e instalar los IDEs e implementamos ejemplos de
programacin en Prolog que nos permitirn conocer el tratamiento de
variables y la recursividad. Los contenidos se complementan con
interesantes lecturas, valiosos videos, pginas interactivas e
importantes actividades de evaluacin que conducen a la
metacognicin y a la comprobacin de los aprendizajes logrados.
Avancemos en
conocimiento!
el
interesante
mundo
del
tratamiento
del
Introduccin al tema
Fuente: Fuente:http://www.swi-prolog.org/gtrace.html
La programacin en Prolog es conocida como declarativa porque solo
se requiere declarar hechos o datos considerados verdaderos y reglas
que relacionan estos, el motor de inferencias de Prolog permite
obtener conclusiones referidas a las reglas en forma automtica, no
se requiere programar algoritmos de bsqueda.
La sesin anterior tuvimos la oportunidad de escribir programas en
Turbo Prolog, durante esta semana trabajaremos con SWI-Prolog y con
Visual Prolog, dos IDEs de distribucin gratuita, sobre los cuales
podemos escribir nuestros programas en Prolog.
En Internet existen numerosas referencias a tutoriales y manuales
relacionados con la descarga, instalacin y ejecucin de los IDEs
mencionados. En nuestro caso mostraremos las rutas de descarga
desde las pginas oficiales y los mtodos de instalacin y ejecucin
del primer programa conocido como hola mundo. Luego
desarrollaremos programas que nos permitan comprender la
programacin Prolog que se diferencia de la programacin
algortmica.
En los programas que abordaremos intentaremos proporcionar las
bases para el procesamiento de la informacin convirtindola en
conocimiento. A manera de ejemplo proporcionaremos datos sobre los
miembros de cierta familia, luego incluiremos reglas que declaren las
relaciones entre ellos tales como padre, madre, hermano, abuelo, etc,
y consultaremos a Prolog sobre las relaciones familiares declaradas
Aprendizajes esperados
Conozcamos ahora las capacidades y actitudes a desarrollar en este
tercer tema:
Capacidades
Actitudes
Marco conceptual
3.1 Descarga
Prolog.
instalacin
de
SWI-
Fuente: http://www.swi-prolog.org/download/stable
likes(sam,Food) :italian(Food).
likes(sam,chips).
indian(curry).
indian(dahl).
indian(tandoori).
indian(kurma).
mild(dahl).
mild(tandoori).
mild(kurma).
chinese(chow_mein).
chinese(chop_suey).
chinese(sweet_and_sour).
italian(pizza).
italian(spaghetti).
Observamos la declaracin de las clausulas likes(X, Y ) , indian(X),
mild(X), chinese(X), italian(X). las mismas que desde el punto de vista
de un sistema basado en reglas las podemos catalogar como reglas
de produccin (likes) y el resto como hechos o datos.
Observar tambin que las palabras que comienzan con minscula
dentro de los parntesis son constantes, mientras que las que
comienzan con mayscula son variables, sobre las que se aplica el
emparejamiento durante el procesamiento backtracking.
Sugerimos los siguientes pasos para ejecutar un programa con SWIProlog:
1. Crear una carpeta C:\programasPL
%%
Declaracin
hechos
de
===============
=======
hombre(pedro).
hombre(alberto).
hombre(jorge).
hombre(carlos).
hombre(juan).
el
archivo
creado
se
invoca
hombre(alberto).
hombre(jorge).
hombre(carlos).
hombre(angel).
mujer(flor).
mujer(manuela).
mujer(ana).
mujer(rosario).
padre(alberto,carlos).
padre(alberto,jorge).
padre(alberto,manuela).
padre(alberto,ana).
padre(juan,alberto).
padre(juan,angel).
matrimonio(alberto,flor).
matrimonio(juan,rosario).
madre(M,H):- padre(P,H),
matrimonio(P,M).
hermano(H,X):padre(P,H), padre(P,X),
hombre(X), H<>X.
hermana(H,X):padre(P,H), padre(P,X),
mujer(X), H<>X.
abuelo(A,N):- padre(A,P),
padre(P,N).
abuela(AA,N):abuelo(AO,N),
matrimonio(AO,AA).
matrimonio(juan, X).
abuelo(X,Y).
madre(A,B).
hermana(P, Q).
Fuente:http://www.swi-prolog.org/packages/xpce/UserGuide/sec4.1.html
SWI-Prolog permite la declaracin de clausulas que representan datos
o hechos (informacin) y reglas de produccin que relacionan los
hechos generacin cierto conocimiento. Esta forma de trabajar es
interesante, sin embargo debido al avance de la tecnologa y de las
pantallas que permiten trabajar con objetos visuales, es necesario
disponer de herramientas que combinen el tratamiento lgico de la
informacin con diferentes formas de presentar la informacin.
En este sentido SWI-Prolog permite disear interfaces grficas para
nuestros programas usando la librera XPCE. Proponemos el siguiente
procedimiento, a manera de ejemplo:
1. Ejecutamos SWI-Prolog, aparece el prompt 1 ?2. Invocamos la librera pce: use_module(library(pce)).
3. Creamos un objeto: new(@demo, dialog('Demo Window')).
4. Agregamos
atributos
al
append(text_item(name))).
objeto:
send(@demo,
send(D, append,
label(pr,Preg,font('times','roman',16))),
send(D,
append,
button(si,message(D,return,'si'))),
send(D,
append,
button(no,message(D,return,'no'))),
send(D, default_button, si),
get(D, confirm, Rval),
free(D),
Resp = Rval.
4. Usando el men del editor grabamos el programa p03.pl en la
carpeta C:\programasPL
File / Saves as
5. Compilamos el programa: Compile / Compile buffer
6. Observar los mensajes el SWI-Prolog.
7. Realizamos consultas. En el prompt
pregunta(estas_de_acuerdo, Y).
?-
digitamos:
4. send(D,
append,
button(si,message(D,return,'si'))),
.....Agregamos un objeto botn al dilogo.
5. send(D,
append,
button(no,message(D,return,'no'))),
.....Agregamos un objeto botn al dilogo.
6. send(D, default_button, si), ..... Activamos por defecto al botn
si.
7. get(D, confirm, Rval), Confirmamos los eventos de los botones
sobre el dilogo y almacenamos el valor en Rval.
8. free(D), ..... liberamos memoria.
9. Resp = Rval. ..... Ligamos la variable Resp con el valor de Rval.
hijo("Pedro","Judith").
hijo("Juan","Pedro").
hijo("Flor","Juan").
class predicates
father : (string Persona, string Padre) nondeterm anyflo
w.
clauses
father(Persona, Padre) :hijo(Persona, Padre),
persona(Padre, masculino()).
class predicates
abuelo : (string Persona, string Abuelo) nondeterm (o,o).
clauses
abuelo(Persona, Abuelo) :hijo(Persona, Hijo),
father(Hijo, Abuelo).
clauses
run():console::init(),
stdIO::write("\nPADRE:\n"),
father(X, Y),
stdIO::writef("% es padre de %\n", Y, X),
fail.
run():stdIO::write("\nABUELO:\n"),
abuelo(X, Y),
stdIO::writef("% es abuelo de %\n", Y, X),
fail.
run():stdIO::write("\nFin del proceso\n").
end implement main
goal
mainExe::run(main::run).
4. Reconstruimos el proyecto: build / build.
5. Ejecutamos: build / Run in Window.
6. Observar el resultado.
Fuente:
http://www.latrinchera.org/foros/content.php?417-HistoriasMatem%C3%A1ticas-IV-Matem%C3%A1ticas-apocal%C3%ADpticas
Hanoi(0,_,_,_).
hanoi(N,Origen,Temporal,Destino):N1 = N-1,
hanoi(N1,Origen,Destino,Temporal),
movimientos(Origen,Destino),
hanoi(N1,Auxiliar,Origen,Destino).
movimientos(Origen,Destino):write(' desde '),
write(Origen),
write(' hasta '),
write(Destino),
write('\n').
Toda definicin recursiva necesita dos componentes la funcin
recursiva (se invoca as misma) y el lmite de la recursin. La funcin
recursiva es hanoi(N,Origen,Temporal,Destino):- y el lmite es
Hanoi(0,_,_,_).
Implementamos este programa en Visual Prolog siguiendo el proceso
del ejemplo anterior. Creamos un proyecto, cambiamos el cdigo de
main.pro por el siguiente cdigo, construimos el proyecto y lo
ejecutamos.
class h1
predicates
hanoi : (unsigned N).
end class h1
implement h1
domains
torre = string.
clauses
hanoi(N) :- mover(N, "izquierdo", "central", "derecho").
class predicates
mover : (unsigned N, torre A, torre B, torre C).
clauses
mover(0, _, _, _) :- !.
formulario
queda
de
la
siguiente
manera.
onShow : window::showListener.
clauses
onShow(_Dource, _Data):lbclimas:add("Frio"),
lbclimas:add("Templado"),
lbclimas:add("Clido"),
lblugares:add("Museos"),
lblugares:add("Playas"),
lblugares:add("Ruinas").
1. En el cdigo encontramos:
1. la declaracin de hechos (facts) codigo y ruta.
2. La declaracin de la regla imprimir (procesa lista).
6. Nuestra
aplicacin
queda
finalmente.
Recursividad
Iteraciones
Predicados extralgicos
Programando algoritmos
Retroalimentacin
La solucin al problema de las torres de Hanoi se implementa con
recursividad.
El IDE SWI-Prolog
Diferencia entre hechos y reglas
Retroalimentacin
El IDE SWI-Prolog no diferencia entre hechos y reglas
Retroalimentacin
Efectivamente Visual Prolog constituye una innovacin a Turbo Prolog.
Est diseado para soluciones en consola.
Est diseado tambin para soluciones grficas.
Bibliografa
1. Escrig, Pacheco, Toledo. El lenguaje de programacin Prolog.
Universidad
Jaume
I
de
Castelln.
Disponible
en:
http://mural.uv.es/mijuanlo/PracticasPROLOG.pdf
2. Nilson, Maluzynski. Logic, Progamming and Prolog. OpenLibra.
Disponible
en:
http://www.etnassoft.com/biblioteca/logicprogramming-and-prolog-2ed/
3. L. Sterling and E. Shapiro. The Art of Prolog. The MIT Press,
Cambridge, Mass., second edition, 1994.
4. W.F. Clocksin and C.S. Mellish. Progamming in Prolog. SpringerVerlag, Berlin, fourth edition, 1994.
5. I. Bratko. Prolog Programming for Artificial Intelligence. AddisonWesley, Reading, Massachusetts, third edition, 2001.
6. R. OKeefe. The Craft of Prolog. The MIT Press, Cambridge, MA,
1990.
7. Ejemplo
completo
en
Prolog:
http://www.uhu.es/nieves.pavon/pprogramacion/practicas/visual
prolog/visualprolog.html
8. Ejemplos de la pgina oficial de Visual Prolog: http://www.visualprolog.com/vip/example/
9. Construccin de un Editor inteligente:
prolog.com/video/IntelliSpeed/default.htm
http://www.visual-
10.
Construccin
de
formularios:
prolog.com/video/FormDemo/default.htm
http://www.visual-
Lecturas recomendadas
Para saber ms
Ponemos a tu disposicin y te invitamos a revisar dos interesantes
documentos que te ayudaran a reforzar y ampliar los temas que
hemos estudiado.
URL: http://wiki.visual-prolog.com/index.php?
title=A_Beginners_Guide_to_Visual_Prolog
Breve descripcin:
La Gua para principiantes de Visual Prolog es un libro completo
escrito por Thomas W. de Boer. El libro contiene material, que se
utiliza con permiso expreso de los autores. La versin actual del libro
est dedicado a Visual Prolog 7.2 . El libro es una introduccin,
significa que est dirigido a aquellos que saben muy poco acerca de
la programacin.
...
URL: http://wiki.visual-prolog.com/index.php?
title=Visual_Prolog_for_Tyros
Breve descripcin:
El documento Visual Prolog para Tyros es un completo libro escrito por
Eduardo Costa. Es un buen punto de partida para el estudio Visual
Prolog, se recomienda a los maestros para la educacin. La ltima
edicin del libro es "Visual Prolog 7.3 para Tyros " . El libro incluye un
nmero de ejemplos que ilustran diferentes caractersticas de Visual
Prolog .
Conclusiones de la sesin
Durante esta semana de aprendizaje hemos comprendido que:
Metacognicin
Las siguientes preguntas te ayudarn a reflexionar sobre tus propios
aprendizajes, es un ejercicio recomendado pata razonar e identificar
nuestro esfuerzo intelectual, la finalidad es guiar nuestras acciones y
procesos mentales.
De la temtica abordada que te llam ms la atencin?
Consideras que aprendiste con los temas abordados?
Tuviste dificultad
solucionaste?
con
algn
tema
actividad?
Cmo
lo
Fuente http://smartcomputing.gerardorossel.org/reglasrecursivas.aspx
Bienvenida
Estimados estudiantes bienvenidos! a la cuarta semana del curso,
donde continuaremos estudiando el lenguaje Prolog. Durante esta
semana trabajaremos con cadenas y listas que son estructuras
dinmicas y permiten procesar datos en memoria relacionados con
expresiones del lenguaje natural. Los seres humanos organizamos la
informacin y el posterior conocimiento en forma de cadenas y listas.
Recordemos algunos escenarios, cuando organizamos una fiesta
elaboramos la lista de invitados y los nombres de las personas se
almacena en forma de cadenas de caracteres, cuando hacemos un
tour elaboramos la lista de lugares visitados, cuando terminamos una
carrera profesional hemos acumulado una lista de cursos. Por esta
razn es muy importante en sistemas basados en conocimiento el
tratamiento de cadenas y listas. Los contenidos se complementan con
interesantes lecturas, valiosos vdeos, pginas interactivas e
importantes actividades de evaluacin que conducen a la
metacognicin y a la comprobacin de los aprendizajes logrados.
Continuemos programando en Prolog!
Introduccin al tema
Fuente http://slideplayer.es/slide/1872829/
Las cadenas en Prolog son un tipo de datos conocidos como string
(algunas versiones de Prolog permiten el uso de symbol) y estn
formados por un conjunto de caracteres alfanumricos (letras,
nmeros, signos especiales), en trminos tcnicos decimos que una
cadena es una lista de cdigos ASCII encerrada entre comillas.
El tratamiento de cadenas es muy importante porque permite analizar
palabras en busca de determinadas caractersticas, por ejemplo
conocer el contenido del primer caracter o en todo caso verificar si la
palabra contiene determinados caracteres, es posible contar el
numero de palabras en un texto o en un archivo, etc. Estas
caractersticas de Prolog son interesantes al momento de programar
aplicaciones con interpretacin del lenguaje natural.
Prolog proporciona un conjunto de clausulas para trabajar con
cadenas, podemos as implementar un conjunto de operaciones tales
como la concatenacin de cadenas que es la unin o suma de
cadenas, podemos unir dos cadenas para formar una tercera cadena.
Podemos separar una cadena en tramas mas pequeas, etc. Las
cadenas son un tipo de listas. Por otro lado las listas en Prolog son un
tipo de datos encerrados entre concretes [ ], que contienen un
conjunto de datos relacionados con determinado tipo de datos, por
ejemplo, podemos tener una lista de nmeros impares [1,3, 5, 7,9], o
una lista de cadenas que representan nombres de personas [Juan,
Pedro, Ana, Luisa]. Las listas tambin son conocidas como
arreglos dinmicos en otros lenguajes de programacin, por lo tanto
las listas son ideales para el tratamiento de pilas, colas y rboles
conceptos importantes para el tratamiento de datos en memoria.
Prolog representa listas en forma genrica precisando su cabeza
(primer elemento) y la cola (resto de elementos) [ Cabeza | Cola ],
donde Cabeza es un elemento y el resto constituye otra lista
expresada recursivamente. Con esta sencilla forma de representar
listas podemos realizar un conjunto de operaciones lgicas sobre un
Aprendizajes esperados
Conozcamos ahora las capacidades y actitudes a desarrollar en este
cuarto tema:
Capacidades
Actitudes
Marco conceptual
http://ia-israel.blogspot.com/2014/06/prolog-sintaxis-y-significado-delos.html
PROLOG fue diseado fundamentalmente para permitir la
representacin y tratamiento de conocimiento, en tal sentido, el
tratamiento del lenguaje es un objetivo permanente y en el caso de
lenguaje escrito, el tratamiento de textos juega un papel importante.
Las cadenas de caracteres constituyen un tipo de datos denominado
String (algunas versiones de Prolog permiten el uso de un tipo de
datos Symbol) y son un conjunto de caracteres ASCII.
Ejemplos de cadenas:
Nombre = Juan.
Ciudad = San Juan de Miraflores.
Fecha = 25 de Enero del 2,040.
Meses_transcurridos_desde_la_ultima_compra=23.
En los ejemplos anteriores los caracteres entre comillas corresponden
a cadenas de caracteres, en nuestro caso las denominamos
simplemente cadenas.
PREDICAD SINTAXIS
O
frontchar
FUNCION
frontchar(string,
string)
frontchar(Cad,
Rest)
fronttoken fronttoken(string,
string, string)
fronttoken(Cad,
Rest)
concat
concat(string,
string)
concat(Cad1,
Cad3)
Cad2,
str_len
str_len(string, integer)
str_len(Cad, Long)
(i, i) (i, o)
isname
isname(string)
isname(Cad)
(i)
frontstr
frontstr(integer,
string, string)
frontstr(Long,
Cad_i, Cad_r)
( i, i, o, o )
Ejemplos
1. Programa que lee una cadena e imprime un caracter por linea:
predicates
leer(string)
imprimir(string)
clauses
leer(X):-clearwindow,
write("Ingrese una cadena: "),
readln(X), nl.
imprimir("").
imprimir(C):-frontchar(C,
RC),
C1,
write(C1), nl,
imprimir(RC).
goal
leer(C),
imprimir(C).
4.3 Concatenacin.
Fuente: http://raymundoycaza.com/la-funcion-concatenar-en-excel/
La concatenacin es una operacin que consiste en unir dos o mas
cadenas para formar una sola. Algunos lenguajes usan el operador
+, en Prolog se usa el predicado CONCAT.
Ejemplos: (La implementacin de estos ejemplos depende del IDE
utilizado, el estudiante debe adecuar el cdigo correspondiente)
1. Programa que genera un saludo Hola Mario a partir de dos
cadenas Hola y Mario presentadas directamente.
Cadena01 = Hola.
Cadena02 = Mario.
saludo(Cadena01, Cadena02):concat(Cadena01, Cadena02,
Cadena03),
write(Cadena03).
Predicates
padre(string,string)
domains
persona = string
predicates
padre(persona,perso
na)
Ejemplos:
domains
numero
integer
domains
= nombre = string
deporte = string
cuadrado
integer
predicates
cuad(numero,c
uadrado)
predicates
persona(nombre
,deporte)
Fuente: http://ia-israel.blogspot.com/2014_06_01_archive.html
Las listas son estructuras de datos dinmicas. Pueden aumentar o
disminuir el nmero de sus elementos, tienen el mismo tipo de
elementos y pueden ser tan complejas como se requieran. La lista sin
elementos existe y recibe el nombre de lista vaca.
Ejemplos:
[H|
T]
Ejemplos de listas:
[ ]........................................lista vaca.
personas([Juan,,Pedro,Ana,Luisa])......................La
clusula
personas
que
contiene
la
lista
[Juan,,Pedro,Ana,Luisa] donde H = [Juan] y T =
[Juan,,Pedro,Ana,Luisa].
Fuente: http://ia-israel.blogspot.com/2014_06_01_archive.html
A continuacin se muestra la forma de declarar listas:
domains
lista_num
integer*
lista_cad
string*
predicates
numeros(lista_
num)
personas(lista_
cad)
Donde:
domains
lista_num
integer*
predicates
numeros(lista_num
)
clauses
numeros([1,3,5,7,9
]).
goal
numeros(A),
numeros([H|T]),
write(A), nl,
write(H), nl,
write(T), nl.
4. Invoca
la
clusula
nmeros(A)...................................................liga la variable A
con la lista [1,3,5,7,9,].
5. Invoca
la
clusula
nmeros([H|T])
............................................liga la variable H con el nmero 1 y
la variable T con la lista [3,5,7,9].
6. Imprime en pantalla la lista [1,3,5,7,9,], luego ejecuta un salto
de lnea.
7. Imprime en pantalla el nmero 1, luego ejecuta un salto de
lnea.
8. Imprime en pantalla la lista [3,5,7,9,], luego ejecuta un salto de
lnea.
Fuente: http://ia-israel.blogspot.com/2014_06_01_archive.html
Definimos las siguientes operaciones bsicas:
1. Agregar un elemento al inicio de la lista.
2. Agregar un elemento al final de la lista.
3. Agregar un elemento a la lista de acuerdo a una relacin de
orden.
4. Verificar si un elemento pertenece a la lista.
5. Eliminar un elemento de la lista.
6. Ordenar los elementos de la lista.
7. Imprimir los elementos de la lista.
Los siguientes programas presentan en forma aislada la
implementacin de las operaciones bsicas
1. Agregar un elemento al inicio de la lista:
domains
lista_num = integer*
predicates
agrega1(integer,
lista_num, lista_num)
clauses
agrega1(Numero,ListaE
,[Numero|ListaE]).
goal
write(entre un
nmero: ),
readint(DN),
agrega1(DN,
[1,3,5,7,9]),ListaS),
write(ListaS),
readln(_).
domains
lista_num = integer*
predicates
agrega2(integer,
lista_num, lista_num)
clauses
agrega2(Numero, [],
[Numero]).
agrega2(Numero,[H|T],
[H|TS]):agrega2(Numero,T,TS).
goal
write(entre un
nmero: ),
readint(DN),
agrega2(DN,
[1,3,5,7,9]),ListaS),
write(ListaS),
readln(_).
domains
lista_num = integer*
predicates
ag_ord(integer,
lista_num, lista_num)
clauses
ag_ord(N,[],[N]).
ag_ord(N,[H|T],[N|L]):- H
>= N,
L = [H|T],
!.
ag_ord(N,[H|T],[H|TC]):ag_ord(N,T,TC).
goal
write(entre un nmero:
),
readint(DN),
agrega1(DN,
[1,3,5,7,9]),ListaS),
write(ListaS),
readln(_).
domains
lista_num = integer*
predicates
miembro(integer, lista_num)
clauses
miembro(N,[]):- write(N, no
pertenece a la lista).
miembro(N,[N|_]):- write(N,
si pertenece a la lista).
miembro(N,[_|T]):miembro(N,T).
goal
write(entre un nmero: ),
readint(DN),
miembro (DN,[1,3,5,7,9])).
readln(_).
domains
lista_num = integer*
predicates
elimina (integer, lista_num,
lista_num)
clauses
elimina(N,[],[]):- write(N, no
pertenece a la lista),
elimina(N,[N|T],T):- write(N, ha
sido eliminado de la lista),
elimina(N,[H|T],[H|TC]):elimina(N,T,TC).
goal
write(entre un nmero: ),
readint(DN),
elimina (DN,[1,3,5,7,9]), ListaS).
write(ListaS),
readln(_).
domains
lista_num = integer*
predicates
ag_ord (integer,
lista_num, lista_num)
ordena(lista_num,
lista_num)
clauses
ag_ord(N,[ ],[N]).
ag_ord(N,[H|T],[N|L]):- H
>= N,
L = [H|T],
!.
ag_ord(N,[H|T],[H|TC]):ag_ord(N,T,TC).
ordena([ ],[ ]).
ordena([H|T],LO):ordena(T,Lt),
ag_ord(H,Lt,LO).
goal
Linicial = [1, 3, 6, 2, 9,
5],
write(Lista inicial: ,
Linicial), nl,
ordena (Linicial,Lfinal).
write(Lfinal),
readln(_).
domains
lista_num = integer*
predicates
imprime (lista_num)
clauses
imprime([ ]).
imprime([H|T]):write(H,' '),
imprime(T).
goal
imprime([1,3,5,7,9,2
,4,6,8,]),
readln(_).
Actividades
Actividad de programacin
Utilizando el cdigo de los ejemplos anteriores se solicita implementar
las siguientes operaciones extendidas sobre listas, utilizando
cualquiera de los IDE presentado en el curso:
1. Devolver el primer elemento de la lista......................primel(E,L)
2. Devolver el ltimo elemento de la lista......................ultel(E,L)
3. Devolver el nmero de elementos de la lista.............numel(N,L)
4. Devolver el sucesor de un elemento de la lista..........sucel(N,S,L)
5. Devolver el predecesor de un elemento de la
lista....predel(N,P,L)
6. Devolver el menor elemento de la
lista......................minlista(M,L)
7. Devolver el mayor elemento de la
lista......................maylist(M,L)
8. Concatenar dos
listas...................................................concatlista(La,Lb,Lc)
9. Intercalar los elementos de dos
listas.........................interclista(La,Lb,Lc)
String
Values
Predicates
Encadenados
Retroalimentacin
Las cadenas son tipo de datos string (conjunto de caracteres ASCII).
* (asterisco)
[ ] (Corchetes)
% (porcentaje)
No es necesario declararlas
Retroalimentacin
Las listas se declaran usando el smbolo asterisco. Ejem nombre* ...
se lee lista de nombres
Las listas son estructuras:
Estticas
Dinmicas
Recursivas
Algortmicas
Excluyentes
Retroalimentacin
Las listas son estructuras dinmicas y su procesamiento se realiza en
memoria.
Bibliografa
1.
1. Escrig, Pacheco, Toledo. El lenguaje de programacin
Prolog. Universidad Jaume I de Castelln. Disponible en:
http://mural.uv.es/mijuanlo/PracticasPROLOG.pdf
2. Nilson, Maluzynski. Logic, Progamming and Prolog.
OpenLibra. Disponible en:
http://www.etnassoft.com/biblioteca/logic-programmingand-prolog-2ed/
3. L. Sterling and E. Shapiro. The Art of Prolog. The MIT
Press, Cambridge, Mass., second edition, 1994.
4. W.F. Clocksin and C.S. Mellish. Progamming in Prolog.
Springer-Verlag, Berlin, fourth edition, 1994.
5. I. Bratko. Prolog Programming for Artificial Intelligence.
Addison-Wesley, Reading, Massachusetts, third edition,
2001.
6. R. OKeefe. The Craft of Prolog. The MIT Press, Cambridge,
MA, 1990.
Lecturas recomendadas
Para saber ms
Ponemos a tu disposicin y te invitamos a revisar dos interesantes
documentos que te ayudaran a reforzar y ampliar los temas que
hemos estudiado.
URL: http://smartcomputing.gerardorossel.org/reglas-recursivas.aspx
Breve descripcin:
Este sitio est dedicado a todos los temas de Inteligencia
Computacional o Inteligencia Artificial. Encontraran tambin un libro
(ebook) en linea que es utilizado en cursos universitarios. Tambin
pone a disposicin de los lectores un blog con artculos y noticias
relacionados con la Inteligencia Artificial.
...
URL:
http://www.lcc.uma.es/~pacog/apuntes/pd/CuadPrac2.pdf
Breve descripcin:
El documento presenta teora y prctica del procesamiento de listas
en Prolog. Contiene definiciones y ejercicios resueltos y propuestos
con aplicaciones prcticas.
Conclusiones de la sesin
Durante esta semana de aprendizaje hemos comprendido que:
Metacognicin
Las siguientes preguntas te ayudarn a reflexionar sobre tus propios
aprendizajes, es un ejercicio recomendado pata razonar e identificar
nuestro esfuerzo intelectual, la finalidad es guiar nuestras acciones y
procesos mentales.
De la temtica abordada que te llam ms la atencin?
Consideras que aprendiste con los temas abordados?
Tuviste dificultad con algn tema o actividad? Cmo lo
solucionaste?
Qu acciones realizaste para aprender?
metodologa
CommonKads
para
Introduccin al tema
Fuente:http://www.casaestudioxigeno.cl/pag-in/i/9336
Los sistemas expertos son programas de computadora que resuelven
tareas tal como las realizara un experto humano, tratan de imitar el
comportamiento humano utilizando informacin que le es
proporcionado y generando una opinin sobre un tema especfico.
El estudio y generacin de sistemas expertos han permitido
configurar una estructura caracterizada por contemplar las diferentes
etapas de gestin del conocimiento: adquisicin, tratamiento y uso. El
razonamiento para producir resultados a las consultas de los usuarios
son realizados por un motor de inferencias que relaciona hechos o
datos con reglas de produccin. Los sistemas expertos son capaces
de mostrar una traza de los elementos de razonamiento utilizados y
es posible que logren aprendizaje sobre las decisiones anteriores,
mejorando el nivel de razonamiento.
Los sistemas expertos tienen una amplia taxonoma orientada por las
diferentes aplicaciones y/o los diferentes criterios de diseo y uso por
la forma de almacenar conocimiento, por la naturaleza de la tarea a
realizar, por la interaccin del usuario, por la limitacin de tiempo
para tomar decisiones, por la variabilidad temporal del conocimiento,
por la naturaleza del conocimiento almacenado, por la certeza de la
informacin.
El desarrollo de sistemas expertos comprende etapas de anlisis,
diseo y construccin del programa para ello usaremos la
metodologa CommonKads que permite modelar el conocimiento en
un lenguaje independiente de la plataforma de construccin del
producto informtico. Esta metodologa propone el uso de formularios
para cada uno de sus componentes de manera que facilita el traslado
a cualquier sistema computacional.
La metodologa CommonKads propone tres niveles, el nivel de
contexto, el nivel de concepto y el nivel de implementacin, durante
esta semana estudiaremos el nivel de contexto que incluye tres
modelos, el modelo de organizacin que responde a la pregunta para
qu desarrollamos un sistema experto?, el modelo de tareas que
responde a la pregunta qu se debe implementar? y el modelo de
agentes que responde a la pregunta quin participa en el sistema
experto?.
Aprendizajes esperados
Conozcamos ahora las capacidades y actitudes a desarrollar en este
quinto tema:
Capacidades
Actitudes
Marco conceptual
Observa detenidamente el siguiente esquema, en el encontrars de
un "vistazo" de manera sintetizada los principales concepto de la
temtica que abordaremos. Qu conceptos o categoras te llaman la
atencin?
Fuente: http://carlosestiv.blogspot.com/
Los sistemas expertos fueron el primer logro de la inteligencia
artificial resolviendo problemas a travs del conocimiento y raciocinio
tal como lo hara un ser humano.
Un sistema experto es un programa de computadora que resuelve
tareas tal como las realizara un experto humano, se puede decir que
imita el comportamiento humano utilizando informacin que le es
proporcionado y generando una opinin sobre un tema especfico.
Tiene la caracterstica de ser interactivo, contiene reglas que les
permiten tomar decisiones conocidas como bases de conocimientos,
en concreto la tarea de un sistema experto es aconsejar a un usuario
respecto a un tema especfico.
Un sistema experto rene las siguientes caractersticas:
Tiene
amplio
conocimiento
especfico
del
rea
de
especializacin.
Aplica tcnicas de bsqueda.
Soporta anlisis heurstico.
Es dinmico pues sus hechos y reglas estn sujetos a constante
revisin y es capaz de inferir nuevos conocimientos a partir de
los ya existentes.
Capacidad de procesamiento de smbolos.
Tiene inferencia deductiva siendo capaz de explicar su propio
razonamiento.
La base de conocimientos es independiente del motor de
inferencias.
Es generalmente declarativo.
Aunque no existe una nica definicin para los sistemas expertos
presentamos algunas propuestas:
Congreso mundial de la IA Feigembaum: Un programa de
computador inteligente que usa el conocimiento y procedimientos de
CLASE
Por la forma
almacenar
conocimiento
de
TIPO
DESCRIPCIOIN
Basados en reglas
Almacenan
el
conocimiento en forma
de hechos y reglas.
Basados
probabilidades
Mixtos
Por la naturaleza de
la tarea a realizar
Diagnstico
clasificacin
Monitorizacin
Diseo
Almacenan
conocimiento
en
hechos
y
dependencias
probabilsticas.
el
en
sus
Almacenan
el
conocimiento
en
hechos y reglas que
contienen
probabilidades.
Se
conocen
las
posibles soluciones y
se trata de clasificarlas
o
o diagnosticarlas de
acuerdo a una serie de
datos
y
reglas
almacenadas.
Se
analiza
el
comportamiento de un
sistema en bsqueda
de posibles fallos.
Se
busca
construccin
de
la
la
solucin a un problema
que en principio es
desconocida, a partir d
hechos y restricciones
a satisfacer.
Prediccin
Se
estudia
comportamiento de
sistema tratando
predecir
comportamiento en
futuro cercano.
Apoyo
Control
El
sistema
toma
decisiones
y
actu
sobre su entorno sin
participacin humana.
Critica
El
sistema
analiza,
evalu y critica las
decisiones
de
una
persona.
Tiempo ilimitado
Emplean conocimiento
casual que busca las
races de un problema
ya ocurrido y cuto
resultado
no
se
requiere de inmediato.
Tiempo limitado
Sistemas de tiempo
real que monitorizan o
controlan dispositivos
tomando decisiones en
forma inmediata.
Por la limitacin de
tiempo para tomar
decisiones
el
un
de
su
el
Estticos
La
base
de
conocimiento nos vara
durante el proceso de
decisin.
Dinmicos
La base de datos se
mantiene
dinmicamente
en
funcin
de
las
decisiones tomadas.
Por la variabilidad
temporal
del
conocimiento
Basado
experiencia
Por la naturaleza del
conocimiento
almacenado
Se
basan
en
las
experiencias de un
experto a travs de los
en
hechos sin establecer
una relacin de de
causalidad claramente
definida.
Las
relaciones
de
Basado en relaciones causalidad
estn
causa-efecto
perfectamente
definidas.
Completa o perfecta
Imperfecta
Por la certeza de la
informacin
Ampliar de forma
especialistas.
ms
rpida
el
conocimiento
de
los
Tipo de problema
Usos
Inferir
posibles Prediccin meteorolgica,
consecuencias a partir de previsin
del
trfico,
una situacin.
evolucin de la bolsa.
Configurar
objetos
bajo Diseo
de
mdico,
fallos de
circuitos,
ciertas especificaciones.
Planificaci
n
Desarrollar planes
llegar a unas metas.
Monitorizaci Controlar
situaciones Control
de
n
o donde
hay
planes nucleares
y
supervisin vulnerables.
qumicas.
centrales
factoras
Instruccin
Control
Enseanza
de
errores,
de
Fuente: http://cristianarrobo.blogspot.com/2011_03_01_archive.html
Los sistemas expertos presentan ventajas frente a los expertos
humanos:
1. Asesora. Los SSEE apoyan a personas con poco conocimiento
en la solucin de problemas que requieren conocimiento
especializado.
2. Disponibilidad. Los SSEE pueden operar ininterrumpidamente
las 24 horas del da durante todo el ao.
3. Estabilidad emocional. Los SSEE pueden operar sin
interferencias emocionales caractersticas de un ser humano,
por lo tanto sus decisiones sern objetivas.
4. Portabilidad. Los SSEE pueden operar en diferentes plataformas
y en diferentes idiomas.
5. Estandarizacin.
estabilidad
y
internacionales.
alto grado de
a
estndares
la
Modelo de organizacin:
o Realiza un anlisis de la organizacin con el objetivo de
identificar los problemas y las posibilidades de
incorporacin de SBCs.
o Los aspectos de la organizacin son tan importantes
porque, al igual que el resto de los sistemas de
informacin, stos slo tendrn xito si se integran
adecuadamente en su contexto. Normalmente, el SBC
acta como una agente cooperando con otros agentes
(humanos o no) realizando una parte de las tareas de la
organizacin. En realidad, este modelo se corresponde
con un estudio de viabilidad.
o Afortunadamente, no se trata de modelar toda la
organizacin, sino de centrarse en la orientacin del
conocimiento. La primera parte identifica problemas y
oportunidades. Se termina delimitando objetivos,
estrategias, factores externos, etc.
o En este modelo se debe tener presente todo lo relativo a
la gestin del conocimiento (KM) y a su integracin
con la Ingeniera del conocimiento. La propuesta define un
nivel especfico para recoger la gestin del conocimiento
en la empresa.
Modelo de tareas:
Modelo de agentes:
o Describe las capacidades, preferencias y permisos de los
agentes que realizan las tareas.
o Determina los roles y las competencias de los actores que
participan en la realizacin de la tarea. Es conveniente
utilizar los diagramas de casos de UML para describir su
participacin. Este modelo establece la cooperacin entre
agentes (incluido el usuario).
Modelo de conocimiento:
o Proporciona una descripcin independiente de la
implementacin del conocimiento involucrado en las
tareas.
o Especifica el conocimiento y los requerimientos de
razonamiento del sistema. Tiene tres partes denominadas
categoras del conocimiento.
o La primera se denomina conocimiento del dominio y
especifica conocimiento y tipos de informacin concretos
que se usaran en la aplicacin. Representa la parte
esttica. Por ej., en una aplicacin de diagnstico mdico
contendra definiciones de enfermedades, sntomas y
pruebas relevantes, as como de las relaciones entre
Modelo de comunicacin:
o Describe las transacciones entre los agentes que realizan
las tareas.
Modelo de diseo:
o Describe la estructura del SBC a desarrollar.
o Se trata de disear el sistema sin modificar el modelo.
o Permite el paso del
simblico, mediante
inteligencia artificial.
(velocidad, programas,
Hojas
de
trabajo
del
Organizacin. (05 hojas)
Modelo
de
presentan
Objetivo
Problemas
y Enumerar los problemas y posibilidades de mejora
oportunidades que han podido ser observados
Contexto
Indicar las caractersticas claves de la organizacin,
organizacional situar los problemas y posibilidades de mejora
dentro de la perspectiva adecuada. Algunas de estas
caractersticas son: misin, visin y objetivos de la
organizacin; factores externos con los que tiene
que tratar la organizacin; y estrategia de la
organizacin
Soluciones
Objetivo
(elemento variable)
Estructura
Procesos
Personal
Recursos
Cultura
potencial
Objetivo
Nombre
Realizada
por
Lugar
Intensiva en Si o No
conocimient
o
Objetivo
Usado en
Uso
correcto?
Lugar
correcto?
Momento
correcto?
Calidad
correcta?
Objetivo
Viabilidad
tcnica
Viabilidad
del
proyecto
Disponibilidad de
implantacin, etc.
los
recursos,
compromiso
de
Acciones
Plan de actuacin; rea de actuacin; solucin elegida;
propuesta resultados, costes y beneficios esperados; proceso de
s
implantacin
Objetivo
Tarea
Organizacin
Objetivo
valor
Dependencia y Enumeracin
de
tareas
precedentes
que
flujos
proporcionan la entrada y de las tareas que utilizan
el resultado de sta
Objetos
manipulados
Tiempo
control
Agentes
Conocimiento
y capacidad
Recursos
Calidad
eficiencia
para
Objetivo
Nombre
Posedo por
Usado en
Dominio
Naturaleza
Formal, riguroso
Emprico, cuantitativo
Forma
Basado en la experiencia
Basado en la accin
Incompleto
Difcil de verificar
Mental
Papel
Electrnica
Habilidades
otros
Limitaciones en tiempo
Limitaciones en espacio
Limitaciones de acceso
Limitaciones de calidad
Limitaciones de forma
Tipologa de tareas
En la metodologa Commonkads se ha definido un catlogo de tareas
agrupadas por tipos:
TIPOLOGA DE TAREAS
Analticas
Sintticas
Tipo/Tarea
Entrada
Salida
Analtica
Diagnosis
Sntomas/Qu
ejas
Categora
del fallo
Conocimiento Caractersti
cas
del Asociaciones
El conjunto
de
clases
Claseest
caracterstica predefinido
Modelo
de
comportamie
nto
del
sistema
El formato
de salida es
variable
(modelo
causal,
estado,
component
e)
y
depende
del uso que
se vaya a
hacer
Valoracin
Descripcin
del caso
Clase
decisin
de Criterios,
normas
Se realizan
en
un
momento
concreto
Monitorizaci Datos
n
sistema
del Clase
de Comportamie El sistema
discrepancia nto
normal evoluciona
del sistema
en
el
tiempo. La
tarea
se
ejecuta
repetidame
nte
Prediccin
Datos
sistema
Sinttica
Requisitos
Estructura Elementos,
del
restriccione
sistema
s,
preferencia
s
Diseo
Requisitos
Descripcin
El
estado
del
salida
consiste en
una
descripcin
del sistema
en
algn
punto
temporal
futuro
Es preciso
generar la
descripci
n
del
sistema
Componentes Puede
Diseo
de Requisitos
configuracio
nes
Asignacin
del
artefacto
,
incluir
el
restricciones, diseo
preferencias creativo de
component
es
Descripcin
del
artefacto
Componentes
,
estructura
de
diseo,
restricciones,
preferencias
Subtipo de
diseo en el
que todos
los
component
es
vienen
predefinido
s
Dos
Asignacin Restricciones La
conjuntos de del conjunto y
asignacin
objetos.
1 sobre el preferencias no
tiene
conjunto 2
porque ser
Requisitos
de uno a
uno
Planificacin Metas,
requisitos
Plan
accin
Programaci Actividades
n
de
trabajo,
recursos,
ranuras
de
tiempo,
requisitos
Las
Restricciones, Se
actividades preferencias distingue la
se
asignacin
distribuyen
en
su
en
las
orientacin
ranuras de
temporal
tiempo
de
los recursos
Modelado
Modelo
Requisitos
de Acciones,
Las
restricciones, acciones se
preferencias ordenan
(parcialmen
te) en el
tiempo
Elementos de Podra
modelado,
incluir
plantillas de sntesis
modelo
creativa
Objetivo
Nombre
Organizacin
Implicado en
Se
con
Conocimiento
Otras
competencias
Impacto
y Describir el impacto y cambios que el SBC traer a
cambios en la la organizacin, comparndola con la estructura
organizacin
actual
Impacto
cambios
tareas
agentes
Actitudes
y Analizar cmo reaccionarn a los cambios
compromisos
introducidos los individuos y el personal cualificado
involucrado
Acciones
propuestas
Mejoras:
Cules
recomendados?
son
los
cambios
Se
con
Conocimiento
Otras
competencias
Bibliografa
1.
1. Escrig, Pacheco, Toledo. El lenguaje de programacin
Prolog. Universidad Jaume I de Castelln. Disponible en:
http://mural.uv.es/mijuanlo/PracticasPROLOG.pdf
2. Nilson, Maluzynski. Logic, Progamming and Prolog.
OpenLibra.
Disponible
en:
http://www.etnassoft.com/biblioteca/logic-programmingand-prolog-2ed/
3. L. Sterling and E. Shapiro. The Art of Prolog. The MIT
Press, Cambridge, Mass., second edition, 1994.
4. W.F. Clocksin and C.S. Mellish. Progamming in Prolog.
Springer-Verlag, Berlin, fourth edition, 1994.
5. I. Bratko. Prolog Programming for Artificial Intelligence.
Addison-Wesley, Reading, Massachusetts, third edition,
2001.
6. R. OKeefe. The Craft of Prolog. The MIT Press, Cambridge,
MA, 1990.
Lecturas recomendadas
Para saber ms
Ponemos a tu disposicin y te invitamos a revisar dos interesantes
documentos que te ayudaran a reforzar y ampliar los temas que
hemos estudiado.
URL: http://www.tendencias21.net/iartificial/De-Inteligencia-ArtificialSistemas-Expertos-Robotica-Procesamiento-de-Lenguaje-Natural-eIngenieria-del-Conocimiento_a3.html
Breve descripcin:
El autor del documento realiza un anlisis critico de la inteligencia
artificial, se formula preguntas respecto a los sistemas expertos y la
robtica. No intenta transferir conocimiento, lo que trata es
cuestionar los conceptos de a inteligencia artificial incluyendo a los
sistemas expertos haciendo referencias histricas.
...
URL:http://publicaciones.uci.cu/index.php/SC/article/view/868/
583
Breve descripcin:
En este documento el autor presenta la metodologa CommonKads en
forma calara y concreta, usando el recurso didctico mapas
conceptuales para cada uno de los modelos. Comenta otras
metodologas de desarrollo de sistemas expertos.
Conclusiones de la sesin
Durante esta semana de aprendizaje hemos comprendido que:
Metacognicin
Las siguientes preguntas te ayudarn a reflexionar sobre tus propios
aprendizajes, es un ejercicio recomendado pata razonar e identificar
nuestro esfuerzo intelectual, la finalidad es guiar nuestras acciones y
procesos mentales.
De la temtica abordada que te llam ms la atencin?
Consideras que aprendiste con los temas abordados?
Tuviste dificultad
solucionaste?
con
algn
tema
actividad?
Cmo
lo
Fuente: http://www.upf.edu/hipertextnet/numero-2/linguistica.html
Bienvenida
Estimados estudiantes bienvenidos! a la sexta semana del curso,
donde presentaremos los mtodos y tcnicas para adquirir el
conocimiento. La gestin del conocimiento es el tema central de
nuestro curso y buscamos tcnicas que permitan el procesamiento
del conocimiento en medios informticos. La sesin anterior
presentamos la metodologa CommonKads para modelar sistemas
expertos y tratamos el nivel de contexto, es momento de tratar ahora
el nivel de concepto que contiene el modelo del conocimiento y el de
comunicacin. Hacemos nfasis en el modelo de conocimiento que
nos permitir escribir programas y desarrollar aplicaciones en
lenguaje Prolog. Los contenidos se complementan con interesantes
lecturas, valiosos videos, pginas interactivas e importantes
actividades de evaluacin que conducen a la metacognicin y a la
comprobacin de los aprendizajes logrados.
Continuemos con el interesante estudio de tratamiento del
conocimiento!
Introduccin al tema
Fuente:
commonkads
http://es.slideshare.net/uni_fcys_sistemas/metodologa-
Aprendizajes esperados
Conozcamos ahora las capacidades y actitudes a desarrollar en este
sexto tema:
Capacidades
Actitudes
Marco conceptual
Observa detenidamente el siguiente esquema, en el encontrars de
un "vistazo" de manera sintetizada los principales concepto de la
temtica que abordaremos. Qu conceptos o categoras te llaman la
atencin?
Fuente:
http://menteerrabunda.blogspot.com/2010/01/sistemasinteligentes.html
Para enfocar el problema de la adquisicin del conocimiento nos
formulamos tres preguntas:
1. Qu es un conocimiento?
2. Cmo adquiere el hombre los conocimientos?
3. Cmo podemos transferir los conocimientos a un computador?
Un conocimiento es la capacidad adquirida de hacer algo, sin
embargo no basta con estar informado, haber ledo o estudiado un
tema para decir que se poseen conocimientos con respeto a ese
tema, lo importante es su aplicacin.
En forma resumida podemos afirmar que el conocimiento se adquiere
a travs de un proceso que tiene tres etapas sucesivas perfectamente
definidas:
1. Recepcin y comprensin de la informacin.
2. Experimentacin con los conceptos recibidos, verificando su
aplicacin en casos reales.
3. Aptitud para gestionar el conocimiento adquirido aplicndolo en
nuevas situaciones.
La transferencia de conocimientos al computador es un problema
complejo, sin embargo se viene estudiando en el campo de la
inteligencia artificial mtodos pertinentes al almacenamiento de
Fuente: http://cibertareas.com/tipos-de-conocimiento-introduccion-lasciencias-sociales.html
Existen diferentes tipos de conocimiento y cada autor los define en
funcin de los usos que le va a dar, en nuestro caso, para efectos del
desarrollo de sistemas expertos proponemos los siguientes tipos de
conocimiento.
Conocimiento conceptual.
o Conocimiento de conceptos, hechos o ideas. Describen las
principales entidades y relaciones del dominio.
o Conocimiento clasificatorio. Distingue entre conceptos
similares.
Conocimiento procedimental.
o Conocimiento de procedimientos rutinarios. Formado por
tcnicas estndar y procedimientos de trabajo.
o Heursticas. Son reglas prcticas utilizadas para realizar
tareas. Facilitan la implementacin de reglas de
produccin (frente a la situacin A realizamos la accin B).
Conocimiento semntico.
Conocimiento episdico.
o Es el conocimiento que, intuitivamente, todos sabemos,
que adquirimos y recordamos: el de qu pas en la
situacin concreta de aprendizaje y cundo sta tuvo
lugar.
6.3
Mtodos
conocimiento.
bsicos
para
captar
Fuente: http://jorfallahuert.blogspot.com/
El conocimiento tal como lo concebimos actualmente implica un
proceso progresivo y gradual desarrollado por el hombre para
aprehender su mundo y realizarse como individuo. Esta concepcin es
demasiada amplia para trabajar en nuestro curso, mas bien debemos
limitarla al conocimiento adquirido por el ser humano para resolver
tareas especficas que requieren cierto grado de conocimiento. Tal es
el caso de las denominadas "profesiones" que requieren estudios
especficos a determinadas reas del quehacer humano.
En este sentido para llevar el conocimiento humano a medios
computarizados que puedan ejercer algn tipo de razonamiento
automtico es necesario utilizar mtodos y tcnicas especficas, esta
tarea resulta compleja por cuanto el temas se encuentra an en
estudio, sin embargo se ha definido a la ontologa en trminos
computacionales como un entendimiento comn y compartido de un
dominio que puede comunicarse entre cientficos y sistemas
computacionaleses por lo tanto es un recurso artificial creado por el
hombre para conceptualizar algn tipo de conocimiento en un modelo
abstracto en el que se identifican conceptos relevantes y las
relaciones entre sus actores independiente de las plataformas
computacionales requeridas para su implementacin..
En esta sesin de aprendizaje presentamos inicialmente un mtodo
bsico que se implementa con las siguientes fases: identificacin,
conceptualizacin,
formalizacin,
implementacin
y
pruebas.
Posteriormente presentamos una metodologa de carcter general
denominada CommonKads que permite modelar el conocimiento en
determinado tema para luego ser implementado en cualquier
plataforma tecnolgica.
Tipo conocimiento
Actividad
Tcnica
Declarativo
Bsqueda
de Entrevistas
heursticas generales estructuradas
Procedimental
Semntico
Bsqueda
conceptos
vocabulario
no
de Observacin directa
y
Anlisis de tareas
Heursticas
y Emparrillado
procedimientos
de
toma de decisiones
Clasificaciones
Episdico
Bsqueda
de Simulaciones
heursticas analgicas
de
solucin
de
problemas
Seguimiento
protocolos
de
Mtodo
bsico
conocimiento.
para
adquirir
FASE
PRODUCTO
TRABAJA CON
Identificacin
Requerimientos.
Problemas,
caractersticas.
Conceptualizacin
Conceptos
Conceptos
representan
conocimiento
que
el
Formalizacin
Estructura
Organizacin
conocimiento,
espacio
bsqueda
del
de
que
el
de
Implementacin
Reglas
Construccin
reglas
representan
conocimiento
Prueba
Lista de cotejo
Verificacin de la
adquisicin
del
conocimiento
trivial
(se
resuelve
de
manera
de
datos
3. Pueden
aparecer
incoherencias
que
retroalimentacin de las fases anteriores.
para
la
requieran
4. Prueba.
1. Seleccin de casos resueltos representativos.
2. Elaborar una lista de cotejo para verificar el
funcionamiento del sistema aplicado a los casos
representativos.
3. En funcin de los resultados, se deben corregir las
incoherencias de las fases anteriores.
Fuente:
http://cmapspublic3.ihmc.us/rid=1LNT1R7KL-JZ1G1L1BFL/principal.cmap
Existen varias metodologas para adquirir y representar el
conocimiento tales como MASE, GAIA, COMMONKADS, INGENIAS,
MESSAGE entre otras. Por consideraciones de tiempo y practicidad se
ha seleccionado utilizar COMMONKads en nuestro curso. Es
conveniente
revisar
informacin
relacionada
a
las
otras
metodologas.
La metodologa CommonKads presentada en el curso sugiere
construir el modelo de conocimientos en forma clara y precisa que
permite la construccin de sistemas expertos en este sentido
presentamos un resumen y en forma secuencial este proceso
siguiendo la sintaxis del lenguaje CML (Conceptual Modelling
Language) propuesto por la misma metodologa.
Debemos mencionar que para comprender esta metodologa se
requiere cierta experiencia el el uso de otras metodologas y
lenguajes de modelado de la ingeniera de software, pues en el
mbito del curso no est contemplado el estudio detalle de
metodologas de desarrollo.
Formado por:
Conceptos.
Equivale a
mtodos.
clases
pero
sin
Atributos.
Relaciones.
definir
Tipos de reglas.
Base de conocimiento.
Especificacin de conceptos
Especificacin de relaciones
Especificacin de atributos
Especificacin de reglas
END
DOMAIN-SCHEMA
identificador;
El esquema del dominio en CML
con especificaciones importadas
de otros esquemas
(Modularizacin y reutilizacin)
DOMAIN-SCHEMA identificador;
USES componentes_de_ordenador
...
END
identificador;
DOMAIN-SCHEMA
FROM
...
END DOMAIN-SCHEMA identificador;
Declaraciones de conceptos.
Conceptos en CML
CONCEPT cliente;
DESCRIPTION:
Datos personales del cliente;
ATTRIBUTES:
nombre: STRING;
domicilio: STRING;
edad: NATURAL;
...
AXIOMS:
edad >= 18;
END CONCEPT cliente;
Conceptos en CML
CONCEPT
marcador_combustibl
e;
DESCRIPTION:
"Dispositivo
que
muestra el
nivel disponible de
combustible";
ATTRIBUTES:
marca:
valor_marcador;
END
CONCEPT
marcador_combustibl
e;
CONCEPT
tanque_combustible;
DESCRIPTION:
"Recipiente
de
combustible";
ATTRIBUTES:
nivel:{lleno,
medio,
vaco}
END CONCEPT tanque
combustible;
VALUE-TYPE
valor_marcador
VALUE-LIST
{normal,
bajo, cero}
TYPE ORDINAL;
END VALUE-TYPE valor
marcador
Declaracin de relaciones
Declaracin de relaciones de especializacin/generalizacin
Jerarquas de conceptos en CML
CONCEPT ordenador; CONCEPT porttil;
CONCEPT sobremesa;
DESCRIPTION:
DESCRIPTION:
DESCRIPTION:
"Ordenador
Ordenador personal Ordenador
personal
personal";
porttil;
fijo;
SUPER-TYPE-OF:
SUB-TYPE-OF:
SUB-TYPE-OF:
porttil,
ordenador;
ordenador;
sobremesa;
ATTRIBUTES:
END CONCEPT porttil;
SEMANTICS:
peso: FLOAT;
DISJOINT: YES;
autonoma: FLOAT
COMPLETE: YES;
END
CONCEPT
ATTRIBUTES:
porttil;
marca: STRING;
modelo: STRING;
END
CONCEPT
ordenador;
Declaracin de relaciones de agregacin (todo / parte)
Relaciones de agregacin en CML
CONCEPT ordenador; CONCEPT memoria;
CONCEPT cpu;
DESCRIPTION:
DESCRIPTION:
DESCRIPTION:
Ordenador
Mdulo de memoria unidad
central
de
personal;
RAM;
procesamiento;
HAS-PARTS:
cpu, PART-OF: ordenador
PART-OF: ordenador
memoria.
ATTRIBUTES:
ATTRIBUTES:
ATTRIBUTES:
tipo: STRING;
marca: STRING;
marca: STRING;
capacidad: NATURAL; modelo: STRING;
modelo: STRING;
velocidad: NATURAL;
velocidad: NATURAL;
END
CONCEPT END
CONCEPT END CONCEPT cpu;
porttil;
memoria;
Declaracin de relaciones
Relaciones en CML
RELATION venta;
ARGUMENTS:
ordenador;
CARDINALITY 0-1;
cliente;
CARDINALITY ANY;
comercial;
CARDINALITY ANY;
ATTRIBUTES:
fecha-de-venta: DATE;
END RELATION venta;
END
calificar_prestamo;
RULE-TYPE
definida
en
CALIFICA
persona.sueldo
<=
2000
prestamo.cantidad <= 500;
CALIFICA
END
conocimiento_prestamo;
KNOWLEDGE-BASE
Declaracin de inferencias
Conocimiento sobre inferencias en CML
INFERENCE-KNOWLEDGE identificador;
Descripcin de inferencias, roles de conocimiento y
funciones de transferencia;
END INFERENCE-KNOWLEDGE identificador;
Inferencia y roles de conocimiento en CML
INFERENCIA abstraer;
OPERATION-TYPE: ABSTRACT
ROLES:
INPUT caso;
OUTPUT caso-abstraido;
STATIC conocimiento-abstraccin;
SPECIFICATION:
"Genera una transformacin en los datos de entrada que produce
una descripcin ms
cualificada de un caso;
END INFERENCE abstraer;
Inferencia y roles de conocimiento en
CML
INFERENCIA diagnosticar;
OPERATION-TYPE: COVER
ROLES:
INPUT fallo;
OUTPUT hiptesis;
STATIC modelo-causal;
SPECIFICATION:
"Genera el
situaciones
conjunto
de
todas
las
FROM
KNOWLEDGE-ROLE
asesoramiento-
conocimiento-
abstraccin;
Inferencias en CML
TRANSFER-FUNCTION obtener;
TYPE: OBTAIN
ROLES:
INPUT hallazgo-esperado;
OUTPUT hallazgo-observado;
END TRANSFER-FUNCTION obtener;
el
otorgamiento
de
un
prstamo
Define
el
objetivo
del
proceso
de
razonamiento que se est intentando modelar
en funcin de las entradas y las salidas.
Especificacin de su descomposicin.
Tareas.
Inferencias.
Funciones de transferencia
TRANSFER-FUNCTIONS: obtener;
ROLES:
INTERMEDIATE:
criterios: el conjunto de criterios a evaluar;
criterio: un criterio de asesoramiento;
valor: valor de un criterio de asesoramiento;
resultados: criterios seleccionados junto con sus
valores;
CONTROL-STRUCTURE:
Descripcin en pseudocdigo del proceso a realizar en
trminos de
las subtareas, inferencias y funciones de transferencia
END TASK-METHOD metodo-decidir-caso;
Aplica lo aprendido.
Retroalimentacin
Una persona tiene conocimiento cuando aplica lo aprendido, no basta
solo con leer o estudiar.
Cientfico
Inteligente
Conceptual
Intuitivo
Procedimental
Retroalimentacin
En nuestro curso hemos presentado dos tipos de conocimiento:
conceptual y procedimental.
Organizacin
Comunicacin
Implementacin
Diseo
Retroalimentacin
El nivel de concepto de la metodologa CommonKads tiene los
modelos de conocimiento y de comunicacin.
Bibliografa
1. Alonso, A; Guijarro, B; Lozano, A; Palma, J; Tabeada, MJ.
Ingeniera
del
conocimiento.
Aspectos
metodolgicos.
Pearson/Prentice may. Madrid 2004.
2. Anjewierden, A. A., De Hoog, R., Van De Belde, W. Y Wielinga, B.
J. (1998). Engineering of Knowledge. The CommonKADS
Methodology. MIT Press, 1999.
3. CommonKADS Technical Reports. http://CommonKADS.uva.nl
4. Gmez, A. y otros: Ingeniera del Conocimiento. Centro de
Estudios Ramn Areces. Madrid, 1998.
5. Harmon, P Y King, D.: Sistemas Expertos. Daz de Santos, 1988.
6. Nilsson, N. J.: Inteligencia Artificial. Un nuevo enfoque. McGrawHill. Madrid, 2000.
7. Palma, J.; Martn, F. y Marn, R. Ingeniera del conocimiento. De
la extraccin al modelado del conocimiento. Revista
Iberoamericana de Inteligencia Artificial. N 11. 2001
8. Rich: Inteligencia Artificial. McGraw-Hill. 1995.
9. Rational Software Corporation (1997). Unified
Language.
Notation
Guide.
Version
http://www.rational.com.
Modelling
1.1.URL:
10.
Rodrguez, A.; Hernndez, C.; Plcido, C. Ingeniera del
Conocimiento. Universidad de Las Palmas de Gran Canaria,
1994.
11.
Schreiber, A. T., Akkermans, J. M., Schreiber, G., Wielinga,
B.J. y Breuker, J.A, editors (1993).
12.
KADS: A Principled Approach to Knowledge-Based System
Development. Academic Press. 1993. ISBN 0-12-629040-7.
Lecturas recomendadas
Para saber ms
Ponemos a tu disposicin y te invitamos a revisar dos interesantes
documentos que te ayudaran a reforzar y ampliar los temas que
hemos estudiado.
Documento 1: El conocimiento.
conocimiento.
Niveles y tipos de
URL:
http://www.webdianoia.com/moderna/locke/locke_fil_conoc.ht
m
Breve descripcin:
El autor presenta la filosofa de Locke quien plantea que el
conocimiento es la percepcin del acuerdo o desacuerdo de dos
ideas. Sugerimos la lectura del documento para problematizar el tipo
de conocimiento que puedes ser procesado en un computador y
comprender la problemtica que esto implica.
...
URL:
http://metodologiadeagentes.galeon.com/enlaces1101021.ht
ml
Breve descripcin:
El documento digital presenta varias metodologas de agentes
inteligentes, entre ellas: CommonKads, MASE y GAIA. Los agentes
inteligentes constituyen un paso adelante en el estudio de la
inteligencia artificial y debera ser parte de los conocimientos
profesionales de nuestros egresados. Proponemos esta lectura para
que el estudiante tenga una idea mas general de las tendencias en
inteligencia artificial.
Conclusiones de la sesin
Durante esta semana de aprendizaje hemos comprendido que:
Metacognicin
Las siguientes preguntas te ayudarn a reflexionar sobre tus propios
aprendizajes, es un ejercicio recomendado pata razonar e identificar
nuestro esfuerzo intelectual, la finalidad es guiar nuestras acciones y
procesos mentales.
De la temtica abordada que te llam ms la atencin?
Consideras que aprendiste con los temas abordados?
Tuviste dificultad
solucionaste?
con
algn
tema
actividad?
Cmo
lo
Fuente:https://geekoverdose.files.wordpress.com/2012/07/wumpusworld.gif
Bienvenida
Estimados estudiantes bienvenidos! a la sptima y ltima semana
del curso, donde presentaremos diversas aplicaciones de sistemas
basados en conocimiento, el objetivo de esta sesin es familiarizarse
con casos resueltos que permitan consolidar los aprendizajes
adquiridos durante el desarrollo del curso. Es probable que las
soluciones sean presentadas en diferentes plataformas tecnolgicas y
constituyen un excelente laboratorio para transformar sus
especificaciones del conocimiento a la sintaxis propuesta por el
lenguaje CML y posteriormente desarrollar soluciones usando alguno
de los IDEs propuestos en el curso.
Estudiando casos fortalecemos nuestros aprendizajes!
Introduccin al tema
Fuente: http://www.educagratis.org/moodle/course/view.php?id=48
La prctica y experimentacin fortalece los aprendizajes adquiridos
durante las sesiones de un curso, Como ustedes pueden comprender
el desarrollo de sistemas basados en conocimientos es una tarea
compleja que demanda un esfuerzo grande en recursos y tiempo.
Durante el desarrollo de nuestro curso hemos proporcionado
conceptos, tcnicas y metodologas, herramientas de desarrollo,
lenguajes de modelamiento y construccin. Ahora ha llegado el
momento de analizar aplicaciones que nos permitan fortalecer los
aprendizajes, para ello presentamos a ustedes un conjunto de
proyectos desarrollados con diversas tecnologas y metodologas,
esperamos que puedan ser comprendidas y analizadas en su
contexto.
Estamos usando soluciones y proyectos tomandos directamente de
Internet, algunos son presentados en cursos, otros en libros, blogs o
directamente de la pgina de los autores, en todos los casos, lo
hacemos con fines didcticos y con el nimo de despertar en el
estudiante el afn de bsqueda en tan importante espacio que nos
brinda la tecnologa.
Presentamos casos conocidos como por ejemplo el mundo de
wumpus, el problema de las n reinas, el juego sudoku, domtica: la
vivienda inteligente, aplicaciones en educacin, aplicaciones de
control, entre otros. La metodologa que seguimos es presentar el
caso, mostrar documentos que tratan el caso (en algunos se
presentan las soluciones), seguir o implementar el caso, hacer un
anlisis y comentarios, terminando con la internalizacin de los
conocimientos.
Esperamos que despus de visualizar los contenidos propuestos, el
estudiante complete sus aprendizajes desde un punto de vista de
Aprendizajes esperados
Conozcamos ahora las capacidades y actitudes a desarrollar en este
sptimo tema:
Capacidades
Actitudes
Marco conceptual
Observa detenidamente el siguiente esquema, en el encontrars de
un "vistazo" de manera sintetizada los principales concepto de la
temtica que abordaremos. Qu conceptos o categoras te llaman la
atencin?
Fuente: http://verilobi.com/wumpus+game/#prettyPhoto
El mundo de wumpus es una cueva que est compuesta por
habitaciones conectadas mediante pasillos. Escondido en algn lugar
de la cueva est el wumpus, una bestia que se come a cualquiera que
entre en su habitacin. El wumpus puede ser derribado por la flecha
de un agente, y ste slo dispone de una. Algunas habitaciones
contienen hoyos sin fondo que atrapan a aquel que deambula por
dichas habitaciones (menos al wumpus que es demasiado grande
para caer en ellos). El nico premio de vivir en este entorno es la
posibilidad de encontrar una olla de oro. Aunque el mundo de
wumpus pertenece ms al mbito de los juegos por computador, es
un entorno perfecto para evaluar los agentes inteligentes. Michael
Genesereth fue el primero que lo propuso.
el siguiente
enlace e implementar
https://github.com/rlegendi/wumpus-prolog/
el caso
Fuente: http://en.wikipedia.org/wiki/Sudoku
Una de las aplicaciones mas conocidas de la inteligencia artificial est
referida a la solucin de juegos en el computador. El captulo 6 del
libro de Rusell trata con mucho detalle este tema.
Durante el estudio de la inteligencia artificial se han planteado juegos
clsicos como las n reinas, sudoku, tres en raya, las torres de Hanoi,
entre otros.
El lenguaje Prolog es adecuado para resolver estos problemas, a
continuacin presentamos un conjunto de enlaces a cdigo en Prolog.
Problema de las N-reinas
http://www.logic.at/prolog/queens/queens.html
http://blog.andinadigital.com/2012/09/23/demostracion-de-problemade-las-n-reinas-en-swi-prolog-programacion-logica/
Juego Sudoku:
http://www.visualprolog.com/vip/example/userExample/sudoku_Cumming/sudoku_Cum
ming.htm
Fuente: http://www.cedom.es/sobre-domotica/que-es-domotica
Construir una vivienda inteligente fue un sueo de muchos estudiosos
de la inteligencia artificial y podemos afirmar que en la actualidad se
han logrado avances impresionantes a travs del campo conocido
como domtica.
Domtica:
http://www.cedom.es/sobre-domotica/que-es-domotica
https://www.casadomo.com/
http://forum.arduino.cc/index.php?topic=223723.0
http://domotica-arduino.es/es/
http://es.opendomo.org/arduino
Fuente: http://www.tourdigital.net/SimuladorTTLconEscenarios.htm
La electrnica digital implementa soluciones del mundo real basadas
en chips (circuitos integrados) que contienen puertas lgicas
construidas con semiconductores, fundamentalmente transistores y
diodos. Las puertas lgicas se basan en la lgica digital que
implementa los operadores lgicos and, or, not, etc. El
funcionamiento de las puertas lgicas se define en tablas de verdad
que relaciona el valor de las entradas y genera una salida.
1. Creamos reglas para cada una de las puertas lgicas (And, Or,
Not)
2. Implementamos predicados para evaluar funciones lgicas que
contienen las puertas lgicas definidas en el tem anterior. (se
deben definir previamente las funciones lgicas.
Fuente: http://www.monografias.com/trabajos74/agentes-inteligentespaso-inteligencia-artificial/agentes-inteligentes-paso-inteligenciaartificial2.shtml
Los agentes inteligentes son el siguiente paso a los sistemas
expertos. Aunque nuestro curso no fue planteado para trabajar con
agentes inteligentes no quisiramos dejar pasar la oportunidad de
presentarlos y proponer algunos casos y herramientas de trabajo con
ellos.
Actividad de programacin de agentes
Proponemos leer la documentacin oficial de JADE (software para el
desarrollo de agentes), descargar e instalar el software e implementar
los casos propuestos.
http://jade.tilab.com/
http://programacionjade.wikispaces.com/Agentes
https://github.com/bluezio/jade-booktrading
Fuente: http://myblogpedagogia4callejas.blogspot.com/
Hemos comentado que la inteligencia artificial aborda casos y
problemas de diferentes campos del quehacer humano, sin embargo
en el campo educativo es donde tiene muchas aplicaciones.
Proponemos al estudiante visitar los siguientes enlaces y hacer un
resumen de posibles aplicaciones que pueda desarrollar en este
campo.
Inteligencia
artificial
aplicada
http://t01nocturno.blogspot.com/
la
educacin:
Fuente:
http://www.emiliosilveravazquez.com/blog/2013/06/10/%C2%A1elfuturo-%C2%BFpodremos-disenarlo-nosotros/
Como hemos visto en los ejemplos anteriores no existen lmites para
el desarrollo de los sistemas basados en conocimientos, podemos
desarrollar aplicaciones en prcticamente todas las actividades del
ser humano.
Recomendamos al estudiante elaborar una lista de enlaces de
aplicaciones de la inteligencia artificial en los diferentes campos, tales
como contabilidad, medicina, finanzas, ingeniera, etc.
Usos
y
aplicaciones
de
la
inteligencia
artificial:
http://www.uv.mx/cienciahombre/revistae/vol17num3/articulos/i
nteligencia/
Aplicaciones
prcticas
de
la
inteligencia
http://www.davidam.com/docu/aplic-ia/
Artificial
intelligence.
An
illustrative
overview:
http://www.gitsinformatica.com/areas%20de%20aplicacion
%20de%20la%20ia.pdf
artificial:
Fbricas.
Circuitos elctricos
Viviendas
Sistemas expertos.
Retroalimentacin
La domtica permite automatizar viviendas.
Retroalimentacin
Los agentes inteligentes constituyen el siguiente paso de los sistemas
expertos.
CLISP
Russell
Kernighan
Briceo
Retroalimentacin
El mundo de wumpus fue presentado en el libro de Russell.
Bibliografa
1. Alonso, A; Guijarro, B; Lozano, A; Palma, J; Tabeada, MJ.
Ingeniera
del
conocimiento.
Aspectos
metodolgicos.
Pearson/Prentice may. Madrid 2004.
2. Anjewierden, A. A., De Hoog, R., Van De Belde, W. Y Wielinga, B.
J. (1998). Engineering of Knowledge. The CommonKADS
Methodology. MIT Press, 1999.
3. CommonKADS Technical Reports. http://CommonKADS.uva.nl
4. Gmez, A. y otros: Ingeniera del Conocimiento. Centro de
Estudios Ramn Areces. Madrid, 1998.
5. Harmon, P Y King, D.: Sistemas Expertos. Daz de Santos, 1988.
6. Nilsson, N. J.: Inteligencia Artificial. Un nuevo enfoque. McGrawHill. Madrid, 2000.
7. Palma, J.; Martn, F. y Marn, R. Ingeniera del conocimiento. De
la extraccin al modelado del conocimiento. Revista
Iberoamericana de Inteligencia Artificial. N 11. 2001
8. Rich: Inteligencia Artificial. McGraw-Hill. 1995.
9. Rational Software Corporation (1997). Unified
Language.
Notation
Guide.
Version
http://www.rational.com.
Modelling
1.1.URL:
10.
Rodrguez, A.; Hernndez, C.; Plcido, C. Ingeniera del
Conocimiento. Universidad de Las Palmas de Gran Canaria,
1994.
11.
Schreiber, A. T., Akkermans, J. M., Schreiber, G., Wielinga,
B.J. y Breuker, J.A, editors (1993).
12.
KADS: A Principled Approach to Knowledge-Based System
Development. Academic Press. 1993. ISBN 0-12-629040-7.
Lecturas recomendadas
Para saber ms
Ponemos a tu disposicin y te invitamos a revisar dos interesantes
documentos que te ayudaran a reforzar y ampliar los temas que
hemos estudiado.
Documento
moderno.
1:
Inteligencia
artificial:
Un
enfoque
URL:http://iarp.cic.ipn.mx/~hcalvo/Inteligencia_Artificial_files/I
nteligencia%20Artificial,%20Un%20Enfoque%20Moderno%20%20Stuart%20J.%20Russell,%20Peter%20Norvig%20%20Prentice%20Hall%20%28ocr,%20caps%201-11%29.pdf
Breve descripcin:
Este libro contiene una descripcin de sistemas expertos y presenta el
siguiente paso que son los agentes inteligentes. Es de lectura
obligatoria para todo estudiante de inteligencia artificial, sistemas
basados en conocimiento, sistemas expertos, agentes inteligentes.
...
URL:
id=48
http://www.educagratis.org/moodle/course/view.php?
Breve descripcin:
El enlace nos conduce a un curso de sistemas expertos en el el autor
pone a disposicin material de aprendizaje y muestra varios lenguajes
de programacin como LISP, JESS, PROLOG. Pone a disposicin el libro
de castillo que en su parte final incluye casos de sistemas
probabilsticos.
Conclusiones de la sesin
Durante esta semana de aprendizaje hemos comprendido que:
Metacognicin
Las siguientes preguntas te ayudarn a reflexionar sobre tus propios
aprendizajes, es un ejercicio recomendado pata razonar e identificar
nuestro esfuerzo intelectual, la finalidad es guiar nuestras acciones y
procesos mentales.
De la temtica abordada que te llam ms la atencin?
Consideras que aprendiste con los temas abordados?
Tuviste dificultad
solucionaste?
con
algn
tema
actividad?
Cmo
lo