Вы находитесь на странице: 1из 179

Inteligencia Artificial.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

PRIMERA UNIDAD:

GENERALIDADES EN INTELIGENCIA ARTIFICIAL.


1.1 Concepto de Inteligencia Artificial.
1.2 Alcance de la Inteligencia Artificial.
a)
b)
c)
d)
e)

Percepcin
Sistemas expertos.
Hardware (Memoria, rapidez y arquitectura)
Robtica (Automatizacin).
Ciberntica (Interdisciplina para control de automatizacin)

1.3 Algunos programas de la Inteligencia Artificial.


a) Eliza.
b) Mycin
c) Dendral
1.4 El proyecto Japons de la Quinta Generacin.
1.1. INTRODUCCIN.
En primer lugar, revisemos algunas definiciones generales de inteligencia, antes de intentar definir
inteligencia artificial. Inteligencia es la aptitud de crear relaciones. Esta creacin puede darse de
manera puramente sensorial, como en la inteligencia animal; tambin puede darse de manera
intelectual, como en el ser humano, que pone en juego el lenguaje y los conceptos. Tambin se la
puede conceptuar como la habilidad para adquirir, comprender y aplicar conocimiento; o como la
aptitud para recordar, pensar y razonar.
La IA es una nueva generacin de tecnologa informtica, caracterizada no slo por su arquitectura
(hardware), sino tambin por sus capacidades. El nfasis de generaciones previas fue en las
computaciones numricas para aplicaciones cientficas o de negocios. La nueva generacin de
tecnologa informtica incluye adems la manipulacin simblica, con el objetivo de emular el
comportamiento inteligente; y, la computacin en paralelo, para tratar de conseguir resultados
prcticamente en tiempo real. La capacidad predominante de la nueva generacin, tambin
conocida como la Quinta Generacin, es la habilidad de emular (y tal vez en algunos casos
superar) ciertas funciones inteligentes del ser humano. Por ejemplo:
Aprendizaje: Captacin automtica de conocimientos.
Razonamiento:

Sistemas basados en conocimientos.


Bases de datos inteligentes.
Prueba de teoremas y juegos.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
Percepcin:

Comprensin de lenguaje natural.


Interpretacin de escenas visuales (Visin por computadora).

Locomocin y Manipulacin: Realizar procesos mecnicos y tareas manuales (Robtica).


Creacin: Generacin, verificacin, depuracin y optimizacin automtica de programas.
Algunas de las tareas que estos sistemas realizan en el campo de la IA son:
Tareas generales

Percepcin: Visin, Fonemas.


Lenguaje Natural: Comprensin, generacin y traduccin.
Razonamiento de sentido comn.
Control de robots.

Tareas formales

Juegos: Ajedrez, Backgammon, Damas.


Matemticas: Geometra, Lgica, Clculo Integral.

Tareas expertas

Ingeniera: Diseo, Localizacin de fallas, Planeamiento.


Anlisis Cientfico.
Diagnstico Mdico.
Anlisis Financiero.

La inteligencia artificial, en su sentido ms amplio, indica la capacidad de un artefacto de


realizar los mismos tipos de funciones que caracterizan al pensamiento humano. La
posibilidad de desarrollar un artefacto as ha despertado la curiosidad del ser humano desde
la antigedad; sin embargo, no fue hasta la segunda mitad del siglo XX, cuando esa
posibilidad se materializ en herramientas tangibles.
La Inteligencia Artificial comenz como el resultado de la investigacin en psicologa
cognitiva y lgica matemtica. Se ha enfocado sobre la explicacin del trabajo mental y
construccin de algoritmos de solucin a problemas de propsito general. Punto de vista
que favorece la abstraccin y la generalidad.
El trmino inteligencia artificial (IA) fue acuado en 1956 por John McCarthy, del Instituto
de Tecnologa de Massachussets. En ese ao se celebr la conferencia de Dartmouth, en
Hanover (Estados Unidos), y en ella, McCarthy, Marvin Minsky, Nathaniel Rochester y
Claude E. Shannon establecieron las bases de la inteligencia artificial como un campo
independiente dentro de la informtica. Previamente, en 1950, Alan M. Turing haba
publicado un artculo en la revista Mind, titulado Computing Machinery and Intelligence
(Ordenador e inteligencia), en el que reflexionaba sobre el concepto de inteligencia
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

1.2. CRONOLOGA DE LA IA.


La inteligencia artificial es el estudio de la inteligencia como computacin (Hayes.)
Es la ciencia de hacer mquinas que hacen cosas que, realizadas por el hombre,
requieran el uso de inteligencia (Minski.)
El estudio de las ideas que permiten a los ordenadores ser inteligentes (Winston.)
Conjunto de tcnicas encaminadas al diseo y la construccin de sistemas
informticos que exhiban algn aspecto de inteligencia (Luis Arranz.)
El nacimiento de la inteligencia artificial se refiere a la conferencia de Darwouth de
1956. Se reunieron ciertos investigadores de informtica para intercambiar sus
ideas.
En 1957 aparece un programa que es el General Power Solver (GPS) desarrollado
por Newell, Shan y Simon que era un intento de hacer un programa que resolviera
problemas. Todo qued en un fracaso.
En 1958 aparece un lenguaje llamado LISP de McCarthy.
En 1961 aparece un programa para jugar a las damas (Samel) que adems era capaz
de aprender cuantas ms partidas ganaba.
En 1965 se comienza a desarrollar DENTRAL, que es un sistema experto
relacionado con la qumica y es el primer S.E. (Sistema Experto.)
En 1966 aparece un programa de ajedrez creado por Greunblat.
En 1968 aparece un robot denominado SHAKEY con movimientos muy torpes.
En el 69 aparecen otros sistemas expertos: PROSPECTOR (yacimientos minerales),
MYCIN (enfermedades infecciosas.)
En 1975 aparece PROLOG (Colmenawer.)
1981: Conferencia de Tokyo
MITI
Robot
Superordenadores
Quinta generacin
MCC (Microelectronics and Computer technology Corporation)
SCS (Strategic Computing and Survivability)
MCNC (Microelectronics Center of Nort Carolina)
Proyecto Guerra de las galaxias
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

1.3. CONCEPTO DE INTELIGENCIA ARTIFICIAL.


No existe una definicin para la IA que tenga una aceptacin general, lo cual no es de
extraar ya que tampoco ha existido nunca una definicin universalmente aceptada de la
inteligencia humana. De las muchas definiciones de IA existentes tenemos:

Inteligencia Artificial

1.

La interesante tarea de lograr que las computadoras piensen... maquinas con


mentes, en su amplio sentido. (Haugeland, 1985.)

2.

Disciplina cientfico-tcnica que trata de crear sistemas artificiales capaces de


comportamientos que, de ser realizados por seres humanos, se dira que requieren
inteligencia.

3.

La automatizacin de actividades que vinculamos con procesos de pensamiento


humano, actividades tales como toma de decisiones, resolucin de problemas,
aprendizaje... (Bellman, 1978.)

4.

El estudio de las facultades mentales mediante el uso de modelos


computacionales. (Charniak y McDermott, 1985.)

5.

El estudio de los clculos que permiten percibir, razonar y actuar. (Winston,


1992.)

6.

Estudio de los mecanismos de la inteligencia y las tecnologas que lo sustentan.


(Newell)

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.

Un campo de estudio que se enfoca a la explicacin y emulacin de la conducta


inteligente en funcin de procesos computacionales. (Schalkoff, 1990.)

10. La rama de la ciencia de la computacin que se ocupa de la automatizacin de la


conducta inteligente. (Luger y Stubblefield, 1993).
Las primeras cinco definiciones se refieren a procesos mentales y al razonamiento, mientras
que las ultimas cinco a la conducta. La 1, 3, 5 y 7 miden la condicin deseable en funcin
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

Los computadores no pueden manejar (no contienen) verdaderos significados.


Los computadores no tienen autoconciencia (emociones, sociabilidad, etc.).
Un computador slo puede hacer aquello para lo que est programado.
Las mquinas no pueden pensar realmente.

Los esfuerzos de la Inteligencia Artificial (IA) estn encaminados tanto a la construccin de


entidades inteligentes como a su comprensin.
En 1843, Lady Ada Augusta Byron, patrocinadora de Charles Babbage plante el asunto de
si la mquina de Babbage poda "pensar".
Los primeros problemas que se trat de resolver fueron puzzles, juegos de ajedrez,
traduccin de textos a otro idioma.
Durante la II Guerra Mundial Norbert Wiener y John Von Neumann establecieron los
principios de la ciberntica en relacin con la realizacin de decisiones complejas y control
de funciones en mquinas.
La teora de la retroalimentacin en mecanismos, como por ejemplo un termostato que
regula la temperatura en una casa, tuvo mucha influencia. Esto an no era propiamente
Inteligencia Artificial. Se hizo mucho en traducciones (Andrew Booth y Warren Weaver),
lo que sembr la semilla hacia el entendimiento del lenguaje natural.
En el ao 1955 Herbert Simon, el fsico Allen Newell y J.C. Shaw, programador de la
RAND Corp. y compaero de Newell, desarrolla el primer lenguaje de programacin
orientado a la resolucin de problemas de la Inteligencia Artificial, el IPL-11. Un ao ms
tarde estos tres cientficos desarrollan el primer programa de Inteligencia Artificial al que
llamaron Logic Theorist, el cual era capaz de demostrar teoremas matemticos,
representando cada problema como un modelo de rbol, en el que se seguan ramas en
busca de la solucin correcta, que result crucial. Este programa demostr 38 de los 52
teoremas del segundo captulo de Principia Mathematica de Russel y Whitehead.
En 1956, con la ahora famosa conferencia de Dartmouth, organizada por John McCarthy y
en la cual se utiliz el nombre de inteligencia artificial para este nuevo campo, se separ la
Inteligencia Artificial de la ciencia del computador, como tal. Se estableci como
conclusin fundamental la posibilidad de simular inteligencia humana en una mquina.
En 1957 Newell y Simon continan su trabajo con el desarrollo del General Problems
Solver (GPS). GPS era un sistema orientado a la resolucin de problemas; a diferencia del
Logic Theorist, el cual se orient a la demostracin de teoremas matemticos, GPS no
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

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

Capacidad de usar detectores

Alta

Baja

Capacidad de ser creativo

Alta

Baja

Capacidad de aprender de la experiencia

Alta

Baja

Capacidad de adaptacin

Alta

Baja

Capacidad de permitirse el costo de adquirir Alta


experiencia

Baja

Capacidad de usar diversas fuentes de informacin

Alta

Alta

de Alta

Alta

Capacidad de realizar clculos complejos

Baja

Alta

Capacidad de transferir informacin

Baja

Alta

Capacidad de hacer una serie de clculos con rapidez y Baja


exactitud

Alta

Capacidad de adquirir
informacin externa

una

gran

cantidad

La IA tiene cuatro objetivos que alcanzar:

Sistemas que piensan como humanos.


Sistemas que actan como humanos.
Sistemas que piensan racionalmente.
Sistemas que actan racionalmente.

Desde el punto de vista de los objetivos, la IA puede considerarse en parte como ingeniera
y en parte como ciencia:

Como ingeniera, el objetivo de la IA es resolver problemas reales, actuando como


un conjunto de ideas acerca de cmo representar y utilizar el conocimiento, y de
cmo desarrollar sistemas informticos.

Como ciencia, el objetivo de la IA es buscar la explicacin de diversas clases de


inteligencia, a travs de la representacin del conocimiento y de la aplicacin que se
da a ste en los sistemas informticos desarrollados.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
Preguntas fundamentales de la IA.
1.
2.
3.
4.

Cuales son las suposiciones subyacentes acerca de la inteligencia?


Cules son las tcnicas tiles para la resolucin de problemas en IA?
A qu nivel de detalle se trata de modelar la inteligencia humana?
Cmo se puede saber que se ha tenido xito en el desarrollo de un sistema inteligente?

La hiptesis del sistema fsico de smbolos


Un sistema fsico de smbolos est formado por un conjunto de entidades bsicas (llamadas
smbolos), las cuales son patrones fsicos que pueden ocurrir como componentes de otro
tipo de entidad llamada expresin o estructura de smbolos. Una estructura de smbolos est
compuesta de un nmero de instancias de smbolos, relacionados en alguna forma fsica.
Adems de estas estructuras, el sistema tambin contiene una coleccin de procesos que
operan sobre las expresiones, para producir otras: procesos de creacin, modificacin,
reproduccin y destruccin.
Un sistema fsico de smbolos es una mquina que produce, a travs del tiempo, una
coleccin evolutiva de estructuras de smbolos.
Hiptesis: Un sistema fsico de smbolos tiene los medios necesarios y suficientes para
actuar en general de forma inteligente.
Importancia de la hiptesis
Representa una importante teora acerca de la naturaleza de la inteligencia humana.
Constituye la base sobre la que se fundamenta la creencia de que es posible construir
programas que pueden realizar tareas inteligentes como las que hacen las personas.
Agentes Inteligentes.
Agente, del latn agere, es "el que hace". En el mbito de
los negocios, un agente es "aquel que tiene por oficio
gestionar negocios ajenos".
Qu es un Agente Inteligente? Es todo aquello que puede
considerarse que percibe su ambiente mediante sensores y
que responde o acta en tal ambiente por medio de
efectores. Es decir: "un tipo de programa informtico que,
por encargo de un usuario u otro programa, realiza de
forma autnoma tareas que requieren cierto grado de inteligencia y aprendizaje".

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
El agente puede ser:

Autnomo: Un agente autnomo es un sistema anidado y parte integrante de un


ambiente (environment) y que detecta o percibe (percepts) datos ambientales,
momento a momento, y acta sobre l con la intencin de usar (actions) esos datos
para su propia tarea (task) o agenda, afectando as lo que va a detectar en el futuro,
sin intervencin de terceras partes (basado en Franklin y Greasser, 1996).

Racional, que hace lo correcto, siendo "ideal" si hipoteticamente lo consigue del


todo.- inteligente, siendo aceptable cualquiera de las numerosas definiciones de
inteligencia, por ejemplo, capaz de aprender/adaptivo.

Activo, o sea que tiene en cuenta la gama de acciones abiertas a la eleccin y sus
recompensas o penalidades.

Pro-activo donde ms all de actuar en respuesta a su mundo, lo hace tomando la


iniciativa.

Meta-intensivo (orientado a metas), que elige las acciones que lo conducen a la


meta, que intenta lograr prioritariamente.

Modelo-intensivo, que tiene internalizado un cierto modelo del mundo y lo respeta


en sus acciones.

Utilidad-intensivo, que se esfuerza por obtener un mximo de "felicidad".

Social-intensivo o de comunicacin, capaz de comunicarse en algun lenguaje de


comunicacin para agentes comprensible para otros.

De planificacin, parecido al agente problema-intensivo (orientado a resolver


problemas y tomar decisiones)

Softbot o sea robot basado en un software (como los robots bidimensionales de Beer
que mimetizan a un invertebrado).

Reactivo cuando percibe perturbaciones en su mundo y responde a esa percepcin


de una manera actualizada (adaptada).

Reflejo o tropista, que responde de inmediato y en forma bien definida a un


tropismo, a una percepcin alarmante o beneficiosa (as un agente para el
heliotropismo se orienta al Sol.)

La mayora de los agentes poseen las siguientes tres caractersticas: comunicacin,


inteligencia y autonoma.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

De manera intrnseca, los sistemas multiagentes tienen las ventajas tradicionales en la


solucin de problemas concurrente y distribuido, adems de incorporar patrones de
interaccin sofisticados:

Cooperacin: Trabajan juntos hacia un propsito comn.


Coordinacin: Organizan las actividades para solucin de problemas, de tal forma
que las interacciones dainas (en conflicto muto) sean evitadas; y las interacciones
benficas sean explotadas.
Negociacin: Llegan a acuerdos aceptables por todas las partes involucradas

Practique
con
el
agente
inteligente
(http://www.diligentdingo.com/DDingoLatest.exe)

de

inversiones

diligentdingo.

Existen cuatro programas de agentes:


1.
2.
3.
4.

Agente de reflejo simple.


Agente bien informado de todo lo que pasa.
Agentes basados en metas.
Agentes basados en utilidad.

Los ambientes poseen las siguientes propiedades:


1.

Accesibles y no accesibles: Si el aparato sensorial de un agente le permite tener


acceso al estado total de un ambiente, se dice que este es accesible a tal agente.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
2.

Determinsticos y no determinsticos: Si el estado siguiente de un ambiente se


determina completamente mediante el estado actual y las acciones escogidas por
los agentes, se dice que el ambiente es determinista.

3.

Episdicos y no episdicos: La experiencia del agente se divide en episodios.


Cada episodio consta de una gente que percibe y acta, la calidad de su actuacin
depender del episodio mismo (Para los ambientes episdicos).

4.

Estticos y dinmicos: Si existe la posibilidad de que el ambiente sufra


modificaciones mientras el agente se encuentra deliberando se dice que el ambiente
se comporta en forma dinmica en relacin con el agente.

5.

Discretos y continuos: Si existe una cantidad limitada de percepciones y acciones


distintas y claramente discernibles, se dice que el ambiente es discreto.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

1.4. ALCANCE DE LA INTELIGENCIA ARTIFICIAL.

Como se menciono anteriormente, no existe una definicin universalmente aceptada de IA,


pero existen los procesos que generalmente pueden ser llamados IA si son programados en
una computadora. La lista no es exhaustiva, pero se abordan las reas principales
a) Percepcin:

