Graph ADT Implementation
Problem Statement:
Trainer recruitment process is going on for the Software Engineering post-graduation programme at BITS Pilani University. The requirement is to hire the minimum number of trainers who can handle the maximum number of topics that are part of the curriculum in the post-graduation programme. Let us assume that a trainer can handle a maximum of 5 topics. The topics are listed below:
- Artificial Intelligence (AI)
- Machine Learning (ML)
- Database management (DBMS)
- Data Science (DS)
- Data Structures and Algorithm Design (DSAD)
- Computer Organisation (CO)
- Data Mining (DM)
- Mathematical Foundation for Data science (MDS) You are required to design a program that can help answer the below queries efficiently.
- Display the list of names of trainers and the unique list of topics handled by all of them.
- Calculate the least number of trainers to be recruited to handle all the subjects.
- Find the list of trainers who can handle a specific topic.
- If there is a requirement for a trainer who can handle any given topic, is there one single trainer who can do that? If yes, whom?
Requirements:
- Model the following problem as Graphs based problem using Python 3.7. Clearly state how the vertices and edges can be modelled such that this graph can be used to answer the following queries efficiently.
- Read the input from a file inputPS13.txt
- You will output your answers to a file outputPS13.txt
- Perform an analysis for the features above and give the running time in terms of input size: n