jueves, 17 de marzo de 2011

SISTEMAS EXPERTOS PIONEROS

Sus inicios datan a mediados de los años sesenta, los investigadores del área de la Inteligencia Artificial reconocieron que los métodos y técnicas para resolver problemas generales desarrollados los años anteriores eran insuficientes para abordar aplicaciones de la vida diaria. Ellos comprendieron que era necesario un conocimiento específico y limitado del dominio de la aplicación de interés, más que uno general que abarcara muchos dominios a continuación se detalla algunos sistemas expertos que se consideraron como pioneros.

En 1967 se construyo el DENDRAL, la ficción de dicho SE era identificar estructuras químicas moleculares a partir de su análisis espectrográfico.
MYCIN para consulta y diagnóstico de infecciones de la sangre. Este sistema introdujo nuevas características: utilización de conocimiento impreciso para razonar y posibilidad de explicar el proceso de razonamiento.
EMYCIN, (MYCIN Esencial) este sistema utilizaba el motor de inferencias lo cual da como resultado un sistema vacío o shell (concha).
TIERESIAS. El cometido de este sistema experto era el de servir de intérprete entre MYCIN y los especialistas que lo manejaban, a la hora introducir nuevos conocimientos en su base de datos.
SACON, utilizado para estructuras de ingeniería.
PUFF, para estudiar la función pulmonar.
UIDON, para elegir tratamientos terapéuticos.
HERSAY, que intentaba identificar la palabra hablada.
PROSPECTOR, utilizado para hallar yacimientos de minerales.
Del sistema experto PROSPECTOR se derivó el shell KAS (Knowledge Adquisition System).

miércoles, 16 de marzo de 2011

Consulta: Deep Blue, Weka, Sistema Biometrico Banco Pichincha

DEEP BLUE

Deep Blue fue una computadora de IBM que jugaba al ajedrez, la primera que venció a un campeón del mundo vigente, Gary Kaspárov, con un ritmo de juego lento. Esto ocurrió el 10 de febrero de 1996, en una memorable partida. Sin embargo, Kaspárov ganó 3 y empató 2 de las siguientes partidas, derrotando a Deep Blue por 4-2. El encuentro concluyó el 17 de febrero de 1996.

Una nueva versión, llamada Deeper Blue (azul más profundo) jugó de nuevo contra Kaspárov en mayo de 1997, ganando el encuentro a 6 partidas por 3½-2½, lo que lo convirtió en la primera computadora en derrotar a un campeón del mundo vigente, en un encuentro con ritmo de juego de torneo estándar. El encuentro concluyó el 11 de mayo.

El sistema saca su fuerza de juego principalmente en la fuerza bruta que calcula el sistema central. Era una computadora deprocesamiento paralelo masivo basada en el RS/6000 con 30 nodos, cada uno con 30 microprocesadores P2SC de 120 MHz, ampliados con 480 procesadores VLSI de uso especial, especializados en ajedrez. Su programa de ajedrez fue escrito enlenguaje C y corrió bajo el sistema operativo AIX. Era capaz de calcular 200 millones de posiciones por segundo, dos veces más rápido que la versión de 1996. En junio de 1997, Deep Blue era el 259º superordenador más poderoso, capaz de calcular 11,38gigaflops, aunque toda esta potencia no estaba pensada en realidad para jugar al ajedrez.

Su nombre se podría traducir al español como "Azul Oscuro", "Azul Profundo" o "Mar Profundo".

Fuente:

http://es.wikipedia.org/wiki/Deep_Blue_(computadora)

WEKA

Weka (Waikato Environment for Knowledge Analysis - Entorno para Análisis del Conocimiento de la Universidad de Waikato) es una plataforma desoftware para aprendizaje automático y minería de datos escrito en Java y desarrollado en la Universidad de Waikato. Weka es un software libredistribuido bajo licencia GNU-GPL.

Breve historia

  • En 1993, la Universidad de Waikato de Nueva Zelanda inició el desarrollo de la versión original de Weka (en TCL/TK y C).
  • En 1997, se decidió reescibir el código en Java incluyendo implementaciones de algoritmos de modelado.
  • En 2005, Weka recibe de SIGKDD (Special Interest Group on Knowledge Discovery and Data Mining) el galardón "Data Mining and Knowledge Discovery Service".
  • Puesto en el ranking de Sourceforge.net el 19 de mayo de 2008: 248 (con 1,186,740 descargas).
  • Descripción

    El paquete Weka contiene una colección de herramientas de visualización y algoritmos para análisis de datos y modelado predictivo, unidos a una interfaz gráfica de usuario para acceder fácilmente a sus funcionalidades. La versión original de Weka fue un front-end en TCL/TK para modelar algoritmos implementados en otros lenguajes de programación, más unas utilidades para preprocesamiento de datos desarrolladas en C para hacer experimentos de aprendizaje automático. Esta versión original se diseñó inicialmente como herramienta para analizar datos procedentes del dominio de la agricultura, pero la versión más reciente basada en Java (WEKA 3), que empezó a desarrollarse en 1997, se utiliza en muchas y muy diferentes áreas, en particular con finalidades docentes y de investigación.

    Razones a favor de Weka

    Los puntos fuertes de Weka son:

    • Está disponible libremente bajo la licencia pública general de GNU.
    • Es muy portable porque está completamente implementado en Java y puede correr en casi cualquier plataforma.
    • Contiene una extensa colección de técnicas para preprocesamiento de datos y modelado.
    • Es fácil de utilizar por un principiante gracias a su interfaz gráfica de usuario.

    Weka soporta varias tareas estándar de minería de datos, especialmente, preprocesamiento de datos, clustering, clasificación, regresión, visualización, y selección. Todas las técnicas de Weka se fundamentan en la asunción de que los datos están disponibles en un fichero plano (flat file) o una relación, en la que cada registro de datos está descrito por un número fijo de atributos (normalmente numéricos o nominales, aunque también se soportan otros tipos). Weka también proporciona acceso a bases de datos vía SQL gracias a la conexión JDBC(Java Database Connectivity) y puede procesar el resultado devuelto por una consulta hecha a la base de datos. No puede realizar minería de datos multi-relacional, pero existen aplicaciones que pueden convertir una colección de tablas relacionadas de una base de datos en una única tabla que ya puede ser procesada con Weka.

    Carencias de Weka

    Un área importante que actualmente no cubren los algoritmos incluidos en Weka es el modelado de secuencias.

    Fuente:

    SISTEMA BIOMETRICO BANCO PICHINCHA

    Hace pocos días el Banco Pichincha introdujo un nuevo sistema de verificación para el ingreso a sus servicios electrónicos. Se trata de un control biométrico que pretende ofrecer más seguridad a sus usuarios.

    ¿Qué es un sistema biométrico de control? Se trata de una plataforma de reconocimiento de seres humanos basada en características físicas o de conducta. La aplicación más conocida de esta tecnología es, quizás, la lectura de huellas dactilares, que es, evidentemente, un reconocimiento físico de identidad.

    El sistema que se usa en el portal del banco, por el contrario, ofrece controles de identificación y acceso basados en la conducta o preferencias del cliente. Lo interesante es que la arquitectura construye un perfil de cada usuario, lo analiza continuamente y mejora su patrón de reconocimiento a través de técnicas matemáticas y estadísticas.

    En pocas palabras, el sistema aprenderá a identificar a cada usuario en base a sus gustos y conducta.

    Necesidad de aplicación y posible impacto

    Sin conocer las estadísticas oficiales de la institución, estoy casi seguro de que el número de incidencias de seguridad en el Banco Pichincha debe ser alto. Esto se debe a que la mayoría de usuarios de la banca electrónica no conocen o no practican estrategias de seguridad informática básicas como:

    • Tener un antivirus instalado y actualizado
    • Usar software actualizado, en especial los navegadores
    • No instalar programas de dudosa procedencia o no verificados
    • Manejar claves diferentes para cada servicio
    • Crear claves de más de 12 caracteres que contengan letras, números y símbolos
    • Encriptar bases de datos de claves o de información sensible
    • Entre otras

    Si a esto se le suma que muchas personas tenían el descuido de ingresar a sus cuentas bancarias a través de equipos públicos, el panorama no era alentador. Afortunadamente, el sistema de control de acceso basado en una tarjeta con coordenadas (e-key) que usaba el banco anteriormente, prevenía, en cierta medida, la mayoría de riesgos.

    Lamentablemente, una vez más, la idiosincrasia de los usuarios permitía que los datos de estas tarjetas sean divulgados al verse atacados por técnicas de ingeniería social en su mayoría. Igualmente este sistema no era compatible con ciertas versiones o tipos de navegadores, lo que complicaba aun más su eficiencia.

    ¿Era necesario, entonces, el aplicar un nuevo sistema de control? Si y no, pues depende de qué tipo de usuarios son los que mayormente hacen uso de los servicios en línea del banco. Para expertos informáticos o algo conocedores, este tipo de controles pueden parecer absurdos y molestos.

    Sin embargo, para el resto de usuarios, que seguramente representan a la mayoría, un acceso más seguro era evidentemente necesario. Por desgracia, un sistema más confiable no es necesariamente uno más sencillo, y esto es justamente lo que sucede con el presentado recientemente por esta institución.

    Lastimosamente, el anterior control de ingreso (basado en la tarjeta e-key) dejo de ser una opción, pues ahora el banco exige que todos los clientes usemos la plataforma biométrica de manera predeterminada. Esto puede resultar en un impacto negativo, pues el Internet se basa en libertades y opciones; no en ataduras, horarios o exigencias.

    Personalmente creo que al tener los dos sistemas habilitados, el banco pudo permitir el seleccionar que tipo de control de ingreso deseaba usar cada usuario. Ya sea por limitaciones tecnológicas o por falta de una adecuada política de atención al cliente, es una pena que no haya sido el caso.

    Como activar y usar el nuevo sistema biométrico

    El proceso para activar este sistema es algo engorroso pues existen muchas opciones por configurar. Esto es debido a que al tratarse de un sistema biométrico basado en la conducta, se debe crear un perfil inicial del usuario basado en sus gustos y elecciones.

    El banco ofrece un manual bastante funcional de cómo se debe activar el servicio. El proceso es básicamente el siguiente:

    • Ingrese al portal del Banco Pichincha y diríjase al control de su banca virtual
    • En la nueva pantalla, seleccione la opción para crear una nueva cuenta
    • Ingrese la clave de su tarjeta de debito (Si no tiene una, no podrá activar el servicio)
    • Indique su cedula de identidad, número de teléfono y responda al menos tres preguntas predeterminadas; cree una nueva pregunta y seleccione un dibujo de su elección (Recomiendo tomar un pantallazo de esta información pues si la olvida, no podrá acceder a su cuenta. Igualmente no olvide el borrar este archivo cuando ya no lo vaya a usar)
    • Elija un nombre de usuario y una contraseña de mínimo 12 caracteres
    • Reciba el correo de verificación que le informa sobre la activación del sistema

    Después de que haya ingresado exitosamente al sistema por al menos 10 ocasiones, podrá modificar sus preguntas o su clave.

    Posibles errores e inconvenientes que presenta el sistema

    A continuación cito algunos posibles problemas que identifique al realizar el proceso de activación. Igualmente comento sobre varias características que pudiesen resultar molestas:

    • La no posibilidad de elegir qué sistema de control de acceso usar
    • Proceso largo y que puede ser confuso para usuarios inexpertos
    • Las contraseñas no aceptan símbolos (Un grave riesgo, más que todo cuando hablamos de cuentas bancarias y dinero)
    • La plataforma no acepta el copiar y pegar información (Usuarios avanzados prefieren copiar contraseñas de una base de datos encriptada y pegarlas directamente en los campos del formulario web para minimizar el riesgo de que un keylogger robe información sensible)
    • Existen muchas opciones que el usuario debe recordar para lograr tener acceso. Debo entender que el sistema se bloquea al encontrar varios intentos fallidos de ingreso y si la cantidad de opciones es la razón, se convierte en un problema.

