Jaký je problém filosofů restaurací?
Problém filozofů stolování je myšlenkový experiment nebo příklad používaný v oblasti informatiky. Problém používá analogii k ilustraci problémů se synchronizací, ke kterým může dojít, když počítače sdílejí prostředky. Počítačoví vědci používají problémy filozofů stolování k tomu, aby studenty naučili o algoritmech používaných k řešení těchto problémů.
Scénář problému s filozofy stolování je kruhový stůl, na kterém je umístěno pět filozofů. Uprostřed stolu je mísa nudlí nebo jiného jídla. Každý filozof má na jedné straně jednu vidličku nebo hůlku, což znamená, že je celkem pět vidlic nebo hůlek. Aby mohl filozof jíst, potřebuje dva nádobí. Každý filozof musí také strávit nějaký čas přemýšlením a nemůže myslet a jíst současně. Srdcem problému stravovacích filozofů je obtížné zabránit zablokování.
K zablokování tohoto problému dochází, když se filozofové postavili do pozice, kde nemohou myslet ani jíst. Například, kdyby každý filozof měl zvednout nádobí po jeho levici, nikdo by nebyl schopen jíst, protože by se používal veškerý nádobí, ale žádný filozof by neměl dva. Aby mohli všichni filozofové jíst, musí student vytvořit algoritmus, který zajistí, že někteří filozofové jedí, zatímco jiní myslí. To umožňuje pokračovat v jídle i myšlení bez zastavení.
Existuje řada možných řešení problému stravovacích filozofů. Jedno řešení zahrnuje vytvoření šesté postavy, číšníka, který dává nebo popírá filosofům povolení k vyzvednutí vidliček. Jiní zahrnují regulaci pořadí ve kterém filozofové zvednou a položí jejich vidličky maximalizovat dostupnost. Jiní zahrnují řeknutí filozofům, aby zkontrolovali, zda jejich sousedé jedí, než se pokusí jíst. Každé řešení v podstatě zahrnuje vývoj souboru pravidel, nazývaných algoritmus, který řídí, když filozofové přemýšlejí, jedí nebo zvednou a položí své nádobí.
Problém filozofů stolování poprvé vyjádřil nizozemský počítačový vědec Edsger Dijkstra v roce 1965 jako zkouška pro studenty. Od té doby prošel tento problém řadou změn. Objevuje se v několika mírně odlišných formátech, z nichž některé pouze mění podrobnosti příběhu, ale jiné, které navrhují další omezení problému, aby prokázaly obtížné koncepty. Nejběžnější moderní verzi vytvořil Tony Hoare.