domingo, 29 de agosto de 2010

Sistemas Operativos: Guía

Saludos!!
Les dejo la guía para el Examen de Sistemas Operativos. Resuélvanla, traiganla ese día y estudienla.
Temas:
¿Que es un Sistema Operativo?
¿Describa su clasificación (por uso)?
¿Que es un proceso?
¿Que es un Servicio?
¿describa que es el Sistema de Archivos?
¿Cómo funciona FAT?
¿Que es un puerto?
¿Mencione por lo menos 4 sistemas Operativos diferentes?
¿describa por lo menos 10 diferencias entre un S.O. abierto y uno Cerrado (p. ej. Windows vs Linux)?
¿Que es un sistema Operativo para Redes?
¿que es una red?
¿Que es un protocolo?
¿Como interactúa el Modelo OSI y sus 7 capas con el usuario, a través del S.O.?Explique.

Que les sirva de ayuda y estudienla bien.

Saludos!. Suerte

lunes, 9 de agosto de 2010

Inteligencia Artificial: Redes Neuronales III

Pesos

Las RNA puede tener factores de peso fijos o adaptables. Las que tienen pesos adaptables emplean leyes de aprendizaje para ajustar el valor de la fuerza de un interconección con otras neuronas. Si las neuronas utilizan pesos fijos, entonces su tarea deberá estar previamente definida. Los pesos serán determinados a partir de una descripción completa del problema. Por otra parte, los pesos adaptables son esenciales si no se conoce previamente  cual deberá de ser su valor correcto.

Dos tipos de aprendizaje

Existen dos tipo de aprendizaje: supervisado y no supervisado. El primero ocurre cuando se le proporciona a la red tanto la entrada como la salida correcta, y la red ajusta sus pesos tratando de minimizar el error de su salida calculada. Este tipo de entrenamiento se aplica por ejemplo, en el reconocimiento de patrones. El entrenamiento no supervisado se presenta cuando a la red se le proporcionan únicamente los estímulos, y la red ajusta sus interconecciones basándose únicamente es sus estímulos y la salida de la propia red. Las leyes de aprendizaje determinan como la red ajustará sus pesos utilizando una función de error o algún otro criterio. La ley de aprendizaje adecuada se determina en base a la naturaleza del problema que se intenta resolver.

Dos fases de operación

Las RNA adaptables tienen dos fases en su operación.
1. Entrenamiento de la red. El usuario proporciona a la red un número "adecuado" de estímulos de entrada, y de salida, la red entonces ajusta su pesos de interconección o sinápsis hasta que la salida de la red esta "lo suficientemente cerca" de la salida correcta.
2. Recuperación de lo aprendido. A la red se le presenta un conjunto de estímulos de entrada y esta simplemente calcula su salida. Cuando la red emplea entrenamiento no supervisado, algunas veces será necesario que reajuste su sinápsis durante la fase de recuperación.

No son algorítmicas

La gran diferencia del empleo de las redes neuronales en relación con otras aplicaciones de la computación radica en que no son algorítmicas, esto es no se programan haciéndoles seguir una secuencia predefinida de instrucciones. Las RNA generan ellas mismas sus propias "reglas", para asociar la respuesta a su entrada; es decir, aprende por ejemplos y de sus propios errores.
El conocimiento de una RNA se encuentra en la función de activación utilizada y en los valores de sus pesos.

Asociar y generalizar sin reglas como en el cerebro humano

Las redes neuronales formadas por los perceptrones se interconectan en forma muy similar a como las neuronas humanas se disponen en la corteza cerebral humana, y lo más importante, son capaces de asociar y generalizar sin reglas. Han sido utilizadas con gran éxito para reconocer retornos de sonar bajo el agua, escritura a mano, voz, topografía de terrenos, controlar brazos de robots, evaluar datos personales, modelar fenómenos cognocitivos, y, predecir tendencias financieras.

Requieren de algún tipo de patrón

La clase de problemas que mejor se resuelven con las redes neuronales son los mismos que el ser humano resuelve mejor: Asociación, evaluación, y reconocimiento de patrones. Las redes neuronales son perfectas para problemas que son muy difíciles de calcular pero que no requieren de respuestas perfectas, sólo respuestas rápidas y buenas. Tal y como acontece con el escenario bursátil en el que se quiere saber ¿compro?, ¿vendo?, ¿mantengo?, o en el reconocimiento cuando se desea saber ¿se parece? ¿es el mismo pero tienen una ligera modificación?
Por otra parte, las redes neuronales son muy malas para cálculos precisos, procesamiento serie, y no son capaces de reconocer nada que no tenga inherentemente algún tipo de patrón. Es por esto, que no pueden predecir la lotería, ya por definición es un proceso al azar.

Inteligencia Artificial: Redes Neuronales II

Que es una Red Neuronal Artificial.

Desde hace algunos años, algunos investigadores han estado creando modelos, tanto en hardware como en software, que interpretan la actividad cerebral en un esfuerzo por producir una forma de inteligencia artificial.
Muchos modelos teóricos o paradigmas, datan desde los años 50's. Muchos de ellos tenían aplicaciones limitadas en el mundo real, teniendo como consecuencia que las Redes Neuronales Artificiales ( RNA ) permanecieran en la obscuridad por décadas. 

Las RNA están compuestas de un gran número elementos de procesamiento altamente interconectados (Neuronas) trabajando al mismo tiempo para la solución de problemas específicos. Las RNA, tal como las personas, aprenden de la experiencia.

