viernes, 30 de octubre de 2015

Algoritmos de Búsqueda Local y Problemas de Optimización

1.1.       INTRODUCCIÓN
En anteriores publicaciones hable sobre las búsquedas informadas y diversas estrategias que se utilizan para este tipo de búsquedas generando una secuencia de posibles estados de manera sistemática, en las búsquedas locales lo importantes es alcanzar al estado objetivo más que como se hizo para poder llegar, si bien es conocido las búsquedas informadas son efectivas al momento de encontrar un resultado, aunque este no sea el más óptimo.
En vista de que existen problemas en los que se deben satisfacer ciertas restricciones para llegar al mejor de todos los objetivos, surgen algunos algoritmos de búsqueda local y problemas de optimización en los cuales el camino hacia la solución del problema es irrelevante y lo que importa es simplemente la solución.
En esta publicación les hablare de aquellos algoritmos de búsqueda local y de cómo funcionan.

1.2.       OBJETIVO 

Conocer la importancia de los algoritmos de búsqueda local y problemas de optimización para comprender su funcionamiento y uso en la solución de problemas de agentes.

MARCO TEÓRICO

Como ya he mencionado estos algoritmos de búsqueda local no se preocupan por los caminos que se puedan tomar para llegar a un estado óptimo, si no que se enfocan en su gran parte en el estado actual y se mueve de un estado vecino hacia otro, este tipo de algoritmos tienen algunas ventajas que los vuelven importantes en comparación con otros algoritmos como son:
·         Son ahorrativos: No usan mucha memoria ya que no almacenan la secuencia de estados.
·         Razonables: Ofrecen soluciones posibles a un problema cuando el espacio de estados es infinito.  
·         Óptimos: Capaces de encontrar el mejor estado en base a su función objetivo. 

2.1.       Búsqueda Por Ascensión En Colina

Este algoritmo es una de las estrategias de las búsquedas locales, el cual no mantiene un árbol de búsqueda si no que solo la representación del estado actual y el valor de la función objetivo, se basa en iteraciones que intentan dar solución a un problema localizando la mejor solución a través de la modificación de un elemento incremental. El nombre de este algoritmo se debe gracias a que realiza una búsqueda hacia arriba y termina cuando alcanza el lugar más alto de ahí surge la similitud con una colina.
Imagen 1: Representación del Algoritmo Ascensión de Colinas

Pese a que es un algoritmo simple y muy conocido en inteligencia artificial por ser bueno para encontrar un óptimo local no garantiza encontrar la solución óptima debido a que pueden existir muchos posibles estados en donde la búsqueda se puede atascar debido a un estado máximo o mínimo local, una meseta y una cresta.

Este algoritmo posee tres variantes diferentes y estas son:
Imagen 2: Variaciones del Algoritmo Ascensión en Colina

2.1.       Búsqueda De Temple Simulado

Este algoritmo surge como alternativa para el algoritmo de ascensión de colinas ya que este no es muy complejo debido a que solo verifica los caminos cuesta arriba y no pasa por estados bajos donde el costo es más alto y se estanca en máximos locales.
El temple simulado es una combinación de la ascensión de colinas y la aleatoriedad que establezca completitud, esta clase de algoritmos no escoge el mejor movimiento si no que más bien lo hace de manera aleatoria y si esta mejora la situación actual entonces es aceptado.
Imagen 3: Algoritmo Temple Simulado

2.1.       Búsqueda Por Haz Local

A diferencia de las otras búsquedas en las cuales los estados expandidos y sus nodos no son guardados en la memoria, la búsqueda por haz local guarda la pista de K estados, y se generan estados sucesores aleatorios para cada uno de ellos, por lo que se seleccionan los mejores sucesores y en caso de ser el objetivo el algoritmo se detiene, en caso de no ser el objetivo se selección los K mejores estados de una lista completa y se repite el proceso.
La gran diferencia con el algoritmo de reinicios aleatorios es que la búsqueda por haz local no es independiente, poniendo un ejemplo tenemos un estado generado aleatoriamente puede generar a su vez muchos otros estados considerados buenos, y otro estado puede generar el mismo número de estados, pero malos y solo uno bueno, esto puede indicar claramente que el estado a elegir sería el primero en la lista.
Imagen 4: Algoritmo Haz Local