Las maquinas sern capaces de reaccionar a su entorno e influenciarlo mediante sensores y


dispositivos de interaccin con el exterior. Podemos sealar las percepciones de la vista, la
audicin y el tacto. La visin ya se ha llevado a cabo en una escala limitada mediante
aparatos de televisin y dispositivos para la percepcin de imgenes sintetizadores que
permiten al ordenador comunicarse mediante audicin del lenguaje hablado en la salida y
no escrito como se ha hecho hasta ahora, con el uso de pantallas o impresoras. Algunos de
los progresos conseguidos con el desarrollo de circuitos integrados permitirn al
computados aceptar rdenes y datos especializados, tambin mediante la utilizacin del
lenguaje hablado.
b) Sistemas expertos.

Sistema experto, tipo de programa de aplicacin


informtica que adopta decisiones o resuelve
problemas de un determinado campo, como las
finanzas o la medicina, utilizando los conocimientos y
las reglas analticas definidas por los expertos en dicho
campo.

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

c) Hardware para la IA.


El diseo tradicional de hardware no ha conseguido alcanzar, en gran medida el fin
propuesto por la IA. Las tcnicas de IA requieren acceso rpido a bancos de memoria,
enormes segn los estndares tradicionales y, por tanto, las velocidades de proceso son
demasiado lentas para las aplicaciones ms exigentes. La antigua idea de solucionar un
problema paso a paso mediante la ejecucin de una secuencia de instrucciones esta
cediendo al paso a la idea del procesamiento en paralelo, en el cual un conjunto de
procesadores trabajan simultneamente en la diferentes partes del problema.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

La ciencia de la robtica implica diferentes tcnicas de IA. La idea


de un robot "listo" con la capacidad de aprender por experiencia es
el tema central de teoras e investigaciones en IA. El robot debe ser
capaz de comunicarse en lenguaje natural y debe poder realizar tareas que requieran que el
equivalente a la iniciativa y la originalidad, esto implica que el robot debe llegar a realizar,
tras un periodo de aprendizaje cosas para las cuales no estaba inicialmente programado, a
diferencia de los robots que se utilizan actualmente en la aplicacin industrial, los cuales no
son ms que meros autmatas.
La idea global en la inteligencia artificial estuvo desacreditada durante varios aos debido
parcialmente, al excesivo optimismo por parte de la primera teora pero, mayormente
causado por la exageracin y el sensacionalismo de algunos de sus divulgadores.
Los primeros robots creados en toda la historia de la humanidad, no tenan ms que un solo
fin: entretener a sus dueos. Estos inventores se interesaban solamente en conceder los
deseos de entretener a quien le peda construir el robot. Sin embargo, estos inventores se
comenzaron a dar cuenta de que los robots podan imitar movimientos humanos o de alguna
criatura viva. Estos movimientos pudieron ser mecanizados, y de esta manera, se poda
automatizar y mecanizar algunas de las labores ms sencillas de aquellos tiempos.
El origen del desarrollo de la robtica, se basa en el empeo por
automatizar la mayora de las operaciones en una fbrica; esto se remonta
al siglo XVII en la industria textil, donde se disearon telares que se
controlaban con tarjetas perforadas.
Isaac Asimov formul sus geniales "Tres Leyes de la Robtica":
1. "Un robot no debe daar a un ser humano o, por su inaccin, dejar que un ser humano
sufra dao."
2. "Un robot debe obedecer las rdenes que le son dadas por un ser humano, excepto
cuando etas rdenes estn en oposicin con la primera Ley."
3. "Un robot debe proteger su propia existencia, hasta donde esta proteccin no est en
conflicto con la primera o la segunda Leyes."

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Cronologa de la Robtica.
FECHA

DESARROLLO

SigloXVIII.

A mediados del J. de Vaucanson construy varias muecas mecnicas de tamao


humano que ejecutaban piezas de msica

1801

J. Jaquard invento su telar, que era una mquina programable para la urdimbre

1805

H. Maillardet construy una mueca mecnica capaz de hacer dibujos.

1946

El inventor americano G.C Devol desarroll un dispositivo controlador que poda


registrar seales elctricas por medio magnticos y reproducirlas para accionar un
mquina mecnica. La patente estadounidense se emiti en 1952.

1951

Trabajo de desarrollo con teleoperadores (manipuladores de control remoto) para


manejar materiales radiactivos. Patente de Estados Unidos emitidas para Goertz
(1954) y Bergsland (1958).

1952

Una mquina prototipo de control numrico fue objetivo de demostracin en el


Instituto Tecnolgico de Massachusetts despus de varios aos de desarrollo. Un
lenguaje de programacin de piezas denominado APT (Automatically Programmed
Tooling) se desarroll posteriormente y se public en 1961.

1954

El inventor britnico C. W. Kenward solicit su patente para diseo de robot. Patente


britnica emitida en 1957.

1954

G.C. Devol desarrolla diseos para Transferencia de artculos programada. Patente


emitida en Estados Unidos para el diseo en 1961.

1959

Se introdujo el primer robot comercial por Planet Corporation. estaba controlado por
interruptores de fin de carrera.

1960

Se introdujo el primer robot Unimate, basada en la transferencia de articulaciones


programada de Devol. Utilizan los principios de control numrico para el control de
manipulador y era un robot de transmisin hidrulica.

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

Un robot mvil llamado Shakey se desarrollo en SRI (standford Research Institute),


estaba provisto de una diversidad de sensores as como una cmara de visin y
sensores tctiles y poda desplazarse por el suelo.

1971

El Standford Arm, un pequeo brazo de robot de accionamiento elctrico, se


desarroll en la Standford University.

1973

Se desarroll en SRI el primer lenguaje de programacin de robots del tipo de


computadora para la investigacin con la denominacin WAVE. Fue seguido por el
lenguaje AL en 1974. Los dos lenguajes se desarrollaron posteriormente en el
lenguaje VAL comercial para Unimation por Vctor Scheinman y Bruce Simano.

1974

ASEA introdujo el robot Irb6 de accionamiento completamente elctrico.

1974

Kawasaki, bajo licencia de Unimation, instal un robot para soldadura por arco para
estructuras de motocicletas.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
1974

Cincinnati Milacron introdujo el robot T3 con control por computadora.

1975

El robot Sigma de Olivetti se utiliz en operaciones de montaje, una de las


primitivas aplicaciones de la robtica al montaje.

1976

Un dispositivo de Remopte Center Compliance (RCC) para la insercin de piezas en


la lnea de montaje se desarroll en los laboratorios Charles Stark Draper Labs en
estados Unidos.

1978

El robot T3 de Cincinnati Milacron se adapt y program para realizar operaciones


de taladro y circulacin de materiales en componentes de aviones, bajo el patrocinio
de Air Force ICAM (Integrated Computer- Aided Manufacturing).

1978

Se introdujo el robot PUMA (Programmable Universal Machine for Assambly) para


tareas de montaje por Unimation, basndose en diseos obtenidos en un estudio de
la General Motors.

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

Un sistema robtico de captacin de recipientes fue objeto de demostracin en la


Universidad de Rhode Island. Con el empleo de visin de mquina el sistema era
capaz de captar piezas en orientaciones aleatorias y posiciones fuera de un
recipiente.

1981

Se desarroll en la Universidad de Carnegie- Mellon un robot de impulsin directa.


Utilizaba motores elctricos situados en las articulaciones del manipula dor sin las
transmisiones mecnicas habituales empleadas en la mayora de los robots.

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

Informe emitido por la investigacin en Westinghouse Corp. bajo el patrocinio de


National Science Foundation sobre un sistema de montaje programable adaptable
(APAS), un proyecto piloto para una lnea de montaje automatizada flexible con el
empleo de robots.

1984

Robots 8. La operacin tpica de estos sistemas permita que se desarrollaran


programas de robots utilizando grficos interactivos en una computadora personal y
luego se cargaban en el robot.

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.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

En el cuerpo humano, el cerebro y el sistema nervioso funcionan para coordinar la


informacin, la cual es utilizada para determinar el futuro curso de una accin; controlar los
mecanismos para la auto correccin en mquinas que sirven con un propsito similar. Este
principio es conocido como retroalimentacin, el cual es fundamental en el concepto de
automatizacin.
La ciberntica tambin se aplica al estudio de la psicologa, servomecanismo, economa,
neuropsicologa, ingeniera en sistemas y al estudio de sistemas sociales, el trmino
ciberntica no es muy utilizado para describir por separado a un campo de estudio, y
muchas de las investigaciones en el campo ahora se centran en el estudio y diseo de redes
neuronales artificiales.

1.3 ALGUNOS PROGRAMAS DE IA.


a) El programa ELIZA
Casi cada publicacin famosa en la IA menciona el programa ELIZA que fue escrito a
finales de los sesenta por el profesor Joseph Weizenbaum de Massachusetts Institute of
Technology (MIT). El programa fue diseado como una ayuda al anlisis del lenguaje y el
profesor J. W. Lo llamo as en honor a la muchacha que aparece en la obra de G. B. Shaw,
que comenz como una vendedora callejera de flores y su vida se transformo cuando el
profesor de diccin le enseo a hablar un correcto ingles, quien asumi esta tarea como
parte de una apuesta.
Un elemento muy importante del mensaje de Shaw era que aunque Eliza continuaba siendo
la misma persona, con las misma virtudes y defectos antes y despus de su transformacin,
la gente la vea de un manera deferente, como una seorita bien vestida y con un acento
culto, en contraste con la desastrada vendedora de flores que hablaba de una forma vulgar.
Podemos obtener la moraleja de esta historia y observar que aunque un programa sea muy
complejo la computadora sigue siendo una acumulacin inanimada de dispositivos
electrnicos y que, aunque algunos de los resultados puedan ser sorprendentes la maquina
es capaz de ejecutar nicamente las tareas para las cuales fue exactamente programada y
nada ms.
b) El programa MYCIN
La especializacin de cualquier actividad requiere un gran
conocimiento asociado. El proceso para poder practicar una cierta
actividad depende de la asimilacin de este conocimiento.
Un conjunto de hechos constituyen una gran parte del conocimiento bsico sobre un tema,
pero son igualmente importantes la destreza que se puede adquirir con la experiencia, las
ideas generales en algunos casos acerca de lo que es una buena practica y el arte de tomar
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

1.5. EL PROYECTO JAPONS DE LA QUINTA


GENERACIN.
La investigacin y el desarrollo japons de nueva tecnologa estn dirigidos por la unin de
la industria y el gobierno en el instituto para la nueva generacin de Tecnologa de
computadoras (ICOT). La investigacin se desarrolla principalmente en tres campos:
hardware, software y aplicaciones. Los investigadores en el campo del hardware estn
concentrados en una arquitectura de computadoras que se caracteriza por la inferencia
secuencial, inferencia en paralelo y el desarrollo de maquinas para bases de datos afines.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

SEGUNDA UNIDAD:

REPRESENTACIN DEL CONOCIMIENTO


2.1. Formalismos para la representacin del conocimiento: listas y rboles, redes
semnticas, frames, scripts.
2.2. Fundamentos lgicos en inteligencia artificial: Lgica proposicional y de predicados.
Sistemas conjuntivos, Forma de Skolen
2.3.Inferencia
a) Reglas de produccin.
b) Clusulas de Horn.

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?

A continuacin, se dan respuestas parciales a estas preguntas planteadas. En los captulos


posteriores se presenta un estudio ms formal y detallado acerca del conocimiento, su
representacin y manipulacin.

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

El proceso de organizar y coleccionar el conocimiento es llamado ingeniera del


conocimiento. Es tal vez la parte ms difcil y la que consume ms tiempo en cualquier
proceso que desarrolla software de IA.
Dado que el conocimiento es importante y primordial para el comportamiento inteligente, su
representacin constituye una de las mximas prioridades de la investigacin en IA. El
conocimiento puede ser representado como imgenes mentales en nuestros pensamientos, como
palabras habladas o escritas en algn lenguaje, en forma grfica o en imgenes, como cadenas de
caracteres o colecciones de seales elctricas o magnticas dentro de un computador. En nuestro
estudio de IA, consideraremos las representaciones escritas y sus correspondientes estructuras de
datos utilizadas para su almacenamiento en un computador. La forma de representacin que se
escoja depender del tipo de problema a ser resuelto y de los mtodos de inferencia disponibles.

Existen diferentes esquemas de representar el conocimiento, abordaremos algunas formas


de representarlo y aplicarlo de una manera adecuada para su manipulacin en
computadoras.
Los esquemas de representacin del conocimiento han sido categorizados como
declarativos o procedimentales. Los mtodos de representacin declarativos se usan para
representar factores y aserciones; y un esquema de representacin procedimental trata con
acciones descritas paso a paso para llegar a un resultado final.
Los mtodos de representacin del conocimiento declarativos incluyen lgica, listas,
rboles, redes semnticas, marcos y libretos.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

El conocimiento declarativo puede ser representado con modelos relacionales y esquemas


basados en lgica. Los modelos relacionales pueden representar el conocimiento en forma de
rboles, grafos o redes semnticas. Los esquemas de representacin lgica incluyen el uso de
lgica proposicional y lgica de predicados.
Los modelos procedimentales y sus esquemas de representacin almacenan conocimiento en la
forma de cmo hacer las cosas. Pueden estar caracterizados por gramticas formales, usualmente
implantadas por sistemas o lenguajes procedimentales y sistemas basados en reglas (sistemas de
produccin).
Las representaciones declarativas son usualmente ms expansivas y costosas, en el sentido que
la enumeracin puede ser redundante e ineficiente. Sin embargo, la modificacin de las
representaciones declarativas es usualmente muy fcil; simplemente se agrega o se elimina
conocimiento. Las representaciones procedimentales, en cambio, pueden ser ms compactas,
sacrificando flexibilidad. Representaciones prcticas pueden incluir elementos tanto declarativos
(listado de hechos conocidos), como procedimentales (un conjunto de reglas para manipular los
hechos).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Manipulacin del conocimiento


Existen tres paradigmas que los investigadores han utilizado tradicionalmente para la resolucin de
problemas de IA:

Programacin Heurstica.- Est basado en el modelo de comportamiento humano y su


estilo para resolver problemas complejos. Existen diversos tipos de programas que
incluyen algoritmos heursticos. Varios de ellos son capaces de aprender de su
experiencia.
Redes Neuronales Artificiales.- Es una representacin abstrada del modelo neuronal del
cerebro humano. Las redes estn formadas por un gran nmero de elementos simples y
por sus interconexiones. Una red neuronal artificial puede ser simulada o ser real. Al
elemento procesador de la red, se lo denomina neurona artificial.
Evolucin Artificial.- Su modelo est basado en el proceso gentico de evolucin natural,
propuesto por Charles Darwin. Se utilizan sistemas simulados en computador que
evolucionan mediante operaciones de reproduccin, mutacin y cruce (Algoritmos
Genticos).

Cada paradigma comprende una coleccin de mtodos, configuraciones y tcnicas desarrolladas


para manipular el conocimiento. En general, una tcnica de IA est caracterizada por incluir los
siguientes componentes:

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

FUNDAMENTOS LGICOS EN INTELIGENCIA ARTIFICIAL


Tal vez la forma ms antigua de representar el conocimiento es la lgica. Esta trata el
estudio cientfico de los procesos de razonamientos, de sistemas de reglas y procedimientos
que ayudan al pensamiento adecuado. La lgica es considerada una subdivisin de la
filosofa, su desarrollo y el refinamiento de sus procesos son generalmente acreditados a los
griegos.
La forma general de cualquier proceso lgico consiste de informacin dada, juicios hechos
o de observaciones que son notadas; esto constituye las entradas al proceso lgico y son
llamadas premisas. Las premisas son empleadas por el procesamiento lgico para crear las
salidas que constituyen las conclusiones llamadas inferencias. Esto constituye hechos que
son conocidos como verdaderos y pueden ser usados para derivar nuevos hechos que
tambin deben ser verdaderos.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

FORMALISMOS PARA REPRESENTAR DEL CONOCIMIENTO


LISTAS Y RBOLES
Son las estructuras ms sencillas que se usan para representar un conocimiento jerrquico.
Listas: Una lista es una serie de elementos del mismo tipo.
Ejemplo:
a) [Juan, Roberto, Ana, Ins ]: Lista de personas.
b) [caramelos, galletas, bombones]: Cosas que se compran en una miscelnea.
c) [clavos, bloques, cemento]: Productos de construccin.
Lista 1
Cuadernos
Libros
Escritorio

Libros
Filosofa
Matemticas
Historia

Escritorio
Madera
Metal

