domingo, 18 de mayo de 2008

Ingeniería Web

Internet es una gran red de redes, también llamada supercarretera de la información. Es el resultado de la interconexión de miles de computadoras de todo el mundo. Todas ellas comparten los protocolos de comunicación, es decir que todos hablan el mismo lenguaje para ponerse en contacto unas con otras. Los servicios básicos ofrecidos por Internet son: correo electrónico, noticias en red, acceso a computadoras remotas y sistemas de adquisición de datos, además de la capacidad para transferir información entre computadoras remotas. Antes de la Web, la manera de obtener los datos por la Internet era caótica: había un sinfín de maneras posibles y con ello había que conocer múltiples programas y sistemas operativos. La World Wide Web o WWW o W3 o simplemente Web, introduce un concepto fundamental: la posibilidad de lectura universal, que consiste en que una vez que la información está disponible, se puede acceder a ella desde cualquier computadora, desde cualquier país, por cualquier persona autorizada, utilizando un único y simple programa. La Web consiste en ofrecer una interfaz simple y consistente para acceder a la gran cantidad de recursos en Internet. Es la forma más moderna de ofrecer información en forma de páginas electrónicas.

La Web fue creada alrededor de 1990 por el inglés Tim Berners-Lee y el belga Robert Cailliau mientras trabajaban en el “Centro Europeo de Investigación Nuclear” en Ginebra, Suiza. Desde entonces, Berners-Lee ha jugado un papel activo guiando el desarrollo de estándares Web, tal como los lenguajes de marcado con los que se crean las páginas Web, y en los últimos años ha abogado por su visión de una Web Semántica. La Web tal y como se la conoce, ha permitido un flujo de comunicación global a una escala sin precedentes en la historia humana. Personas separadas en el tiempo y el espacio, pueden usar la Web para intercambiar, o incluso desarrollar mutuamente, sus pensamientos más íntimos, o alternativamente sus actitudes y deseos cotidianos. Experiencias emocionales, ideas políticas, cultura, idiomas musicales, negocio, arte, fotografías, literatura, etc.; muchos elementos pueden ser compartidos y diseminados digitalmente con un esfuerzo mínimo, haciendo llegar casi de forma inmediata a cualquier otro punto del planeta.

Según la definición de Roger Pressman realizada el año 2002, la ingeniería del software es una disciplina o área de la Informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven temas de todo tipo. Esta definición permite incluir dentro de la ingeniería del software a un gran número de áreas muy diversas de la informática, desde el desarrollo de sistemas operativos a la construcción de compiladores o los nuevos desarrollos de sistemas en la Web. La aplicación de la ingeniería del software permite obtener software de modo rentable y de calidad, asegurando que los resultados se adecuan a las necesidades reales del usuario. Esta ventajosa característica de la ingeniería del software ha provocado que, cuando los sistemas evolucionaron al entorno de la hipermedia y de la Web, los grupos de investigación encaminaron sus trabajos a encontrar métodos y técnicas enmarcados dentro de la ingeniería del software que se adapten a las nuevas características de estos entornos. En el mismo contexto, una aplicación Web es un sistema informático que los usuarios utilizan accediendo a un servidor Web a través de Internet o de una intranet. Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero. La facilidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad. Aplicaciones como los Webmails, Wikis, Weblogs, tiendas en línea y la Wikipedia son ejemplos bastante conocidos de aplicaciones Web.

Analizando las principales tendencias se puede decir que las diferencias principales que obligan a la inclusión de nuevos modelos y la adaptación de los existentes son: (1) Complejidad de la estructura hipermedia. El complejo sistema navegacional que se establece debido a la existencia de hiperenlaces e hipervínculos causa, en muchas ocasiones, que el usuario pueda llegar a perderse en el hiperespacio si el sistema no se construye basado en alguna técnica que garantice la calidad del mismo. (2) Colaboración interdisciplinaria. La gran cantidad y diversidad de roles que deben tomar parte en el desarrollo de sistemas Web complica su desarrollo en comparación con los sistemas clásicos. En roles como los que desempeñan los analistas, diseñadores gráficos, expertos en marketing, usuarios finales, etc. deben trabajar con técnicas que sean amigables para que cada uno de ellos pueda elaborar adecuadamente su trabajo. (3) Visión externa de la Web. Mientras que en los sistemas clásicos el número de usuarios finales estaba normalmente definido y cerrado o al menos controlado a un grupo de usuarios concreto, en los sistemas Web la visión cambia. El número de usuarios no es sólo ilimitado, si no que, además, es totalmente impredecible en la mayoría de los casos. Los roles de usuarios finales que interactúan con el sistema es abierto y debe adaptarse al desarrollo que pueda satisfacer las necesidades de cualquier usuario anónimo sin llegar a conocer su perfil. (4) Mantenimiento. Al ser más abiertos, los sistemas Web requieren de un mantenimiento tanto adaptativo como correctivo, más crítico que en los sistemas clásicos, con el añadido de que, además, los sistemas Web normalmente deben funcionar 24 horas al día y 7 días a la semana, lo que hace disponer de menos tiempo para las tareas de mantenimiento.

La ingeniería Web no es un clónico perfecto, pero toma prestado muchos de los conceptos y principios básicos de la ingeniería del software orientada a módulos, dando importancia a las mismas actividades técnicas y de gestión. Como elemento central se definen las aplicaciones Web como sistemas y aplicaciones basadas en Web. Al igual que cualquier disciplina, la ingeniería Web aplica un enfoque genérico que se suaviza con estrategias, tácticas y métodos especializados. El proceso de ingeniería Web comienza con una formulación del problema que pasa a resolverse con las aplicaciones Web. Se planifica el proyecto y se analizan los requisitos de la aplicación Web, posteriormente se lleva a cabo el diseño de interfaces, el diseño arquitectónico y el diseño de navegación. El sistema se implementa utilizando lenguajes y herramientas especializadas asociadas con la Web. Posteriormente se ejecutan las pruebas. Debido a que las aplicaciones Web están en constante evolución, deben de establecerse los mecanismos para el control de configuraciones, garantía de calidad y soporte continuado.

En este sentido, la ingeniería Web es multidisciplinaria y aglutina contribuciones de diferentes áreas: arquitectura de la información, ingeniería de hipermedia, ingeniería de requisitos, diseño de interfaz de usuario, usabilidad, diseño gráfico y de presentación, diseño y análisis de sistemas, ingeniería del software, ingeniería de datos, indexado y recuperación de información, testeo, modelado y simulación, despliegue de aplicaciones, operación de sistemas y gestión de proyectos. La ingeniería Web no es un clon o subconjunto de la ingeniería de software aunque ambas incluyen, como parte de su ciclo de vida, el análisis y desarrollo del software, pues a pesar de que la ingeniería Web utiliza principios de la ingeniería del software, incluye nuevos enfoques, metodologías, herramientas, técnicas, guías y patrones para cubrir los requisitos particulares asociados a las aplicaciones Web.

Los principales aspectos de la ingeniería Web incluyen, entre otros, los siguientes temas: (1) Diseño de procesos de negocio para aplicaciones Web. (2) Entornos para el desarrollo de aplicaciones Web integrados. (3) Herramientas de autor para contenido multimedia. (4) Pruebas de rendimiento de aplicaciones basadas en Web. (5) Personalización y adaptación de aplicaciones Web. (6) Modelado de procesos para aplicaciones Web. (7) Herramientas y métodos de prototipazo. (8) Control de calidad y pruebas de sistemas. (9) Ingeniería de requisitos para aplicaciones Web. (10) Aplicaciones para la Web Semántica. (11) Aplicaciones Web móviles y ubicuas. (12) Usabilidad de aplicaciones Web. (13) Accesibilidad para la Web. (14) Métricas para la Web, estimación de costos y medición. (15) Gestión de proyectos Web y gestión de riesgos. (16) Desarrollo y despliegue de servicios Web.

Desde hace años muchos grupos de investigación han encaminado sus trabajos al desarrollo de entornos metodológicos orientados hacia las aplicaciones Web en general. De esta forma metodologías como el Modelo para el Diseño de Hipermedios (HDM), el Método para el Diseño Hipermedia Orientado a Objetos (OOHDM) y otras más actuales como la Ingeniería Web basada en el Lenguaje de Modelado Unificado (UWE) trabajan en el entorno de la Ingeniería Web proponiendo métodos, técnicas y modelos que se adecuen al mismo.

