0% found this document useful (0 votes)
3 views36 pages

Module 5 DAA

The document discusses the limitations of algorithm power, including computational complexity limits, undecidable problems, and resource constraints. It elaborates on lower bound arguments and methods to obtain them, such as the decision tree method and adversary method, with examples like sorting and the N-Queens problem. Additionally, it defines classes of problems (P, NP, NP-Complete, NP-Hard) and explores the assignment problem, backtracking, and the effectiveness of decision trees in algorithm analysis.

Uploaded by

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

Module 5 DAA

The document discusses the limitations of algorithm power, including computational complexity limits, undecidable problems, and resource constraints. It elaborates on lower bound arguments and methods to obtain them, such as the decision tree method and adversary method, with examples like sorting and the N-Queens problem. Additionally, it defines classes of problems (P, NP, NP-Complete, NP-Hard) and explores the assignment problem, backtracking, and the effectiveness of decision trees in algorithm analysis.

Uploaded by

Megha M A
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Module 5

1. What are the limitations of algorithm power. Elaborate on lower bound arguments with example.

Limitations of Algorithm Power

Even the best-designed algorithms have inherent limitations. These arise not from poor design,
but from fundamental constraints in computation and problem structure:

1. Computational Complexity Limits


o Some problems require a large amount of time or memory regardless of the
algorithm used.
o Example: Problems in exponential time (like many NP-complete problems)
cannot be solved efficiently for large inputs.
2. Undecidable Problems
o Certain problems cannot be solved by any algorithm.
o Example: The Halting Problem—no algorithm can determine for every program
whether it will halt or run forever.
3. Lower Bounds on Performance
o Some problems have a minimum amount of work that must be done.
o No algorithm can perform better than this theoretical limit.
4. Resource Constraints
o Algorithms are limited by available memory, processing power, and time.
5. Approximation Limits
o For some problems, exact solutions are impractical, and even approximations
have limits on how accurate they can be.

Lower Bound Arguments

A lower bound defines the minimum number of operations required to solve a problem,

Types of Lower Bounds

1. Trivial Lower Bound


o Based on input size.
o Example: To find the maximum in an array of size n, you must inspect at least n
elements → Ω(n).
2. Decision Tree Method
o Used for comparison-based problems.
o Models algorithm decisions as a tree.
3. Adversary Method
o Assumes an opponent gives worst-case inputs to force maximum work.
Example: Lower Bound for Comparison-Based Sorting

Consider sorting n elements using comparisons (like Merge Sort, Quick Sort, Heap Sort).

2. Explain the methods to obtain the lower bound arguments with examples.

Methods to Obtain Lower Bound Arguments (with Examples)

Lower bound arguments establish the minimum time (or operations) required to solve a
problem, regardless of the algorithm used. Several standard techniques are used to derive these
bounds:

1. Trivial (Input Size) Method

Idea:

Any algorithm must at least read the input, so the running time cannot be less than the input
size.

Example:

 Finding the maximum element in an array of size n


o You must examine all elements.
o Lower bound = Ω(n)

✔ Simple but often not tight.

2. Decision Tree Method (Comparison Model)

Idea:

 Used for problems where solutions depend on comparisons (like sorting).


 Represent the algorithm as a binary tree:
o Each node = comparison
o Each leaf = a possible output

The height of the tree gives the minimum number of comparisons.


Example: Sorting

To sort n elements:

 Total possible permutations = n!


 A decision tree must have at least n! leaves

So height ≥ log₂(n!)

Using approximation:

log⁡2(n!)≈nlog⁡2n\log_2(n!) \approx n \log_2 nlog2(n!)≈nlog2n

👉 Lower bound:

Ω(nlog⁡n)\Omega(n \log n)Ω(nlogn)

✔ No comparison-based sorting algorithm can do better.

3. Adversary Method

Idea:

 Imagine an opponent (adversary) who answers queries in a way that forces the algorithm to do
the maximum work.
 Used to prove worst-case lower bounds.