2.1.       Algoritmos Genéticos

Estos algoritmos son una variante de los algoritmos de Haz local, estos son métodos adaptativos que pueden ser utilizados para implementar búsquedas y problemas de optimización, se basan en los procesos genéticos de los organismos biológicos, codificando una posible solución a un problema en un "cromosoma" compuesto por una cadena de bits o caracteres. Estos algoritmos se enfocan en la combinación de dos estados padres para formar un nuevo estado sucesor o hijo.

Imagen 5: Algoritmo Genético
CONCLUSIONES
Los algoritmos de búsqueda local y problemas de optimización son una medida de solución arbitraria a un problema, es decir que se trata de maximizar o minimizar un resultado, esto en base a la búsqueda del mejor resultado posible dentro de un espacio de resultados, a travez de un conjunto de restricciones determinados por el tipo de búsqueda local que se realice.

Es clase de algoritmos son muy eficaces en problemas complejos, aplicados al mundo real, como producción y ciertas actividades que requieren precisión y mejora de resultados. Dentro de estos algoritmos, están los mas complejos, que son los algoritmos genéticos, los cuales son muy conocidos pero tienen una utilización compleja.

BIBLIOGRAFIAS
Russell, S., Norvig, P. 2008. Inteligencia Artificial Un Enfoque ModernoSegunda Edición. Pearson Education. España


jueves, 22 de octubre de 2015

Funciones Heurísticas

1.1.       INTRODUCCIÓN
Como ya conocemos la inteligencia artificial busca diseñar métodos de búsquedas que permitan encontrar una solución óptima a un problema, es por esto que Newell en el año de 1963 investigo sobre los diferentes tipos de procesos que existen para la resolución de un problema dando, así como resultado la inauguración del primer laboratorio de sistemas expertos dedicado a este tipo de problemas de búsquedas. La función heurística tiene como objetivo encontrar una posible solución a un problema haciendo uso de un conocimiento previo, siguiendo una secuencia de pasos que lo guíen hacia su meta.
A lo largo de esta publicación les daré a conocer que tipos de funciones heurísticas tenemos, como estas funcionan y cuál es el objetivo de las búsquedas informadas que hacen uso de esta función para encontrar una estrategia optima que lo guía hacia una posible solución.

1.2.       OBJETIVO 

Conocer cómo funcionan las funciones heurísticas y en qué tipos de problemas podemos aplicarlas.

MARCO TEÓRICO

Una vez que tenemos en claro que las búsquedas informadas son las más eficientes ya que estas proveen al agente de información previa para encontrar una solución de manera más rápida, tenemos que conocer que hace que este tipo de búsquedas se realizan y esto se debe gracias a la función heurística. 

2.1.       ¿Qué es la Función Heurística?


La función heurística se representa de la siguiente forma h(n), siendo esta función el costo estimado del camino más barato desde el nodo n hasta el nodo objetivo, dependiendo del tipo de búsqueda informada la función heurística se denotara de forma diferente, por ejemplo cuando tenemos un tipo de búsqueda voraz primero el mejor la función heurística será f(n) = h(n) mientras que si tenemos otro tipo de búsqueda por ejemplo búsqueda A* la función heurística será de la siguiente manera f(n) = g(n) + h(n).
Imagen 1: Problema de Puzzle 8

Uno de los primeros problemas en utilizar la función heurística fue el puzzle 8 un juego cuyo objetivo era de deslizar las piezas de manera horizontal y vertical a un espacio vació hasta que se consiga que las piezas queden en el orden establecido. En el puzzle 8 existen 181.440 debido a que el árbol de ramificación de este juego es de 3 debido a que si la ubicación es una esquina existen 2 posibles movimientos, si está en el centro existen 4 posibles movimientos y si se encuentra en el borde de una línea existen 3 posibles movimientos es por eso que se dice que la media será de 3. 

