Implement common data structures and algorithms

Assignment Help Data Structure & Algorithms
Reference no: EM133698288

Assignment: Graph Problem

Learning Outcome 1: Transform a real world problem into a simple abstract form that is suitable for computation

Learning Outcome 2: Implement common data structures and algorithms using a common programming language

Learning Outcome 3: Analyse the theoretical and practical run time and space complexity of computer code in order to select algorithms for specific tasks

Introduction
This assignment is more like a mini project. You will pick a graph-based problem of your choice and investigate potential problem solutions. Your submission will consist of both a Visual Studio project and a written report.

Project Choice
You may choose any type of graph problem. For example, the domain might be:

Social networks (online or real-world)
Computer networks
Navigation graphs
Neural networks
Road networks
Waterpipe networks
Project dependency graphs
Having chosen the domain that interests you, you should choose a specific problem within that domain. e.g. disease transmission, pathfinding, data propagation.

Next choose a standard graph algorithm that might form part of a solution to your problem, or one that is related to your problem domain. This could be one discussed in lectures, or another standard graph algorithm. For example:

Minimal spanning tree
Shortest path
Network flow
Topological sort
A big part of this assignment is the process of identifying a problem. The ability to identify real world problems and relevant algorithms is one of the key skills that you will need in your career. You should read about what is happening in the world around you and talk to other people (including, but not limited to, teaching staff) to find a topic that interests you.

Task 1: Standard Algorithm and Data Structure

For the first task, you should implement the standard algorithm of your choice using the adjacency list graph data structure developed in the tutorials. You may make minor modifications to the data structure to accommodate your problem domain, and you may convert the graph into a different format (e.g. adjacency matrix) if it makes sense to do so - but your graph must be initially constructed as an adjacency list. This could be achieved using a graph input file as used in tutorials, or procedurally generating a graph (e.g. using the Watts &Strogatz method).

Task 2: Problem Specific Algorithm
Your next task is to implement one or more solutions to your chosen problem and conduct an investigation. As with the first assignment you should be exploring alternatives, but the task now is more open ended. For example you might:

Compare two different solutions in terms of time and/or space efficiency
Compare two different solutions in terms of accuracy (e.g. exact solution vs approximate solution)
Compare a single solution with different configurations (e.g. how does a particular parameter affect performance?)
Compare a single solution for different types of graphs (e.g. random graph vs small world).
Or your particular problem and domain might lend itself to some other type of analysis. If you are unsure, check with your tutor or unit coordinator.

For this part of the assignment you should use the graph data structure (e.g. adjacency list or adjacency matrix) that is most appropriate.

As with the first assignment, you need to think about how to test your solution. Ideally, this will involve real-world graph data. You will find some real-world graph datasets online that you can use (e.g. graphdatasets.com). These datasets may also give you some inspiration for choosing a problem. Alternatively, you may need to generate random graphs for thorough testing (e.g. using one of the small-world graph construction techniques).

Task 3: Report
You will then write a report that includes the following sections:

Introduction and Background: introduce your problem domain and clearly describe the specific problem that this report addresses. Describe the significance of the problem and any trade-offs that might be relevant.
Methodology: describe in detail the approaches you have implemented, including pseudocode for each approach. Also describe your testing methodology.
Results and Discussion: present your results clearly and concisely, paying particular attention to the visual presentation of graphs and tables so that the reader is able to quickly and accurately compare your methods.
Conclusion: summarise your findings and discuss the significance of the results and potential future work that could be undertaken.
Unlike the first assignment, this should be a longer document in the style of a scientific report. The writing, structure, and presentation should be such that information is quickly and easily understood - it doesn't have to look pretty.

The following resources might help:

Computer Science Writing
How to write a first-class paper
Scientific Writing Made Easy
There is no word limit. As with any scientific writing, you should write as much as necessary so that another person could fully understand and reproduce your results - but absolutely no longer than necessary!

While there is no word limit, it is expected that around 1000 words should be ample for this report.

Your code submission should be structured in such a way that the marker can easily run your program to test your standard algorithm. Ensure that there are clear instructions for testing and include multiple test files.

It should also be easy for the marker to run and test your custom solution and make comparisons. Again, there should be multiple test files and/or the ability to procedurally and randomly generate graph data for testing. Think carefully about how best to display output to make it easy to interpret the results.

You can get an idea of what the marker is looking for by checking the learning outcomes at the top of the page.

For LO1, we want to see that you are able to transform your real-world problem into a graph data structure.