Guillermo Choque Aspiazu
www.eldiario.net
Mayo 5 de 2008

Ingeniería del Software Orientada a Objetos

De acuerdo con la definición proporcionada por el Instituto de Ingenieros Eléctricos y Electrónicos de los Estados Unidos “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo”. Según el mismo Instituto, “un producto software es un producto diseñado para un usuario”. En este contexto, la ingeniería del software es un enfoque sistemático del desarrollo, operación, mantenimiento y retiro del software; en palabras más sencillas, se considera que “la ingeniería del software es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas a los problemas de desarrollo del software”.

Se dice que el ser humano vive en un mundo de objetos, estos objetos existen en la naturaleza, en entidades hechas por el hombre, en los negocios y en los productos que se utilizan cotidianamente. Pueden ser clasificados, descritos, organizados, combinados, manipulados y creados. Por eso no es sorprendente que se proponga una visión orientada a objetos para la creación del software de computadora, una abstracción que modela el mundo de forma tal que ayuda a entenderlo y gobernarlo mejor. La primera vez que se propuso un enfoque orientado a objetos para el desarrollo del software fue a finales de los años 1960. Sin embargo, las tecnologías de objetos han necesitado más de veinte años para llegar a ser ampliamente usadas. Durante los años 1990, la ingeniería del software orientada a objetos se convirtió en el paradigma de elección para muchos productores de software y para un creciente número de sistemas de información y profesionales de la ingeniería.

Las tecnologías de objetos llevan a reutilizar, y la reutilización conduce a un desarrollo del software más rápido y a programas de mejor calidad. El software orientado a objetos es más fácil de mantener debido a que su estructura es inherentemente poco acoplada. Esto lleva a menores efectos colaterales cuando se deben hacer cambios. Los sistemas orientados a objetos son fáciles de adaptar y son altamente escalables, pudiendo crearse grandes sistemas mediante el ensamblado de subsistemas reutilizables. Hacia mediados de los años 1980, los beneficios de la programación orientada a objetos empezaron a obtener reconocimiento, y el diseño de objetos pareció ser un enfoque sensato para la gente que deseaba utilizar el lenguaje de programación orientada a objetos.

El paradigma orientado a objetos se basa en el concepto de objeto. Un objeto es aquello que tiene: (1) estado, que hace alusión a las propiedades más valores; (2) comportamiento, referido a las acciones y reacciones a mensajes y (3) identidad, referida a la propiedad que la distingue de los demás objetos. La estructura y comportamiento de objetos similares se encuentran definidos en una clase común; los términos instancia y objeto son intercambiables. Una clase es un conjunto de objetos que comparten una estructura y comportamiento común. La diferencia entre un objeto y una clase es que un objeto es una entidad concreta que existe en tiempo y espacio, mientras que una clase representa una abstracción, la “esencia” de un objeto.

La orientación a objetos puede describirse como el conjunto de disciplinas que desarrollan y modelan software de modo tal que facilitan la construcción de sistemas complejos a partir de los denominados componentes. El atractivo intuitivo de la orientación a objetos es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible. Estos conceptos y herramientas orientados a objetos son tecnologías que permiten que los problemas del mundo real sean expresados de modo fácil y natural. Las técnicas orientadas a objetos proporcionan mejoras y metodologías para construir sistemas de software complejos a partir de unidades de software modulares y reutilizables. La orientación a objetos trata de cubrir las necesidades de los usuarios finales, así como las propias de los desarrolladores de los productos software. Estas tareas se realizan mediante el modelado del mundo real. El soporte fundamental es el modelo objeto.

En el enfoque orientado a objetos las propiedades del objeto son claves. Los principios del modelo orientado a objetos son: abstracción, encapsulación, modularidad y jerarquía, fundamentalmente, y en menor grado tipificación, concurrencia y persistencia. Grady Booch en el año 1986 establece que un modelo puede ser considerado como orientado a objetos si contiene alguno de los primeros cuatro elementos siguientes: (1) Abstracción. Es una descripción simplificada o especificación de un sistema que enfatiza algunos de los detalles o propiedades del sistema, mientras suprime otros. (2) Encapsulación. En el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus características esenciales. (3) Modularidad. Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos coherentes e independientes. (4) Jerarquía o herencia. Es el orden de las abstracciones organizado por niveles. (5) Tipificación. Es la definición precisa de un objeto de tal forma que objetos de diferentes tipos no puedan ser intercambiados o, cuando mucho, puedan intercambiarse de manera muy restringida. (6) Concurrencia. Es la propiedad que distingue un objeto que está activo de uno que no lo está. (7) Persistencia. Es la propiedad de un objeto a través de la cual su existencia trasciende el tiempo, es decir, el objeto continúa existiendo después de que su creador ha dejado de existir o trasciende el espacio, es decir, la localización del objeto se mueve del espacio de dirección en que fue creado.

Existe un gran número de métodos orientados a objetos, que datan de fines del siglo pasado y de principios del presente. Muchos de los métodos pueden ser clasificados como orientados a objetos porque soportan de manera central los conceptos orientados a objetos. Algunas de las metodologías más conocidas y estudiadas hasta antes del Lenguaje de Modelado Unificado son: (1) Diseño Orientado a Objetos (OOD) propuesto por Booch. (2) Técnica para el Modelado de Objetos (OMT) de Rumbaugh. (3) Análisis Orientado a Objetos (OOA) de Coad y Yourdon. (4) Diseño Jerárquico Orientado a Objetos (HOOD). (5) Diseño Estructurado Orientado a Objetos (OOSD) de Wasserman. (6) Análisis de Sistemas Orientados a Objeto (OOSA) de Shaler y Mellor. (7) Diseño Guiado por Responsabilidades (RDD) de Wirfs y Brock, entre otros. A principios de este siglo, las metodologías más importantes de análisis y diseño de sistemas han confluido en lo que se denomina Lenguaje de Modelado Unificado (UML), bajo el respaldo del Grupo de Administración de Objetos (OMG).

El Proceso Unificado es un “proceso de desarrollo de software configurable que se adapta a través de los proyectos variados en tamaños y complejidad”. Se basa en muchos años de experiencia en el uso de la tecnología orientada a objetos para el desarrollo del software de misión crítica en una variedad de industrias por la compañía Rational, donde confluyen “los tres amigos” como se llaman a sí mismos o los tres grandes gurus de la orientación a objetos: Grady Booch, James Rumbaugh e Ivar Jacobson. A mediados de los años 1990 ya llegaba a una etapa de madurez el enfoque orientado a objetos como paradigma para el desarrollo de sistemas de información. El Grupo para la Administración de Objetos es un consorcio a nivel internacional que integra a los principales representantes de la industria de la tecnología de información orientada a objeto. El Grupo para la Administración de Objetos tiene como objetivo central la promoción, fortalecimiento e impulso de la industria orientada a objetos. Este grupo propone y adopta por consenso especificaciones entorno a la tecnología orientada a objeto. Una de las especificaciones más importantes es la adopción en 1998 del Lenguaje de Modelado Unificado como un estándar, que junto con el Proceso Unificado logran consolidar la tecnología orientada a objetos.

Algunos de los beneficios del enfoque orientado a objetos son: Primero, el uso del modelo orientado a objetos ayuda a explotar el poder expresivo de todos los lenguajes de programación basados en objetos y los orientados a objetos, como Smalltalk, Object Pascal, C++, CLOS, Ada y Java. Segundo, el uso del modelo orientado a objetos alienta la reutilización no solo del software, sino de diseños completos. Tercero, el modelo orientado a objetos produce sistemas que están construidos en formas intermedias estables y por ello son más resistentes al cambio en especificaciones y tecnología. Con lo mencionado se considera que el principal beneficio del diseño orientado a objetos es que proporciona un mecanismo para formalizar modelos de la realidad.

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

Epistemología Informática