A diferencia del puzzle 8 existen otro tipo de problemas similares entre ellos tenemos al 15 puzzle el cual podemos ver tendrá una cantidad más grande de posibles resultados, pero ¿cómo llevaríamos a cabo un problema como estos? Tendremos que hacer de nuestra función heurística la cual como hemos mencionado es una estrategia para resolver problemas de manera óptima, una posible solución a este problema del 15 puzzle sería contando las piezas que se encuentren en la posición incorrecta y las distancias que tienen se suman hasta llegar a un nodo objetivo.
Imagen 2: Problema de Puzzle 15

2.1.            La Precisión De La Heurística En El Rendimiento

Para conocer si nuestra función heurística es la correcta es necesario evaluar el rendimiento de esta mediante un factor de ramificación eficaz, este factor puede variar según el tipo de problema que encontramos y generalmente es utilizado para problemas de búsquedas complejos, una función heurística adecuada seria aquella que tenga el valor de b* el cual es el factor de ramificación más cerca de uno.

2.2.       Inventar Funciones Heurísticas Admisibles.

Cuando encontramos un problema en donde no tenemos tantas restricciones que le permitan llegar a un estado objetivo se le conoce como un problema relajado, estos problemas cuentan con un costo para la función heurística admisible, en esta ocasión los problemas de 8 puzzle y el 15 puzzle no son de este tipo pese a que estos poseen demasiadas posibles soluciones para llegar a un estado objetivo y que estos cuentan con la restricción de que solo se pueden mover de manera vertical y horizontal dependiendo del espacio que se encuentre vacío.

2.3.       Absolver

Este programa fue diseñado con el fin de generar una función heurística a partir de un problema dado, gracias a este sistema se generó una función heurística para el problema del puzzle 8.

2.4.       Aprendizaje De Heurísticas Desde La Experiencia

Las funciones heurísticas son capaces de percatarse cual será el costo para llegar a una posible solución que comienza desde un nodo n, esto es una forma de aprender que se les presenta a este tipo de problemas ya que gracias a la experiencia que van adquiriendo en cada movimiento los acerca más a una solución óptima, el tipo de aprendizaje de este tipo de problemas heurísticos es inductivo porque solo evalúan el costo de la solución para los estados que pueden surgir a lo largo de la búsqueda de una posible solución. Un ejemplo que podría plantear para entender este tipo de problemas sería el de un agente que se encuentre extraviado y se encuentre un camino con tres posibles soluciones, esa sería una descripción, pero las características de los caminos posibles ya que esta serviría de mucha ayuda para determinar el camino objetivo, permitiéndole analizar la distancia desde donde se encuentra ubicado hasta el final del camino.
CONCLUSIONES
Como podemos comprobar una función heuristica es la que le permite a un agente determinar la secuencia de pasos para llegar a un estado aceptador, estas funciones son de suma importancia en los problemas de búsquedas informadas ya que gracias a estas se puede evaluar el costo de los movimientos de un estado n hacia el objetivo y ademas también del costo del camino.
BIBLIOGRAFIAS
Russell, S., Norvig, P. 2008. Inteligencia Artificial Un Enfoque ModernoSegunda Edición. Pearson Education. España

sábado, 17 de octubre de 2015

Búsqueda Informada y Exploración

1.1.       INTRODUCCIÓN
Continuando con la temática de inteligencia artificial de mis anteriores publicaciones conocemos que la inteligencia artificial busca crear agentes capaces de resolver problemas de los cuales no se tenga conocimiento para encontrar una posible solución es por esto que hace uso de las búsquedas informadas, este tipo de búsquedas a diferencia de las búsquedas no informadas son más precisas, ya que poseen de un conocimiento previo del entorno en el que el agente se desenvolverá, aunque en ciertas ocasiones se puede tener información del entorno no siempre se conocerá cual será la solución, es por esta razón que la inteligencia artificial hace uso de este tipo de búsquedas.En esta nueva publicación les hablare sobre las búsquedas informadas, cuales son los principales algoritmos de búsquedas informadas y como aprender a realizar búsquedas más objetivas.1.2.       OBJETIVO
Conocer cómo funcionan las búsquedas informadas y cuáles son los principales algoritmos de este tipo de búsquedas.

