Академический Документы
Профессиональный Документы
Культура Документы
INTRODUCCIN
Para clasificar las maquinas como pensantes, es necesario definir inteligencia. El problema que
aparenta ser simple es uno de los ms complejos del rea, en el entendido que la inteligencia puede
representar, por ejemplo, la solucin adecuada de problemas complejos o a establecer generalizaciones
y relaciones entre objetos.
Dnde podr situarse las formas de adquisicin del conocimiento? y, si el pensar es un acto natural
concomitante con la naturaleza Cules son las herramientas que se necesitan para simular un
comportamiento natural del pensar humano?
OBJETIVO GENERAL
Establecer los principios que rigen la inteligencia artificial sus aplicaciones y evolucin.
OBJETIVOS ESPECIFICOS
Leccin 1
Inteligencia, definicin de Inteligencia Artificial.2
INTELIGENCIA
muchas personas son ms inteligentes que algunos chimpancs, un procesador de textos es una
mquina ms inteligente que una maquina de escribir mecnica, etc. Sin embargo no existe una
definicin cientfica de inteligencia.
Se reconoce que es difcil precisar el significado de la Inteligencia, sin embargo algunas definiciones
mencionadas por algunos investigadores son:
g) WECHSLER: capacidad general o global del individuo para actuar segn un propsito, pensar
racionalmente y relacionarse eficazmente con su entorno.
h) PIAGET: adaptacin al entorno fsico y social.
i) MINSKY: inteligencia es todo lo que puede ser medido mediante pruebas de inteligencia.
1
http://www.monografias.com/trabajos16/inteligencia-artificial-historia/inteligencia-artificial-historia.shtml
2
Profesora: Dra. Mara Jos Absolo Guerrero Universidad de las Islas Baleares Departamento de
Matemtica e
Informtica, http://dmi.uib.es/~abasolo/intart/1-introduccion.html
La inteligencia por otra parte esta relacionada con la habilidad para reconocer patrones, deducir
conclusiones razonables, analizar sistemas complejos como elementos simples y resolver sus
contradicciones, y aun es mucho ms que todo lo mencionado. La inteligencia esta en un nivel mayor
que la informacin y el conocimiento pero debajo del nivel de la sabidura.
Una de las formas mas aceptadas para explicar la inteligencia, desde el punto de vista computacional,
constituye la prueba de Alan Turing elaborada en 1950. La idea de la prueba de Turing es que si un
interrogador decide errneamente que una mquina es una persona, entonces se dice que dicha
mquina exhibe inteligencia.
INTELIGENCIA ARTIFICIAL
Resulta obvi que la inteligencia es de por s un concepto bastante complicado de definir. Por esta razn
intentar definiciones para la inteligencia artificial es tambin compleja.
Quiz la inteligencia artificial debera llamarse inteligencia sinttica para que concuerde mejor con el
lenguaje comercial. As los diamantes artificiales son falsas imitaciones, mientras que los diamantes
sintticos son diamantes autnticos, slo que manufacturados en lugar de desenterrados. No obstante
el nombre, la inteligencia artificial aspira a una inteligencia autntica, no a una falsa imitacin.
Marvin Minsky sugiere el carcter practico de la inteligencia artificial mencionando:
"La inteligencia artificial es la ciencia de hacer que las mquinas hagan cosas que requeriran
inteligencia si fueran hechas por seres humanos".
Elaine Rich: "La inteligencia artificial es el estudio de cmo hacer que los ordenadores hagan cosas que
por el momento las personas realizan de una forma ms perfecta".
Otras definiciones que pueden darnos una idea de lo que se llama inteligencia artificial:
Desde el punto de vista de los objetivos, la IA puede considerarse como parte de la ingeniera o de la
ciencia:
Tareas de la vida diaria (ms difcil para una mquina que las tareas de un experto)
o Percepcin (visin y habla)
o Lenguaje natural (comprensin, generacin, traduccin)
o Sentido comn
o Control de un robot
Tareas formales
o Juegos (ajedrez, backgammon, damas)
o Matemticas (geometra, lgica, clculo, demostracin de propiedades)
Tareas de los expertos (necesitan un conocimiento menor que el conocimiento necesario en las
tareas ms comunes)
o Ingeniera (diseo, deteccin de fallos, planificacin de manufacturacin)
o Anlisis cientfico o Diagnosis mdica o Anlisis financiero
Objetivos
Puesto que la meta de la inteligencia artificial es desarrollar sistemas que se comporten de manera
inteligente, es decir de manera similar a los seres humanos, Cercone & McCalla en 1984 disearon
objetivos que cualquier sistema ideal de inteligencia artificial debe cumplir. Un investigador de la
inteligencia artificial debe ser capaz de:
reas de investigacin
Sistemas Expertos
Son programas computacionales diseados para actuar como expertos en un dominio particular
restringido. Es importante debido a que trabaja con conocimiento en lugar del tradicional dato.
e) Interfaz de Adquisicin. Hace referencia a la interface para la adquisicin del conocimiento del
dominio, puede incluir mecanismos para facilitar su adquisicin y depuramiento interactivo y para
automatizar la adquisicin (aprendizaje).
Los Sistemas Expertos son uno de los puntos que componen las investigaciones
en el campo de la IA. Un sistema de computadores que trabaje con tcnicas de IA deber estar en
situacin de combinar informacin de forma "inteligente", alcanzar conclusiones y justificarlas. Los
Sistemas Expertos son una expresin de los sistemas basados en el conocimiento.
Con la aplicacin de tcnicas de Inteligencia Artificial finaliza la transicin del procesamiento de datos al
procesamiento de conocimientos.
Los sistemas expertos se aplican por norma general en problemas que implican un procedimiento
basado en el conocimiento. Un procedimiento de solucin basado
en el conocimiento comprende las siguientes capacidades:
Debido a la gran capacidad de almacenamiento de los computadores, los sistemas expertos tienen el
potencial de interpretar estadsticas, para interpretar el formalismo de representacin conocido como
reglas de produccin. Un sistema experto trabaja de manera parecida a un detective encargado de
resolver un misterio. Utilizando la informacin, y un formalismo de representacin de conocimiento, un
sistema experto puede resolver el problema que se le plantee.
El Procesamiento del Lenguaje Natural (PLN) es una parte esencial de la IA que investiga y formula
mecanismos computacionalmente efectivos que faciliten la interrelacin hombre mquina y permitan una
comunicacin mucho ms fluida y menos rgida que los lenguajes formales. Todo sistema de PLN
intenta simular un comportamiento lingstico humano; para ello debe tomar conciencia tanto de las
estructuras propias del lenguaje, como del conocimiento general acerca del universo de discurso. De
esta forma, una persona que participa en un dilogo sabe cmo combinar las palabras para formar una
oracin, conoce los significados
de las mismas, sabe cmo stos afectan al significado global de la oracin y posee un conocimiento del
mundo en general que le permite participar en la conversacin.
El PLN hace referencia a programas que permiten la comunicacin hombre- maquina en un lenguaje
parecido al humano. Cuenta con dos reas: comprensin del lenguaje natural y generacin del lenguaje
natural. La comprensin del lenguaje natural investiga los mtodos que permitan al computador
comprender las instrucciones dadas en lenguaje natural, de tal manera que los computadores puedan
entender de manera ms fcil al ser humano. La generacin del lenguaje natural intenta mostrar que el
computador puede ser capaz de expresarse en lenguaje ordinario, de tal forma que se pueda entender a
los computadores de una manera mucho ms sencilla.
Hace ya tiempo que se estudia la posibilidad de desarrollar interfaces hombre- mquina controlados por
la voz para sustituir en ciertas aplicaciones a las interfaces tradicionales basadas en teclados, paneles y
dispositivos similares. Este nuevo tipo de interfaz constara de dos mdulos de entrada/salida: uno de
reconocimiento de habla, mediante el cual el ordenador sera capaz de extraer informacin de los
comandos orales del operador o usuario, y otro de sntesis de voz, que podra ser una de las vas de
presentacin de resultados.
a) Hace esta comunicacin ms rpida, y ms agradable para los nuevos usuarios, ya que al ser la
forma natural de comunicarse no se necesita ninguna habilidad especial.
b) Permite tener las manos libres para utilizarlas en alguna otra actividad, a la vez que se van dando
rdenes por medio de la voz.
c) Permite movilidad, ya que la voz se puede enviar a distancia y ser recogida por
un micrfono, por oposicin a un teclado que no se puede mover de la mesa de trabajo.
d) Permite acceso remoto, al poder acceder a un ordenador usando la red telefnica, que es la red de
comunicaciones ms extendida.
e) Permite la disminucin del tamao de los paneles de control. Piense en el panel
de un avin, cuantos conmutadores manuales podran suprimirse si se utilizara la voz como forma de
comunicacin con un sistema de control Esta rea de investigacin permite que los ordenadores
entiendan el habla humana, de tal manera que se puedan or voces y reconocer palabras habladas,
simplificando el proceso de comunicacin interactiva hombre - maquina. Incrementa el mtodo
interactivo de comunicacin primaria utilizada por las personas, el habla.
Visin por Computador
El trmino Visin por Computador (VC) dentro del campo de la Inteligencia Artificial puede considerarse
como el conjunto de todas aquellas tcnicas y modelos que permiten el procesamiento, anlisis y
explicacin de cualquier tipo de informacin espacial obtenida a travs de imgenes digitales. Desde
sus inicios la VC ha inspirado sus desarrollos en el estudio del sistema visual humano el cual sugiere la
existencia de diferentes tipos de tratamiento de la informacin visual dependiendo de metas u objetivos
especficos, es decir, la informacin visual percibida es procesada en distintas formas con base en las
caractersticas particulares de la tarea a realizar, por lo que la VC propone varias tcnicas que permiten
obtener una representacin del mundo a partir del anlisis de imgenes obtenidas desde cmaras de
video.
Debido a que la informacin visual es una de las principales fuentes de datos del mundo real, resulta til
el proveer a un computador digital del sentido de la vista (a partir de imgenes tomadas con cmaras
digitales o analgicas), que junto con otros mecanismos como el aprendizaje hagan de esta una
herramienta capaz de detectar y ubicar objetos en el mundo real.
Por consiguiente la investigacin en visin por computador tiene como objetivo dotar a los
computadores con la herramienta de visualizacin para el entendimiento y comprensin del entorno que
el computador est observando.
Robtica
Cuando se escucha la palabra Robot, algunas ocasiones se piensa de manera directa en esas pelculas
que han sorprendido por presentar Robots que realizan acciones superiores a las capacidades del ser
humano. Los modelos ms famosos
de robots han sido los creados por George Lucas en su pelcula Star Wars a quienes se conoce como
C3PO y R2D2.
Mikell Groover, en su libro Automation, Production Systems and Computer Integrated Manufacturing,
define al robot industrial como: "una mquina programable, de propsito general, que posee ciertas
caractersticas antropomrficas, es decir, con caractersticas basadas en la figura humana...". Cabe
destacar que la caracterstica antropomrfica ms comn en nuestros das
es la de un brazo mecnico, el cual realiza diversas tareas industriales. Existen en
el mercado diversas empresas dedicadas a la fabricacin de robots industriales por lo que existen
diferentes marcas y modelos. Estos ltimos son normalmente asignados para identificarlos o de acuerdo
a su funcin.
Un resumen general de lo que constituye un robot industrial puede ser considerado sobre la base de los
siguientes puntos:
a) Un robot industrial es una mquina programable de propsito general que posee ciertas
caractersticas antropomrficas.
b) El componente principal lo constituye el manipulador, el cual consta de varias articulaciones y sus
elementos.
c) Las partes que conforman el manipulador reciben los nombres de cuerpo, brazo, mueca y efector
final o gripper. Otros elementos son el controlador, los mecanismos de entrada y salida de datos y los
dispositivos especiales.
d) Existen dos categoras de efectores finales (grippers): las pinzas y las herramientas. Las pinzas
pueden ser de tipo pivotante o de movimiento lineal entre otras. Entre las herramientas se tiene a los
desarmadores y las pistolas para soldar.
e) Los movimientos de un robot estn relacionados con los grados de libertad que posea. Un grado de
libertad es un nmero o tipo de movimiento del manipulador. Los grados de libertad se determinan por
los movimientos que ejecutan el brazo y
la mueca del robot que pueden ser de uno a tres cada uno.
La investigacin en esta rea tiende al estudio de las capacidades de los robots de poder insertarse en
la sociedad a manera de seres mecnicos capaces de controlar y resolver los problemas discretos y
mecanizados de su entorno.
Otras reas
Otras reas significativas para su estudio al interior de la inteligencia artificial son: las lgicas no clsicas
como la Lgica Difusa, las Redes Neuronales, los Algoritmos Genticos, la Realidad Virtual, la Vida
Artificial, los Agentes Inteligentes, etc.
En este mdulo se intenta brindar la comprensin, anlisis y aplicacin de estas reas de la inteligencia
artificial. No es intencin revisar a detalle cada una de estas reas, sin embargo es menester reconocer
la importancia que han cobrado
en esta ltima dcada de investigacin en la inteligencia artificial. La mayor de las expectativas es
compartir los principios y fundamentos bsicos que proporcionan
la importancia natural a estas reas, tan trilladas y comentadas en este ultimo tiempo.
A continuacin, encontrars un Chat-Bot. se trata de un software que hara las veces de reconocimiento
de lenguaje natural, pero teniendo como entrada lo que el usuario digita dentro de la caja de
mensaje. Otros sistemas ms avanzados pueden tomar e identificar los patrones de habla, traducirlos a
caracteres y luego procesarlos (tarea conocida normalmente como la realizada por los programas de
dictado).
Leccin 2
Uno de los resultados que surgieron de las primeras investigaciones en IA fue que la inteligencia
necesita conocimiento. El conocimiento posee algunas propiedades poco deseables como:
Es voluminoso
Es difcil caracterizarlo
Cambia
Se organiza de manera que se corresponde con la forma en que va a se usado
Una tcnica de IA es un mtodo que explota el conocimiento representado de manera que se cumpla
que:
Puede usarse en muchas situaciones aun sin ser totalmente exacto o completo
Puede usarse para superar su propio volumen, y disminuir el rango de posibilidades que
normalmente deben considerarse
Para solucionar problemas complicados, los programas que utilizan las tcnicas de IA presentan
numerosas ventajas con respecto a los que no lo hacen:
son menos frgiles, es decir, que no se despistan frente a una perturbacin pequea de la
entrada
el conocimiento del programa es comprendido fcilmente por la gente
usa generalizaciones
tiene facilidad de extensin
Como contraposicin, generalmente tienen ms complejidad que otras soluciones.
A continuacin se plantean tres soluciones diferentes del problema de tres en raya analizando la
conveniencia de cada una. Para mejor detalle de las mismas consultar [Rich98]3.
El tres en raya, tambin conocido como juego del gato, tatet, triqui, tres en gallo, michi o la vieja, es un
juego de lpiz y papel entre dos jugadores: O y X, que marcan los espacios de un tablero de 33
alternadamente. Un jugador gana si consigue tener una lnea de tres de sus smbolos: la lnea puede ser
horizontal, vertical o diagonal.
3
[Rich98] Rich E., Knight K. Inteligencia Artificial. McGraw-Hill, ISBN: 84-481-1858-8, 1998
4
Fuente: www.wikipedia.org.
Solucin 1:
Una primera solucin directa a este juego podra ser la de almacenar en un vector las 19.693 (39)
posibilidades de un tablero de 3 x 3 con tres valores posibles en cada casilla (vaco-X-O), as como las
correspondientes jugadas sucesoras. Para realizar una jugada, bastara con acceder a la posicin del
tablero actual y la jugada sucesora correspondiente. Las desventajas de este eficiente programa son
bastante obvias: necesita gran cantidad de memoria; alguien debe realizar el pesado trabajo de
introducir todas las jugadas y sus sucesoras; y el juego no se puede ampliar, por ejemplo a tres
dimensiones.
Solucin 2:
El programa posee una estrategia para cada turno de jugador. Analiza el posible triunfo a partir de un
estado del tablero dado. Aunque es menos eficiente que la solucin anterior en trminos de tiempo,
tiene la ventaja que es ms eficiente en trminos de espacio. Su estrategia es ms fcil de comprender
y realizar cambios, aunque el programador debe comprender la totalidad de la estrategia de antemano.
Adems, no es posible generalizar parte del conocimiento del programa hacia un dominio distinto, como
tres en raya 3D.
Solucin 3:
Una estructura contiene el tablero actual, as como una lista de posiciones del tablero que podran ser el
prximo movimiento, y una estimacin de la probabilidad de que esa jugada lleve a la victoria. Para
decidir la siguiente jugada se tienen en cuenta las posiciones de tablero que resultan de cada
movimiento posible. Se decide la posicin que corresponde a la mejor jugada, considerando si la jugada
produce la victoria, y en caso contrario considerando todos los movimientos que el oponente puede
realizar asumiendo que ste elegir el peor para nosotros. El algoritmo inspecciona varias secuencias
de movimientos intentando maximizar la probabilidad de victoria. Necesita mucho ms tiempo que los
dems, ya que debe realizar una bsqueda en un rbol de posibilidades antes de realizar cada
movimiento. Sin embargo, es superior a las dems soluciones pues podra ser ampliado para manipular
juegos ms complicados. Adems, puede aumentarse su potencia usando conocimiento sobre el juego,
por ejemplo, en lugar de considerar todos los posibles movimientos considerar solo un subconjunto
siguiendo algn criterio razonable. Este programa es un ejemplo del uso de una tcnica de IA.
Se quiere realizar un programa que a partir de un texto escrito en espaol pueda responder a preguntas
en espaol sobre este texto. En este caso, es ms difcil que en el ejemplo anterior determinar
formalmente y con precisin en qu consiste el problema y en qu consiste una solucin correcta para
l. Un ejemplo de programa de preguntas y respuestas en ingls es el programa POLITICS (Carbonell,
1980).
A continuacin se plantean tres soluciones diferentes analizando la conveniencia de cada una. Para
mejor detalle de las mismas consultar [Rich98]. 5
Solucin 1:
Se tienen conjunto de plantillas (templates) preguntas, por ejemplo "Que x y" asociada con patrones
(patterns) respuesta, por ejemplo "y x z". Responde a las preguntas usando el texto de entrada de forma
literal. Se hace coincidir fragmentos de texto de entrada con el patrn respuesta, y se obtiene la
respuesta, por ejemplo "z". Este algoritmo no puede contestar el tipo de preguntas que la gente puede
responder despus de una simple lectura del texto. La habilidad para responder depende de la forma
exacta de la pregunta, y de las variaciones contempladas en el diseo de plantillas y patrones. El
proceso de sustitucin de patrones usado es llamado pattern matching. Pese a que lo que se entiende
por IA no incluye programas como ste, sta tcnica es la usada en uno de los programas ms clebres
de IA, ELIZA.
Solucin 2:
Transforma el texto de entrada dndole una estructura interna que intenta capturar
el significado de las frases, y tambin transforma las preguntas de igual manera. Las respuestas se
encuentran emparejando unas con otras formas estructuradas. Este enfoque est ms basado en
conocimiento que el primero, y tambin es ms efectivo. Puede responder a la mayora de las preguntas
cuyas respuestas se encuentran en el texto, y es menos quebradizo con respecto a las formulaciones
exactas de preguntas y respuestas. Algunas preguntas necesitan conocimiento adicional sobre el
mundo con el que trate el texto, que esta solucin no posee.
Solucin 3:
Al igual que la solucin anterior se transforma el texto en forma estructurada, pero a diferencia del
anterior, se combina esta forma con otras formas estructuradas que describen conocimiento previo
sobre los objetos y situaciones que aparecen en el texto. Este programa es ms potente que los otros
dos, debido a que responde a preguntas usando esta estructura de conocimiento aumentada. Se utiliza
lo que se denomina tcnica de IA, pues est basado en el conocimiento y en uso computacional eficaz
de ese conocimiento.
Bsqueda: proporciona una forma de resolver problemas en los que no se dispone de un mtodo
directo.
Uso del conocimiento: proporciona una forma de resolver problemas complejos explotando las
estructuras existentes entre los objetos involucrados
Abstraccin: proporciona una forma de separar aspectos y variaciones importantes de aquellos otros
sin importancia, y que en caso contrario podran colapsar el proceso.
Leccin 3
Criterios de xito de la Inteligencia Artificial
Para determinar el xito de un programa de IA, se deben realizar las siguientes preguntas:
Test de Turing
En 1950, Alan Turing propuso el siguiente mtodo para determinar si una mquina es capaz de pensar.
Una persona es un entrevistador y se halla en una habitacin separada de otra persona y un compuador
a evaluar. El entrevistador hace preguntas a ambos de forma escrita. Si luego de un cierto nmero de
preguntas y respuestas, el interrogador no puede identificar quin es el computador y quin es la
persona, entonces podemos decir que el computador piensa.
- el xito de un programa que juega al ajedrez se puede evaluar segn los jugadores que pueda
derrotar;
- el xito de otros programas puede medirse comparando el tiempo que tarda un computador en llevar a
cabo una tarea con el que tarda una persona en hacer lo mismo. Por ej. programas usados en empresas
informticas para configurar sistemas particulares a las necesidades del cliente;
- en tareas de cada da es ms difcil, por ej. parafrasear un artculo del peridico, la mejor forma de
evaluarlo es ver si el programa responde de la misma forma que hara una persona.
Cuando se quiere disear un programa de IA, se debe intentar especificar tan bien como sea posible el
criterio de xito para el funcionamiento del programa en su dominio particular.
Leccin 4
Resolucin de problemas de Inteligencia Artificial
El primer paso para disear un programa que resuelva un problema es crear una descripcin formal y
manejable del propio problema. Sera adecuado contar con programas que produzcan descripciones
formales a partir de descripciones informales, proceso denominado operacionalizacin. Dado que por
ahora no se conoce la forma de construir estos programas este proceso debe hacerse manualmente.
Hay problemas que por ser artificiales y estructurados son fciles de especificar (por ej. el ajedrez, el
problema de las jarras de agua, etc. ). Otros problemas naturales, como por ej. la comprensin del
lenguaje, no son tan sencillos de especificar.
El estado inicial consiste en uno o varios estados en los que puede comenzar el problema. El estado
objetivo consiste en uno o varios estados finales que se consideran solucin aceptable.
Las reglas describen las acciones u operadores que posibilitan un pasaje de estados. Una regla tiene
una parte izquierda y una parte derecha. La parte izquierda determina la aplicabilidad de la regla, es
decir, describe los estados a los que puede aplicarse la regla. La parte derecha describe la operacin
que se lleva a cabo si se aplica la regla, es decir, como obtener el estado sucesor. Por ejemplo, en el
problema de jugar al ajedrez:
el espacio de estados son la totalidad de tableros que se puede generar en un juego de ajedrez;
el estado inicial es el tablero de 8 x 8 donde cada celda contiene un smbolo de acuerdo a las
piezas situadas;
el objetivo o estado final se define como cualquier posicin de tablero en la que el contrario no
puede realizar ningn movimiento legal y su rey est amenazado;
las reglas son los movimientos legales, que pueden describirse mediante una parte patrn para
ser contrastado con la posicin actual de tablero y otra parte que describe el cambio que debe
producirse en el tablero.
Dado que escribir exhaustivamente todas las reglas es imposible prcticamente, (en el ejemplo, escribir
todas las posiciones de tablero), las reglas deben escribirse de la manera ms general posible.
La representacin como espacio de estados forma parte de la mayora de los mtodos de IA. Su
estructura se corresponde con la resolucin de problemas porque:
permite definir formalmente el problema, mediante la necesidad de convertir una situacin dada
en una situacin deseada mediante un conjunto de operaciones permitidas.
Se tienen dos jarras de agua, una de 4l y otra de 3l sin escala de medicin. Se desea tener 2l de agua
en la jarra de 4l. Las siguientes operaciones son vlidas: llenar las jarras, tirar agua de las jarras, pasar
agua de una jarra a otra.
Solucin:
{ (X,Y)/ X son los litros en la jarra de 4l con 0<=X<=4 AND Y son los litros de la jarra de 3l con 0<=Y<=3
}
El estado final es (2,0). El estado final podra ser (2,N) en caso de que no importen los litros de la
segunda jarra.
El programa debera encontrar un pasaje de estados para ir del estado (0,0) al estado (2,0). Puede
existir ms de un pasaje de estados hacia la solucin, por ejemplo:
(0,0) => (0,3) => (3,0) => (3,3) => (4,2) => (0,2) => (2,0)
en la cual, a partir del estado inicial, se aplicaron las reglas 2, 8, 2, 6, 3 y 8, hasta conseguir el estado
objetivo.
(0,0) => (4,0) => (1,3) => (1,0) => (0,1) => (4,1) => (2,3) => (2,0)
Las condiciones que se establecen en la parte izquierda a veces no son altamente necesarias pero
restringen la aplicacin de la regla a estados ms adecuados.
Esto incrementa la eficiencia del programa que utiliza las reglas. En el ejemplo anterior, la regla
Contiene la condicin (X<4), especificando que la jarra no se encuentra llena. Si esta condicin no se
incluye, se puede aplicar la regla an cuando la jarra est llena. Dado que en este caso el estado del
problema no cambia la aplicacin de la regla se considera intil
Las reglas no slo deben describir el problema sino tambin algn tipo de conocimiento sobre su
solucin. Si en el ejemplo anterior se considera la siguiente nueva regla:
Vaciar "un poco" la jarra de 4l: Si (X,Y) AND X>0 => (X-Q, Y) es decir, tirar agua sin cuantificar,
intuitivamente se concluye que la aplicacin de esta regla nunca nos acercar a la solucin del
problema.
A veces, cuando se alcanzan algunos estados resulta obvio cmo se debe continuar hacia la solucin.
Es posible agregar reglas de propsito especial que capturen el conocimiento sobre casos especiales
que conducen a la resolucin del problema. En el ejemplo anterior, se pueden agregar las siguientes
reglas de propsito especial:
Estas reglas no aaden ms potencia al sistema ya que las operaciones que describen las proporcionan
otras reglas ms generales. En el ejemplo, la primera regla agregada es equivalente a la aplicacin de
las reglas generales 3 y 8; y la segunda regla agregada es equivalente a la aplicacin de la regla
general 4. Dependiendo de la estrategia de control que se utilice para seleccionar reglas durante la
resolucin del problema se puede mejorar el rendimiento si se les da preferencia a las reglas de casos
especiales.
Se tienen 3 monjes y 3 canbales en el margen Oeste de un ro. Existe una canoa con capacidad para
dos personas como mximo. Se desea que los seis pasen al margen Este del ro, pero hay que
considerar que no debe haber ms canbales que monjes en ningn sitio porque entonces los canbales
se comen a los monjes. Adems, la canoa siempre debe ser conducida por alguien.
Solucin:
7. Viaja un monje de O a E:
Si (Mo, Co, Me, Ce, O) AND Mo>=1 AND (Mo-1=0 OR Co<=Mo-1) AND Ce<= Me+1 => (Mo-1, Co,
Me+1, Ce, E)
8. Viaja un monje de E a O:
Si (Mo, Co, Me, Ce, E) AND Me>=1 AND (Me-1=0 OR Ce<=Me-1) AND Co<=Mo+1 => (Mo+1, Co, Me-
1, Ce,O)
9. Viaja un canbal de O a E:
Si (Mo, Co, Me, Ce, O) AND Co>=1 AND (Me=0 OR Ce+1<=Me) => (Mo, Co-1, Me, Ce+1, E)
Nota: En referencia a la regla 3 la condicin Ce<=Me+2 puede intuirse como redundante. Esta condicin
no se cumple slo en el caso Ce=3 y Me=0. Pese a
que es un estado que pertenece al espacio de estados vlidos, podemos intuir que nunca se llega a
tener 3 canbales y ningn monje del lado Este y la barca del lado Oeste. De todas maneras slo se
puede eliminar si podemos demostrar formalmente la imposibilidad de esta situacin.
(3,3,0,0,O) => (3,1,0,2,E) => (3,2,0,1,O) => (3,0,0,3,E) => (3,1,0,2,O) =>
(1,1,2,2,E) => (2,2,1,1,O) => (0,2,3,1,E) => (0,3,3,0,O) => (0,1,3,2,E) =>
(0,2,3,1,O) =>(0,0,3,3,E)
El problema puede resolverse con el uso de reglas en combinacin con una estrategia de control para
trasladarse a travs del espacio de estados hasta encontrar un camino desde el estado inicial hasta el
estado final. Se elige una regla entre aquellas cuya parte izquierda concuerda con el estado actual. Se
aplica la regla elegida realizando el cambio de estado tal como se describe en la parte derecha de la
regla. Si el nuevo estado es estado objetivo o final se ha encontrado la solucin. En caso contrario se
contina con la aplicacin de reglas al nuevo estado.
Una estrategia de control especifica el orden en el que se deben aplicar las reglas, as como tambin
la forma de resolver conflictos cuando es posible aplicar ms de una regla. Para que una estrategia de
control sea vlida debe cumplir con dos requisitos:
Causar cambios:
las estrategias de control que no causan cambios de estado nunca alcanzan la solucin. Un ejemplo de
estrategia de control que no causa cambios es seleccionar siempre la primera regla aplicable de la lista
de reglas definidas. En el ejemplo de las jarras de agua, se continuara indefinidamente aplicando las
reglas 1 y 3 sin posibilidad de arribar a la solucin.
Ser sistemtica:
las estrategias de control que no son sistemticas pueden utilizar secuencias de operaciones no
apropiadas varias veces hasta alcanzar la solucin. Un ejemplo de estrategia de control no sistemtica
es seleccionar la regla a aplicar al azar. Esta estrategia puede encontrar la solucin eventualmente, pero
luego de haber realizado varios pasos innecesarios e incluso haber vuelto varias veces al mismo estado.
En caso de no contar con una aproximacin directa al problema, el proceso de bsqueda resulta
fundamental en la resolucin del mismo. Los algoritmos de
Este algoritmo de bsqueda visita cada nodo del rbol por niveles, es decir, visita todos los nodos de un
nivel antes de visitar los del siguiente. A continuacin se detalla un pseudo-cdigo de este algoritmo:
Lista_nodos = [estado_inicial];
estado_actual = lista_nodos.primero;
Si EstadoFinal(estado_actual) entonces
Terminar;
Sino
Fin Mientras;
Fin Sino;
Fin Mientras;
Este algoritmo bsico debera modificarse para detectar el caso en que se vuelva a alcanzar un estado
que ya ha sido visitado con anterioridad. En este caso, debera realizarse una "poda" de la rama del
rbol, ya que en caso contrario se volvera a generar un subrbol ya generado.
Con la bsqueda a lo ancho se asegura que una vez alcanzada una solucin no existe otra ruta hacia la
solucin que tenga menor cantidad de pasos. Una desventaja de este algoritmo es que para alcanzar
una solucin de n pasos, debe haber explorado todo el espacio de estados hasta ese nivel.
Ejercicio:
Realizar el rbol de bsqueda a lo ancho para encontrar la solucin del problema de las jarras de agua.
Se le recomienda al lector realizar este ejercicio como prctica.
Este algoritmo de bsqueda contina por una rama del rbol hasta encontrar la solucin o decidir
terminar la bsqueda por esa direccin (por llegar al estado final, por tener un largo de ruta que supera
una cota mxima determina, por haber llegado a un estado ya visitado, etc.). Al fracasar una ruta, se
realiza un
Comienzo
Si EstadoFinal(estado_actual) entonces
Devolver TRUE;
Sino
exito = FALSE;
lista_reglas = ReglasAplicables (estado_actual);
Mientras NOT exito AND NOT Vacia(lista_reglas)
estado_sucesor = AplicarRegla (lista_reglas);
exito = Buscar (estado_sucesor);
Fin Mientras;
Devolver exito;
Fin Sino;
Fin Buscar;
Este algoritmo bsico debera modificarse para terminar la bsqueda en una rama que se alcanza un
estado que ya visitado.
Con la bsqueda en profundidad no es necesario tener almacenado todo el espacio de estados, sino
slo el camino que se est explorando. Puede encontrar la solucin sin tener que explorar gran parte del
espacio de estados. Como desventajas de este algoritmo se seala que puede seguir una ruta
infructuosa durante muchos pasos, y adems la primera solucin que encuentra puede distar mucho de
ser la solucin de mnima cantidad de pasos.
Bsqueda Heurstica
Existen algunos problemas en los que resulta imposible explorar el rbol del espacio de estados pues
resulta en una explosin combinatoria. Por ej. en el problema del viajante, se debe encontrar la ruta
mnima entre N ciudades a visitar.
Si se aplica cualquiera de los dos algoritmos de bsqueda anteriores, nos encontramos ante un costo
computacional no polinomial O(N!).
Una heurstica es una tcnica que aumenta la eficiencia de un proceso de bsqueda. El objetivo es guiar
al proceso de bsqueda en la direccin ms provechosa sugiriendo el camino a seguir cuando hay ms
de una opcin.
Generales: son adecuadas para una amplia variedad de dominios. Por ej. la heurstica del vecino ms
prximo (nearest neighbor) se aplica a muchos problemas combinatorios. En el ejemplo del problema
del viajante, se comienza por una ciudad arbitraria continuando en cada paso por la ciudad ms cercana
no visitada. Esto resulta en una reduccin del costo computacional a O(N2).
Las heursticas pueden sacrificar la completitud, es decir, pueden pasar por alto una buena solucin. Sin
embargo, existen varios argumentos a favor de usarlas:
En muchos casos no se necesita la solucin ptima sino una buena aproximacin. Segn Simon (1981),
las personas resuelven problemas "satisfaciendo" y no "optimizando".
Las aproximaciones que se logran con heursticas pueden ser malas para los peores casos de un
problema, pero stos raramente sedan en el mundo real.
El esfuerzo de intentar comprender por qu funciona o no una heurstica sirve para profundizar en la
comprensin del problema.
Las heursticas se pueden incorporar a un proceso de bsqueda basado en reglas de dos maneras:
Dentro de las mismas reglas. Por ej. en el ajedrez, las reglas pueden describir, adems de los
movimientos legales, tambin las buenas jugadas.
En conclusin, las heursticas representan el conocimiento general y especfico del mundo, que hace
que sea abordable solucionar problemas complejos.
Leccin 5
3. Anlisis del problema
Luego de definir el problema formalmente, el segundo paso en la resolucin del problema es el anlisis
del mismo. A fin de poder elegir el mtodo ms apropiado para resolver un problema particular, es
necesario analizar distintas cuestiones
que afectan a al definicin del mismo y a las caractersticas de la solucin deseada. Existen varias
preguntas a responder acerca del problema:
Por otra partes, existen otros problemas que no pueden descomponerse y componer la solucin a partir
de las soluciones parciales de sus partes. Por el contrario, una solucin necesita considerar globalmente
el problema. Por ej. el problema del mundo de los bloques.
Algunos problemas permiten deshacer uno o varios pasos hacia una solucin una vez realizados. En
este aspecto, existen tres categoras en las que puede dividirse un problema:
Recuperables:
En un punto dado es posible deshacer todos los pasos inadecuados hacia la solucin. Por ej. en el
juego 8-puzzle. La estructura de control se implementa con una pila push-down en la que se almacenan
las decisiones para poder volver atrs.
No recuperables:
En un punto dado no es posible deshacer ningn paso realizado. Por ej. en una partida de ajedrez no se
puede volver atrs una vez movidas las piezas. En estos problemas el sistema debe esforzarse en la
toma de decisiones pues stas son irrevocables. Algunos usan una planificacin en la que se analiza
por adelantado una secuencia de pasos antes de realizar el primer paso para descubrir a donde
conduce.
Ignorables:
En un punto dado es posible ignorar los pasos realizados hasta el momento y comenzar de nuevo con
una nueva solucin. Por ej. un demostrador de teoremas puede abandonar una demostracin basada en
un lema dado y comenzar nuevamente. Estos problemas se resuelven con estrategias de control
sencillas que nunca vuelven hacia atrs.
Consecuencia cierta:
Es posible planificar una secuencia de movimientos estando seguros del resultado
a obtener. Se puede realizar una planificacin para generar operadores que garanticen llegar a la
solucin.
Consecuencia incierta:
No es posible planificar con certeza pues no se sabe que ocurrir luego del siguiente movimiento. Sin
embargo, se puede realizar una planificacin para generar operadores que tengan una buena
probabilidad de llegar a la solucin.
Los problemas ms difciles de resolver son los no recuperables de consecuencia incierta. Por ej. el
control del brazo de un robot: es de consecuencia incierta pues alguien puede interponer un objeto en la
ruta del brazo, se puede atascar, etc.
Algn camino:
Slo importa encontrar una solucin sin importar si existen otros caminos que conducen a la solucin.
Generalmente se resuelven con heursticas. Por ej. programa de respuestas a preguntas.
El mejor camino:
Importa encontrar la ruta ms corta hacia la solucin. Son problemas ms complicados de computar.
Algunos requieren una bsqueda ms exhaustiva que usando heursticas. Por ej. en el problema del
viajante importa encontrar la ruta ms corta entre las ciudades a visitar.
un estado final:
No es necesario el registro del proceso seguido, slo importa arribar a la solucin final. Por ej.
Interpretar texto.
Se necesita dar el camino seguido desde el estado inicial al estado final. Por ej. Problema de las jarras
de agua.
Se necesita gran cantidad de conocimiento acerca del problema para poder encontrar una solucin. Por
ej. comprensin de texto.
Acotar la bsqueda:
La solucin bsica puede encontrarse con poco conocimiento, pero para restringir el rbol de bsqueda
y encontrar la solucin de manera ms eficiente es necesario contar ms conocimiento. Por ej. en el
ajedrez se necesita bsicamente poco conocimiento para conocer los movimientos legales y un
mecanismo sencillo de bsqueda. Pero dado que para aumentar la eficiencia de la bsqueda sta
debe restringirse, se necesita conocimiento de heursticas de buenas estrategias y tcticas para jugar.
7. El programa que soluciona el problema busca la solucin solo o necesita interactuar con una
persona?
Con respecto a la relacin programa-usuario, existen dos tipos de programas que solucionan el
problema:
Solitarios:
Reciben como entrada el problema y dan como salida la solucin. No importa el razonamiento que haya
seguido la mquina para encontrar la solucin. Por ej. problema de las jarras de agua.
Conversacionales:
Existe una comunicacin hombre-mquina de manera que el usuario puede ayudar a la mquina o la
mquina puede informar al usuario durante la bsqueda de la solucin. Para que esta comunicacin sea
posible debe existir una correspondencia entre el razonamiento seguido por la mquina y la forma de
razonamiento humano. Por ej. en un sistema experto de diagnstico mdico, el usuario no aceptara el
veredicto de una mquina si no puede comprender el razonamiento que la llev a l.
VER: http://www.mena.com.mx/gonzalo/juegos/hanoi/index.html
Se hallan N discos de distinto tamao apilados sobre una base 1 de manera que cada disco se
encuentra sobre uno de mayor radio. Existen otras dos bases vacas 2 y 3. El objetivo es llevar todos los
discos de la base 1 hasta la base 3, para lo cual puede usarse la base 2. Considerar que se puede
mover slo un disco a la vez, y cada disco puede descansar solamente en las bases y no en el suelo.
Recordar que los discos deben situarse siempre sobre uno de mayor radio.
Fuente: ://www.mena.com.mx/gonzalo/juegos/hanoi/index.html Se requieren 15 movimientos
Solucin:
En la siguiente animacin puede apreciarse cmo resolver las torres para un caso sencillo:
Capitulo 2
Agentes inteligentes
Leccin 6
Una de las ramas de la inteligencia artificial que empieza a tener ms auge hoy en da, es la de los
Agentes Inteligentes. A pesar de que sta tuvo su origen a principios de los 80s, es apenas hasta ahora
cuando se empieza a ver su aplicacin debido al gran desarrollo que han tenidos las redes.
Los Agentes Inteligentes6 se caracterizan por desenvolverse en un entorno, ejecutar acciones sobre el,
basndose en percepciones para lograr metas deseadas por el usuario.
INTRODUCCION
Hoy en da lo que podemos encontrar en Internet son servicios sofisticados y herramientas para acceder
a ellos, como servidores de informacin o navegadores. Pero lo que los usuarios desean realmente son
soluciones concretas: encontrar en la red el hotel ms cmodo al mejor precio o la mejor inversin en
bolsa.
Para lograr estos los Agentes Inteligentes dialogan con el usuario de forma sencilla y natural definiendo
as lo que este realmente desea, despus de haber definido el problema, el agente empieza a
solucionarlo consultando sus fuentes de informacin o dialogando con otros agentes, y le va informando
de manera evolutiva las soluciones logradas al usuario. Si ste no queda satisfecho, contina la
bsqueda hasta agotar las fuentes o hasta que el usuario quede satisfecho con la solucin.
La inteligencia del agente es demostrada a travs de su funcionalidad. El usuario se dar cuenta de esta
a medida que el agente le resuelva las tareas que le plantee, de manera eficiente; su funcionalidad
mejorar a medida que resuelve mayor nmero de casos. Esta capacidad de adaptacin permite al
agente conocer mejor las preferencias de los usuarios y atenderlos de forma personalizada.
Los Agentes Inteligentes se caracterizan por actuar en un ambiente en particular y ser capaces de
realizar ciertas acciones, basados en su entorno, hasta realizar la tarea que les fue encomendada, esas
tareas van desde recomendaciones para el usuario hasta solucin de problemas.
A pesar de que los Agentes Inteligente son una rama de la Inteligencia Artificial relativamente muy
nueva, se tienen grandes expectativas sobre estos ya que tiene enormes perspectivas de aplicacin
6
AGENTES INTELIGENTES, Luz Adriana Roldan Pardo. Estudiante de Ingeniera de sistemas
Cod.200010075010 lroldan1@eafit.edu.co, Universidad EAFIT, Abril de 2004
QU ES UN AGENTE?
Existen muchas definiciones de Agentes, pero una de las mas simples es la de Franklin and Graesser
"Un agente es un sistema situado en y parte de un entorno que siente ese entorno y acta sobre l, a
travs del tiempo, persiguiendo sus propios objetivos de forma que afecte lo que siente en el futuro."
Basndonos en algunos ejemplos que mostraremos posteriormente, el entorno en el cual esta situado el
agente, es Internet, la percepcin se puede ver cuando acta sobre el entorno a medida que va
recibiendo e instruyndose de las peticiones que hace el usuario sobre el y las acciones se clarifican
cuando el agente nos muestra informacin que el mismo ha buscado en Internet.
Como podemos ver en la imagen 1 el agente percibe su ambiente mediante sensores y acta en l
mediante actuadores, para entender esto de una mejor manera, observemos un agente humano, este
posee ojos y odos los cuales le sirven como sensores, as como piernas, manos, boca y otros rganos
que le sirven como actuadores.
Leccin 7
AGENTE INTELIGENTE7
Imaginmonos al llegar por la maana al trabajo, sentarse al teclado del computador e ingresar a
nuestra cuenta de correo electrnico, muchas personas se ven inundadas por decenas, incluso cientos
de mensajes de correo electrnico. Algunos de esos mensajes tienen algo interesante: se refieren a una
pregunta que alguien haba hecho anteriormente, contienen informacin que puede conducir a una
venta, o son simplemente un mensaje de un amigo hacindonos una invitacin. Otros, solo, contienen
correo basura. La cuenta de correo, solo nos proporciona informacin mnima sobre el contenido del
mensaje: el nombre del autor, su direccin de correo, a veces una lnea de Subject o tema que tiene que
ver con el contenido, a veces no.
Imaginemos, por el contrario: al sentarnos frente al computador y encontrar una ventana que se abre en
pantalla y nos muestra dos o tres mensajes de correo, clasificados como importantes o urgentes.
Tambin nos da la opcin de leer los menos urgentes, y muestra claramente un cubo de basura al cual
han sido enviados otros mensajes. Al da siguiente, los mensajes similares a los "menos urgentes"
ledos anteriormente son considerados ms importantes, y colocados ms arriba en la lista de lectura.
Adems, uno de los mensajes de la lista de correo se considera importante, y se coloca en la lista de
"importantes", y nos avisa de que el peridico al cual estamos suscritos en lnea contiene una noticia
"interesante". Aqu se puede ver la existencia de un agente inteligente.
Otros ejemplos en los cuales se puede ver la aplicacin de Agentes Inteligentes: estos pueden organizar
agendas de visitas, citas, fechas alternativas, tareas pendientes, etc. En las universidades se han
desarrollado agentes que usan el correo electrnico para resolver tareas, como: planificacin de clases,
citas de los alumnos, agenda, etc. El "agente" recoge en el computador la peticin de entrevista de un
alumno, acepta y anota la cita o, si el profesor est ocupado, propone una nueva y negocia la fecha con
el estudiante.
En los negocios, se han comenzado a desarrollar asistentes personales para realizar inversiones, para
proporcionar informacin especializada sobre determinados temas (econmicos, jurdicos, polticos, de
ocio etc.) El comercio electrnico y la publicidad son otros campos de aplicacin, as como el
seguimiento de las incidencias de los clientes o la realizacin de posibles ofertas, en el caso de que
decidan utilizar los servicios de la competencia.
Una de las caractersticas que distingue a los Agentes inteligentes de los dems programas es su
autonoma, y al ser autnomos son proactivos, esto quiere decir, que no slo actan cuando responden
a una accin del usuario, sino quetambin actan siguiendo sus propios objetivos; y tambin son
persistentes "que no se pueden "apagar"; incluso aunque el usuario no est interaccionando con ellos";
los agentes siguen funcionando, recolectando informacin, aprendiendo y comunicndose con otros
agentes.
7
Agentes Autnomos Inteligentes J.J. Merelo http://www.redcientifica.com/doc/doc199903310001.html
El afectar lo que se perciba en el futuro implica inteligencia, al menos en el sentido que se aprenda de
los fallos para no volver a cometerlos en el futuro, lo cual implica adaptatividad. El aprendizaje
normalmente se realizar a travs de la interaccin con un usuario. Y adems, la percepcin y accin
implican comunicacin, que se puede realizar con programas no-agentes o con otros agentes, lo cual
puede dar lugar a sociedades de agentes.
Segunda Generacin: Estos agentes tambin se pueden ver hoy en da, a diferencia de la primera
generacin, estos agentes aparte de comparar el precio tambin comparan el producto como tal.
Tercera Generacin: Este tipo de agentes aun no existe, pero lo que se pretende es que hagan todo el
proceso de la compra, para el usuario.
Un agente tiene un conjunto de propiedades las cuales los caracterizan y diferencian de los dems
programas, aunque, un agente puede poseer solo algunas de estas propiedades:
Agentes De Reflejo Simple: Son agentes que funcionan segn un conjunto de reglas condicin-accin.
El agente capta el estado actual del entorno en el cual se encuentra por medio de los censores, luego
busca entre las reglas cual coincide con la percepcin para luego ejecutar la accin conveniente. Este
agente funciona correctamente solo si se toma la decisin adecuada basndose en la percepcin de
ambiente en un momento dado.
Agentes Basados En Metas: El agente debe saber las metas que se desean alcanzar, no es suficiente
solo con saber el estado actual del entorno en el cual se encuentra. El agente deber ser capaz de
analizar la situacin actual del entorno con las posibles acciones que se podran ejecutar y de esta
manera seleccionar la accin que mas le convenga para alcanzar las metas de una manera mas
sencilla.
Agentes De Interfaz: Se caracteriza por su capacidad de hacer comprensible las interfaces. Tambin
denominados asistentes personales, tiene como objetivo simplificar las tareas rutinarias que realiza un
usuario, por ejemplo, detectar que una noticia pueda ser importante para un usuario y comunicrselo.
Agentes Mviles: Esto quiere decir que el agente puede transitar entre varias maquinas para utilizar
recursos de los cuales no dispone en su propia maquina o simplemente para evitar una sobre carga de
comunicacin. En este tipo es principal problema es la seguridad.
Agentes Consejeros: Este tipo de agente da consejos al usuario referentes a una herramienta, o un
sistema de diagnostico o ayuda.
Agentes De Navegacin: Estos agentes son utilizados para navegar en la red, su funcin principal es
recordar sitios y direcciones de inters para el usuario.
Agentes De Monitoreo: Estos agentes proporcionan informacin de manera eficaz y oportuna para el
usuario, en el momento que ocurre un evento.
Agentes De Recomendacin: Este agente posee una base de datos con informacin acerca de un
tpico de inters para un grupo, al hacer las recomendaciones se basan en analogas con otros usuarios
de perfil similar.
El Programa de Agente implanta una funcin que mapea las percepciones del agente en un conjunto de
acciones. La Arquitectura utilizada por el Programa de Agente le permitir ejecutarse. sta puede variar
desde un computador o algn otro hardware especfico para el procesamiento de percepciones, como
por ejemplo una cmara de vdeo. Para disear y desarrollar un programa de agente es necesario
especificar previamente los elementos constituyentes del mismo, tales como, las percepciones que
capturaran los sensores del agente as como las acciones con las cuales responder a travs de los
efectores. Las metas a alcanzar y las medidas de desempeo del agente. Finalmente el ambiente en el
cual operar el agente.
A estos elementos se les denomina el PAMA del agente, donde PAMA es igual
a Percepciones, Acciones, Metas, Desempeo y Ambiente. En la tabla se muestran algunos ejemplos
de tipos de agentes y su respectivo PAMA.
Los Agentes Inteligentes son una clase de software con caractersticas especficas. Para llevar a cabo el
desarrollo y construccin de Agentes, es recomendable utilizar mtodos similares a los utilizados
comnmente en desarrollo de Ingeniera de Software y Sistemas de Informacin.
De esto se desprende que los procesos a ejecutar son los tpicos Anlisis, Diseo, Implantacin y
Prueba. Es importante antes de describir un mtodo que permita desarrollar y construir Agentes
Inteligentes, considerar el significado del vocablo mtodo. Mtodo viene de la palabra griega "meta" y
"odos". "Odos" significa va, camino o curso y "meta" significa con, alrededor, despus, por lo que
mtodo sera la descripcin de una va o curso de accin a seguir para alcanzar un objetivo. Los
mtodos tienen cuatro componentes: una teora, un lenguaje, una estructura y unas tcnicas.8
La teora es una conceptualizacin que se adopta para describir el mtodo, representa las
abstracciones de mayor nivel sobre las que ste se basa.
Las tcnicas son procedimientos (normas, guas, indicaciones) que facilitan la realizacin de las
actividades. La aplicacin de las tcnicas requiere de la utilizacin de herramientas.
Proceso 1. Definicin del Problema del Agente: El objetivo de este proceso es lograr establecer una
conceptualizacin amplia y clara del problema que se pretende resolver con el uso de agentes
inteligentes, y el mismo se divide en las siguientes actividades:
8
Ramos Esmeralda. Mtodo de Adquisicin de Conocimiento en Grupo. Trabajo de Ascenso a la
categora de Agregado.
Escuela de Computacin. Facultad de Ciencias. Universidad Central de Venezuela. 1.998
Proceso 3. Diseo del Agente: Este proceso corresponde con el diseo de la solucin en el mtodo
clsico de diseo y construccin de sistemas de informacin, y en el se pretende generar un modelo del
agente, que sea computacionalmente aplicable. Para lograr esto, el proceso se divide en las siguientes
actividades:
Actividad 3.2. Diseo del motor de Inferencia o Motor de ejecucin. Actividad 3.3. Diseo de la Interfaz.
Proceso 4. Implantacin del Agente: Este proceso est enfocado en la construccin computacional
del agente inteligente diseado, que no es ms que la implantacin del diseo obtenido en el proceso
previo. Las actividades que permitirn lograr este objetivo son:
Proceso 5. Prueba del Agente: Se puede decir que este proceso representa una validacin del agente
construido, en el cual se verifica y ajusta el funcionamiento de dicho agente, en funcin de los
requerimientos y la situacin analizada en el primer proceso planteado. Para lograr esta validacin, se
definen las siguientes actividades:
Leccin 8
ENTORNOS DE APLICACIN
Administracin de Redes y Sistemas: Los agentes pueden ser utilizados para mejorar el software de
gestin y administracin de sistemas, ayudando en el filtrado de informacin y en la ejecucin de
acciones automticas bajo un alto nivel de abstraccin.
Correo y Mensajera: El software de manejo de mensaje ha existido por algn tiempo y es un rea
donde actualmente se utilizan los agentes inteligentes. Los usuarios desean priorizar sus mensajes y
quieren que con el manejo del tiempo esto cada vez se haga mas y mas automtico.
Recuperacin y Manejo de Informacin: En esta rea no solo se busca la informacin, los agentes
tambin ayudan a categorizarla y priorizarla.
Comercio Electrnico: Los agentes pueden ir de compras tomando las especificaciones del usuario y
regresando con recomendaciones de compra que cumplan estas especificaciones. Tambin pueden
actuar como agentes de ventas y primores de productos.
Hoy en da las investigaciones se centran ms hacia los Agentes Inteligentes ya que cada vez las
aplicaciones se hacen ms avanzadas y complicadas para los usuarios.
Con los agentes lo que se busca es una ayuda que le permita al usuario desenvolverse cada vez mejor
con las aplicaciones.
Para analizar el futuro de los agentes se deben tener en cuenta aspectos como:
Los Computadores: Se busca que los Agentes Inteligentes cada da sean capaces de adaptarse al
entorno dinmico que genera la constante evolucin de los computadores y el desarrollo de Internet.
Los Usuarios: Hoy en da los Agentes solo son usados por investigadores, se espera que en un futuro
no muy lejano todos los usuario de computadores utilicen agentes inteligentes ya que estos harn mas
amigable y sencilla la interaccin con sus PC e Internet.
ZEUS (http://www.labs.bt.com/projects/agents/zeus/index.htm)
Software libre que contiene un conjunto de herramientas para ayudar en la creacin de sistemas de
agentes colaborativos (limitados en competencias y recursos, por lo que deben compartir sus
habilidades con otros para realizar un problema ms complejo).
JADE http://sharon.cselt.it/projects/jade/
Java Agent DEvelopment framework Soporta la implementacin de MAS (FIPA compliant) : posee una
Librera de paquetes para programar agentes, adems herramientas para la depuracin y la ejecucin
de agentes. Es adicional una plataforma distribuida para la ejecucin de agentes (heterogneos como
Zeus): middle-ware para MAS con servicios para agentes como directorios, codificacin y transporte de
mensajes, herramientas como monitor remoto de agentes, sniffer agent, dummy agent este software
esta completamente desarrollado en JAVA y es de Libre distribucin bajo licencia LPGL.
Leccin 9
EJEMPLO COMPLETO:
Vamos a definir el conocimiento necesario para que un agente pueda comprar alimentos en un
supermercado. Para demostrar que tal conocimiento es suficiente probaremos un agente basado en el
conocimiento dentro del simulador de ambientes. Para ello necesitaremos un mundo de compras
simulado, que necesariamente deber ser ms sencillo que el mundo real. sin embargo buena parte del
conocimiento mostrado aqu es el mismo tanto para mundos simulados como para mundos reales. La
diferencia es ms bien de gradacin en lo complejo de la visin, el movimiento y la manipulacin tctil.
9
El mundo del supermercado,
http://profesores.sanvalero.net/~w0467/iartificial4/Agentes%20Inteligentes,
Empezaremos por hacer una descripcin PAMA (percepciones, acciones, metas y ambiente) de la
simulacin de las compras.
1. En cada etapa temporal, el agente recibe tres percepciones: tctil, sonora y visual.
2. La percepcin tctil se reduce a tropezar o no tropezar. El agente percibe un tropezn slo si en
el paso de tiempo anterior ejecut una accin Avance y en la ubicacin a la que intent
desplazarse no hay suficiente espacio.
3. La percepcin sonora consiste en una lista de palabras verbales. El agente percibe las palabras
por otros agentes, a una distancia de dos cuadros.
4. Si se realiza un acercamiento mediante la cmara, percibir imgenes detalladas de cada uno
de los objetos, en el cuadro en donde la cmara est enfocada.
5. Si no hay acercamiento mediante la cmara del agente, ste percibir imgenes difusas de
cada uno de los objetos a una distancia de tres cuadrados directamente y diagonalmente frente
a l.
6. Las percepciones visuales estn constituidas por la ubicacin relativa, tamao aproximado,
color, forma y, quizs algunas otras Caractersticas. Ms adelante se explicar con ms detalle.
objeto.
La meta original del agente es comprar todo lo que aparece en una lista de compras. Tal meta se podra
modificar si no hubiese algunos artculos o si resultasen demasiado caros. El agente intentar realizar
las compras lo ms rpido posible y evitar tropezar con cosas. En un problema ms ambicioso se
pedira al agente que cocinase la cena y que elaborara la lista de compras.
El ambiente es el interior de la tienda, as como los objetos y las personas que estn dentro de ella. La
tienda se representa mediante una cuadrcula, con pasillos que separan las hileras de anaqueles. En un
extremo de la tienda estn las cajas registradoras y sus cajeros. Clientes y empleados se encuentran en
diversos sitios de la tienda El agente empieza en la entrada y debe salir de la tienda por el mismo
cuadro por donde entr. En caso de que se le olvide, hay un letrero de SALIDA. Tambin hay letreros
para sealar los pasillos, y letreros ms pequeos (legibles slo mediante acercamiento de la cmara)
para sealar algunos (no necesariamente todos) artculos que estn rebajados.
En el caso de agentes reales, es necesario que descifren las seales de vdeo de la cmara (o la
digitalizacin de sta). Supondremos que este trabajo ya fue realizado. Aun as, el elemento visin de
las percepciones consta de una compleja lista de descripciones La primera componente de una
descripcin es su posicin relativa respecto de la posicin y orientacin del agente. Por ejemplo, la
posicin relativa [-2,1] es el cuadro que est a dos cuadros a la izquierda del agente y un cuadro
adelante segundo componente es el tamao del objeto, expresado como el dimetro promedio del
objetos metros. El siguiente es el color del objeto, expresado como un signo (rojo, verde, amarillo,
naranja ...), seguido de la forma del objeto (plano, redondo, cuadrado, ...). Por ltimo, supondremos que
en la imagen de vdeo se ha realizado una rutina de reconocimiento de caracteres; si hay letras en el
campo visual, se expresarn como una lista de palabras. En la figura se muestra una vista general del
supermercado, en la que el agente que est en [4,5]. El agente mira a la izquierda.
El dominio de la compra de elementos es demasiado grande para abordarlo de una sola vez. En vez de
ello, lo dividiremos en pequeos grupos de conocimiento, trabajaremos por separado cada uno de estos
para luego ver cmo integrarlos. Un buen mtodo para dividir el dominio por grupos es el de identificar
cada una de las tareas que tiene que desempear el agente. A lo anterior se le conoce como
descomposicin funcional. Dividiremos el dominio en cinco grupos:
Planificacin del men: El agente tiene que ser capaz de adaptar la lista de compras cuando en la
tienda no haya alguno de los artculos.
Navegacin: El agente debe ser capaz de comprender el efecto de sus acciones de movimiento y crear
un mapa interno del mundo.
Recopilacin: El agente debe ser capaz de localizar y tomar los artculos que est buscando. Parte de
ello implica inducir la existencia de objetos determinados a partir de las percepciones correspondientes:
el agente necesita contar con reglas de reconocimiento que le permitan inferir que un objeto rojo ms o
menos esfrico de unos siete centmetros de dimetro podra ser un tomate.
Comunicacin: El agente debe ser capaz de formular preguntas cuando no puede encontrar algo por s
mismo.
Pago: Aun un tmido agente al que no le guste hacer preguntas deber contar con la suficiente
capacidad para comunicarse con otros agentes con el fin de que pueda hacer su pago al cajero. El
agente debe saber que 5.00E es demasiado para pagar un tomate, y que si el total de la cuenta
asciende a 17.35E, y paga con un billete de 20E deber recibir 2.65E de cambio.
Una de las ventajas de la descomposicin funcional es que nos permite plantear un problema
completamente dentro de un grupo y ver si el conocimiento puede resolverlo. En otros tipos de
descomposicin por lo general es necesario desmenuzar toda la base de conocimientos antes de
plantear la primera pregunta.
Leccin 10
El mundo del supermercado (ampliacin del problema)
Supongamos que un di determinado no hay tomates. Un agente cuya lista de compras tenga "tomates,
lechuga, pepino, aceite de oliva, vinagre", se dar cuenta de que se trata de ingredientes para preparar
una ensalada y se le ocurrir que un pimiento rojo podra ser un buen sustituto, pues aadira color y
sabor a la ensalada. Un agente cuya lista sea `tomates, cebolla amarilla, apio una zanahoria, carne
molida, leche, vino blanco, tagliatela", inferir que se trata de preparar una salsa a la boloesa (Hazan,
1973), por lo que no hay problema si hace el reemplazo con tomates enlatados.
Para hacer estas inferencias, el agente necesita comprender que los artculos de la lista de compras son
los necesarios para formar objetos ms complejos conocidos como platos, , que stos a su vez se
combinan para formar objetos conocidos como comidas y que a un objeto puede reconocrsele por sus
componentes. Nuestro agente tendr que hacer dos tipos de inferencia. La primera, de la lista de partes
deber inducir el objeto compuesto que estas partes conforman. Es difcil porque la combinacin de las
partes (los artculos de la lista de compras) puede dar por resultado varios objetos compuestos, y
tambin porque algunos de los ingredientes no aparecen en la lista (algunos ya estn en casa, en la
despensa). La segunda, el agente debe ser capaz de decidir cmo reemplazar una parte que no se
encuentra para complementar el objeto compuesto que interesa. Esto se puede hacer en dos niveles:
reemplazando un ingrediente por otro y completar as el plato o, de no ser esto posible, reemplazando
todo el plato por otro y completar as la comida. Parte del conocimiento necesario tiene que ver con
platos especficos y parte es de nivel tan general que podra servir para, por ejemplo, reemplazar el
silenciador averiado de un carro.
El primer paso consiste en convertir la lista de compras -una lista de palabras- en una lista de partes:
una lista de categoras. Se usa el diccionario para asociar palabras con sus referentes respectivos:
Referente("tomates", Tomates)
Referente("cebollas", Cebollas)
El siguiente paso consiste en describir los objetos en funcin de sus partes necesarias y de las
opcionales. Si de lo que realmente se trata es de ser capaz de preparar un plato, necesitamos saber
ms acerca de las relaciones que guardan entre s las partes. Pero para ir a comprar los ingredientes,
slo necesitamos la lista correspondiente. Definimos PartesRequeridas, y
PartesRequeridas({Lechuga,Aderezo}EnsaladasDeVerduras) significar que todo objeto que sea un
elemento de EnsaladasDe Verduras tiene una ParteRequerida que es un elemento de Lechuga, y otra
que es un elemento de Aderezo. El que la lechuga sea una parte requerida de las ensaladas de
verduras significa que en cada uno de los elementos de stas hay un elemento de lechuga que forma
parte de ellas. Un razonamiento semejante se aplia a PartesOpciona/es, excepto que slo algunos
elementos de una categora tienen que manifestar las partes opcionales:
El paso siguiente consiste en describir comidas y platos en funcin de sus partes respectivas:
PartesRequeridas({PlatosPrincipales}, Comidas)
Ensaladas Verdes c
Ensaladas Ensaladas c
Platos
PastaBoloesa c-
Entradas Entradas
c3P/atos fornates
c- Jugo Tomate
TomatesEnlatados c
JugoDeTomate Tagliatela c
Pasta
Ahora tenemos que decidir qu platos se pueden preparar de la lista de compras "tomates, cebollas
amarillas, una zanahoria, carne molida, leche, vino blanco, tagliatela". Como se mencion
anteriormente, esto se complica por el hecho de que la sal, la mantequilla y el aceite de oliva necesarios
para el plato con salsa boloesa no figuran en la lista de compras. Definiremos el predicado
PuedePreparar para que sea vlido entre una lista de compras y un plato siempre y cuando las
categoras de la lista -cuando se combinen con ingredientes tpicos- provean todoslos ingredientes
indispensables o requeridos de un plato.
Con lo que hasta ahora contamos podemos inferir que el nico plato que se puede preparar con lo que
hay en la lista de compras es la pasta a la boloesa. La siguiente pregunta es qu hacer si no
encontramos tomates frescos. Resulta que todo lo que hay que hacer es reemplazar la lista de compras
(o la parte de sta necesaria para preparar este plato) por la lista de categoras de partes
correspondientes al mismo plato. En este caso, quiere decir que Tomates se reemplazar por
JugoTomate, lo que se puede resolver utilizando una lata de TomatesEnlatados.
Navegacin
Si un agente busca un libro en una librera, puede recorrer sta de principio a fin, mirando cada libro
hasta dar con el que le interesa. Sin embargo, lo ms eficiente sera que mediante el nmero de
clasificacin del libro, y con un diagrama que le indicase en qu anaquel se encuentra dicho nmero,
localizase directamente el libro en cuestin. Sucede lo mismo en el caso de un supermercado, si bien el
catlogo de ste no es tan bueno como el de la librera. El agente de compras deber saber que los
Supermercados estn ordenados por pasillos, que en stos hay letreros en donde se explica de manera
sucinta qu hay en ellos y los objetos cercanos en la jerarqua taxonmica es muy probable que tambin
estn muy prximos fsicamente. Por ejemplo, los inmigrantes britnicos que viven en Estados Unidos
aprenden que los paquetes de t se encuentran en el pasillo sealado con el letrero "Caf". Buena parte
del problema de la navegacin es que el agente tiene que recordar en dnde empez su recorrido, y
puede calcular su ubicacin actual a partir de los movimientos que haya realizado hasta ese momento.
El agente tiene la posibilidad de encontrar mejores rutas siempre que est consciente de que por lo
general la distribucin de los supermercados se hace por pasillos. En los supermercados los pasillos
estn numerados, lo que le evita la pena de tener que hacer recorridos a ciegas. La segunda vez que
visita un supermercado puede ahorrar mucho tiempo si recuerda en dnde se encuentra cada cosa. Sin
embargo, no es prctico que recuerde la ubicacin exacta de cada artculo puesto que el tomate que
ahora se encuentra en la ubicacin [x,y], probablemente ya no est all el da de maana.
Un problema tpico de navegacin es el de la localizacin de los tomates. La siguiente estrategia se
considera funcional:
1. Si el agente sabe, gracias a una vista anterior, en dnde se encuentran los tomates, calcule la
ruta para ir de la ubicacin actual a ese sitio.
2. Pero si se sabe en qu pasillo estn las verduras, disee un ruta para ir a dicho pasillo.
3. De no ser el caso, desplcese al frente del supermercado hasta encontrar el letrero de las
verduras.
4. Si nada de lo anterior funcionara, desplcese y pregunte a alguien en dnde estn los tomates.
(De esto se habla en la seccin "Comunicacin".)
5. Una vez localizado el pasillo de las verduras, recorra ste con acercamientos de cmara, y
busque algo de color rojo. Cuando se localice esto, mediante un acercamiento determine si se
trata de tomates. (De esto se habla en la seccin "Recopilacin".)
Recopilacin
Una vez ubicado en el pasillo correcto, el agente tiene que ir encontrando los artculos de su lista Para
ello, debern coincidir las percepciones visuales y las percepciones esperadas de cada categora de
objetos. En el mundo del supermercado existen miles de objetos diferentes, muchos de ellos (como los
tomates y las manzanas) ofrecen percepciones semejantes. El agente nunca estar totalmente seguro
de que con base en sus percepciones haya logrado clasificar correctamente un objeto; lo que s puede
es darse cuenta de si una conjetura en efecto es correcta. El agente de compras puede recurrir a una de
las siguientes reglas de clasificacin:
1. S solamente una categora conocida corresponde a una percepcin, suponga que el objeto es
miembro de dicha categora. (Esto puede dar lugar a errores cuando se tiene ante la vista
objetos desconocidos.)
2. Si una percepcin corresponde a varias categoras a la vez, pero un letrero cercano permite
identificar una de ellas, suponga que el objeto es miembro de esa categora.
3. Si hay un letrero en un pasillo que identifica una categora (o una supercategora), suponga que
el objeto pertenece a dicha categora. Por ejemplo, si nos encontrramos en el pasillo
identificado como "Verduras", y no en el pasillo de las "Frutas", una percepcin redonda, roja, la
categorizaramos como un tomate, no como manzana. En un partido de cricket, podra
interpretarse como otra cosa.
Para implantar lo anterior, empezamos con un conjunto de reglas causales correspondientes a las
percepciones:
ProducePercepcinForma(x, s)
Reglas como las anteriores, y otras ms semejantes, constituyen una muestra de una teora causal
acerca de cmo a partir de los objetos del mundo se forman las percepciones. Observe cun simplista
es. Por ejemplo, en ningn momento se habla sobre iluminacin. (Por fortuna, las luces siempre stn
encendidas en un supermercado). A partir de estas reglase el agente podr deducir todo un conjunto de
posibles objetos que pudieran explicar las percepciones recibidas. Mediante el conocimiento acerca de
qu tipos de objetos aparecen en dnde permitir eliminar todas las categoras, excepto una. Desde
luego, el hecho de que el agente slo sepa acerca de un tipo de objeto que pudiera producir una
percepcin determinada no significa necesariamente que tal percepcin haya sido producida realmente
por dicho objetos. D)esde luego es posible que existan otros tipos de objetos (p. ej., tomates de plstico)
que produzcan la misma percepcin que la de la categora conocida. Para resolver lo anterior se puede
utilizar el axioma de cierre de dominio, mediante el que se especifique que las categoras conocidas es
todo lo que existe, o mediante un supuesto previamente definido, que no se explica aqu.
La parte restante del problema de la recopilacin es la manipulacin: cmo tomar los objetos y
transportarlos. En el caso de nuestra simulacin, se supone que la accin realizada se reduce a la
primitiva toma de un objeto y a que el agente sea capaz de transportar todos los artculos que necesite
En el mundo real, las acciones necesarias para coger un racimo de pltanos sin estropearlos, o una
botella de leche de un litro sin derramar una gota, plantean serios problemas.
Comunicacin
Un eficiente comprador cabe cundo preguntar. (En dnde estn las anchoas?. ,Son estos tomates
verdes?) Desafortunadamente la de mantener una conversacin es una tarea difcil, por lo que
pospondremos su estudio. Por de pronto, hablaremos de una modalidad ms sencilla de comunicacin
unidireccional: la lectura de letreros. Si en el letrero de un pasillo aparece una palabra, los miembros
pertenecientes a la categora a la que se refiere esa palabra se encontrarn en dicho pasillo.
Si en un letrero pequeo aparece una palabra, los artculos que pertenecen a esa categora se
encontrarn en sus proximidades:
b' s, w, 1 (s e Signos A Tamao(x) < Metros(. 3) n w E Palabras(x) A En(s, 7)) => -3x, c Referente(w, c)
A x e c,,, En(x, AreaAlrededor(I))
Pago
El agente de compras debe contar con el suficiente conocimiento con el fin que no pague de ms por un
artculo. En primer lugar, debe conocer cules son los precios tpicos de los artculos, por ejemplo:
El agente deber saber que el precio total es aproximadamente proporcional a la cantidad, y tambin
que es frecuente obtener descuentos cuando se compran cantidades mayores. La regla siguiente
establece que el descuento puede ser de hasta 50%:
Es muy importante que el agente sepa que es un mal negocio pagar ms del precio justo por un artculo,
y todo lo que sea mal negocio es una mala accin: di Precio() > PrecioJusto(i) => Ma/aCompra(i) di
MalNegocio (i) => b'a Ma/a(Compra (a, i))
Los eventos de compra pertenecen a la categora Compra r(b,x, s, p): el comprador b compra el objeto x
con el vendedor s por el precio p. Aunque la descripcin completa de una compra es muy compleja,
corresponde al patrn general definido anteriormente para el caso del matrimonio. Entre las condiciones
previas figura el hecho de que p es el precio del objeto x; que b posee, al menos dinero equivalente al
precio, y en forma de uno o ms instrumentos monetarios; y que s es el propietario de x. El evento
incluye un intercambio monetario cuyo resultado final es una ganancia neta para s por el valor p y que b
se convierte en propietario de x.
Y algo ms que debe saber el agente acerca de las compras: no es correcto salir de una tienda
llevndose algo que todava es propiedad de sta.
Todo agente cuya meta sea salir del supermercado utilizar esta meta para definir la submeta de
convertirse en propietario de todos los objetos que se est llevando. As, todo lo que necesitamos es
una descripcin de las partes correspondientes a un evento de compra, de manera que el agente pueda
realizarla. En el supermercado, el evento de la compra consiste en dirigirse a las cajas registradoras,
poner todos los artculos sobre el mostrador, esperar a que el cajero los contabilice, entregar una
cantidad de dinero igual al precio total marcado y recoger cada uno de los artculos. Note que si el total
es de E4, no se entregar al cajero el mismo billete de un euro cuatro veces.
V b , m , s , p , e e e Supermercado(b, m, s, p) =>
3 e,, e2, e3, e4, e5, e, = lr(b, c) A Caja(c) A
e2 = Poner(b, m, c) A e3 = PrecioTotal(s, m) ~
e4 = Poner(b, p, c) A e5 = Tomar(b, m) A
Antes(e,, e2) A Antes(e2, e3) A Antes(e3, e4) A Antes(e4, e5) ~
ParteDe(e,, e) A ParteDe(e2, e) A ParteDe(e3, e) n ParteDe(e4, e) A ParteDe(e5, e)
Hemos as comentado lo referente a todas las principales reas del conocimiento necesarias para que
un agente se desenvuelva adecuadamente en el mundo de las compras en un supermercado. De haber
realizado una especificacin exhaustiva, este ejercicio habra resultado excesivamente largo; se opt
ms bien por bosquejar el mtodo que se empleara para realizar dicha especificacin. No obstante el
arduo trabajo implicado, la elaboracin de este tipo de bases de conocimiento reales constituye una
valiossima experiencia.
Fuente:http://profesores.sanvalero.net/~w0467/iartificial4/Agentes%20Inteligentes
Capitulo 3
Leccin 11
Teora De La Complejidad
Definicin: La complejidad se refiere a la condicin del cosmos que - a pesar de que el principio cuntico
(todo interacta con todo) lo integra en una realidad nica - es demasiado rico y variado como para ser
entendido por rutas lineales simples, que no conducen ni a novedades ni a asombros. Algunas
porciones del cosmos se entienden mediante dichas rutas, pero los fenmenos ms intrincados slo se
pueden entender por sus patrones generales, pero no en detalle. La teora de la complejidad, dentro de
la mecnica estadstica (captulo de la fsica), se preocupa del estudio de los atractores asociados a sus
dinmicas y de la teora de la innovacin, de la autoorganizacin, del aprendizaje, de la adaptacin, de
los sistemas disipativos (relacionados con la segunda ley) y no-lineales, de las transiciones de fase (en
especial las que ligan la fase caos con la fase orden), de las roturas de simetra en condiciones alejadas
del equilibrio, de la emergencia de nuevos fenmenos a partir de redes y de interacciones. Para
entender muchos fenmenos hasta ahora mal explicados, la ciencia se inclina hacia la teora del caos,
de los fractales y a sta de la complejidad.
Aplicada esta teora tan rica al cerebro, ste la pone de manifiesto a travs de su habilidad
impresionante para detectar detalles. Se interpreta que existe una tremenda presin evolucionaria para
que (en los animales con un atractor para su evolucin del tipo inteligencia-intensivo) los cerebros se
vuelvan especialistas en detalles y logros. Denominamos conciencia a un atributo de la arquitectura del
cerebro que se aplica innovativamente a detectar detalles, atributo que es de por s autorreferencial y
emergente, quizs el ms avanzado en su complejidad, no- linealidad, autoorganizacin y capacidad de
aprender del entorno. El logro ms misterioso es el de combinar una impresionante cantidad de
fragmentos sensoriales de la realidad, parcialmente estructurados, descubriendo a partir de ellos nuevos
detalles, que siempre se pueden aplicar a controlar alarmas. (Ideas de diversos autores, entre ellos de
Jack Cohen y Ian Stewart).
La moderna teora de la complejidad (Chaitin, 1975; Rabin, 1977) se basa en principios informacionales
y computacionales que intentan abordar con cierto nivel de abstraccin campos tales como el estudio de
la naturaleza y consecuencias de las interacciones y no-linearidades de sistemas con muchas variables,
con muchos objetos y que presentan mltiples objetivos. Incluye tpicos de teora general de sistemas,
vida artificial, autmatas celulares, caos, valles de atraccin en redes neurales, criticalidad, computacin
evolucionaria, algoritmos genticos, fractales, computacin paralela, sistemas autoorganizantes,
sistemas adaptivos compartimentalizados, sistemas dinmicos, inteligencia artificial, complejidad en
biologa.
10
http://club.telepolis.com/ohcop/compleji.html
Complejidad11
Definiciones del texto de Barral y von der Becke: "Diversos matemticos y cientficos han definido la
complejidad.
a. Supngase ya un sistema complejo y aplquense a l las ideas del premio Nobel Herbert Simon. Por
ms que se conozcan acabadamente todos sus subsistemas constituyentes, en realidad ello no alcanza
para conocer la funcin verdaderamente fundamental del sistema. Por qu? Porque el sistema no es
solamente suma ingenua de sus partes. Para ser un sistema, debe ser ms que la suma trivial. Una
bicicleta y un ciclista forman un sistema con una funcin ms all de la suma de las funciones aisladas
de ambos subsistemas. Cuanto mayor sea la diferencia entre la suma ingenua de las partes y la
operacin total, tanto ms significativa es la complejidad del sistema.
b. Los sistemas complejos muestran una dinmica propia que los hace acercarse a (aunque tambin
alejarse de) diversos ordenamientos posibles, ordenamientos que implican a veces autoorganizaciones
inesperadas para un observador desinformado. Esos diferentes ordenamientos o estructuras disipativas
de Prigogine, estn separados entre s por transiciones de fase, que incluso pueden ocurrir en cascada.
Cuanto mayor sea el nmero de grados de libertad de un sistema complejo (que tambien lo es porque
los tiene muy numerosos) tanto mayor es la posibilidad que se vuelque sobre s mismo en el espacio de
grados de libertad y como resultado se obtenga algo inesperado.
c. Gregorio Chaitin identifica complejidad como principio de la codificacin de longitud mnima. Para
codificar todo lo que realiza un sistema complejo se necesitan mucho ms instrucciones que para
codificar lo que ejecuta un sistema simple. Entonces la longitud de la codificacin de longitud mnima
permite discriminar entre sistema complejo y sistema simple. Un sistema muy simple es una sucesin de
n ceros. Para codificarlo basta con dos instrucciones muy breves. "Imprimir un cero. Repetir esto n
veces." Pero para codificar lo que hace un cerebro, pese a que un sabio logre finalmente una
codificacin de longitud mnima que lo describa, sin duda que se necesitar mucho ms longitud en las
instrucciones. La codificacin del sistema complejo "ciclista pedaleando", por ms mnima que sea,
aporta elementos nuevos y realimentaciones que no estn en cada uno de los dos subsistemas. La
bicicleta depende del status econmico del ciclista y el ciclista depende de la bicicleta que adquiri.
11
http://victorian.fortunecity.com/brutalist/560/H/0000001.html
y = b0 + b1.x1 + b2 2.x2. x2 + b3.x1.x2 + b4.x12 + b5. x22 (2) Ser un paraboloide de revolucin.
Estos son modelos relativamente simples, que se vuelven ms y ms complejos a medida que se les
agreguen nuevos sumandos (como b6.x1.x2) o nuevas variables independientes (x3 , x4, ...). La
complejidad se define por la cantidad de informacin mnima necesaria para su reconocimiento.
Para muchos autores, cuanto ms regular y ordenado sea un modelo, tanto menor es la cantidad de
informacin que encierra. Para describir la posicin y la velocidad de molculas de gas en el equilibrio,
se necesita un juego de informaciones diferente para cada molcula: hay que enumerarlas a todas para
intentar cumplir con el requisito de lograr una codificacin de mnima longitud. La distribucin de la
direccin y sentido de las trayectorias es muy amplia. Al salir del equilibrio gaseoso empieza a haber
una coherencia de trayectorias (tendencia hacia la avalancha) para anular las fuerzas impulsoras
presentes, por imperativo de la segunda ley de la termodinmica. La simplicidad, la regularidad y el
orden, as como el apartamiento del equilibrio en el caso de los gases, se caracterizan todos ellos por su
tendencia a requerir comparativamente poca cantidad de informacin. Todo lo contrario sucede con la
complejidad, las irregularidades y el desorden, as como la aproximacin y acceso al equilibrio en el
caso de los gases, pues, comparativamente, su codificacin de longitud mnima es muy exigente en lo
que se refiere a la cantidad de informacin requerida."
Ahora vamos a tomar en cuenta la complejidad de los problemas enfocada a la resolucin de los
problemas y los algoritmos.
La resolucin prctica de un problema exige por una parte un algoritmo o mtodo de resolucin y por
otra un programa o codificacin de aquel en un ordenador real. Ambos componentes tienen su
importancia; pero la del algoritmo es absolutamente esencial, mientras que la codificacin puede
muchas veces pasar a nivel de ancdota.
A efectos prcticos o ingenieriles, nos deben preocupar los recursos fsicos necesarios para que un
programa se ejecute. Aunque puede haber muchos parmetros, los mas usuales son el tiempo de
ejecucin y la cantidad de memoria (espacio). Ocurre con frecuencia que ambos parmetros estn
fijados por otras razones y se plantea la pregunta inversa: cual es el tamao del mayor problema que
puedo resolver en T segundos y/o con Mbytes de memoria? En lo que sigue nos centraremos casi
siempre en el parmetro tiempo de ejecucin, si bien las ideas desarrolladas son fcilmente aplicables a
otro tipo de recursos.
12
http://www.lab.dit.upm.es/~lprg/material/apuntes/o/index.html Documento Completo
Para cada problema determinaremos un medida N de su tamao (por nmero de datos) e intentaremos
hallar respuestas en funcin de dicho N. El concepto exacto que mide N depende de la naturaleza del
problema. As, para un vector se suele utilizar como N su longitud; para una matriz, el nmero de
elementos que la componen; para un grafo, puede ser el nmero de nodos (a veces es mas importante
considerar el nmero de arcos, dependiendo del tipo de problema a resolver); en un fichero se suele
usar el nmero de registros, etc. Es imposible dar una regla general, pues cada problema tiene su
propia lgica de costo.
Tiempo de Ejecucin
Una medida que suele ser til conocer es el tiempo de ejecucin de un programa en funcin de N, lo
que denominaremos T(N). Esta funcin se puede medir fsicamente (ejecutando el programa, reloj en
mano), o calcularse sobre el cdigo contando instrucciones a ejecutar y multiplicando por el tiempo
requerido por cada instruccin. As, un trozo sencillo de programa como
T(N)= t1 + t2*N
Siendo t1 el tiempo que lleve ejecutar la serie "S1" de sentencias, y t2 el que lleve la serie "S2".
Prcticamente todos los programas reales incluyen alguna sentencia condicional, haciendo que las
sentencias efectivamente ejecutadas dependan de los datos concretos que se le presenten. Esto hace
que mas que un valor T(N) debamos hablar de un rango de valores
Los extremos son habitualmente conocidos como "caso peor" y "caso mejor". Entre ambos se hallara
algn "caso promedio" o ms frecuente.
Cualquier frmula T(N) incluye referencias al parmetro N y a una serie de constantes "Ti" que
dependen de factores externos al algoritmo como pueden ser la calidad del cdigo generado por el
compilador y la velocidad de ejecucin de instrucciones del ordenador que lo ejecuta. Dado que es fcil
cambiar de compilador y que la potencia de los ordenadores crece a un ritmo vertiginoso (en la
actualidad, se duplica anualmente), intentaremos analizar los algoritmos con algn nivel de
independencia de estos factores; es decir, buscaremos estimaciones generales ampliamente vlidas.
Asintotas
Por una parte necesitamos analizar la potencia de los algoritmos independientemente de la potencia de
la mquina que los ejecute e incluso de la habilidad del programador que los codifique. Por otra, este
anlisis nos interesa especialmente cuando el algoritmo se aplica a problemas grandes. Casi siempre
los problemas pequeos se pueden resolver de cualquier forma, apareciendo las limitaciones al atacar
problemas grandes. No debe olvidarse que cualquier tcnica de ingeniera, si funciona, acaba
aplicndose al problema ms grande que sea posible: las tecnologas de xito, antes o despus, acaban
llevndose al lmite de sus posibilidades.
Sean "g(n)" diferentes funciones que determinan el uso de recursos. Habr funciones "g" de todos los
colores. Lo que vamos a intentar es identificar "familias" de funciones, usando como criterio de
agrupacin su comportamiento asinttico.
Para cada uno de estos conjuntos se suele identificar un miembro f(n) que se utiliza como representante
de la clase, hablndose del conjunto de funciones "g" que son del orden de "f(n)", denotndose como
g IN O(f(n))
Con frecuencia nos encontraremos con que no es necesario conocer el comportamiento exacto, sino
que basta conocer una cota superior, es decir, alguna funcin que se comporte "an peor".
La definicin matemtica de estos conjuntos debe ser muy cuidadosa para involucrar ambos aspectos:
identificacin de una familia y posible utilizacin como cota superior de otras funciones menos malas:
Dcese que el conjunto O(f(n)) es el de las funciones de orden de f(n), que se define como
O(f(n))= {g: INTEGER -> REAL+ tales que Existen las constantes k y N0 tales que para todo N > N0,
g(N) <= k*f(N) }
en palabras, O(f(n)) esta formado por aquellas funciones g(n) que crecen a un ritmo menor o igual que el
de f(n).
De las funciones "g" que forman este conjunto O(f(n)) se dice que "estn dominadas asintticamente"
por "f", en el sentido de que para N suficientemente grande, y salvo una constante multiplicativa "k", f(n)
es una cota superior de g(n).
Leccin 12
rdenes de Complejidad
Se dice que O(f(n)) define un "orden de complejidad". Escogeremos como representante de este orden a
la funcin f(n) ms sencilla del mismo. As tendremos
Es ms, se puede identificar una jerarqua de rdenes de complejidad que coincide con el orden de la
tabla anterior; jerarqua en el sentido de que cada orden de complejidad superior tiene a los inferiores
como subconjuntos. Si un algoritmo A se puede demostrar de un cierto orden O1, es cierto que tambin
pertenece a todos los rdenes superiores (la relacin de orden ota superior de' es transitiva); pero en la
prctica lo til es encontrar la "menor cota superior", es decir el menor orden de complejidad que lo
cubra.
Impacto Prctico
Para captar la importancia relativa de los rdenes de complejidad conviene echar algunas cuentas.
Sea un problema que sabemos resolver con algoritmos de diferentes complejidades. Para compararlos
entre si, supongamos que todos ellos requieren 1 hora de computador para resolver un problema de
tamao N=100.
Qu ocurre si disponemos del doble de tiempo? Ntese que esto es lo mismo que disponer del mismo
tiempo en un computador el doble de potente, y que el ritmo actual de progreso del hardware es
exactamente ese:
"duplicacin anual del nmero de instrucciones por segundo".
Los algoritmos de complejidad O(n) y O(n log n) son los que muestran un comportamiento ms "natural":
prcticamente a doble de tiempo, doble de datos procesables.
Los algoritmos de tipo polinmico no son una maravilla, y se enfrentan con dificultad a problemas de
tamao creciente. La prctica viene a decirnos que son el lmite de lo "tratable".
Sobre la tratabilidad de los algoritmos de complejidad polinmica habra mucho que hablar, y a veces
semejante calificativo es puro eufemismo. Mientras complejidades del orden O(n2) y O(n3) suelen ser
efectivamente abordables, prcticamente nadie acepta algoritmos de orden O(n100), por muy
polinmicos que sean. La frontera es imprecisa.
Cualquier algoritmo por encima de una complejidad polinmica se dice "intratable" y slo ser aplicable
a problemas ridiculamente pequeos.
A la vista de lo anterior se comprende que los programadores busquen algoritmos de complejidad lineal.
Es un golpe de suerte encontrar algo de complejidad logartmica. Si se encuentran soluciones
polinomiales, se puede vivir con ellas; pero ante soluciones de complejidad exponencial, ms vale seguir
buscando.
No obstante lo anterior
... si un programa se va a ejecutar muy pocas veces, los costos de codificacin y depuracin son los que
ms importan, relegando la complejidad a un papel secundario.
... si a un programa se le prev larga vida, hay que pensar que le tocar mantenerlo a otra persona y,
por tanto, conviene tener en cuenta su legibilidad, incluso a costa de la complejidad de los algoritmos
empleados.
... si podemos garantizar que un programa slo va a trabajar sobre datos pequeos (valores bajos de N),
el orden de complejidad del algoritmo que usemos suele ser irrelevante, pudiendo llegar a ser incluso
contraproducente.
Por ejemplo, si disponemos de dos algoritmos para el mismo problema, con tiempos de ejecucin
respectivos:
asintticamente, "f" es mejor algoritmo que "g"; pero esto es cierto a partir de N > 100.
Si nuestro problema no va a tratar jams problemas de tamao mayor que 100, es mejor solucin usar
el algoritmo "g".
El ejemplo anterior muestra que las constantes que aparecen en las frmulas para T(n), y que
desaparecen al calcular las funciones de complejidad, pueden ser decisivas desde el punto de vista de
ingeniera. Pueden darse incluso ejemplos ms dramticos:
an siendo dos algoritmos con idntico comportamiento asinttico, es obvio que el algoritmo "f" es
siempre 100 veces ms rpido que el "g" y candidato primero a ser utilizado.
... usualmente un programa de baja complejidad en cuanto a tiempo de ejecucin, suele conllevar un
alto consumo de memoria; y viceversa. A veces hay que sopesar ambos factores, quedndonos en
algn punto de compromiso.
... en problemas de clculo numrico hay que tener en cuenta ms factores que su complejidad pura y
dura, o incluso que su tiempo de ejecucin: queda por considerar la precisin del clculo, el mximo
error introducido en clculos intermedios, la estabilidad del algoritmo, etc. etc.
Leccin 13
Las siguientes propiedades se pueden utilizar como reglas para el clculo de rdenes de complejidad.
Toda la maquinaria matemtica para el clculo de lmites se puede aplicar directamente:
=> g IN O(f)
=> g IN O(f)
=> O(f) es superconjunto de O(g)
La regla [L] nos permite olvidar la base en la que se calculan los logaritmos en expresiones de
complejidad.
Leccin 14
Reglas Prcticas
Aunque no existe una receta que siempre funcione para calcular la complejidad de un algoritmo, si es
posible tratar sistemticamente una gran cantidad de ellos, basndonos en que suelen estar bien
estructurados y siguen pautas uniformes.
Loa algoritmos bien estructurados combinan las sentencias de alguna de las formas siguientes:
sentencias sencillas
secuencia (;)
decisin (if)
bucles
llamadas a procedimientos
Sentencias sencillas
Nos referimos a las sentencias de asignacin, entrada/salida, etc. siempre y cuando no trabajen sobre
variables estructuradas cuyo tamao este relacionado con el tamao N del problema. La inmensa
mayora de las sentencias de un algoritmo requieren un tiempo constante de ejecucin, siendo su
complejidad O(1).
Secuencia (;)
Decisin (if)
La condicin suele ser de O(1), complejidad a sumar con la peor posible, bien en la rama THEN, o bien
en la rama ELSE. En decisiones multiples (ELSE IF, SWITCH CASE), se tomara la peor de las ramas.
Bucles
En los bucles con contador explcito, podemos distinguir dos casos, que el tamao N forme parte de los
lmites o que no. Si el bucle se realiza un nmero fijo de veces, independiente de N, entonces la
repeticin slo introduce una constante multiplicativa que puede absorberse.
Ej.- for (int i= 0; i < N; i++) { for (int j= 0; j < N; j++) { algo_de_O(1) } } tendremos N * N * O(1) = O(n2)
Ej.- for (int i= 0; i < N; i++) { for (int j= 0; j < i; j++) { algo_de_O(1) } }
el bucle exterior se realiza N veces, mientras que el interior se realiza 1, 2, 3, ... N veces
respectivamente. En total,
A veces aparecen bucles multiplicativos, donde la evolucin de la variable de control no es lineal (como
en los casos anteriores)
El valor incial de "c" es 1, siendo "2k" al cabo de "k" iteraciones. El nmero de iteraciones es tal que 2k
>= N => k= eis (log2 (N)) [el entero inmediato superior] y, por tanto, la complejidad del bucle es O(log n).
Un razonamiento anlogo nos lleva a log2(N) iteraciones y, por tanto, a un orden O(log n) de
complejidad.
Tenemos un bucle interno de orden O(log n) que se ejecuta N veces, luego el conjunto es de orden O(n
log n)
Llamadas a procedimientos
La complejidad de llamar a un procedimiento viene dada por la complejidad del contenido del
procedimiento en s. El coste de llamar no es sino una constante que podemos obviar inmediatamente
dentro de nuestros anlisis asintticos.
class Polinomio {
private double[ ] coeficientes; Polinomio (double[ ] coeficientes) {
this.coeficientes= new double[coeficientes.length];System.arraycopy(coeficientes, 0, this.coeficientes, 0,
coeficientes.length);
}
double evalua_1 (double x) {
double resultado= 0.0;
for (int termino= 0; termino < coeficientes.length; termino++) {
double xn= 1.0;
for (int j= 0; j < termino; j++)
xn*= x; // x elevado a n resultado+= coeficientes[termino] * xn;
}
return resultado;
}
}
Como medida del tamao tomaremos para N el grado del polinomio, que es el nmero de coeficientes
en C. As pues, el bucle ms exterior (1) se ejecuta N veces. El bucle interior (2) se ejecuta,
respectivamente
Intuitivamente, sin embargo, este problema debera ser menos complejo, pues repugna al sentido
comn que sea de una complejidad tan elevada. Se puede ser ms inteligente a la hora de evaluar la
potencia xn:
if (n == 0)
return 1.0;
// si es potencia impar ...
if (n%2 == 1)
return x * potencia(x, n-1);
// si es potencia par ...
double t= potencia(x, n/2);
return t*t;
El anlisis de la funcin Potencia es delicado, pues si el exponente es par, el problema tiene una
evolucin logartmica; mientras que si es impar, su evolucin es lineal. No obstante, como si "j" es impar
entonces "j-1" es par, el caso peor es que en la mitad de los casos tengamos "j" impar y en la otra mitad
sea par. El caso mejor, por contra, es que siempre sea "j" par.
Un ejemplo de caso peor seria x31, que implica la siguiente serie para j:
31 30 15 14 7 6 3 2 1
2 * eis (log2(j)),
donde eis(r) es el entero inmediatamente superior (este clculo responde al razonamiento de que en el
caso mejor visitaremos eis(log2(j)) valores pares de "j"; y en el caso peor podemos encontrarnos con
otros tantos nmeros impares entremezclados).
Leccin 15
Medidas de laboratorio
La siguiente tabla muestra algunas medidas de la eficacia de nuestros algoritmos sobre una
implementacin en Java:
Problemas P, NP y NP-completos
Hasta aqu hemos venido hablando de algoritmos. Cuando nos enfrentamos a un problema concreto,
habr una serie de algoritmos aplicables. Se suele decir que el orden de complejidad de un problema es
el del mejor algoritmo que se conozca para resolverlo. As se clasifican los problemas, y los estudios
sobre algoritmos se aplican a la realidad.
Estos estudios han llevado a la constatacin de que existen problemas muy difciles, problemas que
desafan la utilizacin de los ordenadores para resolverlos. En lo que sigue esbozaremos las clases de
problemas que hoy por hoy se escapan a un tratamiento informtico.
Clase P.-
Los algoritmos de complejidad polinmica se dice que son tratables en el sentido de que suelen ser
abordables en la prctica. Los problemas para los que se conocen algoritmos con esta complejidad se
dice que forman la clase P. Aquellos problemas para los que la mejor solucin que se conoce es de
complejidad superior a la polinmica, se dice que son problemas intratables. Seria muy interesante
encontrar alguna solucin polinmica (o mejor) que permitiera abordarlos.
Clase NP.-
Algunos de estos problemas intratables pueden caracterizarse por el curioso hecho de que puede
aplicarse un algoritmo polinmico para comprobar si una posible solucin es vlida o no. Esta
caracterstica lleva a un mtodo de resolucin no determinista consistente en aplicar heursticos para
obtener soluciones hipotticas que se van desestimando (o aceptando) a ritmo polinmico. Los
problemas de esta clase se denominan NP (la N de no-deterministas y la P de polinmicos).
Clase NP-completos.-
Se conoce una amplia variedad de problemas de tipo NP, de los cuales destacan algunos de ellos de
extrema complejidad. Grficamente podemos decir que algunos problemas se hayan en la "frontera
externa" de la clase NP. Son problemas NP, y son los peores problemas posibles de clase NP. Estos
problemas se caracterizan por ser todos "iguales" en el sentido de que si se descubriera una solucin P
para alguno de ellos, esta solucin sera fcilmente aplicable a todos ellos. Actualmente hay un premio
de prestigio equivalente al Nobel reservado para el que descubra semejante solucin. y se duda
seriamente de que alguien lo consiga!
Es ms, si se descubriera una solucin para los problemas NP-completos, esta sera aplicable a todos
los problemas NP y, por tanto, la clase NP desaparecera del mundo cientfico al carecerse de
problemas de ese tipo. Realmente, tras aos de bsqueda exhaustiva de dicha solucin, es hecho
ampliamente aceptado que no debe existir, aunque nadie ha demostrado, todava, la imposibilidad de su
existencia.
Tres Monjes y tres canbales se encuentran juntos con un bote el mismo lado del ro, el bote puede
transportar como mximo 2 personas. La nica manera segura de hacerlo es que en cada orilla del ro
nunca puedan haber mas canbales que Monjes, Como podemos trasladar a las 6 personas de un lado
del ro al otro?
Estado inicial: 3 canbales y 3 Monjes estn al lado izquierdo del ro El estado lo definirn 5 valores
(CI,MI,CD,MD,DEB).
Limitaciones: NO pueden haber ms canbales que Monjes en cualquiera de las dos orillas del ro -> CI
la restriccin dice: la cantidad de canbales del lado izquierdo debe ser menor o igual que la cantidad de
Monjes del lado izquierdo y la cantidad de canbales del lado derecho debe ser menor o igual que la
cantidad de Monjes del lado derecho.
Operaciones: hay 5 posibles operaciones que se pueden realizar siempre y cuando cumplan con las
limitaciones anteriormente descritas.
Estado final: Los 3 canbales y los tres Monjes se encuentran al lado derecho del rio ->(0,0,3,3,1)
Solucin: la solucin correcta la podemos encontrar en 11 pasos, Como haran un programa de
bsqueda para encontrar la solucin de una manera ptima.
Actividades complementarias
A continuacin se presentan algunas actividades complementarias que pueden realizarse para afianzar
los conocimientos adquiridos en la primera undiad.
1. Desarrolle un anlisis de complejidad detallado del peor caso (O-grande) del algoritmo de
ordenamiento burbuja.
2. Sealar cul es la complejidad de T1(n) = 3nlogn, T2(n) = 2n +n3 +25 y T3(n,k) = k +n con k n.
Ordenar de menor a mayor las complejidades resultantes. Desarrollar una tabla en el que
indique el tiempo de ejecucin requerido en una maquina capaz de ejecutar 109 pasos de
programa por segundo (1000 MIPS) para T1, T2 y T3.
3. Explique en cul es la diferencia entre problema abierto y cerrado.
4. Explique en qu consiste las clases P, NP y NP completo.
5. Seale y explique 3 problemas NP. Por qu se consideran problemas NP?
Actividades adicionales:
El problema del vendedor viajero, tambin conocido como TSP consiste en que se tienen n
ciudades y el vendedor desea visitar todas las ciudades pasando por ellas una nica vez al
menor costo posible. Es decir se desea hacer un circuito hamiltoniano de menor costo. Se
asume que todas las ciudades estn conectadas entre ellas. Responder:
Resolver problemas de juegos clsicos de la IA, empleando un lenguaje simblico: gato, damas
chinas, el agente viajero, Monjes y canbales, el problema de las jarras. (Si se emplea Jess, se
pueden implementar en el algn sitio servidor WEB).