<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
hey Dan,<br><br>Thanks for your fast reply! Creating a model with a defined List will come in handy, thanks!<br>Perhabs I give some further details about the Simulation. <br>The recorded simulation contains cars driving on a highway. The simulation and Act-R are connected via TCP. <br>Every Car should be controlled by an Cognitive "Agent", which models the lane changing behaviour, for example <br>indicator on -> high Probability.<br> For starters this model will be quite simple, but will get more develloped. For the scenario it would be nice,<br>if the models can be created during runtime. For now  a communication between the agents is not needed.<br>Every Agent should mind only its own "business" i.e. the only the cars directly around it.<br><br>About your questions:<br><br>> - Will the models communicate over the same channel sharing the device<br>> or does each model need a separate device?<br>I think a common device should suffice, for the agents. <br><br>> - Are the models always going to be running together synchronously or<br>> will they need to be run individually?<br>They will run individually. I guess cycling through the existing models will do the trick.<br>There aren't any timing deadlines, so far.<br><br>Do you guys have any tips, how this could be achieved ?<br>Every hint is welcome.<br><br>Thanks in advance,<br><br>Tobias<br><br><br><br><div>> Date: Wed, 24 Aug 2011 10:20:22 -0400<br>> From: db30@andrew.cmu.edu<br>> To: toebsen@hotmail.com; act-r-users@act-r.psy.cmu.edu<br>> Subject: Re: [ACT-R-users] ActR multiple Agents<br>> <br>> <br>> <br>> --On Wednesday, August 24, 2011 12:04 PM +0000 toebsen b <toebsen@hotmail.com> wrote:<br>> <br>> ><br>> > Hello ACT-R Community,<br>> ><br>> > Im currently trying to embed a C++ Simulation with ACT-R. I have a running Async TCP Server (via<br>> > BOOST-ASIO)  for the Communication<br>> > with ACT-R via a device ( like in http://www.zmms.tu-berlin.de/kogmod/tools/hello-java.html<br>> > Framework). The Communication works nicely.<br>> ><br>> > And now comes the not-so easy part: the Modeling in ACT-R:<br>> > Ok, I'm trying to get it right:<br>> > I need multiple "Agents", which communicate with the C++ Simulation (TCP) , and all should have<br>> > the same ACT-R Model.<br>> > How can i do that?<br>> >  My first guess would be to start as many ACT-R environments as I have agents and just set<br>> > different Ports for Communication and<br>> > parse them in C++ to the correct instance of my c++ agent.<br>> > But this seems quite an overkill if the ACT-R Instances go into the 10+<br>> ><br>> > Since I'm quite new to ACT-R, I do not know its complete capabilities.<br>> ><br>> > There has to be another Solution to this sort of problem?<br>> ><br>> <br>> <br>> It's possible to run multiple models simultaneously within a single instance<br>> of ACT-R.  There is a section in the reference manual (found in the docs<br>> directory of the distribution) which describes how to do so, and there are<br>> some examples found in the examples directory of the distribution.  Since<br>> you mention that you are new to ACT-R, I would also recommend working through<br>> the tutorial if you haven't already.  The tutorial doesn't cover multiple<br>> models, but should give you a solid understanding of how to use ACT-R for<br>> modeling which you won't get from the reference manual.<br>> <br>> I can't really offer much in the way of specific advice because exactly<br>> how you want/need to set things up for multiple models depends on a couple<br>> of technical issues with how the simulation and models are expected to interact:<br>> <br>> - Will the models communicate over the same channel sharing the device<br>> or does each model need a separate device?<br>> <br>> - Are the models always going to be running together synchronously or<br>> will they need to be run individually?<br>> <br>> One thing I can offer however is that since you say they are all going to be<br>> the same model, there is a way to create them that doesn't require writing<br>> the code again for each one.  The define-model command can be provided with<br>> a list of code to define the model.  Thus, if you create a list with the<br>> code for the model in it you can just pass that list to define-model to<br>> create more.  Again, the exact details will depend on what you need for<br>> the sim, but generally something like this could be done:<br>> <br>> (defvar *model-code* '((sgp :v t) (p test ?goal> buffer empty ==>) ...))<br>> (define-model-fct 'model-1 *model-code*)<br>> (define-model-fct 'model-2 *model-code*)<br>> ...<br>> <br>> <br>> Hope that helps, and if you have other questions feel free to let me<br>> know.<br>> <br>> Dan<br></div>                                          </div></body>
</html>