Madera
Caoba
Pino

Representacin grfica y jerrquica de una lista.


rbol: Es una forma sencilla de ilustrar las listas y otros tipos de conocimiento jerrquicos.
Ejemplo:

Los nodos estn representados por los crculos y las lneas que los unen son los arcos.
REDES SEMNTICAS

Es la representacin esquemtica del conocimiento mediante descripciones graficas que


muestra una jerarqua relacional entre objetos. Se le denomina nodo a la representacin de
elementos del dominio y se muestran como rectngulos o crculos y son rotulados con los
nombres de los elementos representados; y se denominan arcos a los enlaces desde un
nodo a otro, se representan como un vector y se rotula con el nombre de las relaciones
representadas.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Propiedades de las Redes Semnticas


Las redes Semnticas posen la propiedad de la Herencia; en la que unos nodos heredaron
las propiedades o atributos de Nodos de una clase mayor. As por ejemplo en las siguientes
Red Semntica:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Nota: A travs de la caracterstica de la herencia, las Redes Semnticas tienen la capacidad


de inferir conocimiento.
Ejemplo de Red Semntica.

Considera la anterior Red Semntica acerca de SAM y su familia.


1. Necesita Sam Alimento
Si, por la herencia que recibe de los seres humanos.
2. Trabaja SAM para AJAX
Si por caracterstica o por propiedades de herencia ya que CME pertenece AJAX.
Nota: En Redes Semnticas las inferencias de informacin o respuestas o preguntas se
hacen con base en las propiedades de herencia que existen entre los Nodos.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Es_un

Es_un

Ejemplo de Red Semntica: Roedor.

Ejemplo de Red Semntica: Lassie.

Ti
en

un

tiene

de

Tiene un

po
Ti

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
Ejemplo de Red Semntica: Animal.

puede

po
Ti

vo

lar

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Ti
po

de

de

come

s
ata

Ti
po

tiene

p
ne
Tie

de

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Ejemplo de Red Semntica: Animal2.


ANIMAL
Es del tipo
respira

Aire

PAJARO

Es del tipo

tiene

puede

CANARIO

Un representante

color
Amarillo

Miembros

Alimentos

Alas

Un
Representante
de

Alas

Es del tipo

Esta formado por

Masa

Est formado por

Plumas

come

PERSONA

Est formado por


Piernas

Brazos

ARTURO
Trabaja en

Pioln

NASA

Un animal come alimento,


respira aire, tiene masa y
est formado por miembros.
Una persona es del tipo
animal, la cual hereda todas
las caractersticas antes
descritas del animal. As
tambin
tenemos
la
posibilidad de detallar ms
sus cualidades como que
tiene piernas y brazos.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

1. Qu posee Bilbo? Un anillo mgico.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Especificaciones del Automvil


Tipos de SLOTS en los Frames
1. Hay Slot para describir Conocimiento Declarativo como lo es:
- Peso de un Objeto.
- La Altura
- La forma
- El color
- Hobbies (leer, nadar, trotar)
2. Hay slots para describir conocimiento procedural (el cual se refiere a pequeos
procesos que me identifica a ciertas funciones).Ejemplo: Velocidad, aceleracin,
trabajo, clculo de energa, etc.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

En los SCRIPTS o libretos intervienen elementos bsicos como lo son:


1. Requerimientos de Entrada.
2. Roles o papeles de las personas o cosas que intervienen en el libreto.
3. Herramientas utilizadas por los diferentes participantes o actores.
4. Escenas.
5. Resultados.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Ejemplo 1. SCRIPT correspondiente a una visita al Restaurante de Auto-Servicio.


Requerimiento de Entrada:
- Hay un cliente que tiene hambre.
- El cliente tiene dinero.
Herramientas que intervienen:
- carro
- dinero
- bandeja
- bote de basura
- alimentos
- catsup
- servilletas

- 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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Ejemplo 2. SCRIPT correspondiente a una visita al cine.


PAPELES: cinfilo, taquillero, portero, acomodador
CONDICIONES DE ENTRADA: cinfilo desea ver pelcula
PROPIEDADES O HERRAMIENTAS: pelcula, butaca, dinero, entrada
ESCENAS:
-Sacar entrada
Cinfilo: Deme butaca a taquillero
Cinfilo: Dinero a taquillero
Taquillero: Entrada a cinfilo
-Entrar en sala
Cinfilo: Entrada a portero
Portero: Entrada a cinfilo
Cinfilo: Cinfilo a sala
-Acomodarse ...................
-Ver pelcula ..................
-Salir de sala ..................
RESULTADOS:
-Cinfilo ha visto la pelcula
-Taquillero tiene ms dinero
-Cinfilo tiene menos dinero.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Elaborado por Ing. Ariel Chvez Toruo

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:

El cuantificador universal; indica que la frmula bien formada, dentro de su alcance, es


verdadera para todos los valores posibles de la variable que es cuantificada. Por ejemplo:

X....
Establece que "para todo X, es verdad que . . . "

El cuantificador existencial; , indica que la frmula bien formada, dentro de su alcance, es


verdadera para algn valor o valores dentro del dominio. Por ejemplo:

X....
Establece que "existe un X, tal que . . . "
A continuacin se dan algunos ejemplos de predicados cuantificados:

X, [nio (X) => le_gusta (X, helados)].


(X)(persona(X)) =>mortal(X)

Y, [mamfero (Y) => nace (Y, vivo)].


(X)(perro(X)) =>mortal(X)

Z, [cartero(Z) ^ mordi (boby, Z)].


Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Forma proposicional o funcin: p(x)


Es aquella expresin que tiene un elemento desconocido, x , que al ser instanciado hace que
la expresin se convierta en una proposicin. Ejemplo: p (x): x es un mamfero.
Si x se instancia con clavo, o sea, x = clavo. La forma proposicional se convierte en la
proposicin: p (clavo): clavo es un mamfero. (Falso)
Si x se instancia con gato, o sea, x = gato. La forma proposicional se convierte en la
proposicin: p (gato): gato es un mamfero. (Verdadero)
Los valores de x estan presente en un conjunto llamado dominio. Si todos los elementos del
dominio hacen verdadera la proposicin se utiliza el cuantificador universal . Si solo
algunos elementos del dominio hacen verdadera la proposicin se utiliza el cuantificador
existencial .
Ejemplo:
1. Sea la forma proposicional p ( x ): x es una letra
Dominio: x = { (x, p ( x )) | p ( x ): x es una letra } = { a, b, c, d, e}
Instanciando tenemos:
x = a, p(a): a es una letra. (Verdadero)
x = e, p(e): e es una letra. (Verdadero)
Todos los elementos del dominio cumplen la forma proposicional, esto se indica de
la manera siguiente:
x, p( x ): para todo x, x es una letra.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Nota: Los argumentos siempre (usualmente) son SUSTANTIVOS.


Ejemplo:
1
2
3
4
5
6

El limn y el chile serrano son verdes: Son_verde (limn, chile serrano)


La pitaya es roja y la manzana es roja: roja (pitaya, manzana)
El limn es verde: Verde (limn)
El perro ladra: ladra (perro)
Todos los mamferos son de sangre caliente:
x [ mamferos (x) => sangre _ caliente(x)]
Todo satlite terrestre tiene un punto sobre la Tierra:
x {satlite_terrestre(x) =>y [tiene (x, punto) ^ sobre(y, Tierra)]}

La lgica de predicados esta formado por un conjunto de predicados concatenados a travs


de las operaciones lgicas:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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)

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
LITERAL: Los literales son predicados o negaciones de predicados.
Ejemplo:

mamfero (Pedro)
~ mamfero (vidrio)

FORMULAS BIEN FORMADAS (FBF): Una FBF es una secuencias de formulas


Atmicas (o predicados) concatenados por medio de operadores lgicos.
Ejemplo:

P(x) v Q(y) ^ ~R (S) P(x) ^ Q(z) ==> ~R(s)


mamfero(perro) => tiene_sangre_caliente(perro)

SENTENCE: Las expresiones son FBF donde el alcance de las variables esta
perfectamente bien definido mediante cuantificadores o bien UNIVERSALES bien
EXISTENCIALES.
Smbolos:

Para todo(cuantificador Universal)


Existe(Cuantificadores Existencial)
~
~

Ejemplo:

Todos los hijos tienen un padre y una Madre


x [mamfero(x) => tiene_sangre_caliente(x) ]
x [hijo(x) => y ( madre(y)^ padre(z)) ]

CLAUSULA: Es una disyuncin de literales (una clusula es una disyuncin de predicados


y/o predicados negados.
Ejemplos.

Conjuncin: And (^)


Disyuncin: OR (V)
P(x) v Q(y) v~ R(s)
R(y) v ~ Q(z)

Lgica de predicado de primer orden.


La lgica de predicados de primer orden esta formado por un conjunto de predicados
concatenados por operadores lgicos.
Ejemplo:

Hermano (x, y ): x es hermano de y.


Hijo (x, y ): x es hijo de y.

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.

Elaborado por Ing. Ariel Chvez Toruo

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).

Operaciones relacionadas con la lgica de predicados.


La Asociatividad
La Distributividad
Leyes de Morgan.
Conmutativa
Ley de idempotencia
Ley de la no contradiccin
Ley del tercio excluso
Ley de la identidad

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

Definicin de la equivalencia mediante la conjuncin y la implicacin:


A
B = A=> B ^ B => A
Av1=1
A^1=A
Av0=A
A^0=0
A^~A=0
Ley de la eliminacin de la doble negacin ~ ~ A = A

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

No concebimos la libertad sin cultura;


ni la cultura sin pan; ni el pan sin
trabajo honrado; ni el trabajo honrado
sin respeto a la dignidad del hombre;
ni el respeto a la dignidad del hombre
sin amor a Dios.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

Un conjunto de facilidades para la definicin de reglas.


Mecanismos para acceder a una o ms bases de conocimientos y datos.
Una estrategia de control que especifica el orden en el que las reglas son procesadas, y la
forma de resolver los conflictos que pueden aparecer cuando varias reglas coinciden
simultneamente.
Un mecanismo que se encarga de ir aplicando las reglas.

Dentro de esta definicin general de sistema de produccin, se incluyen:

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).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

Reglas para identificar animales carnvoros:

R9: If x es carnvoro AND x tiene color aleonado AND x tiene


manchas obscuras THEN x es chita (cheetan).
R10: If x es carnvoro AND x tiene color aleonado AND x tiene rayas
negras THEN x es un tigre.

Reglas para identificar ungulados:

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.

Ahora supongamos que el encargado del zoolgico conoce que:


1. Un animal tiene color aleonado y manchas obscuras. De acuerdo a estos datos las Reglas
9 y 11 son candidatas a dispararse, hacindole hasta cumplir la totalidad de condiciones.
2. El animal puede amamantar y rumia hierbas, con la cual la Regla 2 se dispara
producindose ahora que x es un mamfero, lo cual a su vez ocasiona que se dispare la regla
8 produciendo (o conocindose ahora) que x es un ungulado y tiene dedos.
3. X tiene patas largas y cuello largo. Lo cual hace que se dispare la regla 11, con la cual
el sistema de produccin concluye que x es una jirafa.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Asumiendo que se dan los siguientes hechos como sabidos:


1. El plato principal es comprado a la Abastecedora el Buen Morir.
2. El plato principal es Mejicano.
3. El invitado es indeseable (no bien visto)
4. Es Ao Nuevo.
6. El plato principal es Pollo.
Mostrar la secuencia en que las Reglas son usadas y diga cuando son disparadas.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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)

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Los cantantes no duermen.


Comer mucho, engorda
Las montaas cantan bonito
Los mosquitos viven menos de un ao
El hombre desciende del elefante.
El coronel no tienen quien le escriba.
La jubilacin del Coronel Buenda es insuficiente para su familia.
El tejo es un deporte.
El Sol es una estrella.
El amor es un sentimiento sublime.
La lgica es ciencia o disciplina.
Todo est en movimiento.
Toda x que es esttica implica que no est en movimiento.
Todos los deportes son saludables.
Todo trabajo debe ser pagado.
Si las elecciones son limpias entonces no son fraudulentas.
Todos los animales tienen un cerebro.
Si dos terminales estn conectadas, entonces tienen la misma seal.
o x y CONECTADO(x,y) ( SEAL(x) = SEAL(y) )
La expresin CONECTADO es conmutativa.
o xy CONECTADO(x,y) CONECTADO(y,x).
Es delincuente aquella persona quien vende armas a naciones enemigas
o xyz PERSONA (x) ARMA(y) NACION(z) ENEMIGO(z) VENDE(X,Y,Z)
DELINCUENTE(x)

Todas las personas aman a alguien.


o x, y AMAR(x, y)
Si algo vale la pena entonces no puede obtenerse fcilmente.

Todos los caballos de carreras son de pura raza

x ValerLaPena(x) PoderObtenerseFacilmente(x)
x CaballoCarreras(x) PuraRaza(x)

Para ser admitidos tienen que ser socios.


o x Admitido(x) Socio(x)
A algunas mujeres no les gusta el ftbol.
o x Mujer(x) Gustar(x, futbol) //futbol es una constante
Todos quieren ver el mundial de ftbol.
o x QuererVer(x, MundialFutbol)
Algunos temas musicales estn pasados de moda o suenan mal
o x TemaMusical(x) ( PasadosDeModa(x) SuenaMal(x) )
Cualquier mono es un animal peludo.
Todo elefante que no sea miedoso o es un mono o es un ratn.
Todos los seres vivos son mortales, Todos los humanos son seres vivos; luego
Todos los humanos son mortales.
Todas las personas educadas son atentas. Algunos funcionarios no son atentos,
luego Algunos funcionarios no son personas educadas.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Formalice en lgica de predicados y analice si la conclusin corresponde a la hiptesis.


Si tengo tiempo, estudiar y trabajar. Tengo tiempo o tengo nimo para emprender
nuevas actividades. No tengo tiempo. Entonces trabajar.
Si las lluvias aumentan, el caudal de los ros crece. Si el caudal de los ros crece, hay que
construir represas que controlen el flujo del agua. No es verdad que no se construyan
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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))

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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 x es la madre de y, y si z es la hermana de x, entonces z es la ta de y.


Supongamos ahora que la madre de Braulio es Juana, y que Lola es hermana de
Juana. Demostrar que Lola es ta de Braulio.

Realizar la comprobacin lgica de los siguientes razonamientos.

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.

Represente en Lgica de Predicado


1

Susie es una compaera de escuela de Calvin y lo considera un nio raro. El la molesta


mucho y en invierno le lanza bolas de nieve. A Susie le gusta jugar a las casitas con
Calvin, Hobbes y Mr Burn, su coneja de trapo. A Calvin no le gustan las nias pero
juega con Susie, entonces Calvin siente atraccin por Susie o la odia.

nia(SUSIE) compaera(SUSIE, CALVIN) pensar(SUSIE, CALVIN, raro)


molestar(CALVIN, SUSIE) lanzar(CALVIN, BN, SUSIE) NIEVE(BN)
haber(NIEVE, INVIERNO)
Conejo(Mr Burn) jugar(SUSIE, CASITAS) jugar(SUSIE, CALVIN)
jugar(SUSIE, HOBBES) jugar(SUSIE, Mr Burn)

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

x[nias(x) gustar(CALVIN,x) jugar(CALVIN,SUSIE)] atraer(SUSIE,


CALVIN)
x[nias(x) gustar(CALVIN,x) jugar(CALVIN,SUSIE)] odiar(SUSIE,
CALVIN)
nias(A) gustar(CALVIN,A) jugar(CALVIN,SUSIE) atraer(SUSIE,
CALVIN)
nias(A) gustar(CALVIN,A) jugar(CALVIN,SUSIE) odiar(SUSIE,
CALVIN)
atraer(SUSIE,
CALVIN)
:

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;

Nio(CALVIN) tigre(HOBBES) pertenecer(HOBBES,CALVIN)


jugar(CALVIN,HOBBES) compaero(HOBBES,CALVIN)
Existen nios que son mas grandes que otros y se aprovechan de los mas pequeos

Todos los nios que creen en monstruos y se los imaginan, les tienen miedo.

x y nio(x) monstruo(y) creer(x,y) imaginar (x,y) tenermiedo(x,y)

Todo nio que es travieso es castigado por sus padres

x y nio(x) nio(y) msg(y,x) aprovechar(y,x)

x y z nio(x) travieso(x) padres(y,x) castigar(y,x)

Si un nio es travieso y su madre es estricta, lo castiga.

x y nio(x) travieso(x) mama(y) estricto(y) castigar(y,x)

8 Los nios que no les gusta la escuela y no hacen las tareas son desaplicados

x nio(x) hacer(x,tareas) gustar(x,escuela) desaplicado(x)

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

Definir de una forma precisa el problema, incluyendo especificaciones de las


condiciones iniciales y de las situaciones finales que pueden considerarse como
soluciones aceptables al problema.

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.

Identificar y representar el conocimiento que es necesario para resolver el problema.

Escoger la mejor tcnica y aplicarla para la resolucin del 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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

