University of Calgary
Rob Kremer
Assignment Description

CPSC 433: Artifical Intelligence
Fall 2013
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 the TA Assignment Problem for various scenarios, given a lot of constraints). This will be a team project, with teams of up to 4 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 domain.

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.

DELIVERABLE 1: PAPER: 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.

DELIVERABLE 2: I/O DEMO: To keep people on track, and avoid some of the time-management problems I have seen in the past, there is an additional deliverable between the paper and the submission of the final assignment: an input/output demonstration. This involves reading in one or more test files, and outputting the read-in data together with a line describing whether the input meets the hard constraints. You will get a small bonus mark for outputting an evaluation of the utility function as well (as long as your answer is close to mine). You will also hand in your source code at this point. 

DELIVERABLE 3: FINAL DEMO: Near the end of term, you will demo your system to me. This is similar the the I/O demo in that my program will run your problem multiple times with different inputs, but your program will output a solution to the problem (not the input data).  My program will evaluate your solution and save the results.  After the demo, you will turn in your source code, and a short note describing and explaining any divergence your implementation exhibited relative to your description in deliverable 1.  You can including any addition information in this note that might positively influence your mark. 

All three (paper, input/output demo, 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 representation 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 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. That is, if the input file is "xyz.in", our output file will be "xyz.in.out".
  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 taAllocation.TAallocation 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 (and especially using Acrobat reader and any ps-printer in the Department -- avoid using MSWord as it produces very poor PDF files).

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 five relevant deadlines for your work.

Deadline To do
Oct 7-11 Leadup to DELIVERABLE 1: Meet with the instructor to discuss the paper.
Oct 22, noon DELIVERABLE 1: Submission of your paper describing the two search models and processes to kremer@cpsc.ucalgary.ca.
Nov 4-8 DELIVERABLE 2: Input/output demonstration and hand in source code.
Nov 28 -Dec 4 DELIVERABLE 3: Presentation of your search system to me. Details on how to make the appointment for the demo will be given in class.
Dec 5, noon DELIVERABLE 3: Submission of the source code of your search system and its documentation, together with your short note about difference between deliverable 1 and deliverable 3, again to kremer@cpsc.ucalgary.ca.

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 2013-01-08 23:32
Rob Kremer