SunnySingh's blog

Cockroach Behavior

Projects: 
I found an article on Slashdot today about the decision making patterns used by cockroaches. It echoes many of the same ideas in the book I read for my project (Emergence, by Steven Johnson). It's a very short article and it demonstrates how cockroach/ant/etc colonies can function without a centralized authority dictating the behavior of the group.

Virtual Cell Biology

Projects: 
A friend of mine sent me an interesting link to an article about a new company's mission to enter the market of 'biotech' pets. GeneDupe consists of a team of biologists and computer scientists who have created a virtual cell that represents the real thing right down to the mitochondria, Golgi bodies, etc. They then 'load' the genome of a particular species, which turns into a fertilized egg and ultimately grows into an adult. To make matters interesting, it seems as though GeneDupe also employs image recognition/processing. The software is able to take a picture of a mythical creature (ie centaur, dragon, griffin, or what have you) and it finds genomes of similar animals, splices the genes together, allows mutation, and then lets evolution take control.

Question about using neural networks...

Projects: 
In my final project, I want to take several cryptosystems/encryption algorithms and see if it's possible for a neural network to recognize the pattern. If all goes to plan, my dataset will consist of a ciphertext and it's plaintext equivalent; this is what I'd like to train my network with. I'll test simple substitution/transposition ciphers and maybe even ones that rely on the factoring of large primes (ie RSA); however, I highly doubt the network will be able to 'crack' the latter. If time permits, I may also explore the idea of training two networks on one another in an attempt to create an encryption/decryption system. Anyway, I'm running into a problem when I try to set the inputs and outputs for the neural network.

The Thinking Machine 4

Projects: 
I know this class is about emergence, but since we're frequently dabbling in the area of artificial intelligence, I feel like I can't pass up the opportunity to post this. I came across this site last year and recently rediscovered it today. It's an interesting chess-playing AI applet called the Thinking Machine 4. When it's the computer's move, it searches the board for the best move; what makes this interesting is that while the computer is "deciding" it's move, it actually maps the possible moves and counter-moves with colored lines. It reminded me of the idea of how an agent should determine how its actions change the world around it--which is something we discussed in Intro to AI. As the gameplay progresses, it's evident that the program makes more specific moves. I don't know if I would quantify this as intelligence though. Could it be that the search tree the program is traversing is becoming smaller? The method by which a typical AI program uses to quantify a 'good' move doesn't usually change during a game--to my knowledge at least. With that said, it's hard for me to say if the moves are becoming 'intelligent' or if the 'good' moves are just a product of the current state of the board. On a more technical note, the programmers used something the quiescence search method in conjunction with alpha-beta pruning in order to cut down on the size of the search tree. It's pretty neat, so check it out. Enjoy!

Mathematics is the language of nature

Projects: 
I should preface this post with some warnings. First and foremost, it’ll probably be rather verbose. Second, I anticipate catching much flak for this; I have discussed these opinions with many others in the past and have always received strange looks. Finally, it's 2:30 am and though this is all clear in my head, it may come out as pure incoherent blabber. Last night I watched the movie Pi for probably the 108th time. Yeah, I know it’s just a Hollywood movie sprinkled with inaccuracies…but my love for math, physics, and computer science was born when I saw this movie. It opened up my mind to ideas I would never have fathomed in my wildest dreams. There are redeeming qualities in this movie-—many of which are related to our study of emergence. For those who have not seen it, I highly recommend doing so. Keep in mind that it IS a movie and not completely factual. Anyway, I’d like to post and comment on some of the more illuminating quotes/scenes which pertain to emergence.

X11 on Windows with PuTTY

Projects: 
I'd like to thank Peter for figuring this out. For anyone on a Windows machine who is trying to SSH into the cluster and wants to use X11 port forwarding, you'll need to install Xming. It's a port for the X Window System which can run on Windows machines and it doesn't depend on Cygwin. After you install Xming and run it, a black 'X' should appear in your taskbar tray. Open up PuTTY, navigate to Connection>SSH>X11 on the left and check 'Enable X11 Forwarding'. And voila! Now the pretty CA pictures will appear in a pop-up window when you execute your code.

It's everywhere

Projects: 
As someone who is interested in math, physics, and computer science, I often come across very intriguing topics that, at first glance, appear completely irrelevant to one another. It was just last year when I learned about the idea of emergence and was finally able to see an underlying correlation between the topics. For example, things like the game Go, fractal geometry, and even genetic algorithms can all be studied from an emergent point of view. Each of these is an example of exceedingly complex patterns/systems which are created from a simple set of rules over a period of time/epochs. If we consider a typical game of Go, the arrangement of the stones can seem chaotic and random. However, the end game-state is achieved by playing the game and observing the simple set of rules. With fractals, complex patterns at the large scale are formed by repeated use of geometric patterns at the smaller scale. In computer science, genetic algorithms were born from the study of cellular automaton (i.e. Conway's Game of Life). Genetic algorithms are used for search/optimization problems. By mimicking biological evolution, algorithms are mutated, combined, and evolved over a period of time until the most 'fit' algorithm is attained. Such techniques have been used by companies to create algorithms which predict stock prices. Pretty neat.