Can Netlogo be used to simulate complex agents? - netlogo

I am new to Netlogo and I would like to create an extension of the ant colony optimization algorithm by "complexifying" the ants. This means the agents (the ants) are not point-like or particle-like, but have to take into account various factors in their environment before acting a certain way. I would like to be able to create ants with sub-modules, where each sub-module can interact with other sub-modules as well as with a part of the environment. Is this possible in Netlogo? Any resources on this would be nice.

Yes, this is exactly what NetLogo is for.
In NetLogo terminology, your ants would be turtles. Turtles have attributes (what I think you mean by submodules) such as speed, carrying capacity etc. They interact with each other and the environment (patches in NetLogo), so can pick up food, take it home, decide whether to fight or run away or whatever. If you can describe the factors that determine the behaviour, then you can program that behaviour.
NetLogo has a brief but useful tutorial at its main site, an extensive library of models built in, and links to resources.

Related

How can I modify driver "aggression" in the Road Traffic Library?

Im doing a road traffic simulation and have noticed that the vehicles are far too passive. I know for a fact that in the area this simulation is supposed to be the people at the wheel are far more "aggressive" and give less headway and dont yield as much.
I have scoured every piece of official and non official documentation but cannot find an answer.
You can't.
The library is a black box that only "opens" the settings that you can see in the blocks. The only additional settings you can play with (beyond the block properties) is the "Road Network descriptor":
But there is no aggressiveness setting. If this is the key purpose of your model, you either create your own ABM logic from scratch or you'd need to check other tools that are focused on cars (but typically, these are then far more restrictive on other dimensions that AnyLogic is flexible on, it all depends on your model purpose)

Agent based modeling for Supply Chain Management

I am a final year student of Computer System Engineering.My FYP is Agent Based Modeling for Supply Chain Management. I don't know how to start it or which software should I use. Repast? Netlogo? Anylogic?
Please guide me how to proceed with my project.
Even though this question is opinion-based, I was part of a project whose objective was to compare exactly the softwares you mentioned here: Repast, Netlogo and AnyLogic. What I did in this study was to create AnyLogic models. Someone else was creating the models in Netlogo and Repast.
There is no paper with the conclusions yet, but the person who did this study told me that AnyLogic was better in terms of easy to use and scalability than the others and Repast has the steepest learning curve. Nevertheless for small scale projects, AnyLogic and Netlogo are equally suited so it doesn't matter which one you choose.
Nevertheless, remember that AnyLogic on its free version allows you to use only 10 agents, which is a lot, but if your project is really big and you want everything for free, you may encounter a problem there.
As a platform that allows to work with agents that include in the same platform: editing code, show the area of simulation and generate graphics. I think Netlogo platform is suitable for this reason. you can also link it with other programming languages like python and R.

Procedurally Generated History

I want to create a procedurally generated history system for a game I am making, somewhat similar to Dwarf Fortress even though that's really complex. I have taken a stab at it and it didn't turn out too well. So I was wondering how should I go about creating this system? How do I make civilizations be allies, enemies, trade, go to war, control population, farm for themselves, etc. Again this doesn't have to be realistic, just make an interesting story for the player to discover about the world they are playing in.
Thanks!
You should probably start by looking at graphs: https://en.wikipedia.org/wiki/Graph_theory
Peace/war status mostly depends on competition for resources and their initial proximity to the resources and their skills. You mind find some inspiration in biology (predator/prey).
An already large civ. will negotiate less and assimilate more.
A first step is always to trade, then control more trade, then conquer to completely own the trade (then collapse).
Think about a few real world history cases and try to model according to that. Each civ. ultimately computes a cost score and tries to optimize gains while reducing losses.

best toolbox for simulating multiagent systems

I want to simulate a multiagent system. Is netlogo good for that? Does it have good abilities for simulating all multiagent systems with any characteristics.
Is netlogo good in graphic ?
Can we do task sharing between agents with netlogo?
Can we do functional analysis with netlogo?
what other toolbox do you suggest?
Netlogo is good and easy and fast to implement. If you are an experienced Java programmer you might think of Mason too. I am using netlogo for social simulation, so far I did not feel that I need anything more than what Netlogo has, but I have performance problems which I might never faced with Mason. It all depends on what do you need from each agent and what are your priorities. You can check this website to see the different models and their characteristics and different frameworks used for developing them :
http://www.openabm.org/

Robot simulation environments

