CS 5541 Study Questions and Homework 2
Homework (15 points) due Wednesday, October 8, 2003
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)
- List three concrete and specific possible application tasks for natural
- What is the word recognition problem in speech processing?
- What is the difference betweeen continuous speech recognition vs. discrete
- What does 'dialog understanding' mean in the context of Verbmobil?
- What is a speech disfluency?
- What are the domains in which Verbmobil operates?
- Why is a domain often an important consideration in AI systems?
- What is a blackboard in AI? Why do they tend to use standard or conventional
- What makes Verbmobil, at least partially, a empiricist-based system? Is
Verbmobil physically grounded, as per the physical grounding hypothesis?
- Give an example of how prosody can be used in speech recognition systems.
- What is an agent in AI?
- 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.
- What is a goal state?
- What is a start state?
- What are operators in the context of problem solving agents?
- 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
(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).
- 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.
- Give an example of a problem that might be practical to solve using these
- Give an example of a problem that would not be usefully or practically solved
using these techniques. Explain.
- Define search cost.
- Define path cost.
- Generally, define the algorithm for A* search in terms of the functions
and heuristics involved.
- Prove that A* is optimal (i.e., finds a goal with the shortest path).
- 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,
- 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?
- What is a heuristic evaluation function? Give an example.
- 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.
- 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.
- 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.