|
"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 or 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.
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 as I present it. I have wanted 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. Remember that 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 represent 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: Sunday I wrote a simple "String Art" application to demonstrate colorRamp(). Written Challenge 2: (This challenge is due next Thursday, September 10: 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 Written Challenge 3: (This challenge is due next Tuesday, September 15: The beginnings of an hexagonal CA. GUI: Provide the user with an ergonomic Graphic User Interface. Movie Night (not required tonight):
|
|||||||||||||||||||||||||||||||||||||||||||||
Tuesday, 15 September |
|||||||||||||||||||||||||||||||||||||||||||||||
Week 4
Challenge 2 |
Programming Challenge 1: Cellular Automata / Conway's Game of Life Written Challenge 4: Programming Challenge 2: Evolutionary Computation For Thursday: Familiarize yourself with the Evolutionary Concert Tour and EvoImage from the user's perspective. We will look at the code on Thursday. 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
|
Programming Challenge 2: Evolutionary Computation We make the problem harder with more constraints.
|
|||||||||||||||||||||||||||||||||||||||||||||
Thursday, 17 September |
|||||||||||||||||||||||||||||||||||||||||||||||
Week 4
Challenge 2 |
What are our goals? To describe, to understand and to explain the complex world around us...
Complex systems (and hence complex systems simulations) are often deterministic but unpredictable, meaning that there is no mathermatics, no calculus and no short-cut for determinining from their present state, "T0," to their state at some time in the future, "Tt," other than by running them to that time in the future, "Tt." Wisdom:
Leadership:
|
Natural Selection Among Our Species Today: More on Written Challenge 4:
1-2 pages, double-spaced, single-copy on paper, due Tuesday, September 22. Programming Challenge 2: Evolutionary Computation |
|||||||||||||||||||||||||||||||||||||||||||||
Friday, September 18 9:00 a.m. to 5:00 p.m. SCIENCE FICTION SYMPOSIUM |
|||||||||||||||||||||||||||||||||||||||||||||||
Tuesday, 22 September |
|||||||||||||||||||||||||||||||||||||||||||||||
Week 5
Challenge 2 |
Written Challenge 4: DUE TODAY Programming Challenge 2: Evolutionary Computation Buying and selling stocks. Reconstructing a simple code. Coding other evolutionary problems. Traffic control.
|
Tuesday Evening Sci-Fi Film: Not required.
|
|||||||||||||||||||||||||||||||||||||||||||||
Thursday, 24 September |
|||||||||||||||||||||||||||||||||||||||||||||||
Programming Challenge 2: Evolutionary Computation Coding other evolutionary problems. |
|||||||||||||||||||||||||||||||||||||||||||||||
Friday, 25 September |
|||||||||||||||||||||||||||||||||||||||||||||||
Field Trip: Kunshan Traffic Control Center Come with questions... |
|||||||||||||||||||||||||||||||||||||||||||||||
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 represent herds of horses, flocks of birds, schools of fish, crowds of people, cars on highways, atoms in crystals or asteroids in orbits around the sun between the planets Mars and Jupiter. We review the agentClass structure and the rules. (Refer to the 8-page handout). Written Challenge #5 due October 8: Suggest, in as much detail as possible, six rules that are practical to implement in "Flocking/Orbits Version 35." Three should be inspired by DARK CITY and three should be inspired by NON SERVIAM. Use your imagination, buy be realistic in consideraton of the code we have available in Version 35. Be prepared to implement these rules when we meet again on Thursday.
|
The remainder of the course you should be working on Written Challenge #5 due today... Programming Challenge 3: Flocking, Herding, Schooling, Swarming ><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> We discuss some enhancements loosely inspired by Non Serviam, Dark City and the Thirteenth Floor...
|
|||||||||||||||||||||||||||||||||||||||||||||
13 October |
15 October |
||||||||||||||||||||||||||||||||||||||||||||||
Week 7
Challenge 3 |
Next Fall course offerings:
Putting Unicode into your applicaitons... Shockwave Traffic Jams (40s) Iaian Couzin: Collective Animal Behavior
XE6 Orbits 36 Improvements:
Tuesday evening movie: BLADE RUNNER (1982). Programming Challenge 3: Orbits ><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> We introduce some new variations to our flocking simulations. |
Programming Challenge 3: Orbits ><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> Work on course projects... Tuesday Evening Sci-Fi Film: Not required.
|
|||||||||||||||||||||||||||||||||||||||||||||
20 October |
|||||||||||||||||||||||||||||||||||||||||||||||
Final Week |
2:00 to 5:00 on Final Exam Day... No final. Course project participant presentations
|
||||||||||||||||||||||||||||||||||||||||||||||