Bryn Mawr College
CS 372: Artificial Intelligence
Fall 2000
Written Work: Week#10 (November 7&9)

Sharon Rose Alterman

The lectures this week were mostly a review for me because I took Math Logic with Prof. Weaver last semester. It was interesting to see directly how the robot could use the propositional calculus. However, when I read the chapter I was somewhat confused by some of the material at the end of chapter 14, especially about "horn classes." I hope that we will go over these in class because they look useful, but I don't understand how they work.

The robotics demonstration was very interesting. I was frustrated at the quirkiness of our robot's behavior, but I think that part of that may have been a mechanical problem. It was interesting to me though to see the emergent behaviors that were exhibited by the various robots. I heard many of my classmates over the course of the weeks say, "why is it doing that?" or the ever popular "what is my robot doing?" That just brings home the point that even in simple projects like our robots, "intelligence" (or perhaps stupidity) can be observed even by someone who programmed it and therefore is supposed to know what it is doing and why it is doing it.


Rohit Apte

We presented our robot labs today and I was impressed by quite a few demos. However, I have a question regarding the way some robots were implemented ­ they would turn by a random amount when they hit a wall. We saw one case where the robot turned away from an obstacle and hit another, turned back to hit the first one and did this for a while. How reliable would something implemented with a randomness like this be? Would one feel confident sending it to Mars on a multimillion-dollar mission?

I also enjoyed the study of prepositional calculus. I would, at some point like to create a simple universe of atoms, connectives and some well-formed formulae through which we could derive others. This could lead to interesting ideas like when is this complete? Under what conditions do we have a situation where we cannot prove certain well-formed formulae based on others that we know are true?


Durell Bouchard

This weeks lectures and reading were a little dry, therefore my reaction this week is to the final robotics lab. The one thing that I most took away from the robot lab, was an appreciation for robots in the real world. For example this weekend I was watching Star Wars, and inside the Death Star there are these tiny little robots that look like remote controlled cars running around the hallways. I don't know what they are meant to do on the Death Star (or if any body does for that matter), but what I noticed this time was that nobody else on the Death Star seemed to care either. All the storm troopers were just ignoring the little robots letting them go about their task. This suggests that the robots are so reliable that they can be ignored. After building a robot for this class I have an understanding of how difficult it is to get one to work in the real world, and to get one to work in the real world for some task without fail, seems nearly impossible.


Brianne Brown

 


Dan Crown

Our final robot lab was a good conclusion to the robtics section of the course. I think what we saw was representative of the field of AI in general. All eight groups had the same assignment, but when we got to the lab, there were eight very distinct physical designs. There were the speedy, large-wheeled variety, the compact, sturdy variety, and the show-offy, sleek variety. How could all of these robots complete the same assignment successfully? What happened when we actually began running the trials was an even bigger surprise. Though each robot's basic plan was the same, do something until you see the light, then move towards it, none of the robots had the same way of implementing it. Some moved in a random straight direction until they hit a wall, in which case they turned away from it and continued moving straight. Some turned in an outward spiral until the encounter some obstacle, then found their way around it. Still others systematically followed a wall until a path was cleared to the light. And though all these designs seem drastically different, all succeeded in reaching the light in the end. I believe much of AI can be summed up in this way. There are many solutions to any given problem. Some may turn out to be better than others, but there will always be something better on the horizon.

The most interesting part of lab I will only mention in passing. Towards the end of the session, two robots were put in the maze near the same point. One of them was clearly outmatched by the other in speed. However, when they were turned on, the difference in their programming led them to approach the light in the same amount of time. Even more remarkable was the fact that the robots followed an alomst identical path to the light after separating themselves after an initial collision.


Renee Findley

 


Scott Goldstein

This weeks readings and class topics were, for me, a review of a class I took 2 years ago. I appreciate the logic, and I found it fairly simple to understand as soon as the symbols were put forth. I am not sure how this would be implemented; I don't believe that I personally could do it. It reminds me of the talk by that professor from Buffalo. It was not all that hard to understand.

The lab was interesting. I was not expecting the robot to act that picky about the reflection of the light. Unfortunately, it did. I think it was a good experience in designing a robot and I go a lot out of creating the subsumption architecture.


