Skip to content

This is the Final Project for CSCI-570 Analysis of Algorithms. It was aimed at Sequence Alignment using the basic Dynamic Programming approach and a space-efficient (linear space instead of quadratic) version of the Hirschberg Algorithm.

Notifications You must be signed in to change notification settings

xutong05/CSCI570-FinalProject

Repository files navigation

CSCI570-FinalProject

Click here for project description

Graphical Visualization

MemoryPlot CPUPlot

Summary

From the result and graph, we can see that as increasing problem size(m * n), the line of DP's memory is linear(y = k * m * n), and the line of the DP&DC's memory is almost close to x-axis. In result, the complexity of DP's memory is O(m * n), but the complexity of DP&DC's memory is O(m + n). In the Time Graph, the time complexity of DP and DP&DC are both O(m * n). However, the line of DP&DC is steeper than DP which means DP&DC uses more time than DP.

How to Execute

python3 String_generator.py input.txt
python3 9451263998_5033799212_7197616609_basic.py
python3 String_generator.py input.txt
python3 9451263998_5033799212_7197616609_efficient.py

9451263998_5033799212_7197616609_basic.py file generates an output_basic.txt file as output. 9451263998_5033799212_7197616609_efficient.py file generates an output_efficient.txt file as output.
There are four lines in our output files: first 50 and last 50 characters in the first alignment, first 50 and last 50 characters in the second alignment, total runtime, and total space used.

About

This is the Final Project for CSCI-570 Analysis of Algorithms. It was aimed at Sequence Alignment using the basic Dynamic Programming approach and a space-efficient (linear space instead of quadratic) version of the Hirschberg Algorithm.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published