sábado, 9 de agosto de 2014

PRESENTACION




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


CARRERA INFORMÁTICA


SEMESTRE SEPTIMO                    PERIODO ABR-SEPT/2013


PORTAFOLIO


AUTOR:

SECAIRA MORA JOSE ISAAC



MISIÓN

Formación de profesionales íntegros que conjuguen ciencia, tecnología y valores en su accionar, comprometidos con la sociedad en el manejo adecuado de programas y herramientas computacionales de última generación.

VISIÓN

Ser referente en la formación de profesionales de prestigio en el desarrollo de aplicaciones  informáticas y soluciones de hardware.

SILABO

Silabo de Inteligencia Artificial ii




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

CARRERA DE INFORMÁTICA

SÍLABO DEL CURSO

INTELIGENCIA ARTIFICIAL II (CIENCIAS PROFESIONALIZANTES)
PERIODO SEMESTRAL: Abril 2014 / Agosto 2014


1.      CÓDIGO Y NÚMERO DE CRÉDITOS:
CÓDIGO: II0701
NÚMERO DE CRÉDITOS: 3 créditos (2 TEORÍA + 1 PRÁCTICA).         
SEMESTRE: Séptimo.                        PARALELO: A

2.      DESCRIPCIÓN DEL CURSO.
Inteligencia Artificial II es una materia que permite al estudiante adquirir conocimientos básicos de  estructuras y estrategias de búsquedas en espacio d estado, técnicas para el desarrollo de juegos inteligentes,  la programación lógica y su aplicación en la resolución de problemas del mundo real.

3.    PRE-REQUISITOS Y CO-REQUISITOS:

PRE-REQUISITO: II0601 INTELIGENCIA ARTIFICIAL I
     CO-REQUISITO:                  
                                          
4.     TEXTO Y OTRAS REFERENCIAS REQUERIDAS PARA EL DICTADO DEL CURSO TEXTO GUÍA:
Russell, S., Norvig, P. 2008. Inteligencia Artificial Un Enfoque Moderno. Segunda Edición. Pearson Education. España

BIBLIOGRAFÍA COMPLEMENTARIA

Palma M., José; Marin M. Roque. 2008. Inteligencia artificial, técnicas métodos y aplicaciones. Primera Edición. Mc Graw Hill. Chile.

Russel , S. 2008. Inteligencia Artificial Un enfoque moderno. Pearson. España

Vera, H. 2010. Curso de Inteligencia Artificial. Universidad Nacional Mayor San Marcos, Perú.

Bratko, I. 2011. Prolog Programming for Artificial Intelligence (International Computer Science Series). Cuarta Edición. Estados Unidos.

5. OBJETIVOS GENERALES DEL CURSO (RESULTADOS O LOGROS DE APRENDIZAJE DEL CURSO)

Los estudiantes serán capaces de demostrar sus conocimientos del contenido de inteligencia artificial II, través de los siguientes logros:

     (C4) Asociar los conceptos de teoría de grafos con un modelo matemático para comprender el funcionamiento básico de las técnicas de búsquedas de espacios de estado.
     (C4) Señalar las características de los algoritmos búsqueda informada y  no informada para entender su funcionamiento.
    (C3)  Emplear los principales algoritmos de búsqueda en espacios de estados en la resolución de problemas del mundo real.
    (C3) Resolver problemas de juego humano - máquina a través de técnicas de búsqueda entre adversarios.
    (C4) Analizar la teoría que sustenta la programación lógica mediante PROLOG para en el futuro profundizar en temas de sistemas inteligentes.


6.    TÓPICOS O TEMAS CUBIERTOS






7.       HORARIO DE CLASES.

16 Semanas por el semestre, más una semana cultural, 3 clases por semana de 60 minutos cada una.
                Martes: Dos horas de clases en el aula 306. (18h00 a 20h00)
                Jueves: Una hora de clases  en el aula 305. (18h00 a 19h00)

8. CONTRIBUCIÓN DEL CURSO EN LA FORMACIÓN DEL INGENIERO EN INFORMÁTICA





9.   RELACIÓN DEL CURSO CON EL CRITERIO RESULTADO DE APRENDIZAJE.






10.         EVALUACIÓN DEL CURSO.





11. RESPONSABLE DE LA ELABORACIÓN DEL SÍLABO Y FECHA DE PRESENTACIÓN Y         REVISIÓN:

AGENTES QUE PLANIFICAN

INTRODUCCIÓN