MARCO TEÓRICO

2.1.       Estrategias De Búsquedas Informadas Heurísticas

Como ya he venido mencionando las búsquedas informadas son aquellas que poseen un conocimiento previo para ¿que el agente pueda conocer el entorno en el que se desenvolverá pero que hace especial a este tipo de búsquedas? A diferencia de las búsquedas no informadas las informadas hacen uso de estrategias para poder encontrar soluciones de manera más eficiente que las no informadas, una de ellas es la utilización de la búsqueda primero el mejor la cual es un caso particular de las búsquedas de árboles en donde se tenía que expandir un nodo basado en una función de evaluación. Este tipo de búsqueda hace uso de una función de evaluación en donde f(n) será el costo estimado del camino más barato desde el nodo n hacia el nodo objetivo.

2.1.       Búsqueda Voraz Primero El Mejor

Esta búsqueda es una derivación de la búsqueda primero el mejor, la cual trata de expandir el nodo más cercano al objetivo para poder encontrar una solución que lo conduzca hacia un estado objetivo, esta búsqueda evalúa los nodos mediante una función heurística f(n)=h(n) la cual es un componente clave de este tipo de algoritmos. La función de evaluación es la encargada de devolver los valores de la expansión de los nodos en donde se escoge el nodo que posea una mejor evaluación. Un defecto de este tipo de búsqueda es que no tiene en cuenta el costo que tendrá n hasta llegar a su objetivo.
Imagen 1: Búsqueda Voraz Primero el Mejor

2.1.       Búsqueda A*

La búsqueda A* o búsqueda en estrella como se le conoce es una de las estrategias de búsqueda más conocidas de la búsqueda primero el mejor, esta trata de minimizar el costo total entre el nodo origen y el nodo objetivo, a diferencia de la búsqueda voraz primero el mejor esta búsqueda trata de buscar el costo del camino más barato de la solución mediante la función de evaluación, la cual se representa de la siguiente manera f(n) = g(n) + h(n) en donde g(n) será el costo del camino desde el nodo inicio hasta el nodo n  y h(n) será el costo estimado del camino hacia el nodo objetivo. Esta estrategia de búsqueda en A* es óptima si la función heurística cumple con las condiciones de admisibilidad y consistencia.
Imagen 2: Búsqueda A*

2.1.       Búsqueda Heurística Con Memoria Acotada

También conocida como búsqueda con memoria simplificada, este tipo de búsqueda lo que busca es expandir los nodos de la misma forma que lo hace la búsqueda en A* hasta el punto en que la memoria disponible se llene, el objetivo de esto es hacer que no se puedan ingresar más nodos al árbol, lo que hace este algoritmo es eliminar el peor nodo hoja, para de esta manera volver hacia atrás el valor del nodo olvidado de forma que el antepasado sepa cuál es la calidad del mejor camino en ese subárbol, si todos los nodos descendientes de un nodo n son olvidados no sabremos porque camino ir pero lo que si sabremos es el costo de ese camino. Este algoritmo es óptimo si la solución es alcanzable si no devolverá la mejor solución.

CONCLUSIONES
Este tipo de búsquedas informadas nos han demostrado que son muy utiles encontrando una solución optimas en problemas de búsqueda, se pueden aplicar a agentes para que estos puedan desenvolverse en un ambiente conocido y como ya se conoce estas búsquedas usan una función de evaluación heurística que se encarga de devolver los valores de los nodos de expansión.

BIBLIOGRAFIAS
Russell, S., Norvig, P. 2008. Inteligencia Artificial Un Enfoque ModernoSegunda Edición. Pearson Education. España

jueves, 8 de octubre de 2015

Caratula de I.A 2


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ

CARRERA INFORMÁTICA

SEMESTRE: SÉPTIMO                 PERIODO: OCT 2015/MAR 2015
  
PORTAFOLIO
  
TEMA:
INTELIGENCIA ARTIFICIAL II

AUTOR:
GERMÁNICO E. VÉLEZ PINTO 

FACILITADORA:
ING. HIRAIDA SANTANA CEDEÑO


CALCETA, OCTUBRE 2015