First Commit
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
https://www.geeksforgeeks.org/a-search-algorithm/
|
||||
|
||||
|
||||
# To Remember
|
||||
1.
|
||||
|
||||
# To Study / Verify
|
||||
1. Can we add wind to heuristic function --> it is easier to move with wind instead of against the wind
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: Divide and Conquer
|
||||
created_date: 2024-10-22
|
||||
updated_date: 2024-10-22
|
||||
aliases:
|
||||
tags:
|
||||
---
|
||||
# Divide and Conquer
|
||||
|
||||
This is an algorithm design paradigm, where the main problem is split into sub problems, which then are split into further sub problems to be finally solved on a smaller level and if needed stitched back together to the overall solution. This recursive approach is often used in [[computer science]].
|
||||
Mathematically, the algorithms are often proved to be true by [[mathematical induction]].
|
||||
## Example Algorithms
|
||||
- [[Sorting Algorithms]] such as quicksort or merge sort
|
||||
- Multiplying large numbers: [[Karatsuba Algorithm]]
|
||||
- Find the closest pair of points
|
||||
- Computing the discrete Fourier Transform ([[Fast Fourier Transform |FFT]])
|
||||
|
||||
It can also be used in [[Computer Vision]] by first defining interesting [[Region of Interests |ROI]]s and only running the heavy algorithm on the subpart of the image.
|
||||
|
||||
## Advantages
|
||||
- [[GPU]]s can be used to parallelize those subtasks and thus run the process much faster
|
||||
- simplification: the problems become simpler to solve
|
||||
- Algorithmic efficiency: reduce the [[big-O notation]]
|
||||
- Memory Access: If the problem is small enough one can use only the computer [[cache]] to solve the subproblem, which makes it way faster
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
aliases:
|
||||
- ICP
|
||||
---
|
||||
[Iterative closest point](https://en.wikipedia.org/wiki/Iterative_closest_point) (ICP) is an algorithm to minimize the difference between two clouds of points, which means it can be used to reconstruct 2D or 3D surfaces from different scans. It is an algorithm that tries to solve the generic problem of [Point-Set registration](https://en.wikipedia.org/wiki/Point-set_registration)
|
||||
|
||||
|
||||
|
||||
# Implementations
|
||||
- The library [libpointmatcher](https://github.com/norlab-ulaval/libpointmatcher?tab=readme-ov-file)
|
||||
- The lightweight library [simpleICP](https://github.com/pglira/simpleICP)
|
||||
-
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Karatsuba Algorithm
|
||||
created_date: 2024-10-22
|
||||
updated_date: 2024-10-22
|
||||
aliases:
|
||||
tags:
|
||||
big-O: 1.58
|
||||
---
|
||||
# Karatsuba Algorithm
|
||||
|
||||
The Karatsuba Algorithm is used to multiply two numbers. It uses a [[Divide and Conquer]] strategy to make it computationally efficient, having a [[big-O notation]] of $n^{log_{2}3}\approx n^{1.58}$.
|
||||
|
||||
The main takeaway of the algorithm is that it uses a higher base to perform three easier and faster multiplications with less digits and then subtracts corrective terms to get the correct result
|
||||
Reference in New Issue
Block a user