CSCI 255 Fall 2013
Introduction to Algorithms and Discrete Structures
Archived Class
Charles Cusack
Computer Science
Hope College



CSCI 125
CSCI 255
MATH 341


Homework 19


  • Most problems are found in one of the following:
    1. ADM: The Algorithm Design Manual
    2. IDMA: An Introduction to Discrete Mathematics and Algorithms
  • For full credit, provide context for each problem, show all calculations, and justify all answers by providing enough comments to explain your reasoning.
  • You will lose a significant amount of credit if you do not provide context, calculations, and justifications for a problem.
  • Numbers and/or algebra by themselves are not enough. A correct answer with no justification will be worth no more than half credit, and sometimes much less than that.
  • Precision is very important. You cannot skip steps, make guesses, or use flawed logic. Any of these things can lead to incorrect answers.
  • Homework assignments must be very neatly written or typeset (e.g. using Word or OpenOffice).
  • You must indicate any assistance/collaboration you had on an assignment as specified on the Policies page.
  • NEW! If a problem asks for an algorithm, you should give the most efficient algorithm you can find to ensure full credit. You should also specify the complexity of the algorithm with justification, whether or not the problem asks for it.


Implement an algorithm called CountShortestPaths that counts the number of shortests paths between two vertices in an unweighted graph.

Use the Algoraph Plugin (which should already be installed on the lab machines) and upload your algorithm so you can test it on some graphs. Your algorithm should extend BreadthFirstSearchSkeletonAlgorithm. The getResult method should return just the number of paths from the first vertex in the graph to the last one. BFS will automatically run starting at the first vertex.

I will look at your algorithms in Algoraph so all you need to do is make sure your algorithm is uploaded.