martes, 9 de diciembre de 2008

Lenguaje de Modelado Unificado

La ingeniería del software nace como una disciplina para aplicar los principios técnicas y herramientas para el desarrollo del software, surgió porque todos los desarrolladores en la década de los años 1980, realizaban el software de forma artesanal, es decir utilizando métodos y técnicas adhoc donde la experiencia, basada en el ensayo-error, era el camino a seguir. Este enfoque produjo grandes y exitosos productos de programación pero conforme los proyectos se volvieron más complejos debido al avance del hardware y software y la penetración cada vez mayor de la informática en todos los ámbitos de la sociedad, llevó a que se produjera software sin calidad, se incumplieran los presupuestos y se incrementara dramáticamente los costos de mantenimiento.

La solución propuesta fue aplicar métodos y principios utilizados y probados en el desarrollo de productos software para conseguir de forma inequívoca productos que corran eficientemente y se ejecuten sobre máquinas reales. En la década de los años 1970 surgieron una gran variedad de metodologistas y metodologías entre ellos se destacan Yourdon y Demarco cuyas investigaciones se basaban en los principios de la programación estructurada. En los años 1980 y 1990 el paradigma estructurado evolucionó hacia el paradigma orientado a objetos, en el período de 1989 y 1994 se creó la llamada guerra de métodos dentro de la comunidad orientada a objetos existiendo un incremento de menos de diez a más de cincuenta metodologías, es así que los desarrolladores de software quedaron muy confundidos sin saber cual era la metodología más adecuada para elaborar sus proyectos.

El “lenguaje de modelado unificado” es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. Se ha convertido en el estándar de facto de la industria, debido a que fue concebido por los autores de los tres métodos más utilizados de la orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación unificada en la que basar la construcción de sus herramientas de ayuda a la ingeniería del software. En el proceso de creación del lenguaje de modelado unificado han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett-Packard, Oracle e IBM, así como grupos de analistas y desarrolladores. Esta notación ha sido ampliamente aceptada debido al prestigio de sus creadores y debido a que incorpora las principales ventajas de cada uno de los métodos particulares en los que se basa: Booch, OMT y OOSE. El lenguaje de modelado unificado ha puesto fin a la llamada “guerra de métodos” que se ha mantenido a lo largo de los años 1990, en las que los principales métodos sacaban nuevas versiones que incorporaban las técnicas de los demás. Con el lenguaje de modelado unificado se fusiona la notación de estas técnicas para formar una herramienta compartida entre todos los ingenieros del software que trabajan en el desarrollo orientado a objetos.

El objetivo principal cuando se empezó a gestar el lenguaje de modelado unificado era posibilitar el intercambio de modelos entre las distintas herramientas para ayuda a la ingeniería del software orientada a objetos del mercado. Para ello era necesario definir una notación y semántica común. Se debe tomar en cuenta que el estándar UML no define un proceso de desarrollo específico, tan solo se trata de una notación. Una buena parte de los ingenieros del software se inclinan por utilizar el proceso propuesto por Craig Larman el año 1999 que se ajusta a un ciclo de vida evolutivo e incremental dirigido por casos de uso.

Es importante resaltar que el lenguaje de modelado unificado es un “modelo” para especificar y no para describir métodos o procesos. Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software, tal como el Proceso Unificado Racional, pero no especifica en sí mismo qué metodología o proceso utilizar de manera exclusiva. El lenguaje de modelado unificado no puede compararse con la programación estructurada, pues este lenguaje no es un lenguaje de programación, solo diagrama la realidad de un requerimiento. Mientras que, la programación estructurada, es un elemento útil para el diseño de procedimientos o programas como lo es la orientación a objetos, sin embargo, la orientación a objetos viene siendo un complemento perfecto del lenguaje de modelado.

El lenguaje de modelado unificado cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas. En la versión 2.0 del lenguaje de modelado unificado hay 13 tipos diferentes de diagramas. Para comprenderlos de manera concreta, a veces es útil categorizar jerárquicamente, en este entendido los diagramas del lenguaje de modelado unificado se dividen en tres grandes grupos: (1) Los diagramas de estructura, que enfatizan en los elementos que deben existir en el sistema modelado. Estos a su vez comprenden los siguientes diagramas: diagrama de clases, diagrama de componentes, diagrama de objetos, diagrama de estructura compuesta, diagrama de despliegue y diagrama de paquetes. (2) Los diagramas de comportamiento, enfatizan en lo que debe suceder en el sistema modelado, estos comprenden los siguientes diagramas: diagrama de actividades, diagrama de casos de uso y diagrama de estados. (3) Los diagramas de interacción, son un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado. Estos diagramas comprenden los siguientes diagramas: diagrama de secuencia, diagrama de colaboración, diagrama de tiempos y diagrama de vista de interacción.

Algunos de los programas más populares para el modelado en el lenguaje de modelado unificado, utilizando software libre, son: (1) ArgoUML. Herramienta de modelado escrito en Java. (2) BOUML. Es una herramienta de lenguaje de modelado unificado y genera código en lenguaje C++, Java e IDL. Disponible para Windows, Unix/Linux y Mac OS. (3) Fujaba. No solo sirve para modelar sino que puede generar código Java automáticamente. También es capaz de hacer ingeniería inversa y crear los diagramas a partir de código Java. (4) Dia. Puede ser usado para modelar varios tipos de diagramas del lenguaje de modelado unificado. (5) gModeler. Herramienta para modelado del lenguaje de modelado unificado basada en Flash, utilizable desde el navegador, que permite generar código Action Script 2.0 Compatible (6) MonoUML. Herramienta de ayuda a la ingeniería del software para la plataforma mono. (7) Papyrus. Herramienta gráfica basada en Eclipse para el modelado con el lenguaje de modelado unificado, es de código abierto y se ofrece bajo licencia EPL. (8) StarUML. Herramienta de modelado para Windows desarrollada en Delphi. Bastante estable y utilizable. (9) TCM. Herramienta para crear diversos tipos de diagramas incluidos el lenguaje de modelado unificado. (10) Umbrello. Herramienta para modelar el lenguaje de modelado unificado para el entorno KDE. (11) UMLet. Herramienta para el modelado rápido del lenguaje de modelado unificado, también escrita en Java.

En su visión general, el lenguaje de modelado unificado, se utiliza para (1) Visualizar. Para muchos programadores, la distancia entre pensar en el diseño de un requerimiento y transformarlo en código es casi cero. Según estos programadores lo que utilizan es “lo piensas, lo codificas”. De hecho, algunas cosas pequeñas se modelan mejor directamente en código, El texto es un medio maravilloso para escribir expresiones y algoritmos de forma concisa y directa. En tales casos, el programador todavía esta haciendo algo de modelado, si bien lo hace en una forma complemente mental. Incluso puede bosquejar algunas ideas sobre una pizarra blanca o sobre una servilleta. Sin embargo, esto plantea bastantes problemas, especialmente cuando los problemas ya no son de juguete. (2) Especificar. En este contexto, especificar significa construir modelos precisos, no ambiguos y completos. En particular, el lenguaje de modelado unificado cubre la especificación de todas las decisiones de análisis, diseño e implementación que deben realizarse al desarrollar y desplegar un sistema con gran cantidad de software. (3) Construir. El lenguaje de modelado unificado no es un lenguaje de programación visual, pero sus modelos pueden conectarse de forma directa a una gran variedad de lenguajes de programación. Las cosas que se expresan mejor gráficamente también se representan gráficamente en el lenguaje de modelado unificado, mientras que las cosas que se expresan mejor textualmente se plasman con un lenguaje de programación. (4) Documentar. Una organización de software que trabaje bien produce toda clase de artefactos, incluida su documentación, además de código ejecutable.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 25 de 2008

Mecatrónica


En la edad media la división del trabajo propició el ambiente para la primera revolución industrial que desarrolló a la sociedad y en especial a los países que crearon máquinas para el aumento de la cantidad y calidad de los productos de consumo masivo. A mediados de los años 1940, la introducción del transistor semiconductor inicia la denominada “segunda revolución industrial”, la miniaturización de los componentes electrónicos acoplados en circuitos integrados, dio origen a la computadora digital, un producto que cambió la mentalidad en la industria y en la sociedad. En esa época, los países que emplearon, pero especialmente aquellos que produjeron las tecnologías, se pusieron a la vanguardia de la sociedad. Dentro de ese contexto, surge la mecatrónica como un concepto nuevo en torno a las tecnologías, que se encarga de integrar los productos específicos de esas dos revoluciones: la integración de las máquinas a las computadoras digitales, para crear un nuevo ambiente o paradigma en el tercer milenio.

La mecatrónica surge de la combinación sinérgica de distintas ramas de la ingeniería, entre las que destacan: la mecánica de precisión, la electrónica, la informática y los sistemas de control. Su principal propósito es el análisis y diseño de productos y de procesos de manufactura automatizados. El término “mecatrónica” fue introducido por primera vez el año 1969 por el ingeniero Tetsuro Mori, trabajador de la empresa japonesa Yaskawa. En un principio se definió como la integración de la mecánica y la electrónica en una máquina o producto, pero luego se consolidó como una especialidad de la ingeniería e incorporó otros elementos como los sistemas de computación, los desarrollos de la microelectrónica, la inteligencia artificial, la teoría de control y otros relacionados con la informática, estabilidad y alcanzabilidad. Teniendo como objetivo la optimización de los elementos industriales a través de la optimización de cada uno de sus subprocesos con nuevas herramientas sinérgicas.

La definición de mecatrónica propuesta por J.A. Rietdijk menciona lo siguiente: “mecatrónica es la combinación sinérgica de la ingeniería mecánica de precisión, de la electrónica, del control automático y de los sistemas para el diseño de productos y procesos para una producción con mayor plusvalía y calidad”. La mecatrónica tiene como antecedentes inmediatos a la investigación en el área de la cibernética realizada en 1936 por Alan Turing y en 1948 por Norbert Wiener, las máquinas de control numérico, desarrolladas inicialmente en 1946 por Devol, los manipuladores, ya sean teleoperados, en 1951 por Goertz, o robotizados, en 1954 por Devol, y los autómatas programables, desarrollados por Bedford Associates en 1968. En 1969 la empresa japonesa Yaskawa Electric, acuña el término mecatrónica, recibiendo en 1971 el derecho de marca. En 1982 Yaskawa permite el libre uso del término.

Una manera interesante y sencilla de definir la mecatrónica es: “Diseño y construcción de sistemas mecánicos inteligentes”. Un sistema mecatrónico se compone principalmente de mecanismos, actuadores, control inteligente y sensores. Tradicionalmente la mecánica se ha ocupado solo de los mecanismos y los actuadores, y opcionalmente puede incorporar control. La mecatrónica integra obligatoriamente el control en lazo cerrado y por lo tanto también a los sensores. Un sistema mecatrónico es aquel sistema digital que recoge señales, las procesa y emite una respuesta por medio de actuadores, generando movimientos o acciones sobre el sistema en el que se va a actuar: Los sistemas mecánicos están integrados con sensores, microprocesadores y controladores. Los robots, las máquinas controladas digitalmente, los vehículos guiados automáticamente, y otros similares se deben considerar como sistemas mecatrónicos.