3.1 BASES DE CONOCIMIENTO

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:

La necesidad de un conocimiento profundo de nuestro propio conocimiento. Es evidente


que no poseemos una comprensin lo suficientemente detallada de muchas materias.
Entre ellas est la que a nosotros nos concierne, el lenguaje natural. Cuanto ms amplio
sea nuestro conocimiento de ste, ms fcil nos ser recrear sus mecanismos
artificialmente. En especial deberamos conocer con exactitud tres puntos cruciales:
o
o
o

Cules son los individuos que constituyen el universo?


Que propiedades poseen?
Qu relaciones existen entre ellos?

El desarrollo de una notacin precisa. Aun suponiendo que poseamos un conocimiento lo


suficientemente detallado de la materia que pretendemos representar, resulta crucial el
disponer de una notacin lo suficientemente precisa como para poder plasmar ese
conocimiento de forma que pueda ser usado de forma inteligente por un cerebro
electrnico.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Ejemplo: Se representa la base de conocimiento de los lenguajes de programacin.


Hechos:
1. El lenguaje posee funciones predefinidas.
2. El lenguaje trabaja sobre cualquier plataforma
3. El lenguaje trabaja con programacin procedimental.
4. El lenguaje es declarativo.
5. El lenguaje es orientado a objeto.
6. El lenguaje trabaja nicamente sobre ambiente Windows.
7. El lenguaje trabaja sobre ambiente MS-DOS.
8. El lenguaje trabaja orientado a eventos.
9. El lenguaje permite la herencia
10. El lenguaje permite polimorfismo.
Reglas:
R1: 1 ^ 2 => 6
R2: 9 ^ 10 => 5
R3: - 7 v 5 => 10
R4: 10 ^ 8 => 9
2. Caractersticas

Las KB 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 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".

El sistema gestor de bases de conocimiento (KBMS: Knowledge Base Management


System) posee una comercializacin prcticamente anecdtica, y por supuesto no
existe ningn estndar.

Una de las principales caractersticas de los sistemas basados en el conocimiento es


que no permiten la utilizacin de la informacin contenida en ellos por parte de
aplicaciones externas.

La mayor parte de las aserciones de una KB contienen variables dependientes en el


sentido lgico, son de muchos tipos diferentes, y existen muy pocas aserciones de
cada tipo (generalmente slo una).

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
procesos, disparo o triggering. Este mecanismo puede incluso acceder y modificar
los hechos y reglas contenidos en su propio repositorio de datos.

La KB contiene conocimiento sobre algo, y ser capaz de referir ese conocimiento


al mundo real. Este conocimiento es abstracto y generalizador.
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.
En una KB se encuentra explcitamente e implcitamente almacenada la
informacin.
Un KBMS debe ofrecer dos posibilidades fundamentales: 1) Mecanismos de
razonamiento; y 2) Mecanismos de explicacin .
Las KB se han desarrollado en diversos mbitos con propsitos especficos.
Las KB son utilizadas en las siguientes aplicaciones de IA: Sistemas expertos,
sistemas de procesamiento de lenguaje natural y sistemas de visin robtica.

En general se supone que un KBMS, a diferencia de un DBMS, debe ofrecer estas dos
posibilidades fundamentales (Mylopoulos 1986):

Mecanismos de razonamiento: el KBMS debe ser capaz de extraer conclusiones lgicas a


partir de la informacin y reglas que contiene.
Mecanismos de explicacin que permitan al usuario del KBMS averiguar el estado del
mecanismo de razonamiento, obtener consejo, y justificacin de una determinada
conclusin obtenida por el mecanismo de razonamiento

A partir de estos requerimientos deberamos establecer alguna tipologa de KBMSs atendiendo


no a su arquitectura (no existen arquitecturas genricas estndar), sino a su funcionalidad. Lo que
caracteriza a los sistemas de representacin de conocimiento es que se han desarrollado en
diversos mbitos con propsitos especficos. Mientras que un mismo sistema de bases de datos se
puede utilizar para mltiple propsitos, los KBMS no son por lo general de propsito general.
(Jarke et al. 1989) presentan la siguiente tipologa de aplicaciones de IA en las que las bases de
conocimiento son utilizadas:

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

Finalmente, en IA se sealan algunas caractersticas necesarias en una KB para el procesamiento


de lenguaje natural:

Representacin de conocimiento: el sistema de representacin10 debera ser un esquema


hbrido que contuviese subesquemas basados en marcos (frames), hechos de base de
datos y reglas de deduccin. Las distintas unidades de conocimiento codificadas en uno de
estos esquemas tendrn que ser agregadas a los esquemas hbridos de una fuente de
conocimiento (lingstico, conceptual, etc.), que a su vez tendr que ser agregada a la
base de conocimiento global.
Organizacin del conocimiento: el KBMS deber organizar al menos dos bases de
conocimiento en el caso de un sistema basado en NLI: la KB del lenguaje natural (NL KB) y
la KB a la que el NLI proporciona acceso mediante lenguaje natural. A su vez, la NLKB
habr de estar organizada distinguiendo: conocimiento de entorno, conocimiento especfico
de trabajo y conocimiento especfico de dilogo.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Entorno de integracin: el KBMS deber proporcionar un entorno que permita la entrada de


datos para las distintas KBs. Este aspecto de adquisicin de conocimiento se puede
realizar mediante el NLI una vez se haya construido parcialmente. Lo ideal para crear la
base de conocimiento de lenguaje natural es el trabajo conjunto de expertos en los dos
campos: la lingstica y la IA.

Como observamos, las diferencias de descripcin detallada de bases de datos y bases de


conocimiento son abismales. Las bases de datos son sistemas muy bien establecidos en donde
todo lo que puede o no puede llevar a cabo el sistema y cmo llevarlo a cabo est perfectamente
establecido. El trabajo en bases de conocimiento se encuentra an en una fase germinal, y por lo
general se trata de sistemas especficos para necesidades especficas. La literatura en torno a las
bases de conocimiento es an altamente programtica, intentando sentar las bases de lo que se
supone que estos sistemas sern capaces de hacer. No es extrao encontrar aserciones
contradictorias en distintos autores con distintos fines. Incluso as, en el siguiente apartado
intentaremos mostrar cules son las definiciones formales y arquitecturas que se han propuesto
hasta ahora. Ni que decir tiene que el entorno de bases de datos se encuentra totalmente
establecido.

ELEMENTOS EN LA SOLUCIN DE PROBLEMAS


El proceso general en la solucin de problemas tiene:
1. Estado del problema: Situacin y condicin de existencia.
2. Meta: Lograr respuesta final o solucin.
3. Operadores: Procedimiento empleado para cambiar los estados y lograr las metas
(Algoritmos y subrutinas).
Esquema de representacin de los elementos en la solucin de problemas

Representacin de los elementos en la solucin de problemas


Estado
Inicial

Procedimiento

Metas

Estrategias de control

Para construir un sistema que resuelva un problema especfico, es necesario realizar las
siguientes acciones:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

La direccin en la cual se conduce la bsqueda (hacia adelante o hacia atrs).


La estrategia de control, o forma de seleccionar las reglas que pueden ser aplicables. Los
principales requerimientos de una buena estrategia de control son: que cause
desplazamiento en el espacio de estado; y, que sea sistemtico.
La forma de representar cada nodo del proceso de bsqueda (representacin del
conocimiento).

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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)

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

2. Llenar el recipiente de 3 galones:


SI y < 3 => (x, 3)
4. Vaciar el recipiente de 3 galones:
SI y > 0=> (x, 0)
6. Pasar agua del recipiente de 4 galones al de 3, hasta
que se llene:
SI (x + y) >= 3 ^ x > 0 => (x - (3 - y), 3)
8. Pasar toda el agua del recipiente de 4 galones al de
3:
SI (x + y) <= 3 ^ x > 0 => (0, x + y)

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Bsqueda en espacios de estados.


begin
estado := est_inic
while not estado = est_fin do
begin
regla := selecc(R, estado)
estado := aplicacin(regla, estado)
end
end
------------------------------------------------------------regla := selecc (R, estado)
inteligente.

Control, segn sea, la bsqueda ser ms o menos

Estrategias de control: caractersticas fundamentales.

Debe causar que el problema avance.


Ejemplo: en el problema de los cubos de agua no es vlido seleccionar
siempre la primera regla aplicable.
Debe ser sistemtico.
Es decir, siempre debe producir la misma solucin ante el mismo problema.
Ejemplo: no es vlido como estrategia de control elegir una operacin al azar.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

MTODOS DE BSQUEDA (CIEGAS HEURSTICA )


Mtodos Ciegos
Exploracin del rbol de bsqueda sistemticamente pero sin informacin

Estos mtodos se caracterizan por no poseer experiencia, informacin o conocimiento


correspondiente al ambiente en donde se realizar la bsqueda, solo se posee conocimiento
de estado inicial y la meta que se pretende alcanzar.
Ejemplo: Suponga que desea encontrar una trayectoria de una ciudad S (punto inicial)a
otra G(meta). Para encontrar una trayectoria apropiada necesitar considerar dos costos:
el costo de clculo para encontrar la trayectoria y el costo del viaje cuando se sigue a
trayectoria.
rbol de bsqueda: Es un tipo especial de rbol semntica en el que cada nodo representa
una trayectoria, las ramas conectan trayectorias a extensiones de trayectorias en un solo
paso. El rbol de bsqueda contiene escritores que conectan una trayectoria a una
descripcin de trayectoria. Adems contiene lectores que producen una descripcin de una
trayectoria.
Las trayectorias que no alcanzan la meta se conocen como trayectorias parciales; las
trayectorias que alcanzan la meta se llaman trayectorias completas. El nodo raz es el que
no tiene nodo antecesor. Cada hijo representa una trayectoria que es una extensin de un
nodo de la trayectoria representada por su padre. Se conoce como profundidad del rbol a la
cantidad de nodos existentes desde la raz hasta la ultima hoja del rbol.
La expansin de un nodo es cuando se determina los hijos den este. Se dice que los nodos
estn abiertos cuando no se expande, en caso contrario se vuelven cerrados.
Ejemplo: El rbol de bsqueda formado para el ejemplo anterior es:

S
D

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

El tratar de comprender por qu un heurstico funciona o por qu no funciona, a menudo conduce a


una mejor comprensin del problema.

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
Bsqueda en profundidad iterativa
Se basa en elegir utilizar bsqueda en profundidad limitada, aumentando l si no se
encuentra la solucin.

Algoritmo Generacin y Prueba (GENERATE-AND-TEST)


1. Generar una posible solucin. (estado o camino)
2. Comprobar para ver si es una solucin, mediante comparacin con los elementos del conjunto
de objetivos aceptables.
3. Si la solucin ha sido encontrada salir, de otra manera, retornar al paso 1.

Algoritmo Primero en Profundidad (DEPTH-FIRST)


1. Si el estado inicial es el objetivo, salir y retornar xito.
2. Sino, haga lo siguiente hasta que se obtenga seal de xito o fracaso:
a. Genere un sucesor E del estado inicial. Si no hay ms sucesores, retorne con
seal de fracaso.

b. Llame recursivamente al algoritmo, esta vez con E como el estado inicial.


c. Si la seal es xito, retorne, de otra manera, contine en este lazo

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
Ejemplo: Para el rbol de bsqueda anterior se tendra:
S
A
B

E
D

Se decide encontrar la trayectoria a travs de la cola: S A B C, pero esta trayectoria no


encuentra la meta G. Por lo que se decide al nodo antecesor mas cercano que tenga una
alternativa sin explorar, que para el rbol en anlisis es B, es este caso se sigue: S A B
E D; igual que la cola anterior, no se encuentra la meta G. Nuevamente se ubica en el
nodo antecesor mas cercano que tiene una alternativa sin explorar, en este caso es E, se
encuentra la trayectoria:
S A B E F G. A travs de esta trayectoria se logra encontrar la meta G, por lo
que se notifica el xito.
Si un rbol de bsqueda tiene un factor de ramificacin b y profundidad mxima m, la
cantidad de nodos a revisar ser bm.
La desventaja de la bsqueda en profundidad es la posibilidad de que se quede estancada al
avanzar por una ruta equivocada. En muchas ocasiones los rboles de bsqueda son muy
profundos, o hasta infinitos, por lo que una bsqueda en profundidad no es recomendable
en estos casos.
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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Bsqueda en Anchura: A diferencia con la bsqueda en profundidad ahora se visitan


todos los vecinos de un vrtice antes de pasar al siguiente. Por tanto no hay necesidad de
retroceder. Una vez etiquetados todos los vecinos de un vrtice X, se contina con el
primer vrtice alcanzado despus de X en la bsqueda. Esta tcnica se utiliza para resolver
problemas en los que se pide hallar una solucin ptima entre varias.
En general la bsqueda en anchura comenzando de un nodo de partida A es la siguiente:
Primero examinamos el nodo de partida A. Luego examinamos todos los vecinos de A.
Luego examinamos todos los vecinos de los vecinos de A y as sucesivamente. Con el uso
de una cola, garantizamos que ningn nodo sea procesado ms de una vez y usando un
campo ESTADO que nos indica el estado actual de los nodos.
Algoritmo para la Bsqueda en Anchura:
Este algoritmo realiza la bsqueda en anchura en un grafo G comenzando en un nodo de
partida A:
1.
2.
3.
4.

Inicializar todos los nodos al estado de preparados (ESTADO=1).


Poner el nodo de partida A en la COLA y cambiar su estado a espera (ESTADO=2).
Repetir pasos 4 y 5 hasta que COLA est vaca.
Quitar el nodo del principio de la cola, N. Procesar N y cambiar su
estado a procesado (ESTADO=3).
5.
Aadir a COLA todos los vecinos de N que estn en estado de
preparados (ESTADO=1) y cambiar su estado al de espera
(ESTADO=2).
[ fin del bucle del paso 3 ]
6. Salir.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Mtodos de bsqueda Heurstica


Informacin sobre el problema (informacin del dominio) que permite reducir la bsqueda.

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

DESCRIPCION GENERAL DEL ALGORITMO "EL MEJOR PRIMERO"


Se comienza insertando el nodo S (nodo de comienzo) en la lista OPEN. A continuacin se
van procesando sucesivamente los nodos en OPEN: se comprueba si son nodos meta, y en
caso de que no lo sean, se meten en la lista CLOSED, se introducen sus sucesores en
OPEN y se actualiza la funcin heurstica f(N) para cada nodo N procesado. Los nodos en
OPEN son tratados segn un orden que da la mayor prioridad al nodo con menor f(N).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

EJEMPLO: Resolver utilizando el mtodo de mejor-primero:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

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

grafo). Para comprobar esta ltima condicin, ay que recordar


c

que el enlace-padre de ada nodo apunta hacia el mejor padre de


generados hasta el momento. Aadir VIEJO a la lista de
sucesores de MEJOR-MODO.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Es posible aplicar el mtodo de bsqueda A* en este "mapa de carreteras"?


Si tenemos la funcin f(N) = g(N) + h(N) donde:
g(N) = menor distancia real desde el inici hasta N.
h(N) = menor distancia estimada desde N hasta la meta.
Mediante las coordenadas X, Y de cada nodo se puede calcular la distancia entre
cada par de nodos, luego s podemos hallar la g(N). Igualmente podemos estimar
la "distancia en lnea recta" desde N hasta la meta, por lo tanto, tambin se puede
hallar h(N). Por consiguiente, podemos aplicar el mtodo de A*.
1.- Hay un nico nodo de OPEN, el origen A.
OPEN A
P(A) = NULL
g(A) = 0
h(A) = 173
f(A) = 173
quedando al final de esta primera etapa:
OPEN = A
CLOSED =NIL
2.- A Meta y adems es el nico nodo en OPEN luego,
CLOSED
A
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

quedando al final-de esta etapa:


OPEN

B, C

CLOSED

3.- f(C) < f(B) luego metemos C a CLOSED


CLOSED

Generamos los sucesores de C, que en este caso es nicamente D


D OPEN v CLOSED
P(D) = C
g(D) = g(C) + dist(C - D) = 20+8=7.3
h(D)= 53
f(D)=7.3+53=14.58
OPEN
D
Quedando al final de esta etapa:
OPEN B, D
CLOSED
A, C

4.- f(B) < f(D)


CLOSED

Generamos los sucesores de B que en este caso seran D y C


el sucesor D OPEN
P'(D) = B
g'(D) = g(B) + dist (13 - D)
=10 +10 = 6.32
g'(D) = 6.32 < g (D) = 7. 3

el sucesor C CLOSED
P'(C) = B
g'(C) = g(B) + dist (B - C)
=10+10 = 6.32
'

g (C) > g(C)

Luego hay que modificar

luego no cambia nada

P(D) = B
g(D) = 6.32

P(C) = A
g(C) = 4.47

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
f (D) = g'(D) + h (D)
= 6.32 + 53
= 13.6

f(C) = 13.47

Quedando al final de esta etapa:


OPEN
D
CLOSED
A, B

5.- Solo hay un nodo en OPEN, luego no hay que compararlo