La palabra epistemología se estructura con dos voces griegas: episteme, “conocimiento” y logos, “teoría”. Se encarga del problema correspondiente a la relación sujeto-objeto. Entendiendo que el sujeto es el ser cognoscente y el objeto todo aquello sobre lo que el sujeto realiza su actividad cognitiva. El problema del conocer ha sido abordado desde hace ya varios siglos, aunque es a partir del siglo XIX en el que se advierte un mayor interés en el desarrollo de la epistemología. De esta manera, la epistemología, conocida también como gnoseología o teoría del conocimiento, es una parte de la filosofía, como la ética o la lógica. A diferencia de estas disciplinas, la epistemología es especulativa; es decir, se interesa por entender el conocimiento en sí mismo, como es, no como debería ser.

La epistemología es la parte más importante de la teoría de la ciencia, disciplina intelectual que también incluye otros estudios que tienen a la ciencia por objeto, como la historia o la sociología de la ciencia. De cualquier forma que se la vea, es una disciplina eminentemente abstracta, o por lo menos lo ha sido hasta ahora, en el sentido de que sus principios se reconocen y aclaran por reflexión y no por experimentación u observación. Su objetivo es aclarar las condiciones en que es posible el conocimiento humano, así como los límites dentro de los cuales puede darse; en otras palabras, juzga sobre su validez y sobre su alcance. Tiene que ver tanto con el conocimiento que se asocia con la sensibilidad, normalmente denominado “conocimiento empírico” como con las dotes asociativas del intelecto, regularmente llamado “conocimiento racional”. Es importante no confundir la epistemología, cuya etimología griega la presenta como “tratado del conocimiento” o “tratado de la ciencia”, con otras dos disciplinas importantes que también se interesan por el conocer: la lógica y la psicología. La lógica estudia específicamente el razonamiento y se interesa por establecer las condiciones formales del conocimiento. La psicología por su parte examina al ser cognoscente en su condición psicofísica, y estudia los mecanismos que hacen posible el funcionamiento intelectual de las distintas especies animales, muy en especial el Homo sapiens.

Una ciencia teórica examina las restricciones a las que está sometido el pensamiento, sea desde el punto de vista de la lógica o de las matemáticas. Una ciencia empírica, en cambio, describe a la naturaleza según ciertas categorías de carácter experimental, que pueden ser mejor o peor adaptadas a esta tarea; la ciencia es corregible de conformidad con los resultados de las observaciones y experimentos sobre el mundo que rodea al ser humano. De acuerdo con esto, se intenta explorar la posibilidad de que la informática sea más bien una ciencia empírica, y no una ciencia teórica como la teoría de la computabilidad. Sin embargo, a pesar de ese contraste, se considera que existe continuidad en el tratamiento de la cuestión sobre la naturaleza de la informática, dado que la tesis de “Turing” puede ser considerada como el fundamento teórico del paradigma computacional de la informática. Tal paradigma surge como idea abstracta en la obra de Alan M. Turing, como la noción de máquina universal capaz de imitar a cualquier otra máquina, y logra ser elaborada en la forma de una “ley de estructura cualitativa”, de carácter empírico, por Newell y Simon, en su conferencia del año 1980.

Históricamente, la informática se constituyó en ciencia, durante la primera mitad de este siglo, como un ejercicio teórico por parte de matemáticos bastante ingeniosos, como Turing. Fue sobre todo una exploración de la naturaleza de los problemas accesibles a la mente humana. Es especialmente notable que las computadoras se construyeran después que esta teoría fuera concebida, y que las reflexiones de los matemáticos sobre computabilidad tomaran como objeto de reflexión a la computadora humana, típicamente equipada de papel y lápiz para hacer sus cálculos. La concepción de la informática como ciencia eminentemente teórica, no es la única posible visión de esta ciencia. La informática puede también concebirse como una investigación de carácter empírico sobre los fenómenos de la computación. Pero aún para los autores que así la conciben, la teoría de la computabilidad tiene un papel muy importante: echar los cimientos y crear el vocabulario, para el análisis de estos fenómenos.

Existen, muchas maneras de obtener información y de acercarse a la verdad. Aún es posible, por una especie de efecto acumulativo cultural, decidir qué sería lo más conveniente para hacerlo: si escuchar al sabio, adquirir y leer libros o procesar y vincular información mediante el uso de computadoras en red. Sin embargo, la idea de que las formas más antiguas van perdiendo funcionalidad en favor de las más nuevas, hace necesario echar un ojo a lo que se ha dado en llamar el paradigma informático, en sus dos concepciones: (1) como una interpretación mecánica y física del pensamiento y comportamiento humano, a través de la metáfora de la computadora o máquina del pensamiento, (2) como una potenciación de la interactividad y de un “pluralismo epistemológico”.

Al respecto de la primera posición, Claudio Gutiérrez en su curso de “Epistemología e Informática”, difundido en la red el año 1997, advierte que existen diversas maneras de entender este paradigma. Una manera, la original, consiste en concebirla como una rama de las matemáticas; esto es, admitir que sus temas se derivan de una elaboración de la teoría de la computabilidad, tal como fuera practicada en la primera mitad del siglo XX por Turing y otros matemáticos. Pero es también posible concebirla como una disciplina empírica y, específicamente, como un estudio experimental sobre los sistemas de símbolos físicos. Según Gutiérrez, este modo de considerarla es la visión preponderante. Finalmente, es posible describir el quehacer y las preocupaciones de los informáticos comparándolos con los quehaceres y preocupaciones de otros científicos y profesionales, como, por ejemplo, los científicos sociales, los literatos y artistas, y los profesionales del diseño. En este último sentido, se vuelve legítimo considerar la informática como una disciplina científica “suave”. Pero aún acogiendo la categorización de la informática como una ciencia “fuerte”, es posible entender este carácter científico de maneras fundamentalmente nuevas, con base en una reflexión sobre el desarrollo tecnológico reciente, en especial el advenimiento de máquinas masivamente paralelas que no se conforman de manera simple con el modelo de la computadora de procesamiento secuencial de Von Neumann o de la máquina universal de Turing.

Entendida la informática como una disciplina donde es predominante la actividad del análisis, del diseño y de la programación, aparece una segunda concepción, delineada adecuadamente por Sherry Turkle. Esta autora propone una concepción de la informática, menos ligada a la formalización de procesos y más abierta a una interactividad hombre-máquina. Advierte que existe una imagen muy difundida de la computadora como una máquina estrictamente lógica, y de la programación computacional como una actividad rigurosamente técnica y matemática. Como consecuencia, tanto la cultura especializada como la popular consideran la informática como la encarnación misma de lo formal y abstracto. Sin embargo, existen otras facetas que le interesa resaltar. Turkle sostiene que existen programadores muy exitosos cuya relación con el material se parece más a la de un pintor con su tela que a la de un lógico con su lápiz y papel y sus símbolos abstractos. Estos programadores utilizan aproximaciones al conocimiento concretas y personales, bastante diferentes de los estereotipos que se asocian con las matemáticas o la lógica formal.

Esta diversidad de enfoques sugiere que el acceso equilibrado a los elementos básicos de la informática exige aceptar la validez de maneras múltiples de conocer y pensar, lo que la autora califica de “pluralismo epistemológico”. Aquí la palabra “epistemología” se utiliza en un sentido más cercano al psicólogo Piaget que a los filósofos de la ciencia. En la filosofía de la ciencia, se considera como meta de la epistemología indagar sobre la naturaleza del conocimiento y las condiciones de su validez; y, con la excepción de corrientes inspiradas en la historia de la ciencia, como la de Thomas Kuhn, solo una forma de conocimiento, la proposicional, se considera adecuada. El paso dado por Piaget en su definición de “epistemología genética” es evadir la investigación sobre la “verdadera” naturaleza del conocimiento a favor de un estudio comparativo de la naturaleza diversa de las distintas clases de conocimiento. Turkle asumiendo este pluralismo epistemológico de Piaget, va un paso más allá. En efecto, donde Piaget ve las diversas formas de conocimiento en términos de etapas hacia un punto de llegada que sería la razón formal, ella ve las diferentes aproximaciones al conocimiento como estilos varios, cada uno igualmente aceptable en sus propios términos.

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

sábado, 3 de mayo de 2008

