Saya bertanya-tanya mengapa masalah filsuf Makan didasarkan pada kasus lima filsuf. Kenapa tidak empat?
Saya kira kita bisa mengamati semua masalah tidak menyenangkan yang dapat terjadi ketika membahas lima filsuf, contohnya juga ketika kita diberi empat pemikir. Apakah itu hanya karena alasan historis?
history
concurrency
elang
sumber
sumber
Jawaban:
Per apa yang tertulis dalam EWD310 "Hierarchical Ordering of Sequences Processes" , sepertinya nomor 5 telah dipilih untuk tujuan pendidikan, untuk memudahkan siswa memahami algoritma yang dirancang untuk menunjukkan solusi dari masalah.
Makalah ini lebih jauh mendukung gagasan bahwa 5 tidak benar-benar relevan dengan masalah umum, pertama dengan secara eksplisit menyatakan bahwa "masalahnya bisa diajukan untuk 9 atau 25 filsuf ..." dan selanjutnya, dengan mewakili dalam hal dua operasi bersamaan entitas, "kelas A dan kelas B, berbagi sumber daya yang sama ..."
Solusi yang digunakan oleh Dijkstra memperkenalkan tiga "keadaan filsuf": berpikir, makan, lapar. Kode disajikan untuk memecahkan masalah, beroperasi ini tiga negara, bersama dengan yang tidak terkait dengan itu sejumlah filsuf.
Apakah penulis telah memilih sejumlah filsuf 2, 3 atau 4, ini dapat menyebabkan kebingungan para siswa membaca kode, apakah nomor yang dipilih terkait dengan jumlah negara atau sesuatu yang lain. Hal ini dapat dengan mudah diuji dengan mencoba angka yang disebutkan dalam deskripsi dikutip dari EWD310 bawah: catatan misalnya bagaimana ini akan berubah
[0:4]
untuk[0:3]
,[0:2]
,[0:1]
dan pernyataan yang melibatkanmod
.Berbeda dengan ini, nomor 5 terlihat cukup polos dan tidak meminta asosiasi yang tidak dibutuhkan. Orang dapat mengatakan bahwa telah dipilih untuk lebih menggambarkan bahwa jumlah filsuf, yah, sewenang-wenang .
Algoritma yang disebutkan disajikan dalam EWD310 sebagai berikut:
sumber
Hanya Dijkstra yang bisa menjawab dengan pasti, tetapi saya cukup yakin bahwa itu arbitrer.
http://en.wikipedia.org/wiki/Dining_philosophers_problem
sumber
Karena itu aneh, bahkan tidak. Sehingga Anda tidak mencoba untuk merancang algorythm yang bergantung pada simetri atau membentuk pasangan, dan baru kemudian menyadari itu tidak bekerja untuk kasus umum.
Ini adalah opini; Saya tidak memiliki pengetahuan sejarah tentang apa yang terlintas dalam pikiran penulis.
sumber