CLOSED

Generamos

los

sucesores

E OPEN v CLOSED

de

D,

en

este

caso

son

F OPEN v CLOSED

P(E) = D

P(F) = D

g(E) = g(D) + dist (D - E)


= 6.32 + 37 = 12.4
h(E) = 10
f(E) =12.4 + 10 = 15.56
OPEN

g(F) = g(D) + dist (D - F)


=6.32 + 8=9.15
h(F) = 25 = 5
f(F) = 9.15+5

OPEN

Quedando al final de esta etapa:


OPEN
E, F
CLOSED
A, B, D
6.- f(F) < f(E), por lo tanto, metemos F en CLOSED
CLOSED

Generamos los sucesores de F, siendo en este caso solo G


G OPEN v CLOSED
P(G) = F
g(G) = g(F) + dist (F - G)
= 9.15 + 5 = 14.15
h(G) = 0
f(G)=14.15+0=14.15
OPEN G
Quedando al final de esta etapa:
OPEN
E, G
CLOSED
A, B, D, F
7.- f(G) < f(E) y adems G es la meta luego metemos G a CLOSED
CLOSED

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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;

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

ORDENAR UNA PILA DE BLOQUES.

OPERADORES PARA LOS BLOQUES:


1. Libre(x) Sobre(x, Mesa)
2. Libre(x) Y Libre(y) Sobre(x, y)
FUNCIN HEURSTICA:
Local: Aadir un punto por cada bloque sobre el lugar correcto. Restar un punto por cada bloque
sobre el lugar incorrecto.
Global: Para cada bloque que est sobre la estructura de apoyo correcta (es decir, la estructura
que tiene debajo es exactamente la que tiene que ser), aadir un punto por cada bloque en la pila.
Para cada bloque que est sobre una estructura incorrecta, restar un punto por cada bloque en la
pila.

BSQUEDA EN HAZ: La bsqueda en haz es parecida a la bsqueda en amplitud en


cuanto a que avanza nivel por nivel. Sin embargo, se diferencia de esta, la bsqueda en haz
se mueve hacia abajo solo a travs de los mejores nodos de cada nivel; los otros nodos se
ignoran.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Un programa escrito en PROLOG puro, es un conjunto de clasulas de Horn. Sin embargo,


PROLOG, como lenguaje de programacin moderno, incorpora ms cosas, como
instrucciones de Entrada/Salida, etc.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

HISTORIA Y DESARROLLO DE PROLOG.


Una de las preocupaciones ms tempranas de la computacin de los aos cincuenta fue la
posibilidad de hacer programas que llevaran a cabo demostraciones automticas de teoremas. As
empezaron los primeros trabajos de inteligencia artificial que ms de veinte aos despus dieron
lugar al primer lenguaje de programacin que contempla, como parte del intrprete, los mecanismos
de inferencia necesarios para la demostracin automtica. Este primer lenguaje est basado en el
formalismo matemtico de la Lgica de Primer Orden y ha dado inicio a un nuevo y activo campo
de investigacin entre las matemticas y la computacin que se ha denominado la Programacin
Lgica.
Estos mecanismos de prueba fueron trabajados con mucho entusiasmo durante una poca, pero, por
su ineficiencia, fueron relegados hasta el nacimiento de PROLOG, ocurrido en 1970 en la
Universidad de Marsella, Francia, en el seno de un grupo de investigacin en el campo de la
Inteligencia Artificial.
La Programacin Lgica tiene sus orgenes ms cercanos en los trabajos de prueba automtica de
teoremas de los aos sesenta. J. A. Robinson propone en 1965 una regla de inferencia a la que llama
resolucin, mediante la cual la demostracin de un teorema puede ser llevada a cabo de manera
automtica.
La resolucin es una regla que se aplica sobre cierto tipo de frmulas del Clculo de Predicados de
Primer Orden, llamadas clusulas y la demostracin de teoremas bajo esta regla de inferencia se
lleva a cabo por reduccin al absurdo.
Actualmente, la programacin lgica ha despertado un creciente inters que va mucho ms all del
campo de la Inteligencia Artificial ( IA ) y sus aplicaciones. Los japoneses, con su proyecto de
mquinas de la quinta generacin, dieron un gran impulso a este paradigma de programacin. Sin
embargo, antes que ellos existan ya en Estados Unidos y en Europa grupos de investigacin en este
campo, en pases como Inglaterra, Holanda, Suecia y, desde luego, Francia.
A principios de los aos ochentas los japoneses comienzan a invertir recursos en un proyecto que
denominan la Quinta Generacin, para lucrar con la buena fama de los 4GL. Con este ambicioso
proyecto Japn busca obtener el liderazgo en computacin, usando como base la Programacin
Lgica y la Inteligencia Artificial.
La programacin lgica tiene sus races en el clculo de predicados, que es una teora matemtica
que permite, entre otras cosas, lograr que un computador pueda realizar inferencias, capacidad que
es requisito para que un computador sea una "mquina inteligente". La realizacin del paradigma de
la programacin lgica es el lenguaje Prolog.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Las diferencias sintcticas entre las representaciones lgicas y las representaciones


PROLOG son las siguientes:

En PROLOG todas las variables estn implcitamente cuantificadas universalmente.


En PROLOG existe un smbolo explicito para la conjuncin "y" (","), pero no existe
uno para la disyuncin "o", que se expresa como una lista de sentencias alternativas.
En PROLOG, las implicaciones p --> q se escriben alrevs q :- p, ya que el
interprete siempre trabaja hacia atrs sobre un objetivo, como se vera ms adelante.

Elementos fundamentales del lenguaje PROLOG.


HECHOS
VARIABLES
REGLAS
OPERADORES

ESTRUCTURA DE UN PROGRAMA PROLOG


Un programa Prolog est formado por una secuencia de enunciados: hechos, reglas y comentarios.
Una relacin puede estar especificada por hechos, simplemente estableciendo objetos que satisfacen
la relacin o por reglas establecidas acerca de la relacin. Cada regla est formada por un primer
miembro (o la cabeza de la regla), un segundo miembro (o cola de la regla) ligados por " :- " y
termina con el carcter " . ".
%cdigo del programa
%%Hechos **
mujer(maria).
hombre(pedro).
hombre(manuel).
hombre(arturo).
%%Relaciones **
padre(pedro,manuel).
padre(pedro,arturo).
padre(pedro,maria).
%%Reglas **
nino(X,Y):- padre(Y,X)
hijo(X,Y):-nino(X,Y),hombre(X).
hija(X,Y):-nino(X,Y),mujer(X).
hermano_o_hermana(X,Y):-padre(Z,X),padre(Z,Y).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

TIPOS DE DATOS EN PROLOG


Symbol: Hay dos tipos de smbolos. Un grupo de caracteres consecutivos (letras, nmeros y signos
de subrayado) que comienzan con un carcter en minscula. Ejemplo:
alto, alto_edificio, el_alto_ edificio_en_la_ciudad
Un grupo de caracteres consecutivos(letras y nmeros) que comienzan y terminan con dobles
comillas("). Este tipo es til cuando se quiere comenzar el smbolo con un carcter en mayscula o
si se quieres agregar espacios entre los caracteres del smbolo.
Ejemplo:
"alto","alto edificio"
String: Cualquier grupo de caracteres consecutivos (letras y nmeros) que comience y termine con
dobles comillas("). Es igual a smbolo pero Prolog los trata de forma distinta.
Ejemplo:
"alto","alto edificio"
Integer: Cualquier nmero comprendido entre (-32.768 y 32.768). El lmite esta determinado
porque los enteros se almacenan como valores de 16 bits, este lmite puede variar segn la versin
de Prolog. Ejemplo:
4,-300,3004
Real: Cualquier numero real en el rango +/- 1E-307 a +/-1E+308. El formato incluye estas
opciones: signo, numero, punto decimal, fraccin, E(exponente), signo para el exponente,
exponente. Ejemplo:
3,3.1415
Char: Cualquier carcter de la lista ASCII estndar, posicionado entre dos comillas sencillas().
Ejemplos:
t,X,f

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.

Los nombres de variables comienzan siempre por una letra mayscula.

Un caso particular es la variable annima, representada por el carcter subrayado ("_"). Es


una especie de comodn que utilizaremos en aquellos lugares que debera aparecer una

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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 (".").

La cabeza en una regla PROLOG corresponde al consecuente de una implicacin lgica, y


el cuerpo al antecedente. Este hecho puede conducir a errores de representacin.
Supongamos el siguiente razonamiento lgico:
tiempo(lluvioso) ----> suelo(mojado)
suelo(mojado)
Que el suelo est mojado, es una condicin suficiente de que el tiempo sea lluvioso, pero no
necesaria. Por lo tanto, a partir de ese hecho, no podemos deducir mediante la implicacin,
que est lloviendo (pueden haber regado las calles). La representacin correcta en
PROLOG, sera:
suelo(mojado) :- tiempo(lluvioso).
suelo(mojado).
Advirtase que la regla est "al revs". Esto es as por el mecanismo de deduccin hacia
atrs que emplea PROLOG. Si cometiramos el error de representarla como:
tiempo(lluvioso) :- suelo(mojado).
suelo(mojado).
PROLOG, partiendo del hecho de que el suelo est mojado, deducira incorrectamente que
el tiempo es lluvioso.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
Para generalizar una relacin entre objetos mediante una regla, utilizaremos variables. Por
ejemplo:
Representacin lgica

Representacin PROLOG

es_un_coche(X) ----> tiene(X,ruedas) tiene(X,ruedas) :- es_un_coche(X).

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)).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Al igual que en otros lenguajes de programacin es necesario X >= Y mayor igual


tener en cuenta la precedencia y la asociatividad de los
Verdadero si X e
X=:=Y
operadores antes de trabajar con ellos.
Y son iguales
En cuanto a precedencia, es la tpica. Por ejemplo, 3+2*6 se X=\=
evala como 3+(2*6). En lo referente a la asociatividad,

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Verdadero si X e
Y son diferentes

Elaborado por Ing. Ariel Chvez Toruo

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 ).

exitsys: Este predicado nos devuelve al sistema operativo.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Estructuras de datos: Las Listas


Una lista es una arreglo ordenado se elementos cuya
longitud (numero de elementos) es variable. La lista es
una estructura de datos muy comn en la programacin no
numrica. Es una secuencia ordenada de elementos que
puede tener cualquier longitud. Ordenada significa que el
orden de cada elemento es significativo. Un elemento
puede ser cualquier trmino e incluso otra lista. Se
representa como una serie de elementos separados por
comas y encerrados entre corchetes.

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]]

Por ejemplo: [Dom, Lun, Mar, Mier, Jue, Vier, Sab]


En Prolog se representa con una serie de elementos separados por , entre parntesis cuadrados.
Ejemplos:
[a,b,c]
[ ] - lista vaca
[a,[b,c],d] - un elemento puede ser a su vez una lista
Para procesar una lista, la dividimos en dos partes: la cabeza y la cola. Por ejemplo:
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. Es decir, las listas se manipulan especificando su cabeza (Head primer elemento), y cola (Tail - lista del resto de los elementos.) Por ejemplo:
p([1,2,3]).
p([el,gato,estaba,[en,la,alfombra]]).
?-p([X|Y]).
X = 1,
Y = [2,3]
More (Y/N):y
X = el,
Y = [gato,estaba,[en,la,alfombra]]
------------------------------------------

[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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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]])

A continuacin veremos algunas operaciones importantes con listas.


% inserta un elemento al inicio de una lista:
inserta(E,Li,Lf):-Lf=[E$|$Li].
% inserta mejorado:
inserta2(E,Li,[E$|$Li]).
% match.
match([],[]).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

write: Su sintaxis es:


write('Hola mundo').

Las comillas simples encierran


constantes, mientras que todo
lo que se encuentra entre comillas dobles es tratado como una lista. Tambin podemos mostrar el
valor de una variable, siempre que este instanciada: write(X).

nl: El predicado nl fuerza un retorno de carro en la salida.

Ejemplo:

write('lnea 1'), nl, write('lnea 2').


tiene como resultado:
lnea 1
lnea 2
read: Lee un valor del teclado. La lectura del comando read no finaliza hasta que se
introduce un punto ".". Su sintaxis es: read(X).
Instancia la variable X con el valor ledo del teclado.
read(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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

EL MECANISMO DE CONTROL DE PROLOG


El mecanismo empleado por PROLOG para satisfacer las cuestiones que se le plantean, es el de
razonamiento hacia atrs (backward) complementado con la bsqueda en profundidad (depth first) y
la vuelta atrs o reevaluacin (backtracking).
Razonamiento hacia atrs: Partiendo de un objetivo a probar, busca las aserciones que pueden
probar el objetivo. Si en un punto caben varios caminos, se recorren en el orden que aparecen en el
programa, esto es, de arriba a abajo y de izquierda a derecha.
Reevaluacin: Si en un momento dado una variable se instancia con determinado valor con el fin
de alcanzar una solucin, y se llega a un camino no satisfactorio, el mecanismo de control retrocede
al punto en el cual se instanci la variable, la desinstancia y si es posible, busca otra instanciacin
que supondr un nuevo camino de bsqueda.
Ejemplo:
Se puede ilustrar esta estrategia sobre el ejemplo anterior. Supongamos la pregunta:
?-puede_casarse_con(maria, X).
PROLOG recorre la base de datos en busca de un hecho que coincida con la cuestin planteada. Lo
que halla es la regla:
puede_casarse_con(X, Y) :- quiere_a(X, Y), varon(X), hembra(Y).
Producindose una coincidencia con la cabeza de la misma, y una instanciacin de la variable X
de la regla con el objeto 'maria'. Tendremos por lo tanto:
(1) puede_casarse_con(maria,Y) :- quiere_a(maria,Y), varon(maria), hembra(Y).
A continuacin, se busca una instanciacin de la variable Y que haga cierta la regla, es decir, que
verifique los hechos del cuerpo de la misma.
La nueva meta ser : (2) quiere_a(maria, Y).
De nuevo PROLOG recorre la base de datos. En este caso encuentra un hecho que coincide con el
objetivo:
quiere_a(maria, enrique).
instanciando la variable Y con el objeto 'enrique'. Siguiendo el orden dado por la regla (1),
quedan por probar dos hechos una vez instanciada la variable Y:
varon(maria), hembra(enrique).
Se recorre de nuevo la base de datos, no hallando en este caso ninguna coincidencia con el hecho
varn(maria). Por lo tanto, PROLOG recurre a la vuelta atrs, desistanciando valor de la variable
Y, y retrocediendo con el fin de encontrar una nueva instanciacin de la misma que verifique el
hecho (2). Un nuevo recorrido de la base de hechos da como resultado la coincidencia con:
quiere_a(maria, susana).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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''

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Mtodo Quicksort (Ej. Dividir en menores y mayores a un cierto elemento, ordenarlos y


juntarlos todos.)
qsort([H|T],LO) :divide(H,T,Men,May),
qsort(Men,MenO),
qsort(May,MayO),
agrega(MenO,[H|MayO],LO).
qsort([],[]).
divide(El,[H|T],[H|Men],May) :-

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

El > H,
divide(El,T,Men,May).
divide(El,[H|T],Men,[H|May]) :El < H,
divide(El,T,Men,May).
divide(_,[],[],[]).

Elaborado por Ing. Ariel Chvez Toruo

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).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

FUNCIONES Y PASOS DE PARMETROS.


La recursividad es un mecanismo que da bastante potencia a cualquier lenguaje de programacin.
Ejemplo: La siguiente programacin recursiva 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 evala como cierta siempre que coincida la variable
X con la cabeza de la lista que se pasa como argumento. En la regla (2) es 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).
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.
La definicin de una funcin esta en los hechos que adoptemos para inferir sobre la base de
conocimiento de Prolog, el paso de parmetros debe definirse en las reglas a travs de los
predicados que los invoquen, ya sea por el mismo o por otro predicado.
Para que los predicados definidos como funcin, no retornen un valor errado, el tipo de dato de la
variable del predicado llamador debe ser igual al del predicado llamado. Esto es debido a que los
predicados aritmticos propios de Prolog no identifican entre un nmero real o entero.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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)

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

A la actividad de construir estos sistemas se le denomina: Ingeniera del


Conocimiento (INCO)
La INCO busca el adquirir, conceptuar, formalizar y usar grandes cantidades de
conocimientos de la mas alta calidad
Sus programas exhiben

INTELIGENCIA
ARTIFICIAL

comportamientos inteligentes por


SISTEMAS BASADOS
EN CONOCIMIENTOS

Hacen explcitos los


conocimientos de un dominio y

SISTEMAS
EXPERTOS

Aplican los conocimientos


expertos a problemas difciles del

Arquitectura tpica de un sistema experto

Motor de
Inferencias.

Interfaz

Usuario
Base de
Conocimientos

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.
E
S
T

M
U
L
O

MEMORIA A LARGO PLAZO

SENSORES

MEMORIA

MEMORIA DE
TRABAJO

MEMORIA

MSCULOS

