A modification of the classical dining philosopher problem, the mobile philosopher problem, is introduced in this paper, in the context of dynamic networks with a variable number of resources and mobile processes that can join or leave the network.
Each mobile philosopher (process) requires access to exactly two resources. The access pattern respects the following properties: mutual exclusion, liveness, and access safety. The resources form a logical ring, and the philosophers can move around the ring. The principles of the solutions are given, and then a self-stabilizing algorithm is built. A proof of correctness of the proposed algorithm in terms of the required properties (mutual exclusion, deadlock freedom, liveness, access safety, and convergence) is presented in detail.
The closest problem to the one proposed is that of the driving philosophers. Compared to the solution of the driving philosopher problem, the proposed solution adds several useful properties: it is asynchronous, local, self-stabilizing, and works with an unknown number of resources and philosophers.