Realidad Aumentada

El ser humano se ha distinguido por la capacidad de elaborar herramientas con el fin de aumentar sus capacidades físicas; desde los primeros cuchillos de piedra hasta los modernos aviones de reacción, se puede decir que ha recorrido un buen trecho en aumentar las capacidades de sus sentidos a través de tejidos sintéticos, televisores, perfumes, lentes y microscopios. Mediante la tecnología se ha logrado avances que, hasta hace poco, parecían de ficción, tal es el caso de lo que hoy en día se conoce como realidad aumentada. La realidad aumentada tiene como finalidad superponer, al entorno real, la información que interesa visualizar, utilizando visores de cómputo que agregan información virtual a la percepción de los usuarios. Así, a diferencia de la popular realidad virtual que pretende reemplazar al mundo real, la realidad aumentada la complementa.

Desde una óptica bastante simple, la realidad aumentada es una nueva rama de interfaces donde los elementos reales conviven con los elementos virtuales. Es una tecnología totalmente innovadora, ligada a la realidad virtual, aunque diferente en varios aspectos, debido a que la realidad virtual es inmersiva, esto significa que el usuario no puede ver el mundo real a su alrededor. En contraste con la realidad virtual, la realidad aumentada completa la visión real del usuario, no la reemplaza por otra. Se define un sistema de realidad aumentada como aquél sistema que cuenta con las siguientes propiedades: (1) Combina objetos reales y virtuales. (2) Es interactivo y en tiempo real. (3) Se alinean los objetos virtuales y reales unos con otros.

En los inicios de la investigación en realidad aumentada, sólo un pequeño grupo de investigadores trabajó en esta área debido a los altos costos implicados hasta que, hace unos 10 años, éstos disminuyeron tanto que fue posible abrir laboratorios de realidad aumentada en diversos centros universitarios de todo el mundo. Los dispositivos utilizados en la realidad aumentada son de dos tipos: transparentes ópticos y transparentes de video. En los primeros, a grandes rasgos, se utiliza un prisma que refleja los gráficos generados por la computadora en la pantalla de cristal líquido, ubicada frente al ojo del usuario, permitiendo que la luz del exterior pase, es decir, haciendo que los sensores detecten la posición y orientación de la cabeza para ubicarse en el lugar correcto. Por su parte, en los sistemas transparentes de video la formación de las imágenes es muy similar, sólo que el mundo exterior es captado por una cámara que muestra, ante el ojo, las imágenes reales y virtuales ya fusionadas.

La realidad aumentada es una técnica mediante la cual los usuarios pueden percibir la realidad superponiendo a los objetos reales modelos virtuales enriquecidos. El observador puede trabajar y examinar objetos en tres dimensiones reales mientras recibe información adicional sobre estos objetos o sobre la tarea que se está realizando. De este modo, la realidad aumentada permite al usuario permanecer en contacto con su entorno de trabajo, mientras su foco de atención no está en la computadora, sino en el mundo real. El papel que juega la computadora, en este entorno, es el de asistir y mejorar las relaciones e interacciones entre las personas y el mundo real.

Se dice que en los sistemas de realidad virtual el usuario está completamente inmerso en un mundo artificial y no hay manera de interactuar con objetos del mundo real. En contraposición, en la realidad aumentada los usuarios pueden interactuar mezclando el mundo real y virtual de una forma natural. Así, la diferencia entre realidad virtual y la realidad aumentada se encuentra en el tratamiento que hacen del mundo real. La realidad virtual sumerge al usuario dentro de un mundo virtual que reemplaza completamente al mundo real exterior, mientras que la realidad aumentada deja ver al usuario el mundo real a su alrededor y aumenta la visión que éste tiene de su entorno mediante la superposición o composición de los objetos en tres dimensiones virtuales. Idealmente, esto daría al usuario la ilusión de coexistencia entre los objetos de los mundos real y virtual.

Como se ha mencionado, la realidad aumentada se basa en la existencia de una serie de dispositivos que son capaces de añadir información virtual a la información física existente. Es un enfoque distinto al de la realidad virtual, ya que no se sustituye la realidad física, si no que se complementa la misma con otros datos o elementos. Esto permite crear interfaces de usuario bastante ricas e intuitivas que, probablemente, en un futuro no muy lejano se extiendan y generalicen como interfaces ideales de muchos sistemas inteligentes. La realidad aumentada es una tecnología que siempre suelen ubicarse en el futuro, en gran medida debido a su aparición en multitud de películas y series de ciencia ficción, dónde los personajes utilizan algún tipo de gafas que añade información sobre lo que se observa. A estas alturas se puede definir a la realidad aumentada como un entorno que incluye elementos de realidad virtual y elementos del mundo real. Complementando esta definición inicial, un sistema de realidad aumentada es aquel que: (1) Combina mundo real y mundo virtual. (2) Es interactivo en tiempo real. (3) Se registra en tres dimensiones. Se podría añadir que los sistemas de realidad aumentada llevan la computadora al entorno de trabajo real del usuario, mientras que los sistemas de realidad virtual intentan llevar el mundo real al interior de la computadora.

Como objetivo operativo, la realidad aumentada debe generar modelos informáticos de lugares y sonidos relacionados con la realidad física, así como determinar la situación exacta de cada usuario, y ser capaz de mostrar al usuario una representación real del entorno que se ha añadido virtualmente. Es muy importante determinar la orientación y posición exacta del usuario, sobre todo en las aplicaciones que así lo requieran: uno de los retos más importante que se tiene a momento, en el desarrollo de proyectos de realidad aumentada, es que los elementos visuales estén coordinados a la perfección con los objetos reales, puesto que un pequeño error de orientación puede provocar un desalineamiento perceptible entre los objetos virtuales y físicos. En zonas muy amplias los sensores de orientación usan magnetómetros, inclinómetros, sensores inerciales y otros, que pueden verse afectados gravemente por campos magnéticos, y por lo tanto se ha de intentar reducir al máximo este efecto.

En términos de implementación, la realidad aumentada consiste en añadir gráficos virtuales, en tiempo real, al campo de visión de una persona. Esta tecnología constituye un nuevo paradigma en la forma como los sistemas multimedia pueden ayudar a las personas en la realización de sus actividades debido a que permite utilizarla en el mundo real como una interfaz alterna a la pantalla de computadora. A diferencia de la realidad virtual, que sumerge al usuario en un ambiente completamente artificial, la realidad aumentada permite al usuario mantener contacto con el mundo real mientras interactúa con objetos virtuales. A pesar de existir el entorno de la realidad aumentada hace una década aproximadamente, apenas en los últimos años es que su progreso se ha hecho más evidente. Ese progreso resulta de iniciativas como la creación de una conferencia especializada denominada: “Simposio Internacional sobre Realidad Aumentada y Mixta”

El desafío más grande que se encuentra en el desarrollo de aplicaciones de realidad aumentada está en la necesidad de saber dónde se sitúa el usuario con referencia a su alrededor. Existe también el problema de seguir el movimiento de la cabeza y ojos del usuario. La aplicación necesita tener un sistema de seguimiento para reconocer estos movimientos y proyectar los gráficos relacionados con el ambiente que el usuario está viendo. Los objetos virtuales generados por computadora deben posicionarse de manera precisa con referencia al mundo real, para evitar que el usuario tenga problemas en visualizar la fusión entre las imágenes reales y virtuales.

La realidad aumentada ofrece infinidad de nuevas posibilidades de interacción, que hacen que se encuentre presente en muchos y varios ámbitos, como son la arquitectura, el entretenimiento, la educación, el arte, la medicina o las comunidades virtuales. Actualmente la mayoría de aplicaciones de realidad aumentada para proyectos educativos se usan en museos, exhibiciones, parques con atracciones temáticas y otros, puesto que su costo todavía no es suficientemente bajo para que puedan ser empleadas en el ámbito doméstico. Estos lugares aprovechan las conexiones remotas para mostrar información sobre objetos o lugares, así como imágenes virtuales como por ejemplo ruinas reconstruidas o paisajes tal y como eran en el pasado.

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

Bibliominería de Datos