Example: Finding Maximum

 Compare elements pairwise.


 Adversary ensures you cannot conclude the maximum early.
 Each element must be compared → at least (n−1) comparisons

👉 Lower bound = Ω(n)

4. Reduction Method

Idea:
 Reduce a known hard problem (with known lower bound) to another problem.
 If problem A requires at least Ω(f(n)), and A reduces to B, then B also requires at least Ω(f(n)).

Example:

 Sorting reduces to finding the median


 Since sorting requires Ω(n log n), median finding in comparison model also inherits constraints
(though optimized algorithms exist with different models)

✔ Powerful for proving bounds across problems.

5. Information-Theoretic Method

Idea:

 Based on the amount of information needed to distinguish inputs.


 If there are k possible outputs, at least log₂(k) bits of information are required.

Example: Sorting

 Number of possible outputs = n!


 Required information:

log⁡2(n!)\log_2(n!)log2(n!)

👉 Leads to:

 Lower bound = Ω(n log n)

✔ Similar to decision tree but from an information perspective.

6. Counting Method

Idea:

 Count the number of distinct configurations or outcomes


 Derive minimum steps needed to distinguish them

Example:
 Searching in an unsorted array:
o Need to check elements one by one
o Worst case: last element

👉 Lower bound = Ω(n)

3. Explain what decision trees are and their role in algorithm analysis.

A decision tree is a conceptual model used to represent the sequence of decisions


(comparisons) an algorithm makes while solving a problem.

 Each internal node → a comparison (e.g., a[i] < a[j]?)


 Each branch → outcome of the comparison (true/false)
 Each leaf node → final result (solution/output)

Example (Simple Sorting of 3 Elements)

Suppose we want to sort three elements: a, b, c.

A decision tree will:

 Start with a comparison (e.g., a < b)


 Branch based on result
 Continue comparisons until order is determined

Total possible sorted outcomes = 3! = 6

So the decision tree must have at least 6 leaf nodes, one for each permutation.

Role of Decision Trees in Algorithm Analysis

Decision trees are mainly used to analyze comparison-based algorithms, especially for deriving
lower bounds.

1. Determining Minimum Number of Comparisons

 Each path from root → leaf represents a sequence of comparisons


 The height of the tree = worst-case number of comparisons

To correctly solve a problem:

 Tree must have at least as many leaves as possible outcomes


2. Lower Bound for Sorting

For sorting n elements:

 Number of possible permutations = n!


 A valid decision tree must have ≥ n! leaves

Thus, minimum height satisfies:

Height≥log⁡2(n!)\text{Height} \ge \log_2(n!)Height≥log2(n!)

Using approximation:

 Height ≥ Ω(n log n)

👉 This proves:

 No comparison-based sorting algorithm can run faster than Ω(n log n) in the worst case

3. Proving Optimality

If an algorithm matches the lower bound:

 It is optimal

Example:

 Merge Sort → O(n log n)


 Lower bound → Ω(n log n)

✔ Therefore, Merge Sort is optimal in the comparison model

4. Understanding Algorithm Behavior

Decision trees help:

 Visualize all possible execution paths


 Analyze best, worst, and average cases
 Identify redundant comparisons

4. Explain the following with examples for each:


(a) P - Problems.
(b) NP - Problems.
(c) NP - Complete Problems.
(d) NP - Hard Problems.
(a) P – Problems (Polynomial Time)

Definition:

Class P consists of problems that can be solved efficiently (in polynomial time) by a
deterministic algorithm.

👉 Time complexity is of the form:

 O(n), O(n²), O(n³), etc.

Examples:

 Searching in a sorted array (Binary Search) → O(log n)


 Finding shortest path using Dijkstra’s algorithm
 Sorting using Merge Sort → O(n log n)
 Finding maximum/minimum in an array → O(n)

(b) NP – Problems (Nondeterministic Polynomial Time)

Definition:

Class NP consists of problems for which a given solution can be verified in polynomial time,
even if finding the solution is difficult.

