Jump to content
  • Advertisement
Sign in to follow this  
CzarKirk

Multiagent System

This topic is 3242 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello, I'm making a multi-agent system to investigate resource allocation, so there will need to be contract/negotiation/etc between agents, and hopefully the system can be multi-threaded as there might be a lot of agents. I'm free to use any language I wish, so I was wondering if anyone can suggest a suitable language/library for this. Otherwise C++ I guess it will be :D

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by CzarKirk
Aww come on.. posts about what to make an mmo in will go on for pages, but no one has any advice for this?
It would help if your post actually contained a question, or, you know, enough details to actually base advice on.

A 'multi-agent system' could be anything with more than one entity, and 'resource allocation' should have very little to do with anything, in this day and age.

And if your question was 'what language?', then the boiler-plate answer is: whatever you feel most comfortable with.

Share this post


Link to post
Share on other sites
I'm trying to create an abstract simulation of a multi-agent environment; here are some things I could implement.. Contract Net (CNET), KQML, FIPA agent communcation languages, for example. I can find tons of academic articles and research papers on them, but no real concrete program examples so I'm kind of going around in the dark.

Share this post


Link to post
Share on other sites
And yet the answer to the question "what language should I use?" is still... whatever you know. That's like asking "what language should I write my PhD thesis paper in?" Whatever you speak.

Personally, I would go with C++ just because most of the tools you will find for AI are in C++.

Share this post


Link to post
Share on other sites
Well, there are dedicated agent-based languages, such as Concurrent Metatem and Agent0, but buggered if I can find anything useful to read on them other than random computer science journal articles. Wikipedia lets me down; CM's article is only a bit more comprehensive than Agent0's. It seems to be more of a thing like Prolog.. nice to learn in school, but when it comes down to it, C++ time. Which is why I came here, to see if anybody knows anything about these mystical languages and where to get them and if they are worth using... or if I'd be barking up the wrong tree and would be better off with a more traditional language.

Share this post


Link to post
Share on other sites
Most people on GameDev.net have to solve practical problems within pre-existing software, rather than academic problems. That means that more often than not we tend to use the language of the host software - almost always C++. Maybe Python, or Java.

Personally for something like you describe I would choose Python as a good compromise between being fairly high-level and yet having decent libraries and an easily understood imperative syntax. There are several libraries for Python that offer the actor model or distributed processing but I couldn't recommend one in particular. I would recommend going with a distributed and multi-process model rather than a threaded model however.

Share this post


Link to post
Share on other sites
Hello CzarKirk,

maybe JADE is what you have searched for : http://jade.tilab.com/
I've heard of it in an AI lecture, but have never used it...


dj3hut1

Share this post


Link to post
Share on other sites


The engine will probably be the least of the project.

Use a 'blackboard' system for the message/info passing part of it.

The simulation logic will be the most effort (either in detail or in balancing it)] and you might want to use a scripting language like python to do that (but not if you need real speed).

You are lucky in your mutli-threading option because this type of problem is solvable in sequential passes where the agents get to process the current 'turn' (equally) and then post their adjustments to be applied the next 'turn'.

You just use cental dispatching to worker threads to load level all agents (each running its turn) and then synchronusly doing updates and then repeating. Simulation Data is all read-only so you dont need protective interlocks ( agents can execute their 'turn' independantly on different threads (one one each CPU core).

The domain specific logic for your simulations 'mechanics' will likely take the most time to make it operate as you want (BONUS points would be a system that adapts to a given scenario -- a project probably a magnitude more complex).

Share this post


Link to post
Share on other sites
If you're going to go for a parallel system, there's existing libraries that can do much of the work for you, such as:
http://www.threadingbuildingblocks.org/
http://code.google.com/p/jobswarm/

Herb Sutter has written lots of good articles on modern concurrency:
http://herbsutter.wordpress.com/

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!