lunes, 19 de mayo de 2014

INTERESANTE

CREAN EN CINVESTAV LENTES CON INTELIGENCIA ARTIFICIAL PARA INVIDENTES


Con tecnología que conjuga técnicas de geometría computacional, inteligencia artificial, de geoposicionamiento y de ultrasonido, entre otras, científicos del Centro de Investigación y de Estudios Avanzados (Cinvestav) Unidad Guadalajara realizan un dispositivo para ayudar a las personas con debilidad visual o ceguera a desplazarse con mayor facilidad.
Este proyecto, desarrollado en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación, inició de manera formal en 2009, y a menos de cinco años creó un prototipo a punto de transferirse a la empresa jalisciense de tecnología Qualtop, señaló el doctor Eduardo José Bayro Corrochano, líder del proyecto.
El dispositivo de navegación consta de una gafa con cámaras estero-sensores de sonido, tectología de geoposicionamiento GPS y una Tablet, que ayuda a la persona con ceguera a guiarse en su dirección a un punto específico y a evitar chocar contra obstáculos estáticos o en movimiento, además de reconocer billetes de diferentes denominaciones o color de ropa.
El experto, quien también desarrolló el primer robot humanoide de bajo costo en México, llamado Mexone, comentó que fue a partir de avances obtenidos durante sus investigaciones en robótica que consideró emplear los algoritmos de visión estereoscópica para utilizarlos en un dispositivo que guie a personas con discapacidad visual.
La idea surgió a partir de una tesis de doctorado en el Cinvestav Unidad Guadalajara sobre el uso de visión estereoscópica en lentes dirigidos a personas con ceguera. Para ello, los investigadores se acercaron a la Escuela para Niñas Ciegas de Guadalajara A.C., que atiende este tipo de problemática, a fin de conocer las necesidades de los discapacitados visuales.
Fue después del apoyo financiero del Consejo Nacional de Ciencia y Tecnología en 2012 y 2013 cuando pudieron acelerar el desarrollo del lente, configurar del hardware, adaptar los procesadores y probar diferente tipo de sensores empleados en el dispositivo.
“Actualmente tenemos un prototipo liviano, ergonómicamente aceptable ya que casi se ve como una gafa normal y puede trabajar en tiempo real y con baterías que duran aproximadamente cuatro horas de uso continuo. Esperamos tener a más tardar en agosto próximo un prototipo comercial, y a principios de 2015 poderlo comercializar”, expuso Bayro Corrochano, quien también es miembro de la Academia Mexicana de Ciencias.
Según estimaciones del investigador del Cinvestav Unidad Guadalajara, el producto comercial tendría un costo que oscilaría entre mil y mil 500 dólares (13 mil a 19 mil 500 pesos mexicanos), y constaría de la gafa con los sensores y una computadora o tablet donde esté almacenado el software y desde donde una voz dará las indicaciones.
A pesar de que a nivel mundial existan dispositivos similares, a decir de Bayro Corrochano, el desarrollo del Cinvestav Unidad Guadalajara conjuga algoritmos nuevos y tecnología que lo hace único. Por ejemplo, el uso de técnicas de ultrasonido para detectar obstáculos y aquellos translúcidos, como el vidrio, o el empleo de inteligencia artificial (machine learning) con el objetivo de reconocer lugares, letreros y objetos. Estas gafas son útiles también para aquellos de vista débil, ya que ayudan a mejorar la percepción.
El proyecto ha generado dos patentes ante del Instituto Mexicano de Propiedad Industrial, por lo que sus desarrolladores están en busca de inversores interesados en participar en su producción a gran escala.



http://www.invdes.com.mx/tecnologia-mobil/4531-crean-en-cinvestav-lentes-con-inteligencia-artificial-para-%20%20invidentes

EJERCICIOS DE 1.1 Y 1.2. Capitulo 1

