1.
Job Scheduling: Problem: Design an algorithm to schedule jobs on multiple machines to
minimize the completion time. Each job has a specific processing time and a deadline. Solution:
Use the Earliest Deadline First (EDF) scheduling algorithm to prioritize jobs based on their
deadlines.
2. Shortest Path in a Network: Problem: Given a network of cities with different distances
between them, design an algorithm to find the shortest path between two cities. Solution:
Implement Dijkstra's algorithm to find the shortest path between two nodes in a weighted graph.
3. Network Routing: Problem: Develop an algorithm for routing packets through a network to
optimize for minimal delay and congestion. Solution: Use the Shortest Path Routing algorithm
considering both distance and network traffic.
4. Data Compression: Problem: Design an algorithm for lossless data compression, minimizing the
size of the compressed data while preserving all information. Solution: Implement Huffman
coding algorithm to compress data efficiently.
5. Resource Allocation: Problem: Develop an algorithm for allocating resources (like memory or
bandwidth) among competing processes to maximize overall efficiency. Solution: Use the Max-
Flow Min-Cut theorem to optimize resource allocation.
6. Inventory Management: Problem: Design an algorithm to optimize inventory management by
minimizing carrying costs and stockouts. Solution: Apply dynamic programming techniques to
determine the optimal reorder points and order quantities.
7. Genetic Sequence Alignment: Problem: Develop an algorithm to align genetic sequences to
identify similarities and differences. Solution: Use dynamic programming algorithms like
Needleman-Wunsch or Smith-Waterman for sequence alignment.
8. Image Processing: Problem: Design an algorithm to detect edges in an image efficiently.
Solution: Implement the Canny edge detection algorithm for detecting edges in images.
9. Text Search: Problem: Develop an algorithm to efficiently search for patterns in a large text.
Solution: Implement the Knuth-Morris-Pratt algorithm for pattern searching in strings.
10. Network Flow Optimization: Problem: Given a network with capacities on edges, design an
algorithm to optimize flow through the network. Solution: Use the Ford-Fulkerson algorithm to
find the maximum flow in a network.
11. Dynamic Programming for Robotics Path Planning: Problem: Design an algorithm to plan the
path of a robotic arm through a cluttered environment while avoiding obstacles. Solution: Use
dynamic programming techniques to compute an optimal path considering obstacles and
movement constraints.
12. Traveling Salesman Problem: Problem: Given a set of cities and the distances between them,
find the shortest possible route that visits each city exactly once and returns to the origin city.
Solution: Implement the branch and bound algorithm or use dynamic programming to solve the
Traveling Salesman Problem.
13. Optimal Binary Search Tree: Problem: Given a sorted list of keys and their probabilities of
search, design an algorithm to construct an optimal binary search tree that minimizes the average
search time. Solution: Use dynamic programming to construct an optimal binary search tree
efficiently.
14. Graph Coloring: Problem: Given a graph, assign colors to vertices such that no two adjacent
vertices have the same color, using the minimum number of colors. Solution: Implement graph
coloring algorithms such as Greedy Coloring or Backtracking with Forward Checking.
15. Parallel Algorithm Design: Problem: Design an algorithm for parallel computing to solve a
specific problem efficiently using multiple processors. Solution: Utilize techniques like parallel
prefix computation, parallel sorting, or parallel matrix multiplication based on the problem
requirements.
16. Load Balancing in Distributed Systems: Problem: Develop an algorithm for distributing
workload evenly across multiple servers to optimize resource utilization and response time.
Solution: Implement techniques like Round Robin, Weighted Round Robin, or Least Connections
to achieve load balancing.
17. Optimization in Game Theory: Problem: Design an algorithm to optimize strategies in a game
with multiple players, aiming to maximize individual or collective utility. Solution: Apply
techniques from game theory such as Nash Equilibrium or Minimax Algorithm to find optimal
strategies.
18. Blockchain Consensus Algorithm: Problem: Design a consensus algorithm for a blockchain
network to ensure agreement on the order and validity of transactions among distributed nodes.
Solution: Implement algorithms like Proof of Work (PoW), Proof of Stake (PoS), or Practical
Byzantine Fault Tolerance (PBFT) for blockchain consensus.
19. Machine Learning Algorithm Optimization: Problem: Develop an algorithm to optimize the
training process of a machine learning model, minimizing training time or maximizing accuracy.
Solution: Utilize optimization techniques like stochastic gradient descent, batch normalization, or
hyperparameter tuning.
20. Real-Time Traffic Prediction: Problem: Design an algorithm to predict real-time traffic
conditions based on historical data and current environmental factors. Solution: Use machine
learning algorithms such as neural networks, decision trees, or support vector machines to predict
traffic flow.
These assignments cover a wide range of applications where the design and analysis of algorithms play a
crucial role, providing students with practical challenges to deepen their understanding and skills.