CS 5541 Study Questions and Homework 2

Homework (15 points) due Wednesday, October 8, 2003


Homework assignment

For Homework 2, turn in your answers for the following study questions:

Q6 [3 pts]
Q7 [2 pts]
Q16 [10 pts] (1 pt each for a, b, c; 4 pts for d; 3 pts for e)

Study questions

  1. List three concrete and specific possible application tasks for natural language processing.
  2. What is the word recognition problem in speech processing?
  3. What is the difference betweeen continuous speech recognition vs. discrete speech recognition?
  4. What does 'dialog understanding' mean in the context of Verbmobil?
  5. What is a speech disfluency?
  6. What are the domains in which Verbmobil operates?
  7. Why is a domain often an important consideration in AI systems?
  8. What is a blackboard in AI? Why do they tend to use standard or conventional data representations?
  9. What makes Verbmobil, at least partially, a empiricist-based system? Is Verbmobil physically grounded, as per the physical grounding hypothesis?
  10. Give an example of how prosody can be used in speech recognition systems.
  11. What is an agent in AI?
  12. The Pyro robot simulator provides an environment for running intelligent robot-like agents. Characterize the properties of the simulator environment using the environment property terms we've discussed in class.
  13. What is a goal state?
  14. What is a start state?
  15. What are operators in the context of problem solving agents?
  16. In the Water Jug Problem, you have a three-gallon jug and a four-gallon jug, and the problem is to get exactly two gallons of water into one of the jugs. Unfortunately, neither of the jugs have any gallon "markers" (e.g., they are not like a measuring cup, gradations). Instead, your possible operations are: to fill a jug with water completely (assume you have plenty of water), pour the contents of one jug into another (stopping just short of overflow), and pour the contents of one jug onto the ground. You are going to analyze this problem using the problem solving agent techniques that we have discussed in class:
    (a) Define (choose) a Python representation for the problem state. Explain the representation.
    (b) Define the goal state in Python.
    (c) Define the start state in Python.
    (d) Define operators for this problem in Python. Each operator should accept one parameter (the state) and return the modified state as the result of the function, or an empty state if the operator cannot be applied to the state.
    (e) Using breadth first search, show a depth-four search tree for this problem. Carefully label each node that was expanded with its expansion order (1 for the start state, 2 for the second node expanded, and so on).
  17. In the problem solving approach where we define a start state, goal state, and operators, and use a search method to find an operator sequence and/or a goal state, give the general assumptions regarding properties of environments.
  18. Give an example of a problem that might be practical to solve using these techniques. Explain.
  19. Give an example of a problem that would not be usefully or practically solved using these techniques. Explain.
  20. Define search cost.
  21. Define path cost.
  22. Generally, define the algorithm for A* search in terms of the functions and heuristics involved.
  23. Prove that A* is optimal (i.e., finds a goal with the shortest path).
  24. What is the typical time and/or space complexity for uninformed search methods in terms of the branching factor, b, and the depth of the goal found, d.
  25. Given the following fully-expanded search tree, apply the alpha-beta pruning technique to see which nodes would have been expanded if the tree had not already been expanded. Assume that we are deciding a move for "max" at the root node. Mark a node clearly with an "X" inside the node if the node is not expanded in the alpha-beta pruning search. Label each relevant internal node with values selected (or, where relevant, bounds on values) by min or max. Which move will "max" take?

  26. What is a heuristic evaluation function? Give an example.
  27. In Python, write a recursive function for set union. Your function should take two parameters, S1 and S2, both sets, and return the union of the sets. Remember that sets don't contain duplicates, and that sets are unordered.
  28. In Python, write a recursive function for set intersection. Again, your function should take two parameters, S1 and S2, both sets, this time returning the intersection of the sets.
  29. Write a function, ApplyToList(List, Function), where Function is a function passed as a parameter, and List is a list. Function takes a single parameter, and returns a value. ApplyToList should call the Function on each element of the List, and return the list that results from concatenating together all of the results of these Function applications into a list.