values {}
agents
{
agent a1 {}
agent a2 {}
...
agent an {}
}
interfaces
{
interface a1 => a2 {}
...
interface an => a1 {}
}
In other words we have n agents performing the actions interchangeably, according to the pattern a1,a2,...,an,a1,a2,...,an,...
Now the algorithm I propose in Perkun2 consists of two parts:
- how to optimize the actions (output variable values) in order to maximize the expected value of the payload function
- how to interpret what has actually happened (how to update the belief)
What is a little problematic is the fact that the agent ai (i>1) has the model and payload defined in terms of his own variables. Quite logical. We have to use the interfaces to map these variables into the ones observable by the agent a1.
I am sorry about the trouble again. I will try to fix it. I started with the small improvement passing the current agent name to the print_prompt sub. For example you may type:
<<PERL
$$Perkun2::Optimizer::optimizer{print_prompt} =
sub
{
my ($this, $agent_name) = @_;
print "SUPER PERKUN2 (", $agent_name, ")> ";
};
PERL
(This enhancement is not published yet!) This way the Perkun2 will ask for input variables before the agents moves:
SUPER PERKUN2 (a1)>
SUPER PERKUN2 (a2)>
...
SUPER PERKUN2 (an)>
SUPER PERKUN2 (a1)>
SUPER PERKUN2 (a2)>
...
But it will find the optimal decision only for the agent a1 (even though it is observing the game for all agents).
No comments:
Post a Comment