miércoles, 29 de noviembre de 2017

Agentes Inteligentes

Agentes Inteligentes:




Se considera a los Agentes Inteligentes como una pieza de software que ejecuta una tarea dada utilizando información recolectada del ambiente, para actuar de manera apropiada hasta completar la tarea de manera exitosa.

El software debe ser capaz de auto ajustarse basándose en los cambios que ocurren en su ambiente de forma tal que un cambio en las circunstancias producirá un resultado esperado. 

Los Agentes Inteligentes son racionales, es decir, hacen lo correcto. Lo correcto es lo que le permite al agente obtener el mejor desempeño.

Para evaluar el desempeño es necesario decidir cómo, que es el criterio que sirve para definir qué tan exitoso ha sido un agente en la consecución de los objetivos para el cual fue programado, ésta medida se establece como una norma por parte del diseñador y la comparación contra la misma, permite determinar la satisfacción de desempeño del agente; y cuándo medir dicho desempeño que se refiere al tiempo empleado en la realización de la tarea que se considere aceptable, dependiendo del ambiente de acción.

Los Agentes Inteligentes proporcionan una técnica para resolver problemas actuando en representación del usuario, para realizar diversas tareas tales como, búsqueda y filtraje de información, automatización de tareas, etc. Y en la actualidad son objeto de estudio por disciplinas como la psicología, sociología y en algunas otras ramas de las ciencias sociales.

Un agente inteligente, es una entidad capaz de percibir su entorno, procesar tales percepciones y responder o actuar en su entorno de manera racional, es decir, de manera correcta y tendiendo a maximizar un resultado esperado. Es capaz de percibir su medio ambiente con la ayuda de sensores y actuar en ese medio utilizando actuadores (elementos que reaccionan a un estímulo realizando una acción).

En este contexto la racionalidad es la característica que posee una elección de ser correcta, más específicamente, de tender a maximizar un resultado esperado. Este concepto de racionalidad es más general y por ello más adecuado que inteligencia (la cual sugiere entendimiento) para describir el comportamiento de los agentes inteligentes. Por este motivo es mayor el consenso en llamarlos agentes racionales.

Un agente inteligente puede ser una entidad física o virtual. Si bien el término agente racional se refiere a agentes artificiales en el campo de la Inteligencia Artificial, también puede considerarse agentes racionales a los animales incluido el hombre.

Los agentes inteligentes se describen esquemáticamente como un sistema funcional abstracto. Por esta razón, los agentes inteligentes son a veces llamado Agentes Inteligentes Abstractos (AIA) para distinguirlos de sus implementaciones del mundo real como sistemas informáticos, los sistemas biológicos, o de organizaciones. Algunas definiciones de agentes inteligentes hacen énfasis en su autonomía por lo que prefieren el término agente inteligente autónomo.

En Ciencias de la Computación el término agente inteligente puede ser usado para referirse a un agente de software que tiene algo de inteligencia, independientemente de si no es un agente racional por definición.




Sistemas Multi-agentes.


los sistemas Intencionales son todas y sólo aquellas entidades cuyo comportamiento puede ser explicado o predicho, al menos algunas veces, asumiendo una postura Intencional. I Interpretar del comportamiento de la entidad en cuestión (persona, animal u artefacto) asumiendo que se trata de un agente racional que gobierna su selección de acción considerando sus actitudes proposicionales. I Esto puede verse como una estrategia, de entre otras posibles, para explicar o predecir el comportamiento de un agente.

Pro-actividad. Las intenciones pueden motivar el cumplimiento de metas, son controladoras de la conducta.

Inercia. Las intenciones persisten, es decir, una vez adoptadas se resisten a ser revocadas. Sin embargo, no son irrevocables. Si la razón por la cual se creó la intención desaparece, entonces es racional abandonar la intención.

Intenciones futuras. Una vez adoptada una intención, ésta restringirá los futuros razonamientos prácticos, en particular el agente no considerará adoptar intenciones incompatibles con la intención previamente adoptada. Proveen un filtro de admisibilidad.
Áreas relacionadas con Agentes Inteligentes y los Sistemas Multiagentes.