En cualquier caso, se trata de una nueva forma de computación que es capaz de manejar las imprecisiones e incertidumbres que aparecen cuando se trata de resolver problemas relacionados con el mundo real (reconocimiento de formas, toma de decisiones, etc..), ofreciendo soluciones robustas y de fácil implementación.
Las RNA están compuestas de muchos elementos sencillos que operan en paralelo, el diseño de la red está determinado mayormente por las conexiones entre sus elementos. Al igual que las conexiones de las neuronas cerebrales.
Las RNA han sido entrenadas para la realización de funciones complejas en variados campos de aplicación. Hoy en día pueden ser entrenadas para la solución de problemas que son difíciles para sistemas computacionales comunes o para el ser humano.
La idea de las redes neuronales fue concebida originalmente como un intento de modelar la biofisiología del cerebro humano, esto es, entender y explicar como funciona y opera el cerebro. La meta era crear un modelo capaz en emular el proceso humano de razonamiento. La mayor parte de los trabajos iniciales en redes neuronales fue realizada por fisiólogos y no por ingenieros.

Inteligencia Artificial: Redes Neuronales

as Redes Neuronales Artificiales (las cuales llamaremos RNA) son dispositivos o software programado de manera tal que funcionen como las neuronas biológicas de los seres vivos. A continuación hablaremos un poco sobre ellas.

Neuronas Biológicas

El cerebro humano continuamente recibe señales de entrada de muchas fuentes y las procesa a manera de crear una apropiada respuesta de salida. Nuestros cerebros cuentan con millones de neuronas que se interconectan para elaborar " Redes Neuronales ". Estas redes ejecutan los millones de instrucciones necesarias para mantener una vida normal.
Las neuronas son las células que forman la corteza cerebral de los seres vivos, cada una está formada por elementos llamados cuerpo, axón y dentritas, como se muestra en la siguiente figura.
neurona_biol.gif (3430 bytes)
Las dentritas forman una estructura de filamentos muy fina que rodean el cuerpo de la neurona. El axón es un tubo largo y delgado que se ramifica en su extremo en pequeños bulbos finales que casi tocan las dentritas de las células vecinas. La pequeña separación entre los bulbos finales y las dentritas se le denomina sinápsis.
Las neuronas, al igual que las demás céluas del cuerpo, funcionan a través de impulsos eléctricos y reacciones químicas. Los impulsos eléctricos que utiliza una neurona para intercambiar información con las demás, viajan por el axón que hace contacto con las dentritas de la neurona vecina mediante las sinápsis. La intensidad de la corriente transmitida depende de la eficiencia de la transmisión sináptica. Una neurona en especial transmitirá un impulso eléctrico por su axón si suficientes señales de las neuronas vecinas transmiten a través de sus dentritas en un tiempo corto. La señal que se transmite a la neurona podrá ser además ya sea inhibitoria o excitatoria. La neurona dispara, esto es, manda el impulso por su axón, si la excitación excede su inhibición por un valor crítico, el umbral de la neurona.

Métodos Numéricos: Euler


La idea del método de Euler es muy sencilla y está basada en el significado geométrico de la derivada de una función en un punto dado. Supongamos que tuviéramos la curva solución de la ecuación diferencial y trazamos la recta tangente a la curva en el punto dado por la condición inicial.
Debido a que la recta tangente aproxima a la curva en valores cercanos al punto de tangencia, podemos tomar el valor de la recta tangente en el punto http://docentes.uacj.mx/gtapia/AN/Unidadse/euler/euler.11.gif como una aproximación al valor deseado  http://docentes.uacj.mx/gtapia/AN/Unidadse/euler/euler.12.gif
Así, calculemos la ecuación de la recta tangente a la curva solución de la ecuación diferencial  dada   en el punto  .De los cursos de Geometría Analítica, sabemos que la ecuación de la recta es: 
                                                
donde  m  es la pendiente. En este caso, sabemos que la pendiente de la recta tangente se calcula con la derivada:
Por lo tanto, la ecuación de la recta tangente es : 
Ahora bien, suponemos que  ,es un punto cercano a  , y por lo tanto estará dado como  . De esta forma, tenemos la siguiente aproximación:
De aquí, tenemos nuestra fórmula de aproximación: 
  
Esta aproximación puede ser suficientemente buena, si el valor de h es realmente pequeño, digamos de una décima ó menos. Pero si el valor de  h es más grande, entonces podemos cometer mucho error al aplicar dicha fórmula. Una forma de reducir el error y obtener de hecho un método iterativo, es dividir la distancia   en  n  partes iguales (procurando que estas partes sean de longitud suficientemente pequeña) y obtener entonces la aproximación en  n  pasos, aplicando la fórmula anterior  n  veces de un paso a otro, con la nueva  h  igual  a  
En una gráfica, tenemos lo siguiente: 
Ahora bien, sabemos que: 
Para obtener    únicamente hay que pensar que ahora el papel de   lo toma el punto , y por lo tanto, si sustituímos los datos adecuadamente, obtendremos que: 
  
De aquí se ve claramente que la fórmula recursiva general, está dada por: 
  
Esta es la conocida fórmula de Euler que se usa para aproximar el valor de   aplicándola sucesivamente desde   hasta   en pasos de longitud  h.

Métodos Numéricos:Series de Taylor


Una serie es una suma de infinitos términos ligados por determinada ley de formación. Generalmente, una serie puede expresarse de dos formas equivalentes. Ellas son:
Ø     La forma extendida: Es aquella mediante la cual se exhiben algunos términos de la serie. Matemáticamente, se expresa así:
a0 + a1 + a2 + a3 + … + an + …
Ø     La forma simplificada: Es aquella que presenta de forma sintética todos los términos de una serie. Para ello, se utiliza el símbolo de sumatoria, es decir,

En la práctica se plantean ejercicios donde se pide obtener la forma simplificada a partir de la forma extendida y viceversa, puesto que como se indicó anteriormente, ambas formas son equivalentes.
De todos los tipos de series que existen, a continuación estudiaremos unas series especiales conocidas “Series Geométricas”. Éstas se caracterizan por su forma de construcción.  La misma se detalla a continuación:
Cada uno de los términos de una serie geométrica se halla multiplicando una constante (a), por una razón (r). Luego se vuelve a multiplicar por esa razón, consiguiendo de esta manera cada uno de los términos. Para ilustrar el proceso de formación de una serie, se analizará la siguiente situación:
Supóngase que se tiene una constante:   y una razón:   

Con esos 2 parámetros se puede construir una serie geométrica de la siguiente manera.
Uno de los elementos  de estudio más resaltantes de una serie es la Convergencia. Existe un criterio sencillo que permite determinar, si una serie geométrica converge o no. El termino convergencia significa que la serie infinita puede ser reemplazada por un numero finito.
La serie de Taylor de una función f de números reales o complejos que es infinitamente diferenciable en un entorno de números reales o complejos a, es la serie de potencias:
Que puede ser escrito de una manera más compacta como
Donde n! es el factorial de n y f (n)(a) denota la enésima derivada de f en el punto a; la derivada cero de f es definida como la propia f y (xa)0 y 0! son ambos definidos como uno. El caso especial, es cuando a = 0, es :
Y se llama serie de Maclaurin.,      Desarrollo alrededor de cero
Recibe el nombre de fórmula de los coeficientes de Taylor, para hallar la serie de Taylor de una función alrededor del cero o de cualquier otro número. Frecuentemente se puede modificar una de las series de Taylor, que ya se conoce, para hallar la serie de Taylor de una función dada y en el caso de que la serie converja, especificar un intervalo de convergencia.

lunes, 19 de julio de 2010

Sistemas Operativos: Diferencias entre Microsoft Windows y GNU Linux

windowsvslinuxjpgthumbwp6.jpg


Requerimientos del cliente
LINUX
Windows 2000
aplicaciones
·          No existe el empeño por dar compatibilidad hacia atrás,  frecuentemente hay la necesidad de recompilar para diferentes distribuciones.
·          A menudo no se provee el condigo fuente.
·          De manera principal basadas en script similares a UNIX (CGI, PERL, PHP)
·          No existe un marco para el desarrollo de aplicaciones distribuidas o aplicaciones Web.
·          No existe una implementación de: COM, CORBA, EJB, o middleware de transacciones habilitado.
·          No hay un sistema de monitoreo al procesamiento de transacciones (TP)  o un sistema de colas.
·          Ejemplos de código, kit de desarrollo (hardware, software y dispositivos) y selected source of code licencing.
·          Modelo integrado COM para procesamiento distribuido y Web, colas de mensajes procesamiento de transacciones y servicios multimedia.
·          Amplio rango de lenguajes incluyendo ASP.
·          Ínter operación de bases de datos con soporte a transacciones distribuidas (DTC)
·          Mas de 100 aplicaciones certificadas Windows y 2000 aplicaciones basadas en servicios de directorio e integración con seguridad.
·          Aplicaciones de directorio integradas habilitadas
confiabilidad
·          Bueno para servir aplicaciones simples de contenido estático, en maquinas de bajo nivel, de único procesador.
·          Pocas garantías  OEM de tiempo arriba en sistemas Linux
·          Falta de pruebas extensivas que garanticen la compatibilidad entre componentes y aplicaciones.
·          Gran numero de pruebas externas e internas de drivers, integración de aplicaciones, pruebas de stress beta (para garantizar la compatibilidad entre los componentes, servicios y aplicaciones)
·          Alto tiempo arriba (uptime) por parte de OEM que garantizan Windows 2000 server.
·          Sistema dinámico de configuración (plug and play, hot swap) sistema de protección de archivos y certificación de drivers.
·          Soporte por modo de kernel de protección de escritura, cluster de alta disponibilidad de aplicaciones, servidor Web de aplicaciones y balanceador de cargas de red.
·          Sistema de archivos journal (para mejorar la confiabilidad y recuperación rápida)
·          Soporte de compresión de archivos y encripcion.
seguridad
·          Todo o nada no se pueden delegar privilegios administrativos
·          No hay una ruta de resolucion (metodología) para arreglo de BUG, con una forma clara de contabilizacion.
·          No existe seguridad centralizada, incluyendo auditoria.
·          Sitema de Single, sign-on (SSO) o usuario único que permite a un solo usuario acceder a distintos sistemas en un entorno de RED.
·          Servicios de sistema corren con altos niveles de seguridad para servicios multiusuarios.
·          Soporte a los últimos Standard de seguridad (kerberos, PKI, smart-cards, encripted files system, IPSec, y VPN)
escalabilidad
·          Soporte de forma predeterminada de solo 960M RAM, tiene que recompilarse y aplicar parches para soportar  2G RAM y un maximo por archivo de 2G
·          I/O sincronico introduce una limitante de contencion a la escalabilidad SMP  (multi procesador)
·          Optimizado para hardware de bajo perfil.
·          Falta de un “threading” a nivel de kernel para un manejo eficiente de el procesamiento de aplicaciones.
·          Pobre desempeño de servidor Web (comparativa de apache contra IIS)
·          no se conoce un benchmarks TCP-C disponible.
·          Windows 2000 Server default 4G RAM; Windows 2000 Advanced server 8G RAM default; Windows 2000 Datacenter Server 64G RAM (default) máximo tamaño de archivo de 16T.
·          Soporte integrado de balance de cargas basado en TCP/IP
·          Escalabilidad SMP hasta 32 CPU
·          Desempeño de servidor Web probado
·          I/O asincrono  “threads” pueden procesar otras tareas mientras esperan al I/O mejorando el desempenio y la escalabilidad.
·          Record mundial en TCP-C precio/desempeño
·          Magnificos resultados en  doble y cuádruple procesador sobre SPECWeb
Administracion
·          No infraestructura de administración.
·          Bajo grado de integración de seguridad entre los componentes y las aplicaciones, incrementando costos y riesgo tecnico.
·          Servicios prestados d manera no integrada, desarrollados por equipos o personas independientes.
·          No estudios de TCO disponibles
·          Administración Centralizada , Servicios De Directorio Integrados, Delegacion De Administración Y Administración Basada En Políticas.
·          Capacidad De Elegir Entre GUI O Línea De Comandos Para Administración.
·          Directorio Activo Para Administración Integrada, Delegacion, Administración Y Scripting.
·          Tegnologias De INTELLIMIRROR, SysPrep, sistemas de instalación remota, Wizards de configuración, y herramientas de actualizacion.
Time to market
·          Limitado soporte de hardware y drivers.
·          No hay una lista HCL compilada.
·          Se requiere personal altamente entrenado para administración (frecuentemente desarrolladores) los que deben recompilar el kernel para agregar características .
·          Usuarios finales forzados a hacer la integración y pruebas de paquetes desarrollados por diferentes proveedores.
·          Soporte a las ultimas innovaciones de hardware (plug-n-play, power management, infrared file transfer)
·          Lista HCL compilada concertificacion y soporte OEM.
·          Plataforma integrada alrededor de la facilidad de uso.
·          Herramientas GUI para simplificar tareas complejas.
·          Administración vía scripts para automatizar  tareas y administración remota.
·          Pruebas extensas y soporte a nuevos dispositivos.
Accountability
·          No hay mapa de desarrollo, las características son adicionadas o evolucionan deacuerdo con las necesidades de los desarrolladores. No hay un compromiso en el desarrllo.
·          Bajo GPL cualquier trabajo derivado (su ventaja competitiva) debe darse a la comunidad de desarrollo.
·          No hay un proceso de certificación para las aplicaciones.
·          Mapa claro a largo plazo de desarrollo.
·          $10millones/día se gastan en investigación y desarrollo para lograr cumplir el mapa de desarrollo.
·          Amplia red Micosoft certified profesional,.solution developers, consultores, engineers.
·          Red de soporte dedicada.


viernes, 16 de julio de 2010

Inteligencia Artificial: Autómatas

Autómata del griego automatos, espontáneo o con movimiento propio. Se define como una máquina que imita la figura y los movimientos de un ser animado. Un equivalente tecnológico en la actualidad serían los robots autónomos. Si el robot es antropomorfo se conoce como androide.

Androide es la denominación que se le da a un robot antropomorfo que, además de imitar la apariencia humana, imita algunos aspectos de su conducta de manera autónoma. Etimológicamente "androide" se refiere a los robots humanoides de fisionomía masculina, a los robots de apariencia femenina se les llama ocasionalmente ginoides, principalmente en las obras de ciencia ficción, aunque en el lenguaje coloquial el término androide suele usarse para ambos casos.

El mundo de los autómatas es tan amplio como su definición. En términos Biónicos podríamos considerar al hombre como el primer autómata, pues aparte de imitar el movimiento de os animales que lo redeaban, posee libre albedrío que le permite decidir por sí mismo. Esa distinción ha hecho que el ser humano haya querido imitar el acto de la creación desde el mismo inicio de su historia, construyendo mecanismos artificiales para todo tipo de fines desde científicos, de investigación, para agilizar sus tareas o por mero entretenimiento.

En electrónica un autómata es un sistema secuencial, aunque en ocasiones la palabra es utilizada también para referirse a un robot. Puede definirse como un equipo electrónico programable en lenguaje no informático y diseñado para controlar, en tiempo real y en ambiente industrial, procesos secuenciales. Sin embargo, la rápida evolución de los autómatas hace que esta definición no esté cerrada.

Teoría de los Autómatas

En la Teoría de los lenguajes formales, disciplina perteneciente a la informática, se describen tres tipos de autómatas que reconocen tipos diferentes de lenguajes: los autómatas finitos, los autómatas a pila y las máquinas de Turing.

El autómata es la primera máquina con lenguaje, es decir, un calculador lógico cuyo juego de instrucciones se orienta hacia los sistemas de evolución secuencial.

La aparición de los ordenadores a mediados de los 50's inauguró el campo de la lógica programada para el control de procesos industriales. No obstante, aunque estos ordenadores resolvían los inconvenientes de un Sistema cableado o la llamada lógica cableada, presentaban nuevos problemas:

- Mala adaptación al entorno industrial.
- Coste elevado de los equipos.
- Necesidad de personal informático para la realización de los programas.
- Necesidad de personal especializado para el mantenimiento.

Estos problemas se solucionarían con la aparición del autómata programable o PLC (Controlador Lógico Programable; en inglés Programable Logic Controler).

Estructura general

Un autómata programable se puede considerar como un sistema basado en un microprocesador, siendo sus partes fundamentales la Unidad Central de Proceso (CPU), la Memoria y el Sistema de Entradas y Salidas (E/S).

La CPU realiza el control interno y externo del autómata y la interpretación de las instrucciones del programa. A partir de las instrucciones almacenadas en la memoria y de los datos que recibe de las entradas, genera las señales de las salidas. La memoria se divide en dos bloques, la memoria de solo lectura o ROM (Read Only Memory) y la memoria de lectura y escritura o RAM (Random Access Memory).

En la memoria ROM se almacenan programas para el correcto funcionamiento del sistema, como el programa de comprobación de la puesta en marcha y el programa de exploración de la memoria RAM.

La memoria RAM a su vez puede dividirse en dos áreas:

Memoria de datos, en la que se almacena la información de los estados de las entradas y salidas y de variables internas.

Memoria de usuario, en la que se almacena el programa con el que trabajará el autómata.

El sistema de Entradas y Salidas recoge la información del proceso controlado (Entradas) y envía las acciones de control del mismo (salidas). Los dispositivos de entrada pueden ser Pulsadores, interruptores, finales de carrera, termostatos, presostatos, detectores de nivel, detectores de proximidad, contactos auxiliares, etc.

Por su parte, los dispositivos de salida son también muy variados: Pilotos indicadores, relés, contactores, arrancadores de motores, válvulas, etc. En el siguiente punto se trata con más detalle este sistema.

Sistema de entradas y salidas

En general, las entradas y salidas (E/S) de un autómata pueden ser discretas, analógicas, numéricas o especiales.

Las E/S discretas se caracterizan por presentar dos estados diferenciados: presencia o ausencia de tensión, relé abierto o cerrado, etc. Su estado se puede visualizar mediante indicadores tipo LED que se iluminan cuando hay señal en la entrada o cuando se activa la salida. Los niveles de tensión de las entradas más comunes son 5 V cc, 24 V cc/ca, 48 V cc/ca y 220 V ca.

Los dispositivos de salida más frecuentes son relés, transistores y triacs.

Las E/S analógicas tienen como función la conversión de una magnitud analógica (tensión o corriente) equivalente a una magnitud física (temperatura, presión, grado de acidez, etc.) en una expresión binaria de 11, 12 o más bits, dependiendo de la precisión deseada. Esto se realiza mediante conversores analógico-digitales (ADC's).

Las E/S numéricas permiten la adquisición o generación de información a nivel numérico, en códigos BCD, Gray u otros (véase código binario). La información numérica puede ser entrada mediante dispositivos electrónicos digitales apropiados. Por su parte, las salidas numéricas suministran información para ser utilizada en dispositivos visualizadores (de 7 segmentos) u otros equipos digitales.

Por último, las E/S especiales se utilizan en procesos en los que con las anteriores E/S vistas son poco efectivas, bien porque es necesario un gran número de elementos adicionales, bien porque el programa necesita de muchas instrucciones. Entre las más importantes están:

Entradas para termopar y termorresistencia: Para el control de temperaturas.
Salidas de trenes de impulso: Para el control de motores paso a paso (PAP).

Entradas y salidas de regulación P+I+D (Proporcional + Integral + Derivativo): Para procesos de regulación de alta precisión.

Salidas ASCII: Para la comunicación con periféricos inteligentes (equipo de programación, impresora, PC, etc.).

Ciclo de funcionamiento

Cuando se pone en marcha el PLC se realizan una serie de comprobaciones:

Funcionamiento de las memorias.
Comunicaciones internas y externas.
Elementos de E/S.
Tensiones correctas de la fuente de alimentación.

Una vez efectuadas estas comprobaciones y si las mismas resultan ser correctas, la CPU... inicia la exploración del programa y reinicializa. Esto último si el autómata se encuentra en modo RUN (marcha), ya que de estar en modo STOP (paro) aguardaría, sin explorar el programa, hasta la puesta en RUN.

Al producirse el paso al modo STOP o si se interrumpe la tensión de alimentación durante un tiempo lo suficientemente largo, la CPU realiza las siguientes acciones:

Detiene la exploración del programa.
Pone a cero, es decir, desactiva todas las salidas.

Mientras se está ejecutando el programa, la CPU realiza en sucesivos intervalos de tiempo distintas funciones de diagnóstico (watch-dog en inglés). Cualquier anomalía que se detecte se reflejará en los indicadores de diagnóstico del procesador y dependiendo de su importancia se generará un código de error o se parará totalmente el sistema.

El tiempo total del ciclo de ejecución viene determinado por los tiempos empleados en las distintas operaciones. El tiempo de exploración del programa es variable en función de la cantidad y tipo de las instrucciones así como de la ejecución de subrutinas. El tiempo de exploración es uno de los parámetros que caracteriza a un PLC y generalmente se suele expresar en milisegundos por cada mil instrucciones. Para reducir los tiempos de ejecución, algunas CPU's constan de dos o más procesadores que operan simultáneamente y están dedicados a funciones específicas. También se puede descargar de tareas a la CPU incorporando módulos inteligentes dedicados a tareas específicas.

Equipos de programación

La misión principal de los equipos de programación, es la de servir de interfaz entre el operador y el autómata para introducir en la memoria de usuario el programa con las instrucciones que definen las secuencias de control.

Dependiendo del tipo de autómata, el equipo de programación produce unos códigos de instrucción directamente ejecutables por el procesador o bien un código intermedio, que es interpretado por un programa residente en el procesador (firmware).

Las tareas principales de un equipo de programación son:

Introducción de las instrucciones del programa.
Edición y modificación del programa.
Detección de errores.
Archivo de programas (cintas, discos).

Básicamente existen tres tipos de equipos de programación:

Consola con teclado y pantalla de tubo de rayos catódicos (CRT) o de cristal líquido (LCD).
Programador manual, semejante a una calculadora de bolsillo, más económico que la anterior.
Ordenador personal con el software apropiado.

La conexión de la consola u ordenador al autómata programable se realiza mediante una conexión en serie (generalmente la RS-232C o la RS-422).

Equipos periféricos

Además de los equipos de programación, existen numerosos dispositivos que sin formar parte directa del autómata, pueden conectarse al mismo para realizar distintas funciones. Normalmente se conectan a las salidas ASCII o a los canales de comunicación del autómata.

Seguidamente se describen algunos de los equipos periféricos más comunes:
Módulos de ampliación de entradas y salidas: Necesarios para aquellos procesos en los que la estructura de E/S del autómata sea insuficiente.

Módulos de tratamiento de datos: Son pequeños ordenadores que manejan distintos datos (contaje, tiempo, estado de E/S, etc.), para la elaboración de informes, gráficos, etc.

Impresoras.

Visualizadores alfanuméricos.

Lectores de código de barras.

La forma de comunicarse el autómata con sus periférícos puede ser unidireccional, cuando se establece en un sólo sentido, o bien bidireccional, cuando se establece en los dos sentidos. Los enlaces para ambos tipos de comunicación suelen ser por lo general del tipo serie, siendo los más empleados los anteriormente mencionados RS-232C y RS-422, ambos de acuerdo con las normas de la EIA (Electronic Industries Association).

El RS-232C es el método de transmisión de datos más difundido, pero tiene la limitación de la distancia máxima de transmisión a 15 metros y la velocidad máxima de transmisión de 19.200 baudios (1 baudio = 1 bit/segundo). 

El RS-422 resuelve en parte las limitaciones del RS-232C. La distancia de transmisión puede superar un kilómetro y la velocidad puede llegar a 10 Mbaudios.

Programación del autómata

Para controlar un determinado proceso, el autómata realiza sus tareas de acuerdo con una serie de sentencias o instrucciones establecidas en un programa. Dichas instrucciones deberán haber sido escritas con anterioridad por el usuario en un lenguaje comprensible para la CPU. En general, las instrucciones pueden ser de funciones lógicas, de tiempo, de cuenta, aritméticas, de espera, de salto, de comparación, de comunicación y auxiliares.

Dependiendo del fabricante, los lenguajes de programación son muy diversos, sin embargo, suelen tener alguna relación más o menos directa con los lenguajes Ladder o GRAFCET.

Los programas para autómata pueden realizarse de forma lineal o de forma estructurada. En la programación lineal el programa consta de una serie de instrucciones que se van ejecutando una tras de otra de modo cíclico. Este modo de programación se suele emplear en programas no demasiado complejos o en autómatas que no posean el modo estructurado. Cuando los programas son muy complejos, la programación estructurada es más aconsejable ya que puede dividirse el proceso general en subprogramas con diferentes subprocesos tecnológicos. Otras de las ventajas de este modo de programación es que da un carácter más panorámico al programa, lo que conlleva una más fácil identificación de errores así como una mayor facilidad de comprensión por otros programadores.

Programar un automata no es realmente algo imposible, pero si se necesita paciencia. Como ejemplo tenemos un enlace en la sección de enlaces externos que conduce a una página que nos lleva a donde se encuentra un archivo hecho en java con código fuente para que se pueda analizar y comprender de una manera mas sencilla como funciona un automata finito deterministico (AFD)

Teoría de autómatas

La teoría de automatas es una rama de las ciencias de la computación que estudia de manera abstracta y con problemas que éstas son capaces de resolver. La teoría de autómatas está estrechamente relacionada con la teoría del lenguaje formal ya que los autómatas son clasificados a menudo por la clase de lenguajes formales que son capaces de reconocer.

El Dr. Frank Sinphilin es considerado el padre de los autómatas y uno de los mayores precursores de la computación y su destacada investigación en el desarrollo de modelos matemáticos apropiados para la comprensión de fenómenos de modelación instrumental,puesto que al tener una discapacidad motriz a falta de un miembro corporal (el cual no es espescíficado en los textos), el comienza a idear métodos y técnicas que le ayuden a tener una vida normal a razón de dicha discapacidad y vive enclaustrado y desarrollando modelos adecuados para dar inicio al primer lenguaje basado en razonamiento autodidacta, este lenguaje fue llamado TOPIT.OS, el cual evolucionó hasta los lenguajes que hoy en día se conocen.

Un autómata es un modelo matemático para una máquina de estado finita (FSM sus siglas en inglés). Una FSM es una máquina que, dada una entrada de símbolos, "salta" a través de una serie de estados de acuerdo a una función de transición (que puede ser expresada como una tabla). En la variedad común "Mealy" de FSMs, esta función de transición dice al autómata a que estado cambiar dados unos determinados estado y símbolo.

La entrada es leída símbolo por símbolo, hasta que es "consumida" completamente (piense en esta como una cinta con una palabra escrita en ella, que es leída por una cabeza lectora del autómata; la cabeza se mueve a lo largo de la cinta, leyendo un símbolo a la vez) una vez la entrada se ha agotado, el autómata se detiene.

Dependiendo del estado en el que el autómata finaliza se dice que este ha aceptado o rechazado la entrada. Si este termina en el estado "acepta", el autómata acepta la palabra. Si lo hace en el estado "rechaza", el autómata rechazó la palabra, el conjuto de todas las palabras aceptadas por el autómata constituyen el lenguaje aceptado por el mismo.

Vocabulario

Los conceptos básicos de símbolos, palabras, alfabetos y strings son comunes en la mayoría de las descripciones de los autómatas. Estos son:Símbolo Un dato arbitrario que tiene algún significado a o efecto en la máquina. A estos símbolos también se les llama "letras" o "átomos".1PalabraUna cadena finita formada por la concatenación de un número de símbolos.Alfabeto Conjunto finito de símbolos. Un alfabeto se indica normalmente con Σ, que es el conjunto de letras en un alfabeto.Lenguaje Un conjunto de palabras, formado por símbolos en un alfabeto dado. Puede o no puede ser infinito.Clausura de Kleene Un lenguaje se puede considerar como un subconjunto de todas las posibles palabras. El conjunto de todas las palabras puede, a su vez, ser considerado como el conjunto de todas las posibles concatenaciones de cadenas. Formalmente, este conjunto de todas las cadenas se llama en inglés free monoid. Se indica como Σ * , y el superíndice * se llama la estrella de Kleene.

Autómatas finitos

Formalmente, un autómata finito (AF) puede ser descrito como una 5-tupla .

Existen tres tipos de autómatas finitosAutómata finito determinista (AFD)Cada estado de un autómata de este tipo tiene una transición por cada símbolo del alfabeto.

AFD.

Autómata finito no determinista (AFND)Los estados de un autómata de este tipo pueden, o no, tener una o más transiciones por cada símbolo del alfabeto. El autómata acepta una palabra si existe al menos un camino desde el estado q0 a un estado final F etiquetado con la palabra de entrada. Si una transición no está definida, de manera que el autómata no puede saber como continuar leyendo la entrada, la palabra es rechazada.Autómata finito no determinista con transiciones ε (AFND-ε)Además de ser capaz de alcanzar más estados leyendo un símbolo, permite alcanzarlos sin leer ningún símbolo. Si un estado tiene transiciones etiquetadas con ε, entonces el AFND puede encontrarse en cualquier de los estados alcanzables por las transiciones ε, directamente o a través de otros estados con transiciones ε. El conjunto de estados que pueden ser alcanzados mediante este método desde un estado q, se denomina la clausura ε de q.

Sin embargo, puede observarse que todos estos tipos de autómatas pueden aceptar los mismos lenguajes. Siempre se puede construir un AFD que acepte el mismo lenguaje que el dado por un AFND.

Extensiones a los autómatas finitos

Los lenguajes aceptados por los autómatas descritos más arriba se denominan lenguajes regulares. Autómatas más potentes pueden aceptar lenguajes más complejos. Algunos de estos autómatas son:Autómata con pila Son máquinas idénticas a los AFD (o AFI), exceptuando el hecho de que disponen de una memoria adicional, haciendo uso de una pila. La función de transición δ ahora dependerá también de los símbolos que se encuentren al principio de la pila. Esta función determinará como cambia la pila en cada transición. Este tipo de autómatas aceptan los lenguajes independientes del contexto.Autómata linealmente acotadoSe trata de una máquina de Turing limitada.Máquina de Turing Son las máquinas computacionales más potentes. Poseen una memoria infinita en forma de cinta, así como un cabezal que puede leer y cambiar esta cinta, y moverse en cualquier dirección a lo largo de la cinta.

jueves, 15 de julio de 2010

inteligencia Artificial: Sistemas Expertos





Es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica. Se puede entender como una rama de la inteligencia artificial, donde el poder de resolución de un problema en un programa de computadora viene del conocimiento de un dominio específico. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole (no necesariamente tiene que ser de inteligencia artificial). También se dice que un SE se basa en el conocimiento declarativo (hechos sobre objetos, situaciones) y el conocimiento de control (información sobre el seguimiento de una acción).

Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo:
Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, que a la vez se basan en hechos.
Adquisición de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos a realizar con más rapidez y eficacia todas las tareas que realiza.

Debido a esto en la actualidad se están mezclando diferentes técnicas o aplicaciones aprovechando las ventajas que cada una de estas ofrece para poder tener empresas más seguras. Un ejemplo de estas técnicas sería los agentes que tienen la capacidad de negociar y navegar a través de recursos en línea; y es por eso que en la actualidad juega un papel preponderante en los sistemas expertos.



s un software que imita el comportamiento de un experto humano en la solución de un problema. Pueden almacenar conocimientos de expertos para un campo determinado y solucionar un problema mediante deducción lógica de conclusiones. 

Son SE aquellos programas que se realizan haciendo explicito el conocimiento en ellos, que tienen información específica de un dominio concreto y que realizan una tarea relativa a este dominio. 

Programas que manipulan conocimiento codificado para resolver problemas en un dominio especializado en un dominio que generalmente requiere de experiencia humana.

Programas que contienen tanto conocimiento declarativo (hechos a cerca de objetos, eventos y/o situaciones) como conocimiento de control (información a cerca de los cursos de una acción), para emular el proceso de razonamiento de los expertos humanos en un dominio en particular y/o área de experiencia. 

Software que incorpora conocimiento de experto sobre un dominio de aplicación dado, de manera que es capaz de resolver problemas de relativa dificultad y apoyar la toma de decisiones inteligentes en base a un proceso de razonamiento simbólico. 

APLICACIONES

Sus principales aplicaciones se dan en las gestiones empresariales debido a que;

a) Casi todas las empresas disponen de un ordenador que realiza las funciones básicas de tratamiento de la información: contabilidad general, decisiones financieras, gestión de la tesorería, planificación, etc.

