- #1
2ltben
- 28
- 0
Ever since the Sugarscape experiment, I've held a great interest in small, algorithmic AI simulations in an attempt to create some form of model of human behavior. Recently I've been going over Asimov's Psychohistory and the analogy to Thermodynamics he presented. I realized that, hey, Political Compass uses a Cartesian coordinate system, and the force of attraction and influence over the masses that political figures and geography provides somewhat mimics Universal Gravitation. So I've been mulling this over and trying to find some computational allegory that could fit. This is what I've come up with so far.
The agents are made up of a class that would mimic any massive body in science. Properties would be the standard, X and Y position on the grid, but they would also contain Mass, and, for purposes of Momentum, which I will get into later, X and Y Velocity. To prevent premature movement of units, Future X and Y positions would also be stored so that they will be moved only after all calculations are made.
Mass would represent Influence and Appeal. For lack of a better conceptualization, this could be distance from the origin. However, this would later create problems when adding in commoners. A single, unimportant individual would have undue influence over a powerful figure whereas only large groups of the common citizen should be able to do as such, representing interest groups, lobbying groups, corporations, minor parties, etc. I'm definitely going to have to find some tangible constant to assign mass(perhaps not a variable at all, but inelastic collisions and varying influence is for a later time and date)
Each interation would calculate the Mass and find the distance from the given agent. The forces would be applied and the calculations made to find out the new positions of the agents. If they were moved immediately after the calculations, the first would be unaffected, but as the agents are calculated, the data would be dissimilar, since the distances would be altered. After all the calculations are made, a simple subprocedure can be run to move the agents to their new positions and clear out the future position variables.
I previously mentioned momentum. To explain its use, look to history and current events. When powerful leaders come close, clashes of ideology can often happen, driving the two individuals and their ideologies apart. Representing this on a Cartesian plane would mimic elastic collisions. Two individuals could be driven far apart by their conflicts, or, given the right conditions, they could face a number of small, personal conflicts until they finally bond with each other and learn to cooperate. This is actually something I stumbled upon while considering the programming aspects of what would happen if two particles occupied the same space, which, since this is ultimately a simulation of physics, cannot happen.
Those in close proximity to powerful individuals would make up their followers, disciples, party members, and, the more distance ones, fellow travellers. The more distant, the less influence the agent or collection will have over other agents, but, depending on the distance they become primarily attracted at, they could either mix and mingle with ease and without incident, or they could collide violently and the agents would be scattered across a broad spectrum, taking a considerable period of time to reform, and doubtlessly not in the same formation as before.
There are latent variables, of course, which will remain uncalculated, for taking them on at such a conceptual stage would be far too massive. However, in this current system, my hypothesis is that, given ample time, the agents in the simulation will eventually grow close and enter a more-or-less common proximity to each other. The dynamics of sociology and physics mimic each other, but it is not an exact science and Asimov's psychohistory is ultimately fiction, but the parallels are uncanny.
Unfortunately, I'm at a bit of a loss at where to proceed. My programming language of choice is VisualBasic .NET, which, to my knowledge, has no ability to render. At best, I could output positions to a text file and recreate it by hand, but this is in no way efficient. Rudimentary features could be implemented, but there are as yet some concepts that need to be hammered out before it can be put to an alpha test. My ultimate goal is to introduce individuals from history and current events, the data of which has been calculated by Political Compass, and randomly seed commoners to experiment with their dynamics.
I'm only a high school senior who has taken only up to high school Physics(without Calculus) and AP Calculus AB, and I admit that this is by no means a legitimate experiment, I just find these sorts of things immensely entertaining. I only wish I knew Java so I could make a legitimate attempt at swarm intelligence and flocking AI. If this doesn't work, then I still have a working simulation of gravity and motion.
Comments? Suggestions? Criticisms? Please for the love of God have pity on my soul? I really have no idea where this should go, it would fit in Mathematics, Physics, the Humanities, or Programming. This place, the Social Science section of a Math and Physics forum, seemed most appropriate.
The agents are made up of a class that would mimic any massive body in science. Properties would be the standard, X and Y position on the grid, but they would also contain Mass, and, for purposes of Momentum, which I will get into later, X and Y Velocity. To prevent premature movement of units, Future X and Y positions would also be stored so that they will be moved only after all calculations are made.
Mass would represent Influence and Appeal. For lack of a better conceptualization, this could be distance from the origin. However, this would later create problems when adding in commoners. A single, unimportant individual would have undue influence over a powerful figure whereas only large groups of the common citizen should be able to do as such, representing interest groups, lobbying groups, corporations, minor parties, etc. I'm definitely going to have to find some tangible constant to assign mass(perhaps not a variable at all, but inelastic collisions and varying influence is for a later time and date)
Each interation would calculate the Mass and find the distance from the given agent. The forces would be applied and the calculations made to find out the new positions of the agents. If they were moved immediately after the calculations, the first would be unaffected, but as the agents are calculated, the data would be dissimilar, since the distances would be altered. After all the calculations are made, a simple subprocedure can be run to move the agents to their new positions and clear out the future position variables.
I previously mentioned momentum. To explain its use, look to history and current events. When powerful leaders come close, clashes of ideology can often happen, driving the two individuals and their ideologies apart. Representing this on a Cartesian plane would mimic elastic collisions. Two individuals could be driven far apart by their conflicts, or, given the right conditions, they could face a number of small, personal conflicts until they finally bond with each other and learn to cooperate. This is actually something I stumbled upon while considering the programming aspects of what would happen if two particles occupied the same space, which, since this is ultimately a simulation of physics, cannot happen.
Those in close proximity to powerful individuals would make up their followers, disciples, party members, and, the more distance ones, fellow travellers. The more distant, the less influence the agent or collection will have over other agents, but, depending on the distance they become primarily attracted at, they could either mix and mingle with ease and without incident, or they could collide violently and the agents would be scattered across a broad spectrum, taking a considerable period of time to reform, and doubtlessly not in the same formation as before.
There are latent variables, of course, which will remain uncalculated, for taking them on at such a conceptual stage would be far too massive. However, in this current system, my hypothesis is that, given ample time, the agents in the simulation will eventually grow close and enter a more-or-less common proximity to each other. The dynamics of sociology and physics mimic each other, but it is not an exact science and Asimov's psychohistory is ultimately fiction, but the parallels are uncanny.
Unfortunately, I'm at a bit of a loss at where to proceed. My programming language of choice is VisualBasic .NET, which, to my knowledge, has no ability to render. At best, I could output positions to a text file and recreate it by hand, but this is in no way efficient. Rudimentary features could be implemented, but there are as yet some concepts that need to be hammered out before it can be put to an alpha test. My ultimate goal is to introduce individuals from history and current events, the data of which has been calculated by Political Compass, and randomly seed commoners to experiment with their dynamics.
I'm only a high school senior who has taken only up to high school Physics(without Calculus) and AP Calculus AB, and I admit that this is by no means a legitimate experiment, I just find these sorts of things immensely entertaining. I only wish I knew Java so I could make a legitimate attempt at swarm intelligence and flocking AI. If this doesn't work, then I still have a working simulation of gravity and motion.
Comments? Suggestions? Criticisms? Please for the love of God have pity on my soul? I really have no idea where this should go, it would fit in Mathematics, Physics, the Humanities, or Programming. This place, the Social Science section of a Math and Physics forum, seemed most appropriate.