👉 “NP” = Verifiable quickly, not necessarily solvable quickly

Examples:

 Checking if a number is a factor of another number


 Subset Sum Problem (verify if subset sums to target)
 Verifying a Hamiltonian cycle in a graph
 Sudoku solution verification

(c) NP-Complete Problems

Definition:

A problem is NP-Complete if:

1. It is in NP
2. Every NP problem can be reduced to it in polynomial time
👉 These are the hardest problems in NP

Examples:

 Travelling Salesman Problem (decision version)


 Subset Sum Problem
 3-SAT (Boolean satisfiability)
 Clique Problem
 Vertex Cover Problem

(d) NP-Hard Problems

Definition:

A problem is NP-Hard if:

 It is at least as hard as NP problems


 It may or may not be in NP

👉 Not required to have polynomial-time verification

Examples:

 Travelling Salesman Problem (optimization version)


 Halting Problem (undecidable)
 Scheduling problems with complex constraints

5. Define Backtracking. write an algorithm and explain N-queens problem also construct the state
space tree for solving 4-queens problems.

Backtracking is a problem-solving technique that builds a solution step by step and removes
(backtracks) a step as soon as it determines that the step cannot lead to a valid solution.

General Algorithm for Backtracking

BACKTRACK(solution, step):

if solution is complete:

print(solution)

return

for each candidate in possible choices:

if candidate is valid:
add candidate to solution

BACKTRACK(solution, next step)

remove candidate from solution // backtrack

N-Queens Problem

Problem Statement:

Place N queens on an N × N chessboard such that:

 No two queens attack each other

👉 That means:

 No same row
 No same column
 No same diagonal

Example: 4-Queens

We must place 4 queens on a 4×4 board.

Algorithm for N-Queens


NQUEENS(k):
for each column i from 1 to n:
if PLACE(k, i) is valid:
x[k] = i
if k == n:
print solution
else:
NQUEENS(k + 1)

Function to Check Safety


PLACE(k, i):
for j = 1 to k-1:
if x[j] == i OR abs(x[j] - i) == abs(j - k):
return false
return true

👉 Where:

 x[k] = i → queen in row k, column i


State Space Tree for 4-Queens

Each level = row


Each branch = column choice

We show only valid branches (invalid ones are pruned).

Tree Representation
Level 1 (Row 1):
├── (1)
│ ├── (3)
│ │ ✗ (dead end)
│ └── (4)
│ ├── (2)
│ │ ✗
│ └── ✗

├── (2)
│ ├── (4)
│ │ ├── (1)
│ │ │ ├── (3) ✔ Solution
│ │ │
│ │ └── ✗

├── (3)
│ ├── (1)
│ │ ├── (4)
│ │ │ ├── (2) ✔ Solution
│ │
│ └── ✗

└── (4)
├── (1)
│ ✗
└── (2)

Solutions for 4-Queens

There are 2 valid solutions:

Solution 1:
. Q . .
. . . Q
Q . . .
. . Q .

Solution 2:
. . Q .
Q . . .
. . . Q
. Q . .

Explanation of Tree

 Each path from root → leaf = a possible arrangement


 Invalid placements are cut early (pruned)
 Only valid configurations are explored deeply

Key Points

 Backtracking avoids unnecessary computation


 Efficient compared to brute force
 Widely used in:
o N-Queens
o Sudoku
o Graph coloring
o Subset problems

Time Complexity

 Worst case: O(N!)


 But reduced significantly due to pruning

6. Explain assignment problem with suitable examples.

The Assignment Problem is a fundamental problem in optimization where:

👉 We have:

 n tasks (jobs)
 n agents (workers/machines)

👉 Goal:
 Assign each agent exactly one task
 Minimize the total cost (or maximize profit)

Mathematical Representation

Subject to:

 Each row has one assignment


 Each column has one assignment

Example

Problem:

Assign 4 workers (A, B, C, D) to 4 jobs (J1, J2, J3, J4)

J1 J2 J3 J4

