ADA Unit-2 Notes

https://drive.google.com/file/d/18MITjoUO14gHrb7OWiqnVLjOGDNnx814/view?usp=sharing




The document titled UNIT-2 focuses on two primary computer science topics: Disjoint Sets and Backtracking algorithms.

1. Disjoint Sets

A disjoint set is a collection of sets where no element exists in more than one set.
  • Tree Representation: Sets are represented as trees where each element is a node and sets are identified by the root of their respective trees.
  • Core Operations:
    • Find(i): Determines which set contains element $i$ by identifying the root of its tree.
    • Union(i, j): Combines two disjoint sets by making one tree a subtree of the other.
  • Performance Improvements:
    • Weighting Rule: To avoid tall, "degenerate" trees, the smaller tree is always made a subtree of the larger one during a union.
    • Collapsing Rule: During a Find operation, all nodes on the path to the root are flattened to point directly to the root, speeding up future operations.
  • Algorithms: The document provides specific algorithms for SimpleUnion, SimpleFind, WeightedUnion, and CollapsingFind.



2. Backtracking

Backtracking is a systematic search method for finding solutions to problems that satisfy specific criteria, often visualized as a modified depth-first search of a state space tree.
  • Key Constraints:
    • Explicit Constraints: Rules that restrict each variable to a specific set of values.
    • Implicit Constraints: Rules determining how variables must relate to each other to satisfy the problem's goal.
  • Terminology:
    • Problem State: Each node in the search tree.
    • E-node: The "expansion" node currently being explored.
    • Dead Node: A node that cannot lead to a solution and is no longer explored.

3. Problems Solved via Backtracking

The document details several classic problems and their backtracking implementations:
  • N-Queens Problem: Placing $N$ queens on an $N \times N$ chessboard so no two queens attack each other (same row, column, or diagonal).
  • Sum of Subsets: Finding all subsets of a given set of positive numbers that sum to a specific target value 'm'.
  • Graph Coloring: Assigning colors to graph vertices such that no two adjacent vertices share the same color, using at most 'm' colors.
  • Hamiltonian Cycles: Finding a path in a graph that visits every vertex exactly once and returns to the starting vertex.
For each problem, the document provides detailed logic, constraints, complexity analysis, and recursive algorithms.

Comments

Popular Posts

WT Sample Programs/Lab Manual

SE LAB MANUAL

CD Question Bank

WT Question Bank