lunes, 30 de abril de 2012

BattCursor: el cursor del mause muestra el estado de tu bateria



Esta aplicación es para aquellos que manejan Windows vista y 7, es un pequeño programa que nos permite mostrar el estado de nuestra batería directamente en el puntero o cursor del mouse.

No sólo veremos el porcentaje justo debajo del cursor, sino que el color del mismo irá variando de acuerdo al nivel de carga.

Pero esperen! Si no les agrada colorear el cursor, entonces sepan que BattCursor ofrece también otras ingeniosas alternativas para mostrar el estado de la batería. Por ejemplo, también puede cambiar el color de las ventanas y del tema en sí, para reflejar el estado de nuestra batería. Así, todo el Aero Glass pasará del típico transparente, a un transparente amarillo cuando está en menos de la mitad, y a rojo cuando esté a punto de morir o de terminarse la batería.

En resumen, BatCursor puede resultar una interesante manera de mantenernos al tanto del estado de nuestra batería, haciendo de todo el proceso algo menos deprimente, y más llamativo, es una manera de hacer un poco mas amigable nuestra interfaz de Windows.

Enlaces:


Wise Data Recovery, recupera archivos borrados o eliminados



Muchas veces por error uno borra un archivo sin querer, este tipo de accidentes es bastante común y uno cree que ya no puede hacer nada para recuperarlo. Pues, si te ha pasado eso, no te preocupes porque Wise Data Recovery podrá recuperar tus archivos borrados, un programa que es fácil de usar y hace un buen trabajo.

El programa puede recuperar archivos tipo imágenes, documentos, audio o video. También emails o archivos comprimidos. Lo que hace es scanear tu disco para encontrar los datos a recuperar, te indica el nivel de recuperación (Bueno, pobre, muy pobre o perdido).

No solo tiene una interfaz muy amigable, sino que funciona muy bien. Los controles están muy bien diseñados para hacerlo de manera sencilla. Para empezar a analizar tu disco, debes seleccionar que partición es a la izquierda del programa, de ahí hacemos clic en Scan. El programa empezará  a analizar que archivos se pueden recuperar.

Una vez que el programa haya terminado el proceso, te mostrará todos los directorios analizados al lado izquierdo de la ventana, con los archivos que se van a poder recuperar, aparece el nombre, tamaño, fecha, ubicación. Tu puedes seleccionar cualquier carpeta del directorio, y te mostrará los archivos borrados de esa carpeta en particular. Si deseas también puedes buscar un archivo específico colocando palabras claves.

Bibliografía



domingo, 22 de abril de 2012

Project Glass, proyecto de Google


Project Glass es un programa de investigación y desarrollo llevado a cabo por Google para realizar un prototipo y construir unas gafas de realidad aumentada. Aunque las gafas de realidad aumentada no son una nueva idea, Project Glass ha llamado la atención porque es más pequeño y delgado. En el futuro, los nuevos diseños permitirán la integración con las gafas normales de cada persona.

Project Glass es sin duda la conjunción en un solo dispositivo de varias tecnologías ya existentes en el mercado. La idea, sobre el papel, es buena: liberar al usuario de la incómoda interacción con el móvil y centrar ésta en algo que nos acompaña a todas horas: la vista.

Bibliografía


Dropbox, sincroniza y comparte tus archivos personales.


Esta es la imagen de la carpeta que Dropbox crea al momento de su instalación en tu computadora y en donde vas administrar tus archivos.

¿Qué es Dropbox?

Dropbox es un software que enlaza a tus computadoras mediante una sola carpeta. Es la manera más fácil de respaldar y sincronizar archivos entre computadoras. Todo este proceso de respaldo y sincronización Dropbox lo hace automáticamente únicamente necesitas instalarlo y configurarlo con información personal.

Ventajas

     La aplicación Dropbox para escritorio es un software que observa a una carpeta en tu computadora de escritorio y sincroniza cualquier modificación que ocurra en ella con la web y con otras computadoras.
·    El sitio web de Dropbox te permite acceder a tus archivos en cualquier computadora con un navegador web. Puedes también utilizar el sitio web de Dropbox para compartir tus archivos o carpetas con otras personas.
·   El sitio web de Dropbox para móviles y las apps de Dropbox te permiten conectarte a tu Dropbox desde tu bolsillo, y así poder llevarte tus archivos adondequiera que vayas.

