miércoles, 4 de junio de 2014

ESTRATEGIAS DE BÚSQUEDA

Fecha de clase: 20/mayo/2014

INTRODUCCIÓN
Problemas en el mundo real existen (y muchos), así mismo existen soluciones para estos, pero no todas nos llevan a esta esperada solución con la misma eficiencia. Es por esto que se hace necesario conocer las técnicas de resolución, abstraer sus características más significativas para poder decidir cuál es la adecuada frente a cada problema.  
En este caso se desea dar solución a problemas de búsqueda en inteligencia artificial, para esto existen técnicas heurísticas (cuando se dispone de información) y técnicas a ciegas (o no informadas, cuando apenas se tiene la descripción del problema).
Los temas propuestos y la explicación de la docente se orientan a que el estudiante comprenda el funcionamiento básico de las técnicas de búsqueda para luego tener la capacidad de aplicarlos en problemas del mundo real, identificando el método de búsqueda adecuado para la resolución de problemas, dependiendo si se tiene o no información.  
MARCO TEÓRICO
Un problema de búsqueda en Inteligencia Artificial tiene algoritmos que trabajan con estructuras de datos llamadas nodos que contienen en particular información sobre un estado. Un problema de búsqueda consta de:

-          Un espacio de estados, que es el conjunto de estados factibles para un problema junto a la estructura de adyacencia definida implícitamente por los operadores o reglas. (Rubio et al. 1998)
-          Un conjunto de operadores (acciones, con costes). La finalidad de una secuencia de operadores es transformar el estado inicial en el estado objetivo.
-          Un estado inicial (punto de partida de la búsqueda).
-          Una función objetivo (comprueba si el estado actual corresponde a una solución del problema). La solución consiste en una secuencia de operadores que transforman el estado inicial en el estado objetivo. (Rubio et al. 1998)

La búsqueda la realiza un programa (o agente). El espacio de búsqueda será un grafo dirigido en el que cada nodo representa un posible estado del sistema. Dependiendo del problema, cada nodo incluirá una descripción completa del sistema, o bien sólo las modificaciones necesarias para pasar de un nodo padre a su hijo. (Berzal, F. s.f.)

Debido a que la búsqueda es el núcleo de muchos procesos inteligentes, es necesario escoger la estructura de control apropiada con el fin de que el proceso de búsqueda sea eficiente. La inteligencia artificial proporciona varias técnicas de búsqueda que tienen una formulación matemática, la cual hace posible su implementación computacional bajo el esquema de programación estructurada. (Molina et al. 2008)

Rubio et al (1998) indican las restricciones sobre las secuencias solución:

-          Encontrar la secuencia más corta.
-          Encontrar la secuencia menos costosa (en este caso se supondrá que los disparos de las reglas tienen asociado un coste o, equivalentemente, que el espacio de estados tiene pesos en las aristas).
-          Encontrar cualquier secuencia lo más rápido posible.

Al evaluar una estrategia habrá que tener en cuenta lo siguiente:

Tiempo de cálculo <==> Calidad de la solución.

Un punto muy importante que señalan estos autores es que todos los problemas de búsqueda requieren no sólo que se encuentre un camino solución, sino todos los que existan (probablemente para poder aplicar estrategias, por ejemplo en un juego de ajedrez).

Existen diversos métodos de realizar búsquedas, a continuación se muestran dos grandes grupos que son búsqueda informada o heurística y la búsqueda a ciegas o no informada.

HEURÍSTICAS
Las heurísticas son criterios, métodos o principios para decidir cuál de entre varias acciones promete ser la mejor para alcanzar una determinada meta. (Berzal, F. s.f.)

Es el tipo de estrategia que sabe si un estado no objetivo es más prometedor que otro, permitiendo reducir la búsqueda (Russell y Norvig. 2004); es decir, como disponen de alguna información sobre la proximidad de cada estado a un estado objetivo, se pueden explorar en primer lugar los caminos más prometedores. (Rubio et al. 1998)

Según Rubio et al (1998), los métodos heurísticos son preferibles a los métodos no informados en la solución de problemas difíciles para los que una búsqueda exhaustiva necesitaría un tiempo demasiado grande. Esto cubre prácticamente la totalidad de los problemas reales que interesan en Inteligencia Artificial.

