Me preguntaba por qué el problema de los filósofos de comedor se basa en un caso de cinco filósofos. ¿Por qué no cuatro?
Supongo que podemos observar todos los problemas desagradables que pueden ocurrir al discutir el ejemplo de cinco filósofos también cuando se nos dan cuatro pensadores. ¿Es solo por una razón histórica entonces?
history
concurrency
falconepl
fuente
fuente
Respuestas:
Según lo escrito en EWD310 "Ordenación jerárquica de procesos secuenciales" , parece que el número 5 ha sido elegido con fines educativos, con el fin de facilitar a los estudiantes la comprensión del algoritmo diseñado para demostrar la solución del problema.
Este mismo documento respalda aún más la idea de que 5 no es realmente relevante para un problema general, primero declarando explícitamente que "el problema podría haber sido planteado por 9 o 25 filósofos ..." y luego, representándolo en términos de dos que operan simultáneamente entidades, "clase A y clase B, que comparten el mismo recurso ..."
La solución utilizada por Dijkstra introduce tres "estados de filósofo": pensar, comer, tener hambre. El código presentado para resolver el problema opera estos tres estados, junto con un número no relacionado de filósofos.
Si el autor hubiera elegido el número de filósofos 2, 3 o 4, esto podría causar confusión en los estudiantes que leen el código, ya sea que el número elegido esté relacionado con la cantidad de estados u otra cosa. Esto se puede comprobar fácilmente tratando los números mencionados en la descripción citados de EWD310 a continuación: nota, por ejemplo, cómo esto cambiaría
[0:4]
a[0:3]
,[0:2]
,[0:1]
y las declaraciones que implicamod
.A diferencia de esto, el número 5 parece bastante inocente y no invoca asociaciones innecesarias. Se puede decir que ha sido elegido para ilustrar mejor esa cantidad de filósofos es, bueno, arbitrario .
El algoritmo mencionado se presenta en EWD310 de la siguiente manera:
fuente
Solo Dijkstra puede responder con seguridad, pero estaría lo suficientemente seguro de que es arbitrario.
http://en.wikipedia.org/wiki/Dining_philosophers_problem
fuente
Porque es extraño, ni siquiera. Para que no trates de idear un algoritmo que se base en la simetría o la formación de pares, y mucho más tarde te des cuenta de que no funciona para el caso general.
Esta es una opinión; No tengo conocimiento histórico de lo que cruzó la mente del autor.
fuente