Update
The project to construct an automated pattern generator and recognizer is coming in fits and starts. I finally got my sweet Octave code to work (Octave is like MATLAB, but free), only to find out that I have serious memory leak problems. This sets me way back, and makes me think that I should go back to my original idea of developing C++ code, and just use Octave as an algorithmic development tool.
Some other major issues include:
Numerical integrators. I only have a very basic working knowledge of numerical integrators, and at the moment the 4th order Runge-Kutta solver I am using in Octave appears to give good enough answers (at least when the solutions don't go shooting off to infinity). The question now becomes if it is worth it to try and develop my own numerical solver (probably using Numerical Recipes in C as a major resource) as well as an automated equation generator in C++? The nice thing about Octave/MATLAB is that data is much easier to manipulate than in C++.
But the biggest problem is the following: how does one quantify and qualify patterns in an automated fashion? Generating random non-linear differential equations is all well and good, but the whole point of this exercise is to basically find emergent phenomenon and characterize them. Then use what is learned by discovering emergent phenomenon to predict the existence of other emergent phenomenon in higher level structures.
The following is a very short summary of what I currently know about non-linear differential equations:
-Whenever nullclines (a nullcline is a line where the value of one of the time derivative is always zero) cross, there is a fixed point.
-Fixed points come in various flavors, from stable to unstable, and spirals, nodes and saddles. There are also other fixed points that are harder to examine (degenerate nodes, stars, centers, and some others...)
-To get chaos you have to have at least three dimensions
-Linear stability analysis at certain types of nodes (saddle, spiral, and stable) can use the Jacobian to determine the stability of a node in a nonlinear system.
-There are different types of bifurcations that can occur (where a fixed point undergoes some sort of transformation). These include saddle-node bifurcations, Hopf bifurcations, pitchfork bifurcations, and others.
Say you want to generate arbitrary emergent phenomenon for N "agents." What kind of system of equations would you use? Say the agents are homogenous (they all have the same set of interactions, but distributed amongst themselves in different ways). How does one characterize said emergent phenomenon? I guess the simplest way would be to start out with very simple equations (e.g. equations with only one or two terms), and see what the behavior is. Then bump up the complexity by adding new terms. So, for example, each individual would be represented by a single variable (this variable could be extended to any number of variables later on...). This variable would dictate something (such as position, hunger, velocity, size, concentration, or any other metric one wished to develop an interaction (and hopefully emergence) framework for). Then, the variables between individuals would be coupled, such that the concentration value (for example) of one agent has an effect on the rate of change of the concentration value for another agent. Then one could add environmental factors as well into some or all of the equations. This could be a natural decay rate of concentration, or influx rate. Environmental variables in themselves that change over time (e.g. spatial food/energy concentration function) could be incorporated.
Some other points to cover on these ideas in the next post:
Importance of connectivity between agents (random, uniform, higher order structure (which probably means higher order information)
Importance of correlations between agents
Importance of nonlinearity between agents
Defining emergent behavior with:
1) Correlation Functions (e.g. given I know that agent 1 is doing action x, what can I say about what agent 2)
2) Spatio-Temporal Distributions (how random/non-random is the distribution of agents in space-time)
3a) Information (e.g. given a set of inputs, what does the set of outputs look like (how discriminating/robust is the system between certain inputs)
3b) Does the system destroy, create, or merely transform information?
3c) Can we find symbols in the information patterns created by the system?
Other random thoughts with respect to making this project easier and more importantly, fruitful...
Some other major issues include:
Numerical integrators. I only have a very basic working knowledge of numerical integrators, and at the moment the 4th order Runge-Kutta solver I am using in Octave appears to give good enough answers (at least when the solutions don't go shooting off to infinity). The question now becomes if it is worth it to try and develop my own numerical solver (probably using Numerical Recipes in C as a major resource) as well as an automated equation generator in C++? The nice thing about Octave/MATLAB is that data is much easier to manipulate than in C++.
But the biggest problem is the following: how does one quantify and qualify patterns in an automated fashion? Generating random non-linear differential equations is all well and good, but the whole point of this exercise is to basically find emergent phenomenon and characterize them. Then use what is learned by discovering emergent phenomenon to predict the existence of other emergent phenomenon in higher level structures.
The following is a very short summary of what I currently know about non-linear differential equations:
-Whenever nullclines (a nullcline is a line where the value of one of the time derivative is always zero) cross, there is a fixed point.
-Fixed points come in various flavors, from stable to unstable, and spirals, nodes and saddles. There are also other fixed points that are harder to examine (degenerate nodes, stars, centers, and some others...)
-To get chaos you have to have at least three dimensions
-Linear stability analysis at certain types of nodes (saddle, spiral, and stable) can use the Jacobian to determine the stability of a node in a nonlinear system.
-There are different types of bifurcations that can occur (where a fixed point undergoes some sort of transformation). These include saddle-node bifurcations, Hopf bifurcations, pitchfork bifurcations, and others.
Say you want to generate arbitrary emergent phenomenon for N "agents." What kind of system of equations would you use? Say the agents are homogenous (they all have the same set of interactions, but distributed amongst themselves in different ways). How does one characterize said emergent phenomenon? I guess the simplest way would be to start out with very simple equations (e.g. equations with only one or two terms), and see what the behavior is. Then bump up the complexity by adding new terms. So, for example, each individual would be represented by a single variable (this variable could be extended to any number of variables later on...). This variable would dictate something (such as position, hunger, velocity, size, concentration, or any other metric one wished to develop an interaction (and hopefully emergence) framework for). Then, the variables between individuals would be coupled, such that the concentration value (for example) of one agent has an effect on the rate of change of the concentration value for another agent. Then one could add environmental factors as well into some or all of the equations. This could be a natural decay rate of concentration, or influx rate. Environmental variables in themselves that change over time (e.g. spatial food/energy concentration function) could be incorporated.
Some other points to cover on these ideas in the next post:
Importance of connectivity between agents (random, uniform, higher order structure (which probably means higher order information)
Importance of correlations between agents
Importance of nonlinearity between agents
Defining emergent behavior with:
1) Correlation Functions (e.g. given I know that agent 1 is doing action x, what can I say about what agent 2)
2) Spatio-Temporal Distributions (how random/non-random is the distribution of agents in space-time)
3a) Information (e.g. given a set of inputs, what does the set of outputs look like (how discriminating/robust is the system between certain inputs)
3b) Does the system destroy, create, or merely transform information?
3c) Can we find symbols in the information patterns created by the system?
Other random thoughts with respect to making this project easier and more importantly, fruitful...
0 Comments:
Post a Comment
<< Home