lunes, 29 de mayo de 2017

Sistemas Expertos

INTRODUCCIÓN
Se considera a alguien un experto en un problema cuando este individuo tiene conocimiento especializado sobre dicho problema. En el área de los (SE) a este tipo de conocimiento se le llama conocimiento sobre el dominio. La palabra dominio se usa para enfatizar que el conocimiento pertenece a un problema específico.

CONCEPTO Y CARACTERÍSTICAS DE LOS S.E

Se puede decir que los Sistemas Expertos son el primer resultado operacional de la Inteligencia artificial, pues logran resolver problemas a través del conocimiento y raciocinio de igual forma que lo hace el experto humano.



CARACTERÍSTICAS


  • Pueden explicar su razonamiento o decisiones sugeridas.
  • Puede mostrar un comportamiento inteligente.
  • Puede obtener conclusiones de relaciones complejas.
  • Puede proporcionar conocimientos acumulados.

¿PORQUE UTILIZAR UN SISTEMA EXPERTO?

  • Las  personas con poca experiencia pueden resolver problemas que requieren un conocimiento formal especializado gracias a un sistema experto.
  • Pueden obtener conclusiones y resolver problemas de forma más rápida que los expertos humanos.
  • Esta comprobado que los sistemas expertos tienen al menos, la misma competencia que un ser humano.

VENTAJAS Y DESVENTAJAS

VENTAJAS

  • Los conocimientos de un sistema experto pueden ser copiados y almacenados fácilmente, siendo muy difícil la pérdida de éstos.
  • Otra ventaja de los sistemas expertos sobre los humanos es que el experto computarizado siempre está a pleno rendimiento.
  • Una última ventaja de un sistema experto está en que después de que un experto computarizado exista, usted puede crear un nuevo experto simplemente copiando el programa de una máquina a otra.

DESVENTAJAS


  • Creatividad: los humanos pueden responder creativamente a situaciones inusuales, los sistemas expertos no pueden.
  • Experiencia Sensorial: los humanos tienen un amplio rango de disponibilidad de experiencia sensorial. Y los sistemas expertos actualmente dependen de una entrada simbólica.
  • Degradación: los sistemas expertos no son bueno para reconocer cuando no existen respuestas o cuando los problemas están fuera de su área.


viernes, 26 de mayo de 2017

Misioneros y Canibales

Presentación:

El presente trabajo busca desarrollar y implementar la solución al problema de los de Misioneros y Caníbales, usando el lenguaje prolog y la estructura estructura de grafos con búsqueda en profundidad:

Problema:




Solución con grafos del problema:





Pseudocódigo:



Gestión de búsqueda empleada 

ç



Implementación en prolog:



JAVA:








domingo, 14 de mayo de 2017

Técnica de Búsqueda Ciega



INTRODUCCIÓN:

Seguimos estudiando esas técnicas que hacen que nuestras búsquedas sean posibles para la aplicación en la Inteligencia Artificial, en las publicaciones anteriores se habían tratado sobre técnicas de búsqueda como la heuristica, el sistemas de producción todas estas su fin ultimo es buscar, que lo que se le indique, esto es aplicado ya aun problema real, para este caso las llamadas búsqueda ciega solo utiliza información de si el estado donde se aya es objetivo o no esto le sirve para poder       guiar su proceso de búsqueda.

BÚSQUEDA CIEGA:
Conocida como búsqueda no informada, es decir solo conoce de donde procede pero no considera a donde va ni la utilidad, ventaja, distancias, simplemente recorre los todos los nodos de un árbol por así decirlo existen entre estas técnicas llamadas búsqueda en anchura y amplitud. 

De manera general la descripción de cada uno de ellos es la siguiente


BÚSQUEDA EN ANCHURA: Esta técnica su fin es recorrer todos los nodos del mismo nivel que de donde se encuentra como todo siempre la posición sera el inicio y como final el objetivo buscado, por ejemplo


como se representa en la imagen, cada figura de color verde representa una posición o un nodo, entonces según la definición sera recorrer todos las posiciones del mismo nivel de donde se encuentre, justo en ese momento hasta encontrar el objetivo y cada que se encuentre en un estado se preguntara si es el objetivo sino se ara un avance si hay mas nodos o un retroceso. 

Ventajas: si el problema tiene una solución este procedimiento garantiza el encontrarla. Si hubiera varias soluciones se obtiene la de menor coste (la óptima), es decir, la que requiere un menor número de pasos (si consideramos un coste uniforme de aplicación de los operadores).