b) Este trabajo implica manejar grandes volúmenes de información y realizar operaciones numéricas para después tomar decisiones. Esto crea un terreno ideal para la implantación de los SE.

Además los SE también se aplican en la contabilidad en apartados como: Auditoria(es el campo en el que más aplicaciones de SE se esta realizando) Fiscalidad, planificación, análisis financiero y la contabilidad financiera.

ÁREAS DE APLICACIÓN

Los SE se aplican a una gran diversidad de campos y/o áreas. A continuación se listan algunas de las principales:


Militar 

Informática 

Telecomunicaciones


Química 

Derecho 

Aeronáutica


Geología 

Arqueología 

Agricultura


Electrónica 

Transporte 

Educación


Medicina 

Industria 

Finanzas y Gestión


VENTAJAS

Estos programas proporcionan la capacidad de trabajar con grandes cantidades de información, que son uno de los grandes problemas que enfrenta el analista humano que puede afectar negativamente a la toma de decisiones pues el analista humano puede depurar datos que no considere relevantes, mientras un SE debido a su gran velocidad de proceso analiza toda la información incluyendo las no útiles para de esta manera aportar una decisión más sólida.

LIMITACIONES

Es evidente que para actualizar se necesita de reprogramación de estos (tal vez este sea una de sus limitaciones más acentuadas) otra de sus limitaciones puede ser el elevado costo en dinero y tiempo, además que estos programas son poco flexibles a cambios y de difícil acceso a información no estructurada. 