·         El área de la Inteligencia
·         Artificial Las tecnologías
·         Las tecnologías de objetos
·         Los sistemas distribuidos
·         El cómputo paralelo
·         Las sociedades naturales

·         La sociología y psicóloga 



Referencias Bibliográficas:



El profesional de la información Revista internacional científica y profesional (1999)  http://www.elprofesionaldelainformacion.com/contenidos/1999/abril/agentes_inteligentes_definicion_y_tipologia_los_agentes_de_informacion.html

Agentes Inteligentes (Desconocido) 2017 https://www.uv.mx/aguerra/documents/2013-ia2-01.pdf

Agentes Inteligentes y Sistemas Multiagentes. Leonardo Garrido (2006) Centro de sistemas inteligentes http://newton.azc.uam.mx/mcc/01_esp/08_sitios/micai_06/TUTORIALS/06_GARRIDO_AGENTES.PDF

Sistema Multi-agente (Desconocido) 2017 https://es.wikipedia.org/wiki/Sistema_multiagente




lunes, 25 de septiembre de 2017

Computación Evolutiva


La computación evolutiva:

Es una rama de la computación emergente que engloba técnicas que simulan la evolución natural, y constituye un enfoque alternativo para abordar problemas complejos de búsqueda y aprendizaje a través de modelos computacionales de procesos evolutivos. Parte de un hecho observado en la naturaleza: los organismos vivos poseen una destreza consumada en la resolución de los problemas que se les presentan, y obtienen sus habilidades, casi sin proponérselo, a través del mecanismo de la evolución natural.

La evolución se produce, en casi todos los organismos, como consecuencia de dos procesos primarios: la selección natural y la reproducción (cruce). La evolución natural es un proceso de cambio sobre una población reproductiva que contiene variedades de individuos con algunas características heredables y en donde algunas variedades difieren en su aptitud (éxito reproductivo).

La computación evolutiva es una de las ramas de la Inteligencia Artificial que se aplica para la resolución de problemas de optimización combinatoria. La CE está inspirada en los mecanismos de evolución biológica propuestos por Darwin, Medel y Lamark.

Darwin propuso la "Selección natural de los más adaptados"
Medel propuso la "Teoría corpuscular de la herencia"
Lamark propuso la "Herencia de caracteres adquiridos".


Los algoritmos genéticos (AGs) junto con las estrategias evolutivas y la programación evolutiva constituyen un nuevo enfoque a la solución de numerosos problemas de optimización y búsqueda. Esta técnica está en el contexto de una nueva ciencia denominada computación evolutiva.
Se propone a los AGs como una técnica computacional que intenta imitar el proceso evolutivo de la naturaleza, para el diseño de sistemas artificiales adaptativos.

Computación Evolutiva y Optimización
Un problema de optimización requiere hallar un conjunto de parámetros de forma que se cumpla un cierto criterio de calidad que se quiere optimizar, es decir, maximizando o minimizando una cierta función de evaluación f(x) dada.

Los algoritmos evolutivos son especialmente útiles cuando nos encontramos con problemas difíciles o altamente irresolubles, como lo son aquellos caracterizados por una alta dimensionalidad, multimodalidad, fuerte no linealidad, no diferenciabilidad, presencia de ruido y cuando se trata con funciones dependientes del tiempo.

Algoritmos Evolutivos Este término es empleado para describir sistemas de resolución de problemas de optimización o búsqueda basados en el ordenador empleando modelos computacionales de algún mecanismo de evolución conocido como elemento clave en su diseño e implementación. Los algoritmos evolutivos trabajan con una población de individuos, que representan soluciones candidatas a un problema.

Esta población se somete a ciertas transformaciones y después a un proceso de selección, que favorece a los mejores. Cada ciclo de transformación y selección constituye una generación, de forma que después de cierto número de generaciones se espera que el mejor individuo de la población esté cerca de la solución buscada. Los algoritmos evolutivos combinan la búsqueda aleatoria, dada por las transformaciones de la población, con una búsqueda dirigida dada por la selección.

Los algoritmos evolutivos son especialmente útiles cuando nos encontramos con problemas difíciles o altamente irresolubles, como lo son aquellos caracterizados por una alta dimensionalidad, multimodalidad, fuerte no linealidad, no diferenciabilidad, presencia de ruido y cuando se trata con funciones dependientes del tiempo.

Características:
La característica fundamental de los algoritmos evolutivos radica en los métodos de generación de soluciones: se parte de un conjunto de soluciones iniciales y se van empleando un conjunto de operadores de búsqueda para ir refinando la solución final. Para realizar dicho refinamiento de las soluciones, se pueden utilizar técnicas clásicas Dcomo el seguimiento del gradiente (Hill Climbing) D complementadas con mecanismos biológicos de exploración: población de soluciones, operadores genéticos.

Los algoritmos bioinspirados modelan (de forma aproximada) un fenómeno existente en la naturaleza, constituyendo así una metáfora biológica para resolver problemas. Son algoritmos no determinísticos, que a menudo presentan, implícitamente, una estructura paralela (múltiples agentes), y son adaptativos (utilizan realimentación con el entorno para modificar el modelo y los parámetros). Algunos modelos de computación bioinspirados son:

Algoritmos evolutivos.
Redes neuronales.
Algoritmos inmunológicos
Algoritmos basados en inteligencia de enjambres (swarm intelligence) y dentro de ellos, los algoritmos basados en colonias de hormigas.

Estrategias Evolutivas:

Técnica desarrollada por Rechenberg y Schwefel y extendida por Herdy, Kursawe, Ostermeier, Rudolph, y otros, fue diseñada inicialmente con la meta de resolver problemas de optimización discretos y continuos, principalmente experimentales y considerados difíciles. Trabaja con vectores de números reales Dcon desviaciones estándarD que codifican las posibles soluciones de problemas numéricos.

 Utiliza recombinación o cruce (crossover aritmético), mutación y la operación de selección, ya sea determinística o probabilística, elimina las peores soluciones de la población y no genera copia de aquellos individuos con una aptitud por debajo de la aptitud promedio.
Programación Evolutiva:

Técnica introducida por Fogel y extendida por Burgin, Atmar y otros, inicialmente fue diseñada como un intento de crear inteligencia artificial. La representación del problema se realiza mediante números reales (cualquier estructura de datos), y emplea los mecanismos de mutación y selección. El procedimiento es muy similar a las estrategias evolutivas con la diferencia de que no emplea la recombinación, de tal forma que son denominadas en conjunto algoritmos evolutivos como una manera de diferenciarlas de los algoritmos genéticos.

Algoritmos Genéticos:

Modelan el proceso de evolución como una sucesión de frecuentes cambios en los genes, con soluciones análogas a cromosomas. Trabajan con una población de cadenas binarias para la representación del problema, y el espacio de soluciones posibles es explorado aplicando transformaciones a estas soluciones candidatas tal y como se observa en los organismos vivientes: cruce, inversión y mutación. Como método de selección emplean en mecanismo de la ruleta (a veces con elitismo).

Constituyen el paradigma más completo de la computación evolutiva ya que resumen de modo natural todas las ideas fundamentales de dicho enfoque. Son muy flexibles ya que pueden adoptar con facilidad nuevas ideas, generales o específicas, que surjan dentro del campo de la computación evolutiva. Además, se pueden hibridar fácilmente con otros paradigmas y enfoques, aunque no tengan ninguna relación con la computación evolutiva. Se trata del paradigma con mayor base teórica.

Programación genética:



Desarrollada por Koza, los individuos son programas o autómatas de longitud variable, descritos mediante Expresiones-S de LISP representadas habitualmente como árboles, y como operadores de variación emplea crossover y modificación, además de mecanismos de selección.



Referencias Bibliográficas:

-- D.Sc. Yván Jesús Túpac Valdivia (2013) Computarizan evolutiva, principios y aplicaciones, Recuperado el 23 de Septiembre de 2017, de http://www.ucsp.edu.pe/~ytupac/speaks/2013/CIS-DAY_CompEvolApp.pdf