En la etapa de industrialización el trabajo manual disperso, o trabajo artesanal, es agrupado en la fábrica y gradualmente sustituido por el trabajo mecánico realizado mediante dispositivos y mecanismos que configuran las maquinas. El uso de energía hidráulica para el movimiento de los mecanismos fue el primer paso hacia la mecanización; posteriormente se empleó la energía térmica. Actualmente la mecanización de las operaciones de manufactura significa el empleo de mecanismos movidos con energía hidráulica, neumática, térmica, eléctrica o una combinación de estas. La etapa de mecanización significa el empleo intensivo y extensivo de estas formas de energía para el movimiento de los mecanismos. La etapa de automatización industrial programable, reprogramable y flexible, adviene con la creación de la electrónica y el control digital de las operaciones de manufactura y mecanismos, es decir, con la mecatrónica.

La integración de las maquinas de control numérico computarizado con los robots industriales, mediante una computadora digital, para su programación y control, da origen a los sistemas flexibles de manufactura y sistemas flexibles de montaje, que son la expresión moderna de los sistemas de manufactura tradicionales. La manufactura integrada por computadora es la estrategia de desarrollo de estas tecnologías avanzadas de manufactura, basadas en la automatización electrónica. Todo este desarrollo ha sido posible gracias a la integración de sistemas mecánicos, electrónicos y computarizados para la automatización industrial.

Los factores primarios para la generación de valor agregado que dominan hoy en día el mercado globalizado son la innovación, la automatización, la sofistificación y la gerencia estratégica, todos ellos dependen de sistemas de software inteligente. Los japoneses han liderado por más de veinte años los productos y sistemas robotizados y mecatrónicos, pero no el software inteligente. El año 1989 un grupo de investigadores de Tokio que visitaba varias industrias y agencias federales de los Estados Unidos, en reconocimiento de esta situación, propuso unir a los investigadores de las dos naciones en una nueva área integrada interdisciplinaria en el campo de la manufactura llamada sistemas de manufactura inteligente. Los sistemas de manufactura inteligente pueden ser considerados como la integración de la mecatrónica inteligente y la manufactura integrada por computadora, que combina disciplinas tales como la ingeniería industrial, la ingeniería eléctrica, la ingeniería mecánica, la ciencia de las computadoras, la inteligencia artificial y los sistemas expertos, las cuales combinadas con sensores inteligentes, motores y circuitos digitales, permiten el avance en precisión y control de sistemas de manufactura de tiempo real.

En cuanto a aplicaciones, los rubros mas importantes son robótica, sistemas de transporte, sistemas de manufactura, máquinas de control numérico, nanomáquinas y biomecatrónica. La robótica es la parte de la técnica de diseño y construcción de autómatas flexibles y reprogramables, capaces de realizar diversas funciones. Es el nivel de automatización más flexible y en mucho indica las tendencias futuras del resto de la mecatrónica. Las líneas de investigación más desarrolladas son: síntesis de manipuladores y herramientas, manipuladores de cadena cinemática cerradas, robots autónomos, robots cooperativos, control y teleoperación asincrónicas, estimación del ambiente, comportamiento inteligente, interfaces hápticas, navegación y locomoción. La aplicación de la mecatrónica en el transporte se desarrolla en el diseño de mecanismos activos, el control de vibraciones, estabilización de mecanismos y la navegación autónoma. En la manufactura, la mecatrónica se ha servido de los modelos de sistemas a eventos discretos, y los ha aplicado para el diseño óptimo de líneas de producción así como la optimización de procesos ya existente. También ha ayudado a automatizar las líneas de producción y generar el concepto de manufactura flexible.

Antecedentes de la mecatrónica son las máquinas de control numérico. En este tema los desarrollos más recientes son: análisis, detección y control de vibraciones, y temperatura, en las herramientas de corte, diagnóstico de las herramientas de corte y prototipaje rápido, electroerosionado y síntesis por láser. Las nanomáquinas son un área que se han beneficiado de los desarrollos de la mecatrónica. Un ejemplo muy evidente es el desarrollo del disco duro. Las líneas de investigación más manejadas son: micromanejo, microactuadores y micromaquinado. La biomecatrónica es la aplicación de la mecatrónica para resolver problemas de sistemas biológicos, en particular el desarrollo de nuevos tipos de prótesis, simuladores quirúrgicos, control de posición de instrumental médico, sillas de ruedas y teleoperación quirúrgica.

Guillermo Choque Aspiazu
http://www.eldiario.net
Agosto 18 de 2008

jueves, 20 de noviembre de 2008

Realidad Virtual para la Educación

La información y el conocimiento se han ido convirtiendo en la sociedad compleja y globalizadora de este final de siglo, ambas constituyen la principal fuente de producción de riqueza. El investigador Lévy el año 1995 menciona que se puede objetar que siempre ha sido siempre así: el cazador, el agricultor, el soldado, el artesano o el comerciante necesariamente debían adquirir ciertas competencias e informarse sobre su entorno para realizar su trabajo. Lo que ha cambiado, añade este autor francés, es la relación radicalmente nueva que se experimenta con el conocimiento a partir del final de la segunda guerra mundial, y en particular desde los años 1970. Hasta la segunda mitad del siglo XX, una persona adulta ponía en práctica en su trabajo las competencias adquiridas en su juventud. Muchas veces, transmitía su saber, casi invariable, a hijos o aprendices. Actualmente, este esquema es totalmente obsoleto. No sólo la gente está llamada a cambiar muchas veces de oficio a lo largo de su vida sino que, en el interior del mismo oficio o profesión, los conocimientos tienen un ciclo de renovación continua más corto.

Así cada vez es más difícil determinar indicar las competencias “de base” en un disciplina. Nuevas técnicas o nuevas configuraciones socioeconómicas pueden en todo momento poner en cuestión el orden y la importancia de los conocimientos. Los saberes estables de antaño han dejado paso a la necesidad del aprendizaje permanente. El aprender, producir y transmitir conocimientos no es ya asunto exclusivo de una casta de especialistas, sino del conjunto de la comunidad. En la actualidad, discutir sobre la calidad de la educación no es referirse solamente a la necesidad de ofrecer una mejor formación en términos cuantitativos sino también de la obligación que tiene la sociedad de dotar a sus miembros de las habilidades y conocimientos imprescindibles para vivir y trabajar en la complejidad del mundo contemporáneo. Una formación diferente a la tradicional que implica infraestructuras tecnológicas y sistemas de aprendizaje diferentes.

Las técnicas multisensoriales interactivas, como la realidad virtual, ofrecen posibilidades extraordinarias a este respecto. De hecho, la realidad virtual sumada a redes avanzadas de telecomunicación, permite imaginar un entorno de enseñanza, en el cual sea posible experimentar la presencia del profesor y de otros compañeros de estudio e intercambiar opiniones y material con ellos como si estuvieran juntos sin necesidad de que ninguno de los participantes deba moverse del lugar en que se encuentre previamente al inicio de la clase. En este nuevo contexto el papel tradicional del profesor cambia, dejando de ser un mero transmisor de conocimientos más o menos válidos, para convertirse en el de instructor de unos estudiantes que aprenden gracias a la ayuda de la tecnología, que es la que proporciona recursos interactivos de aprendizaje. En estas condiciones “la realidad virtual puede ser un excelente profesor en cualquier materia”

Las técnicas de la realidad virtual aparecen a los ojos de muchos expertos como el medio definitivo de entrada de la informática en los procesos de formación y entrenamiento. En tal sentido la enseñanza constituye uno de los ámbitos de uso social más prometedores para la difusión de este emergente medio de comunicación y simulación digital, que puede considerarse una forma perfeccionada de multimedia. Ningún sistema multimedia constituye todavía una verdadera alternativa a los métodos pedagógicos convencionales. Sin embargo, las técnicas de la realidad virtual están ya dando lugar al desarrollo de nuevas formas de aprendizaje basadas en la participación activa de los alumnos, viendo, oyendo, haciendo las cosas que aprenden. Estas técnicas de la experimentación virtual, en opinión de algunos autores, pueden transformar completamente la pedagogía. Dentro de la extendida tendencia a magnificar el alcance de las tecnologías digitales, no faltan expertos que afirman que la realidad virtual y la tecnología de las redes telemáticas, una y otra última íntimamente ligadas, no sólo están redefiniendo el modo en que se aprende, sino que constituyen la primera alternativa verdadera a las viejas instituciones educativas.

La aparición de Internet como medio de comunicación ha supuesto que el acceso a la información sea sencillo y rápido. La mayor parte de esta información reside en las conocidas aplicaciones Web, que suelen presentar texto e imágenes en dos dimensiones. El mundo real es tridimensional, por lo que al reducir el “mundo” Web a sólo dos dimensiones se está perdiendo información, de ahí la conveniencia de la integración de una tercera dimensión que permita, por ejemplo, recorrer las instalaciones de un museo o de una universidad hasta llegar a la información que interese al visitante. Esto ya es una realidad que puede conseguirse a través de un lenguaje de modelado de realidad virtual.

El lenguaje de modelado de realidad virtual se utiliza, entre otras cosas, para el desarrollo de aplicaciones de realidad virtual en Internet, en forma de mundos virtuales compuestos de un espacio, normalmente tridimensional, donde los objetos son interactivos. En estos mundos virtuales el usuario podrá adentrarse, eligiendo entre varias perspectivas, e interactuar con los objetos que allí se encuentran. Esta tecnología es cada vez más accesible para el usuario medio, quién puede disponer de mejores equipos multimedia a precios asequibles. La especificación original del lenguaje de modelado de realidad virtual, en su versión inicial, data de octubre del año 1994, y estaba basado en un producto de la Compañía Silicon Graphics.

Una de las principales aplicaciones de la realidad virtual en el ámbito académico es la formación en facultades de medicina, especialmente en las materias de anatomía y cirugía. En la Universidad de Washington se está experimentando con clases demostrativas de cirugía virtual. En esta universidad se ha creado un “cadáver virtual”, donde los estudiantes pueden empuñar un bisturí virtual y practicar. En este sentido es fácil imaginar un mundo virtual creado con el lenguaje de modelado de la realidad virtual que represente un quirófano virtual completo, en el que se recogieran las mejores técnicas quirúrgicas de distintos médicos de cualquier parte del mundo; esta información podría servir de aprendizaje para los estudiantes de medicina y también para otros médicos. Los sistemas de realidad virtual tienen también aplicación en la enseñanza de las artes. En Canadá se ha desarrollado el sistema “Mandala”, con el que estudiantes de danza aprenden movimientos de baile, y practican y desarrollan su habilidad musical utilizando instrumentos “virtuales”. Los estudiantes de arquitectura también pueden beneficiarse de la realidad virtual a través de programas educativos para el aprendizaje del diseño de diferentes tipos de edificios. Además, la integración de herramientas de diseño, como AutoCAD, con herramientas de animación tridimensional, como 3DStudio, y los editores del lenguaje de modelado de la realidad virtual permiten la construcción, en Internet, de edificios virtuales de gran complejidad en los que una persona puede introducirse para recorrerlos hasta el último rincón y observar hasta el mínimo detalle de su construcción y decoración.