BÚSQUEDA NO INFORMADA O BÚSQUEDA A CIEGAS
Engloba las estrategias de búsqueda que no cuentan con información adicional sobre los estados, aparte de la definición del problema. Estas sólo pueden generar los sucesores y distinguir entre un estado objetivo de un estado no objetivo. Las estrategias que saben que un estado no objetivo es más prometedor que otros se llaman por lo contrario búsqueda informada o búsqueda heurística. Sin embargo, todas las estrategias se distinguen por el orden de expansión de los nodos (Russell y Norvig. 2004).

A continuación se muestran dos métodos de búsqueda no informada:

- Búsqueda Primero en Anchura 
- Búsqueda Primero en Profundidad

BIBLIOGRAFÍA

Russell, S y Norvig, P. 2004.  INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO. Segunda edición.  PEARSON EDUCATION, S.A. Impreso en España.

Bibliografía Complementaria

Berzal, F. s.f. Búsqueda en Inteligencia Artificial. DECSAI (Departamento de Ciencias de la Computación e I.A.). Universidad de Granada. Formato (PDF). Disponible en: http://elvex.ugr.es/decsai/iaio/slides/A3%20Search.pdf

Molina, J.; Torres, C. y Restrepo, C. 2008. TÉCNICAS DE INTELIGENCIA ARTIFICIAL PARA LA SOLUCIÓN DE LABERINTOS DE ESTRUCTURA DESCONOCIDA. Scientia et Technica Año XIV, No 39. Universidad Tecnológica de Pereira. ISSN 0122-1701. Formato (PDF). Disponible en: http://revistas.utp.edu.co/index.php/revistaciencia/article/viewFile/3171/1933

Rubio, J; Muro, P. y Bañares, J. 1998. Inteligencia Artificial e Ingeniería del Conocimiento I. BÚSQUEDA. Departamento de Informática e Ingeniería de Sistemas Universidad de Zaragoza. Curso 96-97. Formato (PDF). Disponible en: http://www.lsi.upc.edu/~bejar/iia/iabusq.pdf

martes, 3 de junio de 2014

BUSQUEDA PRIMERO EN ANCHURA

Fecha de clase: 27/mayo/2014
BÚSQUEDA PRIMERO EN ANCHURA
Se convierte en una cola (o fila de espera) que expande primero el nodo raíz, posteriormente todos los sucesores del nodo raíz, después sus sucesores, etc., expandiendo todos los nodos a una profundidad en el árbol de búsqueda antes de expandir cualquier nodo del próximo nivel (Russell y Norvig. 2004).

Los nodos de igual profundidad se ordenan arbitrariamente. Ese orden arbitrario es directamente heredado del que exista entre los operadores del sistema de producción. Mediante esta estrategia, el árbol de búsqueda se va generando por niveles de profundidad. Hasta que todos los nodos de un nivel no han sido revisados no se revisa ninguno del siguiente nivel (Rubio et al. 1998); es decir, cuando todos sus predecesores y sus hermanos anteriores en orden de generación ya se han visitado. (UNIVERSITAT POLITÉCNICA DE CATALUNYA, 2013)  

Las búsquedas a ciegas aplican los operadores (modelos de los efectos de las acciones, que al aplicarlos crean nodos sucesores) sin conocer bien el problema. La búsqueda por anchura es el método más simple de búsquedas a ciegas.  Este procedimiento actúa de forma uniforme construyendo un grafo de estados explícito desde el nodo inicial a cada uno de los predecesores con la propiedad de que una vez encontrado el nodo objetivo, se habrá encontrado el camino más corto, pero para esto tiene que almacenar el árbol completo y esto es un inconveniente puesto que el tamaño crece de manera exponencial respecto a la profundidad del nodo objetivo (menos profundo) (Nils, J. 2001)

Russell y Norvig (2004) puntualiza el siguiente punto que se debe considerar antes de elegir un método de búsqueda:

-          La cantidad de tiempo y memoria que utiliza para completar una búsqueda.
-          Son un problema más grande los requisitos de memoria para realizar una búsqueda por anchura que el tiempo de ejecución. Pero existen otras estrategias que requieren menos memoria.
-          Los problemas de búsqueda de complejidad exponencial no pueden resolverse por métodos a ciegas (sin información) salvo los casos pequeños.

