DAA Course Project
Dynamic Programming Challenge
Mekelle Institute of Technology
1 Problem Overview
You are tasked with solving a multi-stage decision problem using dynamic programming.
The problem revolves around finding the most efficient route through a set of interconnected
tasks that have various completion costs. Each task has dependencies on previous tasks, and
some tasks can be bypassed at an additional penalty cost. Your objective is to minimize the
overall cost while fulfilling all required dependencies.
The problem consists of N tasks, with a given task graph representing the dependencies and
costs. Each task can either be completed fully or bypassed at a cost, and certain tasks must
be completed in sequence due to the dependencies. The exact number of tasks, N , will be
determined by the sum of the last digits of your group members’ student ID numbers.
The stages of decision-making are as follows:
1. For each task, decide whether to complete the task or bypass it at a penalty.
2. If completed, the cost of completion will depend on the previous task it was dependent
on.
3. Bypassing a task adds a fixed penalty.
The goal is to minimize the total cost while ensuring all required dependencies are respected.
2 Task Requirements
1. Input: A graph of tasks and their dependencies, with each task having a completion cost
if done after the dependent task. For example, if Task B depends on Task A, the cost
of doing Task B depends on whether Task A was done or not. Additionally, a penalty is
incurred for bypassing a task.
2. Output: The sequence of tasks and whether they are completed or bypassed, along with
the minimum possible total cost.
3 Specific Questions to Answer
1. What if you use a Divide and Conquer approach to solve this problem? How would
you break down the problem, and what would be the computational complexity compared
to dynamic programming?
2. What if you solve this problem using a Greedy Algorithm? Describe the strategy you’d
use to select tasks at each stage. Would this approach always yield an optimal solution?
Why or why not?
1
Dynamic Programming Challenge October 2024
3. What are the advantages of using Dynamic Programming over these other techniques
(Divide and Conquer, Greedy)? Explain why dynamic programming is suitable for this
problem.
4. Provide a step-by-step computation for calculating the minimum cost using dynamic
programming. Explain how you fill out the decision table, and show the recursive relations
that lead to the optimal solution.
5. Construct and explain the Dynamic Programming Table. Each group should create
their own table, with the number of tasks based on the sum of their group members’
student ID digits. Explain how you derive the optimal solution from this table.
4 Special Instructions
• Use the sum of the last digits of your members’ student ID numbers to determine the
total number of tasks, N .
• Each group member should explain a unique part of the problem and its solution in the
final video submission.
– For example, one member could explain the problem and its model, another member
could explain the dynamic programming approach and table construction, and the
last member could explain the comparison to other algorithms (Divide and Conquer,
Greedy).
5 Submission Guidelines
1. Submit a handwritten and scanned document of your solution, with clear diagrams,
tables, and explanations.
2. Along with the written solution, submit a video (maximum 10 minutes) explaining your
solution. Ensure each group member presents a unique part of the solution.
3. Your group should consist of 2-3 members.
4. Deadline: Tuesday, October 29, 2024.
6 Important Warning: Avoid Plagiarism
Plagiarism is strictly prohibited in this course project. You must ensure that your solution,
explanations, and video are entirely your own work. If any plagiarism or even the appearance
of plagiarism is detected in your submission, it will lead to an automatic rejection of your
project and possible further disciplinary actions.
Ensure that all work is original, and properly attribute any external resources or references that
you may use for guidance. Submissions should reflect your unique approach and under-
standing of the problem.
Make sure that your handwritten solutions and video explanations are authentic and
individual to your group. Every group member should contribute their own perspective to the
final submission.
Good luck, and ensure all parts of the problem are clearly explained!