Skip to main content

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

El problema de los filósofos gastronómicos es un experimento mental o un 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 gastronomía para enseñar a los estudiantes sobre los algoritmos utilizados para resolver estos problemas.

El escenario del problema de los filósofos gastronómicos es una mesa circular en la que se sientan cinco filósofos. En el centro de la mesa hay un plato de fideos u otros alimentos. 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 un tiempo pensando y no puede pensar y comer al mismo tiempo. El corazón del problema de los filósofos gastronómicos es la dificultad de evitar el punto muerto.

El punto muerto en este problema ocurre cuando los filósofos se colocan en una posición donde no pueden pensar ni comer. Por ejemplo, si cada filósofo levantara 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 alumno debe crear un algoritmo que garantice que algunos filósofos estén comiendo mientras que otros estén pensando. Esto permite que tanto comer como pensar 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 para que los filósofos recojan sus tenedores. Otros implican regular el orden en que los filósofos recogen y bajan sus tenedores para maximizar la disponibilidad. Otros implican decirles a los filósofos que verifiquen 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 gastronómicos fue expresado por primera vez por el científico informático holandés Edsger Dijkstra en 1965 como una pregunta de examen para 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 que proponen limitaciones adicionales sobre el problema para demostrar conceptos difíciles. La versión moderna más común fue creada por Tony Hoare.