viernes, 11 de marzo de 2011

Google Android: Ataque a sus aplicaciones.

Investigadores de seguridad informática están tratando de descifrar el más reciente ataque de importantes aplicaciones en el mercado Android de Google, actualmente se encuentran examinando las “huellas digitales” para tratar de averiguar cómo y por qué el ataque fue perpetrado.
No está claro cuántos usuarios activaron las aplicaciones, que incluyen Super Guitar Solo, Advanced Barcode Scanner, Bubble Shoot y muchas otras más, los usuarios corren el riesgo de que sus datos personales sean robados de sus teléfonos y se envíen a un servidor en una computadora remota.

FUENTE:

SISTEMAS EXPERTOS

Los Sistemas expertos sirven para resolver cuestiones complejas, en las cuales hay muchos factores involucrados, se necesita tener en cuenta una amplia base de datos históricos, y donde se puede definir alguna regla que permita la toma de decisiones rápida. Actualmente son aplicados con éxito en: medicina, química, biología, administración, industria, etc.

Los Sistemas Expertos estan basados en conocimientos dedicados a tareas específicas que requieren una gran cantidad de conocimiento de un dominio de experiencia particular, proporcionan experiencia en forma de diagnósticos, instrucciones, predicciones o consejos ante situaciones reales que se planteen y pueden servir también como herramientas de entrenamiento. Son aplicables a numerosos campos de experiencia, como medicina, actividades militares, económicas financieras e industriales, ciencia, ingeniería, y derecho.

•Son sistemas que imitan el comportamiento de un humano.

•Utilizan la información que el usuario le proporciona para darle una opinión sobre cierta materia.

Por tanto, el sistema experto le hace preguntas hasta que pueda identificar un objeto que se relacione con sus respuestas.

Un ejemplo típico son los programas para elaboración de presupuestos. Por ejemplo, un sistema experto para imprentas permite presupuestar libros en función de número de páginas, formato, calidad y gramaje del papel, etc. Pero no se limita a multiplicar y dividir, sino que tiene en cuenta factores como el grado de ocupación de las máquinas, los tiempos posibles de entrega, las características conocidas del cliente, etc.

En el área bancaria hay sistemas que evalúan las solicitudes de créditos o tarjetas de crédito en base al historial del cliente y del banco, a los números que ofrece el interesado y a factores externos al banco. Además de la fría lógica, estos sistemas toman en cuenta el modo de proceder del personal que tiene mucha experiencia en el tema y ha desarrollado una "intuición" especial para diferenciar buenos de malos clientes.


Tipos de SE
Principalmente existen tres tipos de sistemas expertos:

  • Basados en reglas previamente establecidas.
  • Basados en casos o CBR (Case Based Reasoning).
  • Basados en redes bayesianas.


Ventajas

  • Permanencia: A diferencia de un experto humano un SE (sistema experto) no envejece, y por tanto no sufre pérdida de facultades con el paso del tiempo.
  • Duplicación: Una vez programado un SE lo podemos duplicar infinidad de veces.
  • Rapidez: Un SE puede obtener información de una base de datos y realizar cálculos numéricos mucho más rápido que cualquier ser humano.
  • Bajo costo: A pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de duplicación el coste finalmente es bajo.
  • Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o dañinos para el ser humano.
  • Fiabilidad: Los SE no se ven afectados por condiciones externas, un humano sí (cansancio, presión, etc.).
  • Consolidar varios conocimientos.