La minería de datos aunque en teoría puede ser aplicada a cualquier tipo de información comúnmente es aplicada a grandes volúmenes de datos de las organizaciones. Las técnicas que aporta esta disciplina se emplean para mejorar el rendimiento de procesos industriales o de negocio en los que se manejan grandes volúmenes de información estructurada y almacenada en bases de datos. La búsqueda de patrones en conjuntos de datos tiene una larga tradición en el ámbito académico; en principio en el área estadística y más recientemente en inteligencia artificial, de allí surgen métodos y procesos como el descubrimiento del conocimiento en bases de datos. Pero la reciente necesidad de la industria por explotar el potencial de sus enormes acumulaciones de datos en medios informáticos ha impulsado a vendedores de tecnologías y organizaciones de consultoría a crear metodologías o procesos para el uso de las herramientas computacionales disponibles que implantan los algoritmos propios de la minería de datos. El uso industrial y científico de la minería de datos, la aplicación en nuevas áreas como es el caso de las bibliotecas y el constante crecimiento del volumen y la tipología de datos, requieren mucho más que la aplicación de sofisticadas técnicas como redes neuronales o árboles de decisión sobre tablas de datos.

Ingresando en el contexto de la temática, las bibliotecas tienen una larga tradición en el uso y análisis de los patrones de conducta especialmente de la colección, con el cual se determina principalmente la utilización que se hace del material o la información por parte de los usuarios. A pesar de este uso, desafortunadamente pocas bibliotecas se han sabido aprovechar estos datos como una manera de mejorar el servicio de cara al cliente, de manejar presupuestos para la adquisición, o que estos datos sirvan para apoyar la toma de decisiones estratégicas sobre la orientación del consumo de información en sus organizaciones.

La aplicación de minería de datos en bibliotecas se denomina bibliominería. El término fue acuñado por Nicholson y Stanton el año 2003 como una derivación de los términos bibliometría y minería de datos, con el fin de favorecer la conceptualización y el trabajo de los investigadores del campo. Estos autores definen bibliominería como “la combinación de minería de datos, bibliometría, estadística y herramientas de elaboración de informes y extracción de patrones de comportamiento, basados en sistemas bibliotecarios”. El uso de este nuevo término está justificado porque el término biblioteca asociado a la minería de datos se refiere principalmente al conjunto de algoritmos que utiliza el software, por lo que puede dar lugar a errores y dificultades en la descripción y búsqueda de información sobre el tema. Si bien, aunque la conceptualización es reciente, la bibliominería es una actividad que se viene realizando desde finales de la década de 1990. Un ejemplo son los casos de las bibliotecas de la Universidad de Waterloo en Ontario, Canadá y la Universidad de Pennsylvania ubicada en Filadelfia, Estados Unidos. Otro caso reciente es el relacionado con la biblioteca de la Universität Karlsruhe ubicado en Karlsruhe, Alemania.

Como se ha señalado, la bibliominería suele relacionarse con la bibliometría, pues ambas tareas se ocupan del análisis y cruce de datos mediante técnicas estadísticas para descubrir y establecer patrones y tendencias en los datos como ayuda a la toma de decisiones, porque obtener el dato por el dato, la mera presentación de resultados es una tarea vacua e inútil. Si bien en bibliominería se trata de datos sobre la actuación previa a la utilización de la información, mientras que la bibliometría trabaja con los datos relativos a la información que ha sido finalmente utilizada. El proceso de bibliominería está compuesto por seis fases, las que a grandes rasgos coinciden con las propuestas sobre minería de datos, estas fases son las siguientes: (1) Determinar las áreas de interés. (2) Identificar las fuentes de datos internas y externas. (3) Recopilar, limpiar y hacer anónimos los datos en el almacén de datos. (4) Seleccionar las herramientas de análisis apropiadas. (5) Descubrir patrones a través de la minería de datos y generar informes con herramientas tradicionales de análisis. (6) Analizar e implementar los resultados. Por fuentes de datos internas se entienden los datos generados por la propia biblioteca en el transcurso de su actividad, lo que se denominan datos observacionales, es decir, datos que han sido recopilados en la actividad diaria. Por fuentes de datos externas se entienden aquellos tomados de fuentes ajenas a la organización y que sirven para contextualizar los primeros, se trata esencialmente de datos demográficos.

En las bibliotecas tradicionales, los datos internos proceden principalmente de dos fuentes: las consultas a los Catálogos de Acceso Publico Abiertos y los datos de circulación de materiales y préstamo, incluido el préstamo interbibliotecario. Estos datos muestran información de los materiales que son los más usados, el tiempo que son requeridos, los materiales relacionados o similares y las bibliotecas con las que se tiene mayor relación a través del préstamo interbibliotecario.

Sin embargo estos datos no recogen en su totalidad la actuación que el usuario realiza en la biblioteca, especialmente en el caso de las bibliotecas de acceso abierto a la colección, quedándose fuera la consulta de fondos que no se prestan en la estantería, normalmente obras de referencia y publicaciones periódicas en papel y que a su vez suelen ser los más caros. Por consiguiente, los resultados de bibliominería han de ser considerados como representativos de una gran parte del uso de la biblioteca, pero no de su totalidad, por lo que estos datos deben apoyarse en otros datos e información conexa. En el caso de bibliotecas digitales y fondos en línea, el abanico de datos puede llegar a ser mucho mayor, ya que es posible crear y utilizar archivos de registro de actividades que marquen todo el recorrido y acciones que realizan los usuarios de la colección de la biblioteca. La identificación del usuario puede hacerse de dos formas, dependiendo de la política de la biblioteca. Si se trata de un acceso restringido, el usuario se ve obligado a identificarse, y en el caso de bibliotecas digitales de acceso abierto, pueden estudiarse las sesiones que realiza cada usuario mediante la identificación de la dirección del protocolo de acceso a Internet.

De modo general, la utilización de los datos almacenados por la biblioteca puede realizarse de tres maneras: en primer lugar mediante la elaboración de informes periódicos de variables determinadas, lo que se denomina procesamiento analítico en línea o minería de datos dirigida; en segundo lugar, mediante preguntas concretas a la base de datos; y en tercer lugar, mediante exploración aleatoria de variables, lo que se denomina minería de datos no dirigida. Con ello se pueden realizar tres tareas básicas: (1) Asociaciones. Ver qué elementos están relacionados ya sea por derivación, causa-efecto o por similitud. (2) Agrupaciones. Crear grupos de datos con características similares. (3) Resumen. Presentar de modo abreviado los datos sobre la actividad diaria para una mejor comprensión de los mismos. Una cuestión de suma importancia en el estudio, interpretación y utilización de los resultados de bibliominería, es que, al igual que con los datos obtenidos mediante estudios bibliométricos, éstos no deben ser tomados como algo definitivo y autoexplicativo, sino que deben ser tomados en cuenta en su contexto y ser comparados, contrastados y estudiados en función de otras variables y otros datos.

En cuanto a aplicaciones concretas en bibliotecas, las posibilidades son múltiples y han sido tratadas por diferentes autores. Un caso es el que presenta el investigador Papatheodorou, quien en el año 2003, centrándose en bibliotecas digitales, indica que la bibliominería puede ayudar a las bibliotecas de las siguientes maneras: (1) Optimización de servicios. Ayuda a los administradores a reorganizar el contenido de la biblioteca, autoridades e interfaces. (2) Apoyo a la toma de decisiones. (3) Personalización. Ayuda a los usuarios a identificar información de interés para ellos por recomendación de materias similares. Lo que supondría una mejora de los tan útiles sistemas de difusión selectiva de la información. Con relación a otro grupo de aplicaciones, los investigadores Nicholson y Stanton, en el año 2003, señalan las siguientes: (1) Predicción de necesidades de los usuarios. Que consiste en ver la evolución de las temáticas consultadas, lo cual puede ayudar a predecir cuáles serán consultadas posteriormente. (2) Identificación de materiales no consultados. Debido a un inadecuado proceso de selección o por una catalogación o clasificación incorrecta. (3) Justificación del mantenimiento o supresión de acuerdos de préstamo interbibliotecario. Referido al gasto del préstamo frente al gasto de adquisición.

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

Teleportación Cuántica

El año 1982, en un laboratorio de óptica francés, el físico Alain Aspect, ayudado por otros colegas, realizó lo que planeaba el problema de Einstein mostrando que pueden producirse partículas en estados entrelazados, esto es, cuerpos en estados relacionados de tal manera que la manipulación de uno de ellos afecta la situación de otro distante, sin que medie la transmisión de una señal que informe acerca de tal manipulación. El experimento de Aspect fue realizado produciendo un par de fotones que viajaron en direcciones opuestas y analizando los efectos en uno de ellos causados por la observación del otro. Ahora se sabe de la existencia de correlaciones entre sistemas de partículas causadas por la naturaleza de su producción, las cuales se conservan mientras no se perturbe al sistema y se manifiestan al hacerlo, aunque la separación de las partículas sea muy grande.

La posibilidad de crear estados entrelazados consiste en que si se pone dos sistemas cuánticos en contacto bajo ciertas condiciones, las propiedades de ambos quedaran inextricablemente relacionadas. Aunque después se los separe, con bastante cuidado, estos dos sistemas pasan a estar “enredados” entre ellos: todo lo que se le haga a uno le afectara al otro. En teoría, las posibilidades de usar esto en comunicaciones seguras son tentadoras: considere dos electrones en La Paz, entrelace los mismos y después lleve uno de ellos, con bastante cuidado a Tokyo. No importa la distancia, seguirán enredados. De esta manera, si Miguel que está en La Paz le quiere transmitir un mensaje seguro a su amiga Yukita que se encuentra en Tokyo, manipula su electrón de alguna forma que tengan convenida y luego llama por teléfono o envía un e-mail a Yukita y le dice que mida el estado de su electrón. La única forma de recibir el mensaje de Miguel será midiendo el estado del electrón de Yukita. Esta comunicación habrá sido inviolable, porque si cualquiera intentase “tocar” alguno de los dos electrones sin consentimiento de Miguel y Yukita, el sistema se descerrajaría, y ellos sabrían que alguien había intentado espiar su comunicación.

El fenómeno de la teleportación cuántica también se basa en los estados entrelazados. No se trata, en realidad, de teleportar materia de un lugar a otro de forma instantánea, al estilo de la serie “Viaje a las Estrellas”, aunque los físicos utilicen a veces esa imagen porque, al fin y al cabo, tienen vender los productos de las investigaciones y conseguir que los contribuyentes sigan financiando el funcionamiento de los laboratorios. La teleportación cuántica consiste en teleportar el estado de una partícula a otra alejada de ella. Todo esto de los estados entrelazados es fundamental en computación cuántica, porque se puede enredar los Qbits. En computación clásica, se tiene que hacer operaciones sobre los bits de uno en uno. Sin embargo, en una computadora cuántica, donde se tenga un grupo de Qbits enredados, se puede operar a la vez en paralelo sobre todos ellos. Y este paralelismo intrínseco es una de las grandes ventajas de la computación cuántica.

La teleportación es un sistema que consiste en trasladar objetos o sustancias de un lugar a otro, sin necesidad de moverlos, sino que dividiendo sus componentes. En otras palabras, se trata de tomar un objeto y lograr que en otro lugar del universo aparezca un objeto idéntico, en el mismo estado. La materia y la energía no pueden ser teleportadas, pero la “entidad cuántica” de una partícula sí. Por eso, en la teleportación cuántica no se transfieren las partículas mismas, sino que sus “estados cuánticos”, es decir, información que permite “reconstruirlos” casi instantáneamente en otro lado. Los físicos creen que este logro será muy importante, pero consideran que por el momento la teleportación sólo será posible para sistemas de comunicación digitales y de computación avanzada. Uno de los principales objetivos sería desarrollar computadoras cuánticas, capaces de solucionar problemas que las mejores computadoras actuales tardarían cientos de años en resolver. Una de las aplicaciones, por ejemplo, podría ser la de descifrar sistemas encriptados de información.

En la mecánica cuántica, se llama “entrelazamiento” o “enredo” a un fenómeno que hace que dos partículas subatómicas permanezcan relacionadas entre sí casi por obligación, si fueron generadas en un mismo proceso. Esas partículas forman subsistemas que no pueden representarse separadamente. Cuando una de las dos partículas sufre un cambio de estado, repercute en la otra. Bajo ciertas circunstancias, cuando una partícula es dividida en dos, cada una de las resultantes posee propiedades que están unidas a la otra, sin importar cuán separadas se encuentren. El estado cuántico de una partícula “entrelazada” una vez medida, instantáneamente define el estado de la otra. El gran Albert Einstein definió este principio como “una asombrosa acción a la distancia”, que es utilizado para la teleportación, ya que las partículas “entrelazadas” pueden ser utilizadas para transferir información de un lugar a otro. Este efecto de “fotones cruzados” fue la base del experimento de científicos austriacos: los dos fotones emparejados, enviados en direcciones opuestas, permanecen comunicados entre sí. Al determinarse la polarización de uno de los fotones, puede contarse con que el otro, aunque esté lejos del primero, poseerá la misma polarización. Y claro, teóricamente, si suficiente información es obtenida de esa forma, puede ser efectiva la teleportación de objetos, animales ¡y hasta de seres humanos!. No obstante lo anterior, de acuerdo a algunos científicos, la teleportación podría desarmar a un ser humano átomo a átomo, para luego reensamblarlo en otra parte.

El concepto de teleportación cuántica, el completo traslado incorpóreo del estado de un sistema cuántico a cualquier otro lugar, se demostró experimentalmente por primera vez entre dos haces diferentes de luz. Después se hizo posible transferir también las propiedades de un ión almacenado a otro objeto del mismo tipo. Un equipo de científicos encabezado por el profesor Ignacio Cirac y por el profesor Eugene Polzik, del Instituto Niels Bohr, ha demostrado ahora que los estados cuánticos de un pulso de luz también pueden transferirse a un objeto macroscópico, un conjunto de átomos cuyo número es de 10 elevado a la potencia 12. Éste es el primer caso con éxito de teleportación entre objetos de naturaleza diferente, uno que representa un medio “móvil” y el otro un medio “estacionario”.

A diferencia del concepto más habitual en el que se suele pensar cuando se habla de “teleportación”, la cuestión aquí no es que una partícula desaparezca de un lugar y reaparezca en otro. La “teleportación cuántica” constituye un método de comunicación para aplicaciones en la criptografía cuántica y la decodificación de datos, y no un nuevo tipo de “transporte”. La importancia del experimento consiste en que ahora es posible por primera vez lograr la teleportación entre átomos estacionarios, que pueden almacenar estados cuánticos, y la luz necesaria para transmitir la información a grandes distancias. Esto marca un paso importante hacia el logro de la criptografía cuántica, es decir, la comunicación completamente segura a largas distancias.

Como en nuestra época se busca de inmediato el uso del conocimiento científico, hay en estos momentos mucha actividad para emplear el fenómeno de entrelazamiento de partículas y se espera pronto disponer, además de la computación, de la criptografía y de la teleportación cuánticas. Se sabe que con la criptografía se busca asegurar el secreto en las comunicaciones, y la mecánica cuántica ofrece la posibilidad de lograrlo destruyendo la información en el caso de que alguien intentara obtenerla sin conocimiento de su destinatario. Con la teleportación cuántica se espera llevar objetos, preferentemente seres humanos, de un lugar a otro muy distante “recreándolos” en su destino, con el consiguiente ahorro de tiempo y uso de vehículos pesados como los que ahora se emplean. Ya se afirma que las paradojas aparecidas en los inicios de la mecánica cuántica son la base de la tecnología del futuro.

Actualmente, la aplicación principal de la teleportación cuántica sería el desarrollo de la computación cuántica, en la cual los portales lógicos de un procesador computacional están integrados en el nivel atómico y el estado lógico de uno de los bits del procesador sería denotado por el estado cuántico de un átomo individual, una representación así de la lógica computacional puede ser aplicada también a la memoria de la computadora creando una memoria de acceso aleatoria cuántica.

Guillermo Choque Aspiazu
www.eldiario.net
Marzo 31 de 2008

Nanoinformática

La nanotecnología es la tecnología que permite fabricar cosas a escala nanométrica, la que equivale a la millonésima parte de un milímetro o la billonésima parte de un metro. También se le puede definir como la ciencia que manipula en forma individual átomos y moléculas para crear maquinas de tamaño molecular, que usualmente se mide en nanómetros. Así como las computadoras “rompen” la información a su más básica forma, es decir, uno y cero, la nanotecnología juega con la materia en sus más elementales formas: átomos y moléculas. Con una computadora, una vez que la información se ha convertido y organizado en combinaciones de ceros y unos, la información se puede reproducir y distribuir fácilmente. Con la materia, los elementos básicos de la construcción molecular son los átomos, y la combinación de átomos se convierten en moléculas. La nanotecnología permite manipular estos átomos y moléculas, haciendo posible la fabricación, reproducción y distribución de cualquier sustancia conocida por el hombre, tan fácil y barata como reproducir datos en una computadora.

Precisamente, donde la nanotecnología tendrá más influencia en el futuro es en el campo de la computación y las comunicaciones, debido en parte a que estos han sido los motores fundamentales de su desarrollo. Las cosas han cambiado mucho desde las primeras computadoras electrónicas. La computadora “ENIAC I” fue desarrollada en la Universidad de Pennsylvania el año 1945. Estaba compuesto por más de 70000 resistencias, 18000 válvulas y 10000 condensadores; pesaba 30000 Kilos y ocupaba 1300 metros cuadrados. El descubrimiento del chip, a mediados de los años 1970, ha reducido, por suerte para todos, el tamaño de las computadoras. El primer procesador 486 utilizaba tecnología de una micra, algo equivalente a una millonésima parte de un metro. Hasta hace poco tiempo, los procesadores Pentium tradicionales utilizaban tecnología de 0.35 y 0.25 micras.

La velocidad de las computadoras y su capacidad de almacenamiento han sido las principales barreras en el desarrollo de la inteligencia artificial. Con la nanotecnología aparece la posibilidad de compactar la información hasta límites inimaginables y crear chips con memorias de un terabit por centímetro cuadrado. Un terabit es la capacidad de la memoria humana, lo que quiere decir que las computadoras del futuro podrán llegar a tener inteligencia propia, es decir, serán capaces de aprender, tomar decisiones y resolver problemas, además de salvar situaciones “imprevistas”, ya que con esta memoria se podrá dotar a las computadoras de códigos extremadamente complejos. Lógicamente, con maquinas tan pequeñas, los dispositivos de uso también cambiarán. Al tiempo que evoluciona la tecnología de reconocimiento de voz y de escritura, se irán desarrollando otro tipo de “computadoras personales” en miniatura, casi invisibles, insertadas en objetos de uso común como un anillo, o implantadas en el organismo humano en forma de lentillas o chips subcutáneos.

También es necesario fabricar otros conductores, porque los existentes no sirven. Los experimentos con nanotubos de carbón para la conducción de información entre las moléculas ya cuentan con resultados sorprendentes. La compañía IBM anunció que ha conseguido crear un circuito lógico de computadora con una sola molécula de carbono, una estructura con forma de cilindro 100000 veces más fino que un cabello. Este proyecto permite introducir 10000 transistores en el espacio que ocupa uno de silicio. La posibilidad de desarrollar mini computadoras de cien a mil veces más potentes que las actuales podría suponer que éstas tuvieran inteligencia, lo que cambiaría los sistemas de comunicaciones.

En un futuro no muy lejano, las computadoras personales estarán compuestas, en lugar de transistores, por otros componentes como las moléculas, neuronas, bacterias u otros métodos de transmisión de información. Entre estos proyectos se encuentra la futura computadora “química”, desarrollada por investigadores de la compañía Hewlett-Packard y de la Universidad de California. Los circuitos de este nuevo modelo son moléculas, lo que supone transistores con un tamaño millones de veces más pequeño que los actuales. Este es uno de los aspectos más interesantes ya que no sólo se podrán desarrollar máquinas mucho más pequeñas que una bacteria o una célula humana. Además, se puede empezar a tomar elementos del mundo biológico, como trocitos de ácido desoxirribonucléico para procesadores de computadoras. De esta manera, los científicos de la asociación de investigación Montemagno de la Universidad de Cornell han logrado fusionar elementos biológicos y mecánicos creando pequeños motores del tamaño de un virus. Aunque faltan muchas cosas por afinar, estos motores podrían trabajar en el interior de una célula humana. Así también científicos israelitas, presentaron una computadora de ácido desoxirribonucléico tan diminuta que un millón de ellas podría caber en un tubo de ensayo y realizar 1000 millones de operaciones por segundo con un 99.8 por ciento de precisión. Es la primera máquina de computación programable de forma autónoma en la cual la entrada de datos, el software y las piezas están formados por biomoléculas. Los programas de la microscópica computadora están formados por moléculas de ácido desoxirribonucléico que almacenan y procesan la información codificada en organismos vivos.

En cuanto a los transistores, los laboratorios Bell de Lucent Technologies mostraron en octubre del 2001 un transistor de escala molecular con la misma capacidad que el clásico transistor de silicio. Intel no ha mostrado ninguna investigación relacionada a los nanotubos, pero trabajando con silicio a escala nanométrica, la compañía hizo otro anuncio igualmente espectacular, el transistor de silicio más rápido jamás producido, de apenas veinte nanómetros. El transistor se enciende y se apaga más de mil millones de veces por segundo, un 25 por ciento más veloz que los transistores más recientes. Para los venideros años, Intel espera estar fabricando chips conteniendo mil millones de estos transistores, lo que le permitiría llegar a una velocidad de 20 Ghz. con la energía de un voltio.

En cuanto a memorias, la compañía IBM anunció hace apenas cinco meses que su proyecto de nombre código “Millipede”, que pretende crear capacidades mayores a las existentes, se basa en procesos de escala nanométrica. Este dispositivo de almacenamiento regrabable, de alta capacidad y densidad, trabaja en base a mil pequeñas agujas similares a las de un microscopio AFM, con puntas capaces de tocar átomos individuales y escribir, leer y borrar así grandes cantidades de información en un espacio mínimo. De apenas nueve milímetros cuadrados, los investigadores de IBM estiman que en los próximos años, la tecnología Millipede puede superar la capacidad de la tecnología de memoria Flash en cinco veces o más. Este tipo de desarrollos, tanto los nanotransistores como las nanomemorias, pueden ser cruciales para absorber las crecientes e inmensas capacidades de procesamiento y memoria que demandan los desarrollos multimedia, más aún cuando se avizora que en un periodo máximo de diez años la tecnología actual de semiconductores habrá agotado sus posibilidades de crecimiento.

En cuanto a alimentación, la corporación japonesa NEC, junto a otros institutos de investigación; ha anunciado el desarrollo de una célula de carburante con una capacidad diez veces mayor que una batería de litio, pero de tamaño diminuto, en lo que constituye otra aplicación de los nanotubos de carbono, esta vez como electrodos. En el futuro próximo, esta batería le podría permitir a dispositivos portátiles, como las notebooks, funcionar varios días seguidos sin conec­tarse a la corriente. Los desarrollos en Nanotecnología se están aplicando también a los sistemas de seguridad.

Por su parte, investigadores de la compañía IBM en Zurich, Suiza, han descubierto un modo de manipular las moléculas para actuar a modo de conmutador, una función básica necesaria en la lógica computacional. Los investigadores estaban evaluando la vibración de una molécula cuando observaron que ésta presentaba distintas habilidades de conmutación. Este descubrimiento es especialmente importante porque la acción de conmutación no altera la estructura de la molécula. Los conmutadores utilizados en el interior de los chips informáticos funcionan como un interruptor de la luz, activando y desactivando el flujo de electrones que en última instancia constituyen los circuitos eléctricos de los procesadores. Los conmutadores moleculares se podrían utilizar para almacenar información, pudiendo dar lugar a chips informáticos super diminutos y ultra rápidos.


Guillermo Choque Aspiazu
www.eldiario.net
Marzo 24 de 2008

Robótica Evolutiva

Según Christopher Langton, creador y gurú de la vida artificial, la misma suele definirse como la ciencia que trata de situar la vida "tal como es" dentro del contexto de la vida "tal como podría ser". Esta definición la sitúa claramente dentro de las “ciencias de la vida”, y al lado de la “biología”. Es decir, la vida artificial estudia la vida como un fenómeno universal, del cual, por el momento, solo se conoce un ejemplo, la vida en la tierra. Es este el único tipo de vida posible, o la ¿vida en la tierra se trata de un “accidente congelado”?. Para ello, por medios teóricos y computacionales, se estudia lo que es común a todos los seres vivos. La vida artificial se encuentra situada al interior de la “ciencia de la complejidad”, que estudia los fenómenos subyacentes y comunes a todos los sistemas complejos, como ecosistemas, economías y culturas, modelando estos sistemas mediante la interacción de elementos simples. En ambos temas, el principal centro de investigación es el Instituto de Santa Fe para el estudio de los sistemas complejos.

Por su lado la robótica es una rama del árbol tecnología, que estudia el diseño y construcción de máquinas capaces de desempeñar tareas repetitivas, tareas en las que se necesita una alta precisión, tareas peligrosas para el ser humano o tareas irrealizables sin intervención de una máquina. Las ciencias y tecnologías de las que deriva son: el álgebra, los autómatas programables, las máquinas de estados, la mecánica, la electrónica y la informática. En este tiempo en el que se levanta bastante humo acerca de la autonomía, la robótica autónoma es el área de la robótica que desarrolla robots capaces de desplazarse y actuar sin intervención humana. Para ello el robot debe percibir su entorno y actuar de forma adecuada, además de llevar a cabo su tarea.

Uno de los objetivos de la vida artificial es hacer robots menos estúpidos. Los robots actuales, si no son estúpidos del todo, al menos lo son bastante. Lo son en varios sentidos: son incapaces de adaptarse a tareas diferentes de las que se le han encomendado, necesitan bastante potencia de cálculo, y además rara vez son autónomos, ni computacionalmente al estar conectados a una o varias computadoras, ni en el sentido de la energía al estar enchufados a algo. La vida artificial, en el campo llamado robótica adaptativa, trata de hallar robots muy simples, del tamaño de un insecto, que sean capaces de maniobrar autónomamente y de aprender, fundamentalmente debido a dos razones, aunque quizás sean una y la misma. La primera es que la cosa inteligente más estúpida que puede hacer un animal es sobrevivir, sin depender de nada más. Esto lo hacen los animales más simples, pero es incapaz de hacerlo un robot, que tiene que volver a su amo cada vez que tiene que recibir una recarga de energía. La segunda es que una vez que un robot haya conseguido sobrevivir, se le pueden encargar cosas más serias, ya que se habrá resuelto su problema fundamental. En este proceso de adaptación es absolutamente necesario que el robot evolucione.

La robótica ha tenido grandes avances en entornos estructurados, en los que el controlador del robot puede tener un mapa detallado de su entorno. Conforme decrece el grado de estructuración del entorno las tareas se tornan más complejas. Esto ocurre cuando el robot es móvil y debe tener información de su posición en el mapa interno. Los mecanismos pueden ser absolutos o relativos, por ejemplo, usando el sistema de posicionamiento global y la odometría, respectivamente. En entornos no estructurados la solución que se logra a través de mapa no es viable, por lo que se toman caminos en los que no se usa la inteligencia artificial clásica, con un control centralizado, sino la inteligencia artificial basada en agentes múltiples o multiagentes, que constituyen resultados del trabajo de Rodney Brooks y su arquitectura de subsunción, o en planteamientos conexionistas utilizando redes neuronales artificiales. La disciplina que utiliza algoritmos genéticos para lograr la evolución de las arquitecturas de redes neuronales se denomina “robótica evolutiva”. En otras palabras la robótica evolutiva es un área de la robótica autónoma en la que se desarrollan los controladores de los robots mediante la evolución al usar el paradigma de los algoritmos genéticos. Habitualmente se procede a la evolución de las redes neuronales artificiales siguiendo el referente biológico y se simplifica el diseño y la representación en el algoritmo genético.

Dave Cliff, Inman Harvey y Phil Husbands de la Universidad de Sussex introdujeron el término robótica evolutiva en el año 1993. En 1992 y 1993 dos equipos, Dario Floreano y Francesco Mondada en la Escuela Politécnica Federal de Lausanne y el grupo de la Universidad de Sussex informaron de los primeros experimentos de evolución artificial de robots autónomos. El éxito inicial de esta incipiente investigación lanzó una gran actividad que intentaba delimitar el potencial de esta aproximación al problema. Últimamente, la dificultad de crecimiento de la complejidad de las tareas, al igual que en la aproximación simbólica, ha orientado la atención al lado teórico de la disciplina abandonando el punto de vista de la ingeniería. La robótica evolutiva tiene varios objetivos, a menudo simultáneos. El punto de vista de la ingeniería crea controladores de robots para realizar tareas útiles en el mundo real. La biología y otras ciencias de lo vivo obtienen simulaciones que reproducen fenómenos desde fisiológicos hasta ecológicos.

La robótica evolutiva aplica los conocimientos obtenidos de las ciencias naturales: biología y etología; además de los que proceden de la vida artificial: redes neuronales, técnicas evolutivas y sistemas dinámicos; ambos conocimientos aplicados al campo de la robótica, a fin de que los robots desarrollen sus propias habilidades en interacción íntima con el entorno y fundamentalmente sin intervención humana. Mediante un diseño fijo, es difícil lograr que un robot se adapte o se auto-organice a un entorno dinámico que evoluciona, de manera frecuente, mediante cambios caóticos. De allí que la robótica evolutiva puede proporcionar una adecuada solución a este problema, ya que la máquina puede adquirir automáticamente nuevos comportamientos dependiendo de las situaciones dinámicas que se presentan en el entorno en donde se encuentra situada. A través de la utilización de técnicas evolutivas, especialmente algoritmos genéticos, programación genética y estrategia evolutiva, es posible evolucionar el sistema de control o algunas características del cuerpo del robot, tales como la morfología, los sensores, los actuadores, y otros. También es posible co-evolucionar ambos elementos.

De manera similar, se puede decidir la evolución física del hardware, en particular lo referido a los circuitos electrónicos, o el software, relacionado con los programas o las reglas de control. No obstante, existe escasa investigación sobre hardware evolutivo y, normalmente, lo que se hace es evolucionar primero el controlador en una simulación por computadora y, sólo después, se lo transfiere a los robots reales. El controlador del robot consiste típicamente en redes neuronales artificiales, y la evolución consiste en modificar los pesos de las conexiones de dicha red, en un símil parecido al aprendizaje conexionista. En la actualidad, el principal inconveniente del control evolutivo es su lenta velocidad de convergencia y la considerable cantidad de tiempo que tiene que pasar para llevar a cabo el proceso evolutivo sobre un robot real. Asimismo, no es apropiado para resolver problemas de creciente complejidad.

Las redes neuronales artificiales han sido las estructuras más utilizadas en robótica evolutiva para modelar controladores robóticos. En la investigación reciente sobre este campo puede observarse numerosos ejemplos de productos software desarrollados mediante técnicas de evolución simulada, cuya principal finalidad es la producción de neuro-controladores para robots móviles. Una buena parte de los trabajos reportados hace uso de arquitecturas de redes neuronales bastante simples y relativamente pequeñas para ser utilizadas en robots reales. Además, muchas de tales redes son capaces de realizar poco o ningún procesamiento temporal. En consecuencia pocos trabajos presentan resultados con redes neuronales de tamaño aceptable. En la literatura se describen un conjunto de experimentos que van desde simples comportamientos reactivos para navegación y búsqueda de fuentes de luz, a problemas que tradicionalmente requieren representaciones internas. El primer grupo de experimentos, describe tareas tales como evasión de obstáculos desde una perspectiva reactiva, a configuraciones más complejas visualmente guiadas. Tareas con alto grado de complejidad, tales como la recolección de basura y la recarga de energía, también han sido estudiadas para descubrir las condiciones que permiten desarrollar tareas complejas.


Guillermo Choque Aspiazu
http://www.eldiario.net/
Marzo 17 de 2008