La planificación se puede ver como una forma de programación automática: el diseño  de un curso de acción que satisfará un cierto objetivo. Dentro de la comunidad de la simbólica, se ha asumido desde hace tiempo que algún tipo de sistema planificador debe formar parte de los componentes centrales de cualquier agente artificial. La planificación se puede observar como un problema de búsqueda en un espacio de estado.



La idea básica es dotar al agente planificador:
Representación del objetivo a alcanzar.
Representación de las acciones que puede realizar.
Representación del entorno.
Capacidad de generar un plan para alcanzar el objetivo.

CONTENIDO

ESTADOS BASADOS EN CARACTERÍSTICAS

Es realmente sencillo representar estados mediante el uso de modelos icónicos para etiquetar los nodos podamos visualizar los efectos de una acción sobre los estados. Sin embargo, también es posible definir grafos cuyos nodos estén etiquetados por características, pero, para hacerlo, necesitamos una forma de describir como una acción afecta a las características. Una técnica para describir dichos efectos fue introducida en el sistema STRIPS. La idea básica es definir un operador mediante tres listas. La primera, denominada lista de precondiciones, especifica aquellas características que han de tener un valor 1 y aquellas que han de tener un valor 0 de cara a que la acción pueda ser aplicada. La segunda, denominada lista a borrar, especifica aquellas características que cambian su valor de 1 a 0. La tercera, llamada lista a añadir, especifica aquellas características que cambiaran su valor de 0 a 1. Los valores de las características que no se indican de forma  explícita en las listas borrar y añadir no se cambian. Estas tres listas tienen un operador STRIPS un modelo de los efectos de una acción. También podamos ser capaces de entrenar una red neuronal para aprender a predecir los valores de un vector de características en el instante ((t)), a partir de sus valores en el instante ((t-1)) y de la acción ejecutada en el instante ((t-1)).

CONCLUSIÓN

se CONCLUYE que los estados basados en características son fácil de representar y para ello se utiliza un sistema llamado STRIPS, EL CUAL BRINDA LA IDEA BASICA DE DEFINIR TRES LISTAS LAS CUALES TENDRAN UN VALOR DE 1 A 0 con el objetivo De que podamos entrenar unA red neuronal artificial.

BIBLIOGRÁFICA
Russell, S., Norvig, P. 2008. Inteligencia Artificial Un Enfoque Moderno. Segunda Edición. Pearson Education. España

BÚSQUEDA A CIEGAS

INTRODUCCIÓN

Consiste en buscar un estado concreto entre un conjunto determinado, al cual se lo conoce como espacio de estados. Imaginemos, por ejemplo, una habitación con baldosines en la que hay un libro. Un robot se desea desplazar por la habitación con el fin de llegar a dicho libro. ¿De qué manera lo hará? En este punto es donde entran en juego las estrategias y los algoritmos de búsqueda.
Cuando el sistema agente posee algún tipo de información del medio, se utilizan técnicas de búsquedas informadas; sin embargo, si carece de conocimiento alguno, se deberán emplear algoritmos de búsqueda no informadas. En nuestro ejemplo, y para este último caso, podemos imaginar un robot que no posea ningún tipo de visión artificial, que únicamente sea capaz de moverse en horizontal o vertical de un baldosín a otro y detectar si en el baldosín se halla el libro.

cONTENIDO

Representación del espacio de estados
El conjunto de estados que el agente debe recorrer, generalmente se representa mediante un grafo, aunque en algunos casos concretos utilizaremos árboles. Siguiendo con nuestro ejemplo, cada nodo del grafo representará a uno de los baldosines de la habitación, y dos nodos serán adyacentes si también lo son sus baldosines correspondientes.

La búsqueda en profundidad
Supongamos que nuestro robot no tiene ninguna capacidad especial para poder moverse por la habitación de una manera eficiente (desconoce cualquier información útil para poder llegar al libro de la forma más corta): entonces deberá seguir un algoritmo de búsqueda no informada (“un método ciego”) para llegar hasta él. En general, este tipo de algoritmos recorre el espacio de estados de una forma concreta hasta dar con el objetivo (en este caso, el libro). Nuestro primer método se denomina búsqueda en profundidad.

La búsqueda en anchura
Otra opción para recorrer el espacio de estados sin conocer ninguna información acerca del mismo es recorrerlo en anchura. Como su nombre indica, el recorrido realizado se lleva a cabo visitando todos los nodos de un nivel, de izquierda a derecha, pasando posteriormente al nivel siguiente, hasta que se encuentre el nodo objetivo, momento en el que se detiene el algoritmo


CONCLUSIONES