A 9 2 7 8

B 6 4 3 7

C 5 8 1 8

D 7 6 9 4

Step 1: Row Reduction

Subtract row minimums:


J1 J2 J3 J4

A 7 0 5 6

B 3 1 0 4

C 4 7 0 7

D 3 2 5 0

Step 2: Column Reduction

Subtract column minimums:

J1 J2 J3 J4

A 4 0 5 6

B 0 1 0 4

C 1 7 0 7

D 0 2 5 0

Step 3: Optimal Assignment

Select independent zeros:

 A → J2
 B → J1
 C → J3
 D → J4

Step 4: Minimum Cost

2+6+1+4=13

👉 Optimal cost = 13
7. Analyse the effectiveness of the decision tree method in solving a specific problem and discuss
potential improvements.

Decision Tree Method – Effectiveness Analysis

The decision tree method models an algorithm (especially comparison-based ones) as a tree of
decisions:

 Internal nodes → comparisons


 Edges → outcomes
 Leaves → final results

It is mainly used for analysis, not for directly designing algorithms.

1. Effectiveness on a Specific Problem: Sorting

Consider comparison-based sorting (e.g., Merge Sort, Quick Sort).

How Decision Tree Applies

 Each comparison splits possibilities


 Total possible outputs for sorting n elements = n!
 Each leaf corresponds to one permutation

👉 The tree must have at least n! leaves

Lower Bound Derived

Height≥log⁡2(n!)\text{Height} \ge \log_2(n!)Height≥log2(n!)

This leads to:

 Lower bound = Ω(n log n)


Effectiveness Evaluation

✅ Strengths

1. Proves Fundamental Limits

 Shows no comparison-based sorting can beat Ω(n log n)


 Prevents attempts to design “impossibly fast” algorithms

2. Model Independence

 Works for any algorithm, regardless of implementation


 Hardware/software independent

3. Helps Identify Optimal Algorithms

 Merge Sort, Heap Sort match the lower bound


👉 Hence, they are optimal

4. Clear Visualization

 Represents all possible execution paths


 Helps understand worst-case behavior

❌ Limitations

1. Limited to Comparison-Based Problems

 Cannot analyze:
o Counting Sort
o Radix Sort
👉 These beat O(n log n) but are not comparison-based

2. Ignores Non-Comparison Operations


 Real algorithms involve:
o Memory access
o Arithmetic operations
👉 Decision trees only count comparisons

3. Not Practical for Large Inputs

 Tree size grows factorially (n! leaves)


 Impossible to construct explicitly for large n

4. Weak for Average-Case Analysis

 Best suited for worst-case bounds


 Average-case needs probability analysis

5. No Direct Algorithm Construction

 It analyzes, but does not help design algorithms directly

2. Potential Improvements / Alternatives

To overcome limitations, we use enhanced or alternative techniques:

🔹 1. Extend Beyond Comparison Model

Use:

 Non-comparison models
 Example: Counting Sort → O(n)

👉 Improves performance when input constraints allow


🔹 2. Randomized Algorithms

 Randomized Quick Sort improves average performance


 Decision tree can be extended to probabilistic trees

🔹 3. Hybrid Approaches

 Combine algorithms:
o Quick Sort + Insertion Sort
 Improves practical efficiency

🔹 4. Adversary Method

 Stronger technique for proving lower bounds


 Works even when decision trees are complex

🔹 5. Information-Theoretic Analysis

 Uses entropy instead of explicit trees


 More scalable for large problems

🔹 6. Amortized and Average Analysis

 Gives realistic performance insights


 Complements decision tree method

8. Explain the Subset–Sum Problem in detail. Describe the backtracking approach with a state-
space tree and illustrate with an example.

1. Problem Definition

Given:

 A set of n positive integers


 A target sum S

👉 Goal:
Find all subsets whose elements add up exactly to S
Example

Set: {5, 10, 12, 13, 15, 18}


Target: S = 30

👉 Valid subsets:

 {12, 18}
 {5, 10, 15}

