|
"What if?" Explaining the past; predicting the future. |
CALENDAR COMPLEX SYSTEMS Nicholas Gessler, Ph.D.
|
WE WILL:
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
Tuesday 25 August |
||||||||||||||||||||||||||||||||||||||||||||||
Week 1
Challenge 0 |
THE 14 WEEK COURSE IN COMPLEX SYSTEMS AT DUKE, DURHAM THE 7 WEEK COURSE IN COMPLEX SYSTEMS AT DUKE, KUNSHAN INTRODUCTION TO THE PHILOSOPHY OF EVOLUTION AND COMPUTATION. Theo Jansen ANIMARIS also check "ANIMARIS" in Google Images and VideosBoston Dynamics (recently acquired by Google) DESCRIBING, UNDERSTANDING, EXPLAINING COMPLEXITY WITHOUT A COMPUTER - An age-old problem: Selected Works of Mao Tse-tung, Volume 1 Throughout the history of human knowledge, there have been two conceptions concerning the law of development of the universe, the metaphysical conception and the dialectical conception, which form two opposing world outlooks... As opposed to the metaphysical world outlook, the world outlook of materialist dialectics holds that in order to understand the development of a thing we should study it internally and in its relations with other things; in other words, the development of things should be seen as their internal and necessary self-movement, while each thing in its movement is interrelated with and interacts on the things around it. The fundamental cause of the development of a thing is not external but internal; it lies in the contradictoriness within the thing. There is internal contradiction in every single thing, hence its motion and development. Contradictoriness within a thing is the fundamental cause of its development, while its interrelations and interactions with other things are secondary causes... Models ~= simulations ~= representations ~= artificial worlds An Agent ~= an object embodying a cause-effect relationship Mantra: "From local rules to global patterns of behavior." Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers Let us imagine a family of nomads in the desert situated somewhere between three cities. Every morning they wake and set out for one of the cities. Which one? They have poor memories so they pick one at random. During the day they travel and when they are exactly half-way there they make camp for the night. The next morning they do the same. They pick a city at random, travel half way there, and spend the night. Perhaps they are indecisive or forget where they were headed, nevertheless they continue in this way day after day. Now imagine that we are archaeologists and wish to map the distribution of their campsites. What would that pattern be after 10, 100, 1000 or 10,000 days? We will write a small simulation to answer this simple question... How we talk to the computer:
We hand out notes and materials.
|
Written Challenge 0:
Part A): At the end of the film, I will replay for you the scene in which Douglas Hall and Jane Fuller first meet. Their dialog is strange on first viewing, but after having seen the film and understanding what is happening, tell me what is going between Douglas and Jane when they first encounter one another. One is confused; the other is lying. Why do they behave this way? What they say out loud is GLOBAL (accessible to all) but what they think is LOCAL (known only to each of them as individuals). The conversation and acting are nuanced. If you wish to review this scene, THE VIDEO IS HERE. I have transcribed it for you below:
Part B: Most science fiction stories take the form "if we accept A, B and C as truths, then X, Y and Z will follow as consequences." Usually A, B and C are beyond the realm of current science, but if we accept them and suspend our disbelief, then X, Y and Z will follow in a logical and reasonably scientific manner. In this respect science fiction is something like our "what if?" simulations. In this film, if we accept the A, B and C premises, how validly does the story develop the X, Y and Z entailments? How many levels of simulation and instances of simulation does the film refer to? How do the film-makers and the characters differentiate between the levels? |
|||||||||||||||||||||||||||||||||||||||||||||
Thursday 27 August |
|||||||||||||||||||||||||||||||||||||||||||||||
Week 1
Challenge 0 |
Models and simulations as representations (re-presentations) of reality:
Joanna Newsome's song illustrated: And the signifieds butt heads with the signifiers, |
Maps as re-presentations of the land:
On Google Earth, fly to: 38°15'58.40"N 105°57'1.33"E 33°36'39.33"N, 79°03'46.24"E An answer... |
|||||||||||||||||||||||||||||||||||||||||||||
|
Tuesday 1 September |
||||||||||||||||||||||||||||||||||||||||||||||
Week 2
Challenge 1 |
Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers Programming Challenge 1: Cellular Automata / Conway's Game of Life Imagine a population of 10,000 automata (or robots). Each one is situated on a single square on a chess-board with 100 squares (or cells) on each side. Each automaton cannot move. It can be either alive or it can be dead. Now suppose the world changes like each frame on an old movie film. At every frame, each automaton counts the number of live cells in the 8 squares that surround it. If the automaton is dead and has exactly 3 living cells surrounding it, it will become alive in the next frame (or iteration). If the automaton is alive and has either 2 or 3 living cells surrounding it, it will stay alive in the next iteration. If either of these conditions are not met, the cell will either stay dead or become dead in the next iteration. Each of the 10,000 cells must make its decision without knowing what its neighboring cells will do in the next iteration. In order to eliminate the effects of the adges of this world, we let the world wrap around, from left to right, right to left, top to bottom and bottom to top. The rules are very simple. What patterns will emerge? What do you think? We will write a simulation to explore this simple question... Written Challenge 1: Interview with the film-makers. On two occasions Caleb quotes Robert Oppenheimer (Director of the Manhattan Atomic Bomb Project) who in turn is quoting from the Bhagavad Gita: Caleb: "I am become Death,
the destroyer of worlds." Nathan continues Oppenheimer's quote as he passes out drunk on the sofa: I'd say we're about due a refill. Bottoms up. (BREATHING HEAVILY) NATHAN: "In battle, in the forest, on the precipice of the mountain. (VOICE CRACKING) On the... The great dark sea. In sleep, in confusion, in the depths of shame. (SOBBING) The good deeds a man has done before defend him. The good deeds a man has done before defends him. The good deeds a man has done before defends him. (SIGHS DEEPLY) It is what it is. It's Promethean, man. Suggested length: 2 pages, double-spaced, one copy only on paper. Please turn this in on Sunday, September 6, at the beginning of class. Of the three main characters in the film, Caleb is the most transparent. He has been charged with the task of determining whether Ava is conscious. A) Why do the characters feel that the "Turing Test" does not measure intelligence or consciousness? What are they looking for as specific evidence that an entity (a human, a monkey or a robot) is conscious? In other words, according to the film, what is "consciousness" and how do we know that we have it? B) What is going on in Caleb's mind is relatively clear, so let's ignore him. But what is going on in the minds of Nathan and Ava is obscure. Certainly, they say quite a lot to one another, but what are they thinking? Since Nathan is human, we might be able to guess his evolving state of mind. But what about Ava's mind? What is stirring inside her mind? Please recount the story from the perspectives of Nathan and Ava. There may be more than one way to understand their thoughts (even the film-makers are not sure). I am not interested in the morality or the ethics of the characters, only in how their inner (unspoken) thoughts and ideas (emotions?) develop. |
|
|||||||||||||||||||||||||||||||||||||||||||||
Sunday 6 September |
|||||||||||||||||||||||||||||||||||||||||||||||
Week 2
Challenge 1 |
Written Challenge 1: Notes on grading: The grades I give you will reflect both your "engagement with the challenge" and "your relative standing" compared to others in the class. I encourage you to develop some applications on your own for extra credit. The best way to learn to code is to play with the code. Please do so. For instance, write an application to throw two dice, to spin a roulette wheel or wheel of fortune, to pick a card from a deck. Write an application that does counter-intuitive things as a joke, for instance one which has a button that you cannot click because it runs away from the cursor, or a Window that shakes or changes shape. In this way you can have fun while at the same time you are learning to code. Your course grade will reflect your engagement with, and command of, the materials. Your course grade will most probably NOT be an average of your programming and written challenges. Excellent later work will tend to cancel out earlier lesser work. For instance if your grades are: C C C B B B A A A and your course project is an A you will likely receive an A. When you learn to ride a bicycle or learn to drive a car, at first you fall over and sometimes crash. But with practice you get better until you are an expert. At the end you are an expert and deserve an A for riding or driving. Your early mishaps do not reflect your final abilities. So too is it with grades for this course... |
A Field Trip: Programming Challenge 1: Cellular Automata / Conway's Game of Life We clean up and speed up what we wrote on Tuesday. Simplifying the code: Speeding up the code: Accessing outside files: Adding file-save and file-open functionality. Adding creatures to the code: We look at some of the code on our website... |
|||||||||||||||||||||||||||||||||||||||||||||
Tuesday 8 September |
Thursday 10 September |
||||||||||||||||||||||||||||||||||||||||||||||
Week 3
Challenge 1 |
I have introduced you to coding in C/C++ by having you copy code that I present to you. I have tried to get you to think about the world as a system of agents that are linked to one another through causes and effects in some organized structure. An agent takes in information from its environment, it processes that information, and it does something as a result. In short it senses, thinks and acts. An agent could be an atom, dog, human or a planet. Programming and coding start with a problem to be solved. We think of ways to solve it in our minds. We write our thoughts as source code in C/C++. We organize that source code into a hierarchy of jobs that need to be done. Those jobs are functions with the higher level management functions at the bottom. I can show you how I construct a hierarchy of functions, but you need to try this on your own. Try to construct a simple program to help you understand a new object or function. For example, I wrote a "String Art" application to demonstrate colorRamp(). Written Challenge 2: Programming Challenge 1: Cellular Automata / Conway's Game of Life We finish file save() and open() TO THINK ABOUT: Is Conway's world a complete computational system? THINK ABOUT PREDICTION: ON YOUR OWN: Run Mirek's Cellebration to explore the variety of complexities produced from relatively simple cellular automata. More complex CAs are used to model air and fluid flow, the human heart, the weather, ship and aircraft hulls and thermonuclear exploisions. |
Programming Challenge 1: Cellular Automata / Conway's Game of Life Movie Night (not required tonight):
|
|||||||||||||||||||||||||||||||||||||||||||||
15 September |
17 September |
||||||||||||||||||||||||||||||||||||||||||||||
Week 4
Challenge 2 |
Programming Challenge 1: Cellular Automata / Conway's Game of Life Programming Challenge 2: Evolutionary Computation Charles Darwin and Alfred Russel Wallace proposed the theory of evolution by natural selection in 1859. The mechanisms they elucidated explain how life has evolved for billions of years, culminating in us. What would happen if we wrote those same mechanisms of evolution into our computers? Could we evolve solutions to complex problems using variation, recombination (sexual reproduction) and selection? We can. Not only can we evolve solutions to problems and the computer code itself, but we can also evolve hardware by the same methods. Karl Sims has evolved strategies and tactics and even humor in his Evolved Virtual Creatures. We will use it to evolve solutions to the Traveling Salesman Problem and to unscrambled scrambled images. A SEQUENCE OPTIMIZER Written Challenge 3: |
Programming Challenge 2: Evolutionary Computation We make the problem harder with more constraints.
|
|||||||||||||||||||||||||||||||||||||||||||||
Friday, September 18 9:00 a.m. to 5:00 p.m. SCIENCE FICTION SYMPOSIUM |
|||||||||||||||||||||||||||||||||||||||||||||||
22 September |
24 September |
||||||||||||||||||||||||||||||||||||||||||||||
Week 5
Challenge 2 |
Programming Challenge 2: Evolutionary Computation We look at how to unscrambling a scrambled image. Written Challenge 4: |
Programming Challenge 2: Evolutionary Computation Buying and selling stocks. Reconstructing a simple code. |
|||||||||||||||||||||||||||||||||||||||||||||
29 September |
8 October |
||||||||||||||||||||||||||||||||||||||||||||||
Week 6
Challenge 3 |
Programming Challenge 2: Evolutionary Computation Programming Challenge 3: Flocking, Herding, Schooling, Swarming ><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> Let's now create a world of more realistic agents, ones that can move in any direction and at any speed and that can perceive a richer environment around them. They can have many states like ages, sexes, friends, enemies. They move in vector space (not from cell to cell). They may represenbt herds of horses, flocks of birds, schools of fish, crowds of people, cars on highways, atoms in crystals or asteroids in orbits between the planets Mars and Jupiter. Written Challenge 5:
|
Programming Challenge 3: Flocking, Herding, Schooling, Swarming ><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> We introduce some new variations to our flocking simulations.
|
|||||||||||||||||||||||||||||||||||||||||||||
13 October |
15 October |
||||||||||||||||||||||||||||||||||||||||||||||
Week 7
Challenge 3 |
Programming Challenge 3: Orbits ><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> We introduce some new variations to our flocking simulations. |
Programming Challenge 3: Orbits ><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> Work on course projects... |
|||||||||||||||||||||||||||||||||||||||||||||
20 October |
|||||||||||||||||||||||||||||||||||||||||||||||
Final Week |
2:00 to 5:00 on Final Exam Day... No final. Course project participant presentations
|
||||||||||||||||||||||||||||||||||||||||||||||