transform & conquer replacing one problem with another saadiq moolla
TRANSCRIPT
Introduction
• Two Stage Solution−Transform into Another Problem−Solve New Problem
• Three Variations−Instance Simplification−Representation Change−Problem Reduction
Initial Problem
New Representati
on
Solution
Instance Simplification
• Reducing the Problem to a Simpler
One
• Techniques:−Presorting−Gaussian Elimination−Search Trees
Presorting
• Example: Given a random list of
numbers, determine if there are any
duplicates.
• Brute Force: Compare Every Pair
• Transform and Conquer:−Sort the List−Compare A [i] with A [i + 1] i
A
Presorting (Analysis)
• Old Idea, Many Different Ways
• Efficiency Dependant on Algorithm
• Compare Benefits vs Time Required
• Useful if Operation Repeated
Gaussian Eliminationa11x + a12x + … + a1nx = b1
a21x + a22x + … + a2nx = b2…
an1x + an2x + … + annx = b1
a’11x + a’12x + … + a’1nx = b’1
a’22x + … + a’2nx = b2…a’nnx = b1
Binary Search Trees (Analysis)• Time Efficiency
• Slow
• Methods to Balance
• Special Trees:−AVL Trees−B-trees
Properties of Heaps
• Height is log2n
• Root is largest element
• Node + Descendents = Heap
• Stored in Array:−Children of A [i] are A [2i] and A [2i +
1]
Representation Change
• Change One Problem Into Another
• Steps:−Identify−Transform−Solve
• Mathematical Modeling
Problem Reduction
• Reduce to a Known Problem
• Use Known Algorithms:−Dijkstra’s algorithm−Horner’s Rule−Karp – Rabin algorithm−etc.
Horner’s Rule
• Used to Evaluate Polynomials
• 5x^2 – 3x + 8 » (5x + 3)x + 8
• 7x^3 + x^2 – 9x – 2 » ((7x + 1)x –
9)x – 2
• Linear
Horner’s Algorithmalgorithm Horner (x, P [])
// Evaluates a polynomial with coefficients P [] at xfor i ← n – 1 downto 0 do
v ← x * v + P [i]return v