-
Notifications
You must be signed in to change notification settings - Fork 41
Green Red Strategy
The basic principle of Casio is deriving a floating point program with less error from a starting program through a series of incremental changes. While at any given time there are several different possible paths being explored, from any given node in exploration one can trace a path backwards of incremental changes that led from the starting node to this node. Since the goal is to reduce error, these changes can be separated into three categories: changes which immediately reduce error in the program overall (ones which the program after the change is evaluated to have less error than the program before the change) [Green], changes which do not immediately reduce error, but are essential in enabling green changes[Orange], and changes which do not lead to a decrease in error [Red]. While all three type of changes can be part of a path to the optimal program, the most promising leads and thus the ones that Casio should pursue with the highest priority are the first and second categories of changes (green and orange changes).
Ultimately, the goal will be to be able to eliminate red changes, and to use orange changes to both set up more green changes and simplify the final program. To do this we first want to, for each node in the search, record a history of all of the changes that the node went through from the starting node. These changes should be categorized into the aforementioned categories. Next, we want to, after every green change, go back and try to “undo” all of the red changes that were part of the path to arrive at the current node but did not contribute to the green change. Finally, we want to after every green change use a series of educated guesses to try to simplify the current program using orange changes.