Quel est le problème des philosophes de salle à manger?
Le problème des philosophes de la restauration est une expérience de pensée ou un exemple utilisé dans le domaine de l’informatique. Le problème utilise une analogie pour illustrer les problèmes de synchronisation pouvant survenir lorsque des ordinateurs partagent des ressources. Les informaticiens utilisent les problèmes rencontrés par les philosophes des restaurants pour enseigner aux élèves les algorithmes utilisés pour résoudre ces problèmes.
Le scénario du problème des philosophes de salle à manger est une table circulaire à laquelle cinq philosophes sont assis. Au centre de la table se trouve un bol de nouilles ou d’autres aliments. Chaque philosophe a une fourchette ou une baguette de chaque côté, ce qui signifie qu'il y a cinq fourchettes ou baguettes au total. Pour manger, un philosophe a besoin de deux ustensiles. Chaque philosophe doit aussi passer un peu de temps à réfléchir et ne peut pas penser et manger en même temps. Le problème central des philosophes de la restauration est la difficulté d’empêcher une impasse.
L'impasse dans ce problème survient lorsque les philosophes se mettent dans une position où ils ne peuvent ni penser ni manger. Par exemple, si chaque philosophe prenait l'ustensile à sa gauche, personne ne pourrait manger, car tous les ustensiles seraient utilisés, mais aucun philosophe n'en aurait deux. Afin de permettre à tous les philosophes de manger, l'élève doit créer un algorithme garantissant que certains philosophes mangent pendant que d'autres réfléchissent. Cela permet à la fois de manger et de penser sans continuer.
Il existe un certain nombre de solutions possibles au problème des philosophes du restaurant. Une solution consiste à créer un sixième personnage, le serveur, qui donne ou refuse la permission aux philosophes de prendre leurs fourches. D'autres impliquent de réguler l'ordre dans lequel les philosophes choisissent et posent leurs fourches pour maximiser la disponibilité. D'autres impliquent de demander aux philosophes de vérifier si leurs voisins mangent avant d'essayer de manger. Chaque solution consiste essentiellement à développer un ensemble de règles, appelé algorithme, qui régit le moment où les philosophes pensent, mangent ou prennent ou ramassent leurs ustensiles.
Le problème des philosophes de la restauration a été exprimé pour la première fois par l'informaticien néerlandais Edsger Dijkstra en 1965 sous forme de question d'examen pour les étudiants. Depuis lors, le problème a subi de nombreux changements. Il apparaît dans un certain nombre de formats légèrement différents, certains d’entre eux ne modifiant que les détails de l’histoire, d’autres proposant des limitations supplémentaires du problème afin de démontrer des concepts difficiles. La version moderne la plus courante a été créée par Tony Hoare.