Una de las aplicaciones educativas más notorias de la realidad virtual es el entrenamiento técnico, especialmente el de pilotos de aeronaves. En este caso, con esta tecnología se evitan riesgos que se presentan en el entrenamiento real, tales como tormentas o vientos fuertes que pueden causar accidentes al avión real si el piloto no tiene la suficiente pericia para salir adelante en estas situaciones. Pilotos de aerolíneas y del ejército utilizan simuladores de realidad virtual para medir sus reacciones en medio de circunstancias virtuales peligrosas. Además de su utilización en estos y otros campos del conocimiento, siempre existe la posibilidad de aplicar la realidad virtual para la creación de los propios centros de enseñanza. En este sentido, ya se está experimentando con universidades, campus, bibliotecas, laboratorios y aulas virtuales.

En el caso de las aulas, éstas son un medio interactivo que permite a los estudiantes la inmersión en el ambiente de una clase simulada cuando emprenden la realización de un curso de enseñanza asistido por computadora. Algunos defensores de este tipo de recurso educativo llegan a afirmar, en su favor, que “donde la era de la televisión ha producido gente pasiva, estudiantes desocupados con índices cortos de atención, el ciberespacio puede ser capaz de cautivarlos y fomentar el involucramiento activo en su propia educación”. La existencia de laboratorios virtuales está favoreciendo esta participación activa, mediante la experimentación de fenómenos físicos y químicos, ya que los estudiantes pueden interactuar con los experimentos, incrementando así su interés.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 11 de 2008

sábado, 8 de noviembre de 2008

Conjuntos Aproximados

Con la revolución digital capturar información es fácil y almacenarla es extremadamente barata. Para los científicos los datos representan observaciones cuidadosamente recogidas de algún fenómeno en estudio; en los negocios, los datos guardan informaciones sobre mercados, competidores y clientes; en procesos industriales, recogen valores sobre el cumplimiento de objetivos; pero, en general, los datos en bruto raramente son provechosos. Su verdadero valor radica en la posibilidad de extraer información útil para la toma de decisiones o la exploración y comprensión de los fenómenos que dieron lugar a los datos. Con el crecimiento actual de los volúmenes de información en las bases de datos, tanto científica como corporativa, la necesidad de determinar qué información es realmente importante se convierte en un reto para los desarrolladores con fines de facilitar las tareas para la minería de datos y el aprendizaje automático. Por tanto, el pre-procesamiento de los datos es esencial en un problema real de cualquier rama de la ciencia: informática, medicina, economía, finanzas, industria, medio ambiente, entre otras.

Una herramienta matemática muy potente para la clasificación, selección y análisis de datos, es la teoría de conjuntos aproximados, propuesta por el profesor polaco Z. Pawlak y su equipo en el año 1982. La filosofía de los conjuntos aproximados se basa en asumir que existe información asociada con cada objeto del universo del discurso. Un conjunto de entrenamiento se representa por una tabla donde cada fila representa un objeto y cada fila un atributo, a este conjunto se le llama sistema de información, más formalmente, es un par ordenado de un conjunto no vacío y finito de objetos llamado universo y un conjunto no vacío y finito de atributos. El modelo de los conjuntos aproximados posee importantes ventajas en el análisis de datos. La principal se basa únicamente en los datos originales y no requiere de información externa para obtener conocimiento sobre el sistema, de forma que no es necesario hacer suposiciones sobre este; la otra ventaja importante consiste en que esta herramienta permite analizar atributos tanto cuantitativos como cualitativos.

Con frecuencia se almacenan grandes volúmenes de información en bases de datos con diferentes objetivos; estos pueden ser adquiridos de mediciones obtenidas por expertos humanos o de representaciones de hechos específicos de problemas de la vida cotidiana. Una base de datos puede contener cierta cantidad de atributos que son redundantes u objetos que se encuentran repetidos en distintos niveles de esta, pero sobre todo sucede que contiene información insuficiente o incompleta. La teoría de conjuntos aproximados emerge desde el contexto del aprendizaje supervisado, donde los conjuntos de datos se refieren a un universo de objetos descritos por un conjunto de atributos y cada objeto pertenece a una clase predefinida por uno de los atributos, llamado atributo de decisión. Para una aproximación inicial, considere que cada conjunto de datos está representado por una tabla, donde cada fila constituye un caso, un evento, un paciente o simplemente un objeto; y cada columna, un atributo que puede ser una variable, una observación, una columna, una propiedad, etc., tal que posee un valor específico para cada objeto. A esta tabla se le denomina sistema de información.

Un sistema de información es un par compuesto por un conjunto finito no vacío llamado el universo y un conjunto finito no vacío de rasgos. Los elementos del universo son llamados objetos. Un sistema de decisión es un par compuesto por el universo y un atributo de decisión. Los conceptos básicos de la teoría de los conjuntos aproximados son las aproximaciones inferiores y superiores de un subconjunto que es conjunto propio del universo. Estos conceptos fueron originalmente introducidos con referencia a una relación de indiscernibilidad. Dicha relación es una relación binaria definida sobre el universo, la cual representa la indiscernibilidad, se dice que esta relación, en función de un elemento del universo, significa el conjunto de objetos los cuales son indiscernibles a dicho elemento.

La teoría de conjuntos aproximados es adecuada para problemas que pueden ser formulados cómo tareas de clasificación y ha ganado un significante interés científico como estructura de minería de datos y descubrimiento de conocimiento. La base de la teoría de los conjuntos aproximados está en la suposición de que cada objeto del universo de discurso tiene rasgos característicos, los cuales son presentados por conocimiento acerca del objeto. Los objetos que tienen las mismas características son indiscernibles. La teoría ofrece herramientas matemáticas para descubrir patrones escondidos en los datos, identifica dependencias parciales o totales, es decir relaciones causa–efecto, elimina redundancia en los datos, proporciona aproximaciones a valores nulos, datos perdidos, datos dinámicos etc.

Los pasos seguidos en la estructura de conjuntos aproximados son los siguientes: (1) Selección. El vehículo básico para la representación de datos en la estructura de la teoría de conjuntos aproximados es plano, tablas de datos en dos dimensiones. Esto no implica que la tabla sea una simple tabla física, una tabla puede ser una vista lógica entre algunas tablas adyacentes. Una tabla adecuada es seleccionada para análisis subsecuentes. Las columnas de las tablas son llamadas atributos, las filas objetos, y las entradas en la tabla son los valores de los atributos. (2) Pre-procesamiento. Si la tabla seleccionada contiene “huecos” en forma de valores perdidos o entradas de celdas vacías, la tabla puede ser preprocesada de varías formas para llenar o completar la tabla. (3) Transformación. Los atributos numéricos pueden ser discretizados, es decir el uso de intervalos o rangos en vez de los valores de los datos exactos. (4) Minería de datos. En la metodología de los conjuntos aproximados, se producen conjunciones de proposiciones elementales o reglas si-entonces. Esto se realiza en un proceso de dos etapas, en el cual subconjuntos de mínimos atributos son primero calculados antes de que los patrones o reglas sean generados. (5) Interpretación y evaluación. Los patrones individuales o reglas pueden ser ordenados por alguna medida de “bondad” y manualmente inspeccionados. Conjuntos de reglas pueden ser empleados para clasificar nuevos casos y registrar el desempeño de la clasificación.

La “teoría de los conjuntos aproximados” se confirma frecuentemente como una herramienta matemática para el análisis de objetos descritos vagamente. El adjetivo vago se refiere a la calidad de la información, significa inconsistencia o ambigüedad, las cuales obedecen a la granulación de la información en un sistema de conocimiento. La filosofía de los conjuntos aproximados está basada en el supuesto de que cada objeto en el universo está asociado a cierta cantidad de información expresada por medio de algunos rasgos usados para la descripción del objeto. Los objetos que tienen la misma descripción son indiscernibles con respecto a la información disponible. La relación de indiscernibilidad modela la indiscernibilidad de objetos, ésta constituye la base matemática de la teoría de los conjuntos aproximados. La relación de indiscernibilidad induce una partición del universo en bloques de objetos indiscernibles, llamada conjuntos elementales que pueden ser usados para construir conocimiento sobre un mundo real o abstracto.

En la teoría clásica de los conjuntos aproximados, la relación de indiscernibilidad es definida como una relación de equivalencia, que es reflexiva, simétrica y transitiva. Esta relación induce una partición del universo en clases de equivalencia correspondientes a la relación de un elemento del universo. Este enfoque clásico de la teoría de los conjuntos aproximados es extendido mediante la aceptación que objetos que no son indiscernibles pero si suficientemente cercanos o similares puedan ser agrupados en la misma clase. El objetivo es construir una relación de indiscernibilidad prima a partir de la relación de indiscernibilidad original pero relajando las condiciones originales para la indiscernibilidad. Esta relajación puede ser realizada de muchas formas, así como pueden ser dadas muchas definiciones posibles de similitud. Sin embargo, la relación indiscernibilidad prima debe satisfacer algunos requerimientos mínimos. Si la relación de indiscernibilidad es una relación de indiscernibilidad definida en el universo, la relación de indiscernibilidad prima es una relación de similitud extendida, entendiéndose que cualquier clase de similitud puede ser vista como un agrupamiento de clases de indiscernibilidad y la relación de indiscernibilidad prima induce un cubrimiento del universo. Cuando una relación de similitud es usada en lugar de una relación de indiscernibilidad, otros conceptos y propiedades de la teoría de conjuntos aproximados: medidas de aproximación, reducción y dependencia, se mantienen válidos.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 4 de 2008

sábado, 25 de octubre de 2008

Paralelismo Cuántico

La falta de velocidad para el procesamiento de datos no es un problema nuevo. Para solucionarlo se intenta, desde mediados de los años 1960, diseñar arquitecturas de hardware compuestas por procesadores paralelos, que ejecuten instrucciones de forma independiente, y que analicen datos de forma simultánea: sería como poner a todos a trabajar al mismo tiempo, desde distintos ángulos, sobre el mismo tema. Sin embargo, dichas computadoras paralelas son muy costosas y tienen usos muy específicos: procesamiento de imágenes, cálculos científicos, sistemas de control, etc. Como en muchos otros casos, la naturaleza se encarga de burlar al hombre poniendo en sus narices el botín inalcanzable, como en el caso de uno de los sistemas más antiguos y que mejor funciona: el sistema nervioso. Los neurólogos creen que gran parte del poder expresivo del cerebro humano se debe al procesamiento simultáneo, en paralelo, que permite la evaluación de miles de combinaciones al mismo tiempo y que permite resultados nuevos e imprevisibles.

Frente a este cúmulo de dificultades los especialistas están buscando múltiples salidas. Una de ellas surge de la física cuántica. Esta teoría que explica el curioso comportamiento de las partículas a nivel subatómico no parece coincidir con lo que el sentido común dice acerca del mundo rutinario de cada día. La física cuántica teoriza acerca de fenómenos que sólo pueden explicarse abstrayendo cosas como: “Una partícula es capaz de estar en dos lugares al mismo tiempo”. En los años 1980 tres físicos llamados Feynman, Benioff y Deutsch fueron aún más lejos y concibieron una máquina que aprovechara los fenómenos cuánticos para aumentar la capacidad de procesamiento de una computadora. Si una partícula puede estar en dos estados al mismo tiempo, se la puede utilizar para codificar, a su vez, dos datos al mismo tiempo; en el caso de una computadora binaria, sobre cero y uno. Hace sólo algunos años atrás, un científico de la Bell Labs, Peter Shor, demostró que las computadoras cuánticas podrían ser utilizadas de manera eficiente para resolver un problema de gran interés práctico: factorizar números enteros, una de las necesidades básicas de las empresas de seguridad informática que utilizan estos complejos cálculos matemáticos para crear claves de seguridad. Apareció una utilidad práctica y detrás de ella los que podían llegar a obtener un beneficio: la poderosa industria de la seguridad abrió los ojos y las billeteras, y el dinero comenzó a llegar a los laboratorios que se dedicaron a estudiarlas.

La computación cuántica nace con el objetivo de combinar las propiedades de la física y las ciencias computacionales para solucionar problemas de computación. La base teórica de la computación tradicional está basada en saber utilizar el lenguaje binario de unos y ceros para resolver problemas. Se utilizan los transistores como elemento principal, de forma que las diferencias de energía que existan en él son unos y ceros lógicos. Sin embargo, en la computación cuántica, se reduce la escala del elemento primario, lo que conlleva una serie de efectos cada vez más obvios. Una parte básica de la computación cuántica es estudiar las consecuencias de dichos efectos en la computación tradicional. Dichos estudios fueron los que llevaron a los científicos a emplearlos para sacar provecho, de tal manera que físicos e informáticos teóricos, comenzaron a crear diversas hipótesis basadas en la afirmación de que a partir de las leyes de la mecánica cuántica se podrían desarrollar nuevos planteamientos en la teoría y procesamiento de la información. Resulta obvio pensar que, para aplicar estas teorías cuánticas, se necesita obtener una computadora cuántica. Hasta estos primeros años del presente siglo, los componentes de hardware han evolucionado para ser miniaturizados hasta llegar a conseguirse nanocircuitos. Sin embargo, se alcanzará un punto en el que esta miniaturización sea tal que no se pueda avanzar más. En ese momento tendrá que entrar en juego la mecánica cuántica.

El modelo cuántico de computación se introdujo en la década de 1980. Es una extensión del modelo clásico en el que los bits cuánticos o qubits, pueden tomar el valor cero o uno, como los bits clásicos, y además combinaciones de cero y uno, por ejemplo un medio de cero más un medio de uno. En el mundo cuántico estas combinaciones existen debido al denominado principio de superposición que, desde un punto de vista computacional, es el responsable del paralelismo cuántico y del entrelazamiento de los qubits. Un qubit es la unidad mínima de información cuántica. Sus dos estados básicos se llaman, convencionalmente ket cero y ket uno. Un estado qubital puro es una superposición cuántica de esos dos estados. Esto es significativamente distinto al estado de un bit clásico, que puede asumir solamente un valor cero ó uno. Sin embargo, la diferencia más importante entre un qubit y un bit clásico no es la naturaleza continua de este estado, que se puede replicar con cualquier cantidad análoga), sino que múltiples qubits pueden experimentar un entrelazamiento. El enredo es una interacción no local que permite a un conjunto de qubits expresar superposiciones de diferentes cadenas binarias simultáneamente. En este “paralelismo cuántico” está la posible potencia del cómputo cuántico.

Formalmente, la unidad básica de información de la computación cuántica, el qubit, o bit cuántico, se define como un sistema cuántico bidimensional con un espacio de Hilbert, isomórfico al conjunto de números complejos. Este sistema puede estar en uno de sus dos estados básicos, cero o uno, o bien en una superposición lineal de ambos. El qubit, es la clave del paralelismo cuántico. Mediante la superposición de estados un registro de qubits podría guardar la información de varios registros clásicos. Haciendo esto con el registro de estados de la máquina cuántica, se consigue que la máquina tenga en él una superposición coherente de varios registros clásicos, cada uno representante de un estado, logrando que la máquina cuántica “se encuentre en varios estados a la vez”. Sin embargo, las máquinas cuánticas son máquinas lineales. En términos de programación, el paralelismo se consigue al aplicar una transformación a un registro de qubits que contenga información superpuesta de varias variables. El resultado de esta transformación sería igual a aplicarla a todas las variables al mismo tiempo y luego superponer todos los resultados en el registro cuántico. Por tanto, actuando de esta manera se consigue operar emulando un número indeterminado de registro y procesadores haciendo uso de un solo registro y un solo procesador.

El paralelismo cuántico, por tanto, supera al clásico en que en una computadora cuántica es posible tener un número exponencialmente alto de estados en un espacio reducido. Esto, en una computadora clásica, no sería viable debido al costo computacional del número de procesadores y del espacio de memoria. A pesar de ello, el paralelismo cuántico por sí no es suficiente para lograr una computación satisfactoria. Tras la fase de cálculo, se tiene que medir el registro de salida para obtener el resultado. Sin embargo, al ser un registro cuántico, éste se colapsará con la medida y tan sólo se podrá obtener el resultado de una de las ramas de la computación, de forma aleatoria. Se tiene, por tanto, que el resultado de una computación cuántica es probabilista; No se puede saber con una seguridad completa que el resultado que se obtenga sea el que se está buscando. Para asegurar esto se podría realizar un número determinado de medidas hasta tener la seguridad de obtener la información deseada. Pero si no se realiza el diseño del programa con cuidado, el número de medidas necesarias puede ser exponencial, perdiendo así las ventajas de la computación cuántica. Para evitar este efecto, se deben diseñar los programas de manera que el máximo de la distribución de probabilidad en el dato de salida corresponda al resultado deseado. De esta manera se consigue reducir el número de medidas a unas pocas. Las técnicas para lograr esto se basan en el principio de superposición de ondas, con el que se consigue una interferencia constructiva en los casos de resultados deseados. De esta manera se consigue que la probabilidad de que al hacer una medida correcta ésta sea alta.

De manera hipotética, una computadora cuántica, capaz de realizar muchas operaciones lógicas sobre muchos qubits, comienza por inicializar todos los bits de entrada en una superposición en la cual los ceros y unos se encuentran en proporciones iguales. La computadora está entonces en una superposición de todas las posibles formulaciones del problema. Se utiliza estos datos para alimentar los circuitos lógicos que llevan a cabo una determinada computación. El resultado es una superposición de todos los posibles resultados de dicha computación. De manera paradójica, la computadora realiza de una sola vez todas las computaciones posibles. Este fenómeno ha sido llamado “paralelismo cuántico” por David Deutsch del Instituto Matemático de la Universidad de Oxford.

Guillermo Choque Aspiazu
http://www.eldiario.net/
28 de julio de 2008

viernes, 8 de agosto de 2008

Computadoras Ubicuas

Gran parte de las personas que escuchan por primera vez el término “nanotecnología” creen que se habla de las técnicas incluidas en el término “microtecnología”, la tecnología usada en la microelectrónica y que ha transformado enormemente la sociedad en las últimas décadas. La relación no es del todo incorrecta, pero no es la más adecuada. La microtecnología es la tecnología que permite fabricar cosas en la escala del micrón. Un micrón es una millonésima de un metro, o, para darse una idea más clara, la milésima parte de un milímetro. Como parte del conocimiento general, se conoce la equivalencia de un metro: más o menos la distancia entre la nariz y la punta de los dedos cuando se extiende del todo un brazo hacia un costado del cuerpo humano. Si se toma una milésima parte de esta longitud, se tiene un milímetro. Un milímetro es muy pequeño, pero todavía es posible verlo. Ahora imagine que se toma un extremo de este milímetro, se lo apoya en la nariz y se lo estira hasta que llegue al extremo de los dedos de la mano que se encuentra en el brazo que se ha extendido. Ahora se vuelve a dividir en mil partes. Se tiene una milésima de la milésima parte de un metro, una longitud llamada micrón. Esta es la escala en la que se trabaja cuando se construyen dispositivos tales como memorias, circuitos lógicos y de computación.

Los dispositivos de memoria y de lógica en venta en 1985 tenían estructuras con componentes de aproximadamente un micrón de ancho. Para 1995, momento de la aparición del procesador Pentium, se habían alcanzado tamaños de más o menos un tercio de micrón, 350 nanómetros. Se trabaja ya en estructuras de 100 nanómetros, es decir, de un décimo de lo que se había logrado en 1985. Un nanómetro es la medida que se obtiene si uno toma un micrón, aplica un extremo sobre la punta de la nariz, lo estira hasta el extremo de los dedos del brazo extendido y lo divide en mil partes. Es una milésima de una millonésima de metro, es decir, una milmillonésima de metro. El nanómetro marca el límite de reducción al que se puede llegar cuando se habla de objetos materiales. En un nanómetro caben entre tres y cinco átomos. Aunque en el universo hay cosas más pequeñas que los átomos, se trata ya de cosas que no se pueden manipular. En la vida cotidiana, los átomos son los ladrillos de construcción más pequeños que se pueden utilizar.

La computación ubicua surge de los estudios de Mark Weiser y su equipo de investigadores de los laboratorios de Xerox en Palo Alto California. En el año 1991 se publicó su artículo “La computadora para el siglo XXI”, ampliamente referenciado por los investigadores en el campo de la interacción persona-computadora. La idea básica consiste en distribuir la capacidad computacional de las computadoras actuales en el contexto donde habitualmente desarrollan sus actividades los seres humanos, mediante computadoras más pequeñas y baratas que, por consiguiente, realizarán tareas más simples, pero que, no solo liberarán de tareas rutinarias, sino que además proporcionarán nuevos momentos computacionales impensables de realizar con las computadoras actuales. Se trata entonces de liberar las tareas rutinarias de las computadoras personales para que el entorno, mediante pequeñas computadoras, adquiera la responsabilidad de actuar de manera inconsciente al usuario. De esta manera se coincide con la tesis de Weiser que afirma: “Las tecnologías que calan más hondo son las que pasan desapercibidas”.

Weiser propone una división de las computadoras ubicuas en marcas, similares a las etiquetas, equipadas con un pequeño procesador e infrarrojos que permiten identificar a la persona que la lleva y, de esta manera, el entorno se pondrá a su servicio. Las tabletas, del tamaño de un folio y que se puede manuscribir sobre ellas, envían los contenidos vía radio y lo que se propone es que sean impersonales y puedan utilizarse allí donde se encuentren. Hoy se asocian a una nueva visión del portátil. Por último, se encuentran las pizarras con la doble función de mostrar información, procedente de una computadora o asistente digital personal, y por supuesto su habitual función de escritura manual.

Según Mark Weiser, durante 30 años la mayor parte del diseño de interfaces ha seguido la línea de la máquina “espectacular”. Su gran ideal es convertir la computadora en algo tan excitante, tan maravilloso, tan interesante de manera que nunca se piense en prescindir de ella. Una línea menos seguida es la que se llama “invisible”, cuyo gran ideal es que la computadora se convierta en algo tan incorporado, tan adaptable, tan natural, que pueda ser usada sin siquiera pensar en ella. Después de las grandes computadoras de tiempo compartido, una para muchos usuarios, y de las computadoras personales, una para cada usuario, las llamadas computadoras ubicuas, muchas para un usuario, se anuncian como el “tercer paradigma” emergente de la computación. Su filosofía es opuesta a la realidad virtual, que trata de “introducir” a la persona dentro de la computadora. En este caso, las computadoras se integran en la vida de las personas, bajo el lema “el mundo no es un escritorio”. El objetivo de tratar de romper con el paradigma de la computadora de escritorio es común a los trabajos sobre computación móvil, ubicua y usable. Todos ellos pretenden que los servicios que proporciona la máquina sean tan móviles como sus usuarios y permitan aprovechar los constantes cambios del contexto en que son usados. Esto puede dar lugar a entornos activos en los que estas computadoras interaccionan entre sí y con el usuario de manera inteligente y no de manera invasiva, como ocurre en los lugares cableados.

La computación ubicua trata de extender la capacidad computacional al entorno del usuario. Permite que: (1) La capacidad de información esté presente en todas partes en forma de pequeños dispositivos muy diversos que permiten interacciones de poca dificultad conectados en red a servidores de información. (2) El diseño y localización de los dispositivos son específicos de la tarea objeto de interacción. (3) La computadora queda relegada a un segundo plano, intentando que resulte “transparente” al usuario (ordenador invisible). (4) La interacción se diluye en el entorno. (5) Forma parte y mejora el mundo real

Se puede decir que la computadora personal, Internet y la World-Wide Web han influido ya en muchos aspectos del mundo de los negocios y hay señales evidentes de una amplia convergencia de industrias enteras como la de los medios de comunicación, entretenimiento, electrónica de consumo, telecomunicaciones, y tecnología de la información. La siguiente ola de la revolución tecnológica afectará mucho más directamente y en todos los aspectos de la vida cotidiana del ser humano.

De forma contraria a lo que las predicciones populares decían, el siglo XXI se caracterizará menos por la colonización de la luna, las ciudades submarinas y los coches de energía nuclear, que por las aplicaciones basadas en tecnologías de lo diminuto y por lo tanto casi invisibles como la biotecnología, la nanotecnología y la microelectrónica. Por supuesto, los avances en la microelectrónica no son nada nuevo. Por el contrario, durante más de 30 años la conocida ley de Moore, según la cual la funcionalidad de un procesador se duplica cada 18 meses, ha demostrado ser cierta. Una mejora similar en prestaciones se aplica también a algunos otros parámetros importantes de la tecnología. Existe certeza de que la tendencia actual continuará durante unos cuantos años más, lo que hace que toda esta área de desarrollo sea tan intrigante. Ahora parece que el futuro próximo estará caracterizado por pequeñas computadoras que se comunican de forma espontánea, que por su pequeño tamaño y por su bajo precio, se integraran en casi todos los objetos cotidianos. La tecnología de la información por lo tanto se volverá ubicua e invadirá todos los aspectos de la vida del ser humano. Los teléfonos móviles con acceso a Internet y los “asistentes personales” que se comunican sin cables con otros dispositivos próximos a ellos son los primeros indicios de la “era post computadora personal” venidera. Al principio, el principal objetivo es permitir el acceso a la información de cualquier tipo desde cualquier lugar y en cualquier momento, lo que evidencia los esfuerzos actuales de la industria por integrar aparatos de información móvil y utilizables en procesos de negocios basados en la Web y escenarios de comercio electrónico. Sin embargo, a largo plazo, esta continua tendencia tecnológica puede dar lugar a la fusión de la computadora con los objetos cotidianos típicos para que se vuelva literalmente invisible.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Julio 21 de 2008

Navegación de Robots Moviles

Los robots son útiles para reproducir ciertas capacidades de los organismos vivos, como son: la exploración y el transporte para los robots móviles y, la asistencia médica y la automatización de procesos industriales para los robots complejos. Existen varios paradigmas de la inteligencia artificial, entre los diferentes tipos de arquitecturas, para el control de la autonomía de agentes robóticos móviles. Por un lado está la navegación enmarcada en el contexto de las arquitecturas reactivas, las cuales se basan en el logro de metas de desplazamiento del robot como una consecuencia de acciones estímulo-respuesta. Generalmente estas arquitecturas están fundadas en modelos de procesamiento de información masivamente paralela, tal como es el caso de las redes neuronales artificiales. Aunque las técnicas reactivas poseen la ventaja de la rapidez de procesamiento de información y la velocidad de reacción, las mismas están limitadas en cuanto a la complejidad de las tareas que el robot pueda abordar debido a que no puede manejar aquellas que requieren planificación.

Por otro lado, se encuentran en el área de sistemas inteligentes, las arquitecturas clásicas, las cuales implican el empleo de técnicas de razonamiento para decidir las acciones del agente robótico con base en un modelo del entorno. En este caso, el procesamiento de la información por parte del agente inteligente se realiza en forma secuencial. Así, el robot actúa operando sobre el ambiente de navegación en función de las modificaciones que se producen en el modelo interno que éste posee del entorno. Estas técnicas clásicas implican esquemas de razonamiento en alto nivel con base en resultados intermedios que emergen de los cambios experimentados en el ambiente de navegación del robot. Este paradigma, si bien permite afrontar requerimientos de desempeño complejos por parte del agente, tiene una velocidad de procesamiento de la información sustancialmente menor que con las técnicas reactivas.

Se define navegación como el método que permite guiar el curso de un robot móvil a través de un entorno con obstáculos. Existen diversos esquemas, pero todos ellos poseen en común el afán por llevar el vehículo a su destino de forma segura. La capacidad de reacción ante situaciones inesperadas debe ser la principal cualidad para desenvolverse, de modo eficaz, en entornos no estructurados. Las tareas involucradas en la navegación de un robot móvil son: la percepción del entorno a través de sus sensores, de modo que le permita crear una abstracción del mundo; la planificación de una trayectoria libre de obstáculos, para alcanzar el punto destino seleccionado; y el guiado del vehículo a través de la referencia construida. De forma simultánea, el vehículo puede interaccionar con ciertos elementos del entorno. Así, se define el concepto de operación como la programación de las herramientas de a bordo que le permiten realizar la tarea especificada.

El robot móvil se caracteriza por realizar una serie de desplazamientos y por llevar a cabo una interacción con distintos elementos de su entorno de trabajo, que implican el cumplimiento de una serie de objetivos impuestos según cierta especificación. Así, formalmente el concepto de misión en el ámbito de los robots móviles, se define como la realización conjunta de una serie de objetivos de navegación y operación. En consecuencia, con estas definiciones, el robot móvil debe poseer una arquitectura que coordine los distintos elementos de a bordo, de forma correcta y eficaz para la realización de una misión. El diseño de esta arquitectura presenta un módulo de control de misión dedicado a coordinar al controlador de desplazamientos con el controlador del elemento que interacciona con el entorno de trabajo. Esta coordinación debe efectuarse de forma perfecta para cumplir los objetivos impuestos por la misión, definida de acuerdo con ciertas especificaciones de entrada. Formalmente, el control de misión debe analizar el problema y encontrar una estrategia para resolverlo, de suerte que el resultado de este análisis será un plan de navegación y otro de operación, los cuales se entregan a los módulos que correspondan.

Un paradigma está constituido por los supuestos teóricos generales, que mediante su aplicación caracterizan el modo de resolver problemas en robótica. Normalmente, el paradigma constituye un enfoque, una forma de abordaje de un determinado problema, el cual se encuentra caracterizado por la utilización de una serie de técnicas orientadas a su solución. Básicamente, las técnicas son los procedimientos o conjuntos de éstos utilizados para resolver clases diferentes clases de problemas que tienen como objetivo obtener un comportamiento determinado para el robot bajo cierto paradigma.

Los paradigmas existentes para la navegación robótica son esencialmente tres: (1) Enfoque deliberativo. Se dice que este enfoque está basado en conocimiento. Es el primer paradigma propuesto para la navegación robótica. Este se basa en una visión introspectiva, es decir, en una observación interior de los propios actos o estados de ánimo o de conciencia, de sobre cómo piensa el ser humano y como toma decisiones. Por ejemplo: si se ve una puerta, se decide pasar a través de ella. (2) Enfoque reactivo. Este enfoque está basado en comportamiento. Este enfoque nace en oposición al enfoque deliberativo y se basa en modelos biológicos y psicológicos para explicar el comportamiento visto en diversos organismos vivos. Con base en un comportamiento complejo se encuentran conductas básicas del tipo “Estímulo entonces Respuesta”. (3) Enfoque híbrido. Conocido como enfoque deliberativo-reactivo. Este enfoque surge a partir de la hibridación de los paradigmas deliberativo y reactivo, ya que estos presentaban por separado diversas falencias. Se intenta tomar así lo mejor de cada paradigma, del comportamiento deliberativo su capacidad para orientarse hacia metas, del comportamiento reactivo, su rápida respuesta y adaptación a los cambios del mundo. Se mezclan las reglas deliberativas y reactivas en dos capas de control ejecutándose en paralelo a diferentes velocidades: Una capa reactiva encargada del control de las acciones de base, tales como, avanzar, evitar obstáculos. Una capa deliberativa encargada de planificar acciones más elaboradas tales como, dirigirse a un sitio preciso, reconocer visualmente marcas y objetos. La información de los sensores es accesible a los módulos de comportamiento, pero también al planificador para la construcción de un modelo del mundo orientado a tareas.

Realizar una tarea de navegación para un robot móvil significa recorrer un camino que lo conduzca desde una posición inicial hasta otra final, pasando por ciertas posiciones intermedias o submetas. El problema de la navegación se divide en las siguientes cuatro etapas: (1) Percepción del mundo. Mediante el uso de sensores externos, creación de un mapa o modelo del entorno donde se desarrollará la tarea de navegación. (2) Planificación de la ruta: Crea una secuencia ordenada de objetivos o submetas que deben ser alcanzadas por el vehículo. Esta secuencia se calcula utilizando el modelo o mapa de entorno, la descripción de la tarea que debe realizar y algún tipo de procedimiento estratégico. (3) Generación del camino. En primer lugar define una función continua que interpola la secuencia de objetivos construida por el planificador. Posteriormente procede a la discretización de la misma a fin de generar el camino. (4) Seguimiento del camino. Efectúa el desplazamiento del vehículo, según el camino generado mediante el adecuado control de los actuadores del vehículo. Estas tareas pueden llevarse a cabo de forma separada, aunque en el orden especificado. La interrelación existente entre cada una de estas tareas conforma la estructura de control de navegación básica en un robot móvil.

Existen dos tipos básicos de enfoques para controlar la navegación de un robot móvil: técnicas globales y locales. En las técnicas globales, como son los métodos geométricos, la programación dinámica o los métodos de campo de potencial se asume totalmente conocida la descripción geométrica del entorno en el que se va a mover el robot. Se trata de métodos potentes y eficaces para generar tanto trayectorias a seguir como secuencias de comandos a ejecutar. Son métodos usados para el control de robots que trabajan en entornos sin ninguna variabilidad y que realizan tareas repetitivas en las que se conocen en todo momento el valor de todas sus variables de estado. Los métodos locales o reactivos, por el contrario, consideran que el robot va a moverse en un entorno no conocido a priori y proporcionan unas conductas estándar para reaccionar ante lecturas de los sensores del robot. Estas conductas son aplicables en gran número de entornos distintos y se suelen usar junto con un control de alto nivel que se encarga de secuenciarlas.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Julio 14 de 2008

viernes, 18 de julio de 2008

Genómica Funcional

La bioinformática es un campo interdisciplinario que se encuentra en la intersección entre las “ciencias de la vida” y de la “informática”, proporciona las herramientas y recursos necesarios para favorecer la investigación biológica. Este campo comprende la investigación y desarrollo de herramientas útiles para llegar a entender el flujo de información desde los genes a las estructuras moleculares, a su función bioquímica hasta su conducta biológica. Una definición generalmente aceptada es: “Bioinformática es un campo de la ciencia en el cual confluyen varias disciplinas tales como: biología, computación y tecnología de la información. El fin último de este campo es facilitar el descubrimiento de nuevas ideas biológicas así como crear perspectivas globales a partir de las cuales se puedan discernir principios unificadores en biología. Al comienzo de la “revolución genómica”, el concepto de bioinformática se refería sólo a la creación y mantenimiento de base de datos donde se almacena información biológica, tales como secuencias de nucleótidos y aminoácidos.

El progresivo desarrollo de métodos automatizados de preparación de muestras de ácido desoxirribonucléico, su secuenciación y posterior lectura ha permitido afrontar, a lo largo de la última década, diversos proyectos de secuenciación a gran escala. Algunos datos para entender la magnitud del proyecto son: (1) El genoma humano contiene unos 3000 millones de pares de bases. (2) Contiene unos 100000 genes. (3) Sólo un 10% del genoma codifica proteínas. (4) Se conoce la localización de unos 3000 genes. (5) Existen 24 pares de cromosomas; el menor tiene unos 50 millones de pares de bases, el mayor unos 250 millones. (6) Si se reunieran, los datos del genoma ocuparían 1000 libros de 200 páginas. (7) La diversidad genética humana: 5.000 millones de personas que se diferencian en un 0,1% de su material genético. Esto genera un catálogo de diferencias en secuencias teórico de 5000 billones de registros. Como se puede apreciar en algunos de estos datos, los últimos avances en la investigación en ciencias biomédicas están produciendo un enorme crecimiento en el volumen y la complejidad de la información biológica disponible. Las tecnologías de la información y las comunicaciones son cruciales para posibilitar el almacenamiento e interpretación de estos datos en los centros de investigación. La gran magnitud de la información a manejar se incrementa teniendo en cuenta que para llegar a reconocer dónde comienzan y terminan los genes e identificar sus exones, intrones y secuencias reguladoras se requieren comparaciones entre secuencias de diversas especies. El mapa de secuencias generado por el proyecto se utiliza como fuente primaria de información para la biología humana y la medicina.

La genómica funcional se ocupa de describir la función biológica de los genes mediante el conocimiento de su actividad en: (1) Los rasgos que determinan. (2) La regulación a la que se ven sometidos. (3) La interacción con otros genes. (4) La identificación de un patrón de comportamiento en un gen, dependiendo de las condiciones que le circundan. (5) La actividad que desarrolla el gen cuando está alterado en relación a su actividad normal. La genómica funcional, tradicionalmente, ha asociado rasgos o características visibles, conocidas como fenotipo, con el gen o los genes que los producían, los genotipos. Los avances en los procesos biotecnológicos han permitido determinar qué genes están implicados, la naturaleza de la interacción y el tiempo en la asociación gen-rasgo. Cada célula del organismo tiene el mismo material genético durante toda su vida. Sin embargo, la expresión del gen o su actividad varía de unas células a otras, de unos estadios de desarrollo a otros, en procesos normales o patológicos y en función de las condiciones ambientales. Sólo entendiendo los pormenores de la expresión génica se entienden los procesos biológicos moleculares en los que intervienen los genes. Como ayuda a este propósito, la técnica de los chips de ácido desoxirribonucleico permite el análisis de muchos genes, bajo diferentes condiciones experimentales, en un solo experimento. Además, un rasgo puede venir determinado por un gen o varios genes pueden determinar un solo rasgo. Si se altera esos genes, se reflejará en la característica que expresan.

La genómica funcional es un campo de la biología molecular que se propone utilizar la vasta acumulación de datos producidos por los proyectos de genómica, como los “proyectos genoma” de los distintos organismos, para describir las funciones e interacciones entre genes y proteínas. A diferencia de la genómica y la proteómica, la genómica funcional se centra en los aspectos dinámicos de los genes, como su transcripción, la traducción las interacciones proteína-proteína, en oposición a los aspectos estáticos de la información genómica como la secuencia del ácido desoxirribonucleico o su estructura.

En la genómica funcional se utiliza principalmente técnicas de alto rendimiento para describir la abundancia de productos génicos como el ácido ribonucleico mensajero y las proteínas. Algunas plataformas tecnológicas típicas son: (1) Microchips de ácido desoxirribonucleico. Un chip de ácido desoxirribonucleico es una superficie sólida a la cual se unen una serie de fragmentos de ácido desoxirribonucleico. Las superficies empleadas para fijar el ácido desoxirribonucleico son muy variables y pueden ser vidrio, plástico e incluso chips de silicio. Los arreglos de ácido desoxirribonucleico son utilizadas para averiguar la expresión de genes, monitorizándose los niveles de miles de ellos de forma simultanea. La tecnología del chip de ácido desoxirribonucleico es un desarrollo de una técnica muy usada en biología molecular, el “Southern blot”. Con esta tecnología es posible observar de forma casi instantánea la expresión de todos los genes del genoma de un organismo. De tal forma que suelen ser utilizados para identificar genes que producen ciertas enfermedades mediante la comparación de los niveles de expresión entre células sanas y células que están desarrollando ciertos tipos de enfermedades. (2) Análisis en serie de la expresión génica. Es una técnica de la biología molecular que permite conocer y cuantificar la expresión de los genes en la célula, mediante la medición del ácido ribonucleico mensajero que está presente en un momento determinado. Esto permite crear perfiles de expresión de cada célula en determinadas situaciones, ya sea en circunstancias normales de la célula o en momentos en que se ve afectada por alguna enfermedad. De esta manera se pueden comparar estos perfiles y determinar que genes están siendo apagados o activados, y así determinar cual puede ser la causa de esto. (3) Electroforesis bidimensional en gel. Es un grupo de técnicas empleadas por los científicos para separar moléculas basándose en propiedades como el tamaño, la forma o el punto isoeléctrico. La electroforesis en gel se utiliza generalmente con propósitos analíticos, pero puede ser una técnica preparativa para purificar moléculas parcialmente antes de aplicar una espectroscopia de masas, una clonación o una secuenciación de ácido desoxirribonucleico. (4) Espectrometría de masas. Es una técnica experimental que permite la medición de iones derivados de moléculas. El espectrómetro de masas es un instrumento que permite analizar con gran precisión la composición de diferentes elementos químicos e isótopos atómicos, separando los núcleos atómicos en función de su relación masa-carga. Puede utilizarse para identificar los diferentes elementos químicos que forman un compuesto, o para determinar el contenido isotópico de diferentes elementos en un mismo compuesto. Es una técnica hibrida que se encuentra con frecuencia como detector de un cromatógrafo de gases.

Dada la gran cantidad de datos producidos por estas técnicas y la pretensión de encontrar pautas biológicas significativas en ellos, la bioinformática es crucial para este tipo de análisis. Ejemplos de técnicas de este tipo son el agrupamiento de datos o el análisis de componentes principales para un aprendizaje automático sin supervisión, detección de clases, así como redes neuronales artificiales o máquinas de soporte vectorial para aprendizaje automático supervisado, predicción de clases, clasificación estadística.

De manera general, todas las técnicas que estudian el flujo de la información genética al nivel del ácido desoxirribonucleico, o sea, el genoma, conforman lo que se conoce actualmente bajo el nombre de genómica. La identificación de los elementos estructurales dentro de los genes, tales como los exones y los intrones, los elementos reguladores, etc. se denomina genómica estructural. La genómica funcional es entonces, el estudio del funcionamiento de estos elementos estructurales. El desarrollo de la genómica funcional ha sido posible, en gran medida, gracias al desarrollo de los microchips de ácido desoxirribonucleico y ácido ribonucleico.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Julio 7 de 2008

sábado, 5 de julio de 2008

Computación Evolutiva

Desde los años 1930, algunos investigadores comenzaron a ver el proceso de evolución de las especies como un proceso de aprendizaje, mediante el cual la naturaleza dota a las especies de diferentes mecanismos, buscando hacerlas más aptas para sobrevivir. Partiendo de estos preceptos es posible desarrollar algoritmos que traten de resolver problemas de búsqueda y optimización guiados por el principio de la “supervivencia del más apto” que postulara Charles Darwin en su famosa y controversial “teoría de la evolución de las especies”. Dichos algoritmos son denominados algoritmos evolutivos y su estudio conforma la computación evolutiva. Bajo el término de computación evolutiva se engloba a un amplio conjunto de técnicas de resolución de problemas complejos basadas en la emulación de los procesos naturales de evolución. No es la primera vez que se hace uso de la emulación de procesos naturales para resolver problemas científicos y técnicos, los ejemplos más conocidos constituyen las redes neuronales para la resolución de problemas de aprendizaje artificial y el recocido simulado para resolver problemas de optimización que se plantean en las ciencias físicas.

El principal aporte de la computación evolutiva a la metodología de resolución de problemas consiste en el uso de mecanismos de selección de soluciones potenciales y de construcción de nuevos candidatos por recombinación de características de otros ya presentes, de modo parecido a como ocurre en la evolución de los organismos naturales. La computación evolutiva no trata tanto de reproducir ciertos fenómenos que suceden en la naturaleza como de aprovechar las ideas genéricas que hay detrás de ellos. Efectivamente, en el momento en que se tienen varios candidatos a solución para un problema surge inmediatamente la necesidad de establecer criterios de calidad y de selección, además de la idea de combinar características de buenas soluciones para obtener otras mejores. Dado que fue en el mundo natural donde primeramente se han planteado problemas de ese tipo, no tiene nada de extraño que al aplicar tales ideas en la resolución de problemas científicos y técnicos se obtengan procedimientos bastante parecidos a los ya encontrados por la naturaleza tras un largo periodo de adaptación.

La teoría evolutiva propuesta originalmente por Charles Darwin en combinación con el seleccionismo de August Weismann y la genética de Gregor Mendel, se conoce como el paradigma Neo-Darwiniano. El Neo-Darwinismo establece que la historia de la vasta mayoría de la vida en el planeta Tierra puede ser explicada a través de una serie de procesos estadísticos que actúan sobre y dentro de las poblaciones y especies: la reproducción, la mutación, la competencia y la selección. La reproducción es una propiedad obvia de todas las formas de vida del planeta Tierra, pues de no contar con un mecanismo de este tipo, la vida misma no tendría forma de producirse. En cualquier sistema que se reproduce a sí mismo continuamente y que está en constante equilibrio, la mutación está garantizada. El contar con una cantidad finita de espacio para albergar la vida en la Tierra garantiza la existencia de la competencia. La selección se vuelve la consecuencia natural del exceso de organismos que han llenado el espacio de recursos disponibles. La evolución es, por lo tanto, el resultado de estos procesos estocásticos fundamentales que interactúan entre sí en las poblaciones, generación tras generación.

El término “computación evolutiva” o “algoritmos evolutivos” engloba una serie de técnicas inspiradas en los principios de la teoría Neo-Darwiniana de la evolución natural. En términos generales, para simular el proceso evolutivo en una computadora se requiere: (1) Codificar las estructuras que se replicarán, o sea, una estructura de datos que se utilice para almacenar a un “individuo”. (2) Operaciones que afecten a los “individuos”, típicamente se utiliza apareamiento y mutación. (3) Una función de adaptabilidad que indique qué tan buena es una solución con respecto a las demás. (4) Un mecanismo de selección que implemente el principio de “supervivencia del más apto” de la teoría de Darwin.

El enfoque sub-simbólico de la inteligencia artificial se caracteriza por crear sistemas con capacidades de aprendizaje. Éste se puede obtener a nivel de individuo imitando el cerebro, a través de redes neuronales; o a nivel de especie imitando la evolución, lo que se ha denominado “computación evolutiva”, término relativamente nuevo que intenta agrupar un conjunto de paradigmas muy relacionados cuyas competencias no están aún muy definidas. Hasta hace poco era común hablar de algoritmos genéticos en general, en lugar de identificar diferentes tipos de computación evolutiva, ya que el resto de los algoritmos se pueden interpretar como variaciones o mejoras de los algoritmos genéticos más conocidos. En un algoritmo genético los elementos de las cadenas, los denominados genes, son típicamente bits, y en ciertos casos, valores numéricos o cadenas alfanuméricas. En la programación genética, los genes son instrucciones en un lenguaje de programación, y en las estrategias evolutivas, valores reales. Las estrategias evolutivas surgieron inicialmente para resolver problemas de optimización paramétrica; con el paso del tiempo fueron incorporando procedimientos propios de la computación evolutiva, con lo que han llegado a convertirse en una disciplina más. La agregación simulada se puede considerar como una simplificación de los algoritmos genéticos cuyo se encuentra en los procedimientos físicos de solidificación controlada. Los clasificadores genéticos solucionan problemas de reconocimiento de patrones mediante un entrenamiento basado en ejemplos, almacenando en las cadenas información que relacione los datos de entrada y la salida deseada.

Aunque hoy en día es cada vez más difícil distinguir las diferencias entre los distintos tipos de algoritmos evolutivos existentes, por razones sobre todo históricas, suele hablarse de tres paradigmas principales: (1) Programación Evolutiva. (2) Estrategias Evolutivas. (3) Algoritmos Genéticos. Cada uno de estos paradigmas se originó de manera independiente y con motivaciones muy distintas. La programación evolutiva nació en la década de 1960 y su creador fue Lawrence J. Fogel. El desarrollo de esta área comenzó como un esfuerzo encaminado a crear inteligencia artificial basada en la evolución de máquinas de estado finitas. Por su parte, las estrategias evolutivas fueron propuestas por Ingo Rechenberg y Hans-Paul Schwefel en la década de 1970. Su principal objetivo era la optimización de parámetros. A su vez los algoritmos genéticos fueron propuestos por John H. Holland en 1975 y su motivación inicial fue la de proponer un modelo general de proceso adaptable. En la naturaleza todos los seres vivos se enfrentan a problemas que deben resolver con éxito, como conseguir más luz del sol, o cazar una mosca. La computación evolutiva interpreta la naturaleza como una inmensa máquina de resolver problemas y trata de encontrar el origen de dicha potencialidad para utilizarla en los programas computacionales. Los algoritmos genéticos constituyen una de las más conocidas y originales técnicas de resolución de problemas dentro de lo que se ha definido como “computación evolutiva” o “algoritmos evolutivos”, término que agrupa a los algoritmos genéticos, las estrategias evolutivas y la programación evolutiva.

Es importante mencionar que la computación evolutiva, como disciplina de estudio, ha atraído la atención de un número cada vez mayor de investigadores de todo el mundo. Esta popularidad se debe, en gran medida, al enorme éxito que han tenido los algoritmos evolutivos en la solución de problemas del mundo real de gran complejidad. De tal forma, es de esperarse que en los años siguientes el uso de este tipo de técnicas prolifere aún más. Nótese, sin embargo, que es importante tener en mente que los algoritmos evolutivos son técnicas heurísticas. Por tanto, no garantizan que convergerán al óptimo de un problema dado, aunque en la práctica suelen aproximar razonablemente bien el óptimo de un problema en un tiempo promedio considerablemente menor que los algoritmos deterministas. Esta distinción es importante, pues el papel de las técnicas heurísticas es el de servir normalmente como último recurso para resolver un problema en el que los algoritmos convencionales no funcionan o tienen un costo computacional prohibitivo. Esto implica que antes de decidir recurrir a los algoritmos evolutivos, debe analizarse la factibilidad de utilizar otro tipo de técnicas. Este paso, que pudiese parecer obvio para muchos, en la práctica suele omitirse en muchos casos y de ahí que exista bastante escepticismo por parte de aquellos que acostumbran a trabajar únicamente con algoritmos deterministas. El uso apropiado y pertinente de los algoritmos evolutivos será sin duda la base de su futuro como alternativa para la solución de problemas complejos y de ahí que se enfatice su importancia.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Junio 30 de 2008

Neurona Lineal Adaptativa

Existe un acuerdo casi generalizado en la comunidad de investigadores en inteligencia artificial por considerar las redes neuronales artificiales como sistemas de computación que constan de un gran número de elementos simples de cálculo o proceso, altamente interconectados, y habitualmente jerarquizados en capas o niveles, que procesan información respondiendo de manera dinámica a los estímulos externos. Los orígenes de las redes neuronales suelen relacionarse con el trabajo de McCulloch y Pitts, realizado el año 1943, en el que proponían una teoría general del procesamiento de la información basada en redes de elementos binarios, capaces de realizar cálculos similares a las computadoras digitales, pero con una ejecución paralela, y no serial, en la que los pesos o ponderaciones sinápticas hacían el papel que el programa juega en una computadora convencional.

Bernard Widrow y su estudiante Marcian Hoff, a fines de los años 1950, introdujeron el modelo denominado “neurona lineal adaptativa” y su regla de aprendizaje llamada “error medio cuadrático” o algoritmo LMS. La neurona lineal adaptativa es similar al perceptrón, excepto en su función de transferencia, la cual es una función de tipo lineal en lugar de un limitador fuerte como sucede en el caso del perceptrón. La neurona lineal adaptativa presenta la misma limitación del perceptrón en cuanto al tipo de problemas que puede resolver, ambas redes solamente pueden resolver problemas linealmente separables, sin embargo el algoritmo LMS es más potente que la regla de aprendizaje del perceptrón ya que minimiza el error medio cuadrático.

El término Adaline es una sigla que identifica a la neurona lineal adaptativa, sin embargo su significado cambió ligeramente a finales de los años 1960 cuando decayó el estudio de las redes neuronales, para denominarse “elemento lineal adaptativo”, este cambio se debió a que Adaline es un dispositivo que consta de un único elemento de procesamiento, como tal no es técnicamente una red neuronal. El elemento de procesamiento realiza la suma de los productos de los vectores de entrada y de pesos, y aplica una función de salida para obtener un único valor de salida, el cual debido a su función de transferencia lineal será +1 si la sumatoria es positiva o –1 si la salida de la sumatoria es negativa. En este caso, la salida es la función unidad al igual que la función de activación; el uso de la función identidad como función de salida y como función de activación significa que la salida es igual a la activación, que es la misma entrada neta al elemento. Adaline es “adaptativo” en el sentido de que existe un procedimiento bien definido para modificar los pesos con objeto de hacer posible que el dispositivo proporcione el valor de salida correcto para la entrada dada; el significado de correcto para efectos del valor de salida depende de la función de tratamiento de señales ejecutada por el dispositivo. Adaline es “lineal” porque la salida es una función lineal sencilla de los valores de la entrada.

El año 1986, los investigadores Rumelhart, Hinton y McClelland, consideraban que todo modelo neuronal o modelo de proceso distribuido en paralelo, podía ser caracterizado a través de la especificación de los siguientes ocho aspectos o características básicas: (1) Un conjunto de unidades de procesamiento, las que se encargan de procesar la información y que suelen disponerse en capas o niveles estructurados de manera jerárquica; el procesamiento se lleva a cabo en estas neuronas, sin hacer distinción entre ejecutoras y supervisoras. (2) Un estado de activación, que en cada instante representa el nivel de activación de cada neurona a través de un valor de activación real. (3) Unas salidas de las unidades que en cada instante determinan la señal que cada neurona envía a sus vecinas. La intensidad de estas salidas, y por tanto el grado, que afecta cada neurona a las vecinas con las que esté conectada, vendrá determinada por el nivel de activación de cada neurona en cada instante a través de una función de salida o de transferencia. (4) Un patrón de conexión que establece qué neuronas se conectan con qué otras; este patrón acaba por establecer la topología de la propia red, su eventual jerarquización por capas y la intensidad, además del sentido de las distintas interconexiones. (5) Una regla de propagación, que combina las salidas de cada neurona con las correspondientes ponderaciones establecidas por el patrón de conexión, especificando de esta forma cómo se evaluaran las entradas que reciba cada neurona. (6) La regla o función de activación, es una función que a partir del estado actual de activación de una neurona y de su entrada neta, determinada por el patrón de conexión y por la regla de propagación, evalúa el estado de activación subsiguiente. (7) Una regla de aprendizaje, que consiste en el procedimiento por el cual se procede a la modificación del patrón de conexión en función de la experiencia, conduciendo en última instancia, al establecimiento de nuevos modelos de respuesta del sistema a los estímulos externos. (8) Una representación del ambiente, que viene dada, dependiendo de la aplicación que vaya a resolver el modelo de red neuronal, por la información empírica disponible o por una función estocástica que varía temporalmente sobre el espacio de patrones de entrada.

Tomando en cuenta estas ocho componentes básicas de toda red neuronal, los distintos modelos de red neuronal pueden clasificarse de acuerdo con cuatro criterios básicos: (1) la naturaleza de las señales de entrada y salida, (2) la topología de la red, (3) el mecanismo de aprendizaje que utilizan y (4) el tipo de asociación de las señales de entrada y salida, además de la forma de representar estas señales. Las distintas posibilidades de presentarse estos aspectos junto con las distintas funciones de activación y transferencia permiten la clasificación de los distintos modelos. De acuerdo con la naturaleza de las señales de entrada y de salida se puede clasificar las redes neuronales en: (1) Redes analógicas, que procesan datos de entrada de naturaleza analógica, valores reales continuos, habitualmente acotados y usualmente en el intervalo [-1,1]. Las redes analógicas suelen presentar funciones de activación continuas, habitualmente lineales o sigmoides. Entre estas redes neuronales destacan las redes de Retropropagación, la red continua de Hopfield, la de Contrapropagación, la Memoria Lineal Asociativa y los modelos de Mapas Auto-Organizados de Kohonen. (2) Redes discretas binarias, que procesan datos de naturaleza discreta para acabar emitiendo una respuesta discreta. Entre las redes binarias destacan la Maquina de Boltzman, la Máquina de Cauchy, la red discreta de Hopfield el Cognitrón y el Neogognitrón. (3) Redes híbridas, que procesan entradas analógicas para dar respuestas binarias, entre ellas destacan el Perceptrón, la red Adaline y la Madaline.

La red Adaline ha sido ampliamente utilizada en el procesamiento de señales; para valorar el real aporte de esta red en ese campo, se presentan las herramientas empleadas en los procesos de filtrado. A comienzos del estudio de las comunicaciones electrónicas, se diseñaban filtros analógicos empleando circuitos de resistencias, inductores y condensadores para eliminar el ruido en las señales empleadas en las comunicaciones; este procesamiento se ha transformado en una técnica de múltiples facetas, destacándose el uso de “procesadores digitales de señales”, que pueden llevar a cabo los mismos tipos de aplicaciones de filtrado ejecutando filtros de convolución, los cuales se construyen mediante programación convencional, en cualquier lenguaje de programación conocido.
El proceso de filtrado sigue ocupando un lugar muy importante en la industria, pues siempre será necesario eliminar el ruido en señales portadoras de información. Considere una transmisión de radio en amplitud modulada, las técnicas electrónicas de comunicación, bien sean para señales de audio o de datos constan de una codificación y una modulación de la señal. La información que hay que transmitir, se puede codificar en forma de una señal analógica que reproduce las frecuencias y las amplitudes del sonido original. Dado que los sonidos que se están codificando representan un valor continuo que va desde el silencio, pasando por la voz, hasta la música, la frecuencia instantánea de la señal normalmente varia con el tiempo, oscilando entre 0 y 10.000 Hz aproximadamente. En lugar de intentar transmitir directamente esta señal codificada, se transmite de la forma más adecuada para la transmisión por radio; esto se logra modulando la amplitud de una señal portadora de alta frecuencia con la señal de información analógica. Para la amplitud modulada, la frecuencia portadora estará en el intervalo de los 550 a los 1650 kHz, dado que esta frecuencia es muy superior a la frecuencia máxima de la señal de información, se pierde muy poca información como consecuencia de la modulación; la señal modulada puede ser transmitida después a una estación receptora, en la cual la señal se demodula y se reproduce en forma de sonido.

Guillermo Choque Aspiazu
www.eldiario.net
Junio 23 de 2008

Razonamiento con Incertidumbre

Crear conclusiones útiles a partir de información incompleta o incierta no es una tarea imposible, los seres humanos realizan este proceso en casi todos los aspectos cotidianos. Los médicos realizan diagnósticos correctos y recomiendan tratamiento a partir de síntomas ambiguos, los informáticos analizan los problemas del manejo de información a partir de observaciones, y la mayor parte de los seres humanos comprenden el lenguaje hablado, el corporal o el lenguaje escrito a pesar de contar con frases incompletas, y también es posible reconocer a otras personas a través de sus voces o gestos. De este modo para realizar el proceso de toma de decisiones se utiliza la lógica; con la lógica algunas piezas de conocimiento son utilizadas en el razonamiento y pueden ser parte de las explicaciones o conclusiones.

Por su parte, en términos netamente académicos, el ser humano está familiarizado con investigaciones empíricas, tales como exploraciones científicas e investigaciones criminales, en las cuales los científicos deben examinar eventos físicos y objetos para resolver problemas o ganar conocimiento acerca de algún fenómeno. Por ejemplo, en muchos casos criminales, los científicos forenses examinan rastros de sangre para descubrir la identificación única del ácido desoxirribonucléico de la muestra. Este tipo de investigaciones requieren de gran precisión, particularmente porque las muestras son frecuentemente muy pequeñas, y particularmente por pequeñas desviaciones en la precisión de la medición de elementos microscópicos pueden resultar en una mala identificación. De este modo, los científicos que trabajan en estas áreas en particular, tienen que ser consistentes en mantener un alto grado de precisión.

Otro fenómeno que impone límites por encima del evidente deseo de precisión es que se utiliza el lenguaje natural para describir y comunicar información y conocimiento. Se ha tenido la experiencia de malinterpretar un resultado por haber utilizado palabras en una forma diferente al patrón de una determinada conversación. El entendimiento del significado de una palabra trae consigo la cultura y las asociaciones personales, así que aunque se tenga una parte de la esencia del significado y además sea posible comunicarlo con un grado aceptable, la mayoría de las veces no se puede estar de acuerdo en el simple significado de una palabra. En pocas palabras, el lenguaje natural tiene la característica distintiva de incertidumbre. La incertidumbre puede también ser el resultado de varios usuarios del lenguaje natural, los cuales aceptan ligeramente significados diferentes de un término. Por ejemplo una persona acostumbrada a vivir en La Paz puede tener un significado para el término “calor” que es diferente del significado aceptado por un residente de la región amazónica de Pando.

El término incertidumbre significa razonamiento aproximado o inexacto de la información. De manera general, sólo se conoce con certeza una pequeña parte de un determinado dominio del mundo, la información restante puede ser incierta por diversas causas, tales como: imprecisión, incapacidad para tomar medidas adecuadas, falta de conocimiento, vaguedad, etc. Existe un cambio dramático en los paradigmas de la incertidumbre durante los últimos años: hasta la década de los sesenta, la incertidumbre se relacionó con significados negativos. Ningún científico quería tomar decisiones vagas, pues temía que su trabajo no fuera tomado con la debida seriedad, por lo que la incertidumbre fue considerada como algún disturbio que debería ser evitado en modelos, teorías y enunciados. La única teoría que trataba con incertidumbre fue la teoría de probabilidad y estaba restringida a situaciones en las cuales la incertidumbre podría ser atribuida a aspectos relacionados con la aleatoriedad o el azar. A partir de la década de los años 1960 esto cambió, se aceptó el hecho de que la incertidumbre es una parte de la realidad, la cual no se puede cambiar. Por lo tanto fue necesario incluirla en los modelos de desarrollo. Esto ha conducido a un incremento en el número de teorías de incertidumbre durante las últimas décadas y a numerosos intentos por modificar los métodos formales existentes de modo que se acerquen más a la realidad y al comportamiento humano.
Sin embargo, al enfrentarse a problemas tales como los de diagnóstico, era inevitable tener que tratar la incertidumbre, y en aquellos años la única técnica disponible, aún con todas sus limitaciones, era el método probabilista clásico, a veces llamado Bayes ingenuo, con el que se construyeron los primeros sistemas de diagnostico, los cuales obtuvieron un éxito razonable en problemas que hoy parecen pequeños en tamaño, pero que en aquella época eran imposibles de abordar de ninguna otra forma. No obstante, el método probabilista clásico presentaba dos inconvenientes principales: el primero de ellos era la dificultad de obtener las probabilidades condicionales necesarias para construir el modelo. La aplicación del teorema de Bayes “en bruto” requería un número exponencial de parámetros, por lo que se hacía necesario introducir hipótesis simplificadoras, que eran básicamente dos: la exclusividad de los diagnósticos y la independencia condicional de los hallazgos. Aún así, el número de parámetros seguía siendo relativamente elevado, sobre todo teniendo en cuenta que raramente había bases de datos a partir de las cuales se pudieran obtener las probabilidades objetivas, por lo que en la mayor parte de los casos se hacía necesario recurrir a estimaciones subjetivas, poco fiables. Además las hipótesis eran poco verosímiles, sobre todo la de independencia condicional, sobre la que se escribieron páginas y páginas en los año 1970. Por estos motivos, la mayor parte de los investigadores estaban de acuerdo en que la probabilidad no era un método adecuado para la inteligencia artificial.

En paralelo con esta evolución histórica de crisis y resurgimiento de la probabilidad, se desarrolló la teoría de los conjuntos difusos, frecuentemente llamada lógica difusa. La motivación inicial no fue el estudio de la incertidumbre, sino el estudio de la vaguedad, que es algo diferente. Por ejemplo, si se sabe que Andrés mide 1.78 m., no se puede decir rotundamente que es alto, pero tampoco se puede decir que no lo es: se trata de una cuestión de grado; en este caso hay vaguedad intrínseca, pero no hay incertidumbre, con lo que se demuestra que son dos conceptos en principio independientes, aunque existe una cierta relación en el sentido de que si se recibe una información imprecisa, por ejemplo, si se dice que Juan es alto, pero no se dice su estatura exacta, se tiene un cierto grado de incertidumbre. En realidad, la necesidad de tratar la vaguedad surge de una antigua paradoja, que se podría expresar de la siguiente manera: una persona que sólo tiene 10 centavos de boliviano es sumamente pobre en términos cuantitativos, ahora bien, si a esa persona que es sumamente pobre se le da otros 10 centavos de boliviano, sigue siendo sumamente pobre; aplicando esta regla repetidamente se llega a la conclusión de que una persona que tiene 1 millón de bolivianos es sumamente pobre. La solución a esta paradoja es que el concepto de “pobre” o “sumamente pobre” no tiene un límite completamente definido, sino que a medida que se le da 10 centavos tras otro, hasta llegar al millón de bolivianos, en el supuesto de que se tuviera esa cantidad de dinero, el grado de pobreza va disminuyendo paulatinamente: no hay un único centavo que haga pasar a la persona de ser pobre a ser rico.

Por eso, la brillante idea de Lofti Zadeh, considerado como el “padre” de la lógica difusa, no solo por haber tenido la idea original, sino también por la gran cantidad de líneas que ha abierto en el campo desde entonces, consiste en permitir que el grado de pertenencia a algunos conjuntos sea un número entre 0 y 1, de modo que, por ejemplo, para quien no tiene más que 2 bolivianos, su grado de pertenencia al conjunto de personas pobres es casi 1, mientras que para quien tiene 100 millones de bolivianos es casi 0; en cambio, para una persona que tiene 500.000 bolivianos ahorrados el grado de pertenencia podría ser 0.4 o 0.5. Lamentablemente, el punto más débil de la lógica difusa es la carencia de una definición operativa que permita determinar objetivamente el grado de pertenencia, con lo que toda la teoría queda un tanto coja desde su nacimiento; esto no ha impedido el extraordinario desarrollo de la lógica difusa, con miles de artículos, libros, revistas y congresos dedicados al tema.

Para muchos casos prácticos, las soluciones de los problemas se conducen en presencia de incertidumbre en los datos o el conocimiento Para este tipo de problemas es posible utilizar técnicas numéricas, o también, la incertidumbre puede ser manejada con una aproximación lógica en forma de rastro. El razonamiento en la presencia de incertidumbre sucede en ejemplos típicos de diagnostico y análisis de datos. Los sistemas expertos, cuya función consiste en el diagnóstico en sus juicios de razonamiento emplean reglas de condición-conclusión que van acompañadas de una estimación de certidumbre, en donde se tiene un procedimiento numérico y la necesaria revisión de la credibilidad.

Guillermo Choque Aspiazu
www.eldiario.net
Junio 16 de 2008