Question 1

  1. Use Identify Strongly Component Components (Algorithm):
    1. Begin by doing Topological Sort (Algorithm) Visit , visit . Backtrack, . Visit , , , , , , , , , . Backtrack, . Visit , , . Backtrack. .
    2. For each element in , perform DFS on transpose of the graph, add all visited to new component. Visit . () Visit () Visit () Visit . () Visit . () Each set described above must have all of its tasks done concurrently.
  2. Draw the component graph .
digraph {
	rankdir=LR
	S1->S2,S4
	S2->S3,S4,S5
	S3->S4
 
	S1 [label="A,C,F"]
	S2 [label="M"]
	S3 [label="G,I,L"]
	S4 [label="B,O,P,Q,D,N,K"]
	S5 [label="E,H"]
}
  1. Topological sort would output .
  2. N/A

Question 2

  1. Apply algorithm to the graph: Split into subgraphs containing:
    • Split into:
      • : base case
      • : which splits into: : base case : base case They combine on the edge . They combine on the edge .
    • Split into:
      • : base case
      • : base case They combine on the edge . They combine on the edge . Hence the final MST by this algorithm is found by combining the set of base cases with the set of lightest edges:
  2. Yes, if and only if the whole graph is connected.
  3. No. During the division stage we select two subgraphs at complete random not taking into consideration the weight of the edges between the nodes selected in the subgraphs. (This matters when we are down to 3-4 nodes as the resulting division causes nodes to link together.)