# SP4EHW_IM/HW1854fc74beddcmaster

# README.md

## Homework No. 1 - SP4E Course

Mahmoud Shaqfa, Igor Tomić

Ex.No.1 "Exercise1.py", includes an algorithm to find a minimum value of an objective function using the algorithm from the optimization library of Scipy module, while recording iteration steps and residuals in the appropriate matrixes. Finally, it plots the iterative steps across objective function's surface. The program can be run using the terminal command: python3 Exercise1.py

The file "Benchmark1.py" is a file to benchmark the solution of the problem from exercise 2, which is to find a minimum value of function using the Conjugate Gradient (CG) algorithm. Unlike the "Exercise2.py" where the CG algorithm is manually written, here the algorithm from the optimization library of Scipy module is used. The program can be run using the terminal command: python3 Benchmark1.py

Ex.No.2 "Exercise2.py", includes an algorithm for the Conjugate Gradient (CG) algorithm and plots the iterative steps over the objective's surface. The program can be run using the terminal command: python3 Exercise2.py.

The file "Benchmark2.py" is a file to benchmark the solution of the pre-proposed problem. This file is a direct application for a musical-inspired algorithm. It's a general algorithm that can solve any type of the optimization problems of any hardness. For more information about it refer to:

- Geem, Zong Woo, Joong Hoon Kim, and G. V. Loganathan (2001). "A new heuristic optimization algorithm: harmony search." Simulation 76.2: pp. 60-68.