II. Read each problem carefully and present an algorithm with the required running-time to solve each problem. 1. In class we discussed that directed acyclic graphs (DAG) can be used to represent dependency/precedence relations. One example is modeling task dependency where tasks are represented as vertices and edges represents direct dependencies between tasks, e.g., if task T; requires task I, then there is an edge from vertex i to vertex j. Arranging tasks with respect to their dependencies can easily be done by performing topological sort to the DAG. a. Describe an algorithm that runs in O(n + m) time that given two tasks, T, and I, determines if task T, can be performed without performing task T₁. Note that I, is not required if it is not a direct or indirect dependency of T. Task I, is an indirect dependency of task T: if there is no edge from T, to T, but I, must appear before 7, in the topological order. b. Describe an algorithm that runs in O(n + m) time that given a task T₁, outputs the minimum possible position of tasks T, in any topological order.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter17: Linked Lists
Section: Chapter Questions
Problem 2PE
icon
Related questions
Question
II. Read each problem carefully and present an algorithm with the required running-time to solve each
problem.
1. In class we discussed that directed acyclic graphs (DAG) can be used to represent
dependency/precedence relations. One example is modeling task dependency where tasks are
represented as vertices and edges represents direct dependencies between tasks, e.g., if task Ti
requires task I, then there is an edge from vertex i to vertex j. Arranging tasks with respect to their
dependencies can easily be done by performing topological sort to the DAG.
a. Describe an algorithm that runs in O(n + m) time that given two tasks, T, and I₁, determines if
task T, can be performed without performing task T₁. Note that I, is not required if it is not a direct
or indirect dependency of T₁. Task I, is an indirect dependency of task I, if there is no edge from
T, to T, but I must appear before 7, in the topological order.
b. Describe an algorithm that runs in O(n + m) time that given a task T₁, outputs the minimum
possible position of tasks T, in any topological order.
Transcribed Image Text:II. Read each problem carefully and present an algorithm with the required running-time to solve each problem. 1. In class we discussed that directed acyclic graphs (DAG) can be used to represent dependency/precedence relations. One example is modeling task dependency where tasks are represented as vertices and edges represents direct dependencies between tasks, e.g., if task Ti requires task I, then there is an edge from vertex i to vertex j. Arranging tasks with respect to their dependencies can easily be done by performing topological sort to the DAG. a. Describe an algorithm that runs in O(n + m) time that given two tasks, T, and I₁, determines if task T, can be performed without performing task T₁. Note that I, is not required if it is not a direct or indirect dependency of T₁. Task I, is an indirect dependency of task I, if there is no edge from T, to T, but I must appear before 7, in the topological order. b. Describe an algorithm that runs in O(n + m) time that given a task T₁, outputs the minimum possible position of tasks T, in any topological order.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Introduction to classical planning
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning