算法代写 | Programming Assignment 3: Routing Algorithm Implementation Assignment

本次澳洲代写主要为算法应用相关的assignment

Part 1 (DV algorithm)
You are to produce a program that:
1. Reads information about a topology/updates to the topology from the standard input.
Handle bad input:
Printing a reasonable error message and
Terminating the program with exit code 1;
Bad input should not cause your program to crash.
2. Uses DV algorithm or DV with PR algorithm, as appropriate, to bring the simulated routers to
convergence.

Output the distance tables in the required format for each router at each step/round.
Output the final routing tables in the required format once convergence is reached.
3. Repeats the above steps until no further input is provided.
The DV algorithm program you are to provide should be named DistanceVector .
Part 2 (DV with PR algorithm)
You will need to modify/write a second version of the program that uses poisoned reverse/route
poisoning.
The DV with PR algorithm program you are to provide should be named PoisonedReverse .
In Your Task
You will need to craft any internal data structures and design your program in such a way that it
will reliably and correctly converge to the correct routing tables. We have deliberately not provided
you with a code templates and this means that you will have more freedom in your design but that
you will have to think about the problem and come up with a design.
You will need to record your progress and development cycle in a logbook as described in the
‘Before you Begin’ section above.

Programming Language/Software Requirements
You may complete this assignment using the programming language of your choice, with the
following restrictions:
For compiled languages (Java, C, C++ etc.) you must provide a Makefile.
Your software will be compiled with make (Please look at this resource on how to use
Makefile build tool: https://makefiletutorial.com/ (https://makefiletutorial.com/) )
Pre-compiled programs will not be accepted.
Your implementation must work with the versions of programming languages installed on the
Web Submission system, these are the same as those found in the labs and on the uss.cs
server and include (but are not limited to):
C/C++: g++ (GCC) 4.8.5
Java: java version “1.8.0_201”
Python: python 2.7.5 or python 3.6.8
Your implementation may use any libraries/classes available on Web Submission system, but
no external libraries/classes/modules.
Your programs will be executed with the command examples below:
For C/C++
make
./DistanceVector
./PoisonedReverse