University of Calgary
Rob Kremer
Assignment Description

CPSC 433: Artifical Intelligence
Fall 2007
Department of Computer Science
Computer
Science


Assignment Description (see also the problem description)

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 schedule for final exams for various scenarios, given a lot of constraints). This will be a team project, with teams of up to 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 at the end of the semester, but also each team will 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.

Both (paper and final system) will be graded. Information about how these grades will be weighted can be found on the main page in the assessment section.

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, it turns out that too much freedom results in a lot of difficulties for me and the TAs, when we want to install the systems for ourselves. Therefore, we are 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

  1. is written in Java,
  2. runs on one of our Windows machines in the undergrad lab,
  3. as a standalone application,
  4. will accept exactly two command line parameters which are an input filename for a file describing a problem in the predicate language and a time in milliseconds that is the limit for your program to run before outputing a solution. The program will output a solution in the predicate language in the file named exactly the same as the input filename with ".out" appended.
  5. Your program will be run in the demo with the following command line. Make absolutely sure it works with this command line:
     java -classpath myprog.jar cpsc433.ExamSchedule filename maxtime 
    where:

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.

Why requirement 4 and 5? Part of the assessment of your assignment may be a series of automatic runs of your program on various problem instances. i.e.: some other program will run your program as an exec() call, which will give your program a filename and then analyze it's output file. If your program fails to run or produce an output file, you will loose marks for that part of the assessment (which will be very significant).

Time table

There are three relevant deadlines for your work.

DeadlineTo do
Oct 18, noon Submission of your paper describing the two search models and processes to kremer@cpsc.ucalgary.ca and to your group's TA.
Dec 04-06 Presentation of your search system to me. Details on how to make the appointment for the demo will be given in class.
Dec 07, noon Submission of the source code of your search system and its documentation, together with your solution to a to-be-announced instance (TA assignments plus utility function-value), again to kremer@cpsc.ucalgary.ca and to your group's TA.

In addition, each (and every) group member is required to submit a peer evaluation report two days after each of the two group submissions.


UofC
CPSC 433: Artificial Intelligence
Department of Computer Science

Last updated 2007-09-05 11:00
Rob Kremer