Maria Hristova

The most important points that were made in this week's reading are the difference between reasoning and projecting and the definition of language that is used in logic. The first two points involve the distinguishing between inferring about one's present state as opposed to computing one's future state as a result of present actions. I think that this is an
important difference that connects the kinds of agents that we have studied with the search techniques that they use and the form that they express their decisions in. The third important point in the reading was the definition of language given by Nilsson. The elements of language that he distinguishes are atoms and connectives which produce a finite number of wffs which can be used along with the rules of inference and the given semantics to form a full logic. The finite number of wffs limits the number of rules of inference which forces the logic system to be organized on a simple level and also limits the possible interpretations of the world as a finite number.


Agata Jose-Ivanina

 


Archana Joshee

I am not sure if I clearly understand the difference between a rule of inference being sound and being complete. I know that soundness has to do with something like: if there is a proof for deriving w from a set of wffs then w is true for all interpretations for which all wffs in the set are true. And vice versa for completeness: that whenever w is true under all interpretations then there exists a proof.

My problem is that I cannot come up with concrete examples of something being sound but not complete and vice versa. It seems to me that if there exists a proof that w can be deduced from a set of wffs using certain rules of inference, then w has to be true under all interpretations for which all wffs in that set are true. I think I am missing an important point somewhere.


Kip Lewis

I don't have a whole lot of reactions regarding the material covered in class this week, which was all about logic. It was somewhat interesting to consider a robot reasoning about it's environment, using rules of inference that were either fed to it by the programmer or that were created from other rules of inference that it was given. What would be especially interesting to me is to give a logic program the basic mathematical axioms, and then to watch it construct all of math as it builds rule of inference upon rule of inference.

The lab was intriguing this week. It became clear that you can never trust what works in theory - you must always test it out in and see if it works in practice as well. The infrared sensors not working were a good example of this. What I really found interesting was how it was possible to tweak a program so that it works very well in a certain environment, but if you change the environment a little, the agent can work below acceptable standards. It seems like it would be very difficult to program an agent that would do it's job well in any environment.


Creence Lin

It was good to actually go over logic, as I think it is very applicable to philosophy. I never knew before that the horseshoe thing meant "implies." I had heard that it was modus ponens before, but when I came to it I never knew how to pronounce it. I always thought that the horse shoe meant the opposite of "subset." It probably does, but "implies" is an easier way to think about it. I would always hear all these terms like "modus tollens" etc. and see the wffs but never have the slightest idea what anything meant before this formal introduction. It is interseting that the rules of inference are defined prior to semantics. Our book says, "A rule of inference typically has the form: gamma can be inferred from alpha." It seems like you don't have anything to infer from because prior to semantics you don't have meaning. Nilsson says that at first the connectives are meaningless symbols and will later be given meanings related to their names, but itlooks like the connectives already have some meaning. Otherwise how would you know some of the basic rules of inference?


Martin Lukac

 


Reshma Menghani

 


Todd Miller

I couldn't attend class on Tuesday, so I can only respond to the Thursday lecture. I'd already taken everything presented on Thursday and in the book, but I was particularly impressed by the explanation of the symbols |= ('entailment') and |- ('proves'); much better than when I had first seen it. Nothing particularly interesting going on here, except to note that the goal of formal logic (a complete and sound system) is to transform semantic 'understanding' into syntactic manipulation, and this is one place where 'is the computer /really/ 'thinking''-type questions are answered: are you /really/ thinking when you're producing a (say, geometric) proof?


Maria Pace

 


Heather Palmeter

First off, I think the end of the robot labs should get some sort of mention. All in all, it went very well. Everyone seemed to have met with success and nobody felt the need immediately destroy the robots upon completing the demonstration. These all seem to be signs that the robot lab section of the course was a success.

Next, onto the game playing assignment. We spent much time discussing the searching algorithm to be used and we even spent time discussing it's implementation so I feel quite prepared to put that into practice. Expanding the tree is something that we didn't discuss much so I find that I am focusing on that as one of the problems to be solved in the creation of the algorithm. (Of course, there's also the test of trying to remember all of the C++ libraries from Data Structures, but we won't mention that one.)