-- Fernando Berzal. (s.f) Computación Evolutiva Departamento de ciencias de la Computación Recuperado el 23 de Septiembre de 2017, de http://elvex.ugr.es/decsai/iaio/slides/G1%20Evolutionary%20Computation.pdf

-- Alfonso Mateos Andaluz (N.I.A) Inteligencia de Redes de Comunicación, Algoritmos Evolutivos y Genéticos Recuperado el 23 de Septiembre de 2017, de http://www.it.uc3m.es/~jvillena/irc/practicas/estudios/aeag

-- Caparrini, F. S. (s.f.). Algoritmos Genéticos y Computación Evolutiva. Recuperado el 23 de Septiembre de 2017, de http://www.cs.us.es/~fsancho/?e=65

-- Coello, D. C. (s.f.). Introducción a la Computación Evolutiva. Recuperado el 24 de Septiembre de 2017, de http://posgrado.itlp.edu.mx/mcastro/CE/Introducci%F3n%20a%20la%20Computaci%F3n%20Evolutiva%20Coello/clase3-2011.pdf



miércoles, 6 de septiembre de 2017

Redes Semánticas

Una red semántico o esquema de representación en Red es una forma de representación de conocimiento lingüístico en la que los conceptos y sus interrelaciones se representan mediante un grafo. En caso de que no existan ciclos, estas redes pueden ser visualizadas como árboles. Las redes semánticas son usadas, entre otras cosas, para representar mapas conceptuales y mentales. 

En un grafo o red semántica los elementos semánticos se representan por nodos Dos elementos semánticos entre los que se admite se da la relación semántica que representa la red, estarán unidos mediante una línea, flecha o enlace o arista. Cierto tipo de relaciones no simétricas requieren grafos dirigidos que usan flechas en lugar de líneas.

Las redes son estructuras que cuentan con un patrón que las caracteriza y que les permite relacionar diversos nodos (los elementos que componen la red). la semántica, por otra parte, es aquello que está vinculado a la significación de los conceptos.

Están basadas en la idea de que los objetos o los conceptos pueden ser unidos por alguna relación. Estas relaciones se representan usando una liga que conecte dos conceptos. Los nodos y las ligas pueden ser cualquier cosa, dependiendo de la situación a modelar.

Las redes semánticas fueron originalmente desarrolladas para representar el significado o semántica de oraciones en inglés, en términos de objetos y relaciones. 

Actualmente, se utiliza el término redes asociativas (una forma más amplia) ya que no sólo se usa para representar relaciones semánticas, sino también para representar asociaciones físicas o causales entre varios conceptos u objetos.

Se denomina red semántica al esquema que permite representar, a través de un gráfico, cómo se interrelacionan las palabras. De esta forma, se grafican los saberes lingüísticos a través de un mapa conceptual. Otro nombre por el que se conoce este concepto es esquema de representación en red.

Existen dos formas posibles para representar una red semántica, que se definen a continuación: 

·   Un grafo: este concepto pertenece a las ciencias de la computación (también llamadas ciencias computacionales, combinan la computación y la teoría de la información) y las matemáticas, y se trata de un conjunto de elementos denominados nodos o vértices que se conectan a través de enlaces conocidos como arcos o aristas, gracias a los cuales es posible entablar relaciones binarias (se dan entre elementos de dos conjuntos y ofrecen pares ordenados que cumplen una determinada propiedad) entre dichos objetos;

Un árbol: cuando una red semántica no representa un ciclo, entonces es posible utilizar un árbol, que es un grafo en el que cualquier par de vértices debe estar conectado por un solo camino. Este sistema de relación también se conoce como árbol libre y si forma parte de un grupo, entonces se habla de bosque. El grafo presente en el árbol debe cumplir una serie de requisitos, como no tener ciclos y ser conexo (que cualesquiera dos vértices estén unidos por al menos un camino) hasta que se le quite cualquiera de sus aristas.

Historia

Los responsables de los primeros esquemas de representación formalizados fueron Quillian (1968) y Shapiro & Woddmansee (1971). Los esquemas de redes semánticas tienen una fundamentación psicológica muy sólida, por lo que se han realizado numerosos esfuerzos por llevar a cabo implementaciones importantes basadas en ellas.
Fue el primero en sugerir que la memoria humana puede modelarse mediante una red y proponer un modelo de recuperación de la memorización.