Limitaciones

  • Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no ser que se especifique que esto no es posible ya que un hombre no puede procrear hijos.
  • Lenguaje natural: Con un experto humano podemos mantener una conversación informal mientras que con un SE no podemos.
  • Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores y de errores ajenos, que un SE haga esto es muy complicado.
  • Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones relevantes de un problema y separarlas de cuestiones secundarias.
  • Capacidad sensorial: Un SE carece de sentidos.
  • Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la resolución de un problema.
  • Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco estructurado.
  • Apoyo Académico.

FUENTE:

miércoles, 16 de febrero de 2011

COMPILADOR PARA EL CONTROL DEL TIEMPO

COMPILADOR PARA EL CONTROL DEL TIEMPO

El compilador desarrollado permitirá controlar el tiempo de acuerdo al siguiente formato:

· hora:minuto:segundo:am

· hora:minuto:segundo:pm

ANALIZADOR LÉXICO

Lee la secuencia de caracteres del programa fuente, carácter a carácter, y los agrupa para formar unidades con significado propio, los componentes léxicos es decir tokens.

Expresión Regular:

(HORA CAR MINUTO CAR SEGUNDO CAR ESTADO)

Tokens y Lexemas:

TOKENS

LEXEMAS

0H

0

1H

1

2H

2

HORA

0,1,2,3,4,5,6,7,8,9

HAM

0,1

HPM

2,3,4,5,6,7,8,9

H

0,1,2,3

CAR

:

ESTADO

am,pm

MINUTO

0,1,2,3,4,5

NUMERO

0,1,2,3,4,5,6,7,8,9

SEGUNDO

0,1,2,3,4,5

Autómata Finito No Determinista:


ANALIZADOR SINTACTICO

El analizador sintáctico recibe como entrada los tokens que le pasa el Analizador Léxico y comprueba si esos tokens van llegando en el orden correcto (orden permitido por el lenguaje). La salida "teórica" de la fase de análisis sintáctico sería un árbol sintáctico.

Gramática:

G = {VT, VN, TIEMPO, R}

VN = {TIEMPO, HORA, CAR, MINUTO, SEGUNDO, ESTADO, NUMERO]

VT = {minuto, segundo, am, pm, hora, 0h, 1h, 2h, h, ham, hap, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :]

TIEMPO HORA CAR MINUTO CAR SEGUNDO CAR ESTADO

REGLAS

HORA

0h hora | 1h ham | 1h hpm | 2h h

MINUTO

minuto numero

SEGUNDO

segundo numero

CAR

:

ESTADO

ESTADOA | ESTADOP

ESTADOA

am

ESTADOP

pm

0h

0

1h

1

2h

2

hora

0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

ham

0 | 1

hpm

2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

h

0 | 1 | 2 | 3

minuto

0 | 1 | 2 | 3 | 4 | 5

segundo

minuto

numero

hora

Árbol Sintáctico:

· 11:59:59:am


· 23:00:01:pm



ANALIZADOR SEMÁNTICO

El análisis semántico es posterior al sintáctico y mucho más difícil de formalizar que éste. Se trata de determinar el tipo de los resultados intermedios, comprobar que los argumentos que tiene un operador pertenecen al conjunto de los operadores posibles, y si son compatibles entre sí, es decir, comprobará que el significado de lo que se va leyendo es válido.

Regla semánticas:

HORA.val

0h.valexhora.valex | 1h.valexham.valex | 1h.valexhpm.valex | 2h.valexh.valex

MINUTO.val

minuto.valexnumero.valex

SEGUNDO.val

segundo.valexnumero.valex

CAR.val

:

ESTADO.val

ESTADOA.valex | ESTADOP.valex

segundo.valex

minuto.valex

numero.valex

hora.valex

Árbol Semántico:

· 11:59:59:am

· 23:00:01:pm