Desventajas

·   La desventaja es que está funcionalidad de Dropbox no funciona en todos los navegadores como por ejemplo Internet Explorer y Opera, y si vamos a un cybercafé donde algunas computadoras utilizan Internet Explorer no vamos a poder disfrutar de su funcionalidad y beneficios. 

Bibliografía





SnapCrap para Windows

Bien aquí les muestro esta aplicación muy útil y fácil de usar, como lo es una cámara personal, en la cual podemos hacer captura de pantallas completas o personalizadas (área especifica), esto es similar a lo que permite Windows con su aplicación de capturas de pantallas, pero la ventaja es que directamente ésta aplicación la crea y con extensión .png y la almacena en cualquier parte de nuestro ordenador, gracias a las características que son configurables.

Además vamos a poder elegir configurar nuestros propios atajos para poder tomar las capturas, por ejemplo para tomar una captura de toda mi pantalla presiono ALT+3 y si quiero de un área específica presiono ALT+5 y así, ya que ésta aplicación por defecto trae sus propios atajos como para capturar pantalla completa es Alt+Print Screen, y para capturar una área especifica es Print Screen.

También para los que usamos redes sociales podemos enviar las capturas a nuestras redes preferidas, así por ejemplo colocando nuestro user y password desde el mismo Snapcrap podremos subir nuestras capturas a Twitter, Facebook.

Bibliografía


viernes, 20 de abril de 2012

ENCADENAMIENTO DE REGLAS


Una de las estrategias de inferencia más utilizadas para obtener conclusiones compuestas es el llamado encadenamiento de reglas. Esta estrategia puede utilizarse cuando las premisas de ciertas reglas coinciden con las conclusiones de otras. Cuando se encadenan las reglas, los hechos pueden utilizarse para dar lugar a nuevos hechos. Esto se repite sucesivamente hasta que no pueden obtenerse más conclusiones. El tiempo que consume este proceso hasta su terminación depende, por una parte, de los hechos conocidos, y, por otra, de las reglas que se activan. La estrategia de encadenamiento de reglas se da en el algoritmo siguiente:

Algoritmo.
  • Datos: Una base de conocimiento (objetos y reglas) y algunos hechos iniciales.
  • Resultado: El conjunto de hechos derivados lógicamente de ellos.
1.    Asignar a los objetos sus valores conocidos tales como los dan los hechos conocidos.
2.    Ejecutar cada regla de la base de conocimiento y concluir nuevos hechos si es posible.
3.    Repetir la Etapa 2 hasta que no puedan ser obtenidos nuevos hechos.

Este algoritmo puede ser implementado de muchas formas. Una de ellas comienza con las reglas cuyas premisas tienen valores conocidos. Estas reglas deben concluir y sus conclusiones dan lugar a nuevos hechos. Estos nuevos hechos se añaden al conjunto de hechos conocidos, y el proceso continúa hasta que no pueden obtenerse nuevos hechos. Este proceso se ilustra, a continuación, con dos ejemplos.

Ejemplo 1.  La Figura 1 muestra un ejemplo de seis reglas que relacionan 13 objetos, del A al M. Las relaciones entre estos objetos implicadas por las seis reglas pueden representarse gráficamente, tal como se muestra en la Figura 2, donde cada objeto se representa por un nodo. Las aristas representan la conexión entre los objetos de la premisa de la regla y el objeto de su conclusión. Nótese que las premisas de algunas reglas coinciden con las conclusiones de otras reglas. Por ejemplo, las conclusiones de las Reglas 1 y 2 (objetos C y G) son las premisas de la Regla 4.

Supóngase que se sabe que los objetos A, B, D, E, F, H e I son ciertos y los restantes objetos son de valor desconocido. La Figura 3 distingue entre objetos con valor conocido (los hechos) y objetos con valores desconocidos.

En este caso, el algoritmo de encadenamiento de reglas procede como sigue:
• La Regla 1 concluye que C = cierto.
• La Regla 2 concluye que G = cierto.
• La Regla 3 concluye que J = cierto.
• La Regla 4 concluye que K = cierto.
• La Regla 5 concluye que L = cierto.
• La Regla 6 concluye que M = cierto.

Puesto que no pueden obtenerse más conclusiones, el proceso se detiene.
Este proceso se ilustra en la Figura 3, donde los números en el interior de los nodos indican el orden en el que se concluyen los hechos.

    Nótese que la estrategia de encadenamiento de reglas diferencia claramente entre la memoria de trabajo y la base de conocimiento. La memoria de trabajo contiene datos que surgen durante el periodo de consulta. Las premisas de las reglas se comparan con los contenidos de la memoria de trabajo y cuando se obtienen nuevas conclusiones son pasadas también a la memoria de trabajo.


Tabla 1. Reglas
Tabla 2. Relación de las Reglas 

Tabla 3. Nodos numerados indican el orden de cómo se cumplen las reglas.

Bibliografía

Castillo, E., Gutierrez, J., & Hadi, H. (1997). Facultad de Ciencias Físico-Matemáticas. Recuperado el 20 de Abril de 2012, de http://garota.fismat.umich.mx/~htejeda/gutierjm/BookCGH.pdf.

Gutierrez, J. M. (s.f.). Departamento de Matematica Aplicada. Universidad de Cantabria . Recuperado el 20 de Abril de 2012, de http://fismat.umich.mx/~htejeda/gutierjm/Reglas.pdf








martes, 3 de abril de 2012

Sistemas Expertos

1. ¿Que es un sistema experto?

Un sistema experto es una máquina que piensa y razona como lo haría un ser vivo (experto) en una cierta especialidad o campo. Un Sistema Experto de verdad, no sólo realiza las funciones tradicionales de manejar grandes cantidades de datos, sino que también manipula esos datos de forma tal que el resultado sea claro y tenga significado para responder a preguntas. Como tal, un sistema experto debería ser capaz de procesar y memorizar información, aprender y razonar, comunicar con los hombres y/u otros sistemas expertos, tomar decisiones, y explicar por qué se han tomado tales decisiones.

En la Informática un sistema experto puede definirse como un sistema informático (hardware y software) que simula a los expertos humanos en un área específica.

2. Ejemplos de Sistemas Expertos.

Aquí detallo un poco de ejemplos desarrollados como sistemas expertos según algunas áreas:

En la química:

DENDRAL: Es capaz de calcular o descubrir hechos relativos a las estructuras moleculares a partir de unos datos químicos sin elaborar.

En la Informática:

YES/MVS: Trabaja en tiempo real ayudando aun operador a supervisar el funcionamiento de un computador bajo MVS.

En la medicina:

MYCIN: El más famoso de todos, que diagnostica infecciones en la sangre y meningitis y además sugiere el tratamiento que se debe seguir en cada caso.

PUFF: El hermano menor de MYCIN, que diagnostica y trata enfermedades del pulmón, interpretando medidas de test respiratorio.

INTERNIST: Ayuda al diagnostico de la medicina interna.

ONCOCIN: Ayuda al tratamiento de pacientes de cáncer sometidos a quimioterapias.

En la geología:

PROSPECTOR: Es un sistema de consulta para ayuda en exploraciones geológicas.

LITHO: Ayuda a los geólogos en la interpretación de datos para prospecciones petrolíferas.

DIPMETER: Infiere la estructura geológica de la superficies interpretando medidas de conductividad de rocas.

En la ingeniería:

DART: Ayuda al diagnostico de fallos en el hardware de un sistema usando información acerca de los periféricos que se están diagnosticando.

EL: Desarrolla análisis de circuitos.

Entre otros tenemos:

MOLGEN0: "MOLecular GENetics" ayuda a los biólogos que trabajan en el campo del DNA y la ingeniería genética.

PROGRAMMER'S APPRENTICE: Como su propio nombre lo indica, se trata de un sistema que ayuda a la escritura de programas.

EURISKO: Un sistema experto capaz de aprender a medida que funciona, que crea circuitos microeléctricos tridimensionales.

GENESIS: Permite a los científicos planificar y simular experimentos en el campo de la unión de genes.

EXPERT SYSTEMS TO COMBAT INTERNATIONAL TERRORISM: Para ayudar a expertos a entender la totalidad de la misión en que trabajan y asistirlos en la toma de decisiones.


3. Componentes de un Sistema Experto.

La Componente Humana