A continuación se expresa el método de búsqueda primero en anchura utilizando un puzzle de 8 piezas, en el que se muestra el nodo inicial y el nodo objetivo, así mismo el orden como se genera un árbol de búsqueda mediante el uso de los operadores (mover la celda vacía a la izquierda, arriba, a la derecha y abajo) y la solución óptima para llegar al objetivo.   

Figura 1. Búsqueda primero en anchura para un puzzle de ocho piezas
Autor: Nils, J. (2001)

Si un estado objetivo es alcanzable, la búsqueda en anchura lo encuentra. La demostración es sencilla: el estado objetivo aparecerá en un cierto nivel de profundidad y, en un número finito de pasos (suponiendo un número finito de operadores y un número finito de posibles aplicaciones de un operador sobre un estado), llegará a ese nivel. Este mismo razonamiento muestra que la búsqueda en anchura siempre encuentra la secuencia solución más corta (una de las que tienen el mínimo número de aristas). Pero esto no significa en absoluto que realice un número pequeño de operaciones. Se trata de una propiedad de la secuencia solución encontrada, no del proceso por el que ha sido construida; de hecho, la búsqueda en anchura puede llegar a ser extremadamente ineficaz. (Rubio et al. 1998)

BIBLIOGRAFÍA

Nils J. Nilsson. 2001. INTELIGENCIA ARTIFICIAL. Una nueva síntesis.  ISBN: 1-55860-467-7.  1era ed. Copyright MCMXCVIII by Morgan Kaufmann Publishers, Inc.

Russell, S y Norvig, P. 2004.  INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO. Segunda edición.  PEARSON EDUCATION, S.A. Impreso en España.

Bibliografía Complementaria

UNIVERSITAT POLITÉCNICA DE CATALUNYA, 2013. Departament de Llenguatges i Sistemes Informátics. APUNTS D’INTEL.LIGE`NCIA ARTIFICIAL. Formato (PDF). Disponible en: http://www.lsi.upc.edu/~bejar/ia/material/teoria/ApuntesIA.pdf

Rubio, J; Muro, P. y Bañares, J. 1998. Inteligencia Artificial e Ingeniería del Conocimiento I. BÚSQUEDA. Departamento de Informática e Ingeniería de Sistemas Universidad de Zaragoza. Curso 96-97. Formato (PDF). Disponible en: http://www.lsi.upc.edu/~bejar/iia/iabusq.pdf

BÚSQUEDA PRIMERO EN PROFUNDIDAD

Fecha de clase: 03/junio/2014
BÚSQUEDA PRIMERO EN PROFUNDIDAD O BÚSQUEDA CON VUELTA ATRÁS

Esta estrategia intenta seguir un camino hasta la mayor profundidad posible, retrocediendo cuando acaba el camino y retomando la última posibilidad de elección disponible.

El principal problema de este algoritmo es que no acaba si existe la posibilidad de que hayan caminos infinitos. Una variante de este algoritmo que evita este problema es el algoritmo de profundidad limitada (Búsqueda en profundidad prioritaria), éste impone un límite máximo de profundidad que determina la longitud máxima de los caminos recorridos. Esta limitación garantiza que el algoritmo acaba, pero no garantiza encontrar la solución, ya que ésta puede estar a mayor profundidad que el límite impuesto. (UNIVERSITAT POLITÉCNICA DE CATALUNYA, 2013)

Este método sólo genera un sucesor del nodo en cada paso y cada nodo llevará  una marca que indique qué operadores se pueden utilizar especificando el orden de aplicación, hasta llegar a una profundidad límite. Lo que se busca con esta profundidad límite es no realizar una búsqueda innecesaria; es decir desecha los las partes del grafo donde el nodo objetivo este muy lejano al nodo inicial.

Los nodos están ordenados según su profundidad, en orden creciente: los más profundos al principio, los menos profundos al final, conviertiendose en una PILA: los datos que primero entran son los últimos en salir. (Rubio et al. 1998)

Al igual que sucedía en la búsqueda en anchura, los nodos de igual profundidad se ordenan arbitrariamente, según el orden de las reglas u operadores.


Entonces este método también se lo conoce como vuelta atrás (cronológica) porque se establece la profundidad y al llegar al nodo límite sin alcanzar el nodo objetivo habría que regresar al nodo inmediatamente superior (el nodo límite ya revisado se lo debe desechar porque es obvio que no se pueden crear más sucesiones de él) y volver a realizar una búsqueda en este nodo y como este vendría a ser el nodo límite-1 podemos desprender otro nodo (último) y si en ésta parte del grafo tampoco se encuentra se realiza el mismo procedimiento anteriormente mencionado.


Figura 2. Generación de los primeros nodos en la búsqueda  primero en profundidad Autor: Nils, J. (2001)

La Búsqueda en profundidad iterativa lo que se hace es repetir sucesivamente el algoritmo de profundidad limitada, aumentando a cada iteración la profundidad máxima a la que le permitimos llegar. Este algoritmo obtendría el mismo efecto que el recorrido en anchura en cada iteración, ya que a cada paso recorremos un nivel más del espacio de búsqueda. (UNIVERSITAT POLITÉCNICA DE CATALUNYA, 2013)

La ventaja de este proceso (Búsqueda en profundidad) es que el coste en memoria crece de forma lineal. La contraparte de esta estrategia es que el ir del límite hacia el inicio no asegura que la solución encontrada sea la óptima (más cercana o de menor profundidad) o el hecho de revisar varias partes del grafo que se encuentren lejanas, pudiendo estar cerca la solución.


BIBLIOGRAFÍA

Nils J. Nilsson. 2001. INTELIGENCIA ARTIFICIAL. Una nueva síntesis.  ISBN: 1-55860-467-7.  1era ed. Copyright MCMXCVIII by Morgan Kaufmann Publishers, Inc.

Bibliografía Complementaria

UNIVERSITAT POLITÉCNICA DE CATALUNYA, 2013. Departament de Llenguatges i Sistemes Informátics. APUNTS D’INTEL.LIGE`NCIA ARTIFICIAL. Formato (PDF). Disponible en: http://www.lsi.upc.edu/~bejar/ia/material/teoria/ApuntesIA.pdf