El algoritmo de búsqueda en ANCHURA SE BASA EN NIVELES LO CUAL OCUPA MAYOR ESPACIO EN MEMORIA SIENDO AUN MENOS EFICIENTE QUE EL ALGORITMO DE BÚSQUEDA PRIMERO EN  PROFUNDIDAD EL CUAL SE BASA EN CAMINOS DESDE EL NODO RAÍZ  EN EL CASO QUE NO ENCUENTRE LA SOLUCIÓN DARÁ UN RETROCESO  Y TOMARA OTRA RUTA Y LO YA RECORRIDO NO LO MANTENDRÁ EN MEMORIA SIENDO MAS EFICIENTE QUE LA OTRA BÚSQUEDA.

BIOGRAFÍA

Palma M., José; Marin M. Roque. 2008. Inteligencia artificial, técnicas métodos y aplicaciones. Primera Edición. Mc Graw Hill. Chile.

martes, 8 de julio de 2014

FUNCION HEURISTICA

Funcion Heurística

INTRODUCCIÓN.

La búsqueda heurística dispone de alguna información sobre la proximidad del estado objetivo, por lo que explorar los lugares más prometedores en encontrar el estado objetivo.


MARCO TEÓRICO

FUNCIONES HEURÍSTICA

El efecto de la precisión heurística en el rendimiento

Una manera de caracterizar la calidad de una heurística es el b* factor de ramificación eficaz. Si el número total de nodos generados por A* para un problema particular es N, y la profundidad de la solución es d. entonces b* es factor de ramificación que un árbol uniforme de profundidad d deberá tener para  contener N + 1 nodos. Así,

N+1=1+b*+ (b*)^2+……….. (b*)^d

Por lo tanto, las  medidas experimentales de b* sobre un pequeño conjunto de problemas pueden proporcionar una buena guía para la utilidad total de la heurística. Una heurística bien diseñada tendría un valor de b cerca de 1, permitiría resolver problemas bastante grandes.

Aprendizaje de heurísticas desde la experiencia

Una función heurística h(n), como se supone, estima el costo de una solución que comienza desde el estado en el nodo n. Los métodos de aprendizaje inductivos trabajan mejor cuando se les suministrar características de un estado que sean relevante para su evaluación, más que sólo la descripción del estado.

A partir de esto, se puede utilizar un algoritmo de aprendizaje inductivo para construir una función h(n) que pueda predecir los costos solución para otros estados que surjan durante la búsqueda. Las técnicas para hacer esto, está basado en la  utilización de  redes neuronales, árboles de decisión. Y otros métodos.

CONCLUSIÓN.


LA FUNCIÓN HEURISTICA DEPENDE DE LA INFORMACIÓN OTORGADA PARA EL ÉXITO DE LA BÚSQUEDA DEL NODO OBJETIVO.

BIBLIOGRAFÍA
Russell, S. y Norvig, P. 2004. INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO. PEARSON EDUCACION. 2 ed. Madrid.

BÚSQUEDA A*

Búsqueda A*: minimizar el costo estimado total de la solución


La forma más ampliamente conocida de la búsqueda  primero el mejor se le llama búsqueda A* conocida como “Búsqueda A-estrella”; la cual evalúa los nodos combinando g(n) y h(n) de la siguiente manera:

f(n)=g(n)+h(n)

g(n) significa el coste para alcanzar el nodo; lo que quiere decir que nos da el coste de camino desde el nodo inicial al nodo n y h(n)=significa el coste de ir al nodo objetivo, es decir, el coste estimado del camino más barato desde n hasta el objetivo.

f(n)=coste más barato estimado de la solución a través de n.

De esta manera se trata de encontrar la solución más barata y es razonble intentar primero el nodo con el valor más bajo de g(n).
Cabe mencionar que esta estrategia resulta ser más que razonable con tal que la funcion heurística h(n) satisfaga cierta condiciones; la búsqueda A* compleja como optima, la optimalidad de A* es sencilla de analizar si se usa con la búsqueda de árboles.
A* es óptima si h(n) es una heurística admisible, es decir, con tal de que la h(n) nunca sobrestime el coste de alcanzar el objetivo. Como g(n) es el coste exacto para alcanzar n, tenemos como consecuencia inmediata que la f(n) nunca sobrestime el coste verdadero de una solución a través de n.
Como por ejemplo:







En el ejemplo de la figura, se ha superpuesto una rejilla para estimar distancias. Supóngase que se quiere determinar el camino óptimo entre A y F. Inicialmente, se toma el origen y se coloca en la lista Abierta.



