Agent-Based Simulation and Reinforcement Learning
In this 15kB JavaScript simulation of a signaling reinforcement learning (RL) process, two agents learn to communicate with each other via signals. One of the two agents (the blind "jumper") is not able to see the size of a barrier over which he has to jump, while the other agent (the "speaker") is able to see the size of the barrier and tries to communicate the jump length to the jumper. However, the two agents do not speak a common language, so both agents first have to learn which signal communicates which jump length. Both of them can perceive the success or failure of a jump (a jump fails if it is too short or too long), and then update their signalling, resp. signal interpretation, function, accordingly.
This RL process model is described by the DPMN process diagram below. There are two RL agents: a Speaker and a (blind) Jumper. Each RL round begins with a StartOver time event, which triggers a PerceiveBarrier perception event at the Speaker, which causes the Speaker to create a SendJumpLengthSignal message event leading to an invocation of the jumper's receive method, which creates a Jump action event.