The Dining Philosophers Problem is a computer science allegory that models how starvation can result in a simple system where all members should have equal access to food. My question is whether this system may be modeled with the macromemetic tools I've developed, and whether these will show how starvation can happen. I hope that it can also illustrate the macromemetic concept of memetic desolation, which is related to alienation. The idea is that memetic desolation always leads quickly to a resort to violence. The theory is that the resort to violence may be pushed away by adding memes and memetic pathways to the system, even if the immediate effect and value of said pathways is not immediately clear, or seem to have any direct effect on the functioning of the system.
Is it possible to model The Dining Philosophers satisfactorily using macromemetic tools, and is it in turn possible to make simple changes to the system, while preserving its essence, to bring about a non-alienated system where nobody 'starves'?
Figure 1. The Dining Philosophers' Table
I like the description where there are chopsticks on either side of and a bowl of rice in front of each philosopher. All either Descartes, Voltaire, Socrates, Confucius, or Plato knows is whether he is hungry, and whether he can pick up the chopstick to his right or his left. He must be able to pick up both in order to eat. Each philosopher has the following memes available to deploy: eat!, pick-(up-)right!, pick-left!, think!, sleep!, and then to put his chopsticks back down, put-left!, put-right!
So far we have a collection of ideomemetic systems (1) where each philosopher has a collection of states: Sleeping, Thinking, Eating, where they may freely transition between Sleeping and Thinking, but they must deploy two memes, pick-right! and pick-left! to get to one or the other state of HoldingLeft or HoldingRight before they may transition to Eating (HoldingBoth).
Figure 2.a. Memetic State Diagram
By the way, with the table size we have here, we can have at most two philosophers eating at once, but two of the non-eating philosophers may still pick up his right or left chopstick, which is the kind of thing that leads to deadlocks.
If we really want to kick up the potential for antisocial (passive-aggressive) behavior, we could allow them to transition back to Thinking or even Sleeping without putting down either or even both chopsticks! In the 'Good Citizen' agent in the case above, by contrast, the agent has states which make it clear that he knows to transition back from Eating to Thinking by laying down both his chopsticks. Eating transitions back to either Hold(ing)Left or Hold(ing)Right, and finally back to Thinking. These meme deployments have clear state transitions as we see here:
Table 1. The 'Good Citizen' Philosopher-Agent
Eating [ ] eat!, put-right!HoldLeft, put-left!HoldRight
HoldRight [ ] put-right!Thinking
HoldLeft [ ] put-left!Thinking
Below we see how an antisocial ideomemeplex (1) could be set up where each philosopher has the possibility of hanging onto one or both chopsticks while only thinking or even sleeping, he could even twirl one or both chopsticks or what-have-you. Here we start to see a true ideomemeplex where we observe the behavior of the antisocial agent, but the internal state of the person that 'causes' that action is not outwardly visible (2).
Figure 2.b. Antisocial Behavior State Diagram
Adding MIAO (3) notation, we see how the philosopher with the above ideomemeplex sort of picks up and puts down the chopsticks for his own internal reasons, and when he has both LEFT(STICK) and RIGHT(STICK), then and only then is he able to deploy the eat! meme to go to the Eating state. So some of his deployment descriptors would look like:
Table 2.a. Deployment Descriptors with MIAOs
Thinking [ LEFT, RIGHT ] eat!Eating
Eating [ ] eat!, done!ThinkingThinking [ LEFT ] put-left!, pick-right!
Thinking [ RIGHT ] pick-left!, put-right!
Thinking [ ] think!, sleep!Sleeping
Sleeping [ ] sleep!, wake!Thinking
Obviously, the pick-right! and pick-left! memes only work when there are chopsticks to pick up. So we might further add details such as:
Table 2.b. Deployment Descriptors with variable-state MIAOs
Thinking [ LEFT.INHAND, RIGHT.INHAND ] eat!Eating
Eating [ ] eat!, done!Thinking
Thinking [ LEFT.AVAIL ] pick-left!
Thinking [ RIGHT.AVAIL ] pick-right!
Thinking [ RIGHT.INHAND ] put-right!
Thinking [ ] think!, sleep!Sleeping
Sleeping [ ] sleep!, wake!Thinking
Sleeping [ ] sleep!, wake!Thinking
Another thing we notice is that the selfish philosopher-agent does not have states and also does not have state transitions for many of his meme deployments. He doesn't seem to care whether he has one or both chopsticks. He doesn't have a state for either, so he's apparently indifferent to whether he picks one up or puts one down, or indeed, whether he has the chopsticks he needs when he wants to start Eating.
The Self-Satisfied Agent
In both the original state diagram and in the updated one (Figs. 2.a. and b.), where the philosopher-agent doesn't really 'care' about whether he's holding one or both chopsticks, he appears to be able to deploy any meme he likes, which is true if his neighbors are not hogging the chopsticks. He can do whatever he likes, and gets the result, the state change, that he wants.
At this point we question how well our state diagrams are working for us, since they seem to show that we can simply deploy eat! to hop over to Eating. In its current form, the state diagram does not illustrate very well how the eat! meme relates to the LEFT and RIGHT stick MIAOs, although this is made clear in the deployment descriptors (first lines of Tables 2.a. and 2.b.), i.e., the only times the eat! meme may be deployed from the Thinking state is when both LEFT and RIGHT chopstick MIAOs are .INHAND, and the only times they may be pick!ed is when they are .AVAIL.
In other words, my outwardly seeming self-satisfied agent is in fact dependent upon some unseen other person, upon whom he has no influence (no memes to deploy resulting in resonance, i.e., recognition and response).
We are at memetic desolation, or alienation. The starving philosopher is forced to resort to non-memetic means (violence) to deal with his situation.
Tea, Anyone? and Other-Bullying
A philosopher-agent who is starving must be able to make some kind of contact, some kind of memetic overture to his fellow diners. This is not necessarily his neighbors, and I'll try to explain why this is. In memetic engineering, the first problem is the memetic alienation, and assuming that the system is not badly broken in some other way (4), fixing that may be all that need be done.
One random idea is to give every philosopher a new meme which they can deploy which affects all the other philosophers. Just impacting their neighbors might not be enough, but enough on that for now, and let's just take this as an example of a problem solving approach.
Say there's always a teapot in the center of the table, and any of the philosophers may pick it up and offer to fill the teacups of all the others. Those who are asleep might not hear the offer, and those thinking might ignore it, and we may have to deal with those, but those who are eating should put down their chopsticks and hold out their cups.
Or better still, let's have all of the philosophers eating out of cha-wans 茶碗, which is kind of what I was imagining anyway, or a small rice bowl also for drinking tea. So those eating must quickly finish the last of their rice, put down their chopsticks, and hold out their bowls for some tea.
Anyone who is eating must stop, and both of their neighbors are necessarily not eating, since at least one of their chopsticks is taken. But it doesn't matter if the only people holding chopsticks are those eating. If thinkers put down their chopsticks for tea, then that's okay, too. The problem remains those who keep their chopsticks when sleeping.
What if these selfish philosophers don't all stop what they're doing, put down their chopsticks, and put their bowls out for some tea? The answer is: make the offer of tea meme a bullying opportunity.
One solution is that if your neighbor doesn't wake up and hold out his bowl with both hands (which requires putting down any chopsticks he may be holding), you give him a nudge.
An obvious problem is since offer-tea! is a freely deployable meme, i.e., there's nothing from stopping people from offering it over and over, and one feels the need for some kind of bullying meme to prevent that. One is that it takes time for a fresh pot of tea to steep, so anybody could complain that the tea is weak.
So we have stuff like:
Table 3. New Tea-related Behaviors
Eating [ offer-tea! ] put-left!, put-right!; put-out-bowl!
[ WEAK_TEA, offer-tea! ] complain!
[ complain! ] defend!
Then we start to get into engineering more and more memes, like saying
Again, this is just an example of a memetic engineering solution to a memetic desolation problem by making more interactions available to those who would otherwise have no choice but to resort to violence.
Memes Coming From Others
How does it work? There are some notational issues, in the state diagrams and transition matrices (5), as I mentioned above. In Table 2, we see a couple of new deployment modes for which there may be as yet no clear representation in current state diagrams: memes coming from others and memetic deployment options that don't depend upon current state. This latter could merely be taken as a shorthand, but a notational convention might help a lot.
Summary and Conclusions
The Dining Philosophers Problem is a microcosm and an example of memetic desolation leading to alienation and starvation and/or violence. The solution reached by memetic engineering, i.e., to add memetic pathways, allows agents to communicate in states in which they were formerly alienated and had only recourse to violence or acceptance of death.
Moreover, this solution mirrors those put forward by computer scientists to resolve exactly this sort of deadlock problem both in effectiveness and elegance.
Again, problems of alienation leading to violence, such as the millions of drivers on American roadways who experience 'road rage,' can lend themselves to similar simple, if counterintuitive, solutions, and we need to start applying these principles.
It remains to shore up the notional system to better deal with memes deployed by others, which I think will shed a lot of light on how to represent the action of immunomemes as well.
(1) A memeplex that only exists for a given person. In this case, each philosopher has his own POV, his own state, but an outside observer can still see the overall situation.
(2) This is exemplified by antisocial drivers who do things out of some kind of self-justified spite, which, when interviewed, they will reveal. For instance, 'he cut me off, so I rode his bumper, honking,' or 'he was going too slow, so I burned around him and flipped him off,' or 'he was riding my bumper, so I slowed way below the speed limit.'
(3) Memetic Iconic Anchoring Object. In this case, the chopsticks, which may or may not themselves be present or absent, or in-hand, strongly govern which memes are eligible for deployment.
(4) For example, not enough food. The assumption of The Dining Philosopher's Problem is that there is plenty of food, infinitely much, in fact. The problem is, as in the USA, distribution, not total quantity. A philosopher starves because he can't get his hands on a chopstick, not because his bowl is empty. The former is, we hope, a macromemetic problem, and we attack it as such.
(5) Examples of those not presented here. Resolving issues associated with MIAOs and memes from other agents determining state and available memes to deploy is stuff for another essay.