Question
This assignment allows you to study in-depth STRING MATCHING algorithms namely Brute-Force, Boyer-Moore and Knuth-Morris-Pratt algorithms and the concepts of analysing algorithms through empirical method
This assignment allows you to study in-depth STRING MATCHING algorithms namely Brute-Force, Boyer-Moore and Knuth-Morris-Pratt algorithms and the concepts of analysing algorithms through empirical method (experimentally) and at the same time able to compare the results with the theoretical analysis (O-notation)). The empirical method is carried by an implementation of a program that counts the number of executions of main operations
Specification
i. You are to write a program using Java on any computer systems. The program is required to implement Brute-Force, Boyer-Moore and Knuth-Morris-Pratt algorithms on any pattern P and text T. Add a counter in appropriate location of your implementation to count the number of times major operations namely the number of skips and the number of comparisons are performed in the algorithm. Run the program using various experimental datasets and try to find and run the worst case, average case and best case, if any.
ii. You are to use different types of data which are English text, DNA and Protein data.
You are to study the three algorithms and compare them empirically as well as theoretically.
The report for this assignment must be properly typed and cover the discussion on the empirical performance of the implementations and their relation with the corresponding results of the theoretical analysis (O-Notation). Presentation of the empirical data obtained in tabular and graphical forms are required.
Test data: Complete test data are required to show that your program works properly. The datasets and the corresponding outputs are to be provided in the report with justification Test data for the experiments: Test data for the experiments are required. The real test data are not required to be included in the report, but you should describe in details the datasets that you have used and the purpose of using the datasets.
a good programming approach,
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started