PROCESADOR
COGNITIVO
SUSBSISTEMA
PRECEPTIVO

R
E
S
P
U
E
S
T
A

SUSBSISTEMA
MOTOR
SUSBSISTEMA COGNITIVO

Sistema humano de procesamiento de la informacin

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

SOLUCIN INFORMTICA DE UN PROBLEMA


PROBLEMA

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

DESARROLLAR MARCO CONCEPTUAL EN


TERMINOS DE REPRESENTACION E
INFERENCIA

INSTRUMENTAR SISTEMA ADECUADO .


PROBAR Y ACTUALIZAR

SISTEMA BASADO EN EL CONOCIMIENTO

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Elaborado por Ing. Ariel Chvez Toruo

Sistemas hibridos grandes

Sistemas hibridos
muy grandes

Inteligencia Artificial.

5.1 SISTEMAS EXPERTOS.

Los mecanismos de explicacin, la parte ms fascinante de los sistemas expertos,


permiten a los sistemas explicar o justificar sus conclusiones, y tambin posibilitan
a los programadores verificar el funcionamiento de los propios sistemas.

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.

Un sistema experto es una aplicacin informtica que simula el comportamiento de un experto


humano en el sentido de que es capaz de decidir cuestiones complejas, si bien en un campo
restringido.
Siendo la principal caracterstica del experto humano el conocimiento o habilidades profundas en
ese campo concreto, por consiguiente, un sistema experto debe ser capaz de representar ese
conocimiento profundo con el objetivo de utilizarlo para resolver problemas, justificar su
comportamiento e incorporar nuevos conocimientos. Se podra incluir tambin el hecho de poder
comunicarse en lenguaje natural con las personas, si bien esta capacidad no es tan determinante
como las anteriores de lo que se puede definir como Sistema Experto.
a) Problemas solubles con sistemas expertos.
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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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).

b) Estructuras y cualidades de un sistema experto.


Un diagrama general de bloques de un Sistema Experto se representa en la figura siguiente:
Usuario

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Base de datos
(Memoria de trabajo)
Estado del sistema
Estados iniciales
Estado actual
Factores

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Establecer los criterios de control de dialogo con la persona


Establecer los criterios para resolver problemas; siempre existen criterios que utilizan
mecanismos diferentes.
La Interfaz del Usuario
Debe permitir correr el programa y tener todas las facilidades para consultar, preguntar porqu el
programa eligi esa regla y obtuvo ese hecho o dato, porqu se us ese algoritmo diferente. La
interfaz del usuario debe permitir desarrollo, es decir debe poder editarse reglas, crear nuevas
reglas, crear bases de datos, agregar datos, etc.
Tiene que haber una comunicacin en forma amistosa y suave hacia el usuario, y mostrar todo el
proceso que se esta desarrollando, ya que a nosotros nos interesa saber lo que esta sucediendo y
porque se esta aplicando este teorema, esta regla, etc. La mayora de estos Shell tienen esta
facilidad. Un usuario paso a paso aprende a pensar como el experto, esto es algo nuevo pues el
programa experto nos permite no solamente resolver un problema con xito, sino que tambin
prepararnos.
Funcin de la Interfaz del Usuario

Permite un aprendizaje rpido.


Filtra los datos para eliminar errores.
Presenta los resultados en forma clara y precisa.
Permite dar explicaciones (hacer preguntas.)

Estrategias para Aplicar Control Experto


Una manera es meterse y buscar llegar hasta la respuesta final por una sola rama, llamada
bsqueda en profundidad. Otra manera es desarrollar todo lo que esta a lo ancho del problema
hasta llegar a la solucin. Otras maneras pueden ser:

Elegir la regla que ms influye en la hiptesis.


Elegir la regla donde la recopilacin de hechos sea menos costosa.
Elegir la regla cuyos hechos determinen menos riesgos.
Elegir la regla que reduzca el espacio de bsqueda.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Diagrama general de bloques de un Sistema Experto


Los componentes claves son la base de conocimiento, el sistema de inferencias, la base de datos y
el interfase con el usuario.
El corazn de los Sistemas Expertos es la base de conocimientos, que tiene diferentes formas de
representarse, como Reglas de produccin, clculo de predicado, Marcos, Listas, Redes
semnticas, Libretos, etc.
La base de datos es llamada algunas veces base de datos global porque contiene un amplio rango
de informacin acerca del estado actual del problema que est siendo resuelto. En la practica, la
base de datos es realmente una porcin de memoria de trabajo donde el estado actual del proceso
del problema que se est resolviendo se guarda.
La mquina de inferencia es el software que implementa una bsqueda y opera los modelos
encontrados. Siendo su funcin principal probar la hiptesis o desaprobarla.
La interfase con el usuario hace fcil el manejo del Sistema experto, ocultando todas las
complejidades de sus procesos.
Un Sistema de Representacin de Conocimiento para un universo U consiste en:
a) Una coleccin E de etiquetas que pueden representar individuos en U; estas etiquetas se
dividen en constantes y variables.
b) Una coleccin F de funciones.
c) Una coleccin R de relaciones.
d) Un lenguaje L consistente en reglas para combinar las funciones, relaciones y etiquetas en
expresiones bien formadas de L.
e) Una semntica S que provee de significado a las etiquetas, funciones y relaciones.
An suponiendo que poseamos un conocimiento lo suficientemente detallado de la materia que
pretendemos representar, resulta crucial el disponer de una notacin lo suficientemente precisa
como para poder plasmar ese conocimiento de forma que pueda ser usado de forma inteligente
por un cerebro electrnico. A esta notacin se le da el nombre de esquema de representacin.
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.
Segn la clase de problemas hacia los que estn orientados, podemos clasificar los Sistemas
Expertos en diversos tipos entre los que cabe destacar diagnosis, pronstico, planificacin,
reparacin e instruccin; vamos a ver algunas de las aplicaciones existentes (o en periodo de
desarrollo) para cada uno de los campos citados.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

en Estados Unidos), diseado especficamente para la direccin de la produccin. Las entradas a


este programa comprenden las designaciones de procesos y mquinas de fabricacin de una
planta, las especificaciones de productos y el flujo de produccin, a partir de lo cual puede
representar grficamente la planta industrial y el flujo de cada tipo de productos. Con estas
representaciones pueden organizarse y reorganizarse las operaciones de fabricacin. El programa
ayuda a la planificacin y programacin, asesorando en lo que se refiere a los programas que
reducen el trabajo no deseable en niveles de proceso, ajustan el volumen de produccin a la
demanda de clientes y evalan los cambios en las operaciones desde los puntos de vista
econmicos y de produccin. Puede crear una influencia recproca con los planificadores y
directores de planta a medida que las condiciones cambian a diario o a cada hora, como
consecuencia de averas mecnicas, modificaciones en los pedidos de los clientes o crisis en el
exterior. El Palladian Operations Advisor puede analizar el estado de la combinacin de
productos para mantener la mayor eficacia y rentabilidad posible de las operaciones.
Como caso concreto dentro de la CAPV, la empresa DATALDE ha desarrollado un Sistema
Experto para la planificacin de la produccin. Dicho trabajo se centra en un taller de propsitos
generales de unas caractersticas determinadas, consistiendo la planificacin en ordenar en el
tiempo las cargas originadas por los diferentes pedidos, de forma que se asuman los objetivos de
cumplimiento de plazos, distribucin eficaz del trabajo y gestin de colas y prioridades. Por su
parte, la empresa ROBOTIKER ha desarrollado un sistema de planificacin y control de
produccin integral, dentro del que se identifican algunas tareas susceptibles de resolucin
mediante sistemas inteligentes (es un sistema basado en MRP-II).
El diseo es tambin un tema de planificacin. En este caso, a partir de una serie de
requerimientos y restricciones, se obtiene el objeto que las satisface. En este campo, LABEIN
(Laboratorio de Ensayos e Investigaciones Industriales, Centro de Investigacin tutelado por el
Gobierno Vasco), desarroll un sistema inteligente para el diseo de motores elctricos mediante
la aplicacin de las tecnologas clsicas de Sistemas Expertos a los sistemas de CAD / CAE de
diseo y anlisis. El problema que motiv este proyecto era que ciertos motores, de entre los
elctricos, son de uso frecuente en la industria exigiendo a la vez un diseo a medida de cada
caso, por ello se crey conveniente desarrollar una herramienta que asesorase o, incluso, dirigiera
al operador.
Otro tipo de Sistemas Expertos son los orientados a la reparacin, sin embargo, no se puede
decir que sea un tipo realmente nuevo, ya que este enfoque abarca diagnosis y planificacin.
Dentro de este grupo se incluyen sistemas como DELTA, que ayuda a los mecnicos en el
diagnstico y reparacin de locomotoras diesel-elctricas. DELTA no solo da consejos expertos,
sino que tambin presenta informaciones por medio de un reproductor de vdeo. De hecho se
podra encasillar a DELTA ms en el rea de la instruccin que en reparacin, dado que adems
proporciona ayudas al trabajo que permiten al estudiante determinar si existe o no un
determinado problema, proporcionando tambin formacin especfica sobre el modo de realizar
ciertas reparaciones.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Segn Wiston: Programa = Algoritmo + Estructura de datos.


Carecen de "autosabidura", solo las tcnicas que encierran y no pueden razonar o explicar
sus propios mecanismos
Los programas complejos son opacos y difciles de modificar. Los algoritmos incluyen
detalles de representacin del conocimiento (incipientes)
Intiles para codificar la experiencia o para comunicarla. As seria difcil aprender a jugar
al ajedrez examinando un programa convencional que supiera jugar.
Inteligencia Artificial
Representacin e inferencia simblica
Bsqueda heurstica
Campo base de la epistemologa pragmtica
Sistemas Expertos. (basados en el conocimiento), adems de la I.A. incluyen
Ejecutan tareas difciles con la competencia de un experto humano
nfasis en las estrategias de solucin de problemas de dominios concretos ms que en
mtodos generales.
Autoconocimiento para razonar acerca de sus propios procesos de inferencia y dan
justificacin de las conclusiones obtenidas.
Dan una enorme importancia al conocimiento posedo, con relacin al formalismo o
esquema de inferencia utilizados.
Feignbaum: la potencia del S.E. deriva de su base de conocimiento
De ah que aparezca con entidad propia la base de conocimiento, separada de sus
mecanismos de control.
Programa = Estructura de datos + Base de conocimiento lgico + Control
En tres niveles: hechos, conocimientos, decisiones.
Emplean conjuntamente de manera coordinada muchas tcnicas de IA.
Resuelven problemas de:
- interpretacin
- depuracin
- vigilancia
- control
- toma de decisiones

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

- prediccin
- diagnstico
- diseo
- planificacin
- reparacin
- instruccin
- asesoramiento
- evaluacin de situaciones
- evaluacin de sucesos

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Metodologa para construir un sistema experto:

Identificacin del Problema.


Conceptualizacin del Problema .
Formalizarlo a travs de una lgica o algn lenguaje formal
Implementacin eligiendo un Shell
Pruebas

Identificacin del Problema


El Experto e Ingeniero identifican el rea del problema y definen alcances.
Determinacin de recursos necesarios, tiempo y facilidades computacionales.
Decisin sobre metas y objetivos de la construccin del sistema experto.
Conceptualizacin del Problema
El Ingeniero y Experto explican conceptos claves relaciones y caractersticas del flujo de
Informacin, necesarias para describir la solucin del problema.
Especificaciones de sub-tareas, estrategias y necesidades relacionadas con la actividad de
resolver el problema.
Formalizacin
Graficar los conceptos claves y relaciones en una representacin formal sugerida por un
lenguaje o una herramienta.
Seleccin del lenguaje o Shell.
Representacin de conceptos y relaciones dentro de la estructura del lenguaje.
Implementacin

El ingeniero organiza la base del conocimiento en una base de datos.


Se elige la base de datos.
Se define un conjunto de reglas y estructuras de control del programa.
Se realiza el programa.

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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, la Inteligencia Artificial, que se encontraba confinada en la "sala de


ordenadores", se va abriendo paso hacia la junta directiva. La razn de esto es simple: a medida
que el mundo empresarial se complica y se llega a la competencia internacional, el conocimiento
se convierte en el factor profesional ms importante para un ejecutivo. A la persona que est
planeando la estrategia a seguir por su empresa o que tome decisiones en produccin, marketing,
distribucin o asignacin de recursos, los Sistemas Expertos le pueden demostrar que se pueden
tomar decisiones con ms conocimiento, llevando a un aumento de ganancias as como a la
obtencin de beneficios importantes para la empresa, como el aumento de su capacidad.

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.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

a interpretar la multitud de datos procedentes de los departamentos de diseo, de la planta de


produccin y de los representantes de los clientes, observan modelos procesables en dichos datos,
prueban mentalmente, y con ordenadores, posibles lneas de accin, recomiendan las medidas que
la gerencia debe tomar y ayudan luego a poner en marcha sistemas pensados para conseguir
planificaciones mejores, operaciones ms fluidas y una competencia ms efectiva.
Los Sistemas Expertos ofrecen procedimientos informatizados para perfeccionar la toma de
decisiones de la gerencia por medio de la combinacin del conocimiento que poseen los expertos
acerca del tipo de acciones que tiene que efectuar y la forma y el tiempo en que debe llevarlas a
cabo con la permanencia, lgica, memoria y velocidad de clculo del ordenador. En tanto que
muchos sistemas expertos se ocupan del razonamiento tcnico ms que del gerencial, la gerencia
puede obtener ordenadores de mucha potencia, con grandes memorias, rpidos y programados
para tratar problemas clave de forma efectiva en un rea empresarial determinada.
El xito del directivo experto en la aplicacin de sistemas como en las plantas de fabricacin,
grandes o pequeas, se mide por resultados tales como rendimientos mayores en la calidad de los
productos, entregas a los clientes dentro de plazo, reduccin de los retrasos en planta, reduccin
de costes procedentes de errores, mejor utilizacin de los materiales, mejor utilizacin del
personal y mejora en las compras y reduccin en los costes de material.
Como cualquier otra forma de software tradicional, los sistemas Expertos ofrecen algunas
ventajas:
a)
b)
c)
d)
e)
f)

Permitir que los no expertos trabajen como expertos.


Mejorar la productividad aumentando los trabajos realizados con mayor eficiencia.
Ahorrar tiempo al alcanzar objetivos especficos.
Simplificando algunas operaciones.
Automatizar procesos repetitivos, tediosos y llenos de complejidad.
Permiten que nuevos tipos de problemas sean resueltos haciendo a las computadoras ms
tiles.
g) Capturan y guardan valiosos conocimientos evitando perdidas debidas a retiros o muertes
de expertos.
h) Hacen que el conocimiento est disponible a una mayor audiencia, incrementando la
habilidad de resolver problemas a un nmero mayor de personas.

Entre las desventajas tenemos:


a) Desarrollar un sistema experto es ms difcil que la creacin de un software convencional.
Los buenos expertos son difciles de encontrar y la extraccin del conocimiento es un
trabajo tedioso y tardado.
b) Los sistemas expertos son caros. Cuesta mucho su desarrollo, prueba y la entrega a los
usuarios finales.
c) El tamao de la memoria y la rapidez de una computadora personal limitan su utilidad.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

representante del grupo de usuarios. Para la aceptacin, y en consecuencia para el xito, es de


vital y suma importancia tener en cuenta los deseos y las ideas del usuario.
Una vez delimitado el dominio, se ampla el sistema con los conocimientos del experto. El
experto debe comprobar constantemente si su conocimiento ha sido transmitido de la forma ms
conveniente. El ingeniero del conocimiento es responsable de una implementacin correcta, pero
no de la exactitud del conocimiento. La responsabilidad de esta exactitud recae en el experto.
De ser posible, el experto deber tener comprensin para los problemas que depara el
procesamiento de datos. Ello facilitar mucho el trabajo. Adems, no debe ignorarse nunca al
usuario durante el desarrollo, para que al final se disponga de un sistema que le sea de mxima
utilidad.
La estricta separacin entre usuario, experto e ingeniero del conocimiento no deber estar
siempre presente. Pueden surgir situaciones en las que el experto puede ser tambin el usuario.
Este es el caso, cuando exista un tema muy complejo cuyas relaciones e interacciones deben ser
determinadas una y otra vez con un gran consumo de tiempo. De esta forma el experto puede
ahorrarse trabajos repetitivos.
La separacin entre experto e ingeniero del conocimiento permanece, por regla general
inalterada.
Mtodos auxiliares en el desarrollo
La eficiencia en la creacin de Sistemas Expertos puede aumentarse en gran medida con la
aplicacin de Shells.
Un Shell (de forma resumida) es un Sistema Experto que contiene una base de conocimientos
vaca. Existen el mecanismo de inferencia, el componente explicativo y a veces tambin la
interface de usuario.
Ya el mecanismo de inferencia depende del problema o grupos de problemas. No existe ningn
Shell para todas las aplicaciones, sino que hay que buscar un Shell para cada aplicacin.
Tambin es posible que haya que desarrollar adicionalmente partes del mecanismo de inferencia.
Segn el tamao de esta parte tendr que pensar si la aplicacin de un Shell determinado sigue
siendo apropiada. Si el ingeniero del conocimiento conoce bien este Shell, es decir si, por
ejemplo, conoce exactamente cmo son procesadas las reglas, entonces slo tendr que
concentrarse en la creacin de la base de conocimientos.
A menudo, el Shell contiene Frames. Estos son marcos previamente preparados, en los que, por
ejemplo, slo se introduce el nombre del objeto, sus cualidades y los correspondientes valores.
Las relaciones entre los objetos se indican mediante sealizacin de los dos objetos y del tipo de
relacin que exista entre ellos. El trabajo de implementacin debe reducirse al mximo. Los
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Aplicacin de sistemas basados en el conocimiento

