One PE firing per Apply Phase
From Soar Wiki
Excerpted from email between Karen and John:
After the decision phase, we should only enter the PE phase *once*. So, not only within a given state, but also across states, PE’s should fire only once. Then we should go to output after the IEs finish at the PE level. We should not continue down the stack. When we come around to decision again, there should not be an impasse if the current operator is still selected (it should not result in an operator no-change impasse, because there has been a “change” but just not a complete one). In printing out the trace at watch 1, it should probably print the decision number and nothing else (printing the operator would indicate the operator has been reselected, which it hasn’t been). Another option is to print the operator at the level in the state where the PE fired (indented appropriately) but modified such as in brackets or something: “34: O: [O15 (encode)]” – that might be better. So what I want is I think simpler than what you implemented? It will sometime “stretch” out a single decision across multiple decisions whenever there used to be multiple PE phases between application and output.
