Journal
| Week 1
| Week 2
| Week 3
| Week 4
| Week 5
| Week 6
| Week 7 |
| Week 8
| Week 9
| Week 10
| Week 11
| Week 12
| Week 13
| Week 14 |
| Week 15
| Week 16
| Week 17
|
Week 1 : May 9 - May 13
- I got the key to my lab, settled in, and got myself familiar with my surroundings.
- I had several meeting this week with Sheila and she gave me couple of books and some papers to read in order to get myself familiar with the AI world.
- On Tuesday I set up the website with the help of my friend because I had little knowledge of HTML
before that.
- On Friday I met Sheila’s graduate students and we talked about a paper related to planning.
- I feel like I learned so much over this week and by now I know enough HTML to maintain my website.
Week 2: May 16 - May 20
- I continued reading from a book that Sheila gave me which is called "Automated Planning" and looked over a paper that is related to planning.
- On Tuesday I attended two talks, one was on "The Spec# Programming System" which was a very interesting talk based on how to make it easier to maintain million lines of code by various ways such as adding variants, preconditions, and post conditions. The Second talk I attended was on a topic called "Toward Models of Backtracking and Dynamic Programming" which was about how to solve dynamic programming problems by turning them into decision tree problems.
- On Wednesday and Thursday I read over a paper called "Qualitative Dynamical Preferences in the Situation Calculus" which is written by Sheila's former student and my work is going to be based on it.
- Meghyn Bienvenu who has written this paper also has developed PPLAN which is a bounded best-first search planner that computes preferred plans. Her code is written in Prolog and I’m going to spend the upcoming days understanding her code.
- On Thursday in the meeting with Sheila's graduate student we went over a paper called "Game-Theoretic Agent Programming in Golog".
- On Friday I finally decided to run Meghyn’s code using
SWI Prolog instead of
XSB because I was frustrated with
XSB and also because
SWI Prolog
has a nice feature called “Spy editing” which helped me understand her code better.
However, looking at someone else's code for the whole day was somewhat frustrating to me.
Week 3: May 23 - May 27
- Monday was Victoria Day and I took the day off.
- On Tuesday I continued on looking at the code and I read a paper called “Optimistic Weight Function”.
- On Wednesday I finished looking at the Meghyn's code and prepared some questions to ask Sheila on our Thursday meeting. I have also started reading about AO* which is a classical heuristic best-first algorithm for searching OR and AND/OR graphs.
- On Thursday I attended an interesting talk which was called "Why Aesthetics Matter Now More than Ever, and What We can Do about it". You can read an abstract overview of this talk here.
- On Friday in our meeting with Sheila's graduate students we went over a paper called "Bellman goes Relational".
- At this point I think I am ready to start changing the PPlan code to take in to account the new weight formulas which would normalize the weights, all weights are going to between 0 and 1 now.
Week 4: May 30 - June 3
- On Monday and Tuesday I continued coding in prolog which was somewhat enjoyable. I also changed the old comments in order to make the code more readable for future users.
- On Wednesday I was testing my code to make sure that everything works as I expect it. In addition I ran some experiments and tried to compare the results that I get right now against the previous version of the code.
- Also on Wednesday I attended a very interesting talk called "A Prolog Implementation of IndiGolog for real Robots" given by Sebastian Sardina. He has developed a program in SWI Prolog that uses on-line planning to control a real robot which is called Revolution ERI Robot. Sebastian has also brought the robot to the talk and so I got to see a real robot for the first time. He also mentioned that the robot costs only around $1,000 which sounded less than I expected since before today I didn't even know that there exists real robots which can do actions and be useful.
- On Thursday I finished with the testing and prepared tables to show the results of the experiments I ran. And in a week or so I am going to post the code and the tables to the PPLAN website.
- On friday I read part of a paper called "LAO *: A heuristic search
algorithm
that finds solutions with loops" and in the meeting with Sheila's graduate
students we went over the first part of this papper. The paper first gave
some background information about A*, and A0* then introduced LAO* and
gave an example to show how it works. Here is a paragraph from the paper
which I think summerizes the paper in a nice way:
"One of the most widely-used frameworks for problem-solving in artificial intelligece is state-space search. A state-space search problem is defined by a set of states, a set of actions that map states to successor states, a start state, and a set of goal states. The objective is to find a sequence of actions that transforms the start state into a goal state, and also optimizes some measure of the quality of the solution. Two well-known heuristic search algorithms for stat-space search problems are A* and A0*. A* finds a solution that takes the form of a sequence of actions leading in a path from the start state to a goal state. AO* finds a solution that has a conditional stucture and takes the form of a tree, or more generally, an acyclic graph. In this paper, we generalize the heuristic search approach to find solutions with loops and show that the resulting algorithm, which we call LAO*, can solve planning problems that are formalized as MDPs."
Week 5: June 6 - June 10
- On Monday I read over a paper called "Optimistic Weight Function" which is written by Christian, one of Sheila's graduate students. In his paper he considers the case whether a preference can be optimistically satisfied or pessimistically satisfied by a plan. My next step is to implement his idea into PPlan.
- On Tuesday I started implementing the idea of having optimistic and pessimistic weight functions into PPlan again using SWI prolog.
- On Wednesday I continued coding in Prolog, and asked some questions from Christian about how I am implementing it. Right now it seems like my code is performing worse than the previous implementation, and I spend a lot of time figuring out what might be the reason for this.
- On Thursday I figure out what the problem was and I fixed it. The rest of the day I was testing my code to make sure it works correctly.
- On Friday I ran some experiments and compared the results of this new implementation with the previous two. And interestingly it does work better than the previous implementation as I expected. I was very happy to see the improvement in the results.
Week 6: June 13 - June 17
- On Monday I started thinking of how to implement quantifiers into PPLAN. I also had a meeting with Sheila and we discussed what I can do next. So right now I am going to implement quantifiers which I don't think will take more than a week and then implement the soft and hard constraint problem and then work on a "Golog" problem which was a work done by Christian.
- On Tuesday I realized that I have under estimated quantifiers. I realized that this is a hard problem because it cannot be done efficiently if I don't think about it thoroughly. So for most of the day I was reading the books Sheila gave me to get some ideas of how I should go with my implementation.
- On Wednesday after some careful consideration and readings, I realized that if I use bounded quantifiers that would make my problem somewhat easier. So I did find a way to calculate the weights of bounded quantifiers and I was happy about that. But I still need to think about how to progress them which is also a hard problem.
- On Thursday I had a meeting with Sheila and she asked me to update the PPLAN website because she is going to site it to some people who are going to be in a conference that she is going to go to. So the site has to look professional and nice. Hence, I am going to put my work on hold and spend today and tomorrow updating the PPLAN website.
- On Friday I started working on the PPLAN website, meanwhile I figured out how I might go about progressing the quantifiers. In the meeting with Sheila’s graduate students we went over a paper called “Using Component Abstraction for Automatic Generation of Macro-Actions”. In the paper they tried to reduce planning complexity by decomposing the problem into linked components. I admit the paper was very technical and I only understood some of the concepts.
- On Saturday I finally finished the PPLAN website. It’s not up yet but it will appear here. I changed the colors, fonts, the layout, and added the new versions that I was working on. I think it looks pretty good now, and I hope everyone likes it too.
Week 7: June 20 - June 24
- On Monday for most of the day I was working on how to set up an internet connection for my laptop. I am carrying my laptop to work now since its easier to work with than the computers in the lab but its internet isn't working. I have asked some people from the CSLab to help me figure out what the problem is. They said that I am not the only with that problem, and they still don't know what might be causing it. So for now they fixed it by connecting my laptop through a wire connection (not wireless anymore).
- On Tuesday I continued working on quantifiers. I made several test cases and tested them to make sure every thing is working the way I want it to work. Now it seems its all working, however, the optimized version does not work that well. And there are some test cases that run very slowly. But I may not be able to improve the efficiency of the quantifiers anymore because it all depends on how huge the domain is.
- On Wednesday I attempted to read a paper called "Contingent Planning via Heuristic Forward Search with Implicit Belief States" but the paper was very hard for me to understand and I was only able to understand a little bit of it. I also went to a talk called "Local utility elicitation in GAI models" which was also very detailed and hard to understand. But I don't have high expectation from myself since I am just starting to learn AI, and probably the talk or the paper was not intended for an undergraduate student.
- On Thursday I finished implementing quantifiers, I ran my test-cases against the dinner and travel example and made several tables in which I compared the results. Also on Thursday I had a meeting with Sheila and we discussed what I can do next. She told me to read two papers; one is called “Using temporal Logics to Express Search Control Knowledge for Planning” and the other is called “Precondition Control and the Progression Algorithm”. Tomorrow I will have another meeting with Sheila and we will discuss how I can implement “Domain Control Knowledge” into PPLAN.
- On Friday I had a meeting with Sheila and we discussed how I can implement the soft and hard constraints into our planer. Basically hard constraints are just like a goal in a sense that we have to satisfy it but it may occur before or after we have reached our goal state. The soft constraints are our preferences, we want to satisfy it as much as possible but we don’t have to if it’s not possible. Right now I have a pretty good idea of how to approach this problem, and where I need to make the changes in order to implement this.
Week 8: June 27 - July 1
- On Monday I started implementing the hard constraints but I was not able to quite figure out whether I need to satisfy the goal first or the hard constraint first or both of them at the same time. It seems reasonable and more logical if I look at the two at the same time, but it’s hard to do so having the current implementation of PPLAN. So I have asked Sheila to meet me tomorrow so we can discuss this problem in person.
- On Tuesday I had a meeting with Sheila and she suggested that it might be easier to look at the goal as a hard constraint and so we can combine the two into one big constraint in order to avoid the timing issue. After carefully thinking about this for a while, I started to implement this and I was trilled to see that it worked. I also made several test cases to make sure that the program behaves the way I want it to behave. So basically I am almost done implementing the hard and soft constraint into PPLAN.
- On Wednesday Sheila gave an hour talk about PPLAN in the department. She mentioned my name and talked about what I have done so far. After the talk there were some questions raised about the nature of what we are doing and we tried to answer them as best as we could. I was feeling happy, proud, and excited for the whole day.
- On Thursday I finished up with testing the hard constraint problem. I had a meeting with Sheila in which we discussed what I should do next. She gave me a book to read in order to familirize myself with Golog.
- Friday was Canada Day and so it was a holiday.
Week 9: July 4 - July 8
- On Monday I started reading about Golog from a book called "Knowledge in Action".
- On Tuesday I continued reading about Golog. Golog which stands for "alGOL in LOGic" is a programing language whose semantics is defined via macro-expansion into sentences of the situation calculus. Golog is used for high-level programming of robots and software agents, process control, discrete event simulation, complex database transactions, etc. The interesting thing is that Golog was first developed by University of Toronto.
- On Wednesday I had a meeting with Sheila and I asked some of my questions regarding Golog from her. She cleared up my confusions and explained some of the concepts to me.
- On Thursday I changed the implementation of Golog which was in Eclipse Prolog to SWI Prolog. I am more comfortable with reading or writing a code which is in SWI Prolog. For the rest of the day I tried to trace the execution of some queries written in Golog.
- On Friday I continued tracing out the Golog code I was working in. This helped me understand how Golog works. I think I am now much clearer on the way Golog behaves.
Week 10: July 11 - July 15
- On Monday and Tuesday I read a paper called "Abstraction and Reformulation in Artificial Intelligence". The paper was has surveyed the most common notion of abstraction currently in use in Artificial Intelligence. The goal of abstraction is to speed up a computation by elimination, shrinking, grouping, or simplifying one or more of the various elements in the problem definition. I have also done some research on Golog to find any articles or papers that is available online. I also read some more from a book called "Knowledge In Action".
- On Wednesday I went to a talk called "Compiling Quantitative
Preferences
into Decision-Theoretic Golog Programs". The talk was given by Christian
based on a paper he has written on the same topic. The one interesting
thing I found in the talk was having the idea of qualitative preferences
and quantitative preferences. He separates the two; however, he ranks
qualitative preferences higher than quantitative ones.
I have also received some Indi-Golog example codes from Sebastian who has done a lot of work in this area. For the next few days I will take a look at the code and try to understand how it behaves.
I also had a meeting with Sheila, and discussed whether it could be possible to progress Golog program just like the way we did for PPLAN. - On Thursday I read the paper, "Compiling Qualitative Preferences into
Decision-Theoretic Golog Programs". The paper was well written and it was
interesting to see how it is possible to compile BDF's into Golog
programs. I also read only the first 14 pages of another paper called
"Inductive Logic Programming: Theory and Methods". We are going to go over
these 14 pages tomorrow in the Sheila's graduate student's meeting.
In addition I continued looking at the Indi-Golog code that was given to me by Sebastian. But I am a bit confused and lost about how it works. - On Friday we went over the paper I read yesterday in our meeting with graduate students. I also continued looking at the Indi-Golog code, I think now I understand the basics of what is going on in there. I also had a short meeting with Sheila in which I asked couple of questions regarding Christian's paper.
Week 11: July 18 - July 22
- On Monday I started reading two papers regarding Golog. One is called "A Logic Programming Language for Dynamic Domains", and the other is called "ConGolog, a concurrent programming language based on the situation calculus". I also had a meeting with Sheila in which we talked about Christian's work and my future work.
- On Tuesday I had another meeting with Sheila. In the meeting we discussed what I should be implementing in the remaining weeks of my research. Christian also provided me with some of his work relating to what I will be doing. Unfortunately I am having a very hard time understanding the overall picture and more specifically what I need to exactly do.
- On Wednesday I continued looking at indi-golog code as well as the codes Christian provided me with. I am still somewhat confused and I am not yet clear on the overall picture of what I am suppose to work on.
- On Thursday I had a meeting with Sheila, after that I became clearer on the overall picture. She also suggested some papers to me to read which might help me.
- On Friday Starvas, a graduate student talked about his work which is in indi-Golog. I have found the talk interesting and useful.
Week 12: July 25 - July 29
- On Monday I started changing a few things around in the codes that Christian gave me in order to be able to run them in SWI Prolog.
- On Tuesday I was working on the indi-golog code and trying to adjust it a bit.
- On Wednesday I had a meeting with Sheila in which we discussed some important issues regarding the work.
- On Thursday I was working on updating the weights for the new pplan predicate, I also worked on updating the progression formulas in to situation calculus. I also understood something really essential: Situation calculus keeps a history of all the situations, these start as s0 witch is the initial situation. Each time we progress we add the action that just took place to the history. But now if we want to know that a fluent is true or false we need to use regression to check the value of that fluent. However, if we kept the states instead of situations, then we would know that at each state which fluents are true or false, but then we would lose the actions that just took place.
- On Friday I read three papers : "Logic-Based Agents and the Frame Problem: A case for Progression", "Interpreting Golog Programs in Flux", and "SNet: A Modeling and Simulation Environment for Agent Network based on i* and ConGolog". After reading these papers I realized the distinction between the Fluent Calculus version of Golog which uses progression and Indi-Golog which used regression.
Week 13: August 1 - August 5
- Monday was a holiday so I took a day off.
- On Tuesday I was able to get some basic plans, and I was really happy about that.
This means that the basic things work and I need to now work on these things:
- adding atomic, general preference formulae, and quantifiers.
- Adding user defined hard constraints (BDFs, or Golog programs).
- making some test cases and test the code thoroughly.
- finding a way to be able to change the initial state of the world.
- making some slides for the poster presentation which is on Aug 24.
- On Wednesday I was debugging and making sure that the basic plans actually work, because yesterday there was a case that it was not working. I also tried to add atomic and general preference formulae in to the planner.
- On Thursday I added atomic, general preference formulae and quantifiers in, I also found a way to be able to change the initial state of the world.
- On Friday I tested the code using the same test cases I have used previously, and I also made some slides for the poster presentation.
Week 14: August 8 - August 12
- On Monday I had a meeting with Sheila and we discussed my implementations in it. I also showed her my slides for the presentation and she gave me some suggestions on how to make it look better. We also talked about what I will be doing this week and here are they:
- Read about semantic web services
- Contact Christian about his readyGolog work and try to understand the key concepts behind that.
- Get the code for the progression based indi-golog and also understand that.
- On Tuesday I edited my poster slides and send them to Sheila. I also made some changes to pplan based on what we talked about on our yesterday's meetings.
- On Wednesday I tried to look at readyGolog code but I was unable to run them in Eclipse and they seemed really complicated at my frist glance at them. I also tried to get the indi-golog code from cvs but it didn't permit me to check it out. So I was unable to view those codes.
- On Thursday I had a meeting with Sheila and we discussed what kind of papers we might be writing in future.
- On Friday I tidied up my desk and prepared to get my break.
Week 15: August 15 - August 19
- I was away on vacation in this week.
Week 16: August 22 - August 26
- In this week I was implementing a new version of PPLAN were the user can ask for more plans.
Week 17: August 29 - Sept 2
- In this week I was organizing the files I have worked with this summer, writing some readme.txt files for the potential users of the PPLAN, and worked on the final report I need to submit for the work I have done.