# places 0 - 4: forks # places 5 - 9: philosophers thinking # places 10 - 14: philosophers eating # transitions 0 - 4: thinking to eating # transitions 5 - 9: eating to thinking # # set the table # place_tokens 0 1 place_tokens 1 1 place_tokens 2 1 place_tokens 3 1 place_tokens 4 1 # # Seat the philosophers # place_tokens 5 1 place_tokens 6 1 place_tokens 7 1 place_tokens 8 1 place_tokens 9 1 # # Everybody is thinking # place_tokens 10 0 place_tokens 11 0 place_tokens 12 0 place_tokens 13 0 place_tokens 14 0 # # A single philospher and left and right forks are # inputs to each of the five start eating transitions # input_arc 0 0 input_arc 1 0 input_arc 5 0 input_arc 1 1 input_arc 2 1 input_arc 6 1 input_arc 2 2 input_arc 3 2 input_arc 7 2 input_arc 3 3 input_arc 4 3 input_arc 8 3 input_arc 4 4 input_arc 0 4 input_arc 9 4 # # When the transition fires the philospher token # moves to the eating state # output_arc 0 10 output_arc 1 11 output_arc 2 12 output_arc 3 13 output_arc 4 14 # Inputs to the "finished eating" transitions input_arc 10 5 input_arc 11 6 input_arc 12 7 input_arc 13 8 input_arc 14 9 # Finished eating transition returns a token a # token to left and right fork positions and to # philospopher. output_arc 5 0 output_arc 5 1 output_arc 5 5 output_arc 6 1 output_arc 6 2 output_arc 6 6 output_arc 7 2 output_arc 7 3 output_arc 7 7 output_arc 8 3 output_arc 8 4 output_arc 8 8 output_arc 9 4 output_arc 9 0 output_arc 9 9