CSci 4511 - Homework 1

Homework 1 -- due Wednesday February 5

This homework will be graded out of 100 points. It will count 5% of the grade.
Submit the assignment electronically using canvas. The written part has to be uploaded as a .pdf file. Please do not submit word files!
For the programming part you will need to upload the code you wrote and the output produced.

Written questions

  1. [15 points] Answer the following questions briefly but precisely:
  2. [25 points] You are given a simple scheduling problem. You have a group of M people and a set of N tasks, each with a duration. Assume that N > M. You want to assign tasks to people so that the time when the last task is completed is minimized.
    Formulate the problem using a state-space search representation. Describe (precisely):
    1. how you would represent the states (i.e., what information needs to be included in any state to make sure the state describes all the information you need to apply the actions);
    2. what is the initial state;
    3. what goal test you would use;
    4. wjat are the actions;
    5. what cost function you would use;
    6. is the state-space a tree or a graph?
  3. [20 points] You are given an instance of the traveling salesperson problem (TSP). A salesperson has to visit a group of cities, visiting each only once and getting back to the starting city. Assume each city is directly connected to each other city. The objective is to minimize the total distance traveled.
  4. [20 points] This question is on properties of search algorithms. Consider the following algorithms: You need to explain the reasons for your answers, not simply write the name of one algorithm.
    1. if you want to limit the memory requirements, which algorithm(s) would you choose? why?
    2. if you want to limit the time required the find a solution, which algorithm(s) would you choose? why?
    3. if you want to find the minimum cost solution, which algorithm(s) would you choose? why?
    4. if you want to solution with the minimum number of steps, but you do not want to use a lot of memory, which algorithm(s) would you choose? why?

Programming Part

  1. [10 points] Download and install the AIMA book code from https://github.com/aimacode.

    The AIMA code is written for different programming languages. The ones we will use are lisp https://github.com/aimacode/aima-lisp or python https://github.com/aimacode/aima-python. You can choose the one you prefer.

    Details on using the python software

    Details on using the Lisp software

  2. [5 points] Use the code to run the reflex vacuum agent.
  3. [5 points] Use the code to run the random vacuum agent.
  4. Once done, submit the file that shows all test were run successfully.
    To show the output of your program, if you start the program from the command line in linux you can save the output into a file (let's call it output.txt) using the command
     % script > output.txt 

    If you use windows or do not use the command line, submit a screen dump that shows the output of the vacuum cleaning agent.
    Copyright: © 2020 by the Regents of the University of Minnesota
    Department of Computer Science and Engineering. All rights reserved.
    Comments to: Maria Gini
    Changes and corrections are in red.