Ejemplo: Cajero Automtico - Problema Determinista.


Un usuario (por ejemplo, un cliente) desea sacar dinero de su cuenta corriente mediante un cajero
automtico (CA). En cuanto el usuario introduce la tarjeta en el CA, la mquina la lee y la
verifica. Si la tarjeta no es verificada con xito (por ejemplo, porque no es legible), el CA
devuelve la tarjeta al usuario con el mensaje de error correspondiente.
En otro caso, el CA pide al usuario su nmero de identificacin personal (NIP). Si el nmero
fuese incorrecto, se dan tres oportunidades de corregirlo. Si el NIP es correcto, el CA pregunta al
usuario cunto dinero desea sacar. Para que el pago se autorice, la cantidad solicitada no debe
exceder de una cierta cantidad limite diaria, adems de haber suficiente dinero en su cuenta.
En este caso se tienen siete objetos, y cada objeto puede tomar uno y solo un valor de entre sus
posibles valores. La tabla muestra estos objetos y sus posibles valores.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

En la Regla 1, por ejemplo, la premisa consiste


en seis afirmaciones objeto-valor conectadas
mediante el operador lgico y, lo que indica que
la premisa objeto Pago (en la conclusin) con los
dems objetos. Segn la Regla 1, la accin que
debe iniciar el CA es dar el dinero al usuario si la
tarjeta se ha verificado correctamente, la fecha
no ha expirado, el NIP es correcto, el nmero de
intentos para dar el NIP correcto no se ha
excedido y la cantidad solicitada no excede ni la
cantidad disponible ni el lmite mximo diario.
Las expresiones lgicas en cada una de las
restantes reglas de la figura constan de una sola
afirmacin. Ntese que la Regla 1 indica cundo
debe permitirse el pago, y las restantes cundo
debe rechazarse. El motor de inferencia aplica
Modus Ponen y Modus Tollen.

Aplicando dichas reglas:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

d) Manejo de incertidumbre y probabilidad.


Los sistemas basados en reglas descritos en este captulo pueden aplicarse slo a situaciones
deterministas. En algunas resoluciones de problemas puede resultar adecuado describir las
creencias sobre las que no se tiene certeza, pero en las que existen algunas evidencias que las
apoyan. Por ejemplo, las relaciones entre las enfermedades y los sntomas no son deterministas,
puesto que un mismo conjunto de sntomas puede estar asociado a diferentes enfermedades. De
hecho, no es extrao encontrar dos pacientes con los mismos sntomas pero diferentes
enfermedades.
En muchos sistemas de resolucin de problemas un objetivo importante consiste en reunir
evidencias sobre la resolucin del sistema y modificar su comportamiento sobre la base de las
mismas. Para modelar este comportamiento se necesita una teora estadstica de la evidencia. Las
estadsticas bayesianas constituyen esta teora. El concepto fundamental de las estadsticas
bayesianas es el de la probabilidad condicionada. El teorema de Bayes se enuncia as:
P(Hi | E ) = P(E | Hi ) * P(Hi )

K
n =1

P(E | Hn ) * P(Hn )

donde:

P(Hi | E): La probabilidad de que la hiptesis Hi sea verdad dada la evidencia E.


P(E | Hi): La probabilidad de que se observe la evidencia E dada la hiptesis i como
verdadera.
P(Hi): La probabilidad a priori de que la hiptesis i sea cierta, independientemente de
cualquier evidencia especifica. Estas probabilidades se denominan probabilidades previas
o a priori.
k: El nmero total de hiptesis posibles.

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:

Incorporacin de los factores de certeza.


Redes bayesianas.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Se obtiene el factor de certeza de una hiptesis dada una combinacin de evidencias.

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

MB [h, s1] + MB [h, s2 ]*(1 - MB [h, s1])

en caso contrario

s MD[h, s1 ^ s2]= 1

MD [h, s1] + MD [h, s2 ]*(1 - MD [h, s1])

en caso contrario

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Se obtiene el factor de certeza dada una combinacin de hiptesis.

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])

Encadenamiento de reglas: El resultado de la incertidumbre de una regla es la entrada de


otra.
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])

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Por ejemplo, las funciones de probabilidad conjunta de las parejas X e Y son:

Por ejemplo, la probabilidad condicional de X dada Y es

Funciones de Probabilidad Marginal

Funciones de Probabilidad Conjuntas por Pares.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Funcin de Probabilidad Condicional de una Variable dado Otra.

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

A partir de la tabla se observa que la probabilidad a priori de una poca de lluvias es de 50 %,


entonces, si se esta en una poca de lluvias, la probabilidad de que llueva durante una noche dada
es de 90 %, si no es as, la probabilidad de que llueva es slo de 10 %.
Ejercicio.
Calcule CF, MB y MD de h1 dada tres observaciones, donde:
CF(h1,o1) = 0.5
CF(h1,o2) = 0.3
CF(h1,o3) = -0.2

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Conviene hacer los siguientes comentarios sobre la frmula:


La probabilidad p(ei) se llama probabilidad marginal, prior, a priori o inicial de la
enfermedad E = ei puesto que puede ser obtenida antes de conocer los sntomas.
La probabilidad p(ei|s1, . . . , sk) es la probabilidad posterior, a posteriori o
condicional de la enfermedad E = ei, puesto que se calcula despus de conocer los
sntomas S1 = s1, . . . , Sk = sk.
La probabilidad p(s1, . . . , sk|ei) se conoce por el nombre de verosimilitud de que un
paciente con la enfermedad E = ei tenga los sntomas S1 = s1, . . . , Sk = sk.
Ejemplo 3.4 Adenocarcinoma gstrico. Un centro medico
tiene una base de datos consistente en las historias clnicas
de N = 1, 000 pacientes. Estas historias clnicas se resumen
grficamente en la figura. Hay 700 pacientes (la regin
sombreada) que tienen la enfermedad adenocarcinoma
gstrico (G), y 300 que no la tienen (se considera estar sano
como otro valor posible de la enfermedad). Tres sntomas,
dolor (D), prdida de peso (P) y vmitos (V), se considera
que estn ligados a esta enfermedad.
Por tanto, cuando un paciente nuevo llega al centro mdico,
hay una probabilidad 700/1,000 = 70% de que el paciente
tenga adenocarcinoma gstrico. Esta es la probabilidad
inicial, o a priori, puesto que se calcula con la
informacin inicial, es decir, antes de conocer informacin alguna sobre el paciente.
Por simplicidad de notacin, se utiliza g para indicar que la enfermedad est presente y g para
indicar que la enfermedad est ausente. Notaciones similares se utilizan para los sntomas. Por
tanto, pueden hacerse las afirmaciones siguientes:
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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

Tras observar que V = v y P = p la probabilidad a posteriori es

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

SEXTA UNIDAD:

REDES NEURONALES
6.1.
6.2.
6.3.
6.4.
6.5.

Concepto de red neuronal artificial


Redes neuronales y computadoras digitales
Redes neuronales e IA
Redes neuronales y mecanismos de aprendizaje (supervisado no supervisado)
Redes neuronales y lgica borrosa

ANTECEDENTES DE LAS NEURONAS


Durante el periodo de 1967 a 1982, la bsqueda de la neurocomputacin se lleva acabo fuera de
Estados Unidos (la bsqueda en Japn, Europa, y la Unin Sovitica). Sin embargo, una gran
empresa investiga una cadena neuronal dentro de un proceso del principio adaptativo de procesos
de imgenes, reconocimiento de patrones y modelos biolgicos.
Los primeros aos de 1980, muchas investigaciones de la neurocomputacion empezaron a ser
audaces propuestas para explorar el desarrollo de neurocomputadoras y aplicaciones de redes
neuronales. En el primer lanzamiento de Defense Advanced Rechears Projects Agency
(DARPA), donde Ira Skurnick (un programa maestro para la oficina de defensa) rechazo a seguir
el concepto convencional e insisti a que escucharan sus argumentos a cerca de sus
investigaciones sobre la neurocomputacion.
Audazmente diversifica lo tradicional; Skurnick empez sus investigaciones en 1983. Dando el
estatus DARPA'S, como uno de los rbitros mundiales de la moda tecnologa.Pocos meses
despus el programa maestro de otras organizaciones se consolidaron dando con esto un gran
salto. Skurnic estuvo en el lugar adecuado en el momento adecuado para hacer una llave de
decisin que ayudara al lanzamiento del renacimiento de la neurocomputacin.
Algunas otras fuerzas en los aos de 1983 a 1986 fue Jonh Hopfiel, un fsico famoso con
reputacin mundial quien comenz una interesante investigacin en redes neuronales en pocos
anos. Hopfiel escribi dos grandes volmenes de redes neuronales en 1982 y 1984, que fueron
ledas por mucha gente alrededor del mundo persuadiendo a muchos fsicos y matemticos de
todo el mundo a unirse a la nueva investigacin de redes neuronales.
En realidad alrededor de 1986, aproximadamente una tercera parte de toda esta gente se haba
vuelto seguidor de Hopfiel. El trabajo de hopfiel ha sido descrito y su principal contribucin a
esta ciencia es que la a revitalizado. En algunos crculos de investigadores se ha desarrollado una
confusin en torno a que Hopfiel invento la neurocomputacion o es el que ha hecho los adelantos

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

6.1. CONCEPTO DE RED NEURONAL ARTIFICIAL


Las Redes Neuronales Artificiales (ANNs de Artificial Neural Networks1) fueron originalmente
una simulacin abstracta de los sistemas nerviosos biolgicos, formados por un conjunto de
unidades llamadas "neuronas" o "nodos" conectadas unas con otras. Estas conexiones tienen una
gran semejanza con las dendrtas y los axones en los sistemas nerviosos biolgicos.
La teora y modelado de redes neuronales artificiales est inspirada en la estructura y
funcionamiento de los sistemas nerviosos, donde la neurona es el elemento fundamental. Existen
neuronas de diferentes formas, tamaos y longitudes, estos atributos son importantes para
determinar la funcin y utilidad de la neurona.
Redes neuronales
biolgicas

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)

Comparacin entre RN biolgicas y artificiales.

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

Hay tres partes en una neurona:


El cuerpo de la neurona,
Ramas de extensin llamadas dendrtas para recibir las entradas, y
Un axn que lleva la salida de la neurona a las desdiras de otras neuronas.
La forma que dos neuronas interactuan no est totalmente conocida, dependiendo adems de cada
neurona. En general, una neurona enva su salida a otras por su axn. El axn lleva la
informacin por medio de diferencias de potencial, u ondas de corriente, que depende del
potencial de la neurona. Este proceso es a menudo modelado como una regla de propagacin
representada por la funcin de red u(.).

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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:

Unidades de procesamiento (la neurona artificial)


Estado de activacin de cada neurona.
Patrn de conectividad entre neuronas.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Regla de propagacin.
Funcin de transferencia.
Regla de activacin.
Regla de aprendizaje.

De acuerdo a las caractersticas de cada nodo de la red (microestructura), se presenta la forma de


organizacin de la red neuronal artificial (mesoestructura) en funcin de:

Nmero de
neuronas por nivel

Nmero de niveles

Grada de
conectividad

Tipo de conexiones
(Hacia atrs, hacia delante, lateral)

Caractersticas de un grupo de neuronas

Nmero de niveles o capas: La distribucin de neuronas dentro de la red se realiza


formando niveles o capas de un nmero determinado de neuronas cada una. A partir de su
situacin dentro de la red, se pueden distinguir tres tipos de capas: 1) de entrada, es la
capa que recibe directamente la informacin proveniente de las fuentes externa de la red;
2) ocultas, son internas a la red y no tiene contacto directo con el entorno exterior; y 3) de
salida, transfieren informacin de la red hacia el exterior.

Nmero de neuronas por nivel:

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Autoorganizacin: una red neuronal puede crear su propia organizacin o representacin de la


informacin que recibe mediante una etapa de aprendizaje.
Tolerancia a fallos: la destruccin parcial de una red conducen a una degradacin de su
estructura; sin embargo, algunas capacidades de la red se pueden retener, incluso sufriendo un
gran dao.
Operacin en tiempo real: los computadores neuronales pueden ser realizados en paralelo, y se
disean o fabrican maquinas con hardware especial para obtener esta capacidad.
Fcil insercin dentro de la tecnologa existente: se pueden obtener chip especializados para
redes neuronales que mejoran su capacidad en ciertas tareas. Esto facilitar la integracin
modular en los sistemas existentes.
Las redes neuronales son una tecnologa computacional emergente que puede utilizarse en un
gran nmero y variedad de aplicaciones, tanto comerciales como militares. Se pueden desarrollar
redes neuronales en un periodo de tiempo razonable y puede realizar tareas concretas mejor que
otras tecnologas convencionales.

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Red neuronal con una capa oculta y H unidades


Una red multicapas se define como un conjunto de perceptrones, ligados entre si por
sinpsis y dispuestos en capas siguiendo diversas arquitecturas. Una de las arquitecturas
ms comnmente usada es llamada feedforward: se tienen conexiones de la entrada a las
capas ocultas y de aqu a la salida. En la figura 4 se muestra una RN feedforward con N
entradas x=(x1,x 2,,x N) y una capa oculta de H unidades ocultas. El perceptron de
salida es denotado por z.
El funcionamiento de una RN es gobernado por reglas de propagacin de actividades y de
actualizacin de los estados. Tericamente, una RN puede ser vista como un modelo que
realiza una funcin de un espacio de entrada hacia un espacio de salida. El objetivo de
esta modelizacin consiste en que la asociacin sea lo ms acorde posible con el medio
ambiente del fenmeno estudiado. Observe en la figura 4 que el perceptron de salida z
tiene ahora como entradas las salidas de las unidades ocultas s: es justamente aqu donde
se realiza el mapeo del espacio de entrada hacia estados ocultos llamados
representaciones internas, que son una codificacin de la informacin, y de stas a la
salida.

6.2. REDES NEURONALES Y COMPUTADORAS DIGITALES


Para entender el potencial real de la computacin neuronal, ser necesario hacer una clara
distincin entre los sistemas de computacin neuronal y digitales.
Los sistemas neurolgicos no aplican principios de circuitos lgicos o digitales: un sistema de
computacin digital debe ser asncrono o asncrono; mientras que las neuronas non pueden ser
circuitos de umbral lgico, porque hay miles de entradas variables en la mayora de las neuronas
y el umbral es variable con el tiempo, siendo afectado por la estimulacin, atenuacin, etc. Los
procesos colectivos que son importantes en computacin neuronal no pueden implementarse en
computacin digital. Por lo que el cerebro debe ser un computador analgico.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Ni las neuronas ni las sinapsis son elementos de memoria biestables.


En la computacin neuronal no hay instruccin de mquina ni cdigos de control.
Los circuitos del cerebro no implementan computacin recursiva, y por
tanto no son algortmicos.
Incluso en el nivel ms alto, la naturaleza del proceso de informacin es
diferente en el cerebro y en los computadores digitales.
Con el fin de llegar al entendimiento global de ANNs, adoptamos la
siguiente perspectiva, llamada top-down que empieza por la aplicacin se
pasa al algoritmo y de aqu a la arquitectura:
Esta aproximacin a las ANNs est motivada por la aplicacin, basada en
la teora y orientada hacia la implementacin. Las principales aplicaciones
son para el procesado de seal y el reconocimiento de patrones. La
primera etapa algortmica representa una combinacin de la teora
matemtica y la fundamentacin heurstica por los modelos neuronales. El
fin ltimo es la construccin de neurocomputadores digitales, con la ayuda de las tecnologas y el
procesado adaptativo, digital y paralelo
Las redes neuronales tratan de resolver de forma eficiente problemas que pueden encuadrarse
dentro de tres amplios grupos: optimizacin, reconocimiento y generalizacin. Estos tres tipos
engloban un elevado nmero de situaciones, lo que hace que el campo de aplicacin de las redes
neuronales en la gestin empresarial sea muy amplio.
En los problemas de optimizacin, se trata de determinar una solucin que sea ptima.
Generalmente se aplican redes neuronales realimentadas, como el modelo de Hopfield citado. En
la gestin empresarial, son decisiones de optimizacin encontrar los niveles de tesorera, de
existencias, de produccin, construccin de carteras ptimas, etc.
En los problemas de reconocimiento, se entrena una red neuronal con inputs como sonidos,
nmeros, letras y se procede a la fase de test presentando esos mismos patrones con ruido. Este es
uno de los campos ms fructferos en el desarrollo de redes neuronales y casi todos los modelos:
perceptrn, redes de Hopfield, mapas de Kohonen, etc, han sido aplicados con mayor o menor
xito.
En los problemas de generalizacin, la red neuronal se entrena con unos inputs y el test se realiza
con otros casos diferentes. Problemas tpicos de generalizacin son los de clasificacin y
prediccin.
Las redes neuronales son modelos matemticos especializados que pueden aplicarse en dominios
muy concretos. Las redes neuronales estn mostrando su utilidad en muchos problemas reales.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

6.3. REDES NEURONALES E IA


Las redes neuronales se encuentran dentro del campo de la IA, tal y como se muestra en el
esquema siguiente:
Inteligencia Artificial

Redes de Autoproceso

Procesamiento Numrico

Sistemas Asociativos

Sistemas Distribuidos

Redes Neuronales

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Procesamiento Simblico

Redes Subsimblicas

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Mecanismos de inferencia: Los mecanismos de inferencia (razonamiento) utilizados en la IA


estan basados en la lgica (lenguaje Prolog, por ejemplo). Sin embargo, el cerebro humano no
realiza un razonamiento necesariamente lgico; utiliza la imprecisin y la contradiccin parcial.
El modo de funcionamiento del cerebro es la evolucin dinmica de las actividades neuronales.
Aprendizaje: El aprendizaje en IA consiste simplemente en aadir nuevos tomos de
conocimientos (nuevos hechos, reglas, etc.). En el cerebro, el aprendizaje de un hecho parecido a
otro del que ya tenemos conocimiento se hace por refuerzo de las conexiones entre neuronas y
esta actividad conjunta es necesario para memorizarlo. Se ha demostrado que si un sujeto no esta
expuesto a ciertos estmulos al comienzo de su vida, no podr detectar ms de estos estmulos,
debido a la degeneracin de las conexiones necesarias.
Paralelismo: Es una caracterstica innata de los sistemas conexionistas. Aunque un ordenador
realiza clculos mucho ms rpido que un ser humano, no es capaz de desarrollar procesos que
ste realiza de forma sencilla (comprensin de una frase, analizar una imagen, reconocer un
rostro, etc). Esto es debido a que el cerebro humano, para hacerlo, pone en marcha
simultneamente millones de neuronas.

Modo de trabajo con redes neuronales.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

a) Redes con aprendizaje supervisado


El aprendizaje supervisado se caracteriza porque el proceso de aprendizaje se realiza mediante un
entrenamiento controlado por un agente externo (supervisor, maestro) que determina la respuesta
que debera generar la red a partir de una entrada determinada. El supervisor comprueba la salida
de la red y en el caso de que esta no coincida con la deseada, se proceder a modificar los pesos
de las conexiones, con el fin de conseguir que la salida obtenida se aproxime a la deseada.
En este tipo de aprendizaje se suele considerar, a su vez, las siguiente formas de llevar a cabo
aprendizajes supervisados:
Aprendizaje por correccin de errores: Consiste en ajustar los pesos de las conexiones de la
red en funcin de la diferencia entre los valores deseados y los obtenidos en la salida de la red; es
decir en funcin del error cometido en la salida. La red neuronal Perceptron utiliza esta forma de
aprendizaje.
Aprendizaje por refuerzo: Se trata de un aprendizaje supervisado ms lento que el anterior, que
se basa en la idea de no disponer de un ejemplo completo del comportamiento deseado; es decir,
de no indicar durante el entrenamiento exactamente la salida que se desea que proporcione la red
ante una determinada entrada. La funcin del supervisor se reduce a indicar mediante una seal
de refuerzo si la salida obtenida en la red se ajusta a la deseada (xito = + 1 o fracaso = - 1), y en
funcin de ello se ajustan los pesos basndose en un mecanismo de probabilidades. Una red que
utiliza este tipo de aprendizaje es la conocida como Linear Reward Penalty.
Aprendizaje estocstico: Consisten bsicamente en realizar cambios aleatorios en los valores de
los pesos de las conexiones de la red y evaluar su efecto a partir del objetivo deseado y de
distribuciones de probabilidades. Una red que utiliza este tipo de aprendizaje es la conocida como
Boltzmann Machine.

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:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Aprendizaje hebbiano: El aprendizaje hebbiano consiste bsicamente en el ajuste de los pesos


de las conexiones de acuerdo con la correlacin (multiplicacin en los casos de valores binarios
+1 y 1 ) de los valores de activacin (salidas) de dos neuronas conectadas.
Si las dos unidades son activas (positivas), se produce un reforzamiento de la conexin, cuando
una es activa y la otra pasiva (negativa), se produce un debilitamiento de la conexin. Se trata de
una regla de aprendizaje no supervisado, pues la motivacin de los pesos se realiza en funcin de
los estados (salidas) de las neuronas obtenidos tras la presentacin de cierto estmulo
(informacin de entrada a la red ), sin tener en cuenta si se desea obtener o no esos estados de
activacin.
Este tipo de aprendizaje fue empleado por Hopfield en la conocida red que lleva su nombre: Red
Hopfield.
Aprendizaje competitivo y cooperativo: En las redes con aprendizaje competitivo ( y
cooperativo), suele decirse que las neuronas compiten (y cooperan ) unas con otras con el fin de
llevar a cabo una tarea dada. Con este tipo de aprendizaje, se pretende que cuando se presente a la
red cierta informacin de entrada, solo una de las neuronas de salida de la red, o una por cierto
grupo de neuronas compiten por activarse, quedando finalmente una, o una por grupo, como
neurona vencedora, siendo anuladas el resto, que son forzadas a sus valores de respuesta mnimo.
El objetivo de este aprendizaje es categorizar los datos que se introducen a la red. De esta forma,
las informaciones similares son clasificadas formando parte de la misma categora, y por tanto
deben activar la misma neurona de salida. Las clases o categoras deben ser creadas por la propia
red, puesto que se trata de un aprendizaje no supervisado, a travs de las correlaciones entre los
datos de entrada. Este tipo de aprendizaje se ha aplicado a redes feedforward de dos capas.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

6.5. REDES NEURONALES Y LGICA BORROSA


La lgica borrosa o multivaluada permite asignar diferentes grados de certeza a los hechos. En
lgica borrosa se trabaja con conjuntos, que se definen por sus funciones de pertenencia, que se
denotan como c (x) e indican el grado de pertenencia (entre 0 y 1) del elemento con valor x al
conjunto C.
Las operaciones entre conjuntos se plantean en forma de operaciones borrosas entre sus funciones
de pertenencia. Las ms utilizadas son la Unin ( ), Intercepcin ( ) y complemento ( - ) para
los conjuntos, y las correspondientes suma lgica borrosa ( ), producto lgico borroso ( ) y
negacin borrosa para las funciones de pertenencia.
Sean dos conjuntos borrosos A y B, con funciones de pertenencia A y B tendramos:
Unin: A B = A (x) B (x) = mx. ( A (x), B (x))
Intercepcin: A B = A (x) B (x) = mn. ( A (x), B (x))
Complemento: -A (x) = 1 - A (x)

Neuronas borrosas y aprendizaje borroso


Una neurona borrosa puede modelarse como una unidad de procesamiento que recibe una seales
borrosas de entrada a travs de una sinapsis borrosas, siendo la entrada el producto borroso de la
salida de la neurona anterior por el peso borroso de la conexin. La entrada neta de la neurona no
se obtiene como la suma aritmtica de las entradas, sino como la suma borrosa de las mismas.
Una posible utilidad en este tipo de redes, es servir de memoria asociativa para almacenar y
evaluar las reglas de control en un sistema borroso. El mecanismo de aprendizaje tambin utiliza
operadores borrosos para la obtencin de los pesos, siendo una adaptacin de la regla de hebb,
conocida como aprendizaje hebbiano borroso.
Implementacin neuronal de mapas cognitivos borrosos.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

7.2. ALGORITMOS GENTICOS


El objetivo de los AG es buscar dentro de un espacio de hiptesis candidatas la mejor de ellas. En
los AG la mejor hiptesis es aquella que optimiza a una mtrica predefinida para el problema
dado, es decir, la que ms se aproxima a dicho valor numrico una vez evaluada por la funcin de
evaluacin.
El comportamiento bsico de un algoritmo gentico es el siguiente: de forma iterativa va
actualizando la poblacin de hiptesis. En cada iteracin, todos los miembros de la poblacin son
procesados por la funcin de evaluacin, tras lo cual una nueva poblacin es generada. La nueva
generacin estar compuesta por:
- Las mejores hiptesis de la poblacin actual (seleccionadas probabilsticamente)
- Y el resto de hiptesis necesarias para mantener el nmero, que se consiguen mediante el cruce
de individuos. A partir de dos hiptesis padre (seleccionadas probabilsticamente a partir de la
poblacin actual) se generan dos hiptesis hijas recombinando sus partes siguiendo algn criterio
establecido.
Una vez llegados a este punto (con una nueva poblacin con el mismo nmero de individuos), a
un determinado porcentaje de la poblacin se le aplica un operador de mutacin.

7.2.1. Representacin de Hiptesis


Las hiptesis en los AG se suelen representar mediante cadenas de bits, de forma que puedan ser
fcilmente manipulables por los operadores genticos de mutacin y cruce.
Primero veamos como usar una cadena de bits para representar los posibles valores de un
atributo. Si un atributo puede tomar tres valores posibles (A, B y C), una manera de representarlo
es mediante tres bits de forma que:
Atributo
(100)
=
puede
tomar
el
valor
A
Atributo
(010)
=
puede
tomar
el
valor
B
Atributo
(001)
=
puede
tomar
el
valor
C
Atributo
(110)
=
puede
tomar
el
valor
A

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

7.2.2. Operadores Genticos


Los dos operadores ms comunes son la mutacin y el cruce.
El operador de cruce genera dos nuevos hijos a partir de dos cadenas padre recombinando sus
bits. Para elegir con que bits contribuye cada padre hacemos uso de una mscara de cruce.
Veamos un par de ejemplos:
Cruce Simple:
Cadenas padre

Mascara de Cruce

11101001000

Hijos
11101010101

11111000000
00001010101

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

00001001000

Elaborado por Ing. Ariel Chvez Toruo

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.

7.2.3. Funcin de evaluacin y seleccin


La funcin de evaluacin define el criterio para ordenar las hiptesis que potencialmente pueden
pasar a formar parte de la siguiente generacin.
La seleccin de las hiptesis que formarn parte de la siguiente generacin o que sern usadas
para aplicarles los operadores genticos, puede realizarse de varias formas. Las ms usuales son:
- Seleccin proporcional al ajuste dado por la funcin de evaluacin. En este mtodo la
probabilidad de que una hiptesis sea seleccionada viene determinada por:

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

Figura 1 - Probabilidad de que la hiptesis hi sea elegida.


- Seleccin mediante torneo. Se eligen dos hiptesis al azar. La ms adecuada (segn la funcin
de evaluacin) tiene una probabilidad p (prefijada de antemano) de ser elegida, mientras que la
otra tiene una probabilidad (1 p).
- Seleccin por rango. Las hiptesis de la poblacin actual se ordenan de acuerdo a su
adecuacin. La probabilidad de que una hiptesis sea seleccionada ser proporcional a su
posicin en dicha lista ordenada, en lugar de usar el valor devuelto por la funcin de evaluacin.

7.3. BSQUEDA EN EL ESPACIO DE HIPTESIS


Una de las dificultades que nos encontramos en algunos algoritmos genticos es el problema del
crowding (muchedumbre). Se trata de un fenmeno por el cual las mejores hiptesis se
reproducen rpidamente de manera que las nuevas generaciones una gran proporcin se debe a
stas hiptesis y a otras muy similares (descendientes), reduciendo as la diversidad de la
poblacin, y por lo tanto, las posibilidades de la evolucin. Para reducir los efectos del
crowding se usan varias estrategias. Una solucin consiste en cambiar el mtodo de seleccin
habitual (seleccin proporcional al ajuste) por alguno de los otros vistos con anterioridad
(seleccin mediante torneo o seleccin por rango). Otra opcin consiste en usar otra funcin de
evaluacin, ajuste compartido, de manera que el valor devuelto por esta funcin se devala
ante la presencia de otras hiptesis similares en la poblacin. Y una tercera alternativa es
restringir el tipo de hiptesis a los que se les permite la recombinacin.

7.4. PROGRAMACIN GENTICA


La programacin gentica (PG) es una forma de computacin evolutiva en la que los individuos
de la poblacin son programas, en lugar de cadenas de bits.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

7.4.1. Representacin de Programas


Los programas usados en la programacin gentica suelen representarse mediante sus rboles
sintcticos. En esta notacin, cada llamada a una funcin se representa por un nodo en el rbol, y
los argumentos de la funcin corresponden con los nodos hijos de ste. Para aplicar programacin
gentica a un dominio particular, es necesario que el usuario defina de antemano las primitivas
que se van a emplear as como el tipo de los nodos hoja. Por lo tanto, la programacin gentica
realiza una bsqueda evolutiva en un espacio de programas descritos mediante sus rboles
sintcticos.
De igual forma que los algoritmos genticos, la programacin gentica itera sobre una poblacin
de individuos produciendo una nueva generacin mediante el empleo de la seleccin, el cruce y
la mutacin. La adecuacin de un programa viene determinada por los resultados de su ejecucin
sobre unos datos de entrenamiento (funcin de evaluacin).
As, por ejemplo, el operador de cruce se implementa mediante el intercambio de subrboles
entre programas padres.
En la mayora de los casos, el rendimiento de la programacin gentica depende bsicamente de
la representacin elegida y de la eleccin de la funcin de evaluacin.

Figura 2 - Representacin de un programa mediante su rbol.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

7.5. MODELOS DE EVOLUCIN Y APRENDIZAJE


En muchos sistemas naturales, los individuos aprenden a adaptarse durante sus vidas. Al mismo
tiempo distintos procesos biolgicos y sociales permiten a la especie adaptarse a lo largo de las
distintas generaciones, por lo que surge una interesante pregunta: Cul es la relacin entre el
aprendizaje individual de un organismo durante su vida y el aprendizaje colectivo de la especie?
A esta cuestin intentan responder la teora de la evolucin Lamarckiana y la teora del efecto
Baldwin.

7.5.1. Evolucin Lamarckiana


Lamarck (cientfico de finales del siglo XIX) propuso que la experiencia de un individuo afecta
directamente a su descendencia, por lo que el conocimiento sera hereditario y las siguientes
generaciones no necesitaran adquirirlo. Se trata de una conjetura que mejora la eficiencia de los
algoritmos genticos y la programacin gentica, en las cuales se ignoraba la experiencia
adquirida por el individuo durante su vida.
Aunque biolgicamente esta teora no es correcta como modelo de evolucin, sin embargo si es
perfectamente aplicable al caso de la computacin gentica, donde recientes estudios han
demostrado su capacidad para mejorar la efectividad.

7.5.2. El efecto Baldwin


Se trata de otro mecanismo que sugiere como el aprendizaje de un individuo puede alterar el
curso de la evolucin de la especie. Se basa en las siguientes afirmaciones:
- Si una especie evoluciona en un entorno cambiante, entonces los individuos capaces de
aprender durante su vida se vern favorecidos. De hecho, la habilidad para aprender permite a los
individuos maximizar su capacidad de adaptacin en el entorno.
- Los individuos con capacidad de aprendizaje dependern en menor medida de su cdigo
gentico. Como consecuencia de lo anterior las nuevas generaciones poseern una diversidad
gentica mayor, lo que permitir una evolucin ms rpida. En resumen, la capacidad de
aprendizaje de algunos individuos provoca indirectamente una aceleracin en la evolucin de
toda la poblacin.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

Inteligencia Artificial.

7.6. PARALELISMO EN ALGORITMOS GENTICOS


Los algoritmos genticos son fcilmente paralelizables. A continuacin se muestran las
posibilidades de paralelismo con AGs:
Grano Grueso: Se subdivide la poblacin en una serie de grupos distintos (siguiendo algn
criterio), llamados demes. Cada uno de estos grupos se asigna a un nodo de computacin
distinto, y a continuacin se aplica un AG en cada nodo. Los operadores de cruce se aplicaran
generalmente entre individuos del mismo grupo, y en menor porcentaje, entre individuos de
distintos grupos. En este entorno surge un nuevo concepto, denominado migracin, que se
produce cuando un individuo de un grupo se copia o se traslada a otro (s). Un beneficio del
modelo de grano grueso es que se reduce el efecto crowding que apareca en los AG no
paralelizados.
Grano Fino: Se asigna un procesador a cada individuo de la poblacin. La recombinacin se
efecta entre individuos vecinos en la red de computacin. Algunos ejemplos de redes de
procesadores (especifican las reglas de vecindad) son la malla, el toroide, etc.

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

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

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.

Elaborado por Ing. Ariel Chvez Toruo

Вам также может понравиться