Desventajas: si el nivel de profundidad asociado a la solución es significativamente menor que el factor de ramificación se expandirían demasiados nodos inútilmente. Por otro lado la principal desventaja de este método es el espacio de almacenamiento requerido. Esto lo hace prácticamente inviable para problemas complejos, como suelen ser los del mundo real.
ver mas.

  • ALGORITMO BÚSQUEDA EN ANCHURA:
    Sea G = (V, A) un grafo conexo, V’ = V un conjunto de vértices, A’ un vector de arcos inicialmente vacío y P un vector auxiliar inicialmente vacío:
  1. Se introduce el vértice inicial en P y se elimina del conjunto.
  2. Mientras V’ no sea vacío repetir los puntos 3 y 4. En otro caso parar.
  3. Se toma el primer elemento de P como vértice activo.
  4. Si el vértice activo tiene algún vértice adyacente que se encuentre en V’:
Se toma el de menor índice.
Se inserta en P como último elemento.
Se elimina de V’.
Se inserta en A’ el arco que le une con el vértice activo.
Si el vértice activo no tiene adyacentes se elimina de P.


BÚSQUEDA EN PROFUNDIDAD: Se refiere en buscar esta vez no por niveles sino según sea el camino que se aya elegido recorrerlo hasta que ya no existan mas nodos al final, es decir en expandir un único camino desde la raíz hasta el ultimo en esa rama si ya no existen mas nodos retrocede y selecciona otro camino a los siguientes nodos por descubrir.
por ejemplo:

En la imagen se muestra la forma de búsqueda en profundidad se recorre cada nodo buscando el objetivo en cada nodo si no esta el objetivo se retrocede y se busca en una nueva rama de nodos seguidamente hasta conseguir el final de cada rama.

Ventajas: la principal ventaja de esta algoritmo radica en el reducido valor de su complejidad espacial. Cuando existen múltiples soluciones posibles la eficiencia del algoritmo aumenta.

Desventajasla dificultad estriba en el tiempo requerido. El algoritmo puede dedicarse a recorrer un camino demasiado largo que no conduzca a ninguna solución. Es más, si no se guarda constancia de los nodos que forman el camino recorrido se podría caer en ciclos y el proceso no acabaría.   El problema por tanto es determinar cuál debe ser lp.  Si éste es inferior a la longitud real del camino de la solución, ésta nunca se encontraría, y si es mucho mayor sería ineficiente. Esta es la razón por la que  lp  debería llamarse límite de exploración.

  • ALGORITMO BÚSQUEDA EN PROFUNDIDAD:
        Sea G = (V, A) un grafo conexo, V’ = V  un conjunto de vértice, A’un vector de arcos inicialmente vacío y P un vector auxiliar inicialmente vacío:
  1. Se introduce el vértice inicial en P y se elimina del conjunto V’.
  2. Mientras V’ no sea vacío repetir los puntos 3 y 4. En otro caso parar.
  3. Se toma el último elemento de P como vértice activo.
  4. Si el vértice activo tiene algún vértice adyacente que se encuentre en V’:
Se toma el de menor índice.
Se inserta en P como último elemento.
Se elimina de V’.
Se inserta en A’ el arco que le une con el vértice activo.
Si el vértice activo no tiene adyacentes se elimina de P.

CONCLUSIONES:

Las búsquedas para las aplicaciones de la IA son tan relevantes que para poder aplicarlas en un problema real se necesita de la compresión de cada uno de las técnicas de búsqueda, mi manera de comprender es que por cada problema real se necesita una cierta aplicación de las técnicas que hasta ahorita hemos estado haciendo mencion, cada una de ellas tiene ventajas y desventajas por el uso de memoria algunas mas necesitan recolectar mas información para poder ejecutar de manera optima su búsqueda, consiguiendo así resolver problemas que requieren de cierta inteligencia los mas reflejados son los juegos de ajedrez que necesitan algoritmos de búsqueda de soluciones optimas que lo llevaran a la victoria, como el que se le aplica a un artefacto que de tal forma pueda resolver un laberinto necesita información para poder salir, eso se logra a través de la recolección de caminos y rutas de forma que le permitan llegar al objetivo, o como los juegos donde se logra obtener el siguiente salto del usuario para ellos el algoritmo debe estar ya preparado lógicamente que averigüe cual sera el siguiente movimiento y muchas mas aplicaciones en la Inteligencia Artificial.  

REFERENCIAS:

http://www.dma.fi.upm.es/java/matematicadiscreta/busqueda/
            http://www.nebrija.es/~cmalagon/ia/transparencias/busqueda_general_ia.pdf
            http://blog.vidasconcurrentes.com/programacion/busqueda-en-profundidad-y-busqueda-en-anchura/

Búsquedas IA - Resumen

 

Búsqueda Ciega(Sin información)

  • Sólo realizaremos una búsqueda a ciegas cuando no exista información específica cuando no exista información específica sobre el problema que nos ayude a determinar cuál es el mejor operador que se debería aplicar en cada momento o el mejor nodo por el que continuar la búsqueda.

  • Se pueden utilizar distintos criterios para explorar el espacio de búsqueda, p.ej. LIFO (en profundidad) o FIFO (en anchura).