I would like to make a list of remarkable robot simulation environments including advantages and disadvantages of them. Some examples I know of are Webots and Player/Stage.
ROS will visualize your robot and any data you've recorded from it.
Packages to check out would rviz and nav_view
This made me remember the breve project.
breve is a free, open-source software package which makes it easy to build 3D simulations of multi-agent systems and artificial life.
There is also a wikipage listing Robotics simulators
Microsoft Robotics Studio/Microsoft Robotics Developer Studio 2008
Also read this article on MSDN Magazine
It all depends on what you want to do with the simulation.
I do legged robot simulation, I am coming from a perspective that is different than mobile robotics, but...
If you are interested in dynamics, then the one of the oldest but most difficult to use is sd/fast. The company that originally made it was acquired by a large cad outfit.
You might try heading to : http://www.sdfast.com/
It will cost you a bit of money, but I trust the accuracy of the simulation. There is no contact or collision model, so you have to roll you own. I have used it to simulate bipeds, swimming fish, etc.. There is also no visualization. So, it is for the hardcore programmer. However, it is well respected among us old folk.
OpenDynamics engine is used by people http://www.ode.org/ for "easier" simulation. It comes with an integrator and a primitive visualization package. There are python binding (Hurray for python!).
The build in friction model.. is ... well not very well documented. And did not make sense. Also, the simulations can suddenly "fly apart" for no apparent reason. The simulations may or may not be accurate.
Now, MapleSoft (in beautiful Waterloo Canada) has come out with maplesim. It will set you back a bit of money but here is what I like about it:
It goes beyond just robotics. You can virtually anything. I am sure you can simulate the suspension system on a car, gears, engines... I think it even interfaces with electrical circuit simulation. So, if you are building a high performance product, than MapleSim is a strong contender. Goto www.maplesoft.com and search for it.
They are pretty nice about giving you an eval copy for 30 days.
Of course, you can go home brew. You can solve the Lagrange-Euler equations of motion for most simple robots using a symbolic computation program like maple or mathematica.
EDIT: Have not be able to elegantly do certain derivatives in Maple. I have to resort to a hack.
However, be aware of speed issue.
Finally for more biologically motivated work, you might want to look at opensim (not to be confused with OpenSimulator).
EDIT: OpenSim shares a team member with SD/Fast.
There a lots of other specialized simulators. But, beware.
In sum here are the evaluation criteria for a simulator for robot oriented work:
(1) What kind of collision model do you have ? If it is a very stiff elastic collision, you may have problem in numerical stability during collisions
(2) Visualization- Can you add different terrains, etc..
(3) Handy graphical building tools so you don't have to code then see-what-you-get.
Handling complex system (say a full scale humanoid) is hard to think about in your head.
(4) What is the complexity of the underlying simulation algorithm. If it is O(N) then that is great. But it could be O(N^4) as would be the case for a straight Lagrange-Euler derivation... then your system just will not scale no matter how fast your machine.
(5) How accurate is it and do you care?
(6) Does it help you integrate sensors. For mobile robots you need to have a "robot-eyes view"
(7) If it does visualization, can it you do things like automatically follow the object as it is moving or do you have to chase it around?
Hope that helps!
It's not as impressive looking as Webots, but RobotBasic is free, easy to learn, and useful for prototyping simple robot movement algorithms. You can also program a BasicStamp from the IDE.
I've been programming against SimSpark. It's the open-source simulation engine behind the RoboCup 3D Simulated Soccer League.
It's extensible for different simulations. You can plug in your own sensors, actuators and models using C++, Ruby and/or RSG (Ruby Scene Graph) files.
ABB has a quite a solution called RobotStudio for simulating their huge industrial robots. I don't think it's free and I don't guess you'll get much fun out of it but it's quite impressive. Here's a page about it
I have been working with Carmen http://carmen.sourceforge.net/ and find it useful.
One of the disadvantages with Carmen is the documentation with all respect I think the webpage is a bit outdated and insufficient. So I like to hear from other people with experience in working with Carmen, or student reports/projects dealing with Carmen.
You can find a great list with simulation environments http://www.intorobotics.com/robotics-simulation-softwares-with-3d-modeling-and-programming-support/
MRDS is one of the best and it's free. Also LabView is good to be used in robotcs
National Instruments' LabView is a graphical programming environment for developing measurement, test, and control systems.
It could be used for 3D control simulation with SolidWorks.
MRDS is free and is one of the best simulation environment for robotics. Workspace also can be used, and please check this link if you want a complete list with robotics simulation software
Trik Studio has a nice and clear 2D model simulator and also visual and textual programming programming environments for them. They also soon will support 3D modeling tools based on Morse simulator. Also it is free and opensource and has multi-language interface.