Introducción a la Inteligencia Artificial1-Introducción1.1. Definición de InteligenciaArtificial (IA) y evolución históric...
específico- Se pone principal énfasis en la implementación de juegos (ajedrez, damas, etc.) asícomo en la demostración de ...
Solución 1:Una primera solución directa a este juego podría ser la de almacenar en un vector las 19.693 (39) posibilidades...
objetos involucradosAbstracción: proporciona una forma de separar aspectos y variaciones importantes de aquellos otros sin...
El estado inicial consiste en uno o varios estados en los que puede comenzar el problema. El estado objetivo consiste en u...
Con respecto a las reglas se puede concluir que:Las condiciones que se establecen en la parte izquierda a veces no son alt...
Mientras Not Vacia(lista_nodos)estado_actual = lista_nodos.primero;Si EstadoFinal(estado_actual) entoncesTerminar;Sinolist...
neighbor) se aplica a muchos problemas combinatorios. En el ejemplo del problema del viajante, se comienza por una ciudada...
en un punto dado es posible ignorar los pasos realizados hasta el momento y comenzar de nuevo con una nueva solución. Pore...
al usuario durante la búsqueda de la solución. Para que esta comunicación sea posible debe existir una correspondencia ent...
Upcoming SlideShare
Loading in …5
×

Introducción a la inteligencia artificial

212 views
181 views

Published on

