Just another free Blogger theme - NewBloggerThemes.com

ABECERA

Con la tecnología de Blogger.

CUADRITO

Datos personales

Theme Support

Contact Us

Nombre

Correo electrónico *

Mensaje *

miércoles, 25 de abril de 2012


El término sistema reactivo fue introducido en 1985 por David Harel y Amir Pnueli
[HP85] para caracterizar un determinado tipo de sistema distinto de los tradicionales sistemas transformacionales.

Un sistema transformacional tiene una serie de entradas, las manipula y ofrece un conjunto determinado de salidas. Su comportamiento puede equipararse al de una función, dado que “transforma” los parámetros de entra obteniendo unos de salida.

A la hora de trabajar con sistemas transformacionales muchas veces se suelen comparar con cajas negras, donde no importa qué es lo que ocurre dentro, sino solamente la relación entre las entradas y las salidas.

Sistemas reactivos: Interaccionan continuamente con el entorno, reaccionando a los estímulos que éste genera. El entorno carece de capacidades de sincronización.

Características de los sistemas reactivos

En general, todos los sistemas reactivos comparten una serie de características comunes, independientemente de la aplicación final a la que se destinen. Estas particularidades habrá que tenerlas en cuenta a la hora de especificar sistemas reactivos. Entre estas características podemos citar las siguientes:

Paralelismo: los sistemas reactivos se ejecutan en paralelo con otros sistemas (lo que genéricamente venimos denominando entorno). Además, ellos mismos, posiblemente, estén constituidos por una serie de módulos funcionando en paralelo.
Esto es muy habitual, como veremos, dado que simplifica notablemente el diseño de sistemas la posibilidad de dividirlo en un conjunto determinado de módulos que funcionan en paralelo y que cooperan para obtener el comportamiento deseado.

Condicionantes temporales: como ya hemos dicho antes, los sistemas reactivos tienen que responder a los estímulos de entrada “instantáneamente”. La definición exacta del término “instantáneo” depende mucho del tipo de sistema a considerar, dado que no será igual para un sistema en tiempo real que para otro tipo de sistemas.
Independientemente del tipo de sistema que se trate, los condicionantes temporales (los que sean en cada caso) son una cuestión importante a tener en cuenta a la hora de desarrollar y de verificar la corrección del sistema.

Confiabilidad: La mayor parte de los sistemas reactivos se emplean en situaciones donde un error puede resultar crítico (un error en un sistema de control de tráfico aéreo no es algo que pueda permitirse). Esto hace que sean necesarios métodos de desarrollo y verificación rigurosos para poder detectar antes de su implantación cualquier posible anomalía que pueda darse.

Determinismo: otra de las características importantes que todo programa reactivo debe tener es el determinismo. Un programa (o un sistema) se considera determinista cuando produce las mismas secuencias de salida ante las mismas secuencias de entradas. Esto parece contradictorio con la propia definición de sistemas reactivos y con la paradoja de Brock-Ackermann antes vista, pero en realidad no es así, si consideramos en todo caso el tiempo como una entrada más. De todas maneras, esta característica hay que considerarla con su justo valor: los sistemas reactivos deterministas son más fáciles de especificar, depurar y analizar que los no deterministas. Sin embargo, como veremos, algunas técnicas de especificación de sistemas reactivos aceptan el no-determinismo como una característica más (aunque no sea deseable) de los sistemas reactivos.

Aplicaciones:
  • 1.      Secuenciadores de tareas. Son habituales estas aplicaciones en interfaces hombre-máquina, en tableros de control y en sistemas de fabricación integrada (CIM). Todos estos sistemas tienen que manejar secuencias de órdenes de entrada (pulsaciones de teclas y movimientos de ratón, por ejemplo) y efectuar las acciones requeridas para cumplimentar dichas órdenes.

  • 2.      Protocolos de comunicaciones de cualquier tipo de red, en particular en redes de área local en tiempo real, donde los requisitos temporales son más estrictos. Al igual que en el caso anterior, la complejidad combinacional del problema es importante y es necesario un método de desarrollo adecuado para diseñar e implementar protocolos de comunicaciones.

  • 3.      Proceso de señal de bajo nivel. El tratamiento de señales tradicionalmente se ha realizado mediante filtros analógicos. Hoy en día se utiliza también el procesamiento digital de esas señales, que permite, además, un filtrado adaptativo. En este caso de uso es fundamental el rendimiento, por lo que es deseable manejar la arquitectura y el algoritmo de filtrado dentro del mismo marco de trabajo.

  • 4.      Control de procesos industriales. En este ámbito hay controlar una proceso industrial, lo que conlleva gobernar distintos actuadores (motores, interruptores, etc.) en función de distintos parámetros de entrada (sensores, interrupciones, etc.). Hay que buscar una forma de desarrollo de estos sistemas que permita una fácil especificación y que garantice que la implementación cumple la especificación dada.

  • 5.      Sistemas de procesamiento de señales complejas, como señales de radar o de sonar. En este caso no sólo hay que tratar con el proceso de las señales en sí, sino que hay un procesamiento añadido como puede ser compresión de datos, fusión de datos, funciones de decisión, etc. Son sistemas que exigen una computación intensiva donde se generan y combinan entre sí múltiples eventos para lanzar nuevos cálculos. El tema fundamental en este caso es la velocidad, para poder llevar a cabo el procesamiento en tiempo real.

  • 6.      Sistemas complejos de vigilancia y control, como los encargados del gobierno de aviones o de otros sistemas de transporte, de controlar sistemas industriales particularmente peligrosos (como centrales nucleares), etc. Este tipo de sistemas pueden llegar a constar de miles de sensores, cientos de actuadores y decenas de ordenadores interconectados. Suelen emplearse sistemas altamente distribuidos. La seguridad es un aspecto crítico en estos sistemas.
  • 7.  Sistemas de Orden-Control-Comunicación. Conocidos como sistemas C3 (Command-Control-Communicate) y a veces como sistemas C3 I (por inteligentes), se encuentran en campos diversos como pueden ser sistemas militares, sistemas de control de tráfico aéreo, grandes sistemas de transporte, etc.
  
