Complex Problem Solving with Programming
Budget: €8 – €30 EUR
Task 1:
Write dynamic programming and recursive programs for a given problem obtained from 4 practical task selection test.
• Implement a recursive program to solve the given problem.
• Analyze time complexity of the recursive program (brute force) and dynamic programming approach using Big O and Omega notations.
• Implement a dynamic programming approach by defining a table to store previously calculated values and using them to compute the next value in the sequence.
Write recursive solution.
• Test both programs for different input sizes and compare their performance.
Task 2:
Parallelize the algorithms for the second and third recursive equations obtained from the 1 practical selection test, and also parallelize second and third algorithms obtained from the 4 practical task selection test. Ensure that the programs correctly synchronizes the threads by comparing the final results of the sequential and parallel versions of the programs.
• Analyze the sequential and parallel algorithms and determine their computational complexity using both Big O and Omega notations.
• Measure and compare the execution time of the sequential and parallel versions of the programs and identify any potential differences in performance as the input size increases.
The given number n. Find all possible different ways to compose n as a sum of corresponding numbers 1,3 and 4. E.g. n=5 five different way to get sum of 5: 5=1+1+1+1+1:5=1+1+3:5=1+3+1:5=3+1+1:5=1÷45=4+1
Write dynamic programming and recursive programs for a given problem obtained from 4 practical task selection test.
• Implement a recursive program to solve the given problem.
• Analyze time complexity of the recursive program (brute force) and dynamic programming approach using Big O and Omega notations.
• Implement a dynamic programming approach by defining a table to store previously calculated values and using them to compute the next value in the sequence.
Write recursive solution.
• Test both programs for different input sizes and compare their performance.
Task 2:
Parallelize the algorithms for the second and third recursive equations obtained from the 1 practical selection test, and also parallelize second and third algorithms obtained from the 4 practical task selection test. Ensure that the programs correctly synchronizes the threads by comparing the final results of the sequential and parallel versions of the programs.
• Analyze the sequential and parallel algorithms and determine their computational complexity using both Big O and Omega notations.
• Measure and compare the execution time of the sequential and parallel versions of the programs and identify any potential differences in performance as the input size increases.
The given number n. Find all possible different ways to compose n as a sum of corresponding numbers 1,3 and 4. E.g. n=5 five different way to get sum of 5: 5=1+1+1+1+1:5=1+1+3:5=1+3+1:5=3+1+1:5=1÷45=4+1