Un sistema experto es generalmente el resultado de la colaboración de uno o varios expertos humanos especialistas en el tema de estudio y los ingenieros del conocimiento. Los expertos humanos suministran el conocimiento básico en el tema de interés, y los ingenieros del conocimiento trasladan este conocimiento a un lenguaje, que el sistema experto pueda entender. La colaboración de los expertos humanos, los ingenieros del conocimiento y los usuarios es, quizás, el elemento más importante en el desarrollo de un sistema experto. Esta etapa requiere una enorme dedicación y un gran esfuerzo debido a los diferentes lenguajes que hablan las distintas partes y a las diferentes experiencias que tienen.

La Base de Conocimiento

Los especialistas son responsables de suministrar a los ingenieros del conocimiento una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos humanos repiensen, reorganicen, y restructueren la base de conocimiento y, como resultado, el especialista se convierte en un mejor conocedor de su propio campo de especialidad.
Hay que diferenciar entre datos y conocimiento. El conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. Los datos se refieren a la información relacionada con una aplicación particular.

Subsistema de Adquisición de Conocimiento

El subsistema de adquisición de conocimiento controla el flujo del nuevo conocimiento que fluye del experto humano a la base de datos. El sistema determina que nuevo conocimiento se necesita, o si el conocimiento recibido es en realidad nuevo, es decir, si debe incluirse en la base de datos y, en caso necesario, incorpora estos conocimientos a la misma.

Control de la Coherencia

El subsistema de control de la coherencia ha aparecido en los sistemas expertos muy recientemente. Sin embargo, es una componente esencial de un sistema experto. Este subsistema controla la consistencia de la base de datos y evita que unidades de conocimiento inconsistentes entren en la misma. En situaciones complejas incluso un experto humano puede formular afirmaciones inconsistentes. Por ello, sin un subsistema de control de la coherencia, unidades de conocimiento contradictorio pueden formar parte de la base de conocimiento, dando lugar a un comportamiento insatisfactorio del sistema. Es también bastante común, especialmente en sistemas con mecanismos de propagación de incertidumbre, que se llegue a conclusiones absurdas o en conflicto como, por ejemplo, situaciones en las que el sistema genera probabilidades mayores que la unidad o negativas. Por ello, el subsistema de control de la coherencia comprueba e informa a los expertos de las inconsistencias.

El Motor de Inferencia

El motor de inferencia es el corazón de todo sistema experto. El cometido principal de esta componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en diagnostico medico, los síntomas de un paciente (datos) son analizados a la luz de los síntomas y las enfermedades y de sus relaciones (conocimiento). Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilístico. Como puede esperarse, el tratamiento de situaciones de incertidumbre (probabilísticas) puede ser considerablemente más difícil que el tratamiento de situaciones ciertas (deterministas).

En muchos casos, algunos hechos (datos) no se conocen con absoluta certeza. Por ejemplo, piense en un paciente que no esta seguro de sus síntomas. Puede darse el caso de tener que trabajar con conocimiento de tipo no determinista, es decir, de casos en los que se dispone sólo de información aleatoria o difusa. El motor de inferencia es también responsable de la propagación de este conocimiento incierto. De hecho, en los sistemas expertos basados en probabilidad, la propagación de incertidumbre es la tarea principal del motor de inferencia, que permite sacar conclusiones bajo incertidumbre. Esta tarea es tan compleja que da lugar a que ésta sea probablemente la componente más débil de casi todos los sistemas expertos existentes. .

El Subsistema de Adquisición de Conocimiento

Si el conocimiento inicial es muy limitado y no se pueden sacar conclusiones, el motor de inferencia utiliza el subsistema de adquisición de conocimiento para obtener el conocimiento necesario y continuar con el proceso de inferencia hasta que se hayan sacado conclusiones. En algunos casos, el usuario puede suministrar la información requerida para éste y otros objetivos. De ello resulta la necesidad de una interface de usuario y de una comprobación de la consistencia de la información suministrada por el usuario antes de introducirla en la memoria de trabajo.

Interface de Usuario

La interface de usuario es el enlace entre el sistema experto y el usuario. Por ello, para que un sistema experto sea una herramienta efectiva, debe incorporar mecanismos eficientes para mostrar y obtener información de forma fácil y agradable. Un ejemplo de la información que tiene que ser mostrada tras el trabajo del motor de inferencia, es el de las conclusiones, las razones que expliquen tales conclusiones y una explicación de las acciones iniciadas por el sistema experto. Por otra parte, cuando el motor de inferencia no puede concluir debido, por ejemplo, a la ausencia de información, la interface de usuario es un vehículo para obtener la información necesaria del usuario. Consecuentemente, una implementación inadecuada de la interface de usuario que no facilite este proceso cambiaría notablemente la calidad de un sistema experto. Otra razón de la importancia de la interface de usuario es que los usuarios evalúan comúnmente los sistemas expertos y otros sistemas por la calidad de dicha interface más que por la del sistema experto mismo, aunque no se debería juzgar la calidad de un libro por su portada.

El Subsistema de Ejecución de Ordenes

El subsistema de ejecución de órdenes es la componente que permite al sistema experto iniciar acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia. Como ejemplos, un sistema experto diseñado para analizar el tráfico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el tráfico global, o un sistema para controlar una central nuclear puede abrir o cerrar ciertas válvulas, mover barras, etc., para evitar un accidente. La explicación de las razones por las que se inician estas acciones puede darse al usuario mediante el subsistema de explicación.

 @ El Subsistema de Explicación

El usuario puede pedir una explicación de las conclusiones sacadas o de las acciones iniciadas por el sistema experto. Por ello, es necesario un subsistema que explique el proceso seguido por el motor de inferencia o por el subsistema de ejecución. Por ejemplo, si un cajero automático decide rechazar la palabra clave (una acción), la máquina puede mostrar un mensaje (una explicación) como la siguiente: ¡Lo siento!, su palabra clave es todavía incorrecta tras tres intentos. Retenemos su tarjeta de crédito, para garantizar su seguridad. Por favor, póngase en contacto con su banco en horas de oficina.

@ El Subsistema de Aprendizaje

Una de las principales características de un sistema experto es su capacidad para aprender. Diferenciaremos entre aprendizaje estructural y aprendizaje paramétrico. Por aprendizaje estructural nos referimos a algunos aspectos relacionados con la estructura del conocimiento (reglas, distribuciones de probabilidad, etc.). Por ello, el descubrimiento de nuevos síntomas relevantes para una enfermedad o la inclusión de una nueva regla en la base de conocimiento son ejemplos de aprendizaje estructural. Por aprendizaje paramétrico nos referimos a estimar los parámetros necesarios para construir la base de conocimiento. Por ello, la estimación de frecuencias o probabilidades asociadas a síntomas o enfermedades es un ejemplo de aprendizaje paramétrico. Otra característica de los sistemas expertos es su habilidad para obtener experiencia a partir de los datos disponibles. Estos datos pueden ser obtenidos por expertos y no expertos y pueden utilizarse por el subsistema de adquisición de conocimiento y por el subsistema de aprendizaje.


4. Desarrollo de un Sistema Experto.

  1. Planteamiento del problema.
 La primera etapa en cualquier proyecto es normalmente la definición del problema a resolver. Puesto que el objetivo principal de un sistema experto es responder a preguntas y resolver problemas, esta etapa es quizás la más importante en el desarrollo de un sistema experto. Si el sistema está mal definido, se espera que el sistema suministre respuestas erróneas.

  1. Encontrar expertos humanos que puedan resolver el problema.
 En algunos casos, sin embargo, las bases de datos pueden jugar el papel del experto humano.

  1. Diseño de un sistema experto.
 Esta etapa incluye el diseño de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, la interface de usuario, etc.

  1. Elección de la herramienta de desarrollo, concha, o lenguaje de programación.
 Debe decidirse si realizar un sistema experto a medida, o utilizar una concha, una herramienta, o un lenguaje de programación. Si existiera una concha satisfaciendo todos los requerimientos del diseño, ésta debería ser la elección, no sólo por razones de tipo financieros sino también por razones de habilidad. Las conchas y herramientas comerciales están sujetas a controles de calidad, a los que otros programas no lo están.

  1. Desarrollo y prueba de un prototipo.
 Si el prototipo no pasa las pruebas requeridas, las etapas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta que se obtenga un prototipo satisfactorio.

  1. Refinamiento y generalización.
 En esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseño inicial.

  1. Mantenimiento y puesta al día.
 En esta etapa el usuario plantea problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc.

Bibliografía:

Castillo E, Gutiérrez J.M, Hadi A.S. Sistemas Expertos y Modelos de Redes Probabilísticas. España: Universidad de Cantabria. 

Santisteban A. Introducción a los Sistemas Expertos, IBM Santander 1987 jun 29. [cited 2012 mar 30]: Universidad Internacional Menendez Pelayo.