2. Nature of the Problem

 It is a combinatorial problem
 Each element has two choices:
o Include it
o Exclude it

👉 Total subsets = 2n2^n2n

3. Backtracking Approach

Backtracking systematically explores all possibilities but prunes unnecessary paths.

Idea

At each step:

 Decide whether to include an element


 Track:
o Current sum
o Remaining possible sum

👉 Prune if:

 Current sum > target


 Current sum + remaining elements < target
4. Algorithm
SUBSET_SUM(k, current_sum, remaining_sum):
if current_sum == target:
print solution
return

if k > n:
return

if current_sum + remaining_sum < target:


return

if current_sum > target:


return

// Include element
include A[k]
SUBSET_SUM(k+1, current_sum + A[k], remaining_sum - A[k])

// Exclude element
exclude A[k]
SUBSET_SUM(k+1, current_sum, remaining_sum - A[k])

5. State Space Tree

Each node represents:

 Current subset
 Current sum

Each level:

 Decision for one element

Example

Set = {5, 10, 12}, Target = 15

Tree Representation
(0)
/ \
+5(5) (0)
/ \ / \
+10(15) (5) +10(10) (0)
✔ / \ / \ / \
+12 (5) +12 (10) ...
✗ ✗

Explanation

 Root = sum 0
 Left branch = include element
 Right branch = exclude element

✔ Solution found:

 {5, 10} → sum = 15

✗ Branches pruned when:

 Sum exceeds target


 Cannot reach target even with remaining elements

9. Illustrate briefly on backtracking approach with example.

Answer of 8th question

10. Compare the Branch and Bound approach with the backtracking method for solving the
Assignment Problem, and discuss the advantages and disadvantages of each.

1. Branch and Bound (B&B)

Definition:
Branch and Bound is an optimization technique that systematically explores all possible
solutions by branching into subproblems and uses bounds (lower or upper limits) to eliminate
subproblems that cannot produce a better solution.

Working in Assignment Problem

 Represent assignments as a state-space tree.


 Each level represents assigning one job.
 Compute a cost bound for each partial solution.
 Expand the node with the least bound.
 Prune nodes whose bound is greater than the current best solution.

Example
Suppose 3 workers and 3 jobs:

Worker/Job J1 J2 J3

W1 9 2 7

W2 6 4 3

W3 5 8 1

 Start from root node.


 Assign jobs level by level.
 Calculate lower bound for each node.
 Explore promising nodes first.
 Final optimal assignment:
o W1 → J2
o W2 → J1
o W3 → J3

Minimum cost = 2 + 6 + 1 = 9

Advantages of Branch and Bound

 Guarantees optimal solution.


 Avoids exploring many useless branches using bounds.
 Efficient for optimization problems.

Disadvantages of Branch and Bound

 Bound calculation increases overhead.


 Memory usage can be high (stores live nodes).
 Performance decreases for very large problems.

2. Backtracking

Definition:
Backtracking is a recursive problem-solving method that builds solutions step by step and
abandons a path when it detects that the path cannot lead to a feasible solution.

Working in Assignment Problem

 Build assignments incrementally.


 At each stage, assign one job to one worker.
 Check feasibility (job not already assigned).
 If invalid or non-promising, backtrack.

Example

Using same cost matrix:

 Assign W1 → J1
 Then W2 → J2
 Then W3 → J3

Calculate cost.

Try all valid combinations recursively:

 W1 → J2, W2 → J1, W3 → J3 gives cost 9 (best).

Backtracking explores possibilities and returns best result.

Advantages of Backtracking

 Simple and easy to implement.


 Uses less memory.
 Good for constraint satisfaction problems.

Disadvantages of Backtracking

 May explore many unnecessary states.


 Slower for optimization problems.
 No bounding mechanism, so pruning is weaker.

Comparison of Branch and Bound vs Backtracking


Feature Branch and Bound Backtracking

Goal Optimization Feasibility/optimization

Pruning Uses bounds (cost estimates) Uses constraints only