Se nos presenta el siguiente árbol familiar:
se puede representar en Prolog con el siguiente programa :
progenitor( pamela, roberto).
progenitor( tomas, roberto).
progenitor( tomas, elizabeth).
progenitor( roberto, ana).
progenitor( roberto, patricia).
progenitor( patricia, jaime).
Ejercicios.
1. Asumiendo las relaciones definidas en el ejemplo, ¿qué contestará Prolog a las
siguientes preguntas?
a). ?- progenitor( jaime, X).
False, pues Jaime no es progenitor de nadie.
b). ?- progenitor( X, jaime).
Solo si X=patricia
c). ?- progenitor( pamela, X), progenitor( X, patricia).
Solo si X=roberto, pues el progenitor de patricia es Roberto y el progenitor de Roberto es pamela
 d). ?- progenitor( pamela, X), progenitor( X, Y), progenitor(Y,jaime).
Solo si Y= patricia, pues el progenitor de Jaime es patricia, entonces como ya tenemos a Y, entonces X=roberto, pues el progenitor de patricia es Roberto y el progenitor de Roberto es pamela.

2. Formule en Prolog las siguientes preguntas acerca de la relación progenitor:
a). ¿ cómo se llama el progenitor de patricia ?
?- progenitor( X, patricia).
b). ¿ tiene elizabeth algún hijo ?
?- progenitor( elizabeth, X).
c). ¿ cómo se llama el abuelo de patricia ?
?- progenitor( Y, patricia) , progenitor( X, Y).
?- progenitor( X, Y) , progenitor( Y, patricia).


PROLOG


jueves, 1 de mayo de 2014

FEEDLY



¿QUE ES Y COMO USARLO?







Tecnicas de Busqueda en la Inteligencia artificial


¿Qué son las técnicas de búsqueda y cuáles son sus elementos?
Las técnicas de búsqueda son una serie de esquemas de representación del conocimiento, que mediante diversos algoritmos nos permite resolver ciertos problemas desde el punto de vista de la I.A.
Los elementos que integran las técnicas de búsqueda son:
  - Conjunto de estados: todas las configuraciones   posibles en el dominio.
  - Estados iniciales: estados desde los que partimos.
  - Estados finales: las soluciones del problema.
  - Operadores: se aplican para pasar de un estado a   otro.
- Solucionador: mecanismo que nos permite   evolucionar de un estado a otro mediante un   algoritmo aplicando los siguientes pasos:
  1.  Elegir el estado a explorar
  2. Establecer un operador que trabaje sobre el   estado elegido en el paso 1
  3. Comprobar si el resultado obtenido es un estado   final (es una solución del problema). Sino ir al paso 1.
Tipos de búsqueda en I.A.
  • Búsqueda a ciegas o de generación y prueba
  • Búsquedas Heurísticas
  • Busque por Escalada simple
  • Búsqueda Por Máxima pendiente
  • Búsqueda por primero mejor
Tipos de solucionadores
Un buen solucionador será aquel que realice su función a bajo coste según los siguientes parámetros:
  - Complejidad temporal: tiempo empleado en obtener la   solución
  - Complejidad espacial: cantidad de recursos necesarios   para obtener la solución. Por ejemplo: memoria.
La explosión combinatoria es un fenómeno que hace que el problema no se pueda abordar computacionalmente.
 Para decidir como contestar a las preguntas del solucionador podemos usar dos tipos de búsqueda:
  1.-Búsqueda ciega:
  - Se hace crecer el árbol de forma sistemática
  - No se realiza análisis entre el estado   obtenido y la solución.

