Typhon: Programming Mobile Agents for Real World Emulation

Contributors:
Students: Jatin Matani &  Shashi Shekhar Jha
Faculty:    Shivashankar B. Nair

Typhon (No, its not a typo – its not Typhoon!) is a Mobile Agent Emulation platform that works on the Chimera Agent System of LPA Prolog. While the Chimera Agent System provides for a static agent based platform, Typhon adds the extra power to the agent system viz. those of mobility and cloning. Though many other such mobile agent platforms exist, Typhon provides an added punch, thanks to the use of Prolog, which allows  programs to evolve even on the fly. The use of Prolog based mobile agents also facilitates on-the-fly programming, meaning changes (modifications, deletions, insertions of programs) can be effected without bringing down a working system. Typhon has by now been used in a range of application scenarios and for research in the world of emulated bio-inspired algorithms. Read more from papers published by clicking here. Of late it is being used to study co-operative, distributed, decentralized and asynchronously shared learning mechanisms in mobile agents as also to realize Cyber-Physical Systems.

Mobile agents within Typhon are termed Typhlets. These Typhlets can migrate from one node that hosts the Chimera system to another. They can create copies of themselves – meaning they can clone. Such clones in within Typhon are termed Typhclones. Mobile agents within Typhon, can also self-destruct and most importantly evolve. Typhlets carry within themselves code (in Prolog) that can be made to execute at the current or a remote node after the agent has travelled to that node. Execution could result in a change of data or even program within the agent’s payload. Thus Typhlets once released are autonomous and are capable of being programmed to learn on-the-fly and also alter their behaviour during their sojourn in the network they inhabit.

So what’s so big about Typhon?

Here’s what:

  • Since the base programming of the agent, its behavior, etc. , is done in Prolog (which facilitates rapid prototyping) you can test programs that use several mobile agents (Typhlets and Typhclones) within either a physical or virtual overlay network. This means you are free of the problems or drawbacks of the closed world simulation! You can develop and test your distributed programs or algorithms in the emulated or real world. So forget about simulated graphs. You could actually see/make these Typhlets migrate from one physical node to another and for instance solve the TSP or implement Dijkstra’s algorithm! Using Typhon you could easily emulate Island models of Genetic algorithms and do odd jobs that require intelligent, parallel and/or distributed processing.
  • Since each Typhlet code or behaviour is embedded using Prolog, you could realize decentralized, distributed and asynchronous learning using a large number of Typhlets or Typhclones and sit back and watch how they perform in the real world and log the results. This beats conventional simulation.
  • The concept of evolving code in distributed environments or population based optimization is a thing everyone should try out for isn’t that they way we all have evolved (Darwinism)?
  • So do you require several computers and a network? Nope. Thanks to Chimera, you can create several instantiations of the Typhon platform and customize the connections to form a network of several nodes in a single physical computer. If you have the luxury of several laptops/computers with WiFi you can even connect them as ad-hoc nodes, install the Typhon platform on each. You are then ready to allow the Typhlets and their clones to hop from one node to another and execute their embedded programs/behaviours!
  • What’s more? We also provide a LPA-Lego-NXT interface that can connect you to the real physical world using Prolog. So Typhlets/Typhclones can communicate with real (or even remotely connected) robots too and make them move and evolve intelligence or help in the process of evolution and learning in a distributed manner. These features allow you to implement an intelligent Cyber-Physical System.

Well, we have been using Typhon for emulating complex bio-inspired algorithms including Artificial Immune Systems, Stigmergy based Synchronization, Pheromone diffusion, etc. Last but maybe not least we have even used Typhon to demonstrate a working prototype or Proof-of-Concept of an Internet of Things with hardware in the loop.

Isn’t this sufficient for joining us on the Typhon bandwagon?

So say NO to petty simulation and a big YES to emulation!

Chefs Required!

We need people (like you maybe) who are interested in testing it rigorously by actually using it. This will help us evolve and improve its features. So do try our free download.

Of what’s new in the dish!

At the moment, thanks to Shyam Patro, Typhon can be FIPA compliant. This enables Typhlets and Typhclones  to communicate with other agents across other platforms such as Jade and Mobile-C, thus expanding its heterogeneity. However, this part has not been extensively tested. Soon we intend to make these Typh-lets and -clones make their debut in the world of Android and mobile devices.

Typhon was initially coded as part of the B.Tech. project of Jatin Matani under the guidance of Shivashankar B. Nair at the CSE-Robotics Lab. at IIT Guwahati. It is currently being used, maintained and enhanced by Shashi S. Jha, a doctoral candidate, in this Lab.

Late News: A better and enhanced version of Typhon, nicknamed Tartarus is now available. To know more click here: Tartarus

Comments are closed.