DAA Pbl Project[1]
DAA Pbl Project[1]
Project Title
Sorting Visualizer
Vanshika Aggarwal
Student id:23022784
[email protected]
Harshita Kamra
Student id: 230221054
[email protected]
Page 1
COURSE NAME AND ID PROJECT PROPOSAL
Page 2
COURSE NAME AND ID PROJECT PROPOSAL
Motivation (1 pt)
In an age where mobility is crucial, planning travel efficiently is both a common problem and a significant
challenge. Whether a tourist navigating a new city or a delivery company planning optimal routes, the need to
determine the shortest, fastest, or most cost-effective path between multiple locations is vital. Traditional route
planning methods often lack customization or transparency in their decision-making processes. This project
addresses the inefficiencies of travel planning by using graph theory to represent locations as nodes and routes as
weighted edges. The aim is to empower users with a tool that provides intelligent pathfinding based on real
algorithmic logic. This not only serves as a learning tool for graph algorithms but also provides real-world value in
areas such as tourism, logistics, and daily commuting.
Currently, platforms like Google Maps and Bing Maps dominate route planning, offering excellent interfaces and
real-time updates. However, these systems are closed-source and hide the underlying logic. Additionally, they
require internet access and may not be ideal for educational or simulation-based environments. Academic tools
used in coursework often visualize graphs but do not support real-time path calculation or user-driven
customization. Our system aims to bridge this gap by combining a lightweight user interface with powerful graph
algorithms (like Dijkstra's and DFS/BFS) to offer educational and functional route planning. Users can manually
input data or simulate travel across cities with optimal paths computed clearly.
General Goal:
To build an interactive, graph-based travel planner that allows users to input cities and routes, and computes the
most optimal travel path based on selected parameters (distance, time, etc.).
Key Milestones:
✅ Week 1–2: Requirement gathering, studying graph algorithms, selecting development tools.
✅ Week 3–4: Implement core graph data structures (adjacency list/matrix).
✅ Week 5–6: Implement Dijkstra’s Algorithm for shortest path and BFS/DFS for traversal.
✅ Week 7: Design and integrate user interface (CLI/GUI).
✅ Week 8: Testing with different map datasets and scenarios.
✅ Week 9: Prepare documentation and final report.
Page 3
COURSE NAME AND ID PROJECT PROPOSAL
Our project approach combines theoretical algorithms with practical implementation in the following steps:
1. Graph Representation
o Cities will be modeled as nodes.
o Routes between cities will be represented as weighted edges (based on distance or travel time).
o We will use Adjacency List for space efficiency.
2. Algorithm Implementation
o Dijkstra’s Algorithm will be implemented to find the shortest path between two cities.
o Breadth-First Search (BFS) and Depth-First Search (DFS) will be used to explore all reachable
cities.
o All algorithms will be tested with varying graph sizes to validate correctness and performance.
3. Programming Platform
o Language: Python (for simplicity and readability)
o Libraries:
NetworkX for graph creation and visualization
Tkinter or Text-based CLI for user interaction
Matplotlib for optional route visualization
4. User Interface
o Users will enter starting and destination cities.
o Users can select optimization preference: shortest path, fewest stops, or fastest route.
o Output will include: path taken, total distance/time, and intermediate stops.
Page 4
COURSE NAME AND ID PROJECT PROPOSAL
Assumptions
The travel network is static and does not include real-time traffic data.
All user-entered data (cities, paths, distances) are valid.
Distance and time are considered proportional unless otherwise stated.
References
(Provide a list of resources or references you utilised for the completion of this deliverable. You may provide links).
Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms.
NetworkX Documentation – https://networkx.org/documentation/stable/
GeeksforGeeks: Graph Algorithms – https://www.geeksforgeeks.org/graph-data-structure-and-algorithms/
TutorialsPoint – Dijkstra’s Algorithm: https://www.tutorialspoint.com/dijkstra-s-algorithm
Python Official Docs – https://docs.python.org
Page 5