Las redes semánticas han sido muy utilizadas en IA para representar el conocimiento y por tanto ha existido una gran diversificación de técnicas. Los elementos básicos que encontramos en todos los esquemas de redes son:

- Estructuras de datos en nodos, que representan conceptos, unidas por arcos que representan las relaciones entre los conceptos.

Un conjunto de procedimientos de inferencia que operan sobre las estructuras de datos.
Básicamente, podemos distinguir tres categorías de redes semánticas:

·       -   Redes IS-A, en las que los enlaces entre nodos están etiquetados.
·       -  Grafos conceptuales: en los que existen dos tipos de nodos: de conceptos y de relaciones
·      -  Redes de marcos: en los que los puntos de unión de los enlaces son parte de la etiqueta del nodo.

En un grafo o red semántica los elementos semánticos se representan por nodos. Dos elementos semánticos entre los que se admite se da la relación semántica que representa la red, estarán unidos mediante una línea, flecha o enlace o arista. Cierto tipo de relaciones no simétricas requieren grafos dirigidos que usan flechas en lugar de líneas

·      -   Un Nodo es identificado por objeto
·     -    Nodo=Objeto
·     -    Donde el Objeto puede ser representado por:
·         Persona, Animales, Eventos, conceptos y atributos que identifican un objeto.

·   -    Los Nodos están unidos por arcos
·   -    Una Red Semántica es un conjunto de Nodos y Arcos
·  -  Una Red Semántica es una representación gráfica del conocimiento en la que existe una jerarquía de Nodos.

Nodos:
Representan:

·   -  Objetos Físicos: Ver y Tocar
·   -  Objetos Conceptuales: Hechos y Eventos
·   -   Descriptivos: Cualidades

Arcos:
Representan:
·         Elementos con su clase (ES-UN)
·         Parte con un todo (TIENE-UN)

ES UN: El cual usa para identificar que un cierto pertenece a una clase mayor de objeto.
TIENE-UN: Este tipo de arcos se utiliza para identificar que un cierto nodo tiene o pase unas ciertas características o atributo o propiedad.

·         Ventajas: Las ventajas de las redes semánticas son su potencia.

·         Desventajas: Las desventajas de las redes semánticas son su poca flexibilidad. 





Referencias Bibliográficas:

Leonardo Bernal Zamora. (29 de sept. de 2010). "Redes semánticas". Sep 2017, de UNAD - Universidad Nacional Abierta y a Distancia Sitio web: https://es.slideshare.net/leonardobernalzamora/redes-semanticas-5316154 

lunes, 28 de agosto de 2017

Sistemas Expertos

El término inteligencia artificial (IA) se refiere a la capacidad de emular las funciones inteligentes del cerebro humano. El empleo de la IA es variada y actualmente se utiliza principalmente en áreas de informática y la robótica, no obstante, se está extendiendo tanto en las ciencias sociales como ciencias empresariales. Asimismo, las redes neuronales artificiales y algoritmos genéticos son tecnologías cada vez más difundidas, principalmente en los campos de la investigación y la previsión del mercado. 

El nombre Sistema Experto deriva del término “sistema experto basado en conocimiento”. Un Sistema Experto es un sistema que emplea conocimiento humano capturado en una computadora para resolver problemas que normalmente requieran de expertos humanos. Los sistemas bien diseñados imitan el proceso de razonamiento que los expertos utilizan para resolver problemas específicos.

Es un sistema de información basado en el conocimiento que usa su conocimiento de un área de aplicación compleja y específica a fin de actuar como un consultor experto para los usuarios finales. Los sistemas expertos proporcionan respuestas sobre un área problemática muy específica al hacer inferencias semejantes a las humanas sobre los conocimientos obtenidos en una base de conocimientos especializados. 

Es una rama de la inteligencia artificial son sistemas informáticos que simulan el proceso de aprendizaje, de memorización, de razonamiento, de comunicación y de acción en consecuencia de un experto humano en cualquier rama de la ciencia.
Características