Rubio, J; Muro, P. y Bañares, J. 1998. Inteligencia Artificial e Ingeniería del Conocimiento I. BÚSQUEDA. Departamento de Informática e Ingeniería de Sistemas Universidad de Zaragoza. Curso 96-97. Formato (PDF). Disponible en: http://www.lsi.upc.edu/~bejar/iia/iabusq.pdf

lunes, 2 de junio de 2014

REFERENCIA DEL AUTOR



Cinthia M. Sánchez, nació en Calceta-Manabí-Ecuador, el 01 de marzo de 1994. Sus estudios secundarios los realizó en el colegio “13 de Octubre” de Calceta, obteniendo el título de Físico Matemático, actualmente cursa séptimo semestre de la carrera de Informática en la Escuela Superior Politécnica Agropecuaria de Manabí “Manuel Félix López” (ESPAM “MFL”)

SÍLABO DE CURSO

 




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:

a.       (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.
b.      (C4) Señalar las características de los algoritmos búsqueda informada y  no informada para entender su funcionamiento.
c.       (C3)  Emplear los principales algoritmos de búsqueda en espacios de estados en la resolución de problemas del mundo real.
d.      (C3) Resolver problemas de juego humano - máquina a través de técnicas de búsqueda entre adversarios.
e.      (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

TEMÁTICA
CONTENIDO
HORAS TEÓRICAS
HORAS PRÁCTICA
TRABAJO AUTÓNOMO
LOGRO DE APRENDIZAJE
TEMA 1: RESOLVER PROBLEMAS MEDIANTE BÚSQUEDA
1.1.   Agentes que planifican.
1.2.   Estrategias de búsqueda no informada.
1.3.   Búsqueda con información parcial.
11
6
17
a,b,c
TEMA 2: BÚSQUEDA INFORMADA Y EXPLORACIÓN
2.1.   Estrategias de búsqueda informada.
2.2.   Funciones heurísticas.
2.3.   Algoritmo de búsqueda local y problemas de optimización.
2.4.   Búsqueda local en espacios continuos.
2.5.   Agentes de búsqueda online y ambientes desconocidos.
9
6
15
b,c
TEMA 3: BÚSQUEDA ENTRE ADVERSARIOS.
3.1.   Juegos.
3.2.   Decisiones óptimas en juegos.
3.3.   El procedimiento minimax
3.4.   El procedimiento alfa-beta.
3.5.   Decisiones en tiempo real imperfectas.
8
4
12
d
TEMA 4: LENGUAJE DE PROGRAMACIÓN PROLOG
4.1.   Elementos de prolog: And, Or, Not.
4.2.   Sintaxis del Lenguaje de Programación Prolog.
4.3.   Reglas y Hechos, predicados en Prolog.
4.4.   Listas. Consultas en Prolog
4
0
4
e

TOTAL
32
16
48
a, b, c, d, e

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

NÚMERO
OBJETIVOS EDUCACIONALES DE LA CARRERA
CONTRIBUCIÓN
DESCRIPCIÓN
1
Maneja las herramientas de software de última tecnología en el ámbito de su profesión que se encuentren en el mercado.
Alta
El contenido de esta materia aporta en la formación del Ingeniero en Informática, ya que mediante las estrategias de búsquedas en espacio de estados se pueden resolver problemas del mundo real, así como la utilización de algoritmos para el desarrollo de juegos inteligentes.
2
Implementa redes y sistemas de comunicación con su respectivo soporte.
*****
3
Brinda mantenimiento preventivo y correctivo a diferentes equipos y sistemas computacionales en instituciones y empresas públicas y privadas.
*****
4
Desarrolla sistemas informáticos de hardware y/o software para la solución eficiente y eficaz de problemas de procesamiento automático de datos y de información, en los campos productivos y de servicios de la región y país con proyección internacional.
*****
5
Cursa un programa de cuarto nivel en una de las áreas relacionadas a su formación
*****



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

SIGLAS
RESULTADO
CONTRIBUCIÓN
EL ESTUDIANTE DEBE
a
Aplica procedimientos y funciones matemáticas  y físicos en el diseño, implementación y mantenimiento de sistemas informáticos; ya sea a nivel de hardware, software; o como una combinación de ambos.
*****
*****
b
Participa en  proyectos de investigación, innovación o desarrollo, mediante la experimentación y el análisis e interpretación de datos y resultados, en el área de informática.
*****
*****
c
Identifica las necesidades de sistemas informáticos que permitan automatizar procesos y tareas, para personas naturales  o jurídicas.
*****
****
d
Desarrolla sistemas de procesamiento, transmisión de información o automatización, seleccionando el método de ingeniería y las herramientas más adecuadas de acuerdo a cada caso.
Alta
c. (C3)  Emplear los principales algoritmos de búsqueda en espacios de estados en la resolución de problemas del mundo real.
e
Maneja adecuadamente las herramientas informáticas de última generación, para el almacenamiento, procesamiento, y transmisión de  datos e información.
Media
****
f
Integra grupos de trabajo profesional y multidisciplinarios en la solución de problemas relacionados a su competencia.
*****
****
g
Demuestra comportamiento ético en su trabajo, así como conocimientos de la legislación relacionada al campo de profesión.
*****
****
h
Comunica efectivamente, de forma oral, escrita o digital, información sobre su trabajo, en idioma español o en un idioma extranjero.
*****
****
i
Participar en actividades de capacitación, así como cursos de formación continua  que le sirvan de actualización profesional
*****
****
j
Identifica los aspectos actuales de su entorno, no solo de su profesión sino también en los campos social, cultural y económico.
*****
****
k
Transmite los conocimientos y experiencias profesionales, mediante la enseñanza en capacitación, cursos de formación o en todo el proceso educativo.
*****
****


10.     EVALUACIÓN DEL CURSO.

PARÁMETROS DE EVALUACIÓN
TEMÁTICA
NÚMERO DE INSTRUMENTOS DE EVALUACIÓN
Exposiciones u Otros
1,2,3,4
4
Trabajo Grupal
1,2,3
3
Trabajo de Investigación
1
1
Lecciones Escrita
1,2
2
Evaluación final

1



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


Docente:
Ing. Hiraida Santana.
Coordinador de Año:

Auditor/a (Par  Académico):


Fecha:
Mayo del 2014.
Fecha:
Fecha:
Firma:

Firma:
Firma: