https://github.com/nemat-al/algo_tasks
Tasks for Algorithms Course @ ITMO University
https://github.com/nemat-al/algo_tasks
algorithms
Last synced: 3 months ago
JSON representation
Tasks for Algorithms Course @ ITMO University
- Host: GitHub
- URL: https://github.com/nemat-al/algo_tasks
- Owner: nemat-al
- Created: 2024-04-19T15:45:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-19T17:08:50.000Z (over 1 year ago)
- Last Synced: 2025-03-16T22:44:00.114Z (7 months ago)
- Topics: algorithms
- Language: Jupyter Notebook
- Homepage:
- Size: 1.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Algo-Tasks
Implementing Tasks in Python.
The tasks are assignements for Algorithms Course in ITMO university.#### 1.[Experimental time complexity analysis](https://github.com/nemat-al/Algo_Tasks/blob/main/Task%2001.ipynb)
For each of some suggested algorithms, and for size of input from 1 to 2000, it is required
to measure the average execution time after running each algorithm five times. For the sake
of analyzing the results, we plot the data showing the empirical time execution as a function
to π beside the expected theoretical time complexity.-----------
#### 2.[Algorithms for unconstrained nonlinear optimization. Direct methods](https://github.com/nemat-al/Algo_Tasks/blob/main/Task%2002.ipynb)
For the task of one dimensional minimizations, we implement the three different methods (exhaustive search, dichotomy and golden section search). Then apply them to find the
minimum of three different proposed functions. And we compare between the three approaches for the number of function calculations and the number of iterations performed.
For the task of multidimensional minimizations, we use three different approaches to minimize the error, which is calculated by Mean of Least Squares, to find two types of
approximation for a certain generated data.-----------
#### 3.[Algorithms for unconstrained nonlinear optimization. First- and second order methods](https://github.com/nemat-al/Algo_Tasks/blob/main/Task%2003.ipynb)
For the task of multidimensional minimizations, we use four different approaches to minimize the error, which is calculated by Means of Least Squares. In order to set the
parameters for two types of approximation. The idea is to approximate a noisy data (π¦ + ππππ π) to the original data (π¦) as a function of (π₯).-----------
#### 4.[Algorithms for unconstrained nonlinear optimization. Stochastic and metaheuristic algorithms](https://github.com/nemat-al/Algo_Tasks/blob/main/Task%2004.ipynb)
Through the task, we investigate two different approaches to present a graph, adjacency
list and adjacency matrix. In addition, we implement the algorithm of Depth-first search to
find the connected components of a graph. Moreover, Breadth-first search is applied to fins
shortest path between two nodes.-----------
#### 5.[Algorithms on graphs. Introduction to graphs and basic algorithms on graphs](https://github.com/nemat-al/Algo_Tasks/blob/main/Task%2005.ipynb)
Through the task, we investigate two different approaches to present a graph, adjacency
list and adjacency matrix. In addition, we implement the algorithm of Depth-first search to
find the connected components of a graph. Moreover, Breadth-first search is applied to fins
shortest path between two nodes.-----------
#### 6.[Algorithms on graphs. Path search algorithms on weighted graphs](https://github.com/nemat-al/Algo_Tasks/blob/main/Task%2006.ipynb)
Through the task, we investigate two different algorithms to find the shortest path between
two different vertices in a weighted graph, Dijkstra's and Bellman-Ford. And a comparison
between both algorithm is provided, after running each of them 10 times for the same
vertices. In addition, we apply A* algorithm to find a shortest path between two -non
obstacle cells in a 10x20 cell grid with 40 obstacle cells, and the algorithm is repeated five
times to analyze the results.-----------
#### 7.[Practical analysis of advanced algorith](https://github.com/nemat-al/Algo_Tasks/blob/main/Task%2008.ipynb)
In this task, we investigate two algorithms, Johnsonβs algorithm, which finds shortest paths
between all pairs in a sparse graph, and Floyd-Warshall algorithm, which finds all-pairs
shortest-paths in a graph. The analysis is done by applying different empirical experiments
to calculate the empirical time complexity, besides, figuring out the theoretical time and
space complexity.