El nodo A pasa a lista cerrada y se pasan a la lista Abierta los conectados con el (B y C), asignándoles valores R, E y punteros al antecesor (A).


Se selecciona el de menor valor T de la lista Abierta (C) y se pasa a lista cerrada. Los conectados con el (D y E) se pasan a Abierta, asignándoles valores R, E y punteros al antecesor (C).



Se selecciona el de menor valor T de la lista Abierta (B) y se pasa a lista cerrada. Los conectados con el (D y E) no se pasan a Abierta, pues el valor T es mayor que los ya existentes.



Se selecciona el de menor valor T de la lista Abierta (D) y se pasa a lista cerrada. Sólo se pasa el nodo F a Abierta, pues B está ya en cerrada.


Se selecciona el de menor valor T de la lista Abierta (F) y se pasa a lista cerrada. Como es el nodo destino, se acaba el proceso.




Ahora, se puede recuperar el camino óptimo retrocediendo desde el nodo F mediante los punteros.

CONCLUSIÓN

la búsqueda a* utiliza dos parámetros para evaluar la ruta que tomar para llegar al nodo objetivo  ademas de utilizar la heuristica utiliza la función del coste del camino permitiendo así evaluando el camino utilizando dos parámetros ya mencionados y dependientes uno del otro para la realización de esta búsqueda.



ALGORITMOS DE BUSQUEDA LOCAL Y PROBLEMAS DE OPTIMIZACION


ALGORITMO DE BÚSQUEDA LOCAL Y Problemas DE OPTIMIZACIÓN
INTRODUCCIÓN.

En esta clase nos dimos cuenta que este algoritmo de búsqueda local es muy eficiente ya que esta usa poca memoria a comparación de otros algoritmos y así de esa manera encuentran la solución de manera rápida, es decir usa una cantidad constante de memoria y encuentra soluciones en estados grandes.


MARCO TEÓRICO

Algoritmos de búsqueda local y problemas de optimización

Los algoritmos de búsqueda local funcionan con un solo estado actual (más que múltiples caminos) y generalmente se mueve solo a los vecinos del estado. Típicamente, los caminos seguidos por la búsqueda no se retienen. Aunque los algoritmos de búsqueda local no son sistemáticos, tienen dos ventajas claves: usan muy poca memoria (por lo general una cantidad constante) y pueden encontrar a menudo soluciones razonables en espacios de estados grandes o infinitos (continuos) para los cuales son inadecuados los algoritmos sistemáticos.

Además de encontrar los objetivos, los algoritmos de búsqueda local son útiles para resolver problemas de optimización puros, en los cuales el objetivo es encontrar el mejor estado según una función objetivo Muchos problemas de optimización no encajan en el modelo <estándar> de búsqueda.

Para entender la búsqueda local, encontraremos muy útil considerar la forma o el paisaje del espacio de estados. El paisaje tiene <posición> (definido por el estado) y <elevación> (definido por el valor de la función de coste heurística o función objetivo). Si la elevación corresponde al costo, entonces el objetivo es encontrar el valle más bajo (un mínimo global); si la elevación corresponde a una función objetivo, entonces el objetivo es encontrar el pico más alto (un máximo global) (Puedes convertir uno en el otro solamente al insertar un signo menos.) Los algoritmos de búsqueda local exploran este paisaje. Un algoritmo de búsqueda local completo siempre encuentra un objetivo si existe; un algoritmo optimo siempre encuentran un mínimo/máximo global.


Búsqueda de Ascensión de Colinas

El algoritmo de búsqueda de ascensión de colinas es simplemente un bucle que continuamente se mueve en dirección del valor creciente, es decir cuesta arriba. Termina cuando alcanza <un pico> en donde ningún vecino tiene un valor más alto. El algoritmo no mantiene un árbol de búsqueda, sino una estructura de datos del nodo actual que necesita solo el registro del estado y su valor de función objetivo. La ascensión de colinas no mira delante más allá de los vecinos inmediatos del estado actual.

A veces a la ascensión de colinas se le llama búsqueda local voraz porque toma un estado vecino bueno sin pensar hacia donde ir después. Aunque la avaricia sea considerada uno de los siete pecados mortales, resulta que los algoritmos avaros a menudo funcionan bastante bien. La ascensión de colinas a menudo hace el progreso muy rápido hacia una solución, porque es por lo general bastante fácil mejorar un estado malo. Lamentablemente, la ascensión de colinas a menudo se atasca por los motivos siguientes:


   Máximo local: un máximo local es un pico que es más alto que cada uno de sus estados vecinos, pero más abajo que el máximo global. Los algoritmos de ascensión de colinas que alcanzan la vecindad de un máximo local irán hacia el pico, pero entonces se atascaran y no podrán ir a ninguna otra parte.
   Crestas: las crestas causan una secuencia de máximos locales que hace muy difícil la navegación para los algoritmos avaros.
   Meseta una meseta es un área del paisaje del espacio de estados donde la función de evaluación es plana. Puede ser un máximo local plano, del que no existe ninguna salida ascendente, o una tarraza por la que se pueda avanzar. Una búsqueda de ascensión de colinas podría ser incapaz de encontrar su camino en la meseta.

El éxito de la ascensión de colinas depende muchísimo de la forma del paisaje del espacio de estados: si hay pocos máximos locales y mesetas, la ascensión de colinas con reinicio aleatorio encontrara una solución buena muy rápidamente.

Búsqueda de Temple Simulado.

Un algoritmo de ascensión de colinas que nunca hace movimientos <cuesta abajo> hacia estados con un valor inferior (o coste más alto) garantiza ser incompleto, porque puede estancarse en un máximo local. En contraste, un camino puramente aleatorio, es decir moviéndose a un sucesor elegido uniformemente aleatorio de un conjunto de sucesores, es completo, pero sumamente ineficaz. Por lo tanto, parece razonable intentar combinar la ascensión de colinas con un camino aleatorio de algún modo que produzca tanta eficacia como completitud.

El bucle interno del algoritmo del temple simulado es bastante similar a la ascensión de colinas. En vez de escoger el mejor movimiento, sin embargo, escoge un movimiento aleatorio. Si el movimiento mejora la situación, es siempre aceptado. Por otra parte, el algoritmo acepta el movimiento con una probabilidad menor que uno. La probabilidad se disminuye exponencialmente con la <maldad> de movimiento (la cantidad ΔE por la que se empeora la evaluación). La probabilidad también disminuye cuando <la temperatura> T baja: los <malos> movimientos son más probables al comienzo cuando la temperatura es alta, y se hacen más improbables cuando T disminuye. Uno puede demostrar que si el esquema disminuye Tbastante despacio, el algoritmo encontrara un óptimo global con probabilidad cerca de uno.

Búsqueda por Haz Local

Guardar solamente un nodo en la memoria podría parecer una reacción extrema para el problema de limitaciones de memoria. El algoritmo^10 de búsqueda por haz local guarda la pista de K estados (no solo uno). Comienza con estados generados aleatoriamente. En cada paso, se generan todos los sucesores de los K estados. Si alguno es un objetivo, paramos el algoritmo. Por otra parte, se seleccionan los K mejores sucesores de la lista completa y repetimos.

A primera vista, una búsqueda por haz local con K estados podría parecerse a ejecutar K reinicios aleatorios en paralelo en vez de en secuencia. De hecho, los dos algoritmos son bastantes diferentes. En una búsqueda de reinicio aleatorio, cada proceso de búsqueda se ejecuta independientemente de los demás. En una búsqueda por haz local la información útil es pasada entre los k hilos paralelos de búsqueda. Por ejemplo, si un estado genera varios sucesores buenos y los otros K-1 estados generan sucesores malos, entonces el efecto es que el primer estado dice a los demás, <£Venid aquí, la hierba es más verde!> El algoritmo rápidamente abandona las búsquedas infructuosas y mueve sus recursos a donde se hace la mayor parte del progreso.

Algoritmos Genéticos

Un algoritmo genético (o AG) es una variante de la búsqueda de haz estocástica en la que los estados sucesores se generan combinando dos estados padres, más que modificar un solo estado. La analogía a la selección natural es la misma que con la búsqueda de haz estocástica, excepto que ahora tratamos con reproducción sexual más que con la reproducción asexual.

Como en la búsqueda de haz, los AGs comienzan con un conjunto de K estados generados aleatoriamente, llamados población Cada estado, o individuo está representado como una cadena sobre un alfabeto finito (el más común, una cadenas de 0s y 1s).


CONCLUSIÓN.

No usan mucha memoria a diferencias de los otros métodos, los métodos de  búsqueda local mantienen sólo un número pequeño de nodos en memoría. Los algoritmos de búsqueda local Inician con una solución inicial generada aleatoriamente, o hallada con algún otro algoritmo.


BIBLIOGRAFÍA

Russell, S. y Norvig, P. 2004. INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO. PEARSON EDUCACION. 2 ed. Madrid.