Documente Academic
Documente Profesional
Documente Cultură
Edit operations:
delete a letter
add a letter
substitute a letter with another letter
Why is substitute not delete plus add?
Case 1 xi mapped to yj .
E [i, j] = 1 + E [i 1, j]
E [i, j] = 1 + E [i, j 1]
Recursive Solution
Base cases:
E [i, 0] = i for i 0
E [0, j] = j for i 0
How many subproblems? O(mn)
Iterative Solution
Static setting:
keys a1 , a2 , . . . , an known in advance
no insertions or deletions, only search queries
also know frequencies of search queries: pi probability of
querying ai
j
!
X
S(i, j) = min S(i, k) + S(k + 1, j) + pk
ik<j
k=i
for i = 1 to n do
S[i, i] = P[i, i]
for d = 1 to n 1 do
for i = 1 to n d do
j =i +d
S[i, j] = minik<j (S[i, k] + S[k + 1, j] + P[i, j])
for i = 1 to n do
S[i, i] = P[i, i]
for i = n downto 1 do
for j = i + 1 to n do
S[i, j] = minik<j (S[i, k] + S[k + 1, j] + P[i, j])
Computing the Table: Alternative 2
for i = 1 to n do
S[i, i] = P[i, i]
for j = 1 to n do
for i = j 1 downto 1 do
S[i, j] = minik<j (S[i, k] + S[k + 1, j] + P[i, j])
Knapsack Problem
Observation
Consider an optimal solution O
Case item n O Then O {n} is an optimum solution for items
1 to n 1 in knapsack of capacity B sn
Case item n 6 O O is an optimal solution to items 1 to n 1
pi + OPT (i 1, C si ) if si C
OPT (i, C ) = max 0 if si > C
OPT (i 1, C )
for i = 0 to n do
OPT [i, 0] = 0
for i = 1 to n do
for C = 1 to B do
if si C then
OPT [i, C ] = max(OPT [i 1, C ], pi + OPT [i 1, C si ])
else
OPT [i, C ] = OPT [i 1, C ]
Pn
Input size for Knapsack: O(n) + log B + i=1 (log si + log pi )
Stirlings formula: n! ' n(n/e)n which is (2cn log n ) for some
constant c > 1