0% found this document useful (0 votes)
78 views2 pages

Cse 321 HW04

This homework assignment involves solving several algorithm problems using divide and conquer and dynamic programming techniques. It includes designing algorithms for polynomial evaluation, finding a specific index in a sorted array, solving the Towers of Hanoi problem with restricted moves, finding the largest and smallest values in an array, breaking a chocolate bar puzzle with the minimum number of breaks, comparing dynamic programming and divide-and-conquer, solving a probability problem about winning a series of games, finding the maximum square submatrix of all 1s in a binary matrix, solving the matrix chain multiplication problem, and writing a half to one page essay about a movie.

Uploaded by

tuba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views2 pages

Cse 321 HW04

This homework assignment involves solving several algorithm problems using divide and conquer and dynamic programming techniques. It includes designing algorithms for polynomial evaluation, finding a specific index in a sorted array, solving the Towers of Hanoi problem with restricted moves, finding the largest and smallest values in an array, breaking a chocolate bar puzzle with the minimum number of breaks, comparing dynamic programming and divide-and-conquer, solving a probability problem about winning a series of games, finding the maximum square submatrix of all 1s in a binary matrix, solving the matrix chain multiplication problem, and writing a half to one page essay about a movie.

Uploaded by

tuba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

CSE 321 - Introduction to Algorithm Design

Homework 04
Deadline: 23:55 December 12th, 2016
PS: Upload your homework to Moodle website. Do not bring papers to the room of the TA.

1. Design a divide and conquer algorithm for polynomial evaluation. (For convenience assume
that the polynomial is of degree (n-1) and n=2m where m is a positive integer). Calculate the
number of additions and multiplications required by your algorithm.

2. Given an array A[1...n] of sorted distinct integers, design a divide and conquer algorithm
that finds an index i such that A[i] = i. Your algorithm should run in O(log n) time.

3. Devise a divide and conquer algorithm for the Towers of Hanoi problem when moves
between peg 1 and peg 3 are not allowed (that is, all moves have to be either to or from peg
2).

4. Write a pseudocode for a divide-and-conquer algorithm for finding values of both the
largest and smallest elements in an array of n numbers.

5. You are given a chocolate bar puzzle given as an n-by-m chocolate bar. You need to break
it into nm 1-by-1 pieces. You can break a bar only in a straight line, and only one bar can be
broken at a time. Design an algorithm that solves the problem with the minimum number of
bar breaks. What is this minimum number? Justify your answer by using properties of a binary
tree. Breaking the chocolate bar can be represented by a binary tree.

6. Questions are given below. Please answer them in detail.


a. What does dynamic programming have in common with divide-and conquer?
b. What is the principal difference between the two techniques?

7. World Series odds: Consider two teams, A and B, playing a series of games until one of the
teams wins n games. Assume that the probability of A winning a game is the same for each
game and equal to p, and the probability of A losing a game is q = 1 − p. (Hence, there are no
ties.) Let P(i, j) be the probability of A winning the series if A needs i more games to win the
series and B needs j more games to win the series.

a. Set up a recurrence relation for P(i, j) that can be used by a dynamic programming algorithm.

b. Find the probability of team A winning a seven-game series if the probability of it winning a
game is 0.4.

c. Write a pseudocode of the dynamic programming algorithm for solving this problem and
determine its time and space efficiencies.
8. Given a binary matrix, find out the maximum size square sub-matrix with all 1s. For example,
consider the below binary matrix.

The maximum square sub-


matrix with all set bits is 1.

Result will be 3 as given example above. Propose a dynamic programming algorithm for this
problem. Write your code in Python implementing your dynamic programming approach.
Explain your algorithm in detail. (Grade will be given according to your algorithm and output
of your program.)

9. Matrix chain multiplication (or Matrix Chain Ordering Problem, MCOP) is an optimization
problem that can be solved using dynamic programming. Given a sequence of matrices, the
goal is to find the most efficient way to multiply these matrices. The problem is not actually
to perform the multiplications, but merely to decide the sequence of the matrix
multiplications involved. Here are many options because matrix multiplication is associative.
In other words, no matter how the product is parenthesized, the result obtained will remain
the same. For example, for four matrices A, B, C, and D, we would have:
((AB)C)D = ((A(BC))D) = (AB)(CD) = A((BC)D) = A(B(CD)).

However, the order in which the product is parenthesized affects the number of simple
arithmetic operations needed to compute the product, or the efficiency. For example, if A is a
10 × 30 matrix, B is a 30 × 5 matrix, and C is a 5 × 60 matrix, then computing (AB)C needs
(10×30×5) + (10×5×60) = 1500 + 3000 = 4500 operations, while computing A(BC) needs
(30×5×60) + (10×30×60) = 9000 + 18000 = 27000 operations.

Write code in python to find out how many operations are needed in order to solve MCOP
with dynamic programming. Explain your algorithm in detail. (Grade will be given according to
your algorithm and output of your program.)

10. Watch Devrim Arabaları movie and write an essay. (It should be minimum half page A-4
paper size or maximum one page A-4 paper size. In addition, you are expected to use 1,5 text-
space and Times New Roman font family in your essay.)

You might also like