Para que un sistema actúe como un verdadero experto, es deseable que reúna, en lo posible, lo más importante de las características de un experto humano, esto es:

-Habilidad para adquirir conocimiento.
-Fiabilidad, para poder confiar en sus resultados o apreciaciones.
-Solidez en el dominio de su conocimiento.
-Capacidad para resolver problemas.

Dada la complejidad de los problemas que usualmente tiene que resolver un sistema experto, puede existir cierta duda en el usuario sobre la validez de respuesta obtenida. Por este motivo, es una condición indispensable que un sistema experto sea capaz de explicar su proceso de razonamiento o dar razón del por qué solicita tal o cual información o dato. 

Estas características le permiten almacenar datos y conocimiento, sacar conclusiones lógicas, tomar decisiones, aprender de la experiencia y los datos existentes, comunicarse con expertos humanos, explicar el porqué de las decisiones tomadas y realizar acciones como consecuencia de todo lo anterior. Técnicamente un sistema experto, contiene una base de conocimientos que incluye la experiencia acumulada de expertos humanos y un conjunto de reglas para aplicar esta base de conocimientos en una situación particular que se le indica al programa.

Sistemas expertos:
·         -Toman Decisiones
·         -Calculan Resultados
·         -Basados en Heurísticas
·         -Dan Explicaciones de los Resultados
·         -Usan Reglas de Inferencia
·         -Accedan Bases de Conocimientos (Deductivas)
·         -Centrados en el Experto y el Usuario
·         -Manejan Conocimiento Impreciso, Contradictorio o Incompleto
·         -Usan Datos y Lenguajes Simbólico

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.


Un Sistema Experto (SE), es básicamente un programa de computadora basado en conocimientos y raciocinio que lleva a cabo tareas que generalmente sólo realiza un experto humano, es decir, es un programa que imita el comportamiento humano en el sentido de que utiliza la información que le es proporcionada para poder dar una opinión sobre un tema en especial.


Otros autores lo definen como un Sistema Experto de programa de computadora interactivo que contiene la experiencia, conocimiento y habilidad propios de una persona o grupos de personas especialistas en un área particular del conocimiento humano, de manera que permitan resolver problemas específicos de ése área de manera inteligente y satisfactoria. La tarea principal de un SE es tratar de aconsejar al usuario.

Inteligencia Artificial.

John McCarthy propuso el concepto de inteligencia artificial (IA). Que acuñó en la Conferencia de Dartmouth en 1956. Sus influencias son diversas (Filosofía, Matemática, Psicología, Biología). Su objetivo son las capacidades que consideramos Inteligentes. 

La IA es una rama de las ciencias computacionales encargada de estudiar modelos de cómputo capaces de realizar actividades propias de los seres humanos en base a dos de sus características primordiales: el razonamiento y la conducta. 


La naturaleza de la resolución de problemas durante la primera década de la investigación de IA residía en un mecanismo de búsqueda de propósito general en el que se entrelazaban pasos de razonamiento elementales para encontrar así soluciones completas. A estos procedimientos se les han denominado métodos débiles, debido a que la información sobre el dominio con que cuenta es débil. 




Referencias bibliográficas:

• González, J. Avelino & Dankel Douglas D. “The engineering of knowledge-based systems: theory & practice”. Prentice Hall. 1993. 

• López Takeyas, Bruno. ”Sistemas basados en el Conocimiento”. Antología. Instituto Tecnológico de Nuevo Laredo, Tam. México. 2001

• Ignizio, James P. “Introduction to Expert Systems”. McGraw Hill. 1991. 

  • ANGULO Usategui José María y Anselmo del Moral Bueno( 1994). Guía fácil de la Inteligencia Artificial. Editorial Paraninfo. Segunda Edición. Madrid, 1994. 
  • ARTEAGA René y Juan Carlos Armijos. Tutorial de Programación Heurística.









  • Sistemas Expertos: Fundamentos, Metodologías y Aplicaciones Sebastián Badaró1, Leonardo Javier Ibañez1 y Martín Jorge Agüero1