UserPreferences

Week11 (Due 11/15)


CS 372 (Artificial Intelligence) Fall 2004

Week11 (Due 11/15) Reactions & Thoughts

Ioana Butoi

When people read the following two sentences: “Beagles are dogs. Snoopy is a beagle.”, they automatically know that beagles and dogs are both classes and that Snoopy is just a particular dog. This might not be necessarily because all of the people that read it know what beagles are, but they can deduct from the context and the sentence structure that beagles are a class of dogs. I wonder if a computer could be built to be able to distinguish between classes and object not only based on its previous knowledge, but also on other facts like context and sentence structure. These are very subtle problems that sometimes we overlook since they come so natural to us, but when we have to create a logic language that has to deal with them it is not a trivial thing. Since the human mind makes associations in strange ways logic is not a good model for this purpose. I wander if a somewhat close model to the human mind can be build using computers, since computers by default are logical.

Andrew Cantino

I have my konane game working somewhat. The game engine is implemented, and the AI can randomly pick valid moves, including multiple jumps. As I said last week, I'm really enjoying Python. I like the object oriented design, and I've been able to overload my objects (Board, Move, and Position) string output and comparison methods to make use easy:
b = Board(8) 
print b
I haven't been able to make multiple constructors, though, or multiply overload methods, both of which would be very useful. Is this possible in Python? I couldn't find anything about it online.

This [WWW]climbing robot ([WWW]image) that recently won a competition in Madrid is very cool. It sticks to the wall with a special fan-type device. Graduate and undergraduate students at Duke worked on it. Cool.

Audrey Flattes

I understanding the logic that we are learning fairly well, I think that is because the way the we are going over it is very simple, which is great. I'm a little worried though that it will become alot more complex when we actually go to implement it. I think another thing that sticks out for me is the whole converting wffs to clauses, I keep trying to remember how ever thing fits together. I think it interesting becauseu when do the logic examples on the bored like "Mortal are Humans", "Socrates is a Human", thus he is motral. It is such common sense to us that when I think of kind of teaching a program to act the same way I don't know how I would do it. I think what I really like though is that is makes me stop and think about the way the we as people think, I don't know how we do it!(not saying that is some tremendous feat for us, but I think it still really interesting, that something we take for granted as coming so easily to us it alot more complex than we think) As far as Konane goes I'm definitely getting what I feel like is up close and personal with python. Having broken things down into different parts I am coming along by working on each piece at a time.

Christina Florio

I feel that I have a pretty good grasp on this material, the logic, propositional, and predicate calculus, although I would still like to see it all applied to some program. However, the example in chapter 15 is interesting and helps me see a lot of the connections between programming and logic and calculus. A lot of the logic that we use, such as the negations and resolving of statements, I've done in a different form in Computer Organization. Even though these statements represented circuits, it does reassure me that what we are doing now can be implemented. Also, as I am reading the book, I find it hard to follow at times, it seems like its going in circles.

Kathleen Maffei

I see how logic tools like First Order Predicate Calculus help satisfy a large part of what most people would call artificial intelligence. Having the mathematics to manipulate information and extrapolate is having the ability to reason. Although it cannot make the presumptions that human minds can, a logic-based system can perform analysis. Moreover, the ability to reason and produce new facts about the world means that the system learns.

Looking over the definitions of artificial intelligence from our first week of class, it appears that this fulfills one half of the definition spectrum: pragmatic / rational AI systems. Considering a first order predicate calculus knowledge base with an input and output interface (to communicate with humans in English, perhaps?), the system, if given a number of related facts, could calculate a number of new facts on its own and act on those facts. It seems as though this fits the definition of “systems that think rationally” as well as “systems that act rationally.”

Sara McCullough