For LO2, we want to see that your code is correct, written in C, and that you have followed good development practices. This means that we want to see your test code and testing files, but we also want to see that your commit history on GitHub shows a well documented history of iterative and incremental development - not just one big commit. This will be absolutely essential for this assignment - submissions that do not show iterative and incremental development and testing will receive a failing grade!

For LO3 we will be looking at your approach to the investigation, your presentation of results, and your understanding of the significance of the results.

What we won't be assessing:

Quality of code and code comments. However, by now you should realise that it helps everyone (including you) if your code is clear, with at least some comments for difficult sections. If there is an error in your code, the marker may be able to correct it and continue marking if your code is clear and commented - but they don't have much time!

The presentation of your report. Again, it still helps you and the marker to make it clear and logical - it just won't be directly assessed for this assignment. So make it clear and concise, don't waste time making it fancy.

Reference no: EM133698288

Questions Cloud

Who presents to your clinic with complaints of feeling sad : Ms. Janna Doe is a 21-year-old caucasian female (born on March 3) who presents to your clinic with complaints of feeling sad.
Arthritis diagnosed with functional urinary incontinence : The home health nurse is assessing a client with severe rheumatoid arthritis diagnosed with functional urinary incontinence.
Discuss what organizational culture is : Discuss what organizational culture is and how it impacts work productivity. How organizational culture impacts the success of innovation implementation.
How it influences implementation of innovation technologies : This journal article focuses on attribution theory and how it influences the implementation of innovation technologies.
Implement common data structures and algorithms : Implement common data structures and algorithms using a common programming language and Analyse the theoretical and practical run time and space complexity
What are the main data preprocessing steps : Why are the original/raw data not readily usable by analytics tasks? What are the main data preprocessing steps? List and explain their importance in analytics.
Calculate and interpret the dispersion-spread measures : How do you describe the importance of data in analytics? Calculate and interpret the dispersion/spread measures for each and every variable.
Apply the different machine learning learned : Analyse a sample data set to demonstrate expected AI/ML outcomes - The benefits for the organisation are clearly articulated with estimates of expected revenue
Examine how nosql databases be used in app development : Illustrate how design & utility makes a difference between good vs. great websites. Explain. Examine how NoSQL databases be used in APP development.

Reviews

len3698288

5/23/2024 12:14:56 AM

Task 1 and 2 where I choose the problem , how to solve I have an idea of data structures of algorithm , i choose the navigation path of oad networks and airport networks, where we find shortest path and compare it with the accuracy use the dijstar and astar algorithm please follow that problems and what i written over there, i have txt file of road networks and airport networks, Thanks i will make report but Find minimum distance and accuracy , what i need , run that function in visual studio.

Write a Review

Data Structure & Algorithms Questions & Answers

  Benchmarking the behavior of java implementations

Research the issue of JVM warm-up necessary for properly benchmarking Java programs and ensure that your code performs the necessary warm-up so the time measure

  Create the algorithm to read information through file

Create the algorithm which will read through file and compute numbers of married men, single men, married women and single women.

  Communicate the insights gained from analysis

Create and submit a report that documents the analysis you have performed on the competition data and presents your findings and conclusions, with supporting

  Algorithms and programs design

Numerous games can actually be played rather well by computers. Amongst all the different games types existing, we consider here a set of games where the goals require the constitution of english words from a set of letters

  Show the internal state of the array

Use the QuickSort algorithm to rearrange the array. Clearly show the internal state of the array after each pass of the sorting process.

  What is minimum number of nodes expanded for bfs and dfs

Consider the following graph representing the state space and operators of a navigation problem: What is the minimum number of nodes expanded and the storage needed for BFS and DFS?

  How should we choose k in practice

How should we choose k in practice? What is the largest value of k as a function of n for which modified algorithm has same running time as standard merge sort.

  Explain queue crawl through memory in direction of its head

Does queue crawl through memory in direction of its head or its tail? Describe your answer. Describe how lack of metrics for measuring certain software properties affects software engineering discipline.

  What is procedural or algorithmic programming

What is procedural or algorithmic programming? What is object-oriented programming? What is the role of code reuse in object-oriented programming

  Design a version of mergesort that uses the auxiliary array

Given a list L[0:n - 1], one way of maintaining a sorted order of L is to use an auxiliary array Link[0:n - 1].

  Implement and test a generic binary search

Implement and test a generic binary search. Note that your test program must use at least 2 types of data to prove that bsearch is generic

  What are the qualities of a good programming algorithm

What are the qualities of a good programming algorithm? Write an algorithm (set of instructions) to find all roots of a quadratic equation ax2+bx+c=0.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd