ダイクストラは、彼の論文「The Humble Programmer」で言及されているボランティアにどのような仕事をしましたか?


65

では、ダイクストラの論文「ハンブルプログラマー」、彼はいくつかのボランティアに解決する問題を与えたことに言及します。

「私は実際に経験豊富なボランティアでプログラミングの実験を少し行ったことがありますが、非常に意図せず、予想外のことが起こりました。私のボランティアの誰も、明白で最もエレガントな解決策を見つけませんでした。綿密な分析の結果、これは共通のソースを持っていることが判明しました。繰り返しの概念は、関連する制御変数をステップアップするという考えに密接に関連しているため、明らかなものを見ることは精神的にブロックされました。彼らのソリューションは効率が悪く、理解するのがむずかしく、それらを見つけるのに非常に長い時間がかかりました。」

ダイクストラがボランティアに与えた問題は何でしたか?解決策は何でしたか?


3
再帰的な何かに賭けます。「フィボナッチの名誉で」EWD654は良い候補のようだ
ブヨ

この質問は、人々が推測や推測の機会としてこれを使用しない限り問題ありません。見つけるのは難しいかもしれませんが、答えがあり、歴史的な質問はここで話題になります。

9
その引用は、EWD340「Very Humble Programmers」から来ました。私は実験が何であるかについての正確な説明を見つけることができませんでしたが、ここに彼の完全な講演の写しへのリンクがあります。cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html
タイラーフェラーロ

2
誰でも無料のダイクストラの引用を見つけることができますか?彼についての私の好きな言葉は「コンピュータサイエンスの傲慢さがナノDijkstrasで測定された」である-アラン・ケイ
ジェームズ・アンダーソン

若い人たちにアドバイスをするとき、私たちは非常に注意しなければなりません:時々彼らはそれに従います!... heh :-)ソース:en.wikiquote.org/wiki/Edsger_W._Dijkstra
ロバートフランス

回答:


11

「食事する哲学者の問題」は、提示された問題でした。

基本的に5人の哲学者が食事をする必要があります。(各哲学者の前で終わらない食べ物のプレートを想像してください)、各プレートの間にフォーク(5つのプレート、5つのフォーク、5つの哲学者)があります。

哲学者は、右のフォークと左のフォークの両方を持っている場合にのみ食べることができます。(2人の哲学者だけがいつでも食べることができます)。

フォークは利用可能なときはいつでも拾い上げられ、保持されている場合は置かれます。各フォークは、相互に依存してピックアップする必要があります。(一つずつ)。

哲学者は食事をしていませんが、彼らは考えています(州を変える必要性が問題を引き起こすものです)。

デッドロックシステム(1人の哲学者が1つのフォークを持ち、もう1人の哲学者が他の哲学者が食べるのを防ぐ)を作成せずに、それぞれの人が食べたり、考えを変えたり(他の人が食べられるように)するにはどうすればよいですか?

これは並行システムにそのルーツがあり、並行性について議論するときに提示される典型的な大学の質問です。

この問題を解決するために4つまたは5つの「公式」アルゴリズムが開発されたと思いますが、Googleで「Dining philosophers problem」をすばやく検索すると、さまざまな結果が得られます。

866ページの脚注にある本書のオリジナルバージョン読むと、「IFIP Congress 1965、213-217の議事録」「同時プログラミング制御の問題の解決策」が記載されています。

並行性と共有リソースの問題は、「食事哲学者の問題」です。:-)

お役に立てば幸いです。


6
これは主に歴史的な問題であるため、ソースはありますか?
ヤンニス

1
実際、いいえ、あなたが提供する情報源は、ダイクストラがボランティアに与えたもののように、食事哲学者の問題を参照していないようです。何か不足していますか?私が探しているのは、あなたの「食事をする哲学者の問題」を支持する信頼できる情報源です。
ヤンニス

@Robertリンクをありがとう。:)(それらを削除しないでください、彼らは他の人に役立つかもしれません)私はそれが彼が与えた問題であったかどうか楽しみにしています。
user712092

4
@RobertFrench私たちが探しているのは、ダイクストラが定式化した問題だけではなく、ダイクストラが質問の引用で言及している特定の問題とそれを証明する情報源です。それが彼自身の問題の1つであることを示唆する引用さえありません、それは本当にどんな問題でもありえました。もちろん、食事の哲学者はダイクストラのオリジナルの1つです(CARホアールの助けを借りて)、誰もそれについて議論していませんが、それは質問とは何の関係もありません
ヤニス

4
これは明らかに間違っています。「並行プログラミング制御の問題の解決策」は食事哲学者の問題であり、引用のダイクストラの以前の作品の1つとしてHumble Programmerで参照されていますが、引用文の問題でもあると主張することは検証できません。
ヤニス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.