Búsqueda Informada(Con información)


  • En problemas es medianamente complejo, no obstante, tendremos que utilizar algún tipo de información para guiar nuestra búsqueda. 
Ejemplo: Para generar el grafo completo del juego del ajedrez (1047 estados), generando 3 billones de nodos por segundo y sin restricciones de memoria, tardaríamos unos 10^30   años en resolver el problema, ¡10^20 veces la edad estimada del universo!

Se pueden distinguir dos casos básicos: 
  • Información incluida en la descripción del propio conocimiento que tenemos del problema. p.ej. Uso de prioridades en los S.E.B.R. Uso de prioridades en los S.E.B.R.
  • Información especificada aparte de la descripción del conocimiento. p.ej. Uso de una función heurística que evalúa la Uso de una función heurística que evalúa la bondad de un estado del sistema:
                      f(estado) ∈ R






miércoles, 26 de abril de 2017

¿Que es un agente inteligente?

Agente Inteligente
Entidad capaz de percibir el entorno y de actuar sobre él. Es un software persistente con un propósito específico. ser autónomo, que habita en un entorno dinámico y complejo, en el que percibe y actúa de manera autónoma, alcanzando un conjunto de objetivos para el que fue diseñado.

Es un programa auto contenido que es capaz de controlar sus acciones y decisiones para alcanzar unos objetivos, basándose en su percepción del entorno.

Es un sistema que está situado y que forma parte de un determinado entorno, que percibe este entorno y que actúa en él continuamente y con su propia planificación, persiguiendo el objetivo de cambiar su propia percepción.

Características de los agentes inteligentes:
Los agentes tienen un punto de vista incompleto, pero esto no limita que se halle una solución (aproximada). Lo que se pretende en que la solución sea completa y consistente.

Los agentes se mueven dentro de un entorno “virtual” operando a través de un sistema.

Los agentes inteligentes dentro del entorno de software tendrán una función análoga a la que realizan los robots en el mundo real, de ahí el nombre de softbots (software robot).

Hoy en día se ha puesto de moda el nombre agente software. Al que se le aplican las definiciones dadas anteriormente, resaltando la condición de autonomía: Debe actuar autónoma-mente sin la intervención de seres humanos u otros sistemas y debe tener control sobre su estado interno y sobre su propio comportamiento.

     Control del entorno
ü  En la mayor parte de los dominios el agente sólo tendrá control parcial del entorno.
ü  Una misma acción realizada por el agente en diferentes ocasiones puede tener efectos distintos.
ü  Un agente debe estar preparado para fallar.

ü  Un agente dispone de un repertorio de acciones con sus correspondientes pre condiciones.

ü  Un agente debe estar preparado para decidir qué acción realizar para alcanzar sus objetivos de diseño.

Las arquitecturas de agentes son sistemas de toma de decisiones empotradas en un entorno.

     Tipos de entorno:
ü  Accesible / inaccesible.
ü  Determinista / in determinista.
ü  Episódico / no episódico.
ü  Estático / dinámico.
ü  Discreto / continuo

De acuerdo con su accionar sobre el entorno una agente inteligente se puede definir como: un sistema que está situado en un cierto entorno y que tiene capacidad de actuar autónoma mente de forma flexible en ese entorno para satisfacer sus objetivos de diseño.

     Flexibilidad:
ü Re actividad: capacidad de responder oportunamente a los cambios percibidos en el entorno.
ü  Pro-actividad: comportamiento dirigido por el objetivo.
ü  Habilidad social: capacidad de interacción con otros agentes para satisfacer sus propios objetivos (negociación y cooperación con agentes que persiguen otros objetivos).

Otras características de los agentes es la capacidad de razonamiento, la capacidad de aprendizaje, la movilidad, la honestidad, etc.

     Diferencias entre agentes y sistemas expertos (SE).
ü  Los SE no suelen interactuar directamente con el entorno (de ahí que algunos le llamaran sistema autista.
ü  Los SE suele diseñarse para tareas más complejas donde ellos tienen todo el control de las decisiones para ese dominio.
ü  Los SE no suelen cooperar entre sí.

     Ventajas de los agentes inteligentes:
ü  Facilitarles el trabajo a los usuarios
ü  Actuar como consultantes
ü  Servir de operadores en medios complejos

     Dificultades:
ü  Cómo conocer la información relevante o irrelevante
ü  Cómo agilizar la búsqueda
ü  Cómo evitar repetir una tarea realizada.
ü  Cómo habérselas con diferentes protocolos, formatos y sistemas de acceso a la información.

Sistemas Expertos

INTRODUCCIÓN Se considera a alguien un experto en un problema cuando este individuo tiene conocimiento especializado sobre dicho problem...