Debido a la escasez de expertos humanos en determinadas áreas, los SE pueden almacenar su conocimiento para cuando sea necesario poder aplicarlo. Así mismo los SE pueden ser utilizados por personas no especializadas para resolver problemas. Además si una persona utiliza con frecuencia un SEaprenderá de el.

Por otra parte la inteligencia artificial no ha podido desarrollar sistemas que sean capaces de resolver problemas de manera general, de aplicar el sentido común para resolver situaciones complejas ni de controlar situaciones ambiguas.

El futuro de los SE da vueltas por la cabeza de cada persona, siempre que el campo elegido tenga la necesidad y/o presencia de un experto para la obtención de cualquier tipo de beneficio. 

ARQUITECTURA BÁSICA DE LOS SISTEMAS EXPERTOS

Base de conocimientos. Es la parte del sistema experto que contiene el conocimiento sobre el dominio. hay que obtener el conocimiento del experto y codificarlo en la base de conocimientos. Una forma clásica de representar el conocimiento en un sistema experto son lar reglas. Una regla es unaestructura condicional que relaciona lógicamente la información contenida en la parte del antecedente con otra información contenida en la parte del consecuente.

Base de hechos (Memoria de trabajo ). Contiene los hechos sobre un problema que se han descubierto durante una consulta. Durante una consulta con el sistema experto, el usuario introduce la información del problema actual en la base de hechos. El sistema empareja esta información con el conocimiento disponible en la base de conocimientos para deducir nuevos hechos.

Motor de inferencia. El sistema experto modela el proceso de razonamiento humano con un módulo conocido como el motor de inferencia. Dicho motor de inferencia trabaja con la información contenida en la base de conocimientos y la base de hechos para deducir nuevos hechos. Contrasta los hechos particulares de la base de hechos con el conocimiento contenido en la base de conocimientos para obtener conclusiones acerca del problema.

Subsistema de explicación. Una característica de los sistemas expertos es su habilidad para explicar su razonamiento. Usando el módulo del subsistema de explicación, un sistema experto puede proporcionar una explicación al usuario de por qué está haciendo una pregunta y cómo ha llegado a una conclusión. Este módulo proporciona beneficios tanto al diseñador del sistema como al usuario. El diseñador puede usarlo para detectar errores y el usuario se beneficia de la transparencia del sistema.

Interfaz de usuario. La interacción entre un sistema experto y un usuario se realiza en lenguaje natural. También es altamente interactiva y sigue el patrón de la conversación entre seres humanos. Para conducir este proceso de manera aceptable para el usuario es especialmente importante el diseñodel interfaz de usuario. Un requerimiento básico del interfaz es la habilidad de hacer preguntas. Para obtener información fiable del usuario hay que poner especial cuidado en el diseño de las cuestiones. Esto puede requerir diseñar el interfaz usando menús o gráficos.