Ø Sólo utiliza información acerca de si un estado es o no objetivo para guiar su proceso de búsqueda.
Antes de explicar los tipos de búsqueda ciega, convendría dar una serie de definiciones:
ØExpandir un nodo: obtener los posibles hijos de un nodo a partir de la aplicación de los distintos operadores sobre él.
ØNodo cerrado: Se han aplicado todos los posibles operadores sobre él, obteniéndose todos sus posibles hijos.
ØNodo abierto: No han actuado todos los posibles operadores, con lo que podrían obtenerse nuevos hijos aplicando los operadores restantes.
ØTIPOS DE BÚSQUEDA CIEGA:
Ø Búsqueda en amplitud.
Ø Búsqueda en profundidad.
Ø Búsqueda en profundidad progresiva.
Ø Búsqueda bidireccional.

  2.- Búsqueda heurística:
  - El crecimiento del árbol se hace inyectando   conocimiento.
  - Este conocimiento permite calcular la   distancia entre el estado obtenido y el estado   final.
•Las técnicas de búsqueda heurística usan el conocimiento del dominio para adaptar el solucionador y, de esta manera, éste sea más potente y consiga llegar a la solución con mayor rapidez. Por tanto, estas técnicas utilizan el conocimiento para avanzar buscando la solución al problema.
• Definiciones:
- Costo del camino: coste necesario para ir del nodo raíz al nodo meta por dicho camino.
- Costo para hallar la solución: coste necesario para encontrar el camino anteriormente definido.
-Potencia heurística: capacidad de un método de exploración para obtener la solución con un coste lo más bajo posible.
Estrategias de búsqueda heurística
Tipos:
• Estrategias tentativas: aquellas en las que se puede abandonar la exploración de una rama y pasar a explorar otra en cualquier momento del problema.
• Estrategias irrevocables: aquellas en las que no se puede abandonar la exploración de la rama por la que se comenzó.
•Métodos:
• Gradiente
• Primero el mejor
• Búsqueda en haz
• Algoritmo A


CONCLUSIÓN:

Yo considero que las técnicas de búsqueda son muy importante en la I.A., ya que gracias a ellas se puede dar solución a una problema a través de un programador. y debemos tomar en cuenta que para decidir como contestar a las preguntas del solucionador podemos usar dos tipos de búsqueda: la ciega y la heuristica, que son en las que nosotros nos enfocamos.
Saludos.




referencias:





sábado, 29 de marzo de 2014

LA HEURÍSTICA Y EL PROBLEMA DEL AGENTE VIAJERO

ENUNCIADO:



Un agente viajero, partiendo de su ciudad de origen, debe visitar exactamente una vez cada ciudad de un conjunto de ellas (previamente especificado) y retornar al punto de partida. Un recorrido con estas características, es llamado dentro de este contexto un tour. El problema consiste en encontrar el tour para el cual la distancia total recorrida sea mínima. Se asume que se conoce, para cada par de ciudades, la distancia entre ellas.
La primera solución reportada para resolver el problema del Agente Viajero fue en 1954, cuando George Dantzig, Ray Fulkerson, y Selmer Johnson  publicaron la descripción de un método de solución del PAV (Problema del Agente Viaje o sus siglas en inglés TSP – Travel Sailsman Problem) titulado “Solutions of a large scale traveling salesman problem“ (Soluciones de gran escala para el problema del agente viajero) para resolver una instancia de 49 ciudades donde un agente viajero desea visitar un conjunto de ciudades, asignándoles un costo por visitar ciudades contiguas (distancia de traslado entre dos ciudades). Para esta solución se propusieron 2 condiciones: regresar a      la misma ciudad de la cual partió y no repetir ciudades con el objetivo de encontrar una ruta o un camino con el menor costo posible.

Por ejemplo:
Si tenemos 3 nodos (a, b y c) por visitar, entonces tendríamos una función de combinaciones sin repetición c(3,2), es decir, tendríamos 6 posibles soluciones: abc, acb, bac, bca, cab, cba, para el caso de 4 nodos tendríamos 12 combinaciones, para 10 nodos tendríamos 90  combinaciones, para 100 ciudades tendríamos 9,900 combinaciones y así sucesivamente. Como ejemplo en el problema del Ulises de Homero que intenta visitar las ciudades descritas en la Odisea exactamente una vez (16 ciudades) donde existen múltiples conexiones entre las diferentes ciudades, Grötschel y Padberg (1993) llegó a la conclusión de que existen 653,837’184,000 rutas distintas para la solución de este problema.

