Wat is het probleem van dinerende filosofen?
Het probleem van de dinerende filosofen is een gedachte-experiment of een voorbeeld dat wordt gebruikt op het gebied van informatica. Het probleem maakt gebruik van een analogie om de synchronisatieproblemen te illustreren die kunnen optreden wanneer computers bronnen delen. Computerwetenschappers gebruiken de eetfilosofen problemen om studenten te leren over de algoritmen die worden gebruikt om deze problemen op te lossen.
Het scenario van het probleem van de dinerende filosofen is een ronde tafel waaraan vijf filosofen zitten. In het midden van de tafel staat een kom noedels of ander voedsel. Elke filosoof heeft aan elke kant een vork of eetstokje, wat betekent dat er in totaal vijf vorken of eetstokjes zijn. Om te eten heeft een filosoof twee gebruiksvoorwerpen nodig. Elke filosoof moet ook wat tijd besteden aan denken, en kan niet tegelijkertijd denken en eten. De kern van het probleem van de dinerende filosofen is de moeilijkheid om een impasse te voorkomen.
Een impasse in dit probleem doet zich voor wanneer filosofen zichzelf in een positie brengen waarin ze niet kunnen denken of eten. Als bijvoorbeeld elke filosoof het gebruiksvoorwerp links van hem zou oppakken, zou niemand kunnen eten, omdat alle gebruiksvoorwerpen in gebruik zouden zijn, maar geen filosoof zou er twee hebben. Om alle filosofen toe te staan om te eten, moet de student een algoritme maken dat ervoor zorgt dat sommige filosofen eten terwijl anderen denken. Hierdoor kunnen zowel eten als denken doorgaan zonder stil te staan.
Er zijn een aantal mogelijke oplossingen voor het probleem van de eetfilosofen. Een oplossing is het maken van een zesde personage, de ober, die filosofen toestemming geeft of weigert om hun vorken op te pakken. Anderen omvatten het reguleren van de volgorde waarin filosofen hun vorken oppakken en neerzetten om de beschikbaarheid te maximaliseren. Anderen betrekken het vertellen van de filosofen om te controleren of hun buren eten voordat ze proberen te eten. In essentie omvat elke oplossing het ontwikkelen van een set regels, een algoritme genaamd, die bepaalt wanneer de filosofen denken, eten, of hun gebruiksvoorwerpen oppakken en neerleggen.
Het probleem van de eetfilosofen werd in 1965 voor het eerst uitgedrukt door de Nederlandse computerwetenschapper Edsger Dijkstra als een examenvraag voor studenten. Sindsdien heeft het probleem een aantal veranderingen ondergaan. Het verschijnt in een aantal enigszins verschillende formaten, waarvan sommige alleen de details van het verhaal veranderen, maar andere die extra beperkingen op het probleem voorstellen om moeilijke concepten aan te tonen. De meest voorkomende moderne versie is gemaakt door Tony Hoare.