Finally, onto logic. Many new definitions always makes for a confusing first discussion but after I got a handle on the various meanings I found that things made sense. It seems that the terms carry over into the next couple of lectures so that bit of confusion during that first lecture shouldn't repeat itself. As a random point of interest, I have begun to keep track of the number of classes in which DeMorgan's Laws pop up. One of the finest investments I ever made in my continued education was learning those. They truly are everywhere. I'm thinking about taking an Art History course next semester, just to see if they pop up.


Megan Rutter

Last week's lab was really interesting because we got to see many different algorithms for solving the same problem. In previous labs we all had pretty much the same thing, so it was great to see the different thought processes going into solving the same assignment. I found it especially interesting that some groups used a wall follower or incorporated a whisker into their algorithms. I also thought that the wheel on the side of the robot was a really clever way to help guide the robot around corners. Did anyone actually use the jam solver? I got the impression that most groups had their robot back up and turn around a random amount once it had bumped.

This week's class material was somewhat a review from Discrete, so I found it easy to follow, but a little confusing at the same time. Some of the material was new (like definitions of sound and complete) but it all seemed familiar. I had always approached the material as boolean functions and truth tables, not from a logic point of view. "Logic" felt like a really confusing and unnecessarily complicated was to explain truth tables and boolean expressions. I had worked
with atoms, literals, connectives, etc., I just hadn't heard them called as such. I was a little thrown off by the way to write the definition of a proof with the delta, |---R,Wn. It was hard to keep up with, but it made sense when I looked back over my notes. The whole approach to the material was just very different to any way I had studies it before. Now that I look back at satisfiability, vailidity, and entailment, I realize, hey, I've studies this before, it was just presentedin a different manner. Then I heard someone say that it was like an entire semester of Logic in one lecture. And I was really shocked. How could a professor spend an entire semester doing what we did in that one lecture?


Brian Simms

 


Matthew Spigleman

This week marked the completion of the robot laboratory. The task we were assigned was the most complicated to date and it served to draw out many of the difficulties of producing agents to work in real worlds, rather than simulations. The agent we finally emerged with after the development phase was very different from what we had originally planned. Changes included both those to the physical structure of the robot and reengineering of the code.
Originally we anticipated using infrared sensors, these had worked great for the forward/backward exercise and we where even able to program wall following using them. However as we made the world which we expected the robot to function in more complex we noticed their down falls, i.e. they were confused by the heat of the light. This example highlights one benefit of testing in "real world" situations, the limitations of your design are brought to light.
The other side to our experience with moving our agent into a more realistic situation was that we witnessed emergent behavior. We had anticipated that our robot would have to negotiate hitting walls with its back bumper. However when we actually placed it in the maze and let it run its course this option was never used. This was due to the design of the maze and would not have been true for a world with tighter spaces. With that said it is still cool that if we were forced to we could have pared down our program due to the experience we gained from testing in the real environment.


Andreas Voellmy

The robot labs this week were very interesting. It was great fun to see everyone's robots and their unique personalities. I've gotten pretty attached to Marvin and i couldn't give him up just yet.

When i showed my robot to other people outside of lab, i realized just how limited the robot's abilities are. Working with him in the lab, he became quite specialized to the conditions of the lab table and the lab maze. When i put him down in the dorms, he would crawl up bassboards and get stuck. turning around corners became super difficult on carpet, where he couldn't slide around obstacles. Marvin got stuck often, and whereas the smooth table offered him a chance to jimmy around and escape, the carpet left no such escapes. so even though we've managed to do a great deal with these robots, it seems another huge jump to build a robot that works in varied conditions.

Also, it seems that no single algorithm could solve all possible mazes in general. Both the wall-following robots and the random turn robots have their disadvantages. One way to solve any maze would be to build in a mapping feature, so that the robot can build a comprehensive picture of the maze. Another approach would be to periodically switch behaviors, just as a human might when one technique is not yielding appropriate results.


Nicholas Yee


Back to CS 372 Course Materials | Back to Written Work Main Page