Jim lives a boring life. Everyday after leaving work, he buys gas for his car and eats dinner at a diner on his way home. Sometimes he stops at a book store after work. Since the store closes soon after he gets off work, Jim's first stop is always the store when he chooses to go there. He always goes to both the diner and the gas station, but he sometimes goes to one before the other to add some variety to his otherwise dull life. He always goes home after the end of each day and never visits any location twice in the same day. How could the data for Jim's dull life be best structured?
What we have is a multidigraph with five nodes and nine arcs. Obviously, work is the source, and home is the sink. $A$=store, $B$=diner, $C$=gas. Nodes $B$ and $C$ are necessary, they must be transversed before arriving home (the sink). I want to create a data model that will allow me to add weights that will determine the order of events as well as the occurrence of non-necessary events. I will also need to express the impossibility of going back and forth between the diner and gas station all night.