Optimality Guaranteed optimal solution Can find optimal but slower

Memory Higher Lower

Speed Faster for optimization Slower for large problems


Feature Branch and Bound Backtracking

Complexity More complex implementation Easier to implement

11. Define the limittions of algorithm power and provide an example where algorithms face this
limitations?

1. Definition

Limitations of algorithmic power are restrictions that prevent algorithms from:

 Solving certain problems at all, or


 Solving them within reasonable time or resources

These limits arise from:

 Theoretical barriers (computability)


 Practical constraints (time and space complexity)

2. Types of Limitations

(a) Unsolvable Problems (Undecidability)

Some problems cannot be solved by any algorithm, no matter how much time is given.

Example:
The Halting Problem

 Proposed by Alan Turing


 It asks: Can we determine whether a program will stop or run forever?
 Proven: No algorithm can solve this for all cases

👉 This shows a fundamental theoretical limit.

(b) Intractable Problems (Time Complexity Limits)

Some problems are solvable, but require exponential time, making them impractical for large
inputs.
Example:
The Travelling Salesman Problem

 Find the shortest route visiting all cities exactly once


 Best-known exact algorithms take factorial/exponential time

👉 For large inputs, computation becomes infeasible even with powerful computers.

(c) NP-Complete Problems

These are problems where:

 No efficient (polynomial-time) algorithm is known


 Believed to be inherently difficult

Example:
The Subset Sum Problem

 Determine if a subset adds up to a target value


 Requires exploring many combinations

3. Example Illustrating Limitation

Example: Travelling Salesman Problem (TSP)

Suppose a salesman must visit 20 cities.

 Possible routes = (20 - 1)! / 2 ≈ 60 trillion routes


 Even if a computer checks 1 million routes/second:
o It would take years

👉 This shows:

 The problem is solvable


 But not feasible in practice

12. Differentiate between P, NP, and NP-complete classes of problems.


1. Class P (Polynomial Time)

Definition:
Class P consists of decision problems that can be solved efficiently (in polynomial time) by a
deterministic algorithm.

 Time complexity: O(nk)O(n^k)O(nk) for some constant kkk


 Considered tractable (practically solvable)

Examples:

 Sorting numbers (e.g., Merge Sort)


 Finding shortest paths (e.g., Dijkstra’s algorithm)
 Minimum spanning tree

👉 Key idea: Easy to solve

2. Class NP (Nondeterministic Polynomial Time)

Definition:
Class NP consists of decision problems for which a given solution can be verified in
polynomial time, even if finding the solution may be difficult.

 Solution may not be easy to find


 But once given, it is easy to check

Examples:

 Subset Sum Problem


 Travelling Salesman Problem

👉 Key idea: Easy to verify

3. NP-Complete Problems

Definition:
A problem is NP-complete if:

1. It is in NP, and
2. Every problem in NP can be reduced to it in polynomial time

These are the hardest problems in NP.


Examples:

 Subset Sum Problem


 Travelling Salesman Problem
 Boolean satisfiability (SAT)

👉 Key idea: Hardest among NP problems

4. Relationship Between P, NP, and NP-Complete

NP-complete ⊆ NP
 P⊆NPP \subseteq NPP⊆NP

 Big open question: Does P=NPP = NPP=NP? (still unsolved)

If any NP-complete problem is solved in polynomial time:


➡️All NP problems become polynomial-time solvable

5. Comparison Table
Feature P NP NP-Complete

Meaning Easy to solve Easy to verify Hardest in NP

Time Complexity Polynomial Verification in polynomial No known polynomial solution

Solvability Efficient Possibly inefficient Very hard

Examples Sorting, shortest path Subset Sum, TSP SAT, Subset Sum

13. Infer Hamiltonian cycle with example.

Hamiltonian Cycle — Definition

A Hamiltonian cycle is a cycle in a graph that:

 Visits every vertex exactly once, and


 Returns to the starting vertex