ALGORITMOS PARA LA SOLUCIÓN DEL TSP : HERUSTICA Y METAHERUSTICA
ü  Heurísticas de Propósito Especial
 Empezaremos describiendo algunas heurísticas de propósito especial que han sido propuestas para resolver el TSP. Se llaman de propósito especial, porque explotan la estructura y características particulares de cada problema.

La primera familia de esta clase de heurísticas que describiremos pertencen a las heurísticas de tipo miope (greedy en inglés), son llamadas así porque sólo se preocupan por hacer lo mejor que pueden localmente, sin ver más allá de un cierto entorno muy cercano.

(a) El vecino más cercano: Se trata de un procedimiento constructivo, se parte de elegir un vértice inicial, llamémoslo j1. Una vez seleccionado, mediremos la distancia que hay de este vértice a los restantes, y elegiremos ahora aquél cuya distancia al vértice inicial sea la mínima (es decir elegimos al vecino más cercano), y lo llamaremos j2. De la misma forma, construiremos una trayectoria j1, j2, j3,…jk, jk+1, …,jn, donde el vértice jk+1 se elige tomando la mínima distancia que hay desde jk hasta cada uno de los vértices que sean distintos de los ya elegidos j1, j2, j3, jk. Al terminar, se debe de agregar el arco que va del vértice jn., hasta el vértice j1. Con esto habremos completado el tour. Esta heurística tiene una ventaja en las primeras selecciones, sin embargo, el problema que presenta es que en los últimos pasos puede elegir aristas de longitud muy grande, especialmente en la última.

(b) La inserción más cercana: Este procedimiento es también constructivo, pero en contraste con el anterior, en el cual se tiene un camino, y sólo al final se completa un tour, aquí tenemos subtours, los cuales van creciendo hasta completar un tour que abarque todos los vértices. Iniciemos con un subtour, al cual llamaremos T, queremos ahora insertar el nodo “más cercano” a este subtour para ampliarlo. Así que examinemos primero todos los nodos j que no estén aún incluidos en T.y vamos a definir para estos nodos, su distancia a T de la siguiente manera: d( j,T) es la distancia mínima que hay desde el nodo j a cualquiera de los nodos que pertenecen a T. Ordenamos las distancias calculadas de menor a mayor, y llamemos j* al nodo que se encuentra al principio de esta lista, este será el nodo “más cercano” a T. Vamos ahora a seleccionar dentro de T al nodo que se encuentre “más cerca” de j*, esto es, medimos la distancia desde j* a cada uno de los nodos de T, y llamaremos k* aquel nodo dentro de T, cuya distancia a j* sea la menor de todas.
Ampliaremos ahora el subtour insertando a j* entre k* y alguno de sus dos vecinos en T, esto es, si (k1, k*) y (k*, k2) son dos aristas de T y la distancia de j* a k1, es menor o igual que la distancia de j* a k2, entonces j* se inserta entre k1 y k*. El proceso terminará cuando se haya construido un tour completo. Como en el caso anterior, no se puede garantizar que se produzca una buena solución.

ü  Metaheurísticas
Las metaheurísticas son una clase de métodos de aproximación, que se diseñan para atacar problemas difíciles para los cuales las heurísticas de propósito especial han fracasado en dar resultados efectivos y eficientes. Las metaheurísticas proporcionan marcos generales que permiten crear nuevos híbridos combinando diferentes conceptos derivados de las heurísticas clásicas, la inteligencia artificial, la evolución biológica, los sistemas neuronales, la mecánica estadística y el psicoanálisis freudiano. Estas familias de enfoques incluyen, pero no están limitadas a algoritmos genéticos, GRASP, redes neuronales, búsqueda tabú y recocido simulado.
El método metaheurístico que emplearemos aquí, Búsqueda Tabú, fue propuesto por Fred Glover en 1986, y está basado en el psicoanálisis freudiano.
 Iniciaremos describiendo qué es un método de búsqueda local. Se trata de un método iterativo el cual da inicio desde una solución arbitraria, el procedimiento consiste en explorar una vecindad previamente definida para cada punto del espacio de soluciones y elige una nueva solución dentro de tal vecindad, la cual mejora el valor que se tiene a mano. La búsqueda termina cuando se alcanza una solución tal que es la mejor dentro de la vecindad predefinida, esto es ya no puede seguirse mejorando. A esta solución se le llama un mínimo local. En muchas ocasiones, este mínimo local será la solución óptima del problema, sin embargo, no podemos esperar que siempre suceda esto. Al contrario es plausible esperar que este mínimo local se encuentre lejos de la solución óptima del problema.
 En el caso particular del TSP, un método de búsqueda local sencilla, es el llamado 2-opt. Este consiste en eliminar del tour un par de aristas que no sean adyacentes, y reemplazarlas con el único par de aristas con el cual se puede formar nuevamente un tour. Éste se ilustra en la siguiente figura.
(a) Solución inicial; (b) Eliminación de dos aristas: (2,3) y (5,4);
(c) Nuevo tour sustituyendo con las aristas (2,5) y (3,4)
 TS guía un procedimiento de búsqueda local para continuar más allá de óptimos locales, esto es al no poder seguir mejorando la solución, se permite tomar otra solución aún cuando el valor no mejore, sino que se degrade, esto permite salir del óptimo local encontrado, pero al mismo tiempo se corre el peligro de caer en un ciclo, de mejorar-empeorar la solución, para evitar esto, se emplea una estrategia que modifica las vecindades a medida que la búsqueda avanza. TS utiliza estructuras de memoria para determinar esta vecindad modificada, las soluciones permitidas se determinan identificando soluciones encontradas dentro de un horizonte especificado. En nuestro ejemplo, dada una solución particular, una vez suprimido un par de aristas del tour, estas dos aristas no pueden formar parte del tour por un determinado número de iteraciones, este número de iteraciones se conoce como la permanencia tabú. Simétricamente cuando un par de aristas se insertan en un tour, no podrán ser suprimidas durante un número de iteraciones. Si la permanencia tabú se elige de manera adecuada, la búsqueda podrá continuar más allá de los óptimos locales sin caer en ciclos, y eventualmente alcanzar, si no el óptimo global del problema, sí soluciones que estén cerca de él.

Conclusión
Este problema se me hace muy interesante, pues por lo que he investigado es muy complejo para su resolución cuando este se generaliza. En mi opinión la AI  es una gran herramienta para llegar a la solución, a través de sus programas, pero hay que tomar en cuenta que esto no se llevaría a cabo sin primero tomar en cuenta la heurística que hay detrás de ella, para así poder plasmarlo en un operador.
Referencias:
http://yalma.fime.uanl.mx/~roger/work/Papers/article/article-inge-2000.pdf

http://www.uaeh.edu.mx/scige/boletin/tlahuelilpan/n3/e5.html

 

PROBLEMAS DE ESPACIO DE ESTADOS EN LA INTELIGENCIA ARTIFICIAL



La resolución de problemas es una capacidad que consideramos inteligente. Somos capaces de resolver problemas muy diferentes.
Un problema típico de la Inteligencia Artificial consiste en buscar un estado concreto entre un conjunto determinado, al que se le llama espacio de estados.
El objetivo es que un programa también sea capaz de resolverlos.

