It seems that in most decision problems there are intuitively obvious decompositions, even if we can’t yet formalize the criteria that we use to to do this
I propose the following formalization. The “program” is everything that we can control fully and hold constant between all situations given in the problem. The “data” is everything else.
Which things we want to hold constant and which things vary depend on the problem we’re considering. In ordinary game theory, the program is a complete strategy, which we assume is memorized before the beginning and followed perfectly, and the data is some set of observations made between the start of the game and some decision point within it. Problems may force us to move things that are normally part of the program into the state, by taking them out of our control. For example, when reasoning about how a company should act in relation to a market, we treat everything that decides what the corporation does as a black box program, and the observations it makes of the market as its input data. If internal politics matter, then we have to narrow the black-boxing boundary to only ourselves. If we’re worried about akrasia or mind control, then we draw the boundary inside our own mind.
Whether something is Program or Data is not a property of the object itself, but rather of how we reason about it. If it can be fully modeled as a black box function, then it’s part of the program; otherwise it’s data.
If Functional Programming and LISP has taught me anything is that all “programs” are “data”. The boundary between data and code is blurry at least. We are all instances of “data” that is executed on the machine known as the “Universe”. (I think this kind of Cartesian duality will lead to other dualities and I don’t think we need “soul” and “body” mixed into this talk)
I propose the following formalization. The “program” is everything that we can control fully and hold constant between all situations given in the problem. The “data” is everything else.
Which things we want to hold constant and which things vary depend on the problem we’re considering. In ordinary game theory, the program is a complete strategy, which we assume is memorized before the beginning and followed perfectly, and the data is some set of observations made between the start of the game and some decision point within it. Problems may force us to move things that are normally part of the program into the state, by taking them out of our control. For example, when reasoning about how a company should act in relation to a market, we treat everything that decides what the corporation does as a black box program, and the observations it makes of the market as its input data. If internal politics matter, then we have to narrow the black-boxing boundary to only ourselves. If we’re worried about akrasia or mind control, then we draw the boundary inside our own mind.
Whether something is Program or Data is not a property of the object itself, but rather of how we reason about it. If it can be fully modeled as a black box function, then it’s part of the program; otherwise it’s data.
If Functional Programming and LISP has taught me anything is that all “programs” are “data”. The boundary between data and code is blurry at least. We are all instances of “data” that is executed on the machine known as the “Universe”. (I think this kind of Cartesian duality will lead to other dualities and I don’t think we need “soul” and “body” mixed into this talk)