LEAP: Agentes Inteligentes en dispositivos móviles

LEAP: Agentes Inteligentes en dispositivos móviles

Agente smith

En el último artículo hablábamos sobre la problemática de introducir Inteligencia Artificial en dispositivos móviles. Esencialmente se puede utilizar cualquier aproximación válida para sistemas tradicionales, pero teniendo en cuenta la limitación de recursos que caracterizan estos dispositivos (potencia de cálculo, memoria, batería, etc). Una aproximación clásica de la IA que resulta válida en dispositivos móviles es el uso de agentes

Un agente inteligente no es más que un programa capaz de percibir su entorno y actuar sobre él de manera racional. Para ello se sirve de sensores, actuadores o de otros agentes, como es el caso de los sistemas multiagente. Aunque no queremos profundizar demasiado en este concepto, básicamente un agente inteligente debería ser capaz de aprender y de mejorar con su experiencia, de adaptarse al medio en tiempo real y de analizar condiciones en términos de comportamiento, error y éxito.

Agente Inteligente Simple

De hecho, se trata de una solución muy prometedora a la hora de superar las limitaciones tecnológicas de los dispositivos móviles, permitiendo introducir métodos de aprendizaje automáticos y 
dinámicos. Se utilizan con mucha frecuencia en la inteligencia artificial de videojuegos (jugando contra la máquina), en el pilotaje automático de vehículos o en el descubrimiento de patrones, por citar algunos pocos ejemplos.

Estándar IEEE FIPA

La FIPA (Foundation for Intelligent Physical Agents) es un organismo para el desarrollo de estándares de sistemas basados ​​en agentes. Fue fundada con el ambicioso objetivo de definir un conjunto completo de normas para la implementación de sistemas en los que se puedan ejecutar agentes. Se disolvió en 2005 siendo sustituido por una nueva comisión del IEEE, aunque se sigue utilizando FIPA para designar a las plataformas que utilizan especificaciones como ACL (Agent Communication Language), que definen cómo deben comunicarse entre sí los agentes.

Plataformas móviles multiagente: LEAP

Existe una gran cantidad de plataformas multiagente que implementan FIPA-ACL, aunque por su versatilidad destacaremos JADE-LEAP:

LEAP (Lightweight and Extensible Agent Platform) es una extensión de la plataforma JADE (Java Agent DEvelopment Framework) que se instala como un add-on y puede ser desplegada no sólo en ordenadores personales y servidores, sino también en dispositivos de recursos limitados como los dispositivos móviles que soporten Java. Cada agente y su comportamiento se implementa de forma muy sencilla a partir de una clase Java.

LEAP puede configurarse en diferentes modalidades:

  • Pjava: para dispositivos móviles que soporten J2ME CDC como PDAs.
  • Midp: para dispositivos móviles que soporten MIDP 1.0 o superior, como algunos teléfonos móviles.
  • Android: para dispositivos móviles que soporten Android 2.1 o superior, como algunos smartphones.
  • Dotnet: para PC y servidores que ejecuten el framework Microsoft .NET 1.1 o superior.

Estas versiones proveen una API común, permitiendo una capa homogénea sobre una gran variedad de dispositivos y tipos de red.

Capa LEAP

Además admite dos modos de ejecución:

  • Stand-alone:para las modalidades Pjava y Android. Se ejecuta el contenedor completo.
  • Split: para Midp y posiblemente Pjava. Éste modo es muy útil porque usa menos memoria al dividir el contenedor en un Front-End y en un Back-End (servidor remoto).

Existen otras plataformas móviles multiagente como MicroFIPA-OS, pero los desarrolladores prefieren jade-LEAP porque:

  1. Permite concurrencia de comportamientos en un solo hilo.
  2. Soporta una gran variedad de dispositivos.
  3. Utiliza comunicaciones socket independientes del propietario.
  4. Es de código abierto.
Previous Introduciendo IA en dispositivos móviles
Next Inteligencia Artificial en Videojuegos móviles

About author

Angel
Angel 169 posts

Siempre quise ser inventor y escritor. Pero mientras tanto trabajo en Alemania como Ingeniero de Telecomunicaciones, y de vez en cuando escribo aquí sobre Ciencia y Tecnología. Me gustan los robots y los libros (analógicos).

You might also like

E-conomía 4 Comments

Cobol, el lenguaje que sigue resistiendo a pesar de su avanzada edad

Aunque Cobol es junto con Fortran, uno de los lenguajes de programación más antiguos hoy en día siguen escribiéndose unas 5.000 millones de líneas de código nuevas anualmente. Lo que

Desarrollo 1Comments

[Evento] Introducción a Appcelerator Titanium y conexión con un backend en PHP

El día 5 de setiembre de 2014 tendré la oportunidad de hablar en el grupo de PHP Valencia acerca de como  crear una app móvil con el entorno de desarrollo

Android 1Comments

¡Vete a la nieve con Snowcheck!

¿Te gustan los deportes de nieve? ¿Eres un loco del esquí o del snowboard y no sabes a qué estación ir para disfrutar de tu deporte favorito? Hay una aplicación

Desarrollo 6 Comments

Integrar Motores de Inferencia en Android

Seguimos hablando de Inteligencia Artificial en dispositivos móviles. En esta ocasión describiremos un enfoque de implementación basado en motores de inferencia y de su posible integración en Android. La inferencia

Desarrollo 1Comments

¿Cómo hacer un Servidor HTTP sencillo?

Si estás desarrollando una aplicación destinada a la gestión de contenidos o al intercambio de información entre usuarios, puede que hayas tenido la necesidad de tener uno o varios servidores

How-to: Instalación de Symfony, un framework de PHP

Symfony es PHP. Ni más ni menos. Se trata de un framework que te facilita la vida a la hora de programar una aplicación web, sin la necesidad de profundizar demasiado

Google 2 Comments

DART, ¿el fin de JavaScript?

Probablemente sí. Pero todavía muchos piensan que no. Hubo polémica al respecto la semana pasada en el Qcon 2012 de Londres. Dart es, de hecho, un nuevo lenguaje que ha venido para quedarse,

Generales 2 Comments

4 razones para usar GIT

Git es un sistema de control de versiones que está enfocado en la flexibilidad para los programadores y provee herramientas para gestión de equipos de desarrollo. En su sitio oficial

Desarrollo 0 Comments

Comparando algoritmos en Java: Recortes de revista

Cambiando un poco de temática, hoy os traigo un artículo práctico sobre cómo realizar la comparativa de varios algoritmos en Java. El tema surgió así, navegando por Internet me topé

2 Comments

Leave a Reply