Related Experiment Video
Updated: Feb 17, 2026

Long-term Behavioral Tracking of Freely Swimming Weakly Electric Fish
Published on: March 6, 2014
Finding efficient swimming strategies in a three-dimensional chaotic flow by reinforcement learning
K Gustavsson1, L Biferale2, A Celani3
1Department of Physics, University of Gothenburg, Origovägen 6 B, 41296, Göteborg, Sweden.
Abstract:
We apply a reinforcement learning algorithm to show how smart particles can learn approximately optimal strategies to navigate in complex flows. In this paper we consider microswimmers in a paradigmatic three-dimensional case given by a stationary superposition of two Arnold-Beltrami-Childress flows with chaotic advection along streamlines. In such a flow, we study the evolution of point-like particles which can decide in which direction to swim, while keeping the velocity amplitude constant. We show that it is sufficient to endow the swimmers with a very restricted set of actions (six fixed swimming directions in our case) to have enough freedom to find efficient strategies to move upward and escape local fluid traps. The key ingredient is the learning-from-experience structure of the algorithm, which assigns positive or negative rewards depending on whether the taken action is, or is not, profitable for the predetermined goal in the long-term horizon. This is another example supporting the efficiency of the reinforcement learning approach to learn how to accomplish difficult tasks in complex fluid environments.
Related Concept Videos
Uniform Depth Channel Flow: Problem Solving
Turbulent Flow: Problem Solving
Temperature is a key factor in CO2 solubility. In this case, the CO2 gas and the liquid are cooled to 20°C. Lower temperatures enhance...
Laminar Flow: Problem Solving
Newtonian Fluid: Problem Solving
A velocity gradient forms within the fluid when a Newtonian fluid is placed between two parallel plates, with...
Rapidly Varying Flow
Three-Dimensional Force System:Problem Solving
To solve a three-dimensional force system, first resolve each force into its respective scalar components. Do this using...

