Академический Документы
Профессиональный Документы
Культура Документы
Inteligencia Artificial.
PRIMERA UNIDAD:
Percepcin
Sistemas expertos.
Hardware (Memoria, rapidez y arquitectura)
Robtica (Automatizacin).
Ciberntica (Interdisciplina para control de automatizacin)
Inteligencia Artificial.
Percepcin:
Tareas formales
Tareas expertas
Inteligencia Artificial.
artificial y estableca lo que luego se conocera como el test de Turing, una prueba que
permite determinar si un ordenador o computadora se comporta conforme a lo que se
entiende como artificialmente inteligente o no.
Con el avance de la ciencia moderna la bsqueda de la IA ha tomado dos caminos
fundamentales: la investigacin psicolgica y fisiolgica de la naturaleza del pensamiento
humano, y el desarrollo tecnolgico de sistemas informticos cada vez ms complejos.
La Inteligencia Artificial es una combinacin de la ciencia del computador, fisiologa y
filosofa, tan general y amplio como eso, es que rene varios campos (robtica, sistemas
expertos, por ejemplo), todos los cuales tienen en comn la creacin de mquinas que
pueden "pensar".
La idea de construir una mquina que pueda ejecutar tareas percibidas como requerimientos
de inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este punto
de vista incluyen juegos, traduccin de idiomas, comprensin de idiomas, diagnstico de
fallas, robtica, suministro de asesora experta en diversos temas.
Es as como los sistemas de administracin de base de datos cada vez ms sofisticados, la
estructura de datos y el desarrollo de algoritmos de insercin, borrado y locacin de datos,
as como el intento de crear mquinas capaces de realizar tareas que son pensadas como
tpicas del mbito de la inteligencia humana, acuaron el trmino Inteligencia Artificial en
1956.
Trabajos tericos fundamentales fueron el desarrollo de algoritmos matemticos por
Warren McCullock y Walter Pitts, en 1943, necesarios para posibilitar el trabajo de
clasificacin, o funcionamiento en sentido general, de una red neuronal. En 1949 Donald
Hebb desarroll un algoritmo de aprendizaje para dichas redes neuronales creando, en
conjunto con los trabajos de McCullock y Pitts, la escuela creacionista. Esta escuela se
considera hoy como el origen de la Inteligencia Artificial, sin embargo se trat poco por
muchos aos, dando paso al razonamiento simblico basado en reglas de produccin, lo
que se conoce como sistemas expertos.
En este sentido, el trmino IA se ha aplicado a sistemas y programas informticos capaces
de realizar tareas complejas, simulando el funcionamiento del pensamiento humano,
aunque todava muy lejos de ste. En esta esfera los campos de investigacin ms
importantes son el procesamiento de la informacin, el reconocimiento de modelos, los
juegos y las reas aplicadas, como el diagnstico mdico. Un ejemplo de los logros
alcanzados fue la partida de ajedrez que el superordenador de IBM denominado Deep Blue
gan, en mayo de 1997, al campen del mundo Gari Kasprov.
Algunas reas de la investigacin actual del procesamiento de la informacin estn
centradas en programas que permiten a un ordenador o computadora comprender la
informacin escrita o hablada, y generar resmenes, responder a preguntas especficas o
redistribuir datos a los usuarios interesados en determinados sectores de esta informacin.
En esos programas es esencial la capacidad del sistema de generar frases gramaticalmente
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
correctas y de establecer vnculos entre palabras e ideas. La investigacin ha demostrado
que mientras que la lgica de la estructura del lenguaje, su sintaxis, est relacionada con la
programacin, el problema del significado, o semntica, es mucho ms profundo, y va en la
direccin de una autntica inteligencia artificial.
Actualmente existen dos tendencias en cuanto al desarrollo de sistemas de IA: los sistemas
expertos y las redes neuronales. Los sistemas expertos intentan reproducir el razonamiento
humano de forma simblica. Las redes neuronales lo hacen desde una perspectiva ms
biolgica (recrean la estructura de un cerebro humano mediante algoritmos genticos). A
pesar de la complejidad de ambos sistemas los resultados distan mucho de un autntico
pensamiento inteligente.
Muchos cientficos se muestran escpticos acerca de la posibilidad de que alguna vez se
pueda desarrollar una verdadera IA. El funcionamiento de la mente humana todava no ha
llegado a conocerse en profundidad y, en consecuencia, el diseo informtico seguir
siendo esencialmente incapaz de reproducir esos procesos desconocidos y complejos.
La metfora entre mente y computadora se ha ampliado y madurado.
Existe mecanismos o procesos bsicos; sean comunes a actividades y comportamientos tan
variados como:
Resolver un problema en general matemtico, financiero,...
Descubrir una estructura de pensamiento.
Ir de casa a la oficina.
Jugar al ajedrez.
Otras actividades del pensamiento que habitualmente se reconoce que requieren
inteligencia.
La existencia de otros mecanismos
Confirmacin del funcionamiento de la inteligencia.
Deteccin de la inteligencia.
Entendimiento de la inteligencia.
La confluencia de IA con la sicologa cognitiva.
El conocimiento que se tenga de la inteligencia y el aprendizaje, ser alguna vez
suficiente para que sirva de ayuda en la construccin de modelos mentales (Ej.: el
conocimiento de la aeronutica ayuda a construir aviones.)
Estudiase el acto de aprender --> en las personas el aprendizaje parece estar
ntimamente ligado al crecimiento de la estructura fsica del cerebro.
Inteligencia Artificial.
Inteligencia Artificial.
Inteligencia Artificial
1.
2.
3.
4.
5.
6.
7.
El arte con crear mquinas con capacidad de realizar funciones que al realizadas
por personas requieren de inteligencia. (Kurzweil, 1990.)
8.
El estudio de cmo lograr que las computadoras realicen tareas que, por el
momento, los humanos hacen. (Rich y Knight, 1991.)
9.
Inteligencia Artificial.
de eficiencia humana, y las 3, 4, 8, y 9 lo hacen en conformidad con un concepto de
inteligencia ideal (racionalidad.)
Desde sus comienzos hasta la actualidad, la Inteligencia Artificial ha tenido que hacer
frente a una serie de problemas:
Inteligencia Artificial.
estaba programado para resolver problemas de un determinado tipo, razn a la cual debe su
nombre. Resuelve una gran cantidad de problemas de sentido comn, como una extensin
del principio de retroalimentacin de Wiener.
Diversos centros de investigacin se establecieron, entre los ms relevantes estn, la
Universidad Carnegie Mellon, el Massachusetts Institute of Technologie (MIT),
encabezado por Marvin Minsky, la Universidad de Standford e IBM. Los temas
fundamentales eran el desarrollo de heursticas y el aprendizaje de mquinas.
En 1957 McCarthy desarroll el lenguaje LISP. La IBM contrat un equipo para la
investigacin en esa rea y el gobierno de USA aport dinero al MIT tambin para
investigacin en 1963.
A finales de los aos 50 y comienzos de la dcada del 60 se desarrolla un programa
orientado a la lectura de oraciones en ingls y la extraccin de conclusiones a partir de su
interpretacin, al cual su autor, Robert K. Lindsay, denomina "Sad Sam". Este poda leer
oraciones del tipo "Jim es hermano de John" y "La madre de Jim es Mary", a partir de ella
el sistema conclua que Mary deba ser tambin la madre de John. Este sistema represent
un enorme paso de avance en la simulacin de inteligencia humana por una mquina, pues
era capaz de tomar una pieza de informacin, interpretarla, relacionarla con informacin
anteriormente almacenada, analizarla y sacar conclusiones lgicas.
En el mismo perodo de tiempo hay trabajos importantes de Herbert Gelernter, de IBM,
quien desarrolla un "Demostrador Automtico de Teoremas de la Geometra", Alex
Bernstein desarrolla un programa para el juego de ajedrez que se considera el antecedente
para "Deep Blue".
En 1961 se desarrolla SAINT (Simbolic Automatic INTegrator) por James Slagle el cual se
orienta a la demostracin simblica en el rea del lgebra.
En 1964 Bertrand Raphael construye el sistema SIR (Semantic Information Retrieval) el
cual era capaz de comprender oraciones en ingls.
Formalmente la IA inicia como disciplina en 1956.
En la dcada del 60 se comienza en el MIT el estudio de la visin artificial, lo cual implica
no solo captar imgenes a travs de una cmara, sino tambin la comprensin, de lo que
estas imgenes representan.
Un resultado importante en este trabajo lo constituye el "mundo de micro-bloques", en el
cual un robot era capaz de percibir un conjunto de bloques sobre una mesa, moverlos y
apilarlos; el xito se debi a los investigadores Larry Roberts, Gerald Sussman, Adolfo
Guzman, Max Clowes, David Huffman, David Waltz, Patrick Winston, y Berthold Horn.
Inteligencia Artificial.
Posteriormente se obtuvieron resultados importantes entre ellos el de mayor resonancia fue
el sistema SCHRDLU de Terry Winograd, pues permita interrogar y dar rdenes a un
robot que se mova dentro de un mundo de bloques.
En los primeros aos de la dcada del 60 Frank Rosemblatt desarrolla, en la Universidad de
Cornell, un modelo de la mente humana a travs de una red neuronal y produce un primer
resultado al cual llama perceptrn. Este sistema era una extensin del modelo matemtico
concebido por McCullock y Pitts para las neuronas, y funcionaba basndose en el principio
de "disparar" o activar neuronas a partir de un valor de entrada el cual modifica un peso
asociado a la neurona, si el peso resultante sobrepasa un cierto umbral la neurona se dispara
y pasa la seal a aquellas con las que est conectada. Al final, en la ltima capa de
neuronas, aquellas que se activen definirn un patrn el cual sirve para clasificar la entrada
inicial.
Este trabajo constituye la base de las redes neuronales de hoy en da, sin embargo a raz de
su desarrollo sufri fuertes crticas por parte de Marvin Minsky y Seymour Papert lo cual
provoc que la mayora de los investigadores interesados en el tema lo abandonarn, y este
no se retomara hasta los aos 80.
En 1965-70, comenzaron a aparecer los programas expertos, que predicen la probabilidad
de una solucin bajo un set de condiciones, entre esos proyectos estuvo: DENDRAL, que
asista a qumicos en estructuras qumicas complejas euclidianas; MACSYMA, producto
que asista a ingenieros y cientficos en la solucin de ecuaciones matemticas complejas,
etc.
En la dcada 1970-80, creci el uso de sistemas expertos, muchas veces diseados para
aplicaciones mdicas y para problemas realmente muy complejos como MYCIN, que
asisti a mdicos en el diagnstico y tratamiento de infecciones en la sangre. Otros son:
R1/XCON, PIP, ABEL, CASNET, PUFF, INTERNIST/CADUCEUS, etc. Algunos
permanecen hasta hoy.
De 1975 en adelante, comienza la era de los lenguajes expertos (shells) como EMYCIN,
EXPERT, OPSS, etc. para luego tratar de que stos sean ms amigables y funcionales.
Las definiciones de Inteligencia Artificial son muchas, pero podra decirse que son
programas que realizan tareas que si fueran hechas por humanos se consideraran
inteligentes.
Estos programas obviamente corren en un computador y se usan, como por ejemplo, en
control robtico, comprensin de lenguajes naturales, procesamiento de imgenes basado
en conocimientos previos, estrategias de juegos, etc. reproduciendo la experiencia que un
humano adquirira y de la forma en que un humano lo hara.
Para clasificar las mquinas como "pensantes", es necesario definir qu es inteligencia y
qu grado de inteligencia implica resolver problemas matemticos complejos, hacer
generalizaciones o relaciones, percibir y comprender. Los estudios en las reas del
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
aprendizaje, del lenguaje y de la percepcin sensorial han ayudado a los cientficos a definir
a una mquina inteligente. Importantes desafos han sido tratar de imitar el comportamiento
del cerebro humano, con millones de neuronas y extrema complejidad.
DIFERENCIA ENTRE LA INTELIGENCIA NATURAL Y LA ARTIFICIAL
Atributos
Inteligencia
Natural
Inteligencia
Artificial
Alta
Baja
Alta
Baja
Alta
Baja
Capacidad de adaptacin
Alta
Baja
Baja
Alta
Alta
de Alta
Alta
Baja
Alta
Baja
Alta
Alta
Capacidad de adquirir
informacin externa
una
gran
cantidad
Desde el punto de vista de los objetivos, la IA puede considerarse en parte como ingeniera
y en parte como ciencia:
Inteligencia Artificial.
Preguntas fundamentales de la IA.
1.
2.
3.
4.
Inteligencia Artificial.
El agente puede ser:
Activo, o sea que tiene en cuenta la gama de acciones abiertas a la eleccin y sus
recompensas o penalidades.
Softbot o sea robot basado en un software (como los robots bidimensionales de Beer
que mimetizan a un invertebrado).
Inteligencia Artificial.
Comunicacin. El agente puede comunicarse con el usuario, con otros agentes y con
otros programas. Con el usuario se comunica con un interfaz amigable, mediante el
que personaliza sus preferencias. Algunos agentes permiten comunicarse en
lenguaje natural, algo tpico de los chatbots.
El grado de inteligencia vara mucho de unos agentes a otros, que suelen incorporar
mdulos con tecnologas procedentes de la Inteligencia Artificial. Los ms sencillos
se limitan a recoger las preferencias del usuario, quien debe personalizarlos. Un
ejemplo son los agentes inteligentes basados en tecnologa de redes neuronales
especializados en identificar mensajes de correo electrnico sospechosos de
contener spam -mensajes no deseados-. En una primera fase el usuario debe
marcarlos como spam, el agente va aprendiendo a identificar los rasgos que
caracterizan a estos mensajes y posteriormente los filtra.
Autonoma. Un agente no slo debe ser capaz de hacer sugerencias al usuario sino
de actuar. En el ejemplo anterior, el agente que filtra el spam no puede estar
continuamente alertando al usuario en cada mensaje de correo que llega sobre la
posibilidad de que sea un mensaje no deseado y su verdadera utilidad surge cuando
elimina de forma autnoma dichos mensajes.
Ejemplos de agentes.
Representante virtual.
Asistentes personales (Agentes, Asistentes Financieros, Auditores.)
Negociadores de mercados electrnicos (subastas.)
Agentes de bsquedas de informacin o rastreadores de informacin solicitada
(Maimai, Googlealert, Copernic, Spypress, Tracerlook, Trademarkboots, Google
News.)
Agente secreto espa, para monitorear pginas web previamente identificadas por el
usuario e informa sobre cambios en dicha pgina (Changedetection, Spyweb.)
En general no se trabaja con agentes aislados sino con sistemas multi-agente, como lo
ilustra la figura.
Inteligencia Artificial.
Practique
con
el
agente
inteligente
(http://www.diligentdingo.com/DDingoLatest.exe)
de
inversiones
diligentdingo.
Inteligencia Artificial.
2.
3.
4.
5.
Inteligencia Artificial.
Para algunas personas los trminos IA y sistemas expertos son sinnimos. Muchos de los
sistemas expertos existentes actualmente consisten en grandes bases de conocimientos,
creadas para almacenar la informacin de que se dispone expertos humanos en varios
campos y a las que se aplica una serie de reglas de manipulacin expresadas en lenguajes
especficos. La diagnosis medica, la ingeniera qumica, la exploracin geolgica y el
Inteligencia Artificial.
diseo de computadoras han proporcionado material para el diseo de sistemas expertos de
gran xito.
Con el nacimiento de la Revolucin Industrial, muchas fbricas tuvieron gran aceptacin
por la automatizacin de procesos repetitivos en la lnea de ensamblaje. La automatizacin
Los sistemas expertos, tienen dos elementos bsicos y separados, aunque relacionados: una
base de conocimientos y una mquina de deduccin, o de inferencia. La base de conocimientos
proporciona hechos objetivos y reglas sobre el tema, mientras que la mquina de deduccin
proporciona la capacidad de razonamiento que permite al sistema experto extraer conclusiones.
consiste, principalmente, en disear sistemas capaces de ejecutar tareas repetitivas hechas
por los hombres, y capaces de controlar operaciones sin la ayuda de un operador humano.
El trmino automatizacin tambin se utiliza para describir a los sistemas programables que
pueden operar independientemente del control humano. La mayora de las industrias has
sido automatizadas o utilizan tecnologa para automatizar algunas labores; en la industria de
la telefona, marcacin, transmisin y facturacin esta completamente automatizados.
Pero no todas las industrias requieren el mismo grado de automatizacin. La agricultura es
una industria difcil de automatizar, y con esto se ha vuelto ms mecanizada, esencialmente
en el procesamiento y empaque de comida. De manera similar, los doctores pueden dar
consulta asistindose en una computadora, pero finalmente el doctor, y no la computadora,
termina por dar el diagnstico final al paciente.
Los robots comenzaron a aparecer en este proceso de automatizacin industrial hasta la
aparicin de las computadoras en los 40s. Estos robots computarizados, estn equipados
con pequeos microprocesadores capaces de procesar la informacin que le proveen los
sensores externos y as es como el robot puede tomar cambiar o mantener una operacin en
ejecucin, a esto se le llama retroalimentacin, y forma parte de la Ciberntica. La
retroalimentacin es esencial en cualquier mecanismo de control automtico, ya que ayuda
a controlar los factores externos que le afecten en la correcta ejecucin de sus operaciones
normales.
Inteligencia Artificial.
Segn otros rumbos tomados se propone la inclusin de compiladores en hardware ms que
en software, y la obtencin de un microcdigo para procesadores en un lenguaje lgico
como el Prolog.
d) Robtica
Inteligencia Artificial.
Cronologa de la Robtica.
FECHA
DESARROLLO
SigloXVIII.
1801
J. Jaquard invento su telar, que era una mquina programable para la urdimbre
1805
1946
1951
1952
1954
1954
1959
Se introdujo el primer robot comercial por Planet Corporation. estaba controlado por
interruptores de fin de carrera.
1960
1961
Un robot Unimate se instal en la Ford Motors Company para atender una mquina
de fundicin de troquel.
1966
Trallfa, una firma noruega, construy e instal un robot de pintura por pulverizacin.
1968
1971
1973
1974
1974
Kawasaki, bajo licencia de Unimation, instal un robot para soldadura por arco para
estructuras de motocicletas.
Inteligencia Artificial.
1974
1975
1976
1978
1978
1979
Desarrollo del robot tipo SCARA (Selective Compliance Arm for Robotic Assambly)
en la Universidad de Yamanashi en Japn para montaje. Varios robots SCARA
comerciales se introdujeron hacia 1981.
1980
1981
1982
IBM introdujo el robot RS-1 para montaje, basado en varios aos de desarrollo
interno. Se trata de un robot de estructura de caja que utiliza un brazo constituido por
tres dispositivos de deslizamiento ortogonales. El lenguaje del robot AML,
desarrollado por IBM, se introdujo tambin para programar el robot SR-1.
1983
1984
e) Ciberntica.
La ciberntica es una ciencia interdisciplinaria, tratando con sistemas de comunicacin y
control sobre organismos vivos, mquinas u organizaciones. El trmino es una derivacin
del vocablo griego kybernetes que significa gobernador o piloto, y fue aplicado por primera
vez en 1948 a la teora del control de mecanismos por el matemtico americano Norbet
Wiener.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Inteligencia Artificial.
un decisin acertada basndose en informacin incompleta. Esto resulta tan importante para
el aprendizaje de cualquier materia o para que el estudiante de cualquier ciencia adquiera
los aspectos sutiles del tema, como aprender las premisas bsicas.
En la creacin de un sistema experto hay una parte bastante inmediata de codificacin de
los hechos conocidos sobre un tema; la parte ms difcil, conocida como modelacin de la
maestra, consiste en la formulacin y aplicacin de reglas extradas de la experiencia que
se posee en el tema. En cualquiera de los casos el sistema esta constituido por una base de
conocimientos que proporcionan los hechos y un motor de inferencia para desarrollar las
deducciones lgicas y tomar decisiones (algunas veces acompaadas de un porcentaje de
probabilidad acerca de la correccin de las deducciones), basadas en los hechos y reglas
conocidas.
El programa MYCIN publicado por E. Schortcliffe en 1976 es un sistema que diagnostica
enfermedades infecciosas, en particular infecciones sanguneas. MYCIN lo usan mdicos
en prcticas para obtener ayuda en sus diagnsticos, a su vez el sistema se actualiza con los
hechos y reglas de inferencia que proporcionan los especialistas.
c) El programa DENDRAL
DENDRAL es un programa experto de anlisis qumico y
se ha aplicado con mucho xito en muchos lugares del mundo. DENDRAL soluciona un
problema de ingeniera qumica en tres fases. En primer lugar, el programa infiere cualquier
posible restriccin sobre la solucin basndose en el conocimiento que posee en su base de
datos. A continuacin permite a los usuarios aadir cualquier otro tipo de restriccin y
finalmente genera y comprueba una lista de posibles soluciones, que imprime en orden de
preferencia. DENDRAL se escribi originalmente en LIPS, pero ha sido reprogramado para
ser usado en varias maquinas diferentes de entre las que se destaca la implementacin
realizada sobre un PDP-10 en Edimburgo. Este programa basado en la estrategia de
"planificar, generar y comprobar" se usa en las universidades y en las industrias de Estados
Unidos y en Europa y representa una de las aplicaciones prcticas de la IA que mas xito ha
conseguido de entre las desarrolladas hasta la fecha.
Inteligencia Artificial.
El grupo de software esta investigando sobre un lenguaje que sea el ncleo del proyecto,
est incluye sistema operativo, lenguaje natural y representacin del conocimiento. El
tercer grupo combina los resultados de los dos primeros grupos en la labor sobre sistemas
de gestin de bases de datos afines y sistemas expertos y para conseguir validar la teora
propuestas por el resto del grupo.
En contraste en las aproximaciones que se han realizado en otras partes del mundo, los
japoneses estn tratando de formular una nueva teora unificada para todo el campo de
representacin y procesamiento de la informacin. Ya hemos visto que existen numerosas
aproximaciones diferentes que pueden asimilarse a las diferentes ramas de la IA, pero solo
si se aceptan estas aproximaciones incluyndolas en una estrategia global, el nmero de
opciones se reducir y los japoneses creen que de este modo aumentarn las oportunidades
para lograr una estrategia global coherente.
El mayor logro desarrollado en los primeros cuatro aos del proyecto ha sido una maquina
basada en el conocimiento y que ha sido llamada Delta que comprende un sistema de
inferencia, un sistema de conocimiento, un sistema de software y un sistema para el
desarrollo de prototipos de software.
Las maquinas para bases de datos afines tienen
acceso a algo as como unos 20 gigabytes de
almacenamiento y en las etapas iniciales se
encontraron algunos problemas debido al uso de
las maquinas convencionales que se basan en un
procesamiento secuencial y que se incluyeron
como compromiso con la reconocida necesidad
de efectuar un procesamiento en paralelo a gran
escala. Se estima que las maquinas de inferencia
que se necesitan al final del proyecto debern
ser capaces de ejecutar 10 LIPS y esta potencia
de procesamiento slo ser proporcionada por el
equivalente de 1000 procesadores trabajando en
paralelo.
Inteligencia Artificial.
SEGUNDA UNIDAD:
Introduccin.
Desde el punto de vista de ingeniera, la mayor parte del trabajo requerido para construir sistemas
de IA, est basado en el desarrollo de adecuadas representaciones de conocimiento y sus
correspondientes estrategias de manipulacin. No se puede manipular conocimiento a menos
que est adecuadamente representado. En consecuencia, las siguientes tres preguntas claves
pueden guiarnos en el estudio de la IA.
Qu es el conocimiento?
Cmo se puede representar el conocimiento?
Cmo se podra manipular el conocimiento?
Conocimiento
Puede ser definido como el conjunto de hechos y principios acumulados por la humanidad, o el
acto, hecho o estado de conocer. Es la familiaridad con el lenguaje, conceptos, procedimientos,
reglas, ideas, abstracciones, lugares, costumbres y asociaciones, unida a la habilidad de utilizar
estas nociones en forma efectiva para modelar diferentes aspectos del universo que nos rodea.
Los conceptos de conocimiento e inteligencia estn ntimamente ligados. La inteligencia requiere
de la posesin y acceso al conocimiento. Conocimiento no debe ser confundido con datos o
informacin. El conocimiento incluye y requiere del uso de datos e informacin. Adems, combina
relaciones, dependencias, y la nocin del saber con datos e informacin.
A veces es tambin til o ms aun necesario distinguir entre conocimiento y otros trminos como
creencia e hiptesis.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Esencialmente, se define como creencia a toda expresin que tiene significado, que es coherente
y puede ser representada. En consecuencia una creencia puede ser verdadera o falsa. Hiptesis
se define como una creencia justificada que no se conoce sea verdadera. Una hiptesis es una
creencia que est respaldada por cierta evidencia, pero todava puede resultar falsa. Finalmente,
se puede tambin decir que conocimiento es una creencia justificada como verdadera.
Otros trminos relacionados con el conocimiento y que son ocasionalmente empleados son
epistemologa y metaconocimiento. Epistemologa es el estudio de la naturaleza del conocimiento,
mientras que metaconocimiento es conocimiento acerca del conocimiento, esto es, conocimiento
acerca de lo que se conoce.
El conocimiento puede ser de tipo procedimental, declarativo o heurstico. Conocimiento
procedimental es aquel conocimiento compilado que se refiere a la forma de realizar una cierta
tarea (el saber como hacerlo). Por ejemplo, los pasos necesarios para resolver una ecuacin
algebraica son expresados como conocimiento procedimental.
Por otro lado, el conocimiento declarativo es conocimiento pasivo, expresado como sentencias
acerca de los hechos del mundo que nos rodea (el saber que hacer). La informacin personal en
una base de datos es un tpico ejemplo de conocimiento declarativo. Tales tipos de datos son
piezas explcitas de conocimiento independiente.
El conocimiento heurstico es un tipo especial de conocimiento usado por los humanos para
resolver problemas complejos. El adjetivo heurstico significa medio para descubrir. Est
relacionado con la palabra griega heuriskein que significa descubrir, encontrar. Se entiende por
heurstico a un criterio, estrategia, mtodo o truco utilizado para simplificar la solucin de
problemas. El conocimiento heurstico usualmente se lo adquiere a travs de mucha experiencia.
Inteligencia Artificial.
En trminos generales, se debe tratar que el conocimiento est representado de tal forma que:
Capture generalizaciones.
Pueda ser comprendido por todas las personas que vayan a proporcionarlo y procesarlo.
Pueda ser fcilmente modificado.
Pueda ser utilizado en diversas situaciones an cuando no sea totalmente exacto o
completo.
Pueda ser utilizado para reducir el rango de posibilidades que usualmente debera
considerarse para buscar soluciones.
Inteligencia Artificial.
Procesos de Bsqueda.- Proporciona una forma de resolver problemas para los cuales no
hay un mtodo ms directo, as como tambin se constituye en un marco de trabajo dentro
del cual cualquier tcnica directa puede ser incorporada.
Uso del Conocimiento.- Proporciona una forma de resolver problemas
Inteligencia Artificial.
Libros
Filosofa
Matemticas
Historia
Escritorio
Madera
Metal
Madera
Caoba
Pino
Los nodos estn representados por los crculos y las lneas que los unen son los arcos.
REDES SEMNTICAS
Inteligencia Artificial.
Nodo = objeto
Donde un Objeto puede ser representado por:
1. Personas
2. Animales
3. Eventos
5. Acciones
6. Conceptos
7. Atributos o caractersticas que identifican a un objeto.
Existen ciertos tipos de Arcos tpicos entre los cuales estn.
1. ISA (Es-un): El cual usa para identificar que un cierto pertenece a una clase mayor de
objeto.
Ser _humano
Es un
Hombre
Es un
Manuel
2. HAVE-a (tiene-un), este tipo de arcos se utiliza para identificar que un cierto nodo tiene
o pase una cierta caractersticas o atributo o propiedad. Tambin se puede utilizar para
representar situaciones, acciones y eventos.
Inteligencia Artificial.
Inteligencia Artificial.
Es_un
Es_un
Ti
en
un
tiene
de
Tiene un
po
Ti
Inteligencia Artificial.
Ejemplo de Red Semntica: Animal.
puede
po
Ti
vo
lar
Ti
po
de
de
come
s
ata
Ti
po
tiene
p
ne
Tie
de
Inteligencia Artificial.
Aire
PAJARO
Es del tipo
tiene
puede
CANARIO
Un representante
color
Amarillo
Miembros
Alimentos
Alas
Un
Representante
de
Alas
Es del tipo
Masa
Plumas
come
PERSONA
Brazos
ARTURO
Trabaja en
Pioln
NASA
Inteligencia Artificial.
Ejercicios:
Dado el siguiente conocimiento construya la correspondiente Red Semntica.
- Los Jorobados son personas pequeas.
- Bilbo es un jorobado.
- Los jorobados tienen dedos gordos.
- Bilbo posee un anillo mgico.
- El anillo fue encontrado en una cueva.
- Los jorobados son personas mticas y las personas mticas son estudiadas por los
estudiantes de literatura.
Inteligencia Artificial.
FRAMES (MARCOS)
Un Frames es una estructura de datos que contiene todo el conocimiento acerca de un
objeto. Los Frames son organizados en forma jerrquica y esta caracterstica es utilizada
como medio para responder a Preguntas. Los Frames surgieron de la pregunta orientada a
objetos. Cada frames describe un objeto en particular. Por lo tanto cada frames me
representa una estructura de conocimiento en la cual se esta describiendo a un objeto, un
evento o una situacin cualesquier otro elemento. En los frames se describe el
conocimiento acerca de un objeto utilizado SLOTS (Ranuras).
Representacin del conocimiento en una jerarqua de frames que heredan propiedades de
frames del nivel superior.
Modo de transporte
Carro Ranura
Generalidades
Auto Ranura
del carro
Motor Ranura
Inteligencia Artificial.
3. Que identifican a las Reglas.
Ejemplo:
If mquina caliente THEN prender ventilador.
4. Un Slot puede indicar la conexin con otro FRAME
5. Un Slot puede indicar la conexin con otros frame de representacin de
conocimiento como lo son con las Redes Semnticas.
FRAME de un Auto.
-Clase; transportacin
-Nombre del fabricante; Audi
-Origen del fabricante
Nota: Una de las caractersticas de los frames es que un frame puede identificar a toda una
familia de objetos.
SCRIPT (LIBRETO)
Este tipo de Representacin de conocimiento es utilizado para representar secuencias de
EVENTOS de tipo:
- Historias
- Dramas
- Visitas
- Viajes
- Esttica
Visitas al:
- Doctor.
- Restaurante
- Museo, etc.
Inteligencia Artificial.
- mostrador
- palillos
- sal
- cuchillo
- tenedor
- cuchara
- mesa
Roles o Papeles:
- Hay un cliente (C)
- Recepcionista (R)
Escena 1: Entrada al Restaurante.
- El cliente para el carro.
- El (C) entra al Restaurante.
- El (C) hace fila en el mostrador.
- El (C) mira los distintos alimentos en la pared y decide cuales seleccionar.
Escena 2: Ordenar.
- El cliente lea la orden al (R).
- El (R) comienza a poner los alimentos a la bandeja.
- El (C) paga la orden.
Escena 3: Comer.
- El cliente toma servilletas, cuchillo, tenedor, cuchara, sal, palillos y salsa de tomate.
- El (C) busca mesa.
- El cliente consume los alimentos.
Escena 4: Salida.
- Recoge la basura de la mesa.
- Vaca el contenido de la vasija en el bote de la basura.
- Sale del restaurante.
- Toma su carro.
- Se va.
Resultados:
- Cliente ya no tiene hambre.
- El (C) tiene menos dinero.
- El (C) esta satisfecho.
- El (C) no esta satisfecho.
- El (C) trae dolor de estomago.
Inteligencia Artificial.
Inteligencia Artificial.
Lgica proposicional
La lgica proposicional trata con unidades bsicas denominadas proposiciones. Una
proporcin es una expresin que tiene un valor de verdad (falso o verdadero, pero no ambos
a la vez).
Ejemplo:
Mozart fue un compositor. (Verdadero)
Todo compositor escribe msica. (Verdadero)
Un perro es un animal. (Verdadero)
Un gato es un perro. (Falso)
Estas proposiciones se pueden representar mediante p, q, r, s, ... y se les llama
proposiciones simples o atmicas.
Las proposiciones simples o atmicas son vinculadas o modificadas por los llamados
conectores:
^ : = AND
v : = OR
~ : = NOT
=> : = Implicacin
:= Doble implicacin
Y son llamadas proposiciones compuestas o moleculares.
Ejemplo:
p: Mozart fue un compositor.
~ p : Mozart no fue un compositor.
q: Mozart escribi msica.
p ^ q: Mozart fue un compositor y escribi msica.
p v q: Mozart fue un compositor o escribi msica.
p => q: Si Mozart fue un compositor entonces escribi msica.
p
q: Mozart fue un compositor si y solo si escribi msica.
En el caso de las proposiciones simples asignarles su valor de verdad es obvio, se requiere
tener un conocimiento claro de los hechos relacionados a la proposicin. En cambio para
las proposiciones compuestas se deben seguir ciertas reglas que sealaremos en la tabla
siguiente:
p
V
V
F
F
1
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
q
V
F
V
F
2
~p
F
F
V
V
3
p^q
V
F
F
F
4
pvq
V
V
F
F
5
p => q
V
F
V
V
6
p
V
F
F
V
7
Inteligencia Artificial.
Negacin: ~ p
Toma el valor de verdad opuesto al de la proposicin p, o sea, si la proposicin p es
verdadera la negacin ~ p es falsa y viceversa. Como se observa en la columna 3.
Conjuncin: p ^ q
Toma el valor de verdadero solo cuando ambas miembros son verdaderos. En cualquier
otro caso es falsa. Como se observa en la columna 4.
Disyuncin: p v q
Toma el valor falso cuando ambos miembros son falsos. En cualquier otro caso es
verdadera. Como se observa en la columna 5.
Condicional: p => q
Si el antecedente es verdadero y el consecuente es falso, la condicional es falsa. En
cualquier otro caso es verdadera. Como se observa en la columna 6.
Bicondicional: p
q
Cuando ambos miembros tienen el mismo valor de verdad, la bicondicional es verdadera.
En cualquier otro caso es falsa. Como se observa en la columna 7.
Las variables, tambin pueden ser cuantificadas. Los cuantificadores que tpicamente se utilizan en
lgica de predicados son:
X....
Establece que "para todo X, es verdad que . . . "
X....
Establece que "existe un X, tal que . . . "
A continuacin se dan algunos ejemplos de predicados cuantificados:
Inteligencia Artificial.
Desde el punto vista de representacin, los cuantificadores son difciles de usar. Por lo que es
deseable reemplazarlos con alguna representacin equivalente, ms fcil de manipular. El caso del
cuantificador universal es ms simple ya que se asume a todas las variables como universalmente
cuantificadas.
El cuantificador existencial es ms difcil de reemplazar. El cuantificador existencial garantiza la
existencia de uno o ms valores particulares (instancias) de la variable cuantificada, que hace a la
clusula verdadera. Si se asume que existe una funcin capaz de determinar los valores de la
variable que hace la clusula verdadera, entonces simplemente se remueve el cuantificador
existencial y se reemplaza las variables por la funcin que retorna dichos valores. Para la
resolucin de problemas reales, esta funcin, llamada funcin de Skolem, debe ser conocida y
definida.
Inteligencia Artificial.
2. Sea la forma proposicional p (x ): x es un nmero par
Dominio: x = { (x, p ( x )) | p ( x ): x es un nmero par } = {1, 2, 5 }
Instanciando tenemos:
x = 1, p(1): 1 es un nmero par. (Falso)
x = 2, p(2): 2 es un nmero par. (Verdadero)
x = 5, p(5): 5 es un nmero par. (Falso)
Existen algunos elementos del dominio que cumplen la forma proposicional, esto se indica
de la manera siguiente:
x, p( x ): existe algn x, x es un numero par.
Lgica de predicados.
La lgica de predicados se refiere o sirve para identificar una relacin existente entre
elementos llamados argumentos, entre parntesis o bien identifica a la propiedad o
caracterstica de los argumentos en el parntesis, o bien identifica el nombre de la clase a la
que pertenecen los argumentos. Se expresa de la manera siguiente:
PREDICADO (ARG1,ARG2,...,ARGN)
NOMBRE
DEL
PREDICADO
NOMBRE
DEL
ARGUMENTO
Inteligencia Artificial.
Operaciones lgicas:
^ : = AND
v : = OR
~ : = NOT
=> : = Implicacin
:= Doble implicacin
: = Para todo
: = Existe
Jerarqua de las operaciones lgicas (orden de mayor a menor)
1. Se ejecutan primero las agrupaciones: ( )
2. ~ : not
3. ^ : and
4. v : OR
5. => : Implicacin (Si ... Entonces ... )
:= Doble implicacin (... si y solo si ...)
6.
Sintaxis en la lgica de Predicados.
Aqu se maneja la siguiente simbologa.
- variables x, y, z
- funciones f, g, h
- constantes a, b, c
-Smbolo de predicado P, Q, R, S, T
-Smbolos de apuntacin "(", ")", ","
Aunado a estos smbolos se utilizan los siguientes conceptos.
UNIVERSO: El cual identifica a la totalidad de los valores que puede tomar una variable.
TERMINO: Una variable es un termino, x, y, z. As como f(t) donde f es una funcin y t
es una secuencia de uno o mas trminos.
Ejemplo: f(x), h(y), g( x, y, h(x)), f( h(x, y), y(z, f(z) )
FORMULA ATOMATICA: Una formula automtica es un predicado p(x), donde P es el
nombre del predicado y x es un termino.
Ejemplo: Es-verde (limn), mamfero (Pedro), mamfero (ballena, delfn, cabra)
Inteligencia Artificial.
LITERAL: Los literales son predicados o negaciones de predicados.
Ejemplo:
mamfero (Pedro)
~ mamfero (vidrio)
SENTENCE: Las expresiones son FBF donde el alcance de las variables esta
perfectamente bien definido mediante cuantificadores o bien UNIVERSALES bien
EXISTENCIALES.
Smbolos:
Ejemplo:
Lgica de Predicado de Orden Superior: Es cuando una variable y una funcin toman
sus valores de un mismo dominio.
Ejemplo:
Hermano (x, hijo(a, y)): x es to de a. [Predicado de Segundo Orden]
Colega (b, hermano (x, hijo(a, y))): b es colega del to de a. [Tercer Orden]
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Sistema: Un sistema en la lgica de predicados de primer orden esta formado por un
conjunto EXPRESIONES cada uno de los cuales tiene un valor de verdad (verdadero o
falso).
A v (B V C) = (A v B) v C
A ^ (B ^ C) = (A ^ B) ^ C
A ^ (B v C) = (A^ B) v (A ^ C)
A v (B ^ C) = (A v B ) ^ (A v C)
~ (A v B) = ~ A ^ ~ B
~ (A ^ B) = ~ A v ~B
AvB=BvA
A^ B = B ^ A
A^A=A
AvA=A
~ (A ^ ~ A) = 1
A v ~ A) = 1
A => A = 1
A
A=1
Ejemplos:
Convertir las siguientes proposiciones a lgica de predicados (FBF). (Sistema que describe
parte del mundo Romano).
1. Marco fue un hombre: hombre (Marco)
2. Marco fue pompeyano: pompeyano (Marco)
3. Todos los pompeyanos fueron Romanos: x [Pompeyanos(x) => Romano(x)]
4. Cesar fue un rey: Rey (Cesar)
5. Todos los Romanos eran leales a Cesar o lo odiaban: x [ Romanos(x) =>leal(x,Cesar)
v odiaba(x, Cesar) ]
6. Todos son leales a alguien: x [y leal(x, y)]; x[ ((alguien), leal (x, alguien)) ]
7. La gente que trata a los reyes son los no leales: x y [gente (x) ^ Rey (y) ^
trata_de_asesinar (x, y) => ~ leal(x, y) ]
8. Marco trata de Asesinar a Cesar: Trata_de_ Asesinar(Marco, Cesar)
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Formas de Skolem
1. Eliminar todas las implicaciones.
Ejemplo: A=> B se convierten en ~A v B
2. Correr las negaciones hasta los predicados correspondientes
(Distribuir las negaciones entre los predicados)
Ejemplo: ~ ( P(x) ^ Q(y) ) eq ~ P(x) v ~Q(y)
3. Distribuir cuantificadores entre los predicados correspondientes.
(Corregir cuantificadores o deslizarlos hasta los correspondientes predicados, considerando
el mismo orden)
Ejemplo: x y P(x) ^ Q(y) es equivalente a x P(x) ^ y Q(y)
4. Eliminar los Cuantificadores Existenciales
4.1 Convirtindolos a constantes cuando aparecen sin un cuantificador universal.
Ejemplo: x p(x) equivale a p(pato)
x Ave(x) equivale a Ave(pato)
4.1 Convirtindolos a funciones cuando aparezcan acompaados de un cuantificador
universal.
Ejemplo: x y P(x, y) equivale a P(x, f(x) )
f:= {(x, y) / y = f(x) }
5. Eliminar todos los Cuantificadores Universales.
Ejemplo: x y P(x) ^ Q(y) equivale a P(x) ^ Q(y)
6. Convertir las conjunciones (AND'S) en disyunciones (OR'S).Obteniendo una clusula
por cada elemento de la conjuncin.
Ejemplo:
1. P(x) ^ Q(y)
1.1 P(x)
1.2 Q(y)
2. P(x) ^ ( Q(y) v R(z) )
2.1 P(x)
2.2 Q(y) v R(z)
3. P(x) ^ ( Q(y) ^ R(z) )
3.1 P(x)
3.2 Q(y)
3.3 R(z)
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Inteligencia Artificial.
2.3. Inferencia
La inferencia en la lgica formal es el proceso de generar nuevas formulas bien formadas
(FBF) a partir de FBF existentes, mediante la aplicacin de las reglas de inferencias
Reglas para la extraccin de conocimiento de sistemas en lgica de predicados.
1. Modus Ponens la cual dice que si:
A => B es verdadero y A es verdadero => B es verdadero
2. Modus Tolen. La cual dice que si:
A => B es verdadero y ~ B es verdadero => ~ A es verdadero.
3. La Regla de Resolucin dice que si:
a1 v a2 es verdadero y ~ a2 v a3 es verdadero => a1 v a3 es verdadero
Nota: A => B es equivalente ~A V B
a) Reglas de Produccin
Un sistema de produccin proporciona una estructura que facilita la descripcin y la ejecucin de
un proceso de bsqueda. Un sistema de produccin consiste de:
Lenguajes bsicos para sistemas de produccin (LISP, CLIPS, PROLOG). Tambin se los
conoce como lenguajes de Inteligencia Artificial.
Sistemas hbridos y sistemas vacos (shells) para produccin de sistemas basados en
conocimientos (VP-Expert, Expert Teach, Personal Consultant, Intelligence Compiler,
EXSYS).
Arquitecturas generales para resolucin de problemas (mquinas LISP, mquinas
PROLOG).
Inteligencia Artificial.
Caractersticas de los Sistemas de Produccin
Un sistema de produccin, al igual que los problemas, puede ser descrito por un conjunto de
caractersticas que permiten visualizar la mejor forma en que puede ser implementado.
Un sistema de produccin se dice que es monotnico si la aplicacin de un regla nunca evita que
ms tarde se pueda aplicar otra regla que tambin pudo ser aplicada al momento en que la primera
fue seleccionada.
Un sistema de produccin es parcialmente conmutativo si existe un conjunto de reglas que al
aplicarse en una secuencia particular transforma un estado A en otro B, y si con la aplicacin de
cualquier permutacin posible de dichas reglas se puede lograr el mismo resultado.
Un sistema de produccin es conmutativo, si es monotnico y parcialmente conmutativo.
SISTEMA DE PRODUCCIN
PARCIALMENTE CONMUTATIVO
PARCIALMENTE NO CONMUTATIVO
MONOTNICO
NO-MONOTNICO
Demostracin de Teoremas Navegacin Robtica
Sntesis Qumica
Juego de Ajedrez
La parte condicional de una regla de produccin llamado Lado Izquierdo (LI), consiste en
una serie de elementos que describen las condiciones que deben ser verdaderas para que la
regla sea aplicable. La parte de la accin de la regla llamada Lado Derecha (LD), describe
las acciones que se van a llevar a cabo cuando se dispara la regla (ejecucin).
Ejemplo: Desarrolle una regla de produccin que represente:
1) Al aplicar el freno el automvil de Juan se detiene.
(p accionar _ freno
(Automvil de Juan ^ freno aplicado)
(modificar ^ movimiento interrumpido))
Esta produccin llamada accionar _ freno, indica que si el valor del atributo freno para el
elemento de memoria automvil de Juan viene a ser igual al valor aplicado, entonces el
valor del atributomovimiento debe modificarse al valor de interrumpido.
Utilizando Reglas
Una regla es una representacin del tipo
If condicin 1
:
condicin n
THEN conclusion 1
:
conclusin n
Ejemplo.
If esta lloviendo then saco mi paraguas.
If tengo hambre then como alimentos.
If tengo examen then debo estudiar OR Sentarme al lado de alguien.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Regla = Produccin
Sistemas Basados en Reglas eq Sistemas de Produccin.
Ejemplo:
Sistemas Deductivo basados en Reglas:
Para identificar animales de un zoolgico:
R1: If x tiene pelo THEN x es mamfero.
R2: If x da leche THEN x es mamfero.
R3: If x tiene plumas THEN x es ave.
R4: If x vuela AND x pone huevos THEN x es ave.
R5: If x es mamfero AND x come carne THEN x es carnvoro
R6: If x es mamfero AND x tiene dientes agudos AND x tiene garras AND x tiene ojos
que miran hacia adelante THEN x es carnvoro.
R7: If x es mamfero AND x tiene cascos (pesuas) THEN x es un ungulado.
R8: If x es mamfero AND x mastica (rumia) hierba THEN x es un ungulado AND tiene dedos.
R11: If x es ungulado AND x tiene patas largas AND x tiene cuello largo AND x tiene color
aleonado AND x tiene manchas obscuras THEN x es una jirafa.
Inteligencia Artificial.
Problema:
Usted esta iniciando una noche tranquila cuando un viejo amigo le llama y le dice que viene
a cenar. Peor lo cual usted inmediatamente comienza a hacer los preparativos
correspondientes y usted posee un Sistema Experto para seleccionar las bebidas. Las Reglas
que identifican a su Experto en bebidas son las siguientes:
B1: If un vino caro es el indicado AND es Ao Nuevo THEN el vino es lo indicado.
B2: If un vino caro es el indicado AND el plato principal es Carne Roja(Steak) THEN seleccionar
Chateau Earl of Bartoville Red.
B3: If un vino barato es el indicado AND plato principal es Pollo AND el invitado no es bien visto
THEN seleccione Honest Henry's Apple Wine.
B4: If un vino barato es el indicado AND plato principal desconocido THEN seleccionar Toe Lokes
Roses.
B5: If cerveza es lo indicado AND el plato principal es Mexicano THEN seleccionar xx.
B6: If cerveza es lo indicado THEN seleccionar Tecate.
B7: If el invitado es escrupuloso con los alimentos THEN seleccionar Glop.
B8: If el invitado es escrupuloso AND no se sirven zanahorias THEN seleccionar Jugo de
Zanahoria.
B9: If vino es lo indicado AND la visita debe ser impresionada THEN un vino caro es lo indicado.
B10: If un vino es lo indicado THEN un vino barato es lo indicado.
B11: If el invitado es sofisticado THEN vino es lo indicado.
B12: If el plato principal es mexicano THEN cerveza es lo indicado.
B13: If el invitado es indeseable AND el plato principal es comprado a la Abastecedora el
Buen Morir THEN cerveza es lo indicado.
B14: If el Plato principal no importa es cualquier cosa THEN seleccione agua.
Inteligencia Artificial.
Respuesta:
Con el dato 4 se dispara regla 1.
7. El vino es lo indicado.
Con el dato 7 se dispara regla 10.
8. Un vino barato es lo indicado.
Con el dato 3,6,8 se dispara regla 3.
9. Seleccionar Honest Henry's
Con el dato 2 se dispara regla 12.
10. Cerveza es lo indicado.
Con el dato 10, 2 se dispara regla 5.
11. Seleccionar xx
Con el dato 10 se dispara regla 6.
12. Seleccionar Tecate
Con el dato 1, 3 se dispara regla 13.
13.Cerveza es lo indicado
Clusulas de Horn
Las clusulas de Horn trabaja con el Modus Ponens, tomando como verdadero el
consecuente cuando se tiene como verdadero el antecedente. A =>B, Si A es verdadero,
entonces B es verdadero.
Forma Cannica: La Forma Cannica de Modus Ponens determina que cada oracin de la
base de conocimientos sea una oracin atmica o una implicacin con una conjuncin de
oraciones atmicas en el lado izquierdo y un solo tomo a la derecha.
Al tipo de oraciones que cumplen con la forma Cannica del Modus Ponens se les
denomina oraciones de Horn; a la base de conocimientos formadas exclusivamente por
oraciones de Horn se dice que est en Forma normal de Horn.
Ejemplo:
1) Proyectil (x)
Posee (y, x )
Proyectil (x ) ^ Posee (y, x ) => Vende (z, y, x )
Aplicando Modus Ponens se concluye: Vende (z, y, x)
2) Mamfero (x)
Tiene_pelo (x)
Es _ cuadrpedo (x)
Tiene _ rayas (x)
Tigre (x)
Mamfero (x) ^ Tiene_pelo (x) ^ Es _ cuadrpedo (x) ^ Tiene _ rayas (x) => Tigre (x)
Aplicando Modus Ponens se concluye: Tigre (x)
Inteligencia Artificial.
Ejercicios:
Las expresiones Cmo llegaste? Qu estudias? Habla usted ingls? No son
proposiciones, pues de su significado no se puede decir si es falso o verdadero. Las rdenes
que se dan a otra persona tampoco son proposiciones. Cules de las expresiones siguientes
son proposiciones? De las que no son diga por qu.
1. Todas las naranjas son amarillas
2. Un rectngulo es una figura verde
3. Medelln es la ciudad de la eterna primavera
4. Hay tringulos que son rectngulos
5. Algunas manzanas son rojas
6. El fro es una ciencia
7. La filosofa es cuadrada
8. El universo es suave
9. El sol saldr maana
10. El banano es una fruta que re
11. Todos los tringulos son issceles
12. Tmese la medicina
13. Cules son proposiciones?
14. El reconocimiento del pasado es separable del reconocimiento del futuro.
15. El reconocimiento del futuro es separable del reconocimiento del pasado
16. El conocimiento del pasado es posible
17. El conocimiento del futuro es posible
18. Nada triunfa como el xito
19. Nada fracasa al final como el xito.
Escribir en lgica proposicional:
El gato es azul y come queso verde
Permanecer en casa si llueve
Maana es Martes o es Mircoles
El ser nmero par implica ser entero
Si es un nmero par, entonces tambin es entero
Es nmero par slo si es entero
Es nmero entero, si es par
Es entero siempre que sea par
El ser nmero par es condicin suficiente para ser entero
Ser nmero entero es condicin necesaria para ser par
Si el cuadriltero ABCD es un cuadrado entonces sus lados son iguales.
La aceleracin de un cuerpo es proporcional al producto de su masa por la fuerza
ejercida sobre l.
Juan es alto.
Juan es to de Mara.
Todos los majadistanenses son de Majadistn. Rudistein es Majadistanense. En
consecuencia, Rudistein es de Majadistan.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
x ValerLaPena(x) PoderObtenerseFacilmente(x)
x CaballoCarreras(x) PuraRaza(x)
Inteligencia Artificial.
Todos los cidos son corrosivos. Todos los cidos tienen hidrgeno; luego Algo que
tenga hidrgeno es corrosivo.
Ningn gas tiene volumen constante. Todos los gases son cuerpos; luego Algunos
cuerpos no tienen volumen constante.
Todos los atletas cuidan su salud. Nadie que cuida su salud es vicioso; luego Nadie
que sea vicioso es atleta.
Algunas plantas tienen flores.
Un hijo de Pramo mat a un hijo de Peleo.
Un aqueo mat a todos los hijos de Pramo
Algunos sobrevivientes de la guerra amaron a Elena
Todos los hijos de Hctor murieron a manos de algn aqueo.
Ningn personaje de la Iliada mat a Eneas.
Elena am a uno de los hijos de Pramo.
Si alguien vive es por que no lo ha matado algo.
Cualquiera que conoce algo acerca de la lgica le gusta la lgica.
Ningn dragn que vive en un zoolgico sera feliz.
Cualquier animal que conoce a gente agradable es feliz.
Las personas que visitan zoolgicos son agradables.
Los animales que viven en zoolgicos conocen a gente que visita zoolgicos.
Colombia pertenece a Amrica.
Bolvar libert a Colombia.
El agua es un mineral.
La palabra esdrjula es esdrjula.
La Tierra es redonda.
Venus es uno de los planetas del sistema solar.
Entrars slo si has llegado a tiempo.
A no ser que consigas un aprobado en alguna asignatura, te echarn de la facultad.
Slo logrars que lo declaren culpable si aparece un testigo que refrende tu versin
de los hechos.
Cuando apruebas todas las asignaturas te dan el ttulo.
Cuando empieza a amanecer el gallo canta.
Juan vendr nica y exclusivamente si Mara se lo pide.
Vienes o te quedas
Antonio viaja en avin o en carro.
Mara ser doctora en filosofa si y solo si defiende con xito su tesis doctoral.
Ni contigo ni sin ti tienen mis males remedio
No es cierto que quiera y no pueda
Inteligencia Artificial.
tales represas o que haya escasez de pozos. Por lo tanto, las lluvias aumentan o hay
escasez de pozos.
Si me gusta el arte, voy a la exposicin de pintura o a ver danza moderna. Si estoy
enfermo o no me gusta el arte, entonces me queda en casa. No me quedo en casa. En
consecuencia, si no voy a la exposicin de pintura, voy a ver danza moderna.
Si Alberto estudia medicina, Fernando le dar ayuda econmica. Si la situacin
econmica permanece estable, Alberto estudia medicina y Ricardo estudia
computacin. Si Fernando da ayuda econmica a Alberto, Martha se disgustar con
Fernando. Entonces, si Ricardo no estudia computacin, Martha se disgustar con
Fernando.
Mis amigos son sinceros o algunos disimulan. Pero si son honestos no deben disimular
lo que sienten. As, si mis amigos son sinceros, deben ser honestos.
Si armando tir un rbol, lo vio la polica. Armando deber pagar una multa si lo vio la
polica. Como l est en la delegacin, no deber pagar una multa. Entonces tir un
rbol y est detenido en la delegacin.
Si voy a la fiesta, no termino de estudiar. Si es viernes, no voy al cine. Si es viernes y no
termino de estudiar, entonces voy a la fiesta. En consecuencia, voy al cine.
Los fenmenos atmosfricos se originan si los electrones chocan entre s. Al pasar esto
ltimo, las cargas elctricas se polarizan o se producen grandes tensiones
electromagnticas. Si se producen grandes tensiones electromagnticas, se producen
campos magnticos que entran en choque. Los campos magnticos entran en choque y
se producen rayos. Por tanto, si los electrones chocan entre s, entonces se producen
rayos.
Isabel opinaba que el Dr. Jurez era demasiado viejo para casarse. Si la conducta de
Isabel fuera siempre coherente con sus opiniones y si opinaba que el Dr. Jurez era
demasiado viejo para casarse, entonces no se casara con l. Pero Isabel se cas con el
Dr. Jurez. As, la conducta de Isabel no es siempre coherente con sus opiniones.
Pedro y Jaime son de la misma edad o Pedro es mayor que Jaime. Si Pedro y Jaime son
de la misma edad, entonces Elena y Pedro no tienen la misma edad. Si Pedro es mayor
que Jaime, entonces Pedro es mayor que Marcela. As que o Elena y Pedro no son de la
misma edad o Pedro es mayor que Marcela.
La inmortalidad existe si y slo si el espritu existe. Si lo que vemos es real, la sabidura
no es tan difcil de obtener El espritu existe o la sabidura no es tan difcil de obtener.
Por tanto, si lo que vemos es real, la inmortalidad existe.
Rescriba los siguientes fragmentos de Cien aos de Soledad del escritor Gabriel Garca
Mrquez, como expresiones de lgica de predicados:
Muchos aos despus, frente al pelotn de fusilamiento, el Coronel Aureliano Buenda haba de
recordar aquella tarde remota en que su padre lo llev a conocer el hielo. ... .
MUCHOSAOSDESPUES( FUSILAR(PELOTONFUSILAMIENTO, CAB)
RECORDAR(CAB, TARDEREMOTA)
LLEVAR(padre(CAB), CAB, CONOCER(CAB, HIELO))
Inteligencia Artificial.
...Cuando el pelotn lo apunt, la rabia se haba materializado en una sustancia viscosa y amarga que
le adormeci la lengua y lo oblig a cerrar los ojos. Entonces desapareci el resplandor de aluminio
del amanecer, y volvi a verse a si mismo, muy nio, con pantalones cortos y un lazo en el cuello, y
vio a su padre en una tarde esplndida conducindolo al interior de la carpa, y vio el hielo. Cuando
oy el grito, crey que era la orden final al pelotn....
Apuntar(Pelotn, CAB) ( (Materializar(CAB, Rabia,
SustanciaViscosaAmarga) (Adormecer(CAB, Lengua) Cerrar(CAB, Ojos) )
Desaparecer(Resplandor(aluminio), Amanecer) Ver(CAB, Nio(PantalnCorto, LazoCuello)
Ver (CAB, Padre(CAB) ) TardeEsplndida Conducir(Padre(CAB, InteriorCarpa) Ver(CAB,
Hielo) ) ) Oir(CAB, Grito) Creer(CAB, OrdenFinal(Pelotn) )
...Entonces fue al castao, pensando en el circo, y mientras orinaba trat de seguir pensando en el
circo, pero ya no encontr el recuerdo. Meti la cabeza entre los hombros, como un pollito, y se
qued inmvil con la frente apoyada en el tronco del castao. La familia no se enter hasta el da
siguiente, a las once de la maana, cuando Santa Sofa de la Piedad fue a tirar la basura en el
traspatio y le llam la atencin que estuvieran bajando los gallinazos..
Ir(CAB, Castao) Pensar(CAB, Circo) Orinar(CAB) TratarPensar(CAB, Circo)
Pensar(CAB, Circo)
Encontrar(Recuerdo) Meter(CAB, Cabeza, hombros) Parecer(CAB, Pollit o)
Inmovil(CAB)
Apoya(CAB, Frente, Tronco(Castao) ) ) nterar(Familia, DiazSiguiente,
Tirar(SantaSofa, Basura, Traspatio) LLamarAtencinl(SantaSofa, Gallinazos)
11AM)
Con las siguientes diez expresiones, del dominio de la obra de Don Quijote de la
Mancha, en lgica de predicados. Escriba una expresin en Espaol.:
1. x y (Escudero(x, y) z Amigo(z, x) )
2. x (y Escudero(x, y) Joven(x) )
3. x ( Caballero(x) Joven(x) )
4. x ( Caballero(x) Joven(x) )
5. x ( Caballero(x) Joven(x) )
6. x y (Escudero(x, y) z Amigo(z, x) )
7. x y (Escudero(x, y) Joven(x) )
8. x ( Caballero(x) Joven(x) )
9. x ( Caballero(x) Joven(x) )
10. x ( Caballero(x) Joven(x) )
Represente en Lgica de Predicado:
La tubera A alimenta el depsito B. Cuando una tubera alimenta un depsito, la
derivada del nivel de ste es proporcional al caudal de aquella. Luego, la derivada
del nivel de B es proporcional al caudal de A.
Inteligencia Artificial.
Conteste la pregunta efectuada
a. Eduardo pudo haber visto al asesino.
b. Antonio fue el primer testigo de la defensa
c. Eduardo estaba en clase o Antonio dio testimonio falso.
d. Nadie en clase pudo haber visto al asesino?
Conteste las dos preguntas efectuadas
Todos los que ayudan a Juan viven en casa de Manuel
Antonio ayuda a todos los que trabajan con l
Juan trabaja con todos los amigos de carlos
Antonio es amigo de Carlos
Antonio vive en casa de Manuel
Juan trabaja con Antonio?
Si los Piratas son terceros, entonces si los Apaches son segundos los Bravos sern
quintos. O los Gigantes no sern primeros o los Piratas sern terceros. En efecto, los
apaches sern segundos. Por lo tanto, si los Gigantes son primeros, entonces los Bravos
sern quintos.
la Lgica es difcil o no le gusta a muchos estudiantes. Si la matemtica es fcil,
entonces la lgica no es difcil. Por tanto, si a muchos estudiantes les gusta la lgica, la
matemtica es fcil.
Si Antonio no es primero, entonces Pedro es primero. Pero Pedro no es primero. O
Antonio es primero o pablo es tercero. Si Jaime es segundo, entonces Pablo no es
tercero. Por tanto, jaime no es segndo.
Fue X o Y quien cometi el crimen. X estaba fuera del pueblo cuando el crimen fue
cometido. Si X estaba fuera del pueblo, no pudo haber estado en la escena del crimen.
Si X no estaba en la escena del crimen, no lo pudo haber cometido.
Inteligencia Artificial.
nias(A),
gustar(CALVIN,A),
jugar(CALVIN,SUSIE), atraer(SUSIE, CALVIN)
odiar(SUSIE, CALVIN) : nias(A), gustar(CALVIN,A),
jugar(CALVIN,SUSIE), atraer(SUSIE, CALVIN)
Cuando los nios causan problemas en la escuela son enviados por su profesora donde
el rector
x y nio(x) profesora(y,x) causar(x,problemas,escuela)
enviar(y,x,director)
nio(x) profesora(y,x) causar(x,problemas,escuela) enviar(y,x,director)
[nio(x) profesora(y,x) causar(x,problemas,escuela)] enviar(y,x,director)
enviar(Y,X,director) : nio(X), profesora(Y,X), causar(X,problemas,escuela).
Todo nio que tiene un amigo que no est vivo significa que ese amigo es imaginario
x y nio(x) vivo(y) amigo(x,y) imaginario(y)
Calvin es un nio que juega con un tigre llamado Hobbes; para l su tigre es un
compaero insustituible;
Todos los nios que creen en monstruos y se los imaginan, les tienen miedo.
8 Los nios que no les gusta la escuela y no hacen las tareas son desaplicados
Inteligencia Artificial.
Responda la pregunta
Anoche, una banda de ladrones rob una joyera y el botn se lo llevaron en un coche.
Arrest a tres sospechosos: Makinavaja, Popeye y el Pirata y despus del interrogatorio
supe que:
Nadie aparte de estos tres estuvo involucrado en el robo,
Popeye confes que nunca trabaja sin la ayuda de Maki
Y el Pirata me dijo que no saba conducir.
No tengo
claro
quien es el
culpable.
Premisas conocidas:
Nadie aparte de Maki, Popeye y el Pirata estuvo
involucrado en el robo.
Popeye nunca trabaja sin la ayuda de Maki.
El Pirata no sabe conducir.
RESPUESTA = Fue Maki
Djalos correr por que
ms vale que se
escapen mil ladrones a
correr detrs de uno.
Inteligencia Artificial.
TERCERA UNIDAD
RESOLUCION DE PROBLEMAS
3.1 Bases de conocimiento.
3.2 Elementos en la solucin de problemas.
3.3 Mtodos de bsqueda (Ciegas Heurstica )
INTRODUCCIN.
Para construir un sistema bsico de inteligencia artificial capaz de resolver un problema
especfico, es necesario realizar las siguientes acciones:
Analizar el problema. Puede darse el caso de que unos muy pocos rasgos
importantes puedan tener un gran impacto en la identificacin de la tcnica ms
apropiada para resolver el problema.
Las bases datos (DB: Data Base / Database) son anteriores en el tiempo a las bases de
conocimiento. Nacieron en la temprana poca de los ordenadores digitales, a mediados de
la dcada de los 50 y fueron una de las principales herramientas que stos ofrecan.
Surgieron como extensiones de programas Fortran que permitan acceso compartido a los
datos. A finales de esta dcada se desarrollaron mtodos de acceso soportados por el
sistema operativo (acceso directo y secuencial) y maduraron con los sistemas operativos de
segunda y tercera generacin (principios de los 60). En esta poca se desarrollaron las bases
de datos estructuradas jerrquicamente y algo despus las bases de datos de red. En esta
temprana poca no haba distincin entre bases de datos e IA. A finales de los 60, Ted
Codd, investigador de IBM, desarroll un lenguaje de programacin de propsito general
que denomin "programacin relacional", basado en la teora de conjuntos y la lgica y que
contena el germen de lo que haba de ser el ms extendido de los sistemas de bases de
datos hasta la fecha, las bases de datos relacionales.
El objetivo primero de una base de datos es, como su nombre indica, almacenar grandes
cantidades de datos organizados siguiendo un determinado esquema o "modelo de datos"
que facilite su almacenamiento, recuperacin y modificacin.
Inteligencia Artificial.
Por su parte, las bases de conocimiento (KB: Knowledge Base) pertenecen a una etapa muy
posterior. Surgieron a partir de la investigacin en Inteligencia Artificial como respuesta a
las necesidades que las aplicaciones de esta disciplina planteaban. Ms adelante haremos un
muestreo de las aportaciones que la IA ha hecho al estudio del lenguaje natural.
Las bases de conocimiento son la evolucin lgica de los sistemas de bases de datos
tradicionales, en un intento de plasmar no ya cantidades ingentes de datos, sino elementos
de conocimiento (normalmente en forma de hechos y reglas) as como la manera en que
ste ha de ser utilizado. Tambin se les trata de dotar de conocimiento sobre s mismas, es
decir, una KB ha de "saber lo que sabe". Por ejemplo, ante una pregunta del tipo "Tienen
todos los empleados de Microsoft un CI de ms de 100?", una base de datos tras consultar
la informacin relacionada con la altura de los empleados de esta empresa, dara una
respuesta afirmativa o negativa, independientemente de que tenga o no la informacin
correspondiente a estos trabajadores; en cambio, una KB respondera "s", "no" o "no lo
s", en el caso de que le faltase informacin relativa a la altura sobre alguno de los
empleados o de que no tuviese informacin sobre "todos" los empleados.
Ambos sistemas de informacin cuentan con sus correspondientes gestores para simplificar
al administrador las tareas comunes de mantenimiento: el sistema gestor de bases de datos
(DBMS: Database Management System) y el sistema gestor de bases de conocimiento
(KBMS: Knowledge Base Management System). Tambin encontramos diferencias
sustanciales en este aspecto. Bsicamente los DBMSs actuales se encuentran perfectamente
estandarizados, ofreciendo un nmero de caractersticas y metodologas comunes que
posibilitan la comunicacin entre diversos tipos y productos comerciales. La
comercializacin de los KBMSs es prcticamente anecdtica, y por supuesto no existe
ningn estndar.
La caracterstica comn a todos los sistemas basados en el conocimiento hasta hace muy
poco tiempo es que han sido sistemas autnomos, es decir, que no permiten la utilizacin
de la informacin contenida en ellos por parte de aplicaciones externas. Por el contrario, las
bases de datos, s cuentan con los mecanismos de conexin necesarios para poder ofrecer su
informacin a muy distintos tipos de lenguajes de programacin. En general, adelantamos
que nuestra eleccin son los sistemas de bases de datos para el almacenamiento de
informacin exclusivamente lxica, porque garantizan a priori la reutilizacin de la
informacin almacenada. Por ejemplo, si decidimos guardar nuestra informacin lxica en
un sistema de conocimiento, estaremos "atados" a este sistema, y si ms adelante
observamos que nuestras necesidades van ms all de lo que en principio habamos
previsto, puede darse el caso de que el sistema de KB no sea lo suficientemente potente
para dar respuesta a estas necesidades, y puede ocurrir que tengamos que volver a
introducir toda la informacin de nuevo. Por lo general, esta situacin es evitable en el
entorno de las bases de datos.
Inteligencia Artificial.
1. Concepto
Una base de conocimiento (KB: Knowledge Base) es la representacin de conocimiento
relacionado a un tema especifico, dicho conocimiento se plasma en forma de hechos y
reglas.
En las bases de conocimiento encontramos: una coleccin de hechos y reglas mediante los
cuales el sistema es capaz de extraer conocimiento que no est almacenado de forma
explcita. Por tanto, para la IA, una estructura de datos que no contenga ms que "hechos"
no es considerada como conocimiento, sino tan slo como una fuente potencial de
informacin.
Un Sistema de Representacin de Conocimiento para un universo U consiste en:
1. Una coleccin E de etiquetas que pueden representar individuos en U; estas etiquetas se
dividen en constantes y variables.
2. Una coleccin F de funciones.
3. Una coleccin R de relaciones.
4. Un lenguaje L consistente en reglas para combinar las funciones, relaciones y etiquetas en
expresiones bien formadas de L.
5. Una semntica S que provee de significado a las etiquetas, funciones y relaciones.
Teniendo en cuenta la definicin anterior, podemos deducir los problemas ms importantes que la
representacin de conocimiento presenta:
Inteligencia Artificial.
Podramos estipular que, en general, el conocimiento identifica informacin sobre
conceptos generales, mientras que los datos conforman informacin sobre entidades
especficas. As, la asercin "Arturo Rodrguez mide 1,73m" es un dato mientras que "la
media de altura de los espaoles es 1,70m" es conocimiento.
El conocimiento desde el punto de vista de las bases de datos: la posicin generalmente
compartida por el entorno de las bases de datos es que un elemento de conocimiento tiene
que ver con un Universo de Discurso (UoD: Universe of Discourse), que puede ser real,
mental, social, o de cualquier otro tipo. Los datos, pues, son considerados como
aseveraciones sobre un determinado estado de cosas en un determinado UoD.
A estas aseveraciones se las denomina hechos. "Juan ama a Mara" es un hecho perceptible
u observable dentro de un determinado UoD y puede ser representado por una estructura de
datos. Para alcanzar el dominio del conocimiento es necesario subir a un nivel de
abstraccin superior, en el que podemos hablar de las propiedades de los hechos y de las
relaciones entre hechos individuales y entre hechos y el UoD, as como de las alteraciones
de los hechos y las repercusiones de estas alteraciones sobre el UoD. Por ejemplo,
aseveraciones como "todos los hombres casados tienen una esposa y slo una", o "para
cada humano x, y, z, se cumple que, si x es el padre de y, y y es el padre de z, entonces x es
el abuelo de z".
Este tipo de conocimiento, llamado por algunos investigadores metadatos, pues de hecho
son datos que "hablan" sobre datos, no es, tpicamente, el dominio de las bases de datos.
Esta visin se puede resumir de la siguiente manera:
(...) databases represent sets of definite atomic statements (facts) and knowledge bases
may, in addition, represent sets of general statements and conditional statements (rules).
En las bases de conocimiento: una coleccin de hechos y reglas mediante los cuales el
sistema es capaz de extraer conocimiento que no est almacenado de forma explcita. Por
tanto, para la IA, una estructura de datos que no contenga ms que "hechos" no es
considerada como conocimiento, sino tan slo como una fuente potencial de informacin.
La IA, por tanto, pone el nfasis en el comportamiento computacional, es decir el uso de los
datos por parte de los procedimientos.
Podramos estipular que, en general, el conocimiento identifica informacin sobre
conceptos generales, mientras que los datos conforman informacin sobre entidades
especficas. En este sentido, los datos reflejan el estado de cosas de un determinado UoD en
un momento determinado, y por tanto son altamente susceptibles de modificaciones. En
cambio, el conocimiento sobre cmo interpretar y usar esos datos no cambiar tan a
menudo. Adems, aunque el conocimiento sea complejo, su dominio es el de las
generalizaciones sobre tipos, y no el de las instancias especficas, que es el dominio de los
datos.
Inteligencia Artificial.
Podemos resumir lo expuesto diciendo que una base de conocimiento contendr
conocimiento sobre algo, y ser capaz de referir ese conocimiento al mundo real. Este
conocimiento es abstracto y generalizador. Los datos son concretos y describen de forma
detallada entidades del mundo real.
Como es de suponer los sistemas para soportar el almacenamiento de conocimiento
necesitan una notacin muy avanzada y precisa, pero por lo general no son capaces de
hacer frente a cantidades ingentes de informacin, aspecto en el que las bases de datos
sobresalen. Informacin es lo que se obtiene cuando los datos son analizados, ya sea por un
agente humano o por una aplicacin externa. Por tanto, de una base de datos se extrae
informacin, mientras que sta se encuentra explcitamente e implcitamente almacenada en
una base de conocimiento.
Una interpretacin en trminos cognitivos de este extremo es que una KB contiene
informacin representada de una forma ms parecida a cmo los humanos la almacenamos.
El trmino "conocimiento", hace referencia especfica a las reglas en las que la informacin
ha de ser usada, as como a diversos procesos cognitivos en relacin con la actualizacin de
la informacin contenida en un sistema.
Si un sistema contiene informacin representada a modo de generalizaciones sobre datos y
es capaz de usar esta informacin de forma inteligente, actualizarla segn necesidades y
proveer informacin acerca de la informacin que contiene (ser "consciente" de sus
limitaciones), entonces es un sistema de conocimiento. Si, por el contrario, un sistema
contiene una gran cantidad de datos especficos sobre un determinado universo y provee los
mecanismos necesarios para recuperar y modificar esa informacin, ya sea por un programa
o por un usuario humano2, entonces es un sistema de base de datos.
El primer paso para desarrollar tanto una base de datos como una base de conocimiento ha de ser
la eleccin de un determinado modelo de datos en el caso del primero o de un esquema de
representacin en el caso del segundo (Mylopoulos 1986). Esta eleccin repercutir directamente
en las caractersticas y posibilidades del sistema de informacin. En este apartado nos limitaremos
a exponer una taxonoma de esquemas de representacin para los sistemas basados en el
conocimiento clsicos y otra clasificacin tradicional de modelos de datos.
A esta actividad, es decir, el estudio de los sistemas desde un punto de vista ms o menos
abstracto se le denomina modelado conceptual. Por tanto, se entiende por modelado conceptual la
descripcin de un sistema de informacin (KBMS, DBMS, aplicaciones construidas con algn
lenguaje de programacin) en un nivel de abstraccin por encima del nivel de arquitectura e
implementacin.
En IA, el problema de disear un sistema experto se centra en construir una base de conocimiento
que represente el conocimiento de una empresa determinada. Tambin las metodologas de bases
de datos han venido ofreciendo desde su etapa de madurez modelos semnticos de datos. Los
modelos de datos clsicos ofrecen niveles de abstraccin muy bajos, es decir la correspondencia
entre el nivel conceptual y el nivel fsico suele ser muy directa. Los modelos semnticos de datos
intentan escalar en el nivel de abstraccin para poder dar cuenta de estados y procesos complejos
de una forma relativamente simple. Como veremos, estos modelos estn altamente influenciados
por los sistemas de KB, que desde el principio fueron dotados de grandes capacidades de
abstraccin.
Inteligencia Artificial.
Una KB es un sistema activo de forma inherente. Las acciones que una KB lleva a
cabo van desde la invocacin de procedimientos cuando se accede a un determinado
slot o casilla (en el caso de un esquema de representacin basado en marcos),
pasando por procesos deductivos o propagacin de restricciones (en el caso de
esquemas de redes semnticas genricas). A esto se le denomina activacin de
Inteligencia Artificial.
procesos, disparo o triggering. Este mecanismo puede incluso acceder y modificar
los hechos y reglas contenidos en su propio repositorio de datos.
En general se supone que un KBMS, a diferencia de un DBMS, debe ofrecer estas dos
posibilidades fundamentales (Mylopoulos 1986):
Sistemas expertos
Sistemas de procesamiento de lenguaje natural
Sistemas de visin robtica
Entornos de desarrollo
Son los segundos los que nos interesan, aunque en realidad la mayora de los sistemas de IA
toman la forma de sistemas expertos. Las relaciones entre el procesamiento del lenguaje natural y
los KBMS han estado siempre motivadas por los intereses de los investigadores en IA, no por los
de lingistas o lexicgrafos. La aplicacin de sistemas basados en el conocimiento a la TA es muy
novedosa, y, segn pensamos, los clsicos sistemas de KBMS no se adaptan a las necesidades
de este tipo de aplicaciones, al no conceder la importancia necesaria a la informacin detallada en
general ni a los aspectos procedimentales.
El inters de los investigadores de IA por el lenguaje natural est centrado casi exclusivamente en
la comunicacin hombre-mquina, por tanto su objetivo es la construccin de interfaces en
lenguaje natural que faciliten esta interaccin. stos son los denominados interfaces de lenguaje
natural (NLI: Natural Language Interfaces).
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
De hecho, el inters por los sistemas de NLP basados en el conocimiento surgi a raz de la
necesidad de construir interfaces en lenguaje natural para sistemas expertos. Estos sistemas son
alimentados con toda la informacin disponible sobre un determinado tema muy especfico, por
ejemplo diagnsticos mdicos, sistemas de ingeniera. Despus, mediante un interfaz apropiado
que acepta un conjunto de estructuras sintcticas y elementos lxicos especfico, son capaces de
responder adecuadamente a consultas complejas relacionando la informacin que poseen.
Las tareas para las que estos sistemas se desarrollan son, casi por definicin, complejas. Por
tanto, un sistema experto es un sistema computacional capaz de representar y razonar sobre un
dominio determinado que precisa de gran cantidad de conocimiento, tal como la aeronutica o la
medicina. Se puede distinguir de otros tipos de aplicaciones de IA en que:
Trabaja con temas complejos que normalmente requieren una considerable cantidad de
experiencia humana;
Debe ser una herramienta prctica y til; para ello debe ofrecer un alto rendimiento en
cuanto a velocidad de ejecucin y fiabilidad;
Debe ser capaz de explicar y justificar sus soluciones y consejos para convencer al usuario
de lo correcto de su razonamiento.
Los sistemas expertos son el tipo de aplicacin de IA que mejores resultados ha conseguido. Estos
sistemas son usados hoy en da en un amplio abanico de dominios y han probado ser altamente
fiables. Por ello sera deseable la disponibilidad de interfaces en lenguaje natural que facilitasen la
comunicacin con el sistema por parte de usuarios no expertos en computacin (mdicos,
bilogos, ingenieros). Existen tres modos de ver la relacin entre un NLI y el KBMS. La primera es
la construccin de un NLI para manejar un KBMS. La segunda construir un KBMS para
implementar un NLI. La tercera construir un NLI (soportado por el KBMS) para sistemas basados
en el conocimiento.
Inteligencia Artificial.
Para que un programa pueda ser calificado de NLI debe cumplir las dos condiciones siguientes:
1. Un subconjunto del input o el output del sistema se realiza en lenguaje natural
2. El procesamiento del input (generacin del output) se basa en conocimiento de tipo
sintctico, semntico y/o pragmtico.
Los tres modos anteriormente citados de usar el lenguaje natural en IA reflejan a nuestro parecer
tres estadios de investigacin, superando una primera fase en que se pretenda un anlisis
extremadamente simplista del lenguaje. Tras observar la enorme complejidad que ste conlleva, se
hizo obvia la necesidad de tratar el lenguaje humano como un objeto de estudio en s mismo, para
poder siquiera pensar en usarlo como medio de interaccin hombre-mquina. En esta etapa se
empezaron a plantear cuestiones que los lingistas han estado estudiando desde mucho tiempo
atrs. Un KBMS para NLI habr de integrar los siguientes tipos de conocimiento (Jarke et al. 1989):
Conocimiento lingstico.
Conocimiento conceptual.
Conocimiento inferencial.
Conocimiento del usuario.
La Figura resume las fuentes de conocimiento lingstico necesario para el desarrollo de NLIs
segn la IA. Este cuadro revela cmo los investigadores de IA contemplan el estudio del lenguaje
natural:
Inteligencia Artificial.
Procedimiento
Metas
Estrategias de control
Para construir un sistema que resuelva un problema especfico, es necesario realizar las
siguientes acciones:
Inteligencia Artificial.
Definir el problema con precisin: La definicin debe incluir especificaciones precisas
tanto sobre la o las situaciones iniciales como sobre las situaciones finales que se aceptaran
como soluciones al problema.
Analizar el problema: Algunas caractersticas de gran importancia pueden tener un gran
efecto sobre la conveniencia o no de utilizar las diversas tcnicas que resuelven el
problema.
Aislar y representar el conocimiento necesario para resolver el problema.
Elegir la mejor tcnica(s) que resuelve el problema y aplicarla(s) al problema particular.
TCNICAS DE SOLUCIN.
Las tcnicas de solucin de problemas en IA, en general, incorporan un proceso de bsqueda.
Todo proceso de bsqueda puede ser visualizado como el recorrido por un rbol en el que cada
nodo representa un estado y cada rama representa las relaciones entre los estados cuyos nodos
conecta.
En general, las reglas contienen en forma implcita el rbol, y se genera en forma explcita slo
aquellas partes que se decide explorar. Las principales diferencias que pueden aparecer en las
diferentes tcnicas de bsqueda, son:
Muchas veces, tratar el proceso como bsqueda en un grafo en lugar de una bsqueda en un
rbol, puede reducir el esfuerzo que se gasta en explorar senderos, esencialmente iguales, varias
veces. Sin embargo, los requisitos asociados, son:
Cada vez que se genere un nodo se debe chequear para ver si ha sido generado antes.
Se deben introducir procedimientos especiales para que la bsqueda no quede atrapada
en algn lazo.
Inteligencia Artificial.
Mtodos de bsqueda:
1. Bsqueda en profundidad.
2. Bsqueda en amplitud.
3. Bsqueda de coste uniforme.
4. Bsqueda en profundidad limitada.
5. Bsqueda en profundidad iterativa.
6. Bsqueda bidireccional.
Problema de los dos recipientes de agua
Se tienen dos jarras, una de cuatro litros de capacidad y otra
de tres. Ninguna de ellas tiene marcas de medicin. Se tiene
una bomba que permite llenas las jarras de agua. Cmo se
puede lograr tener exactamente dos litros de agua en la jarra
de cuatro litros de capacidad?
Los operadores que puede utilizar son:: llenar la jarra de 4
litros; llenar la jarra de 3 litros; vaciar un poco la jarra de 4
litros; vaciar un poco la jarra de 3 litros; vaciar la jarra de 4
litros en el suelo; vaciar la jarra de 3 litros en el suelo; verter
agua desde la jarra de 3 litros a la jarra de 4 litros hasta que la
jarra de 4 litros est llena; verter agua desde la jarra de 4
litros a la jarra de 3 litros hasta que la jarra de 3 litros est
llena; verter todo el agua de la jarra de 3 litros en la jarra de 4
litros; verter todo el agua de la jarra de 4 litros en la jarra de
3 litros; verter 2 litros de la jarra de 3 litros en la jarra de 4
litros). Implementa el problema realizando bsqueda en
anchura y en profundidad
Reglas de Produccin
x = 0,1,2,3,4 y = 0,1,2,3
1. Llenar el recipiente de 4 galones:
SI x < 4 => (4, y)
3. Vaciar el recipiente de 4 galones:
SI x > 0 => (0, y)
5. Pasar agua del recipiente de 3 galones al de 4, hasta
que se llene:
SI (x + y) >= 4 ^ y > 0 => (4, y - (4 - x))
7. Pasar toda el agua del recipiente de 3 galones al de
4:
SI (x + y) <= 4 ^ y > 0 => (x + y, 0)
Inteligencia Artificial.
Inteligencia Artificial.
S
D
Inteligencia Artificial.
Bsqueda Heurstica
Para resolver muchos problemas difciles (explosin combinatoria), es necesario muchas veces
llegar a un compromiso de los requerimientos de movilidad y sistematicidad y construir una
estructura de control que no necesariamente garantiza el encontrar la mejor respuesta, sino que
casi siempre encuentra una buena respuesta. Una tcnica heurstica mejora la eficiencia del
proceso de bsqueda sacrificando, usualmente, exhaustividad. Las consideraciones que sirven de
soporte a un proceso de bsqueda heurstica, son:
Rara vez se requiere, en realidad, una solucin ptima. Una buena aproximacin,
normalmente, sirve muy bien.
A pesar que una aproximacin heurstica no puede resultar muy buena en el peor de los
casos, raras veces aparecen los peores casos en la prctica.
Bsqueda en amplitud
Se basa en desarrollar completamente cada nivel del rbol antes de pasar a
desarrollar el siguiente.
Algoritmo general
1. lista := estado_inicial
2. MIENTRAS (lista 0) y no solucion
2.1. Eliminar primer elemento de lista y asignarlo a E
2.2. Para cada regla aplicable a E
2.2.1. Aplicar la regla
2.2.2. Si el estado resultante el objetivo, salir devolvindolo
2.2.3. Si no, aadir el nuevo estado a lista
Inteligencia Artificial.
La bsqueda en amplitud se extiende uniformemente en el rbol de bsqueda: La
bsqueda en amplitud revisa todas las trayectorias de una longitud dada antes de avanzar a
una trayectoria ms larga. Primero se expande el nodo raz, y luego todos los nodos
generados por este; luego, sus sucesores, y as sucesivamente. En general, todos los nodos
que estan en la profundidad d del rbol de bsqueda se expanden antes de los nodos que
estan en la profundidad d + 1. Este mtodo de bsqueda permite encontrar primero la meta
ms prxima.
Para efectuar una bsqueda en amplitud:
1. Forme una cola de un solo elemento consistente en una trayectoria de longitud cero
que contenga solo al nodo raz.
2. Hasta que la primera trayectoria de la cola concluya en el nodo meta o se vace la
cola:
2.1.Elimine la primera trayectoria de la cola cree nuevas trayectorias extendiendo el
primer paso a todos los vecinos del nodo terminal.
2.2.Rechace las trayectorias nuevas con ciclos.
2.3.Agregue las nuevas trayectorias, si las hay al final de la cola.
3. Si se halla el nodo meta, mencione que hubo xito, si no, notifique el fracaso.
Ejemplo:
Para efectuar la bsqueda en amplitud se debe construir el rbol siguiente.
Al considerar el factor de ramificacin b (la raz del rbol de bsqueda genera b nodos en el
primer nivel, cada uno de los cuales genera b nodos ms, obteniendo b2 nodos en el
segundo nivel, y as sucesivamente). Supngase que la en la solucin hay una ruta de
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
longitud d, por lo que la cantidad mxima de nodos expandidos antes de poder encontrar
una solucin es bd. Al tener un rbol b = 2 como factor de ramificacin, y una profundidad
de d = 14, se expandiran 214 = 262,144 nodos antes de encontrar una solucin, lo que
provocara una explosin combinatoria, causando el incremento considerable de los costos
y tiempos empleados en la bsqueda de solucin.
Bsqueda en profundidad (depth-first)
Se basa en elegir un camino en el rbol y seguirlo hasta el final. Si no se
encuentra la solucin se retrocede (backtraking) y se prueba por otro camino.
Algoritmo general:
1- SI estado_inicial = estado_objetivo ENTONCES salir con xito
2- MIENTRAS no xito y no fracaso
a- Generar los sucesores del estado inicial.
SI no hay ms sucesores ENTONCES fracaso
b- Llamar al algoritmo para cada uno de los nodos generados como
estado inicial
c- Si se devuelve xito, devolver xito, si no continuar el bucle
Ventajas de la bsqueda en profundidad
Requiere mucha menos memoria (slo hay que guardar el camino actual.)
Puede encontrar una solucin sin examinar mucho el rbol, sobre todo si
hay varios caminos a la solucin.
Inteligencia Artificial.
Bsqueda de coste uniforme
Se basa en desarrollar el nodo con menor coste.
Algoritmo general.
1- lista := estado_inicial
2- MIENTRAS (lista 0) y no solucion
a- Eliminar primer elemento de lista y asignarlo a E
b- Para cada regla aplicable a E
i- Aplicar la regla
ii- Si el estado resultante el objetivo, salir devolvindolo
iii- Si no, aadir el nuevo estado a lista
Bsqueda en profundidad limitada
Bsqueda en profundidad con un lmite de profundidad l. Implementacin: los
nodos a profundidad l no tienen sucesores.
Inteligencia Artificial.
Bsqueda en profundidad iterativa
Se basa en elegir utilizar bsqueda en profundidad limitada, aumentando l si no se
encuentra la solucin.
Inteligencia Artificial.
La bsqueda en profundidad incursiona en el rbol de bsqueda: Siempre se expande
una de los nodos que se encuentre en lo ms profundo del rbol, solo si la bsqueda
conduce a un callejn sin salida (un nodo sin meta que no tiene expansin), se revierte la
bsqueda y se expanden los nodos de niveles menos profundos. Para llevar a cabo una
bsqueda en profundidad debe:
1. Primero conforme una cola de un elemento consistente en una trayectoria de longitud
cero que contenga solo al nodo raz;
2. Hasta que la primera trayectoria de la fila termine en el nodo meta o se vace la cola,
2.1 Elimine la primera trayectoria de la cola; cree nuevas trayectorias extendiendo el
primer paso a todos los vecinos del nodo terminal;
2.2. Rechace todas las trayectorias nuevas con ciclos;
2.3. Agregue las nuevas trayectorias, si las hay, al frente de la cola.
1. Si el nodo meta se alcanza, mencione que hubo xito; de otro modo, notifique el
fracaso.
1. Inicializar todos los nodos al estado de preparado (ESTADO=1)
2.
Meter el nodo inicial A en la pila y cambiar su estado a estado de espera
(ESTADO=2).
3. Repetir los pasos 4 y 5 hasta que la pila este vacia.
4.
Sacar el nodo N en la cima de la pila. Procesar el nodo N y cambiar su
estado al de procesado (ESTADO=3).
5.
Meter en la pila todos los vecinos de N que estn en estado de
preparados (ESTADO=1) y cambiar su estado a estado de espera
(ESTADO=2).
[ fin de bucle del paso 3 ]
6. Salir.
(Algoritmo recursivo)
1- SI estado_inicial = estado_objetivo ENTONCES salir con xito
2- MIENTRAS no xito y no fracaso
a- Generar los sucesores del estado inicial.
SI no hay ms sucesores ENTONCES fracaso
b- Llamar al algoritmo para cada uno de los nodos generados como estado inicial
c- Si se devuelve xito, devolver xito, si no continuar el bucle
Inteligencia Artificial.
Ejemplo: Para el rbol de bsqueda anterior se tendra:
S
A
B
E
D
Requiere mucha menos memoria (slo hay que guardar el camino actual.)
Puede encontrar una solucin sin examinar mucho el rbol, sobre todo si hay varios
caminos a la solucin.
Inteligencia Artificial.
Algoritmo Primero a lo Ancho (BREATH-FIRST)
1. Crear una variable NODE_LIST y ponerla al estado inicial.
2. Hasta que se encuentre el objetivo o hasta que NODE_LIST est vaca haga lo siguiente:
a. Remover el primer elemento de NODE_LIST, y llamarlo E. Si NODE_LIST estuvo
vaca, salir.
b. Para cada forma en que cada regla puede ajustarse al estado descrito en E, haga
lo siguiente:
i. Aplicar la regla para generar un nuevo estado.
ii. Si el nuevo estado es un estado objetivo, salir y retornar este estado.
iii. Sino, aada el nuevo estado al final de NODE_LIST.
Inteligencia Artificial.
Bsqueda Bidireccional o Atrs y Adelante: Es una bsqueda simultanea que avanza a
partir del estado inicial o nodo raz y que retrocede a partir de la meta, detenindose cuando
ambas bsquedas se encuentran en un punto intermedio. Si el factor de ramificacin es b y
la profundidad es d, entonces la solucin estar a 2bd/2 pasos. Esta bsqueda es til cuando
el factor de ramificacin es b en ambas direcciones.
La bsqueda no determinista se mueve al azar en el rbol de bsqueda: Cuando se
hace una bsqueda no determinista se expande un nodo abierto que se escoge al azar. De
este modo se evita la posibilidad de atascarse revisando un nmero excesivo de ramas o
niveles.
Para efectuar una bsqueda no determinista:
1. Forme una cola de un elemento consistente en una trayectoria de longitud cero que
contenga solo al nodo raz.
2. Hasta que la primera trayectoria de la cola concluya en el nodo meta o se vace la
cola:
a. Elimine la primera trayectoria de la cola; cree nuevas trayectorias extendiendo
el primer paso a todos los vecinos del nodo terminal.
b. Rechace las trayectorias nuevas con ciclos.
c. Agregue las nuevas trayectorias al azar en la cola.
3. Si se halla el nodo meta, mencione que hubo xito, si no, notifique el fracaso.
Todos los algoritmos de fuerza bruta son poco eficientes debido a que son bsquedas a
ciegas, es decir, no usan conocimiento sobre el dominio para guiarse en busca del siguiente
nodo mejor situado.
La bsqueda heurstica se basa en que la mayor parte de los "espacios problemas"
proporcionan informacin adicional con un pequeo coste computacional. Esta informacin
adicional nos ayuda a elegir los nodos que estn ms cerca de la meta. Esta informacin se
llama Heurstica.
Cuando se posee experiencia, informacin o algn conocimiento del medio en el cual se
realizar la bsqueda se dice que esta es una bsqueda heurstica.
Se llama Funcin de Evaluacin a una funcin f que relaciona cada nodo con un nmero
real y que sirve para estimar el costo relativo de continuar la bsqueda desde ese nodo. Por
lo general, f(N) se considera que es la distancia estimada que queda entre N y el Nodo
Meta. Otras veces se dice que f(N) es la longitud estimada desde el Nodo Raz hasta el
Nodo Meta, pasando por el nodo N, etc... Esta funcin de evaluacin se utilizar para
decidir el orden en que se explorarn los nodos durante la bsqueda. Hay varios algoritmos
de bsqueda que usan una de estas funciones de evaluacin heurstica.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Entre ellos estn:
Mejor primero (Primero el mejor.)
Se basa en utilizar una funcin de evaluacin para cada nodo (estimacin de la idoneidad
de expandir ese nodo). Se aplica: Al expandir siempre el nodo no expandido ms idneo.
Mecanismos: Bsqueda de Greedy.
Bsqueda A*.
A*.
Se basa en evitar expandir caminos que ya acumulan un coste elevado (tener en cuenta lo
que ha costado llegar al nodo actual. Su funcin de evaluacin: f(n) = g(n) + h(n), (se
denomina potencia heurstica):
g(n): coste para llegar al nodo n.
h(n): coste estimado para llegar a un nodo solucin, desde el nodo n.
f(n): coste total estimado del camino para llegar al objetivo a travs del nodo n.
Escalar colinas.
Primero el mejor.
Bsqueda primero el mejor: Se asemeja al ascenso de colina, diferencindose en que el
ascenso de colina exige un movimiento ms desde el nodo abierto de ms reciente creacin
cuando el movimiento hacia delante se ve impedido. En la bsqueda primero el mejor, el
movimiento adicional se realiza a partir del mejor nodo abierto que se tiene hasta ese punto,
sin importar donde est ese nodo en el rbol parcialmente desarrollado.
Este algoritmo, combina las ventajas de los algoritmos primero en profundidad y primero en
amplitud. Sigue un sendero a la vez, pero puede cambiarse a otro sendero que parece ms
prometedor que el que est siguiendo.
En este sentido, puede considerarse que es un algoritmo que realiza su proceso de bsqueda en
todos sus ramales por que representan una alternativa de solucin. Para su operacin, el algoritmo
necesita dos listas de nodos y una funcin heurstica que estime los mritos de cada nodo que se
genere:
1. ABIERTOS - Es una variable que contiene los nodos que han sido generados. La funcin
heurstica ha sido aplicada a ellos, pero todava no han sido examinados, es decir no se han
generado sus sucesores. ABIERTOS puede considerarse como una COLA DE PRIORIDADES en
la que los elementos con mayor prioridad son los que tienen los valores ms prometedores, dados
por la funcin heurstica.
2. CERRADOS - Es una variable que contiene los nodos que han sido examinados. Es necesario
tener esta informacin, para que la bsqueda sea en un grafo y no en un rbol.
Inteligencia Artificial.
3. FUNCIN HEURSTICA - Permite que el algoritmo busque primero por senderos que son o
parecen ms prometedores.
Para muchas aplicaciones, es conveniente definir esta funcin f', como la suma de dos, que se las
llamar g y h'. La funcin g es una medida del costo de llegar desde el nodo inicial al nodo actual.
La funcin h' es una estimacin del costo adicional para llegar desde el nodo actual al estado
objetivo. Aqu es donde se explota el conocimiento que se dispone sobre el dominio del problema.
Es decir, la funcin combinada f' representa una estimacin del costo de llegar desde el estado
inicial hasta el estado objetivo, siguiendo el sendero que ha generado el nodo actual. Si el nodo
actual ha generado ms de un sendero, el algoritmo deber dejar registrado slo el mejor.
El algoritmo, en la forma que fue formulado, se aplica a grafos. Puede ser simplificado para
aplicarse a rboles, si no se preocupa de comprobar si un nuevo nodo esta en ABIERTOS o en
CERRADOS. Esto acelerara la generacin de nodos y la bsqueda, para casos en que es poco
probable que se repitan nodos.
Usualmente, el costo de ir de un nodo a su sucesor, g, se fija en una constante igual 1, cuando se
desea encontrar un sendero a la solucin, que involucre el menor nmero de pasos. Si por el
contrario nos interesa encontrar el camino menos costoso y algunos operadores cuestan ms que
otros, se asume un valor de g, que refleje esos costos. Un valor de g igual a cero significara que
simplemente nos interesa llegar a alguna solucin, de cualquier manera.
Si h' es un estimador perfecto de h, har que A* converja inmediatamente al objetivo, sin
bsqueda. Mientras mejor sea h', ms cerca se estar de alcanzar esta aproximacin directa. Si h'
vale cero, la bsqueda ser controlada por g. Si el valor de g es tambin cero, har que la
bsqueda sea aleatoria. Si el valor de g es siempre 1, har que la bsqueda sea primero en
anchura. Para los casos en que h' no sea perfecto ni cero, y nunca llega a sobrestimar el valor de
h, el algoritmo A* est garantizado que encontrar un sendero ptimo a un objetivo, en caso de que
exista solucin. Cuando un algoritmo garantiza el encontrar una solucin ptima, si esta existe, se
dice que es admisible.
En la bsqueda "el mejor primero" el movimiento hacia adelante se hace desde el nodo
mejor situado con respecto a la meta, sin tener en cuenta su situacin en el rbol.
Los caminos que se encuentren utilizando este mtodo de bsqueda sern ms cortos que
los que se encuentren buscando con otros mtodos, ya que con esta estrategia se parte del
nodo mejor situado.
Igual que con el mtodo de escalar colinas este mtodo requiere clasificar los nodos de
acuerdo con su situacin. En este caso, sin embargo, se clasifica toda la estructura de datos.
Por lo tanto, en cada paso del proceso de bsqueda se selecciona el nodo ms prometedor
de todos los que se han generado hasta el momento. Esto se consigue aplicando una
funcin heurstica apropiada a cada nodo generado expandiendo, a continuacin, aquel que
ha dado el mejor resultado al evaluar dicha funcin heurstica.
Si uno de los sucesores (hijo) del nodo expandido es la meta, la bsqueda termina. En caso
contrario, estos sucesores se suman al conjunto de nodos generados hasta el momento y se
repite el proceso de seleccin del nodo ms prometedor.
Inteligencia Artificial.
El algoritmo que se presenta a continuacin realiza la bsqueda a travs de un grafo
dirigido en el cual cada nodo representa un punto, o estado, en el espacio del problema.
Cada nodo es, entonces, una estructura que contiene, adems de una descripcin del estado
del problema que representa, una indicacin de lo prometedor que es respecto a los dems
nodos, un enlace-padre que apunta al mejor nodo de los nodos-padre que cuelga, y por
ltimo, una lista de sus nodos sucesores (aquellos que se generan a partir de l). El enlacepadre permite recobrar el camino hasta la meta una vez se ha llegado a ella. La lista de
sucesores permite, cuando se encuentra un camino mejor hasta un nodo ya generado,
propagar esta mejora hacia sus sucesores.
Para implementar este procedimiento se necesitan dos listas de nodos
OPEN: Contiene los nodos que se han generado y a los cuales se ha aplicado la
funcin heurstica pero todava no han sido examinados (no se han generado sus
sucesores). OPEN es, en realidad, una cola de prioridad en la que los elementos con
mayor prioridad son aquellos con valor ms prometedor para la funcin heurstica.
CLOSED: Contiene los nodos que ya han sido examinados. Es necesario mantener
estos nodos en memoria ya que cuando se genera un nuevo nodo hay que comprobar
su ya ha sido generado antes.
Inteligencia Artificial.
ALGORITMO
1. Insertar el nodo de comienzo S en OPEN, evaluar f(S) y asociar este valor
con S. Poner el enlace-padre a NULL.
2. Si OPEN est vaco, devolver FALLO y parar.
3. Elegir un nodo N de OPEN tal que f(N) < f(M) para cada M en OPEN, tal
que N es un nodo meta algn nodo meta tiene ese valor mnimo para f.
4. Poner N en CLOSED y quitar N de 0PEN.
5. Si N es un nodo meta devolver el camino desde S hasta N. Este camino se obtiene
recorriendo f hacia atrs los enlaces-padre desde N hasta S. Luego parar.
6. Para cada sucesor J de N que no est an en OPEN o en CLOSED:
a.- Evaluar f(J) y asociarlo con J.
b.- Poner J en OPEN.
c.- Poner el enlace-padre de- J apuntando hacia N.
7.- Para cada sucesor J que ya est en OPEN, reevaluar f(J) y comparar este valor
con el anterior. Si el nuevo valor es menor, asociarlo con J y volver a colocar J en
OPEN.
8.- Ir al paso 2
La eficiencia de este mtodo de bsqueda depende de la funcin heurstica
f que se utilice.
Inteligencia Artificial.
SOLUCION
1. OPEN
f(A) =8
P(A) = Null
Luego al final de esta primera etapa tenemos:
OPEN = A
CLOSE = NULL
2.- A Meta y adems es el nico nodo en OPEN, luego
CLOSE
A
Generamos los sucesores de A
B, F, H OPEN v CLOSED
f(B) = 6, P(B) = A
f(F) = 37, P(F) = A
f(H) =37, P(H) = A
quedando entonces:
OPEN = B, F, H
CLOSED = A
3. f(B) < f(F). por lo tanto metemos B en CLOSED
CLOSED B
generamos los sucesores de B
C OPEN v CLOSED
OPEN
C
f(C) = 4, P(C) = B
quedando entonces:
OPEN = F, H, C
CLOSED = A, B
4.-f(C) < f (F). por lo tanto metemos C en CLOSED
CLOSED
C
generamos los sucesores de C
D OPEN v CLOSED
f(D) = 2, P (D) = C
quedando entonces:
OPEN = F, H, D
CLOSED = A, B, C
5.- f(D) < f(F). por lo tanto metemos D en CLOSED
CLOSED
D
generamos los sucesores de D
E, G OPEN v CLOSED
f(E) = 0, P(E) = D
f(G) = 6, P(G) = D
Quedamos entonces:
OPEN = F, H, E, G
CLOSE = A, B, C, D
6. E es la meta, luego devolver el camino desde el origen hasta la meta.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
METODO DE BUSQUEDA A*
Este mtodo de bsqueda examina los nodos en un orden que da la mayor prioridad a los
nodos que parecen pertenecer al camino ms corto desde el nodo inicial hasta la meta. Es
por tanto, similar al mtodo "El Mejor Primero" pero siendo la diferencia fundamental la
funcin heurstica f, ya que sta no es, simplemente, la estimacin de la distancia que queda
desde el nodo, en cuestin, hasta la meta, sino que se suma un factor g, que representa el
coste del mejor camino encontrado hasta el momento, desde el nodo inicial hasta el nodo
actual.
As, la funcin heurstica f utilizada en la bsqueda A* queda de la siguiente forma:
f =g+h
donde las funciones g y h reflejan respectivamente:
g = el coste del mejor camino desde el nodo inicial hasta el actual.
h =estimacin del coste involucrado en llegar desde el nodo actual a la meta. En
esta funcin h es donde se explota, realmente, el conocimiento que se tiene sobre el
dominio del problema.
La funcin combinada f, para un nodo N, representa, por tanto, una estimacin del coste
involucrado en llegar desde el nodo inicial hasta un nodo meta a travs del camino que
genera el presente nodo N. Si ms de un camino generan el nodo N, el algoritmo A*
registra el mejor.
Asumiendo que la estimacin dada por h nunca excede la distancia real entre el nodo actual
y la meta, el mtodo A* siempre encuentra el camino ms corto entre el nodo inicial y la
meta. Esto se conoce como la admisibilidad del mtodo A*.
Para implementar este mtodo, cada nodo contendr la misma informacin que para el
mtodo "El Mejor Primero" y se utilizaran las mismas listas OPEN y CLOSED.
ALGORITMO DE BSQUEDA A*
1.-Meter en OPEN el nodo inicial. Inicializar el valor g de este nodo a 0, el valor h
a lo que corresponda, y el valor f a (0 + h). Inicializar CLOSED con la lista
vaca.
2.-Hasta que se encuentre un nodo meta, repetir el siguiente procedimiento: Si no
hay ningn nodo en OPEN, devolver fallo. En caso contrario coger el nodo de
OPEN que tenga el menor valor para f. Llamar a este nodo MEJOR-NODO.
Eliminarlo de OPEN. Ponerlo en CLOSED. Ver si MEJOR-NODO es un nodo
meta. Si lo es devolver la solucin (bien MEJOR-NODO o el camino creado
entre el estado inicial y MEJOR-NODO, segn lo que se quiera). En caso
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
contrario, generar los sucesores de MEJOR-NODO. Para cada SUCESOR
hacer lo siguiente:
a. Poner el enlace-padre de SUCESOR apuntando a MEJOR-NODO.
b. Evaluar g(SUCESOR)=g(MEJOR-NODO) + coste de ir desde MEJORNODO a SUCESOR.
c. Ver si SUCESOR est ya en OPEN (es decir, ya ha sido generado pero
no procesado):
i.- Si SUCESOR est ya en OPEN: llamar VIEJO a ese nodo. Hay
que decidir si el enlace-padre de VIEJO debe cambiarse para
apuntar a MEJOR-NODO. Este debe ser el caso cuando el
camino que acabamos de encontrar hasta SUCESOR es ms
"barato" que el camino ya existente hasta VIEJO (SUCESOR y
VIEJO son el mismo nodo en el grafo). Para ello se comparan los
valores g de SUCESOR y VIEJO. Si VIEJO es ms barato (o
igual), no hacer nada. Si, por el contrario, SUCESOR es ms
barato, cambiar el enlace-padre de VIEJO para apuntar a
MEJOR-NODO, registrar el nuevo camino ms barato en g(viejo)
y actualizar f(VIEJO). Aadir VIEJO a la lista de sucesores de
MEJOR-NODO.
ii.- Si SUCESOR no est ya en OPEN, ver si est en CLOSED. Si es
as, llamar VIEJO a este nodo. Ver cual de los dos caminos, el
nuevo o el viejo, es ms barato (como en el paso anterior), y
ajustar el enlace-padre, y los valores de g y f para VIEJO, segn
se indica en el apartado c.i.. Si se ha encontrado un camino mejor
a VIEJO, esta mejora se debe propagar a los sucesores de
VIEJO. Para conseguir esto, hay que tener en cuenta que VIEJO
contiene la lista de sus sucesores. A su vez, cada uno de ellos
tiene, respectivamente, la lista de sus sucesores, y as
sucesivamente, hasta que cada rama termina con un nodo que, o
bien est en OPEN, o no tiene sucesores. Por tanto, para
propagar el nuevo coste hacia abajo, hay que hacer una
bsqueda en profundidad del subarbol que comienza en VIEJO;
cambiando el valor g de cada nodo (y luego el de f), y terminando
cada rama cuando se llega, bien a un nodo sin sucesores o a un
nodo que ya tena un camino equivalente o mejor (esto garantiza
que el algoritmo termina an cuando se encuentren bucles en el
h
Inteligencia Artificial.
d.- Si SUCESOR no est ya en OPEN o en CLOSED: Poner SUCESOR
EN OPEN y sumarlo a la lista de sucesores de MEJOR- NODO.
Evaluar: f(SUCESOR) =g(SUCESOR) + h(SUCESOR).
EJEMPLO.
Inteligencia Artificial.
Generamos los sucesores de A
B, C OPEN v CLOSED
P(B) = A
g(B) = g(A) + dist (A - B)
= 0+10 =10
h(B) = 109
f(B) = 10 + 109 = 13.6
OPEN
P(C) = A
g(C) = g(A) + dist (A - C)
= 0+20
h(C) = 81
f (C) = 20 + 81 = 13.47
OPEN
B, C
CLOSED
el sucesor C CLOSED
P'(C) = B
g'(C) = g(B) + dist (B - C)
=10+10 = 6.32
'
P(D) = B
g(D) = 6.32
P(C) = A
g(C) = 4.47
Inteligencia Artificial.
f (D) = g'(D) + h (D)
= 6.32 + 53
= 13.6
f(C) = 13.47
Generamos
los
sucesores
E OPEN v CLOSED
de
D,
en
este
caso
son
F OPEN v CLOSED
P(E) = D
P(F) = D
OPEN
Inteligencia Artificial.
Quedando al final de esta etapa:
OPEN
E
CLOSED
A, B, D, F, G
Para, por fin, obtener el camino solucin:
G
P(G) = F
P(F) = D
P(D) = B
P(B) = A
Ascenso de Colina
Bsqueda mediante el ascenso de colina: Se procede como en el caso de la bsqueda en
profundidad, excepto que se ordenan las selecciones de acuerdo con alguna medicin
heurstica de la distancia que queda por recorrer a la meta. Cuanto mejor sea la medicin
heurstica, mejor ser el ascenso de colina con relacin a la bsqueda en profundidad
normal.
El mtodo de escalar colinas es el ms simple de los mtodos heursticos. El nombre viene
de la analoga existente entre el espacio del problema y un plano bidimensional donde la
funcin heurstica define la elevacin de cada punto y la meta es alcanzar el punto ms alto
del terreno.
Escalar colinas funciona efectuando movimientos en la direccin que tenga la subida ms
pronunciada localmente. Lo nico que se memoriza es el estado en curso y el que
originalmente era el nodo raz. En cada ciclo se expande el nodo en curso y se aplica la
funcin heurstica a cada uno de sus sucesores y el que tenga el mejor valor se convierte en
el nuevo estado en curso.
Es semejante a la bsqueda en profundidad, excepto que el mtodo de escalar colinas
ordena los posibles estados a elegir en cada paso de la bsqueda de acuerdo con alguna
medida 1 funcin heurstica de la distancia que queda desde cada uno de ellos hasta la
meta. Cuanto mejor sea la medida heurstica mejores resultados dar el mtodo de escalar
colinas con respecto al de profundidad.
Para llevar a cabo una bsqueda en ascenso de colina debe:
1. Forme una cola de un elemento consistente en una trayectoria de longitud cero que
contenga solo al nodo raz;
2. Hasta que la primera trayectoria de la cola termine en el nodo meta o se vace la cola,
2.1 Elimine la primera trayectoria de la cola; cree nuevas trayectorias extendiendo el
primer paso a todos los vecinos del nodo terminal;
2.2. Rechace todas las trayectorias nuevas con ciclos;
Inteligencia Artificial.
2.3. Ordena las trayectoria nuevas, si las hay, segn las distancias estimadas entre
sus nodos terminales y la meta.
2.3. Agregue las nuevas trayectorias, si las hay, al frente de la fila.
3. Si el nodo meta se alcanza, mencione que hubo xito; de otro modo, notifique el fracaso.
Siempre que se enfrente a un problema de bsqueda note que: un mayor conocimiento suele
reducir el tiempo de bsqueda.
Ejemplo:
En la siguiente figura se muestran las distancias existentes desde cada ciudad a la meta.
A
S
10.4
6.7
4.0
11.0
G
D
8.9
6.9
3.0
F
Si desea alcanzar la meta, en general resulta mejor estar en la ciudad que se encuentre mas
cerca, aunque no necesariamente; la ciudad C se encuentra ms cerca que las dems , con
excepcin de la ciudad F, pero la ciudad C no es un lugar muy adecuado para estar. La
meta encontrada empleando la bsqueda de ascenso de colina es: S D E F - G.
S
10.4
A
8.9
10.4
A
6.9
3.0
6.7
Inteligencia Artificial.
Inteligencia Artificial.
CUARTA UNIDAD:
PROLOG (PROGRAMACIN LGICA)
4.1. Introduccin
4.2. Hechos
4.3. Variables
4.4. Reglas
4.5. El mbito de las variables
4.6. Operadores
4.7. La resolucin de objetivos
4.8. El mecanismo de control de PROLOG
4.9. Entrada / Salida
4.10. Historia y desarrollo de Prolog
4.11. Tipos de datos en Prolog
4.12. Estructura de un programa PROLOG
4.13. Funciones y Pasos de Parmetros.
4.14. Estructuras de Datos en Prolog
Introduccin.
La Quinta Generacin prev mquinas diseadas para el tratamiento lgico, de capacidades
anlogas a las capacidades de anteriores generaciones de ordenadores para tratar
operaciones aritmticas. Se trata de ordenadores que tienen el PROLOG como lenguaje
nativo (lenguaje mquina), con capacidad para procesar millones de inferencias lgicas por
segundo (LIPS.)
La programacin lgica es un paradigma de los lenguajes de programacin en el cual los
programas se consideran como una serie de aserciones lgicas. De esta forma, el
conocimiento se representa mediante reglas, tratndose de sistemas declarativos. Una
representacin declarativa es aqulla en la que el conocimiento est especificado, pero no
viene dada la manera en que dicho conocimiento debe ser usado. El ms popular de los
sistemas de programacin lgica es el PROLOG.
Prolog es un lenguaje de programacin hecho para representar y utilizar el conocimiento que se
tiene sobre un determinado dominio. Ms exactamente, el dominio es un conjunto de objetos y el
conocimiento se representa por un conjunto de relaciones que describen las propiedades de los
objetos y sus interrelaciones. Un conjunto de reglas que describa estas propiedades y estas
relaciones es un programa Prolog.
Prolog es un lenguaje de programacin que es usado para resolver problemas que envuelven objetos
y las relaciones entre ellos.
Inteligencia Artificial.
Una clasula de Horn puede ser bien una conjuncin de hechos positivos una
implicacin con un nico consecuente (un nico termino a la derecha). La negacin no
tiene representacin en PROLOG, y se asocia con la falta de una afirmacin (negacin por
fallo), segn el modelo de suposicin de un mundo cerrado (CWA); solo es cierto lo que
aparece en la base de conocimiento bien se deriva de esta.
Inteligencia Artificial.
El Prolog estuvo un tiempo diseado para ejecutarse en minicomputadoras o estaciones de trabajo,
actualmente hay versiones en Prolog que pueden instalarse en computadores personales como IBMPC y PC-Compatibles.
PROgramacin LOGica
Inteligencia Artificial.
hermano(X,Y):-hermano_o_hermana(X,Y),hombre(X).
hermana(X,Y):-hermano_o_hermana(X,Y),mujer(X).
Hechos.
Expresan relaciones entre objetos. Supongamos que queremos expresar el hecho de que "un
coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas", y de una
relacin llamada "tiene". La forma de representarlo en PROLOG es: tiene(coche,ruedas).
Los nombres de objetos y relaciones deben comenzar con una letra minscula.
Primero se escribe la relacin, y luego los objetos separados por comas y encerrados
entre parntesis.
Al final de un hecho debe ir un punto (".").
El orden de los objetos dentro de la relacin es arbitrario, pero debemos ser coherentes a lo
largo de la base de hechos.
Ejemplo:
Suponga que queremos escribir la informacin genealgica de un grupo de personas. Para
esto podemos utilizar los predicados madre y padre del siguiente modo:
padre(juan, amanda).
madre(ximena, amanda).
madre(laura, juan).
padre(andres, juan).
padre(patricio, bonifacio).
padre(juan, patricio).
padre(juan, ana).
madre(ximena, ana).
El prompt | ? indica que el intrprete est listo para escuchar los requerimientos del
usuario. A partir de esto uno puede hacer consultas:
| ?- madre(ximena,ana).
yes
| ?- padre(juan, ana).
yes
| ?- padre(juan, ximena).
no
Ntese que PROLOG responde yes, slo cuando el hecho asociado aparece en la base de
datos que tiene almacenada, o cuando se deriva de la informacin almacenada.
Inteligencia Artificial.
Una pregunta ms interesante involucra el uso de variables. Por ejemplo, si queremos saber
si existe alguien que sea el padre de Juan, podemos preguntar:
| ?- padre(X,juan).
X = andres ?;
no
| ?Al decir padre (X , juan) estamos preguntndole a PROLOG si existe alguna interpretacin
para la variable X que haga que padre (X, juan) sea verdadera. PROLOG responde que X =
andres es un valor que haria que la consulta sea verdadera.
Mediante el signo ?. PROLOG pregunta si se desea buscar otra solucin para el mismo
problema. Al decir ; se le indica a PROLOG que efectivamente uno quiere buscar otra
solucin. Al no haber otra solucin. PROLOG responde no.
Otro ejemplo puede ser:
| ?- madre(X,Y).
X = ximena,
Y=amanda?;
X = laura,
Y = juan ?;
X = ximena,
Y = ana ?
no
| ?En este ltimo ejemplo. PROLOG busca todos los pares (X, Y) tales que madre (X, Y) es
verdadero. Tambin es posible realizar preguntas ms complejas. Por ejemplo, supongamos
que queremos saber quin es el abuelo paterno de ana?:
| ?- padre(X,ana), padre(Y,X).
X = Juan,
Y = andres ?;
No
| ?En este ejemplo, la consulta padre (X,ana), padre(Y,X). se procesa en orden. Primero se
resuelve la subconsulta padre (X, ana) y los valores resultantes de X se usan para responder
la segunda subconsulta. La ; se interpreta como conjuncin.
Inteligencia Artificial.
Variables.
Representan objetos que el mismo PROLOG determina. Una variable puede estar
instanciada no instanciada. Esta instanciada cuando existe un objeto determinado
representado por la variable. De este modo, cuando preguntamos "Un coche tiene X?",
PROLOG busca en los hechos cosas que tiene un coche y respondera: X = ruedas.
Instanciando la variable X con el objeto ruedas.
Inteligencia Artificial.
variable, pero no nos interesa darle un nombre concreto ya que no vamos a utilizarla
posteriormente.
En Prolog una variables se indica iniciando con maysculas (X, Y, Persona, ...). Las
variables representan cualquier objeto y se usan dentro de los predicados (NO como
nombres de predicados).
Por ejemplo, si a Juan le pertenece algo:
pertenece(juan,X).
Reglas.
Las reglas se utilizan en PROLOG para significar que un hecho depende de uno mas
hechos. Son la representacin de las implicaciones lgicas del tipo p ---> q (p implica q).
Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-".
La cabeza est formada por un nico hecho.
El cuerpo puede ser uno mas hechos (conjuncin de hechos), separados por una
coma (","), que acta como el "y" lgico.
Las reglas finalizan con un punto (".").
Inteligencia Artificial.
Para generalizar una relacin entre objetos mediante una regla, utilizaremos variables. Por
ejemplo:
Representacin lgica
Representacin PROLOG
Con esta regla generalizamos el hecho de que cualquier objeto que sea un coche, tendr
ruedas. Al igual que antes, el hecho de que un objeto tenga ruedas, no es una condicin
suficiente de que sea un coche. Por lo tanto la representacin inversa sera incorrecta.
Ejemplo
Al programa que tenamos anteriormente, podemos agregarle las siguientes reglas:
abuelo(X,Y):- padre(X,Z), madre(Z,Y).
abuelo(X,Y) :- padre(XZ), padre(Z,Y).
Con estas reglas podernos consultar quin es abuelo de quin:
| ?- abuelo(X,Y).
X = andres,
Y=ainanda ?;
X = andres,
Y = patricio ? ;
X = andres,
Y = ana ?;
X = juan,
Y = bonifacio ?;
no
| ?Las reglas para abuelo se pueden escribir como la regla:
abuelo(X,Y): padre(X,Z), (madre(Z,Y);padre(Z,Y)).
En esta notacin el smbolo ; se utiliza corno disyuncin. La regla anterior es equivalente
a las dos reglas originales. El uso de ; debe restringirse intentando mantener la claridad
de las reglas que se escriban. No es recomendable utilizar ; cuando el resultado sea difcil
de leer.
Como ejercicio, defina la relacin herm (X , Y) entre dos individuos. Esta relacin ser
verdadera cuando los dos sujetos tengan al padre o a la madre en comn.
Suponga que se desea definir la relacin antecesor (X , Y). En primer trmino, definiremos:
antecesorDirecto(X,Y) : (padre(X,Y) ;madre(X,Y)).
Inteligencia Artificial.
Con el significado obvio As, podremos escribir que:
antecesor(X,Y) antecesorDirecto(X,Y).
antecesor(X,Y) antecesorDirecto(X,Z), antecesor(Z,Y).
De modo que obtenemos:
| ? entecesor(X,Y).
X = juan,
Y = amanda ? ;
X = andres,
Y = juan ? ;
X = patricio,
Y = bonifacio ?;
X = juan,
Y = patricio ?;
% y as sucesivamente
El mbito de las variables.
Cuando en una regla aparece una variable, el mbito de esa variable es nicamente esa
regla. Supongamos las siguientes reglas:
(1) hermana_de(X,Y) :- hembra(X), padres(X,M,P), padres(Y,M,P).
(2) puede_robar(X,P) :- ladron(X), le_gusta_a(X,P), valioso(P).
Aunque en ambas aparece la variable X (y la variable P), no tiene nada que ver la X de la
regla (1) con la de la regla (2), y por lo tanto, la instanciacin de la X en (1) no implica la
instanciacion en (2). Sin embargo todas las X de una misma regla s que se instanciarn con
el mismo valor.
Operadores.
Son predicados predefinidos en PROLOG para las operaciones
matemticas bsicas. Su sintaxis depende de la posicin que
ocupen, pudiendo ser infijos prefijos. Por ejemplo el operador
suma ("+"), podemos encontrarlo en forma prefija '+(2,5)'
bien infija, '2 + 5'. Tambin disponemos de predicados de
igualdad y desigualdad.
X = Y igual
X \= Y distinto
X < Y menor
X > Y mayor
X =< Y menor igual
Verdadero si X e
Y son diferentes
Inteligencia Artificial.
PROLOG es asociativo por la izquierda. As, 8/4/4 se interpreta como (8/4)/4. De igual
forma, 5+8/2/2 significa 5+((8/2)/2).
Aritmtica:
comparaciones: =, $<$, $>$, $=<$, $>=$, $/=$ (resultado binario)
operaciones: +, -, *, / (divisin float), // (divisin integer), mod (nmeros enteros)
X is A $<$op$>$ B (X debe ser una variable no instanciada)
El operador 'is'.
Es un operador infijo, que en su parte derecha lleva un trmino que se interpreta como una
expresin aritmtica, contrastndose con el trmino de su izquierda.
Por ejemplo, la expresin '6 is 4+3.' es falsa. Por otra parte, si la expresin es 'X is 4+3.', el
resultado ser la instanciacin de X:
X=7
Una regla PROLOG puede ser esta:
densidad(X,Y) :- poblacion(X,P), area(X,A), Y is P/A.
Algunos comandos bsicos
consult: El predicado consult esta pensado para leer y compilar un programa PROLOG o
bien para las situaciones en las que se precise aadir las clusulas existentes en un
determinado fichero a las que ya estn almacenadas y compiladas en la base de datos. Su
sintaxis puede ser una de las siguientes:
consult ( fichero ).
consult( 'fichero.ext' ).
consult( 'c:\ia\prolog\fichero' ).
recon: El predicado recon es muy parecido a consult, con la salvedad de que las clusulas
existentes en el fichero consultado, reemplazan a las existentes en la base de hechos. Puede
ser til para sustituir una nica clusula sin consultar todas las dems, situando esa clusula
en un fichero. Su sintaxis es la misma que la de consult.
forget: Tiene como fin eliminar de la base de datos actual aquellos hechos consultados de
un fichero determinado. Su sintaxis es:
forget( fichero ).
Inteligencia Artificial.
Programacin bsica en PROLOG.
Con los datos que conocemos, ya podemos construir un programa en PROLOG.
Necesitaremos un editor de textos para escribir los hechos y reglas que lo componen. Un
ejemplo sencillo de programa PROLOG es el siguiente:
quiere_a(maria,enrique).
quiere_a(juan,jorge).
quiere_a(maria,susana).
quiere_a(maria,ana).
quiere_a(susana,pablo).
quiere_a(ana,jorge).
varon(juan).
varon(pablo).
varon(jorge).
varon(enrique).
hembra(maria).
hembra(susana).
hembra(ana).
teme_a(susana,pablo).
teme_a(jorge,enrique).
teme_a(maria,pablo).
/* Esta linea es un comentario */
quiere_pero_teme_a(X,Y) :- quiere_a(X,Y), teme_a(X,Y).
querido_por(X,Y) :- quiere_a(Y,X).
puede_casarse_con(X,Y) :- quiere_a(X,Y), varon(X), hembra(Y).
puede_casarse_con(X,Y) :- quiere_a(X,Y), hembra(X), varon(Y).
Una vez creado, lo salvaremos para su posterior consulta desde el interprete PROLOG. Un
programa PROLOG tiene como extensin por defecto '.PRO'. Le daremos el nombre
'relacion.pro'.
Un programa de relaciones familiares definiendo la relacin abuelo. Sera:
% familia:
% hechos:
m(luis).
m(rico).
m(fuhed).
m(edgar).
f(aida).
f(bety).
f(shafy).
papa(fuhed,luis).
mama(aida,luis).
Inteligencia Artificial.
papa(fuhed,rico).
papa(luis,edgar).
papa(fuhed,bety).
papa(fuhed,shafy).
papa(jesus,fuhed).
% reglas:
abuelo(X, Z) :- papa(X,Y), papa(Y, Z).
abuelo(X,Z) :- papa(X, Y), mama(Y, Z).
Otro ejemplo.
A modo de ilustracin considere el siguiente programa:
grande (oso).
grande(elefante).
pequeno (gato).
cafe(oso).
negro (gato).
gris(elefante).
oscuro(Z) :- negro(Z).
oscuro(Z) : cafe(Z).
Junto con la consulta:
? - oscuro(X), grande(X).
La ejecucin del programa PROLOG es equivalente a realizar una bsqueda en
profundidad en un espacio definido por el programa y por el objetivo inicial.
La resolucin de objetivos.
Hemos creado un programa PROLOG [relacion.pro]. A partir de este momento podemos
interrogar la base de hechos, mediante consultas.
Una consulta tiene la misma forma que un hecho.
Consideremos la pregunta:
?-quiere_a(susana,pablo).
PROLOG buscar por toda la base de conocimiento hechos que coincidan con el anterior.
Dos hechos coinciden si sus predicados son iguales, y cada uno de sus correspondientes
argumentos lo son entre s. Si PROLOG encuentra un hecho que coincida con la pregunta,
responder yes. En caso contrario responder no.
Inteligencia Artificial.
Adems, una pregunta puede contener variables. En este caso PROLOG buscara por toda la
base de hechos aquellos objetos que pueden ser representado por la variable. Por ejemplo:
?-quiere_a(maria, Alguien).
[NOTA: Alguien es un nombre perfectamente vlido de variable, puesto que empieza por
una letra mayuscula.]
El resultado de la consulta es:
Alguien = enrique
El hecho 'quiere_a(maria,enrique).' coincide con la pregunta al instanciar la variable
Alguien con el objeto 'enrique'. Por lo tanto es una respuesta valida, pero no la nica. Por
eso se nos pregunta si queremos obtener ms respuestas. En caso afirmativo, obtendramos:
Alguien = susana
Alguien = ana
La , (coma) representa una conjuncin (Y). Es decir que hay que probar ambas submetas
para probar la meta representada por la regla.
Negacin - en Prolog se implementa por lo que se conoce como negacin por fallo, es decir
que si algo no se puede probar se considera falso.
La disjuncin (O) se puede implementar mediante dos reglas con la misma meta.
Tambin se pueden tener reglas recursivas, en las que una submeta es la misma meta (debe
haber una condicin de terminacin). Esto se ilustra en el resto del ejemplo de la familia:
hermano(X, Z) :- papa(Y,X), papa(Y, Z), not(X=Z).
tio(X, Z) :- m(X), papa(Y, Z), hermano(X,Y).
tia(X,Z):-f(X),papa(Y,Z),hermano(X,Y).
proj(X, Y) :- papa(X, Y).
proj(X, Y) :- mama(X, Y).
ancestro(X, Z) :- proj(X, Z).
ancestro(X, Z) :- proj(X, Y), ancestro(Y, Z).
El operador "not".
Se define de tal forma que el objetivo not(X) se satisface solo si fracasa la evaluacin de X. En
muchos casos, puede sustituir al operador corte, facilitando la lectura de los programas. Por
ejemplo:
a :- b, c.
a :- not(b), d.
Equivale a:
a :- b, !, c.
a :- d.
Sin embargo, en trminos de coste, el operador corte es ms eficiente, ya que en el primer caso
PROLOG intentar satisfacer b dos veces, y en el segundo, solo una.
Inteligencia Artificial.
Lista
Cabeza
Cola
[a,b,c,d] a
[b,c,d]
[a]
[] (lista vaca)
[]
no tiene no tiene
[[a,b],c]
[a,b]
[c]
[a,[b,c]]
[[b,c]]
[a,b,[c,d]] a
[b,[c,d]]
[a,b,c] - H = a, T = [b,c]
[a] - H = a, T = [ ]
[[b,c],d] - H = [b,c], T = [d]
[ ] - H = fail, T = [ ]
El valor de las listas en un programa Prolog disminuye si no es posible identificar los elementos
individuales que habrn de integrarlas. Debido a ello, es necesario tener en cuenta el concepto de su
Inteligencia Artificial.
divisin en dos partes: cabeza y cola. La cabeza de la lista es el primer elemento de la misma. La
cola es el resto de la lista, sin importar lo que pueda contener.
Para hacer uso practico de la capacidad de dividir listas en cabeza y cola, Prolog proporciona una
notacin especial con la que se definen las listas en los programas. Existen dos smbolos especiales
que se utilizan: El corchete abierto /cerrado. Se usa para denotar el inicio y el final de una lista. El
separador, su smbolo es | y se usa para permitir que una lista se represente como una cabeza y una
cola. Para procesar una lista, la dividimos en dos partes: la cabeza y la cola.
Ejemplo:
Lista
Cabeza
---------[a, b, c, d]
a
[a]
a
[ ] no tiene no tiene elementos
[[a, b],c]
[a, b]
[a,[b, c]]
a
[a, b,[c, d]]
a
Cola
---[b, c, d]
[ ] (lista vaca)
[c]
[[b, c]]
[b,[c, d]]
Para dividir una lista, utilizamos el smbolo "|". Una expresin con la forma [ X | Y ] instanciar X
a la cabeza de una lista e Y a la cola.
Ejemplo:
p([1,2,3]).
?-p([X | Y]).
X = 1,
Y = [2,3]
p([el, gato, estaba,[ en, la, alfombra ]]).
?-p([X | Y]).
X = el,
Y = [gato, estaba, [en, la, alfombra]]
Se pueden hacer estructuras tan complejas como se quiera en Prolog. Se pueden poner listas dentro
de listas.
Ejemplo:
animales([[mono, bfalo, rata], [serpiente, iguana, cocodrilo], [paloma, pingino]])
Inteligencia Artificial.
match([H1$|$T1],[H2$|$T2]):-H1=H2, match(T1,T2).
% concatena 2 listas (para bsqueda):
agrega([ ],L,L).
agrega([H$|$L1],L2,[H$|$L3]):agrega(L1,L2,L3).
Operador corte
Utilizando el operador de corte, observaremos el siguiente comportamiento:
| ? rnernber(X,[a,b)), !.
X = a ?;
no
| ?Cuando se encuentra con el objetivo !, PROLOG se compromete con todas las unificaciones que se
han realizado antes del ! y desde el momento que se introduce el ! a la lista de objetivos pendientes.
Como estilo de programacin se recomienda escribir programas sin corte
La recursividad.
La recursividad es un mecanismo que da bastante potencia a cualquier lenguaje de programacin.
Veamos un ejemplo de programacin recursiva que nos permitir determinar si un tomo es
miembro de una lista dada:
(1) miembro(X,[X|_]).
(2) miembro(X,[_|Y]) :- miembro(X,Y).
La regla (1) es el caso base de la recursin. Se evaluar como cierta siempre que coincida la
variable X con la cabeza de la lista que se pasa como argumento. En la regla (2) est la definicin
recursiva. X es miembro de una lista si lo es de la cola de esa lista (la cabeza se comprueba en la
regla (1)).
La regla (1) es una simplificacin de la regla:
miembro(X,[Y|_]) :- X = Y.
La traza para el caso de 'miembro(b,[a,b,c]).' es la siguiente:
(1) miembro(b,[a,b,c]) :- b = a. ---> no.
(2) miembro(b,[a,b,c]) :- miembro(b,[b,c]).
(1) miembro(b,[b,c]) :- b = b. ---> yes.
Si necesitamos conocer la longitud de una lista, emplearemos una funcin recursiva como la
siguiente:
longitud([],0).
Inteligencia Artificial.
longitud([_|Y],L1) :- longitud(Y,L2), L1 is L2 + 1.
Otro ejemplo muy tpico de funcin recursiva es el del factorial de un nmero:
factorial(0,1) :- !.
factorial(X,Y) :- X1 is X-1, factorial(X1,Y1), Y is X*Y1.
ENTRADA / SALIDA
PROLOG, al igual que la
mayora de lenguajes de
programacin
modernos
incorpora
predicados
predefinidos para la entrada y
salida de datos. Estos son
tratados como reglas que
siempre se satisfacen.
Ejemplo:
Se evala como cierta siempre que lo tecleado coincida con la constante entre parntesis (en este
caso 'ejemplo').
Por ejemplo con, write(X), si X esta instanciada se despliega su valor, si no se despliega un
identificador.
Por ejemplo con, read(X), si X no esta instanciada se instancia al valor ledo, si no se compara el
valor que tiene con el ledo y falla si son diferentes.
Inteligencia Artificial.
Inteligencia Artificial.
Se repite el proceso anterior. La variable Y se instancia con el objeto 'susana' y se intentan probar
los hechos restantes:
varn(maria), hembra(susana).
De nuevo se produce un fallo que provoca la desinstanciacin de la variable Y, as como una
vuelta atrs en busca de nuevos hechos que coincidan con (2). Una nueva reevaluacin da como
resultado la instanciacin de Y con el objeto 'ana' (la ultima posible), y un nuevo fallo en el hecho
varn(maria). Una vez comprobadas sin xito todas las posibles instanciaciones del hecho (2),
PROLOG da por imposible la regla (1), se produce de nuevo la vuelta atrs y una nueva bsqueda
en la base de datos que tiene como resultado la coincidencia con la regla:
(3) puede_casarse_con(maria,Y) :- quiere_a(maria,Y), hembra(maria), varon(Y).
Se repite todo el proceso anterior, buscando nuevas instanciaciones de la variable Y que
verifiquen el cuerpo de la regla. La primera coincidencia corresponde al hecho:
quiere_a(maria,enrique).
que provoca la instanciacin de la variable Y con el objeto 'enrique'. PROLOG tratar de probar
ahora el resto del cuerpo de la regla con las instanciaciones actuales:
hembra(maria), varon(enrique).
Un recorrido de la base de datos, da un resultado positivo en ambos hechos, quedando probado en
su totalidad el cuerpo de la regla (3) y por lo tanto su cabeza, que no es mas que una de las
soluciones al objetivo inicial.
X = enrique
PROLOG utiliza un mecanismo de bsqueda independiente de la base de datos. Aunque pueda
parecer algo ilgico, es una buena estrategia puesto que garantiza el proceso de todas las
posibilidades. Es til para el programador conocer dicho mecanismo a la hora de depurar y
optimizar los programas.
Control
Prolog realiza, en forma general, una bsqueda por profundidad con retroceso
(backtracking). Al intentar probar una meta (regla), busca primero probar la primera
condicin, despus la segunda, etc. Si alguna es falsa, entonces falla dicha regla, e intenta la
siguiente regla (si existe) para la misma meta.
Hay ciertas formas de alterar la estrategia bsica de bsqueda:
CUT (!) - evita el ``backtracking''
Inteligencia Artificial.
Ejemplos:
X:- a,b,c,!,d,e.
Predicados mutuamente exclusivos - escaln:
esc(X,-1):- X $<$ 0, !.
esc(X, 0):- X $=$ 0, !. esc(X, 1):- X $>$ 0, !.
FAIL - siempre es falso (TRUE - siempre es verdadero)
Ejemplos:
impuesto(Persona, X) :- desempleado(Persona), !, fail.
impuesto(Persona, X) :- ...
Excepciones:
diferente(X,X):-!,fail.
diferente(X,Y).
NOT - verdadero si no se puede probar la meta.
Predicado predefinido que se podra definir como:
not(P):-P,!,fail. \\ not(P)
Ordenamiento de Listas
Una solucin es insertar el elemento en el lugar que le corresponde:
sort([H|T],LO) :sort(T,TO),
insertao(H,TO,LO).
sort([],[]).
insertao(H,[],[H]).
insertao(H,[F|T],[F|R]) :H > F,
insertao(H,T,R).
insertao(H,[F|R],[H,F|R]) :H =< F.
El > H,
divide(El,T,Men,May).
divide(El,[H|T],Men,[H|May]) :El < H,
divide(El,T,Men,May).
divide(_,[],[],[]).
Inteligencia Artificial.
Manipulacin de la Base de Conocimientos
Un programa en Prolog se puede ver como una ``base de datos'', de forma que 'esta puede ser
modificada dinmicamente -- agregando y borrando clusulas. Para ello existen varios predicados
predefinidos:
assert: agregar una clusula a la base de datos
asserta: agregar una clusula al inicio de la base de datos
assertz: agregar una clusula al final la base de datos
retract: borra una clusula de la base de datos
Ejemplos:
assert(padre(juan,rita)).
retract(padre(juan,rita)).
Estas facilidades son muy poderosas y tiles en algunas aplicaciones, pero hay que usarlas con
cuidado ya que en realidad se esta modificando el programa resultando en que en diferentes
momentos puede dar diferentes resultados.
Sistemas Expertos en Prolog
Es casi inmediato el implementar un sistema de reglas de produccin en Prolog, ya que sus
clusulas se pueden ver como reglas y su interprete como una maquina de inferencias la cual realiza
encadenamiento hacia atrs y bsqueda en profundidad.
Un sistema experto para crditos bancarios podra codificarse como el siguiente programa en
Prolog:
prest(X,C):solv(X,C),hist(X,C),ref(X,C).
hist(X,C):tarjeta(X,T1),tarjeta(X,T2).
hist(X,C):prestamo(X,casa).
hist(X,C):prestamo(X,carro).
solv(X,C):ing(X,I), P is C / 10, T is 3 * P, I > T.
ref(X,C):refer(X,Y), refer(X,Z), refer(X,W), not(Y=Z), not(Z=W).
% Un caso:
prestamo(juan,carro).
ing(juan,100).
refer(juan,pedro).
refer(juan,maria).
refer(juan,sol).
Inteligencia Artificial.
Inteligencia Artificial.
QUINTA UNIDAD:
SISTEMAS EXPERTOS
5.1 Sistemas expertos.
a) Problemas solubles con sistemas expertos.
b) Estructuras y cualidades de un sistema experto.
c) Herramientas para la construccin de un sistema experto.
d) Manejo de incertidumbre y probabilidad.
5.2. Algunos Shell de sistemas expertos.
INTRODUCCIN.
Ingeniera de conocimiento
La inteligencia artificial es la base de la ingeniera del conocimiento. Esta Inteligencia
Artificial (IA) se puede ver como ciencia o como ingeniera
Como ciencia:
Por que trata de entender la naturaleza de la inteligencia
Como ingeniera
procura elaborar software capaz de actuar como humano
elaborar artefactos que presenten una conducta inteligente
Objetivos de la IA
La inteligencia es una nocin transparente aun ms cuando se trata de simular en
una mquina.
La IA ha emprendido la tarea de proporcionar una base terica al concepto de la
Inteligencia.
Utiliza la computadora como un laboratorio donde desarrollar nuevas formas de
pensar acerca del pensar.
La IA se ha visto considerablemente enriquecida al intentar de describir los rasgos
anlogos a la IA
LA IA COMO INGENIERIA
Tiene como meta construir sistemas reales que funcionan
Se percibe como un intento de crear una nueva tecnologa informtica
Se ocupa de los conceptos, la teora y las prcticas de cmo construir
mquinas inteligentes, es decir, mquinas que resuelvan problemas.
El ejemplo ms paradigmtico de mquinas inteligentes por el xito que estn
alcanzado comercialmente sean los sistemas basados en conocimientos
(SSBBCC) y los sistemas expertos en concreto (SSEE)
Inteligencia Artificial.
INTELIGENCIA
ARTIFICIAL
SISTEMAS
EXPERTOS
Motor de
Inferencias.
Interfaz
Usuario
Base de
Conocimientos
Inteligencia Artificial.
E
S
T
M
U
L
O
SENSORES
MEMORIA
MEMORIA DE
TRABAJO
MEMORIA
MSCULOS
PROCESADOR
COGNITIVO
SUSBSISTEMA
PRECEPTIVO
R
E
S
P
U
E
S
T
A
SUSBSISTEMA
MOTOR
SUSBSISTEMA COGNITIVO
Inteligencia Artificial.
DEFINIRLO EN
TERMINOS DE ESTADO
Y OPERADORES (ALT)
GENERAR Y ANALIZAR
ESPACIO DE BUSQUEDA
SOLUCION
ALGORITMICA
TRADICIONAL
IDENTIFICAR
CONOCIMIENTO
APLICABLE A REDUCIR
ESPACIO BUSQUEDA
PROGRAMACION
CONVENCIONAL
Inteligencia Artificial.
Nuevos conceptos en
anlisis de trabajos y
diseo organizaciones
Psicologia
Cognitiva
Sistemas de
computacion
simbolica
Lgica
Formal
VISION
COMPUTACIONAL
Lenguajes de
procesamiento de
listas
ROBOTICA
INTELIGENCIA
ARTIFICIAL
APLICADA
Entornos de
programacion
incremental
LENGUAJE
NATURAL
SISTEMAS
EXPERTOS
Sistemas
restringidos
grandes
Sistemas de tutora
inteligentes
Desarrollo de la
microelectrnica
Herramientas
construccion SE
Computacion de la
V-generacion
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Sistemas de
pequea
escala
Workstations
inteligentes
Computacin
interactiva
Desarrollo de
computadores
Instrumentos
inteligentes
Sistemas hibridos
muy grandes
Inteligencia Artificial.
Desde que naciera la Inteligencia Artificial como tal ciencia, a principios de los 60, hasta la
actualidad, se han venido realizando numerosos trabajos, especialmente en los Estados Unidos,
para el desarrollo de los diversos campos que componen la Inteligencia Artificial. De todos esos
campos, quiz el que puede tener mayor nmero de aplicaciones prcticas sea el de los Sistemas
Expertos, siendo dichas aplicaciones de utilidad en temas tan variados que pueden ir desde la
medicina hasta la enseanza pasando por el CAD.
Inteligencia Artificial.
velocidad de ejecucin y fiabilidad; debe ser capaz de explicar y justificar sus soluciones y
consejos para convencer al usuario de lo correcto de su razonamiento.
Los sistemas expertos son el tipo de aplicacin de IA que mejores resultados ha conseguido.
Estos sistemas son usados hoy en da en un amplio abanico de dominios y han probado ser
altamente fiables. Por ello sera deseable la disponibilidad de interfaces en lenguaje natural que
facilitasen la comunicacin con el sistema por parte de usuarios no expertos en computacin
(mdicos, bilogos, ingenieros).
Interfase
usuario
del
Mquina de inferencia
1. Reglas de inferencias
2. Estrategias de control
Base de conocimiento
1. Reglas
2. Marcos
3. Redes semnticas
etc.
Base de datos
(Memoria de trabajo)
Estado del sistema
Estados iniciales
Estado actual
Factores
Inteligencia Artificial.
La base del conocimiento representa el universo donde esta el sistema, es decir la informacin
que rodea al problema.
A travs del motor de inferencia sabemos como el experto decide cual regla aplicar a cuales
datos, como resolver conflictos entre reglas y entre datos; y como va ha inferir los nuevos hechos
o nuevos datos; y para eso debemos saber como piensa el experto y debemos saber como utiliza
la base del conocimiento (base de reglas y la base de datos.)
La interfaz del usuario debe servir para ingresar los datos, las reglas, cambiarlas, cambiar el
motor de inferencia; debe tener capacidad de circulacin y capacidad de operacin cuando se usa
en el sistema experto.
El Shell es un mdulo formado por el motor de inferencia y la interface del usuario y son los
generadores del sistema experto. De acuerdo a todos los estudios (desde 1987) usar un Shell es
una manera racional para desarrollar un sistema experto.
La base de datos y las reglas deben cumplir ciertos formalismos para que el Shell lo entienda. Los
resultados de utilizar sistemas expertos hasta el momento son apenas aceptables. en algunos casos
buenos o bastante buenos y en algunos casos realmente malos.
Estos errores son debidos a que no se sabe elegir el Shell del sistema experto. No es lo mismo
usar un Shell que desarrolla una persona para un problema de Agricultura que usar el mismo
programa para resolver problemas de produccin o de verificacin de produccin por poner un
ejemplo. La razn es que el dominio de la aplicacin es diferente por lo tanto el sistema no va ha
funcionar. Muchas empresas nos dicen el origen del Shell. Algunos son muy atractivos pero
cuando se les hace una prueba de escritorio funcionan mal. Por lo tanto un Ingeniero o futuro
Ingeniero debe desarrollar mtodos para evaluar estos Shell.
Motor de Inferencia
Es la forma como el experto soluciona un problema haciendo funcionar las reglas, encadenando
las reglas para llegar a la solucin. Antes se tiene que definir estas reglas.
El ciclo de Clculo: El motor sigue un orden. Selecciona cual es la regla que debe aplicar primero
basado en hechos, cul es la hiptesis y cules son las metas; luego se aplican y se definen nuevas
reglas con nuevos datos o se demuestra que la eleccin es valida.
Funcin del Motor de Inferencia
Determinar cuales son las acciones que deben de realizarse
Determinar el orden de las acciones
Determinar como se realizan las acciones entre las distintas partes del sistema experto,
como se comunican con la base de conocimiento, la interface del usuario, etc.
Como y cuando se procesan las reglas
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Inteligencia Artificial.
Inteligencia Artificial.
Los sistemas de diagnosis siguen un proceso de bsqueda de las razones del funcionamiento
incorrecto de un sistema a partir de la informacin disponible. Aqu se podran tener en cuenta
tanto aplicaciones de diagnstico mdico como de averas. En lo referente al diagnstico mdico,
existe una serie de aplicaciones extensa en nmero (FLUIDEX, EACH, TROPICAID,
SPHINX,...), pero quiz la ms conocida, a la vez que la ms antigua, podra ser MYCIN.
MYCIN es el primer Sistema Experto que lleg a funcionar con la misma calidad que un experto
humano, dando a su vez explicaciones a los usuarios sobre su razonamiento. Antes del desarrollo
de MYCIN (mediados de los 70), se criticaba a la Inteligencia Artificial por resolver nicamente
problemas "de juguete", sin embargo, el xito de MYCIN demostr que la tecnologa de los
Sistemas Expertos estaba suficientemente madura como para salir de los laboratorios y entrar en
el mundo comercial. MYCIN es, en definitiva, un sistema de diagnstico y prescripcin en
medicina, altamente especializado, diseado para ayudar a los mdicos a tratar con infecciones de
meningitis (infeccin que produce inflamacin de las membranas que envuelven al cerebro y la
mdula espinal) y bacteriemia (infeccin que implica la presencia de bacterias en la sangre).
Dichas infecciones pueden ser fatales y a menudo aparecen durante la hospitalizacin. El
problema se complica por la necesidad de actuar con rapidez.
Existen adems en este campo Sistemas Expertos como TROPICAID, que permiten obtener
informacin adicional sobre los medicamentos ms usados. TROPICAID selecciona un conjunto
de posibles diagnsticos a partir del anlisis del cuadro mdico, y propone un tratamiento ptimo
para el caso concreto.
Por otra parte, el campo de la diagnosis abarca otras aplicaciones adems de las mdicas (si bien
pueden ser estas ltimas las ms conocidas). En este caso se trata de fallos, averas o anomalas
que se producen generalmente en una mquina. Dentro de este apartado existen tambin
numerosas aplicaciones, pudiendo encontrar incluso empresas en la propia CAPV que han
desarrollado trabajos dentro del campo de la diagnosis de equipos industriales complejos. Tal es
el caso de ADICORP (con su sistema TESP para la diagnosis de robots Puma) que trabaja
adems en proyectos de Visin Artificial.
Los sistemas de pronstico deducen consecuencias posibles a partir de una situacin. Su objetivo
es determinar el curso del futuro en funcin de informacin sobre pasado y presente. Esto abarca
diversos problemas, tales como predicciones meteorolgicas, predicciones demogrficas, o
incluso previsiones de la evolucin burstil entre otros. Quiz la aplicacin ms conocida sea
PROSPECTOR, esto es un sistema para la evaluacin de emplazamientos geolgicos (con el que
se encontr un yacimiento de mineral importante).
Existen tambin sistemas de planificacin, pudindose encontrar aplicaciones en este rea, que
establecen una secuencia de acciones a realizar encaminadas a la consecucin de una serie de
objetivos.
Hay una tendencia creciente a desarrollarlos y utilizarlos, sin embargo, los programas son caros y
tienen que ser analizados con cuidado para determinar su contribucin potencial al resultado
final. Una de tales aplicaciones es el Palladian Operations Advisor (de Palladian Software, Inc.,
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Inteligencia Artificial.
Un sistema de instruccin (Sistema Experto para formacin) realiza un seguimiento del proceso
de aprendizaje de un estudiante. El sistema detecta errores de los estudiantes e identifica el
remedio adecuado, es decir, desarrolla un plan de enseanza para facilitar el proceso de
aprendizaje y la correccin de errores.
Adems de DELTA, existen numerosos sistemas de este tipo; STEAMER, por ejemplo, se cre
para ensear a los oficiales de la armada los problemas de funcionamiento de una planta de
propulsin a vapor, como las que impulsan a ciertos barcos. Este era el problema de formacin
ms importante que exista, dada la complejidad de los sistemas. El objetivo es dar al estudiante
una concepcin global de lo que pasa en la planta en cualquier momento, con la ventaja de que
adems el modelo de presentacin es grfico (utilizando Interlisp).
Con un objetivo similar al de STEAMER, Construcciones Aeronuticas S. A. (CASA) desarroll
el Proyecto Eolo CN-235. En este caso, el problema est en el hecho de que pilotar un avin que
cuesta cientos de millones de pesetas es un asunto muy serio a la vez que peligroso, lo que exige
mucho tiempo de entrenamiento, tanto para pilotos como mecnicos, suponiendo para las
compaas areas un gran problema, dado el elevado coste de los cursos y la escasez de
instructores. El proyecto surgi de la voluntad de Construcciones Aeronuticas S. A. de ofrecer
un curso especfico para pilotos y tcnicos de mantenimiento, a todos los compradores del avin
CN- 235. Eolo CN-235 es un sistema de enseanza interactivo que integra grficos, texto y vdeo.
Otro sistema de este tipo, aunque en este caso orientado a medicina, es GUIDON, pensado para
que lo utilicen las Facultades de Medicina para formar a los mdicos en la realizacin de
consultas. GUIDON viene a ser una reorganizacin de MYCIN con intenciones educativas, por
esto, tiene la ventaja adicional de disponer de toda la base de conocimientos de MYCIN adems
de la experiencia acumulada, por consiguiente, puede recuperar como ejemplo cualquier caso que
MYCIN haya tratado.
Adems de las reas de aplicacin ya citadas, existen otras como las relativas a los sistemas de
interpretacin, que realizan tareas de inferencia a partir de una serie de datos observables (Ej.
anlisis de imgenes, o bien interpretacin de seal).
Diferencias entre programas convencionales, inteligencia artificial y Sistemas expertos
Convencionales o algortmicos:
Deterministas sin redundancia (si estn incorrectamente diseados puede introducirse un
dato mas de una vez), suelen reflejar condiciones necesarias y suficientes para obtener los
resultados (con mayor o menor eficiencia) mecanismo simple y camino computacional
simple para producir la salida en funcin de la entrada. Los humanos tienen colecciones
de tcnicas para un problema y, si se olvida una, se puede encontrar soluciones de otra
manera.
Distincin entre cdigo (receta para manipular estructuras, algoritmos y datos (las propias
estructuras)
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
- prediccin
- diagnstico
- diseo
- planificacin
- reparacin
- instruccin
- asesoramiento
- evaluacin de situaciones
- evaluacin de sucesos
Inteligencia Artificial.
Pruebas
Evaluacin del rendimiento del programa.
Revisin y ajuste a nivel de excelencia.
El experto realiza una evaluacin. incluso se disean problemas en el que el experto lo
resuelve y el programa lo resuelve aparte.
Inteligencia Artificial.
Control Experto
Es la combinacin de tcnicas de Control de Procesos Industriales, del Conocimiento
Heurstico y de Sistemas Expertos.
El objetivo es controlar un proceso.
Se busca Conocer:
El proceso y estructuras de control, por pruebas en distintos puntos de operacin.
La informacin relevante para un sistema de control.
Para esto debemos saber como representar y usar el conocimiento; y adems la existencia de
ciertas condiciones para ciertos procesos.
Inteligencia Artificial.
TOMA DE DECISIONES
La potencia de un Sistema Experto se basa ms en una gran cantidad de conocimientos que en un
formalismo deductivo muy eficaz. La idea que se persigue cuando se construye un Sistema
Experto es la de automatizar la labor del experto, partiendo en ocasiones de informacin
insuficiente o incompleta.
En las empresas, los Sistemas Expertos empiezan a tener cada vez mayor auge, hasta el punto de
ir suponiendo un punto de referencia importante en la toma de decisiones para la junta directiva.
En realidad, incluso se podra decir que el lmite de las aplicaciones objeto de los Sistemas
Expertos est en la imaginacin humana, siendo siempre de utilidad all donde se necesite un
experto.
La medida de la efectividad de las operaciones de planificacin y control de una organizacin y
su sensibilidad a los cambios, son elementos importantes en la buena direccin de la produccin.
Los planes y las decisiones en la produccin se desarrollan y llevan a cabo en un mundo de
representaciones simblicas de hechos y conjeturas, muchas de las cuales no estn informatizadas
y representan la experiencia y el conocimiento de expertos. En cada estadio de los procesos de
planificacin, decisin y control para las operaciones de produccin, sea sta automatizada o no,
las personas expertas son las que asesoran, localizan los fallos y dirigen. Ellas son las que ayudan
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
Inteligencia Artificial.
d) Los Sistemas Expertos no son totalmente confiables. Debido a esto se recomienda que sus
resultados deben ser ponderados, probados y escrutinizados. El ser humano debe realizar
la decisin final.
Algunas de estas desventajas gradualmente desaparecern o disminuirn con las apariciones
mejoradas de la tecnologa en hardware y software.
c) Herramientas para la construccin de un sistema experto
Una de las principales razones para el rpido crecimiento de desarrollo de sistemas expertos, es el
soporte de un conjunto de herramientas poderosas. Entre las herramientas para sistemas expertos
tenemos:
En un inicio los sistemas expertos se creaban como un conjunto de representaciones declarativa
(reglas en su mayor parte) combinadas con un interprete para esas declaraciones, fue posible
separar el interprete y el conocimiento especfico del dominio, y as se pudo crear un sistema
capaz de construir nuevos sistemas expertos con la aadidura de nuevos conocimientos
correspondientes al dominio del nuevo problema. A los intrpretes resultantes se les llam
Armazones (Shell). El valor de un Shell para SE est directamente relacionado con el grado en
que las caractersticas del dominio se parecen con las caractersticas esperadas por el modelo
interno del Shell.
En este momento existen comercialmente varios armazones que sirven de base para muchos de
los sistemas expertos que actualmente se construyen. Los ltimos armazones presentan mucha
mayor flexibilidad en la presentacin del conocimiento, del razonamiento y de las explicaciones
que los primeros. Con el tiempo la experiencia ganada indica que para facilitar las cosas los
sistemas expertos se deben integrar con otros tipos de programas. Los sistemas expertos no
pueden actuar aislados, necesitan acceder a bases de datos colectivas, y por tanto ser controlados
igual que otros sistemas. A menudo son incrustados en otros programas de aplicacin ms
grandes que usan tcnicas de programacin convencionales.
La herramienta ms elemental para el desarrollo de sistemas expertos es un lenguaje de
propsito general. Lisp ha sido y continua siendo el lenguaje ms ampliamente empleado para el
desarrollo de sistemas expertos, el lenguaje de programacin Prolog, aunque su empleo como un
lenguaje para el desarrollo de sistemas expertos ha sido un poco menos que el de Lisp.
Generalmente las herramientas ms poderosas para SE son las grandes herramientas hbridas
que combinan ambientes de desarrollo sofisticado con representaciones mltiples de
conocimiento y paradigmas mltiples de inferencia. Esta integracin, de varias facilidades
bsicas es muy til porque posibilita que cualquier herramienta dada sea empleada con muchos
diferentes problemas, o problemas que involucren varias clases diferentes de representaciones del
conocimiento y de paradigmas de inferencia.
Inteligencia Artificial.
En resumen, indicamos que una de las caractersticas ms importantes que debe tener una
armazn es una interfaz fcil de emplear entre un sistema experto escrito con la armazn y un
gran entorno de programacin, que probablemente ser ms convencional.
Desarrollo de los Sistemas Expertos
Para desarrollar el software primero conocemos el equipo de gente necesario, despus los
mtodos que utiliza ese equipo de gente y por ltimo como prueban y construyen prototipos de
software para terminar en el sistema final.
1. Equipo de desarrollo
2. Mtodos auxiliares en el desarrollo
3. Construccin de prototipos
El Equipo de desarrollo
Las personas que componen un grupo o un equipo, como en todos los mbitos deben cumplir
unas caractersticas y cada uno de ellos dentro del equipo desarrolla un papel distinto.
A continuacin cada componente del equipo dentro del desarrollo y la funcin de cada uno:
1. El experto La funcin del experto es poner sus conocimientos especializados a
disposicin del Sistema Experto.
2. El ingeniero del conocimiento El ingeniero plantea las preguntas al experto, estructura
sus conocimientos y los implementa en la base de conocimientos.
3. El usuario aporta sus deseos y sus ideas, determinando especialmente el escenario en el
que debe aplicarse el Sistema Experto.
ESQUEMA DE REPRESENTACIN EN EL QUE FIGURA EL EQUIPO DE DESARROLLO.
En el desarrollo del Sistema Experto, el ingeniero del conocimiento y el experto trabajan muy
unidos. El primer paso consiste en elaborar los problemas que deben ser resueltos por el sistema.
Precisamente en la primera fase de un proyecto es de vital importancia determinar correctamente
el mbito estrechamente delimitado de trabajo. Aqu se incluye ya el usuario posterior, o un
Inteligencia Artificial.
Inteligencia Artificial.
Frames son componentes explicativos y/o el mecanismo de inferencia que estn dimensionados
de forma distinta en los diferentes Shells.
Construccin de prototipos
En el desarrollo de Sistemas Expertos se nos plantean riesgos como:
Falta de implementaciones similares que puedan servir de orientacin al encargado del
desarrollo en la casi totalidad de los casos.
Requisitos necesarios estn esbozados con muy poca precisin.
El diseo y la especificacin requieren una temprana determinacin de la interfaz del software y
de la funcionalidad de los componentes. En el desarrollo de Sistemas Expertos deben alterarse a
menudo durante y tambin despus de su implementacin, ya que los requisitos se han ido
configurando y han obtenido mayor precisin, o porque se ha descubierto que deben iniciarse
otras vas de solucin.
Durante el desarrollo, resulta ms apropiado empezar con implementaciones tipo test para
encontrar el camino hacia una solucin definitiva y para hacerlas coincidir con las necesidades
del usuario.
Un mtodo efectivo es la implementacin de un prototipo de Sistema Experto que permita llevar
a cabo las funciones ms importantes de ste, aunque con un esfuerzo de desarrollo
considerablemente inferior al de una implementacin convencional. Este proceder se define bajo
el nombre de "Rapid Prototyping".
Las mquinas de Inteligencia Artificial especialmente desarrolladas, los lenguajes de
programacin de Inteligencia Artificial y en determinados casos los Shells, ofrecen una
considerable ayuda para el "Rapid Prototyping". Para Sistemas Expertos, el "Rapid Prototyping
es el procedimiento ms adecuado, pues posibilita una rpida reaccin a los deseos en constante
cambio tanto por parte de los expertos como parte del usuario.
Inteligencia Artificial.
Inteligencia Artificial.
Inteligencia Artificial.
K
n =1
P(E | Hn ) * P(Hn )
donde:
En algunas ocasiones se tendr un cuerpo de evidencia previo y alguna nueva observacin E, por
lo que ser necesario hacer el siguiente calculo:
P(H | E, e) = P(H | E) * P(e | E, H) / P (e | E)
El tamao del conjunto de probabilidad combinadas que se necesitan para calcular esta funcin,
n
crece con una funcin de la forma 2 , donde n es el nmero de proposiciones diferentes que es
necesario considerar, lo que hace inaplicable al teorema de Bayes. A pesar de esto las estadsticas
bayesianas proporcionan una base atractiva para los sistemas que razonan bajo incertidumbre, por
lo que se han desarrollado varios mecanismos que hacen uso de su potencialidad, como son:
Inteligencia Artificial.
Factores de certeza
Un factor de certeza se define en trminos de dos componentes:
Manager of believe: MB [h, e]. Una medida entre cero y uno de la creencia de que la
hiptesis h proporciona la evidencia e. MB da una medida sobre hasta que punto la
evidencia soporta la hiptesis. Es cero si la evidencia no soporta la hiptesis.
Manager of disapoint: MD [h, e]. Una medida entre cero y uno sobre la incredulidad de
que la hiptesis h proporciona la evidencia e. MD da una medida de hasta que punto la
evidencia soporta la negacin de la hiptesis. Es cero si la evidencia soporta la hiptesis.
A partir de estas dos medidas se puede definir el factor de certeza, CF [h, e], como sigue:
CF [h, e]= MB [h, e] - MD [h, e]
Los factores de certeza los proporcionan los expertos, y estos reflejan las valoraciones del experto
sobre la fortaleza con que la evidencia soporta la hiptesis. Sin embargo en el proceso de
razonamiento los factores de certeza tienen que combinarse para reflejar el uso de las mltiples
partes de la evidencia y las mltiples reglas que se aplican para resolver el problema.
s1
h
s2
Las medidas sobre la creencia o no creencia de una hiptesis dadas las observaciones s1 y s2
se calculan de la siguiente forma:
MB [h, s1 ^ s2] =
MD [h, s1 ^ s2]=
s MD[h, s1 ^ s2]= 1
en caso contrario
s MD[h, s1 ^ s2]= 1
en caso contrario
Inteligencia Artificial.
Ejemplo:
Suponga que se tiene una observacin inicial que confirma nuestra creencia en h con MB =
0.3. Entonces:
MD [h, s1]= 0
CF[h, s1]= 0.3 0 = 0.3
A continuacin se hace una segunda observacin, que confirma h con un valor de
MB[h,s2]=0.2. Entonces:
MB [h, s1 ^ s2] = 0.3 + (0.2 )* (1 - 0.3)
MB [h, s1 ^ s2] = 0.3 + 0.14
MB [h, s1 ^ s2] = 0.44
MD [h, s1 ^ s2] = 0
CF [h, s1 ^ s2] = 0.44 0
CF [h, s1 ^ s2] = 0.44
h1
h2
Se utiliza cuando se necesita conocer el factor de certeza de un antecedente de una regla que
contiene varias clusulas.
MB [h1 ^ h2 , e ]= mn (MB [h1, e], MB [h2, e])
MB [h1 v h2 , e ]= mx (MB [h1, e], MB [h2, e])
Sea MBs [h, s]la medida de la creencia sobre h estando completamente segura la validez de s y
sea e la evidencia que nos lleva a creer en s, se tiene:
MB [h, s]= MB[h, s] * mx (0, CF [s, e])
Inteligencia Artificial.
Ejemplo
Considrense las siguientes caractersticas (variables y sus posibles valores) de las personas de
una poblacin dada:
Sexo = {hombre, mujer}
Fumador = {s (f), no ( f)}
Estado Civil = {casado (c), no casado (c)}
Embarazo = {s (e), no (e)}
La funcin de probabilidad conjunta de estas cuatro
variables se da en la tabla. Por ello, por ejemplo, el 50%
de las personas de una poblacin son mujeres, y el
0.01 + 0.04 + 0.01 + 0.10
=
(0.01 + 0.04 + 0.01 + 0.10) + (0.00 + 0.02 + 0.00 + 0.07)
64% de los fumadores son mujeres.
Sea A una persona elegida al azar de la poblacin. Sin conocer si la persona es fumadora, la
probabilidad de que se trate de una mujer es p(A = mujer) = 0.50. Pero si se sabe que la persona
es fumadora, esta probabilidad cambia de 0.50 a p(A = mujer|A = f) = 0.64. Por tanto, se tiene p(A
= mujer|A = f) p(A = mujer); por lo que las variables Sexo y Fumador son dependientes.
Ejemplo
Considrese la funcin de probabilidad conjunta de las tres variables binarias
X, Y y Z dadas en la tabla Entonces se tiene:
Las funciones de probabilidad marginal de X, Y y Z se muestran en la tabla.
Por ejemplo, la funcin de probabilidad marginal de X se calcula mediante
Inteligencia Artificial.
Inteligencia Artificial.
Redes Bayesianas
En las redes bayesianas el formalismo se preserva y se confa en la modularidad del mundo que
se intenta modelar. La idea principal consiste en que para describir el mundo real no es necesario
utilizar una tabla de probabilidades enorme en la que se listen las probabilidades de todas las
combinaciones concebibles de sucesos. La mayora de los sucesos son condicionalmente
independientes de la mayora de los dems por lo que no deben considerarse sus interacciones.
En lugar de esto, se puede usar una representacin mas local en donde se describan grupos de
sucesos que interacten.
Existen dos diferentes formas en que las proposiciones pueden influenciar las probabilidades de
las dems, la primera de ellas consiste en que influya en las probabilidades de sus indicios; la
segunda en que la observacin de un indicio afecte a la probabilidad de todas las posibles causas.
La idea que hay detrs de la estructura de red bayesiana es la distincin clara entre estos dos tipos
de influencia.
Se construye un grafo acclico dirigido (GAD) que representa las relaciones de causalidad entre
las variables. Las variables del grafo pueden ser proposicionales (pueden tomar los valores
verdadero o falso) o pueden ser variables que tomen valores de algn tipo (una temperatura
corporal o una lectura tomada de algn dispositivo de diagnstico).
Ejemplo: Observe el grafo formado por la siguiente situacin: En una determinada maana la
hierba se encuentra hmeda, pero no se tiene certeza de que la causa sea que hubo riego en la
noche anterior o por la lluvia.
Estacin lluviosa
Riego
Lluvia
Hmedo
Inteligencia Artificial.
Un GAD ilustra las relaciones de causalidad que pueden surgir entre los nodos que contiene. Sin
embargo, para poder usarlo como base de un razonamiento probabilstico, es necesario conocer
para cada valor de un nodo padre, que evidencia proporciona sobre los valores que pueden tomar
los nodos hijos. Estos datos se pueden encontrar en una tabla que contenga las probabilidades
condicionadas.
Ejemplo: Se muestra a continuacin la tabla de probabilidades condicionadas para el grafo del
ejemplo anterior:
Atributo
P (Hmedo | Riego, Lluvia)
P (Hmedo | Riego, Lluvia)
P (Hmedo | Riego, Lluvia)
P (Hmedo | Riego, Lluvia)
P (Riego | Estacin lluviosa)
P (Riego | Estacin lluviosa)
P (Lluvia | Estacin lluviosa)
P (Lluvia | Estacin lluviosa)
P (Estacin lluviosa)
Probabilidad
0.95
0.9
0.8
0.1
0.0
1.0
0.9
0.1
0.5
Inteligencia Artificial.
Ejemplo.
Para ilustrar el uso del teorema de Bayes, supngase que un paciente puede estar sano (no tiene
enfermedad alguna) o tiene una de m1 enfermedades posibles {E1, . . . , Em1}. Por
simplicidad de notacin, sea E una variable aleatoria que puede tomar uno de m posibles valores,
{e1, . . . , em}, donde E = ei significa que el paciente tiene la enfermedad Ei, y E = em significa
que el paciente no tiene ninguna enfermedad. Supngase tambin que se tienen n sntomas {S1, . .
. , Sn}. Ahora, dado que el paciente tiene un conjunto de sntomas {s1, . . . , sk}, se desea calcular
la probabilidad de que el paciente tenga la enfermedad Ei, es decir, E = ei. Entonces, aplicando el
teorema de Bayes, se obtiene
Inteligencia Artificial.
probabilidad a priori: 440 de 1,000 pacientes vomitan. Por ello, p(v) = card(v)/N = 440/1,000
= 0.44, donde card(v) denota el nmero de pacientes de la base de datos que vomitan. Esto
significa que el 44% de los pacientes vomitan.
Verosimilitud: El 50% de los pacientes que tienen la enfermedad vomitan, puesto que p(v|g) = card(v,
g)/card(g) = 350/700 = 0.5, mientras que slo 30% de los pacientes que no tienen la enfermedad vomitan,
puesto que p(v|g) = card(v, g)/card(g) = 9 0/300 = 0.3.
Verosimilitud: El 45% de los pacientes que tienen la enfermedad vomitan y pierden peso, p(v, p|g) =
card(v, p, g)/card(g) = 315/700 = 0.45, mientras que solo el 12% de los que no tienen la enfermedad
vomitan y pierden peso, p(v, p|g) = card(v, p, g)/card(g) = 35/300 0.12.
Puesto que la probabilidad inicial de que el paciente tenga adenocarcinoma gstrico, p(g) = 0.7, no es
suficientemente alta para hacer un diagnstico (ntese que tomar una decisin ahora implica una
probabilidad 0.3 de equivocarse), el doctor decide examinar al paciente para obtener ms informacin.
Supngase que los resultados del examen muestran que el paciente tiene los sntomas vmitos (V = v) y
prdida de peso (P = p). Ahora, dada la evidencia (el paciente tiene esos sntomas), cual es la
probabilidad de que el paciente tenga la enfermedad? Esta probabilidad a posteriori puede ser obtenida
de la probabilidad a priori y de las verosimilitudes, aplicando el teorema de Bayes en dos etapas, como
sigue:
Tras observar que V = v la probabilidad a posteriori es
Inteligencia Artificial.
SEXTA UNIDAD:
REDES NEURONALES
6.1.
6.2.
6.3.
6.4.
6.5.
Inteligencia Artificial.
ms significativos. Esta creencia ha generado gran inconformidad por parte de muchos pioneros
especialmente por aquellos que han estado trabajando muchos aos en la oscuridad.
Para 1986, con la publicacin del libro "PDP" (que significa procesamiento paralelo distribuido,
volmenes l y ll), editado por David Rumelhart el camino fue abierto.
En 1987, se realizo la primera conferencia abierta sobre redes neuronales del I.E.E.E. (1700
participantes) fue hecha en San Diego (anteriormente ha habido conferencias solo que son
extremadamente limitadas por el numero de participantes), y la Sociedad Internacional de Redes
neuronales fue formada en 1988 es seguida por la computacin neuronal en 1989 y el I.E.E.E.
Transaccin sobre Redes Neuronales en 1990. Y seguidas por muchas otras.
A principios de 1987, muchas universidades anunciaron la formacin de institutos de
investigacin y programas de educacin acerca de la neurocomputacion. Alrededor de la
neurocomputacion se hace una interesante historia pero el camino aun se esta desarrollando.
Como dijo Winston Churchill estamos al final del principio.
Redes neuronales
artificiales
Neuronas
Conexiones sinpticas
Efectividad de la sinapsis
Efecto excitatorio o inhibitorio
Estimulacin total
Activacin (tasa de disparo)
Unidades de proceso
Conexiones ponderadas
Peso de las conexiones
Signo del peso de una conexin
Entrada total ponderada
Funcin de activacin (salida)
Una neurona es una clula viva, que consta de un cuerpo celular ms o menos esfrico, de 5 a 10
micras de dimetro, del que sale una rama principal llamada axn, y varias ramas ms cortas
llamadas dendritas. A su vez, el axn puede producir ramas en torno a su punto de arranque, y
con frecuencia se ramifica extensamente cerca de su extremo.
1
Vase: http://www.gc.ssr.upm.es/inves/neural/ann2/abrtions.htm
Inteligencia Artificial.
Las dendritas y el cuerpo celular reciben seales de entrada; el cuerpo celular las combina e
integra y emite unas seales de salida. El axn transporta esas seales a los terminales axnicos,
que se encargan de distribuir informacin a un nuevo conjunto de neuronas. Una neurona recibe
informacin de miles de otras neuronas, y a su vez, enva informacin a miles de neuronas ms.
Se calcula que en el cerebro existen 1015 conexiones.
Estas seales que reciben y emiten las neuronas son de dos tipos distintos de naturaleza: elctrica
y qumica. La seal generada por la neurona y transportada a lo largo del axn es un impulso
elctrico, mientras la seal que se transmite entre los terminales axnicos de una neurona y las
dendritas de la neurona siguiente es de origen qumico; concretamente se realiza mediante
molculas de sustancias transmisoras (neurotransmisores) que fluyen a travs de unos contactos
especiales, llamados sinapsis, que tiene la funcin de receptor y estan localizados entre los
terminales axnicos y las dendritas de la neurona siguiente.
Existen numerosas formas de definir lo que son las redes neuronales artificiales, desde las
definiciones cortas y genricas hasta las que intentan explicar ms detalladamente lo que significa
red neuronal o computacin neuronal, veamos algunas de estas:
Computacin neuronal es una nueva forma de computacin, inspirada en modelos biolgicos.
Una red neuronal artificial es un sistema de computacin hecho por un gran nmero de
elementos simples, elementos de procesos muy interconectados, los cuales procesan informacin
por medio de su estado dinmico como respuestas a entradas externas.
Redes neuronales artificiales son redes interconectadas masivamente en paralelo de elementos
simples (usualmente adaptativos ) y con organizacin jerrquica, las cuales intentan interactuar
con los objetos del mundo real del mismo modo que lo hace el sistema nervioso biolgico.
En las redes neuronales biolgicas, las clulas neuronales (neuronas) corresponden a los
elementos de procesos anteriores. Las interconexiones se realizan por medio de las ramas de
salida (axones) que producen un nmero variable de conexiones (sinapsis) con otras neuronas.
Las redes neuronales son sistemas de simples elementos de proceso muy interconectados.
El Primer modelo de red neuronal fue propuesto en 1943 por McCulloch y Pitts en trminos de
un modelo computacional de "actividad nerviosa". El modelo de McCulloch-Pitts es un modelo
binario, y cada neurona tiene un escaln o umbral prefijado. Este primer modelo sirvi de
ejemplo para los modelos posteriores de Jhon Von Neumann, Marvin Minsky, Frank Rosenblatt,
y muchos otros.
Una primera clasificacin de los modelos de ANNs podra ser, atendiendo a su similitud con la
realidad biolgica:
Inteligencia Artificial.
Los modelos de tipo biolgico. Este comprende las redes que tratan de simular los
sistemas neuronales biolgicos as como las funciones auditivas o algunas funciones
bsicas de la visin.
El modelo dirigido a aplicacin. Estos modelos no tienen porque guardar similitud con los
sistemas biolgicos. Sus arquitecturas estn fuertemente ligadas a las necesidades de las
aplicaciones para las que son diseados.
El objetivo principal de de las redes neuronales de tipo biolgico es desarrollar un elemento
sinttico para verificar las hiptesis que conciernen a los sistemas biolgicos.
Las neuronas y las conexiones entre ellas (sinpsis) constituyen la clave para el procesado de la
informacin. Observe la figura:
Inteligencia Artificial.
La neurona recoge las seales por su sinpsis sumando todas las influencias excitadoras e
inhibidoras. Si las influencias excitadoras positivas dominan, entonces la neurona da una seal
positiva y manda este mensaje a otras neuronas por sus sinpsis de salida. En este sentido la
neurona puede ser modelada como una simple funcin escaln f(.). Como se muestra en la
siguiente figura, la neurona se activa si la fuerza combinada de la seal de entrada es superior a
un cierto nivel, en el caso general el valor de activacin de la neurona viene dado por una funcin
de activacin f(.)
Es generalmente admitido que las sinpsis pueden ser modificadas por la experiencia, es decir,
por aprendizaje. Para su anlisis, es conveniente considerar una sola neurona con sus sinpsis.
Esta unidad es llamada perceptron, y constituye la base de las redes de neuronas.
Las ANNs dirigidas a aplicacin
estn en general poco ligadas a las
redes neuronales biolgicas. Ya que
el conocimiento que se posee sobre el
sistema nervioso en general no es
completo, se han de definir otras
funcionalidades y estructuras de
conexin distintas a las vistas desde
la
perspectiva
biolgica.
Las
caractersticas principales de este tipo
de ANNs son los siguientes:
1. Auto
Organizacin
y
Adaptatividad: utilizan algoritmos de aprendizaje adaptativo y auto organizacin, por lo
que ofrecen posibilidades de procesado robusto y adaptativo.
2. Procesado No Lineal: aumenta la capacidad de la red de aproximar, clasificar y su
inmunidad frente al ruido.
3. Procesado paralelo: normalmente se usa un gran nmero de clulas de procesado por el
alto nivel de interconectividad.
Estas caractersticas juegan un importante papel en las ANNs aplicadas al procesado de seal e
imagen. Una red para una determinada aplicacin presenta una arquitectura muy concreta, que
comprende elementos de procesado adaptativo masivo paralelo combinadas con estructuras de
interconexin de red jerrquica.
Los componentes ms importantes de una red neuronal artificial son:
Inteligencia Artificial.
Regla de propagacin.
Funcin de transferencia.
Regla de activacin.
Regla de aprendizaje.
Nmero de
neuronas por nivel
Nmero de niveles
Grada de
conectividad
Tipo de conexiones
(Hacia atrs, hacia delante, lateral)
Patrones de conexin: La conectividad entre los nodos de una red neuronal artificial est
relacionada con la forma en que las salidas de las neuronas estn canalizadas para
convertirse en entradas de otras neuronas,
Flujo de informacin:
Debido a su constitucin y a sus fundamentos, las redes neuronales artificiales presentan un gran
nmero de caractersticas semejantes a las del cerebro. Esto hace que ofrezcan numerosas
ventajas y que este tipo de tecnologa se este aplicando en diferentes reas. Estas ventajas
incluyen:
Aprendizaje adaptativo: capacidad de aprender a realizar tareas basadas en un entrenamiento o
una experiencia inicial.
Inteligencia Artificial.
El perceptron est constituido por las N entradas provenientes de fuentes externas, las N
conexiones o pesos w = (w1,w2,,wN) y la salida . En realidad un perceptron es la red
neuronal ms simple posible: aquella donde no existen capas ocultas. Para cada
configuracin de los estados de las neuronas de entrada (estmulo) la respuesta del
perceptron obedece la siguiente dinmica: sumar los potenciales sinpticos wij (ver
figura 2). Esta suma ponderada, tambin llamada campo, se escribe:
Si hi > qi, la respuesta de la neurona es = +1; si no, es inactiva y si = -1. Si tanto las
entradas como las salidas son binarias; se dice entonces que el perceptron realiza una
funcin booleana de sus entradas. Pero otras posibilidades han sido estudiadas (entradas
reales, salidas sigmoideas en funcin del campo, etc.), en vista de las aplicaciones. Con
una arquitectura tan simple como la del perceptron no se pueden realizar ms que una
clase de funciones booleanas muy simples, llamadas linealmente separables. Son las
funciones en las cuales los estados de entrada con salida positiva pueden ser separados de
aquellos a salida negativa por un hiperplano. Un hiperplano es el conjunto de puntos en el
espacio de estados de entrada, que satisfacen una ecuacin lineal. En dos dimensiones, es
una recta, en tres dimensiones un plano, etc. La figura 3 presenta dos ejemplos de
funciones booleanas con 2 entradas (N=2). El ejemplo 3b no es realizable por un
perceptron. Si se quieren realizar funciones ms complejas con redes de neuronas, es
necesario intercalar neuronas ocultas entre las entradas y la salida.
Inteligencia Artificial.
Inteligencia Artificial.
Inteligencia Artificial.
Los estudios empricos muestran la eficiencia de las redes neuronales con datos basados en lgica
difusa, patrones o rasgos ocultos para la mayora de las tcnicas incluida la capacidad humana,
datos que exhiben no linealidad e informacin en la que se ha detectado caos.
La eleccin entre los diferentes sistemas de ayuda a la toma de decisiones depende del tipo de
tarea a realizar. Tambin el nivel al que se toman las decisiones afecta la eleccin del tipo de
sistema ms apropiado. Simn (1960) clasific las decisiones en estructuradas y no estructuradas:
las decisiones estructuradas son repetitivas, rutinarias y existe un procedimiento definido para
abordarlas, por el contrario, en las decisiones no estructuradas el decisor debe proporcionar
juicios y aportar su propia evaluacin.
Ms recientemente Gorry y Scott-Morton (1971) han propuesto un esquema que relaciona el tipo
de decisin (estructurada, semiestructurada y no estructurada) y el nivel organizacional (control
operativo, de gestin y estratgico) con la herramienta a utilizar. Lgicamente en el nivel
operativo dominan las decisiones estructuradas, en el nivel de gestin las semiestructuradas y en
el estratgico las no estructuradas, formando una diagonal. En la figura siguiente hemos
actualizado este esquema incorporando las ltimas tecnologas de la informacin, e incluso
anticipando lo que puede ser un futuro prximo.
Redes de Autoproceso
Procesamiento Numrico
Sistemas Asociativos
Sistemas Distribuidos
Redes Neuronales
Procesamiento Simblico
Redes Subsimblicas
Inteligencia Artificial.
La Inteligencia Artificial clsica (IA) ha generado una cierta decepcin al tratar de explicar los
procesos cognoscitivos debido a que la representacin usando reglas se aleja mucho de cualquier
inspiracin biolgica por una parte y por otra conduce a la creacin de sistemas que son
demasiado rgidos y al mismo tiempo extremadamente frgiles.
El reconocimiento, el aprendizaje y la memoria son mecanismos cognoscitivos que no pueden ser
explicados por medio del simbolismo de la IA, sino ms bien en funcin de unidades simples
pero altamente interconectadas de las cuales emerge un comportamiento complejo, paralelo y
auto-organizado, sin necesidad de tener reglas explcitas de decisin ni de un procesador maestro
o motor de inferencia.
La secuenciacin y la rigidez de reglas son dos aspectos que han sido duramente atacados en las
tcnicas de IA. La inmensa ventaja de los mtodos conexionistas comparado con los mtodos
tradicionales de IA es la siguiente: no es necesario conocer ni una expresin ni una construccin
de la funcin a modelar, tan solo se requiere disponer de un conjunto de aprendizaje satisfactorio
para que la red pueda aproximar esta funcin aplicando una regla de aprendizaje. As, muchos
fenmenos cognoscitivos han logrado ser modelados a travs de sistemas conexionistas.
Por otra parte, en lo que concierne a la aplicacin tecnolgica, las redes de neuronas son
actualmente ampliamente utilizadas en aplicaciones tan variadas como la previsin, la
clasificacin, el diagnstico automtico, el procesamiento de seales, el reconocimiento de
formas, la compresin de datos, la optimizacin combinatoria, la robtica y la bsqueda de
documentos, entre otras.
Existen diferencias relevantes entre redes neuronales con respecto a lo que se entiende como
inteligencia artificial, las cuales se destacan a continuacin:
Representacin del conocimiento: En IA se utilizan mtodos de representacin del
conocimiento (reglas de produccin, marcos, reglas semnticas, etc ) generalmente localizados:
tomos de conocimiento, concepto asociado a una regla, etc. Esto hace que la gestin de las bases
de conocimiento sea problemtica: aadir una regla o suprimir un dato puede tener consecuencias
imprevisibles sobre los dems datos.
Actualmente se piensa que los conocimientos se presentan de forma distribuida en el cerebro. De
esto se puede deducir algunas consecuencias:
a) La red puede crear su propia organizacin de la informacin.
b) Como se dispone de un nmero finito de neuronas, varios hechos se memorizan por la
activacin de clases de neuronas no disjuntas.
c) Mejor tolerancia a fallos, la perdida de neuronas no implica que se deje de recordar, por
tanto, debe existir informacin redundante.
Inteligencia Artificial.
Inteligencia Artificial.
Originalmente la red neuronal no dispone de ningn tipo de conocimiento til almacenado. Para
que ejecute una tarea es preciso entrenar o ensear a la red neuronal. El entrenamiento se realiza
mediante patrones-ejemplo. Existen dos tipos de aprendizaje: supervisado y no supervisado. Si la
red utiliza un tipo de aprendizaje supervisado debemos proporcionarle parejas de patrones
entrada-salida y la red neuronal aprende a asociarlos. En terminologa estadstica equivale a los
modelos en los que hay vectores de variables independientes y dependientes. Si el entrenamiento
es no supervisado, nicamente debemos suministrar a la red los datos de entrada para que
extraiga los rasgos caractersticos esenciales. Estas redes neuronales no supervisadas estn
relacionadas con modelos estadsticos como el anlisis de conglomerados o las escalas
multidimensionales.
Durante la fase de aprendizaje en la mayor parte de los modelos se produce una variacin de los
pesos sinpticos, es decir, de la intensidad de interaccin entre las neuronas, lo que en
terminologa estadstica equivale a calcular los coeficientes de las funciones de ajuste.
INCONVENIENTES
Los sistemas neuronales presentan ciertos inconvenientes. Uno importante es que habitualmente
realizan un complejo procesamiento que supone millones de operaciones, por lo que no es posible
seguir paso a paso el razonamiento que les ha llevado a extraer sus conclusiones. Sin embargo, en
redes pequeas, mediante simulacin o por el estudio de los pesos sinpticos s es posible saber,
al menos, qu variables de las introducidas han sido relevantes para tomar la decisin. Falta
todava mucho por estudiar en el modo de operacin de las redes neuronales.
Otro problema es que al ser una herramienta novedosa y en pleno desarrollo, no se trata de una
disciplina con un cuerpo formal, coherente y establecido, por lo que el investigador se encuentra
con muchos problemas a los que todava no se ha encontrado solucin.
6.4. REDES NEURONALES Y MECANISMOS DE APRENDIZAJE (SUPERVISADO
NO SUPERVISADO)
Los cambios que se producen durante el proceso de aprendizaje se reducen a la destruccin,
modificacin y creacin de conexiones entre las neuronas. En los modelos de redes neuronales
artificiales, la creacin de una nueva conexin implica que el peso de la misma pasa a tener un
valor distinto de cero. De la misma forma, una conexin se destruye cuando su peso pasa a ser
cero.
Un aspecto importante respecto al aprendizaje en las redes neuronales es el conocer como se
modifican los valores de los pesos; es decir, cuales son los criterios que se sigue para cambiar el
valor asignado a las conexiones cuando se pretende que la red aprende una nueva informacin.
Estos criterios determinan lo que se conoce como a regla de aprendizaje de la red.
Inteligencia Artificial.
Se suele considerar dos tipos de reglas: las que responden a los que habitualmente se conoce
como aprendizaje supervisado, y las correspondientes a un aprendizaje no supervisado. La
diferencia entre ambos tipos estriba en la existencia o no de un agente externo (supervisor) que
controle el proceso de aprendizaje de la red.
b) Aprendizajes no supervisados
Las redes con aprendizaje no supervisado (autosupervisado) no requieren influencia externa para
ajustar los pesos de las conexiones entre sus neuronas. La red no recibe ninguna informacin por
parte del entorno que le indique si la salida generada en respuesta a una determinada entrada es o
no correcta; por ello, suele decirse que estas redes son capaces de autoorganizarse.
Se consideran dos tipos de algoritmos de aprendizaje no supervisado:
Inteligencia Artificial.
Inteligencia Artificial.
Inteligencia Artificial.
SPTIMA UNIDAD:
ALGORITMOS GENTICOS
7.1. Introduccin
7.2. Algoritmos Genticos
7.2.1 Representacin de Hiptesis
7.2.2 Operadores Genticos
7.2.3 Funcin de evaluacin y seleccin
7.3. Bsqueda en el espacio de Hiptesis
7.4. Programacin Gentica
7.4.1 Representacin de Programas
7.5. Modelos de evolucin y aprendizaje
7.5.1 Evolucin Lamarckiana
7.5.2 El efecto Baldwin
7.6. Paralelismo en Algoritmos Genticos
7.1. INTRODUCCIN
Los algoritmos genticos (AG) proporcionan un mtodo de aprendizaje basado en la analoga con
la evolucin de las especies. Los AG generan un conjunto de hiptesis mediante la mutacin y
recombinacin de parte del conjunto de hiptesis conocido. En cada paso el conjunto de hiptesis
conocido como poblacin actual se renueva remplazando una proporcin de esta poblacin por
los sucesores de las hiptesis ms adecuadas (mediante el uso de una funcin de evaluacin).
La popularidad de los AG se debe en parte a que la evolucin es un mtodo robusto y bien
probado dentro de los sistemas biolgicos naturales. Adems son fcilmente paralelizables, lo
que supone una ventaja gracias al abaratamiento actual de los costes en hardware. Por otra parte,
los AG pueden realizar bsquedas en espacios de hiptesis que contienen complejas interacciones
entre las distintas partes, donde el impacto de cada parte sobre la funcin de evaluacin es difcil
de especificar.
Aunque no se garantice encontrar la solucin ptima, los AG generalmente encuentran soluciones
con un alto grado de acierto.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
B
(A
or
B)
Atributo (111) = puede tomar el valor A, B C (A or B or C). No importa el valor del atributo.
De esta forma podemos representar fcilmente conjunciones de varios atributos para expresar
restricciones (precondiciones) mediante la concatenacin de dichas cadenas de bits.
Inteligencia Artificial.
Ejemplo:
Tiempo
puede
ser
Despejado,
Nublado
o
Lluvioso.
Viento
puede
ser
Fuerte
o
Moderado.
(Tiempo = Nublado Lluvioso) y (Viento = Fuerte) se representara con la siguiente cadena: 011
10.
Las postcondiciones de las reglas se pueden representar de la misma forma. Por ello una regla se
puede describir como la concatenacin de la precondicin y la postcondicin.
Ejemplo:
Jugar al Tenis puede ser Cierto o Falso.
Si Viento = Fuerte entonces Jugar al Tenis = Cierto se representara mediante 111 10 10.
Donde los tres primeros bits a uno indican que el atributo Tiempo no afecta a nuestra regla.
Cabe destacar que una regla del tipo 111 10 11 no tiene demasiado sentido, puesto que no impone
restricciones en la postcondicin. Para solucionar esto, una alternativa es codificar la
postcondicin con un nico BIT (1 = Cierto y 0 = Falso).
Otra opcin es condicionar los operadores genticos para que no produzcan este tipo de cadenas o
conseguir que estas hiptesis tengan una adecuacin muy baja (segn la funcin de evaluacin)
para que no logren pasar a la prxima generacin de hiptesis.
Mascara de Cruce
11101001000
Hijos
11101010101
11111000000
00001010101
00001001000
Inteligencia Artificial.
Cruce Doble:
Cadenas padre
Mascara de Cruce
11101001000
Hijos
11001011000
00111110000
00001010101
00101000101
El operador mutacin produce un nuevo hijo de un solo padre cambiando el valor de uno de sus
bits elegido al azar. Generalmente se aplica despus de hacer uso del operador cruce.
Otros operadores genticos son AddAlternative y DropCondition. El primero de ellos cambia
un BIT de un atributo de 0 a 1, es decir, permite que el atributo pueda tomar el valor representado
por dicho BIT. El segundo pone todos los bits de un atributo a 1, con lo que elimina la restriccin
impuesta por el atributo.
Una posibilidad interesante que surge con la aplicacin de estos operadores, es la de incluir
nuevos bits en las cadenas que representan las hiptesis y que indiquen que operadores pueden
ser aplicados a dicha hiptesis (aadiendo un BIT por operador). Como estos bits van a sufrir
modificaciones a causa de los operadores aplicados a la cadena, estaremos alterando
dinmicamente los mtodos de bsqueda del algoritmo gentico.
Inteligencia Artificial.
Inteligencia Artificial.
Inteligencia Artificial.
Inteligencia Artificial.
EJERCICIO
Disear un algoritmo gentico que aprenda a clasificar conjunciones de reglas ara el problema
Jugar al Tenis descrito en el captulo 3 [nota]. Describe detalladamente la codificacin de la
cadena de bits para las hiptesis y el conjunto de operadores de cruce.
La expresin que soluciona el problema es la siguiente:
(Tiempo = soleado y Humedad=Normal) o
(Tiempo = nublado) o
(Tiempo = lluvioso y Viento=Debil)
Los posibles valores de los atributos son:
Tiempo = (Soleado,Nublado,Lluvioso)
Humedad=(Alta,Normal)
Viento=(Fuerte,Debil)
JugarTenis=(Si,No)
Por lo tanto, para la cadena de bits de las hiptesis usaremos tres bits para Tiempo, dos para
Humedad, dos para Viento y uno para Jugar tenis.
Ejemplo:
Si (Tiempo = soleado y Humedad=Normal y Viento = fuerte) -> JugarTenis=Si
se expresara como: 100 01 10 1
Inteligencia Artificial.
Como la solucin buscada es la disyuncin de tres de estas reglas, las cadenas de bits de nuestras
hiptesis estarn formadas por la concatenacin de tres cadenas.
Ejemplo:
100 01 10 1 + 010 10 10 1 + 100 10 01 1
En cuanto al operador de cruce, elegiremos uno de tipo uniforme con la siguiente mscara:
Mscara de cruce = 11000011 11000011 11000011
Para elegir las hiptesis que pasarn a la siguiente generacin, o que sern elegidas para sufrir las
operaciones de cruce, usaremos una seleccin probabilstica tal que: ver Figura 1
A la hora de implementar el algoritmo, haremos uso de los siguientes parmetros:
r= % poblacin que sufrir la operacin de cruce
p= nmero de hiptesis de la poblacin
m= % de individuos (hiptesis) que mutan
Durante las iteraciones del algoritmo:
a) (1-r)p pasarn a la siguiente generacin (Ps) intactos
b) (r*p)/2 parejas de hiptesis realizarn la operacin de cruce
c) Y el m porciento de la nueva poblacin sufrirn mutaciones. Este m porciento se elige
con una probabilidad uniforme.
Funcin Fitness (funcin de evaluacin)
Dispondremos de una base de datos de entrenamiento, compuesta por cadenas de 7 bits tal que
nos indique que condiciones habrn de darse para jugar o no al tenis.
Ejemplo:
100 01 10 1 = (Tiempo = soleado y Humedad=Normal) -> Si
En nuestro ejemplo, el nmero de combinaciones posible es 3x2x2=12 (lo cual no es mucho y
nos permite tener una muestra de entrenamiento completa).
El objetivo de la funcin es el de comprobar el porcentaje de reglas de entrenamiento que nuestra
hiptesis es capaz de clasificar correctamente para, de esta forma, dotar a cada individuo de un
valor numrico indicativo de su precisin (ajuste al modelo buscado).
Nuestra hiptesis (individuo) se puede representar en tres partes (A,B y C) donde Z es el bit que
indica si se juega o no al tenis en cada caso.
Inteligencia Artificial.
A
x x x x x x x x
z
B
x x x x x x x x
z
C
x x x x x x x x
z
Nuestra funcin de evaluacin tomar una hiptesis y la procesar con todo el conjunto de
entrenamiento. Una cadena de entrenamiento se representa de la siguiente forma (donde R es el
BIT que indica si se juega o no al tenis):
Entrenamiento
x x x x x x x x
Data (7 bits)
R
Esta cadena de entrenamiento se compara con cada una de las partes de la hiptesis para ver si
alguna de las tres la clasifica correctamente. Para saber si una parte clasifica bien una regla de
entrenamiento procederemos de la siguiente forma:
Si R=1 entonces
Si ( (Entrenamiento AND A) = Entrenamiento) devolver SI
Sino devolver NO
Si R=0 entonces
Si ( (Data AND A) = Data)
Si R=Z devolver SI
Sino devolver NO
Sino devolver NO
Si se ha devuelto SI, procedemos con el siguiente dato de entrenamiento. Si se ha devuelto NO,
evaluamos la siguiente parte del individuo (B y despus C).
Para cada individuo, la funcin de evaluacin realiza esta tarea con todos los datos de
entrenamiento, devolviendo un nmero entre 0 y 1 que indique el porcentaje de clasificaciones
correctas de la hiptesis actual (0% a 100%). As pues, cada individuo estar asociado a un valor
numrico que usar posteriormente la funcin de seleccin.
Funcin AG (Fitness,Umbral,p,r,m)
{
Inicializar poblacin P.
Para cada hiptesis en P, calcular Fitness.
Mientras que max(Fitness) < Umbral hacer
Seleccionar (1-r)p individuos de P que pasan a Ps.
Elegir (r*p)/2 parejas de P y aplicarles operadores de cruce. Aadir los hijos a Ps.
Elegir m porciento sobre Ps y aplicar mutacin.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Inteligencia Artificial.
P <- Ps
Para cada hiptesis en P, calcular Fitness.
Fin mientras
Devolver la hiptesis con mayor fitness.
}
En nuestro caso el Umbral ser 1 (100% de clasificaciones correctas) ya que disponemos en la
base de entrenamiento de todas las combinaciones posibles (algo que no ocurrir en problemas
reales y no de juguete, como es ste)
Nota: Se trata de un ejemplo sencillo en el que una determinada persona juega al tenis siempre y
cuando se cumplan unas determindas condiciones atmosfricas.
CONCLUSIONES
Como hemos podido observar, la principal ventaja de los algoritmos genticos radica en su sencillez. Se
requiere poca informacin sobre el espacio de bsqueda ya que se trabaja sobre un conjunto de soluciones
o parmetros codificados (hiptesis o individuos). Se busca una solucin por aproximacin de la
poblacin, en lugar de una aproximacin punto a punto. Con un control adecuado podemos mejorar la
aptitud promedio de la poblacin, obteniendo nuevos y mejores individuos y, por lo tanto, mejores
soluciones.
Se consigue un equilibrio entre la eficacia y la eficiencia. Este equilibrio es configurable mediante los
parmetros y operaciones usados en el algoritmo. As, por ejemplo, bajando el valor del umbral
conseguiremos una rpida solucin a cambio de perder en calidad. Si aumentamos dicho valor,
tendremos una mejor solucin a cambio de un mayor tiempo consumido en la bsqueda. Es decir,
obtenemos una buena relacin entre la calidad de la solucin y el costo.
Quizs el punto ms delicado de todo se encuentra en la definicin de la funcin de evaluacin. Al igual
que en el caso de la heurstica, de su eficacia depende el obtener buenos resultados. El resto del proceso es
siempre el mismo para todos los casos.
La programacin mediante algoritmos genticos suponen un nuevo enfoque que permite abarcar todas
aquellas reas de aplicacin donde no sepamos como resolver un problema, pero si seamos conscientes de
que soluciones son buenas y cuales son malas.
Desde aplicaciones evidentes, como la biologa o la medicina, hasta otros campos como la industria
(clasificacin de piezas en cadenas de montaje). Los algoritmos genticos poseen un importante papel en
aplicaciones de bsqueda y optimizacin, pero desde nuestro punto de vista, es en el aprendizaje
automtico donde encuentra un estupendo marco de trabajo. La capacidad que poseen para favorecer a los
individuos que explican bien los ejemplos, a costa de los que no lo hacen, consigue una nueva generacin
con mejores reglas y, por lo tanto el sistema ser capaz de ir aprendiendo a conseguir mejores resultados.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.