Some weeks ago I finished Consilience, by EO Wilson.
The book is grandly ambitious, informative, critical and didactic. And while few people would agree with everything that Wilson says, fewer still could claim that they are not better off for having read the book.
First we are given sweeping overviews of the major disciplines of knowledge; a report of the condition, progress, and challenges of each discipline. This is then placed into a broad context, like approximate positioning of pieces at the start of a jigsaw puzzle. Finally, Wilson examines the gaps between these islands of human knowledge and argues that the greatest potential now lies there, in these gaps.
Part of the “Today I read” series.
Today I read this paper:
“Language Generation for Conversational Agent by Evolution of Plan Trees with Genetic Programming” by Sungsoo Lim and Sung-Bae Cho. Link.
Anya was able to get this paper for me from NYU resources. It was a quick read. I had hoped for something that could apply to the Pablo project, but that was not to be.
The paper uses a population of (initially simple) sentences and joining operators to form new (initially more complex) sentences. They generated 20 sentences (population size), humans rated each on their quality (fitness score), and then used the fittest of these sentences to contribute to the next generation. 90 generations later, they ended up with sentences approximately 60% more fit than the first generation.
Ten human subjects were used to rate sentences (at least 10,800 of them) and I’m curious about the inevitable problems with that. For example, the authors mention that there was a statistically visible bias in ratings which wasn’t compensated for.
Since Pablo is web-based and public, it would be easy to implement a rating system for this kind of algorithm. However, there are a lot of associated problems that suggest this would be a difficult idea, with questionable results.
Two more comments. The researchers wrote the joining operators and performed the work in the Korean language, which made some of the details of their work less interesting for me to read. Also, Pablo attempts to generate sentences from words, not sentences from sentences.
Surprisingly little evolutionarily informed research has been done on our species’ strange love affair with sports. Why do we care so much about such arbitrary and ostensibly functionless displays of physical and mental prowess? Although data derived directly from evolutionary hypotheses are scant, theories abound. In a recent issue of Perspectives in Biology and Medicine , for example, Andreas de Block and Siegfried Dewitte from the University of Leuven in Belgium seek to explain why our obsession with competitive athletics is such a predictable expression of human nature.
Some sports seem to get people more easily riled up than others. According to de Blocke and Dewitte, the most popular sports in a given culture are those that possess three characteristics of “signaling value.” First, for a sport to really catch on in a society, it must be informative . Sports that allow athletes to clearly showcase their most evolutionarily important attributes—strength, intelligence, endurance, speed and litheness, for example—attract the biggest following. This may be why, say, geriatric lawn bowling remains in relative obscurity compared to other sports.
Ants change the size of their feet to help them lift
An amazing image of an ant lifting 100 times its body weight has won first prize in a science photography contest.
The image shows an Asian weaver ant hanging upside down on a glass-like surface and holding a 500mg (0.02oz) weight in its jaws.
It was taken by zoology specialist Dr Thomas Endlein of Cambridge University as he researched insects’ sticky feet.
Dr Endlein won £700 in photographic vouchers from the Biotechnology and Biological Sciences Research Council.
The research shows how ants change the size and shape of the pads on their feet to enable them to carry heavier loads.
He hopes it could help scientists develop better glues.
“The pads on ants’ feet are self-cleaning and can stick to almost any type of surface,” he said.
“No man-made glue or adhesive system can match this. Understanding how animals can control their adhesive systems should help us come up with clever adhesives in the future.”
Can you place three white queens and five black queens on a 5×5 chessboard so that no queen of one color attacks a queen of the other? The solution is unique, except rotations and reflections.
It took me longer than I first expected to solve this problem. The solution is:
A queen attacks along rank, file, and diagonal, leaving triangles between them un-attacked. The square corresponding to one knight’s move corresponds to the closest vertex of each triangle. While that is immediately obvious to anyone familiar with chess, I was able to solve the problem by thinking about placing white queens in such a way as to allow the largest triangles. Before searching for a solution in that manner, I tried other methods unsuccessfully: hit-and-miss attempts (having at first underestimated the problem); placing queens at knight-moves as one might do for the classic eight-queen problem (see below); utilizing symmetry by placing queens at, say, each corner and at the center; and so on.
So how would a computer solve the problem? Well, a wikipedia article suggests, among other methods, a genetic algorithm, which struck my fancy. So I started writing one.
After the skeleton of the algorithm was written and I started tinkering with parameters and the fitness function, I realized this problem would make a great introduction to genetic algorithms and also provide a simple platform for various discussions about the nuances of GAs. I hope to write about that later, especially if there’s interest.
The following passage caught my eye when I read Richard Dawkin’s “Selfish Genes and Selfish Memes” (1976).
Computers do not yet play chess as well as human grand masters, but they have reached the standard of a good amateur. More strictly, one should say programs have reached the standard of a good amateur, for a chess-playing program is not fussy which physical computer it uses to act out its skills. Now, what is the role of the human programmer? First, he is definitely not manipulating the computer from moment to moment, like a puppeteer pulling strings. That would be just cheating. He writes the program, puts it in the computer, and then the computer is on its own: there is no further human intervention, except for the opponent typing in his moves. Does the programmer perhaps anticipate all possible chess positions and provide the computer with a long list of good moves, one for each possible contingency? Most certainly not, because the number of possible positions in chess is so great that the world would come to an end before the list had been completed. For the same reason, the computer cannot possibly be programmed to try out ‘in its head’ all possible moves, and all possible follow-ups, until it finds a winning strategy. There are more possible games of chess than there are atoms in the galaxy. So much for the trivial nonsolutions to the problem of programming a computer to play chess. It is in fact an exceedingly difficult problem, and it is hardly surprising that the best programs have still not achieved grand master status.
The programmer’s actual role is rather more like that of a father teaching his son to play chess. He tells the computer the basic moves of the game, not separately for every possible starting position, but in terms of more economically expressed rules. He does not literally say in plain English ‘bishops move in a diagonal’, but he does say something mathematically equivalent, such as, though more briefly: ‘New coordinates of bishop are obtained from old coordinates, by adding the same constant, though not necessarily with the same sign, to both old x coordinate and old y coordinate’. Then he might program in some ‘advice’, written in the same sort of mathematical or logical language, but amounting in human terms to hints such as ‘don’t leave your king unguarded’, or useful tricks such as ‘forking’ with the knight. The details are intriguing, but they would take
us too far afield. The important point is this: When it is actually playing, the computer is on its own and can expect no help from its master. All the programmer can do is to set the computer up beforehand in the best way possible, with a proper balance between lists of specific knowledge and hints about strategies and techniques.
The genes too control the behavior of their survival machines, not directly with their fingers on puppet strings, but indirectly like the computer programmer. All they can do is to set it up beforehand; then the survival machine is on its own, and the genes can only sit passively inside.
In the last paragraph, Dawkins is closing out his analogy between genes and computer programs.