CS590 homework 4 – Dynamic Programming, Greedy Algorithms

$30.00 $24.00

The class random_generator has been updated (random_generator.h and ran- dom_generator.cc) by a member function which generates random strings of a fixed length using the a given number of characters from the alphabet, starting with “a”. char* random.string.m(int n, int no_ch) The function allocates n + 1 characters. The first n characters (0 …n — 1) are…

Rate this product

You’ll get a: zip file solution

 

Categorys:

Description

Rate this product

The class random_generator has been updated (random_generator.h and ran-
dom_generator.cc) by a member function which generates random strings of a fixed
length using the a given number of characters from the alphabet, starting with “a”.

  • char* random.string.m(int n, int no_ch)

The function allocates n + 1 characters. The first n characters (0 …n — 1) are chosen at random using the first no_ch characters from the alphabet start­ing with “a” (e.g., for no_ch = 4 the characters are randomly chosen out of {“a”,”b”,”c”,”d”}). The n-th character is set to 0 in order to mark the end of the string.

Dynamic programming

The dynamic programming Smith-Waterman algorithm is matching sequences recur­sively defined as follows, given = XI,… , xn (along table rows) and Y = ye, … , y,n (along table columns)

M(i, 0) = 0, for all 0 < i < n M(0,j) =0, for all 0 < <m

M(i — 1, 1) + 2 if xi = y;
M(i — 1, 
j — 1) — 1 if x, 0 yi

M(i’ -1) — max M(i — 1, j) — 1 if “-” is inserted into Y M(i, j — 1) — 1 if “-” is inserted into X

The function M(i,j) defines a so called matching score for the partial sequences X, and it,. If in the recursive definition of the maximum value is due to the third or fourth line, you have to insert the character “-” into either or Y in order to reconstruct the matching sequences X’ and Y’. Similar to the LCS problem we need only need a table to store the M(i, j) values, but an additional table that allows us to later generate X’ and Y’ from and Y.

 

Example 1

Example 2

Example 3

x

x’
y
,

v

abababda

cacacccbab

cdbaabbdca

a-bababda

ca-cacccbab

c-dba–abbdca

acbabab-a

cadaadcc—

cadcacca-bd–

acbababa

bccadaadcc

cadcaccabd

M(n,m)

12

4

5

 

Example 4

Example 5

x

X : r

Y

caacbdacca

dcacccbbba

caacb-dacc-a

dcacccb-bba

c–cbcd-ccba

dca–badba

bccbcdccba

aadcabadba

M(n,m)

7

 

  1. Implement the bottom-up version of the Smith-Waterman algorithm given by the recursive definition of the function (as seen on the slides).

  2. Implement the top-down with memoization version of the Smith-Waterman algorithm given by the recursive definition of the function

Notes:

  • How do you initialize the necessary tables given the definition of Keep in mind that you have to able to determine whether or not you already computed a table value (memoization).

  • Values could be negative, but is there a limit for how small they can get?

  1. Implement the function void PRINT-SEQ-ALIGN-X ( …) that takes a number of parameters and then recursively prints the matching sequence that is derived from Implement a separate function void PRINT-SEQ-ALIGN-Y( . ) that recursively prints the matching sequence that is derived from Y.

  2. Find the maximum alignment for = dcdcbacbbb and Y = acdccabdbb by using the Smith-Waterman algorithm (see slides). Execute the pseudocode algorithm and fill the necessary tables and in a bottom-up fassion. Re­construct the strings X’ and Y’ using the tables and

(7+20+8+15 = 50 points)

Exercise 15.1-2 Show, by means of a counterexample, that the following “greedy” strategy does not always determine an optimal way to cut rods. Define the density of a rod of length i to be that is, its value per inch. The greedy strategy for a rod of length 71 cuts off a first piece of length i, where 1 < i < n, having maximum density. It then continues by applying the greedy strategy to the remaining piece of length n

(7 points)

Exercise 15.1-5 The Fibonacci numbers are defines by recurrence (3.22). Give an 0(n) time dynamic-programming algorithm to compute the n-th Fibonacci number. Draw the subproblem graph. How many vertices and edges are in the graph?

(8 points)

Exercise 15.4-1 Determine              an        LCS           of         (1, 0, 0, 1, 0, 1, 0,1)            and

(0, 1,0,1,1,0,1,1,0).

CS590 homework 4 – Dynamic Programming, Greedy Algorithms
$30.00 $24.00