Comparar los sistemas reactivos y sistemas Transformacional, ejemplos de cada uno.

Un sistema transformacional tiene una serie de entradas, las manipula y ofrece un conjunto determinado de salidas. Su comportamiento puede equipararse al de una función, dado que “transforma” los parámetros de entra obteniendo unos de salida. A la hora de trabajar con sistemas transformacionales muchas veces se suelen comparar con cajas negras, donde no importa qué es lo que ocurre dentro, sino solamente la relación entre las entradas y las salidas.

Un sistema reactivo, por contra, puede ofrecer distintas salidas para el mismo conjunto de entradas, en función de lo que haya ocurrido con anterioridad en el sistema. Se suelen definir como sistemas de computación que están continuamente interactuando con el entorno, de tal manera que tienen que actuar de inmediato ante los estímulos por éste producidos. Los sistemas reactivos así considerados se encuentra por todas partes: sistemas de control industrial (su principal ámbito de aplicación), sistemas de comunicaciones, sistemas de software interactivo (como los interfaces hombremáquina), etc. La abstracción que se puede hacer de un sistema reactivo podría ser “cactus negro” (en contraposición con las “cajas negras” de los sistemas transformacionales), según indica Pnueli en [HP85], para enfatizar el protagonismo que tienen los canales de entrada/salida del sistema (las “espinas” del cactus).



La lógica formal es la parte de la lógica que, a diferencia de la lógica informal, se dedica al estudio de la inferencia mediante la construcción de lenguajes formales, sistemas deductivos y semánticas formales. La idea es que estas construcciones capturen las características esenciales de las inferencias válidas en los lenguajes naturales, pero que al ser estructuras formales y susceptibles de análisis matemático, permiten realizar demostraciones rigurosas sobre ellas.
La lógica formal no debe ser confundida con la lógica matemática, antes llamada lógica simbólica, que es una sub-disciplina de la lógica formal.


La lógica de primer orden, también llamada lógica de predicados o cálculo de predicados, es un sistema formal diseñado para estudiar la inferencia en los lenguajes de primer orden. Los lenguajes de primer orden son, a su vez, lenguajes formales con cuantificadores que alcanzan sólo a variables de individuo, y con predicados y funciones cuyos argumentos son sólo constantes o variables de individuo.

La lógica de primer orden tiene el poder expresivo suficiente para definir a prácticamente todas las matemáticas.

martes, 24 de abril de 2012


La Inteligencia Artificial(IA) se divide en dos escuelas de pensamiento: 
  1. La inteligencia artificial convencional
  2. La inteligencia artificial computacional

Inteligencia artificial convencional

Se conoce también como IA simbólico-deductiva. Está basada en el análisis formal y estadístico del comportamiento humano ante diferentes problemas:
  • Razonamiento basado en casos: Ayuda a tomar decisiones mientras se resuelven ciertos problemas concretos y aparte de que son muy importantes requieren de un buen funcionamiento.

  •  Sistemas expertos: Infieren una solución a través del conocimiento previo del contexto en que se aplica y ocupa de ciertas reglas o relaciones.
  • Redes bayesianas: Propone soluciones mediante inferencia probabilística.
  • Inteligencia artificial basada en comportamientos: que tienen autonomía y pueden auto-regularse y controlarse para mejorar.
  • Smart process management: facilita la toma de decisiones complejas, proponiendo una solución a un determinado problema al igual que lo haría un especialista en la actividad.

Inteligencia artificial computacional

La Inteligencia Computacional (también conocida como IA subsimbólica-inductiva) implica desarrollo o aprendizaje interactivo (por ejemplo, modificaciones interactivas de los parámetros en sistemas conexionistas). El aprendizaje se realiza basándose en datos empíricos.

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.
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 llamados 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. Y otros (en particular, Russell y Norvig (2003)) consideran conducta dirigida a objetivos como la esencia de lo inteligente y prefieren un término tomado de la economía "Agente Racional".


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 de Russell y Norvig. Por ejemplo, programas autónomos utilizados para asistencia de un operador o de minería de datos (a veces denominado robots) son también llamados "agentes inteligentes".
 

      Sistemas que piensan como humanos.- Estos sistemas tratan de emular el pensamiento humano; por ejemplo las redes neuronales artificiales. La automatización de actividades que vinculamos con procesos de pensamiento humano, actividades como la Toma de decisiones, resolución de problemas, aprendizaje.
 

     

  Sistemas que actúan como humanos.- Estos sistemas tratan de     actuar como humanos; es decir, imitan el comportamiento humano; por ejemplo la robótica. El estudio de cómo lograr que los computadores realicen tareas que, por el momento, los humanos hacen mejor. 

    



      

  Sistemas que piensan racionalmente.- Es decir, con lógica (idealmente), tratan de imitar o emular el pensamiento lógico racional del ser humano; por ejemplo los sistemas expertos. El estudio de los cálculos que hacen posible percibir, razonar y actuar. 


 






Sistemas que actúan racionalmente (idealmente). – Tratan de emular en forma racional el comportamiento humano; por ejemplo los agentes inteligentes .Está relacionado con conductas inteligentes en artefactos.