General Info
   Non-functional Requirements

CPSC 433: Artificial Intelligence - Assignment

In general, there will be one big assignment, namely developing and implementing (and documenting) a search system for a given application (which this semester will be finding an optimal assignment of courses and labs to time slots in the week for our Department, given a lot of constraints). This will be a team project, with teams of around 5 people. As will become obvious during the course, for each application there are different search paradigms that can be used to develop a search system solving instances of the problem. Also, each paradigm leaves a lot of room for instantiations, based on the knowledge you have about the particular application.

The assignment is also intended to make you aware of different paradigms and the possibilities regarding their instantiations. Therefore I do not only expect you to produce (and demonstrate) the search system until the end of the semester, each team will also produce a paper that presents two search paradigms that can be used to solve the application problem and the instantiation of each paradigm that you want to use for your system. I will then select one of the two solutions and you will implement the selected one in your system.

More precisely, I expect you to present in the paper two different search models (using different data structures as states), describe them precisely (i.e. in a mathematical manner similar to what I use in the lectures), and present at least one sensible search control for each model to complete the definition of the search processes your search system might employ. I also expect that you demonstrate what your search processes will do by applying them to a small search instance chosen by you. In addition to formal definitions, I also expect a natural language explanation of the models, controls and processes and the reasons why you have chosen the particular models. Also, you should look for sensible additional knowledge about search instances, that you would like to be provided in order to speed-up your search processes (and then you have to describe how you will make use of this additional knowledge, if it can be provided).

Both, paper and final system will be graded. Information about how these grades will be weighted can be found on the assessment page.

It is a good idea to crosscheck with me your models, knowledge requests and so on, before you submit the paper. In fact, I would like to have a meeting with each team before the team submits the paper!

Non-functional Requirements

While I personally would like to give you as much freedom as possible, earlier years have proven that too much freedom results in a lot of difficulties for me, when I want to install the systems for myself. Therefore I decided to be rather precise regarding hardware, environment and paper submission. You can use whatever additional tools you want and you can develop on whatever machine you like, as long as the final system

  • is written in Java,
  • runs on one of our Linux machines in the undergrad lab,
  • as a standalone application.
Your paper, again, can be produced by any text processor you want to use, but I expect that you send me a pdf-file that is printable everywhere (and especially using acroread on our Suns and any ps-printer in the Department).

Time table

There are three relevant deadlines for your work.

Deadline To do
Oct. 21, noon Submission of your paper describing the two search models and processes to
Dec. 5 - Dec. 9 Presentation of your search system to me. Details on how to make the appointment for the demo will be given in class.
Dec. 9, noon Submission of the source code of your search system and its documentation, together with your solution to the Department instance (schedule plus eval-value), again to

to the timetable for the course.

Last Change: 15/8/2005