¿Cuál es el problema de los filósofos gastronómicos?

El problema de los filósofos de la cena es un experimento mental o ejemplo utilizado en el campo de la informática. El problema utiliza una analogía para ilustrar los problemas de sincronización que pueden surgir cuando las computadoras comparten recursos. Los informáticos utilizan los problemas de los filósofos de la cena para enseñar a los estudiantes sobre los algoritmos utilizados para resolver estos problemas.

El escenario del problema de los filósofos cenando es una mesa circular en la que están sentados cinco filósofos. En el centro de la mesa hay un plato de fideos u otra comida. Cada filósofo tiene un tenedor o palillo a cada lado, lo que significa que hay cinco tenedores o palillos en total. Para comer, un filósofo necesita dos utensilios. Cada filósofo también tiene que pasar algún tiempo pensando y no puede pensar y comer al mismo tiempo. El meollo del problema de los filósofos gastronómicos es la dificultad de evitar el estancamiento.

El punto muerto en este problema se produce cuando los filósofos se ponen en una posición en la que no pueden ni pensar ni comer. Por ejemplo, si cada filósofo tomara el utensilio a su izquierda, nadie podría comer, porque todos los utensilios estarían en uso pero ningún filósofo tendría dos. Para permitir que todos los filósofos coman, el estudiante debe crear un algoritmo que asegure que algunos filósofos coman mientras otros piensan. Esto permite que tanto la alimentación como el pensamiento continúen sin detenerse.

Hay una serie de posibles soluciones al problema de los filósofos gastronómicos. Una solución consiste en crear un sexto personaje, el camarero, que da o niega permiso a los filósofos para que recojan sus tenedores. Otros implican regular el orden en el que los filósofos recogen y bajan sus tenedores para maximizar la disponibilidad. Otros implican decirles a los filósofos que comprueben si sus vecinos están comiendo antes de intentar comer. En esencia, cada solución implica desarrollar un conjunto de reglas, llamado algoritmo, que gobierna cuando los filósofos piensan, comen o recogen y dejan sus utensilios.

El problema de los filósofos de la cena fue expresado por primera vez por el científico informático holandés Edsger Dijkstra en 1965 como una pregunta de examen para los estudiantes. Desde entonces, el problema ha sufrido una serie de cambios. Aparece en varios formatos ligeramente diferentes, algunos de los cuales solo cambian los detalles de la historia, pero otros proponen limitaciones adicionales al problema para demostrar conceptos difíciles. La versión moderna más común fue creada por Tony Hoare.