Such a graph is called a Hamiltonian graph if it contains at least one Hamiltonian cycle.
Example

Consider a graph with vertices:


A, B, C, D, E

Edges:

 A → B, A → C
 B → C, B → D
 C → D, C → E
 D→E
 E→A

One Hamiltonian Cycle:

A→B→C→D→E→A

✔ Visits all vertices exactly once


✔ Returns to starting point A

Illustration (Conceptual)
A
/ \
B C
\ / \
D---E

Hamiltonian cycle:
A→B→C→D→E→A

Important Properties

 A graph may have:


o One Hamiltonian cycle
o Multiple Hamiltonian cycles
o No Hamiltonian cycle
 There is no simple formula to detect it for all graphs
 It is a NP-complete problem
Real-Life Interpretation

Hamiltonian cycles are useful in:

 Route planning
 Circuit design
 Puzzle solving

A classic related problem is the Travelling Salesman Problem, where we find the minimum-cost
Hamiltonian cycle.

14. Explain assignment problem with suitable examples.

Assignment Problem — Explanation

The Assignment Problem is a fundamental optimization problem in operations research and


computer science.

Definition

It involves assigning a set of tasks (jobs) to a set of agents (workers/machines) such that:

 Each task is assigned to exactly one agent


 Each agent performs exactly one task
 The total cost (or time/profit) is optimized (usually minimized)

Mathematical Representation

If there are n workers and n jobs, we represent costs using an n × n cost matrix:

C=[cij]C = [c_{ij}]C=[cij]

Where:

 cijc_{ij}cij = cost of assigning worker i to job j

Example

Consider 3 workers and 3 jobs:


Worker / Job J1 J2 J3

W1 9 2 7

W2 6 4 3

W3 5 8 1

Objective:

Minimize total cost.

Possible Assignments:

Try combinations:

1. W1→J1, W2→J2, W3→J3 → Cost = 9 + 4 + 1 = 14


2. W1→J2, W2→J1, W3→J3 → Cost = 2 + 6 + 1 = 9 ✅ (Minimum)
3. W1→J3, W2→J2, W3→J1 → Cost = 7 + 4 + 5 = 16

Optimal Assignment:

 W1 → J2
 W2 → J1
 W3 → J3

Minimum cost = 9

15. Differentiate between lower bound argument and branch and bound techniques.

1. Lower Bound Argument

Definition:
A lower bound gives the minimum possible time (or operations) that any algorithm must take
to solve a problem, regardless of the method used.

Key Points

 It is a theoretical limit
 Applies to all algorithms for a problem
 Helps prove optimality (no faster algorithm exists)

Example
 In comparison-based sorting, the lower bound is Ω(n log n)
 This means no comparison-based sorting algorithm can do better than this in the worst case

👉 It tells us: “You cannot go below this limit.”

2. Branch and Bound

Definition:
Branch and Bound is an algorithm design technique used to solve optimization problems by:

 Dividing the problem into subproblems (branching)


 Using bounds to eliminate non-promising solutions (bounding/pruning)

Key Points

 It is a practical method (algorithm)


 Used for optimization problems
 Guarantees optimal solution
 Reduces search space using bounds

Example

 Solving the Travelling Salesman Problem


 Solving the assignment problem efficiently

👉 It tells us: “Let’s efficiently search for the best solution.”

3. Differences Between Lower Bound and Branch & Bound


Feature Lower Bound Argument Branch and Bound

Nature Theoretical concept Algorithmic technique

Purpose Determines minimum possible complexity Finds optimal solution efficiently

Usage Analysis of problems Solving optimization problems

Output Bound on performance (e.g., Ω(n log n)) Actual optimal solution

Applicability Applies to all algorithms Specific algorithm design

Example Sorting lower bound TSP, Assignment Problem


16. Analyse among the various algorithmic approaches such as backtracking and dynamic
programming. Find the suitable one for solving travelling salesman problem.

1. Nature of TSP

 Given n cities, find the minimum-cost Hamiltonian cycle


 Constraints:
o Visit each city exactly once
o Return to starting city
 It is an NP-hard problem, so no known polynomial-time exact solution exists

2. Backtracking Approach

Idea

 Generate all possible tours (permutations)


 Reject paths that violate constraints
 Keep track of minimum cost

Complexity

 Time: O(n!)
 Space: Low

Pros

 Simple and easy to implement


 Guarantees optimal solution

Cons

 Extremely slow for large n


 Explores many unnecessary paths

👉 Works only for very small inputs (n ≤ 10)


3. Dynamic Programming Approach (Held–Karp Algorithm)

Idea

 Break problem into overlapping subproblems


 Store results using bitmasking + memoization

State Representation

 dp(S,i)dp(S, i)dp(S,i): minimum cost to reach city i visiting set S

Complexity

 Time: O(n² · 2ⁿ)


 Space: O(n · 2ⁿ)

Pros

 Much faster than backtracking


 Avoids recomputation
 Guarantees optimal solution

Cons

 High memory usage


 Still exponential → not suitable for very large n

👉 Works well for moderate size (n ≤ 20–25)

4. Branch and Bound (for comparison)

Idea

 Explore solution space but prune using cost bounds

Complexity

 Worst case: still O(n!)


 Practical performance better than backtracking

Pros
 Faster than brute force in practice
 Finds optimal solution

Cons

 Performance depends on bounding function


 Still exponential in worst case

5. Comparison of Approaches
Feature Backtracking Dynamic Programming Branch & Bound

Approach Exhaustive search Subproblem reuse Pruned search

Time Complexity O(n!) O(n²·2ⁿ) O(n!) (worst)

Space Low High Moderate

Efficiency Very low Best among exact methods Better than backtracking

Scalability Poor Moderate Moderate

Optimal Solution Yes Yes Yes

17. Discuss on various challenging factors associated with numerical algorithms.

Numerical algorithms (used for solving equations, integration, linear systems, optimization, etc.)
face several practical and theoretical challenges because they operate on finite-precision
machines and often approximate continuous mathematics.

1. Finite Precision & Round-off Errors

Computers store numbers in formats like floating point, so many real numbers cannot be
represented exactly.

 Small rounding errors occur at every step


 Errors can accumulate or amplify in long computations

Example:
Subtracting nearly equal numbers causes loss of significance (catastrophic cancellation)
2. Numerical Stability

An algorithm is stable if small input errors produce only small output errors.

 Some methods amplify tiny errors → unreliable results


 Stability depends on both the algorithm and the problem

Example:
Solving linear systems using naive Gaussian elimination vs. pivoting

3. Convergence Issues

Many numerical methods are iterative and may:

 Converge slowly
 Not converge at all

Example:
Newton–Raphson Method

 Fast when close to root


 Can diverge if initial guess is poor

4. Computational Complexity

 High-dimensional problems require huge computation


 Trade-off between accuracy and time

Example:

 Matrix operations in large systems (O(n³))


 Optimization problems with many variables

5. Conditioning of the Problem

A problem is:

 Well-conditioned → small input changes → small output changes


 Ill-conditioned → small input changes → large output changes

Even a good algorithm struggles with ill-conditioned problems.

6. Error Propagation

Errors introduced early can:

 Spread through iterations


 Grow exponentially in some algorithms

This makes long computations unreliable without careful design.

7. Choice of Initial Values

Many algorithms depend heavily on starting values.

 Poor choice → slow convergence or divergence


 Good choice → fast and accurate results

8. Discretization Errors

Continuous problems (like differential equations) are approximated using discrete steps.

 Smaller step size → more accuracy but higher cost


 Larger step size → faster but less accurate

9. Hardware and Implementation Constraints

 Limited memory
 Finite precision arithmetic
 Parallel computing challenges

Different systems may produce slightly different results.


10. Trade-off Between Accuracy and Efficiency

 Highly accurate methods → computationally expensive


 Faster methods → less accurate

Designing algorithms requires balancing both.

You might also like