Un manual introductorio a la inteligencia artificial.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
212
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducción a la inteligencia artificial

  1. 1. Introducción a la Inteligencia Artificial1-Introducción1.1. Definición de InteligenciaArtificial (IA) y evolución histórica1.2. Técnicas de resolución de problemas de IA1.3. Criterios de éxito de la IA1.4. Resolución de problemas de IA:1.4.1. Definición formal del problema1.4.2. Estrategia de control: Métodos de búsqueda1.4.3.Análisis del problema1.1. Definición de Inteligencia ArtificialEn la bibliografía del área encontramos diferentes definiciones que pueden darnos una idea de lo que se llama inteligencia artificial:Una de las áreas de las ciencias computacionales encargadas de la creación de hardware y software con comportamientointeligentes.El estudio de las computaciones que permiten percibir, razonar y actuarEstudia como lograr que las máquinas realicen tareas que, por el momento, son realizadas mejor por los seres humanos.Desde el punto de vista de los objetivos, la IA puede considerarse como parte de la ingeniería o de la ciencia:El objetivo ingenieril de la IA es resolver problemas reales, actuando como un armamento de ideas acerca de cómorepresentar y utilizar el conocimiento, y de como ensamblar sistemasEl objetivo científico de la IA es explicar varios tipos de inteligencia. Determinar qué ideas acerca de la representación delconocimiento, del uso que se le da a éste, y del ensamble de sistemas explican distintas clases de inteligencia.Algunas aplicaciones de la inteligencia artificial:Tareas de la vida diaria (más dificil para una máquina que las tareas de un experto)Percepción (visión y habla)Lenguaje natural (comprensión, generación, traducción)Sentido comúnControl de un robotTareas formalesJuegos (ajedrez, backgammon, damas)Matemáticas (geometría, lógica, cálculo, demostración de propiedades)Tareas de los expertos (necesitan un conocimiento menor que el conocimiento necesario en las tareas más comunes)Ingeniería (diseño, detección de fallos, planificación de manufacturación)Análisis científicoDiagnosis médicaAnálisis financieroDesarrollo histórico de la Inteligencia Artificial según Jackson:1950-1965. Periodo "clásico- Gestación [McColluck y Pitts, Shannon, Turing]- 1956, la I.A. tuvo su boom a partir de la conferencia efectuada en Darmouth College. Estaban presentes importantescientíficos como McCarty (le dio el nomre a esta nueva area del conocimiento), Minsky (fundador del laboratorio de IA del MIT),Shannon (laboratorios Bell), Rodhester (IBM), Newell (presidente de la A.A.A.I.AsociaciónAmericana de IA), Simmon (premionobel de Carnegie Mellon University)- Redes neuronales, robótica (Shakey)- Búsqueda en un espacio de estados, Heurísticas, LISP- Resolutor general de problemas (GPS) [Newell, Simon]. Resolución de problemas de sentido común, los cuales incluyenrazonamiento de objetos físicos y sus relaciones, como también razonamiento de acciones y sus consecuencias. Solo seresolvieron tareas muy simples, pues no se pudo crear un programa con la cantidad suficiente de conocimiento de un dominioconverted by Web2PDFConvert.com
  2. 2. específico- Se pone principal énfasis en la implementación de juegos (ajedrez, damas, etc.) asícomo en la demostración de teoremasmatemáticos.- Limitaciones de pura búsqueda, explosión combinatoria.1965-1975. Periodo "romántico- Representación "general del conocimiento.- Redes semánticas [Quillian]- Prototipos (frames) [Minsky]- Perceptrón [Minsky y Papert]- Lógica [Kowalski]- Mundo de bloques (SHDRLU) [Winograd]- Percepción (visión y habla), compresión de lenguaje natural, robótica.- Dificultades de representación "general, problemas de "juguete.1975-actualidad. Periodo "moderno, Inteligencia "especifica vs. "general.- Se identifica la necesidad de trabajar en sociedad con profesionales de otras áreas de conocimiento- Representación explícita del conocimiento específico del dominio.- Sistema experto médico MYCIN (experto en enfermedades infecciosas de la sangre) iniciado en la Universidad de Stanford- Sistemas expertos o basados en conocimiento.- Regreso de redes neuronales [Hopfield, Rumelhart, Hinton], algoritmos genéticos [Holland, Goldberg]- Reconocimiento de voz (HMM), incertidumbre (RB, Lógica difusa), planeación, aprendizaje-Aplicaciones "reales (medicina, finanzas, ingeniería, exploración, etc.).- Comercialización de la IA1.2. Técnicas de resolución de problemas de IAUno de los resultados que surgieron de las primeras investigaciones en IA fue que la inteligencia necesita conocimiento. Elconocimiento posee algunas propiedades poco deseables como:Es voluminosoEs difícil caracterizarloCambiaSe organiza de manera que se corresponde con la forma en que va a se usadoUna técnica de IA es un método que explota el conocimiento representado de manera que se cumpla que:Representa generalizaciones, es decir, no es necesario representar cada situación individual, sino que las situaciones quecomparten propiedades importantes se agrupan.Debe ser entendido por las personas que lo provean.Puede ser modificado para corregir errores y reflejar cambios en el mundoPuede usarse en muchas situaciones aun sin ser totalmente exacto o completoPuede usarse para superar su propio volumen, y disminuir el rango de posibilidades que normalmente deben considerarseSe pueden caracterizar las técnicas de IA con independencia del problema a tratar.Para solucionar problemas complicados, los programas que utilizan las técnicas de IA presentan numerosas ventajas con respecto alos que no lo hacen:son menos frágiles, es decir, que no se despistan frente a una perturbación pequeña de la entradael conocimiento del programa es comprendido fácilmente por la genteusa generalizacionestiene facilidad de extensiónComo contraposición, generalmente tienen más complejidad que otras soluciones.Se analizan brevemente a continuación dos tipos de problemas bien diferenciados, y dentro de cada uno se ejemplifica lo que seentiende por una técnica de IA.Ejemplo 1: tres en rayaA continuación se plantean tres soluciones diferentes del problema de tres en raya analizando la conveniencia de cada una. Paramejor detalle de las mismas consultar [Rich98].converted by Web2PDFConvert.com
  3. 3. Solución 1:Una primera solución directa a este juego podría ser la de almacenar en un vector las 19.693 (39) posibilidades de un tablerode 3 x 3 con tres valores posibles en cada casilla (vacío-X-O), asícomo las correspondientes jugadas sucesoras. Para realizaruna jugada, bastaría con acceder a la posición del tablero actual y la jugada sucesora correspondiente. Las desventajas deeste eficiente programa son bastante obvias: necesita gran cantidad de memoria; alguien debe realizar el pesado trabajo deintroducir todas las jugadas y sus sucesoras; y el juego no se puede ampliar, por ejemplo a tres dimensiones.Solución 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 solución anterior en términos de tiempo, tiene la ventaja que es más eficiente en términos deespacio. Su estrategia es más facil de comprender y realizar cambios, aunque el programador debe comprender la totalidadde la estrategia de antemano.Además, no es posible generalizar parte del conocimiento del programa hacia un dominiodistinto, como tres en raya 3D.Solución 3:Una estructura contiene el tablero actual, asícomo una lista de posiciones del tablero que podrían ser el próximo movimiento, yuna estimación de la probabilidad de que esa jugada lleve a la victoria. Para decidir la siguiente jugada se tienen en cuenta lasposiciones de tablero que resultan de cada movimiento posible. Se decide la posición que corresponde a la mejor jugada,considerando si la jugada produce la victoria, y en caso contrario considerando todos los movimientos que el oponente puederealizar asumiendo que éste elegirá el peor para nosotros. El algoritmo inspecciona varias secuencias de movimientosintentando maximizar la probabilidad de victoria. Necesita mucho más tiempo que los demás, ya que debe realizar unabúsqueda en un árbol de posibilidades antes de realizar cada movimiento. Sin embargo, es superior a las demás solucionespues podría ser ampliado para manipular juegos más complicados.Además, puede aumentarse su potencia usandoconocimiento sobre el juego, por ejemplo, en lugar de considerar todos los posibles movimientos considerar solo unsubconjunto siguiendo algún criterio razonable. Este programa es un ejemplo del uso de una técnica de IA.Ejemplo 2: respuestas a preguntasSe quiere realizar un programa que a partir de un texto escrito en español pueda responder a preguntas en español sobre este texto.En este caso, es más difícil que en el ejemplo anterior determinar formalmente y con precisión en qué consiste el problema y en quéconsiste una solución correcta para él. Un ejemplo de programa de preguntas y respuestas en inglés es el programa POLITICS(Carbonell, 1980).A continuación se plantean tres soluciones diferentes analizando la conveniencia de cada una. Para mejor detalle de las mismasconsultar [Rich98].Solución 1:Se tienen conjunto de plantillas (templates) preguntas, por ejemplo "Que x y" asociada con patrones (patterns) respuesta, porejemplo "y x z". Responde a las preguntas usando el texto de entrada de forma literal. Se hace coincidir fragmentos de texto deentrada con el patrón respuesta, y se obtiene la respuesta, por ejemplo "z". Este algoritmo no puede contestar el tipo depreguntas que la gente puede responder después de una simple lectura del texto. La habilidad para responder depende de laforma exacta de la pregunta, y de las variaciones contempladas en el diseño de plantillas y patrones. El proceso de sustituciónde patrones usado es llamado pattern matching. Pese a que lo que se entiende por IA no incluye programas como éste, éstatécnica es la usada en uno de los programas más célebres de IA, ELIZA.Solución 2:Transforma el texto de entrada dándole una estructura interna que intenta capturar el significado de las frases, y tambiéntransforma las preguntas de igual manera. Las respuestas se encuentran emparejando unas con otras formas estructuradas.Este enfoque está más basado en conocimiento que el primero, y también es más efectivo. Puede responder a la mayoría delas preguntas cuyas respuestas se encuentran en el texto, y es menos quebradizo con respecto a las formulaciones exactas depreguntas y respuestas.Algunas preguntas necesitan conocimiento adicional sobre el mundo con el que trate el texto, que estasolución no posee.Solución 3:Al igual que la solución anterior se transforma el texto en forma estructurada, pero a diferencia del anterior, se combina estaforma con otras formas estructuradas que describen conocimiento previo sobre los objetos y situaciones que aparecen en eltexto. Este programa es más potente que los otros dos, debido a que responde a preguntas usando esta estructura deconocimiento aumentada. Se utiliza lo que se denomina técnica de IA, pues está basado en el conocimiento y en usocomputacional eficaz de ese conocimiento.Estos ejemplos ponen de manifiesto tres importantes técnicas de IA:Búsqueda: proporciona una forma de resolver problemas en los que no se dispone de un método directoUso del conocimiento: proporciona una forma de resolver problemas complejos explotando las estructuras existentes entre losconverted by Web2PDFConvert.com
  4. 4. objetos involucradosAbstracción: proporciona una forma de separar aspectos y variaciones importantes de aquellos otros sin importancia, y que encaso contrario podrían colapsar el proceso.1.3. Criterios de éxito de la IAPara determinar el éxito de un programa de IA, se deben realizar las siguientes preguntas:¿Está definida con claridad la tarea?¿Existe un proceso instrumentado que efectúa la tarea?¿Existe un conjunto de restricciones identificables a partir de las cuales el procedimiento implantado tiene poder?¿Resuelve un problema real?¿Crea una nueva oportunidad?Test de TuringEn 1950,Alan Turing propuso el siguiente método para determinar si una máquina es capaz de pensar. Una persona es unentrevistador y se halla en una habitación separado de otra persona y un ordenador a evaluar. El entrevistador hace preguntas aambos de forma escrita. Si luego de un cierto número de preguntas y respuestas, el interrogador no puede identificar quién es elcomputador y quién es la persona, entonces podemos decir que el computador piensa.¿Se puede calibrar el éxito de la IA en dominios más restringidos? Por ejemplo,- el éxito de un programa que juega al ajedrez se puede evaluar según los jugadores que pueda derrotar;- el éxito de otros programas puede medirse comparando el tiempo que tarda un ordenador en llevar a cabo una tarea con elque tarda una persona en hacer lo mismo. Por ej. programas usados en empresas informáticas para configurar sistemasparticulares a las necesidades del cliente;- en tareas de cada día es más difícil, por ej. parafrasear un artículo del periódico, la mejor forma de evaluarlo es ver si elprograma responde de la misma forma que haría una persona.Cuando se quiere diseñar un programa de IA, se debe intentar especificar tan bien como sea posible el criterio de éxito para elfuncionamiento del programa en su dominio particular.1.4. Resolución de problemas de IAPara construir un sistema que resuelva un sistema específico, es necesario:1- Definir el problema formalmente con precisión.2-Analizar el problema.3- Representar el conocimiento necesario para resolver el problema.4- Elegir la mejor técnica que resuelva el problema y aplicarla.1.4.1. Definición formal del problemaEl primer paso para diseñar un programa que resuelva un problema es crear una descripción formal y manejable del propioproblema. Sería adecuado contar con programas que produzcan descripciones formales a partir de descripciones informales,proceso denominado operacionalización. Dado que por ahora no se conoce la forma de construir estos programas este procesodebe hacerse manualmente.Hay problemas que por ser artificiales y estructurados son fáciles de especificar (por ej. el ajedrez, el problema de las jarras deagua, etc. ). Otros problemas naturales, como por ej. la comprensión del lenguaje, no son tan sencillos de especificar.Para producir una especificación formal de un problema se deben definir:espacio de estados válidos;estado inicial del problema;estado objetivo o final;reglas que se pueden aplicar para pasar de un estado a otro.Un estado es la representación de un problema en un instante dado. Para definir el espacio de estados no es necesario hacer unaenumeración exhaustiva de todos los estado válidos, sino que es posible definirlo de manera más general.converted by Web2PDFConvert.com
  5. 5. El estado inicial consiste en uno o varios estados en los que puede comenzar el problema. El estado objetivo consiste en uno ovarios estados finales que se consideran solución aceptable.Las reglas describen las acciones u operadores que posibilitan un pasaje de estados. Una regla tiene una parte izquierda y unaparte derecha. La parte izquierda determina la aplicabilidad de la regla, es decir, describe los estados a los que puede aplicarse laregla. La parte derecha describe la operación 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 símbolo de acuerdo a las piezas situadas;- el objetivo o estado final se define como cualquier posición de tablero en la que el contrario no puede realizar ningúnmovimiento legal y su rey esté amenzado;- las reglas son los movimientos legales, que pueden describirse mediante una parte patrón para ser contrastado con laposición 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 prácticamente, (en el ejemplo, escribir todas las posiciones detablero), las reglas deben escribirse de la manera más general posible.La representación como espacio de estados forma parte de la mayoría de los métodos de IA. Su estructura se corresponde con laresolución de problemas porque:permite definir formalmente el problema, mediante la necesidad de convertir una situación dada en una situación deseadamediante un conjunto de operaciones permitidas;permite definir el proceso de resolución de un problema como una combinación de técnicas conocidas y búsqueda (la técnicageneral de exploración del espacio intenta encontrar alguna ruta desde el estado actual hasta un estado objetivo).Ejercicio 1: Problema de las jarras de aguaSe tienen dos jarras de agua, una de 4l y otra de 3l sin escala de medición.Se desea tener 2l de agua en la jarra de 4l. Las siguientes operaciones son válidas: llenar las jarras, tirar agua de las jarras, pasaragua de una jarra a otra.Solución:El espacio de estados se define como{ (X,Y)/ X son los litros en la jarra de 4l con 0<=X<=4 AND Yson los litros de la jarra de 3l con 0<=Y<=3 }El estado inicial es (0,0)El estado final es (2,0). El estado final podría ser (2,N) en caso de que no importen los litros de la segunda jarra.Las reglas que se pueden aplicar son:1. Llenar la jarra de 4l: Si (X,Y)AND X<4 => (4,Y)2. Llenar la jarra de 3l: Si (X,Y)AND Y<3 => (X,3)3. Vaciar la jarra de 4l: Si (X,Y)AND X>0 => (0, Y)4. Vaciar la jarra de 3l: Si (X,Y)AND Y>0 => (X, 0)5. Pasar agua de la jarra de 4l a la jarra de 3l hasta llenarla: Si (X,Y)AND X>0 AND X+Y>=3 => (X-(3-Y),3)6. Pasar agua de la jarra de 3l a la jarra de 4l hasta llenarla: Si (X,Y)AND Y>0 AND X+Y>=4 => (4, Y-(4-X))7. Pasar toda el agua de la jarra de 4l a la jarra de 3l: Si (X,Y)AND X>0 AND X+Y<3 => (0,X+Y)8. Pasar toda el agua de la jarra de 3l a la jarra de 4l: Si (X,Y)AND Y>0 AND X+Y<4 => (X+Y,0)El programa debería encontrar un pasaje de estados para ir del estado (0,0) al estado (2,0). Puede existir más de un pasaje deestados hacia la solución, 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.Otro pasaje de estados hacia la solución es la siguiente(0,0) => (4,0) => (1,3) => (1,0) => (0,1) => (4,1) => (2,3) => (2,0)en la cual se aplicaron las reglas 1, 5, 4, 7, 1, 5 y 4converted by Web2PDFConvert.com
  6. 6. Con respecto a las reglas se puede concluir que:Las condiciones que se establecen en la parte izquierda a veces no son altamente necesarias pero restringen la aplicación dela regla a estados más adecuados. Esto incrementa la eficiencia del programa que utiliza las reglas. En el ejemplo anterior, laregla1. Llenar la jarra de 4l: Si (X,Y)AND X<4 => (4,Y)contiene la condición (X<4), especificando que la jarra no se encuentra llena. Si esta condición no se incluye, se puede aplicarla regla aún cuando la jarra está llena. Dado que en este caso el estado del problema no cambia la aplicación de la regla seconsidera inútilLas reglas no sólo deben describir el problema sino también algún tipo de conocimiento sobre su solución. Si en el ejemploanterior 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 aplicación de esta regla nunca nos acercará a la solucióndel problema.A veces, cuando se alcanzan algunos estados resulta obvio cómo se debe continuar hacia la solución. Es posible agregarreglas de propósito especial que capturen el conocimiento sobre casos especiales que conducen a la resolución delproblema. En el ejemplo anterior, se pueden agregar las siguientes reglas de propósito especial:Si (X,2) => (2,0)Si (2,Y)AND Y>0 => (2,0)Estas reglas no añaden más potencia al sistema ya que las operaciones que describen las proporcionan otras reglas másgenerales. En el ejemplo, la primera regla agregada es equivalente a la aplicación de las reglas generales 3 y 8; y la segundaregla agregada es equivalente a la aplicación de la regla general 4. Dependiendo de la estrategia de control que se utilicepara seleccionar reglas durante la resolución del problema se puede mejorar el rendimiento si se les da preferencia a lasreglas de casos especiales.Ejercicio 2: Problema de los Caníbales y Monjes1.4.2. Estrategia de control: Métodos de búsquedaEl problema puede resolverse con el uso de reglas en combinación con una estrategia de control para trasladarse a través delespacio de estados hasta encontrar un camino desde el estado inicial hasta el estado final. Se elige una regla entre aquellas cuyaparte izquierda concuerda con el estado actual. Se aplica la regla elegida realizando el cambio de estado tal como se describe en laparte derecha de la regla. Si el nuevo estado es estado objetivo o final se ha encontrado la solución. En caso contrario se continúacon la aplicación de reglas al nuevo estado.Una estrategia de control especifica el orden en el que se deben aplicar las reglas, asícomo también la forma de resolverconflictos cuando es posible aplicar más de una regla. Para que una estrategia de control sea válida debe cumplir con dosrequisitos:Causar cambios:las estrategias de control que no causan cambios de estado nunca alcanzan la solución. Un ejemplo de estrategia de controlque no causa cambios es seleccionar siempre la primera regla aplicable de la lista de reglas definidas. En el ejemplo de lasjarras de agua, se continuaría indefinidamente aplicando las reglas 1 y 3 sin posibilidad de arribar a la solución.Ser sistemática:las estrategias de control que no son sistemáticas pueden utilizar secuencias de operaciones no apropiadas varias veceshasta alcanzar la solución. Un ejemplo de estrategia de control no sistemática es seleccionar la regla a aplicar al azar. Estaestrategia puede encontrar la solución eventualmente, pero luego de haber realizado varios pasos innecesarios e inclusohaber vuelto varias veces al mismo estado.En caso de no contar con una aproximación directa al problema, el proceso de búsqueda resulta fundamental en la resolución delmismo. Los algoritmos de búsqueda detallados a continuación son ejemplos de estrategias de control sistemáticas. Todos se basanen considerar un árbol de estados cuya raíz es el estado inicial, y en cada nivel se hallan los estados sucesores correspondientes.Búsqueda Breadth-First Search (primero en ancho)Este algoritmo de búsqueda visita cada nodo del árbol por niveles, es decir, visita todos los nodos de un nivel antes de visitar los delsiguiente.A continuación se detalla un pseudo-código de este algoritmo:Lista_nodos = [estado_inicial];converted by Web2PDFConvert.com
  7. 7. Mientras Not Vacia(lista_nodos)estado_actual = lista_nodos.primero;Si EstadoFinal(estado_actual) entoncesTerminar;Sinolista_reglas = ReglasAplicables (estado_actual);Mientras NOT Vacia(lista_reglas)estado_sucesor =AplicarRegla (lista_reglas);lista_nodos = lista_nodos + [estado_sucesor];Fin Mientras;Fin Sino;Fin Mientras;Este algoritmo básico debería modificarse para detectar el caso en que se vuelva a alcanzar un estado que ya ha sido visitado conanterioridad. En este caso, debería realizarse una "poda" de la rama del árbol, ya que en caso contrario se volvería a generar unsubárbol ya generado.Con la búsqueda a lo ancho se asegura que una vez alcanzada una solución no existe otra ruta hacia la solución que tenga menorcantidad de pasos. Una desventaja de este algoritmo es que para alcanzar una solución de n pasos, debe haber explorado todo elespacio de estados hasta ese nivel.Ejercicio:Realizar el árbol de búsqueda a lo ancho para encontrar la solución del problema de las jarras de agua.Búsqueda Depth-First Search (primero en profundidad)Este algoritmo de búsqueda continúa por una rama del árbol hasta encontrar la solución o decidir terminar la búsqueda por esadirección (por llegar al estado final, por tener un largo de ruta que supera una cota máxima determina, por haber llega a un estado yavisitado, etc.).Al fracasar una ruta, se realiza un backtracking o vuelta atrás, continuando la exploración en el paso inmediatamenteanterior.A continuación se detalla un pseudo-código de este algoritmo recursivo que incialmente es llamado con el estado_inicial:Función Buscar (estado_actual) devuelve BooleanComienzoSi EstadoFinal(estado_actual) entoncesDevolver TRUE;Sinoexito = FALSE;lista_reglas = ReglasAplicables (estado_actual);Mientras NOT exitoAND NOT Vacia(lista_reglas)estado_sucesor =AplicarRegla (lista_reglas);exito = Buscar (estado_sucesor);Fin Mientras;Devolver exito;Fin Sino;Fin Buscar;Este algoritmo básico debería modificarse para terminar la búsqueda en una rama que se alcanza un estado que ya visitado.Con la búsqueda en profundidad no es necesario tener almacenado todo el espacio de estados, sino sólo el camino que se estáexplorando. Puede encontrar la solución sin tener que explorar gran parte del espacio de estados. Como desventajas de estealgoritmo se señala que puede seguir una ruta infructuosa durante muchos pasos, y además la primera solución que encuentrapuede distar mucho de ser la solución de mínima cantidad de pasos.Búsqueda HeurísticaExisten algunos problemas en los que resulta imposible explorar el árbol del espacio de estados pues resulta en una explosióncombinatoria. Por ej. en el problema del viajante, se debe encontrar la ruta mínima entre N ciudades a visitar. Si se aplica cualquierade los dos algoritmos de búsqueda anteriores, nos encontramos ante un costo computacional no polinomial O(N!).Una heurística es una técnica que aumenta la eficiencia de un proceso de búsqueda. El objetivo es guiar al proceso de búsqueda enla dirección más provechosa sugiriendo el camino a seguir cuando hay más de una opción.Las heurísticas pueden ser:generales: son adecuadas para una amplia variedad de dominios. Por ej. la heurística del vecino más próximo (nearestneighbor) se aplica a muchos problemas combinatorios. En el ejemplo del problema del viajante, se comienza por una ciudadconverted by Web2PDFConvert.com
  8. 8. neighbor) se aplica a muchos problemas combinatorios. En el ejemplo del problema del viajante, se comienza por una ciudadarbitraria continuando en cada paso por la ciudad más cercana no visitada. Esto resulta en una reducción del costocomputacional a O(N2).de propósito especial: explotan el conocimiento específico de un dominio para resolver problemas particulares.Las heurísticas pueden sacrificar la completitud, es decir, pueden pasar por alto una buena solución. Sin embargo, existen variosargumentos a favor de usarlas:Sin el uso de heurísticas se puede tener una explosión combinatoria.En muchos casos no se necesita la solución óptima sino una buena aproximación. Según Simon (1981), las personasresuelven problemas "satisfaciendo" y no "optimizando".Las aproximaciones que se logran con heurísticas pueden ser malas para los peores casos de un problema, pero éstosraramente sedan en el mundo real.El esfuerzo de intentar comprender por qué funciona o no una heurística sirve para profundizar en la comprensión del problema.Las heurísticas se pueden incorporar a un proceso de búsqueda basado en reglas de dos maneras:Dentro de las mismas reglas. Por ej. en el ajedrez, las reglas pueden describir, además de los movimientos legales, tambiénlas buenas jugadas.Como una función que evalúa estados determinando su grado de "deseable". Esta función evalúa aspectos del problemadando pesos a aspectos individuales, de manera que el valor que devuelve es una estimación de que el nodo pertenece a laruta que conduce a la mejor solución. Por ej. en el ajedrez se puede tener una función a maximizar la cual devuelve el númerode piezas de ventaja; en el problema del viajante se puede tener una función a minimizar la cual devuelve la suma de distanciasrecorridas; en el tres en raya se puede tener una función que compute un punto por cada ficha en cada fila, columna o diagonalque se pueda ganar.En conclusión, las heurísticas representan el conocimiento general y específico del mundo, que hace que sea abordable solucionarproblemas complejos.1.4.3. Análisis del problemaLuego de definir el problema formalmente, el segundo paso en la resolución del problema es el análisis del mismo.A fin de poderelegir el método más apropiado para resolver un problema particular, es necesario analizar distintas cuestiones que afectan a aldefinición del mismo y a las características de la solución deseada. Existen varias preguntas a responder acerca del problema:1. ¿Puede descomponerse el problema en subproblemas más pequeños?2. ¿Pueden deshacerse pasos inadecuados hacia la solución?3. ¿Es predecible el universo del problema?4. ¿Una solución es buena de manera absoluta o relativa?5. ¿La solución deseada es un estado o la ruta hacia un estado?6. ¿El conocimiento se necesita para resolver el problema o para restringir la búsqueda de la solución?7. El programa que soluciona el problema ¿busca la solución solo o necesita interactuar con una persona?1. ¿Puede descomponerse el problema en subproblemas más pequeños?Algunos problemas pueden descomponerse en subproblemas independientes, de manera que encontrar una solución global es lacomposición de soluciones particulares. Por ej. en la resolución de integrales, una integral puede descomponerse por partes, yresolver las partes simples directamente o descomponerlas recursivamente.Por otra partes, existen otros problemas que no pueden descomponerse y componer la solución a partir de las soluciones parcialesde sus partes. Por el contrario, una solución necesita considerar globalmente el problema. Por ej. el problema del mundo de losbloques.2. ¿Pueden deshacerse pasos inadecuados hacia la solución?Algunos problemas permiten deshacer uno o varios pasos hacia una solución una vez realizados. En este aspecto, existen trescategorías en las que puede dividirse un problema:Recuperables:en un punto dado es posible deshacer todos los pasos inadecuados hacia la solución. Por ej. en el juego 8-puzzle. Laestructura de control se implementa con una pila push-down en la que se almacenan las decisiones para poder volver atrás.No recuperables:en un punto dado no es posible deshacer ningún paso realizado. Por ej. en una partida de ajedrez no se puede volver atrás unavez movidas las piezas. En estos problemas el sistema debe esforzarse en la toma de decisiones pues éstas sonirrevocables.Algunos usan una planificación en la que se analiza por adelantado una secuencia de pasos antes de realizar elprimer paso para descubrir a donde conduce.Ignorables:converted by Web2PDFConvert.com
  9. 9. en un punto dado es posible ignorar los pasos realizados hasta el momento y comenzar de nuevo con una nueva solución. Porej. un demostrador de teoremas puede abandonar una demostración basada en un lema dado y comenzar nuevamente. Estosproblemas se resuelven con estrategias de control sencillas que nunca vuelven hacia atrás.3. ¿Es predecible el universo del problema?Los problemas pueden se de:Consecuencia cierta:es posible planificar una secuencia de movimientos estando seguros del resultado a obtener. Se puede realizar unaplanificación para generar operadores que garanticen llegar a la solución.Consecuencia incierta:no es posible planificar con certeza pues no se sabe que ocurrirá luego del siguiente movimiento. Sin embargo, se puederealizar una planificación para generar operadores que tengan una buena probabilidad de llegar a la solución.Los problemas más difíciles de resolver son los no recuperables de consecuencia incierta. Por ej. el control del brazo de un robot: esde consecuencia incierta pues alguien puede interponer un objeto en la ruta del brazo, se puede atascar, etc.4. ¿Una solución es buena de manera absoluta o relativa?La solución de un problema puede consistir en encontrar:Algún camino:sólo importa encontrar una solución sin importar si existen otros caminos que conducen a la solución. Generalmente seresuelven con heurísticas. Por ej. programa de respuestas a preguntas.El mejor camino:importa encontrar la ruta más corta hacia la solución. Son problemas más complicados de computar.Algunos requieren unabúsqueda más exhaustiva que usando heurísticas. Por ej. en el problema del viajante importa encontrar la ruta más corta entrelas ciudades a visitar.5. ¿La solución deseada es un estado o la ruta hacia un estado?La solución de un problema puede consistir en encontrar:un estado final:no es necesario el registro del proceso seguido, sólo importa arribar a la solución final. Por ej. interpretar texto.una ruta hacia un estado final:se necesita dar el camino seguido desde el estado inicial al estado final. Por ej. problema de las jarras de agua.6. ¿El conocimiento se necesita para resolver el problema o para restringir la búsqueda de la solución?El conocimiento puede emplearse para:Reconocer la solución:se necesita gran cantidad de conocimiento acerca del problema para poder encontrar una solución. Por ej. comprensión detexto.Acotar la búsqueda:la solución básica puede encontrarse con poco conocimiento, pero para restringir el árbol de búsqueda y encontrar la soluciónde manera más eficiente es necesario contar más conocimiento. Por ej. en el ajedrez se necesita básicamente pococonocimiento para conocer los movimientos legales y un mecanismo sencillo de búsqueda. Pero dado que para aumentar laeficiencia de la búsqueda ésta debe restringirse, se necesita conocimiento de heurísticas de buenas estrategias y tácticaspara jugar.7. El programa que soluciona el problema ¿busca la solución solo o necesita interactuar con una persona?Con respecto a la relación programa-usuario, existen dos tipos de programas que solucionan el problema:Solitarios:reciben como entrada el problema y dan como salida la solución. No importa el razonamiento que haya seguido la máquinapara encontrar la solución. Por ej. problema de las jarras de agua.Conversacionales:existe una comunicación hombre-máquina de manera que el usuario puede ayudar a la máquina o la máquina puede informarconverted by Web2PDFConvert.com
  10. 10. al usuario durante la búsqueda de la solución. Para que esta comunicación sea posible debe existir una correspondencia entreel razonamiento seguido por la máquina y la forma de razonamiento humano. Por ej. en un sistema experto de diagnósticomédico, el usuario no aceptaría el veredicto de una máquina si no puede comprender el razonamiento que la llevó a él.Ejercicio: Torres de HanoiDefinir formalmente y analizar los 7 puntos anteriores en el siguiente problema:Se hallan N discos de distinto tamaño apilados sobre una base A de manera que cada disco se encuentra sobre uno de mayorradio. Existen otras dos bases vacías B y C. El objetivo es llevar todos los discos de la base A hasta la base C, para lo cual puedeusarse la base B. Considerar que se puede mover sólo un disco a la vez, y cada disco puede descansar solamente en las bases yno en el suelo. Recordar que los discos deben situarse siempre sobre uno de mayor radio.converted by Web2PDFConvert.com

×