Tuesday, September 27, 2005

Microsoft Research eScience Workshop 2005

Next week (6th and 7th of October) I will attend the Microsoft Research eScience workshop 2005 in Redmond, Washington, USA. According to the workshop site "this workshop provides a unique opportunity to learn and affect what is happening in the realm of data intensive scientific computing within Microsoft. Attendees will learn first hand from early adopters using Microsoft Windows, Microsoft .NET, Microsoft SQL Server, and Web services in these problem spaces, as well as explore in-depth how modern database technologies and techniques are being applied to scientific computing. By providing a forum for scientists and researchers to share their experiences and expertise with the wider academic and research communities, this workshop will foster collaboration, facilitate the sharing of software components and techniques, and establish a vision for Microsoft Windows and .NET in data intensive scientific computing."
Because I work with all the above mencioned technologies, I'm interested in studying how I can use or extend them regarding the subject of my thesis. Specially I'm interested in research how I can develop "intelligent" web services that can be helpful in Multi-Agent Systems. Those web services should be able to do more than "connect" several different systems. They should have an "intelligent" behavior when participating in those "connections" and/or in completing any task.
I'm interested in your opinion regarding this subject. Do you have any questions that you would like to post? Do you agree or disagree with my point of view? Do you think that Web Services technology can have an important place in Muit-agent systems or do you think that we do not need them.
Please use the comments below and put all the questions and/or observations that you want. I will use them during the workshop to present this subject to the other attendess.

Friday, September 02, 2005

How to write a research paper

During my summer holidays I found a very interesting article ("So You Want to Write a Research Paper", Studyworks 2002) about this subject. This article belongs to a class subject for USA high school students. This fact by itself is amazing, especially when compared with what happens in Portuguese schools. My first contact with research papers was only during my master degree classes. How can we compete with these countries? It's impossible!
Based on this article in a free adaptation, I'm going to do a draft for a possible research paper of my thesis subject. I hope this will help me and all the readers of my blog.
The scientific method is helpful to remember when setting out to write a research paper. It's a systematic way of approaching and analyzing the natural world (or the domain of your research).
  • First, observe some aspect of the natural world or of your domain (either in nature/local or by reading about it in the library).
  • Then make a testable hypothesis to explain your observations and, based on that hypothesis, make a prediction about how future observations should appear.
  • Next, test your prediction by searching for evidence - either by performing experiments or by additional observation or literature review.
  • Finally, after interpreting the results of your testing, accept or reject your hypothesis.
Let's start by choosing the topic (or question to ask - hypothesis, if you are doing an experiment) of your research paper. That's an important choice because it should be related with the expected size (# of pages) of the paper (if you choose a vague topic, big enough for an entire book, for your 6 pages paper you will be in trouble). So, you need to do some initial research on your topic area and then choose a smaller, more concrete and easily researched idea. For example and considering my thesis domain, you could choose the following question: "Will the use of heterogeneous agents, implementing different algorithms, improve the resolution of the crew recovery problem in airline operations control?" That would be your hypothesis.
Now you need to define the prediction. Following the example, it could be: "When compared with a single algorithm approach the proposed system should be able to solve satisfactorily (i.e., according to the criteria defined by the users) all type of problems. Namely, it should be able to find solutions to problems that the single approach cannot find. Some kind of synergy should happen".
Before starting to test the prediction it might be a good idea to do some follow-up reading and research. You should start by thinking where you'll find information about your topic. Is there a book or two about the subject? Should you check scientific literature for information? Make a list of sources to check before entering the library or the Internet. Keep a list of potential sources. Then go and skim them quickly. Cross-off sources from your list that you don't think will be helpful. Keep track of the good ones for later. After this step Gathering and Organizing Information is the next phase.
Now that you have a list of good potential sources you need to read them. You have a lot of information to keep track of, and you'll need to know what facts and ideas come from that source. The best way to track information is to record bibliographic information as you go, and to take notes on each source as you read it. You might use a word processor or another mechanism to do this. Remember to record the information needed to find the source again plus the biographic information (author's name, title of the book/article, publication information) and, of course, the notes you have taken during the reading. While you take notes it is mandatory to use quotes when you copy text directly from a source and give credit to the author. If you paraphrase another author in your paper you also need to give credit to the author.
If you are writing a research paper based on an experiment, you have some additional things to consider when gathering and organizing information. That's the so called "Materials, Methods and Data" that raises the following questions:
  • What exactly did you do in order to test your hypothesis?
  • What materials did you need?
  • How did you organize the data you collected?
As you do your experiment, you should keep a list of what steps you took to perform the experiment, as well as keep track of any special equipment or materials used. Finally, you should keep the data collected well organized. For example, you should note how the raw data from the experiment were collected and what they mean. A good advice is to have a Lab Notebook (either on paper or on a computer) to keep track of these sorts of information.
After performing the experiment for testing your prediction, using all the previous advices, you need to interpret the results and accept or reject your hypothesis. This will be the conclusion of your work. As a summary:
  • Define the topic of your research. Small, concrete and related with your domain of research. If necessary do some initial research.
  • Define a testable hypothesis based on your topic.
  • Based on that hypothesis make a prediction easily testable.
  • Do some follow-up reading and research before starting to test the prediction.
  • Define a good Gathering and Organizing Information System.
  • Keep a "Lab Notebook" to help to keep the "Materials, Methods and Data".
  • Write the conclusion. Interpret the results, accept or reject the hypothesis.
Finally, with all this information, you are ready to write your paper. Research papers are written in a well structured form. Usually the paper is composed of a title, an abstract, an introduction, materials and methods, results and discussion. All of these follow one after the other without the need to start new pages for each. At the end you include your bibliographic list of sources - the list of literature cited. Here is a summary of the several sections:

Title
Should be specific enough that your reader knows immediately what kind of information will find on the paper, but not so specific that you include unnecessary information. Should be relatively short, usually not more than 70 or 100 characters. Write it in as clear and concise manner as possible, using a professional, rather than conversational tone.

Abstract
Always, always, always save writing the abstract until after you've written the rest of your paper. The abstract is an extremely concise synthesis of your entire paper - it contains the major question, or hypothesis, your basic approach to answering that question, key results and/or data, and a brief conclusion about what you discovered. Abstracts are about one-paragraph long or one-half page of double-spaced text. The abstract is what researchers scan when they find a paper they think might be interested in.

Introduction
This is your chance to explain to your reader exactly why you did the research or experiment that you did. By laying out your ideas on in a clear and orderly fashion, your reader will follow your logic and anticipate what happens throughout the rest of your paper. Be sure to include the following:
  • Observations - What did you observe that caused you to begin this study? What brought you to this area of inquiry? Start with a general observation, and then get more specific.
  • Hypothesis - Based on your observations, what is your hypothesis?.
  • Prediction - What is the prediction(s) that accompanies your hypothesis?.
  • Expected results - As you conclude your introduction, your most specific pieces of information will be your expected results. Always write what you expected to see prior to beginning your research.
The introduction might have one or two double-spaced page.

Materials and Methods
In this section you tell your reader exactly what you did to test your hypothesis, but don't write unnecessary detail. You should provide enough description for your reader to be able to repeat your experiment just as you did it, without writing every single thing that you did, especially when some steps or procedures are obvious. Remember the following when writing this section:
  • Explain how you tested your hypothesis - This is your main goal, and is best done by writing what you did so that another person could repeat your procedure.
  • Write in paragraph form - Don't make a list of procedures or equipment.
  • Write in past tense - You've done the work and it is now completed.
  • Decision making - Include a paragraph on data analysis and how you arrived at your decisions regarding your hypothesis(es). If you've used statistical tests make it clear how your statistical hypothesis relates to your experimental hypothesis. If you didn't use statistical tests, how did you arrive at decisions about the experiment you performed? Give enough information that someone could repeat what you've done. Don't explain how to do basic statistics. Do state what statistical tests you used.
The materials and methods section should be relatively short, usually no more than one, double-spaced page.

Results
Here you report the results of your experiment (or, if appropriate, your library research). The most important thing to remember in this section is that it should be strictly about your observed results, not about how you may be interpreting them (saved that for discussion). This is the only section in which you should include graphs or tables. And every graph, figure, or table you include should be referred to in the text of your results section. Remember the following:
  • First - Show actual data (usually transformed into measures of mean and variance). You'll generally do this within the text, and may also include graphs or tables as appropriate.
  • Second - Include results of any statistical tests.
  • Third - State whether your hypothesis was accepted or rejected.
  • Write in past tense - You've already found the results.
  • Tables, Graphs, and Figures - Include these only in the results section. Never include them without some explanation in your text. Organize them in the order that you are presenting the results. Always clearly and concisely label tables, figures and graphs.
  • Don't interpret the results - You'll interpret your results in the discussion section. The results section is simply a review of what you found.
Discussion
Here's your chance to interpret your results (or discuss what you found in your library research). Start with a specific conclusion about your results, and work your way out to a broader overview of what those results mean. Consider the following:
  • Conclusions - Did you accept or reject you hypothesis. What does this allow you to conclude about your questions? Is this what you expected to see, or is it very different from what you expected?
  • Interpretation - If your results were not what you expected, consider possible reasons for this. Do you need to collect more data? Did anything go wrong while you performed the experiment? Were there problems with the methods that may have made it difficult to test your hypothesis effectively? Does the whole question need to be reexamined based on your unexpected results? If your results were what you expected, what is the significance of this? How do your results fit in with what other researchers have found? Do your results and conclusions generate new questions and predictions?
  • The bigger picture - What have you, and the community who might read your paper, gained from this research? How does it fit in with what is already known about the area or topic your worked in?
Your discussion should be around two to three double-spaced pages.

Literature Cited
If you've kept track of all your references then all you have to do now is start a new page with the heading "References", alphabetize your sources and list them in the correct form. Remember to include only the sources that you actually used as you wrote your paper - the ones you cite within the text itself. An example of a correct form is the following: Author's name. Title of the book/article. Publication information. Example:
Gibaldi, J. MLA Handbook for writers of Research Papers. 4th ed. New York, NY. The Modern Language Society of America, 1995.

I hope this will be helpful to you. If you have any comments, please feel free to use the option comments at the end of this post, to write your comments and/or suggestions.

Thursday, September 01, 2005

How to deal with a multi-user and relational database environment

Most of the papers I have read, even the ones from OR, related with Crew Recovery or Crew Scheduling problems among others, present the solution having the data represented in a matrix and/or vectors. Unfortunately, most of the environments that exist in the airline companies have the data in relational databases and use multi-user systems. To apply those solutions we need to transfer the data to the proposed representation, apply the algorithm and, then, put the data back in the relational database (supposing that we have enough hardware to support all the information in memory). This seems feasible but what happens if someone or some system changes any of the data used for finding the solution, during the time the algorithm is working? To not allow any change during the time the algorithm is working is not feasible. We have to use algorithms that will be able to be applied to relational databases and, when applying the solutions, we need to check if everything is as before.
Any ideas on how to approach this problem? Please feel free to drop any comments/suggestions using the comments options at the end of this post. Thank you.