I really liked the program we looked at in class last thursday. I feel like the logical way the program learned or was able to deduct information was a very interesting model of artificial intelligence. I still can't really imagine a use for logic languages in any of the other topics we've covered, like games or working with robots, but I really liked the way that the program in class worked. I think it makes for a very interesting comparison to our own intelligence. In artificial intelligence, it seems that the foundation of knowledge and reason is logic, purely logic. Human intelligence however, is based on emotions and value judgements, least of all logic. It just seems that when considering logic as artificial intelligence, there is a very clear line separating artificial intelligence and human intelligence. Throughout this course I have thought a lot about whether or not artificial intelligence can ever be comparable to our intelligence. The program we watched just made it clear to me that it cannot. Human intelligence is based on empirical science and subjective values, which are beyond the limits of machinery.

Ben Root

I feel the same pride that Dr. Frankenstein must have felt when his monster first beat him in Konane. But seriously, my AI did just whoop me and it felt really good! I am getting excited for the tournament, it seems like it will be really fun. Despite the fact that the computer seemed to play a lot better than me, it wasn’t really able to beat me EARLY, which is possible in a game like chess. Often times, it wil get me on the ropes, with only 2 or so moves and a difference between computer’s number of moves and human’s moves of 14 but it cannot finish me off in the middle game.

I wonder if there are any ways to finish off a player early. I am going to experiment on working With the computer to finish myself off, and I will try to make moves which leave me with fewer possible moves. I want to see if the computer can cause a win early, because I’m tired of typing in coordinates of moves!

Since everyone is probably programming a lot I just wanted to mention an awesome publicly licensed software package I just found out about. It’s called [WWW]Cygwin and basically it allows you to run an X-server on your windows computer by double-clicking. You can then open up an ssh terminal with the –Y or –X command to one of the robot-lab linux computers and then when you run the emacs command it will actually display an X-Window of emacs on your home computer with syntax highlighting,etc. If you install it, make sure that you select the x-startup-scripts package for installation in addition to the base package. If it isn’t selected you won’t be able to actually type “startx” to run the server…

Sandeep Singh

I’ve been working on my program as much as possible and I know I’m gonna be spending a lot of time fine tuning it. Since the exam has been changed to a take home, I’m definitely gonna be spending a lot of time finishing it, testing it and collecting data. For my final project, I want to do something that involves clustering. Very vague, I know…but Deepak had suggested running Konane on the Linux cluster at Bryn Mawr to see if there are any improvements on gameplay when the task is distributed among a cluster of processors. This sounds like a pretty good idea and I think I’ll end going through with it.

Some of the sections of the reading confused me…but I think I’ll understand it better after the lecture and after I go through it again. While on the same topic, the SNePSLog demo from last week was really interesting...and to think that it has over 1 million lines of code is mind boggling. The demo made me think, though. The program receives information that it adds to its knowledge base, much like a human does. Using the techniques we have recently studied, it was able to produce ‘answers’ when questions were asked. Dictionary.com defines ‘reasoning’ as: the capacity for logical, rational and analytic thought; intelligence. All things considered, it does seems as though the computer reasons with what it ‘knows’ in order to produce an answer. By definition, this should be intelligence…right?

Darby Thompson

I kind of got lost in chapters 15 through 17, it seems so repetitive. It made much more sense to me in class! I think I have a grasp of the ideas, however I am not sure if I am prepared to answer any question on predicate calculus or propositional calculus! I will definitely need some practice between now and thursday. I did however enjoy observing the logic program - that was very cool.

I am happy with my current version of Konane, except that it only chooses moves randomly! Now comes the difficult part... implementing MINIMAX and the alpha beta pruning along with the evaluation function. I am curious to see the outcome of our tournament next week, and to see what other evaluation functions everyone else has come up with. For my final project I have chosen to extend the Konane program. I will collect data from playing the game many times, design and train a neural network to produce the evaluation of a given board, then merge the neural network into my current game of Konane so that it uses network to choose which move to play next. Perhaps the neural network will abstract more from the board than my static evaluation function, and will therefore out-perform my original program. On the other hand, if trained on insufficient data, the network could perform terribly!