Resolución de Problemas
Deseamos definir cualquier tipo de problema de manera que se pueda
resolver automáticamente
Necesitamos:
ü  Una representación común para todos los problemas
ü  Algoritmos que usen alguna estrategia para resolver problemas definidos en esa representación común
ü
Definición de un Problema
Si abstraemos los elementos de un problema podemos identificar:
ü  Un punto de partida
ü  Un objetivo a alcanzar
ü  Acciones a nuestra disposición para resolver el problema
ü  Restricciones sobre el objetivo
ü  Elementos que son relevantes en el problema definidos por el tipo de
ü  dominio
ü
Representación de problemas

Existen diferentes formas de representar problemas para resolverlos de manera automática
ü  Representaciones generales
*Espacio de estados: un problema se divide en un conjunto de pasos de resolución desde el inicio hasta el objetivo
*Reducción a subproblemas: un problema se puede descomponer en una jerarquía de subproblemas
ü  Representaciones para problemas específicos
*Resolución de juegos
*Satisfacción de restricciones
Representación de problemas: Estados
*Podemos definir un problema por los elementos que intervienen y sus relaciones
*En cada instante de la resolución de un problema esos elementos tendrán unas características y relaciones específicas
*Denominaremos Estado a la representación de los elementos que describen el problema en un momento
*Distinguiremos dos estado especiales el Estado Inicial (punto de partida) y el Estado Final (objetivo del problema)
*¿Que incluir en el estado?
Modificación del estado: operadores
Para poder movernos entre los diferentes estados necesitamos operadores de transformación
*Operador: Función de transformación sobre la representación de un estado que lo convierte en otro estado
Los operadores definen una relación de accesibilidad entre estados
Representación de un operador:
ü  Condiciones de aplicabilidad
ü  Función de transformación
*¿Que operadores? ¿Cuantos? ¿Que granularidad?
ESPACIO DE ESTADOS
Los estados y su relación de accesibilidad conforman lo que se denomina espacio de estados
Representa todos los caminos que hay entre todos los estados posibles de un problema
Podría asimilarse con un mapa de carreteras de un problema
La solución de nuestro problema esta dentro de ese mapa
SOLUCIÓN DE UN PROBLEMA EN ESPACIO DE ESTADOS
ü  Solución: Secuencia de pasos que llevan del estado inicial al final (secuencia de operadores) o también el estado final
ü  Tipos de solución: una cualquiera, la mejor, todas.
ü  Coste de una solución: Gasto en recursos de la aplicación de los operadores a los estados. Puede ser importante o no según el problema y que tipo de solución busquemos
DESCRIPCIÓN DE UN PROBLEMA EN ESPACIO DE ESTADOS

ü  Definir el conjunto de estados del problema (explícita o implícitamente)
ü  Especificar el estado inicial
ü  Especificar el estado final o las condiciones que cumple
ü  Especificar los operadores de cambio de estado (condiciones de aplicabilidad y función de transformación)
ü  Especificar el tipo de solución:
*La secuencia de operadores o el estado final
*Una solución cualquiera, la mejor (definición de coste), . . .

Ejemplo: N reinas


BÚSQUEDA EN UN ESPACIO DE ESTADOS
Árbol de búsqueda / Grafo explícito

CONCLUSIÓN
Este escrito es una breve recompilacion de algunos conceptos básicos que yo considero se deben conocer acerca de los problemas de espacio de estados en la inteligencia artificial.
Dejo este link que encontré en la red, de ahí tome algunas percepciones que he publicado y en mi opinion viene bien explicado todo acerca del tema. Vienen otros conceptos como:
ü  Búsqueda en el espacio de estados
ü  Estructura del espacio de estados
ü  Algoritmo Básico
ü  Características de los algoritmos
ü  Algoritmo General de Búsqueda
ü  Tipos de algoritmos
ü  Búsqueda en Anchura Prioritaria
ü  Búsqueda en Profundidad Prioritaria
ü  Búsqueda en Profundidad Limitada
ü  ID (iterative deepening): profundidad iterativa
ü  ID (iterative deepening)
ü  Búsqueda en profundidad iterativa
ü  Profundidad Iterativa

Saludos!