# Computational algorithms: The definitive list

I have decided to create this list of computational algorithms since there is usually a lack of knowledge about the type of algorithms that are used, their function or even their implementation, that is why I decided to create this list in which I will only briefly mention each algorithm along with a brief summary What this algorithm is for, I hope that this information can help you have more knowledge not only of the algorithms but also of the classification to which it belongs, I have chosen the algorithms that I believe are the most relevant in the field of data and Artificial intelligence in general, if I had expanded further by adding, for example, encryption algorithms, I would have gotten out of hand with more than 200 algorithms.

It is for this reason that I prefer to leave much more summarized information that can serve as a guide for both business owners and developers who are already on the path of the data field. Before starting with the complete list of algorithms, I think it is necessary to first explain about computational algorithms in general.

## What are computational algorithms?

Computational algorithms are step-by-step instructions designed to solve specific problems efficiently in digital environments. They represent the heart of computer science and software engineering, addressing everything from simple tasks such as sorting a list to complex problems such as the design of artificial intelligence systems. Throughout the history of computing, algorithms have been the basis on which all the digital applications and systems we use in everyday life are built.

The classification of algorithms is very diverse. They can be categorized based on their function, such as search algorithms, sorting, compression, data processing, machine learning, among others. Each type of algorithm has its own specific characteristics and applications, making them suitable for solving different types of problems in various domains. For example, in the field of image and signal processing, filtering and transformation algorithms such as Fourier Transform and compression algorithms such as Huffman play a critical role in manipulating and analyzing complex data.

While artificial intelligence algorithms are used to train predictive and decision-making models. From classics such as Linear Regression and Naive Bayes to the most advanced such as Neural Networks and Genetic Algorithms. These algorithms allow machines to learn patterns and make decisions based on historical data. Furthermore, in the optimization of industrial and logistics processes, algorithms such as the Simplex Method and the Genetic Algorithm are vital to find optimal solutions to combinatorial and linear optimization problems.

That is why computational algorithms are the backbone of modern computing, allowing digital systems to perform tasks from the simplest to the most complex efficiently and accurately. Their study, design and application continue to be active areas of research and development in computer science, with the aim of improving the efficiency, scalability and precision of computing systems in all fields of application. That is why I present this list with 100 computational algorithms and a brief summary of what each of the algorithms does:

## Supervised algorithms (Machine Learning).

Among the computational algorithms, supervised learning Machine Learning algorithms are fundamental tools for building predictive models. Its central purpose lies in extracting patterns and relationships from labeled historical data, allowing predictions to be made on new data. These algorithms are widely used in a variety of applications, from price prediction and email classification to making decisions based on previous data.

**Decision trees:**Hierarchical structure to make decisions based on data conditions.**Random forest:**Ensemble of decision trees to improve predictive accuracy and reduce overfitting.**KNN:**Classifies a point based on the majority of its nearest neighbors in the feature space.**XGBoost:**Efficient implementation of decision trees, optimizing model performance.**LightBoost:**Decision tree ensemble model that optimizes prediction using gradient.**Linear regression:**Models the linear relationship between variables to predict continuous values.**Polynomial regression:**Extends linear regression to fit non-linear relationships using polynomials.**Logistic regression:**Estimate the probability that a binary variable has a value using a logistic function.**Naive Bayes:**Calculate the conditional probability of a class given the characteristics using Bayes’ theorem.**AdaBoost:**Train multiple weak classifiers to improve the performance of the final model.**Bernoulli Naive Bayes:**Variant of Naive Bayes for binary features.**Gaussian Naive Bayes:**Variant of Naive Bayes for continuous features assuming Gaussian distribution.**FP-Growth:**Algorithm to extract sets of frequent items in transactional data.**Stochastic Gradient Descent:**Optimizes objective functions by iteratively adjusting the parameters.**Support Vector Machines (SVM):**Classifies data by finding the optimal hyperplane that separates classes in a high-dimensional space.**K-D Tree:**Data structure for nearest neighbor search in multiple dimensions.**Gaussian process:**Probabilistic model for data interpolation and extrapolation.**PLSCanonical:**Method for modeling relationships between matrices of predictor variables and responses.**Apriori:**Algorithm for extracting association rules in large data sets.**Eclat:**Algorithm similar to Apriori for extraction of association rules but more efficient in terms of memory.

## Unsupervised algorithms (Machine Learning).

The main goal of these computational algorithms is to find intrinsic patterns and hidden structures in unlabeled data sets. They are essential for unsupervised exploration and understanding of data in various applications, from customer segmentation to behavioral pattern analysis. They allow underlying structures to be revealed, facilitating informed decision making in unlabeled data environments.

**K-Means:**Groups data into k groups based on feature similarities, minimizing intracluster variance.**OPTICS:**Identify variable clusters and densities in large data sets.**DBSCAN:**Classifies points into dense groups based on the proximity of their neighbors.**Hierarchical clustering:**Groups data into a hierarchy of nested clusters, facilitating interpretation.**Affinity propagation:**Automatically identifies the most representative points as “exemplars” in the data.**MeanShift:**Locate density maxima in the feature space to identify clusters.**HDBSCAN:**DBSCAN extension that finds clusters of different densities and sizes.**BIRCH:**Groups data into a balanced tree structure for scalability and efficiency.**Spectrum clustering:**Groups spectrogram data to analyze similarities in signals.**Spectral biclustering:**Groups rows and columns simultaneously in data matrices.**FastICA:**Decomposes signals into independent components maximizing their non-Gaussianity.**Factor analysis:**Models relationships between observed and latent variables to reduce dimensionality.**ICA:**Decomposes signals into independent components based on their non-Gaussianity.**PCA:**Transforms data into a new space of lower dimensionality while maintaining variability.**SparsePCA:**PCA variant that induces sparseness in the data representation.**Isomap:**Preserves the neighborhood structure of data in a reduced dimensional space.**t-SNE:**Visualizes high-dimensional data in a two-dimensional space while preserving local structure.**Ledoit Wolf:**Efficiently estimate the covariance matrix to improve precision in multivariate analyses.

## Reinforcement learning algorithms.

Reinforcement learning algorithms are fundamental in the field of artificial intelligence, addressing problems where an agent interacts with an environment to maximize a reward over time. Instead of relying on labeled data, these algorithms learn through trial and error, making sequential decisions based on previous experiences. That is why these algorithms are useful for the design of autonomous intelligent systems.

**Q-learning:**Learn optimal decision-making policies based on rewards and value estimates.**SARSA:**Reinforcement learning algorithm that updates policies based on actions taken.**DDPG:**Deep reinforcement learning algorithm that combines policy and value methods.**A3C:**Update policies asynchronously and in parallel to improve learning efficiency.**PPO:**Safely optimize policies using likelihood ratio constraints.**TRPO:**Monotonically improves policies by minimizing KL divergences.**DQN:**Uses neural networks to approximate the Q function in reinforcement learning.- â€‹â€‹
**SAC:**Reinforcement learning algorithm that maximizes policy entropy for efficient exploration.

## Computational algorithms.

These computational algorithms have diverse purposes but share the ability to solve specific problems efficiently in digital environments. From optimizing search and sorting processes to manipulating and analyzing complex data in areas such as computational geometry and graph theory, these algorithms are fundamental tools in building and improving computer systems.

**Voronoi:**Divides a space into regions based on proximity to specific points.**Delaunay:**Triangulate a set of points to form a Delaunay mesh without empty circles.**Binary search:**Efficiently finds elements in ordered lists by dividing the search space.**Quicksort:**Sorts elements of a list by dividing it into subsets and sorting them recursively.**Huffman Compression:**Encodes data by assigning variable length codes to minimize size.**Lee and Rudd Algorithm:**Find minimum cost paths in flow networks.**Prim Algorithm:**Find the minimum spanning tree in a connected and undirected graph.**Topological Sort:**Sorts the vertices of an acyclic directed graph in such a way that dependencies are respected.**RANSAC:**Estimates parameters of a model from a data set contaminated by outliers.

## Best route search algorithms.

Graph-based best-path search algorithms are essential for finding the most efficient path between two points in a network or graph. These algorithms are crucial in applications such as route planning in navigation systems, communication network design, and logistics optimization. They allow informed decision making by finding the most efficient route, considering various conditions, allowing savings of resources and time in graphs, for example: logistics routes.

**Dijkstra:**Find the shortest path in a weighted undirected or directed graph with non-negative weights.**Bellman-Ford:**Find the shortest path in a weighted graph with negative weights, avoiding negative cycles.**Topological order:**Orders the nodes of an acyclic directed graph to ensure that preceding nodes are processed before successors.**Floyd-Warshall:**Find all shortest paths between each pair of nodes in a directed or undirected graph with weights.**Johnson:**Find all shortest paths in a directed graph with weights, even if there are negative weights.**A*:**Finds the shortest path in a directed or undirected graph with weights, using a heuristic to prioritize the search.**A of temporal order:**Optimizes the route considering the time of day for real-time navigation.**Energy-Aware Pathfinding:**Find efficient paths considering energy in sensor networks or mobile devices.**Dynamic Pathfinding:**Adjusts the path in real time in response to changes in the environment or constraints.**Vehicular Network Routing:**Find efficient routes in vehicular networks considering mobility and traffic congestion.

## Neural netoworks algorithms.

Computational algorithms based on neural networks are a category of machine learning techniques inspired by the structure and functioning of the human brain. These algorithms, often called neural network models, are made up of layers of connected nodes (neurons), and are used for complex data processing tasks, typically for unstructured data such as images, text, audio, and time series.

**Autoencoders:**Neural networks to learn efficient representations of data, useful in reconstruction and compression tasks.**Perceptron:**Basic unit of a neural network, it performs a linear combination followed by an activation function.**RNN:**Recurrent neural networks suitable for sequential data, with cyclic connections that allow feedback.**CNN:**Convolutional neural networks, effective in processing spatial data such as images.**Multilayer perceptron:**Neural network with multiple hidden layers that can learn complex relationships in data.**Restricted Boltzmann Machine:**Generative neural network that models probability distributions.**BRNN:**Bidirectional recurrent neural network, capable of capturing dependencies in both directions in sequential data.**GAN:**Generative Adversarial Networks for generating realistic data from a noise space.**LSTM:**Recurrent neural networks with gates that allow long-term information recall, useful in sequencing tasks.**GRU:**Simplified variant of LSTM, computationally efficient but with similar capabilities.**3D CNN:**Three-dimensional convolutional networks for processing volumetric data, such as 3D videos or medical scans.**ResNet:**Residual neural networks that facilitate the training of deeper networks, mitigating the problem of gradient fading.**CycleGAN:**Cyclic generative adversarial networks for learning cross-domain image transformations.**Transformer neural network:**Attention model mainly used in natural language processing tasks.**Bayesian neural network:**Probabilistic model that represents uncertainty in the relationships between variables.**Siamese neural network:**Networks that compare the similarity between two inputs, used in matching and recognition tasks.**Evolutionary neural network:**Uses genetic algorithms to evolve the architecture and parameters of the network, searching for better solutions.

## Mathematical algorithms.

Mathematical optimization algorithms focus on finding optimal values â€‹â€‹for functions, minimizing or maximizing their results. These algorithms are essential in fields such as data science, engineering and decision making and are also fundamental for the optimization of processes and the resolution of complex mathematical problems. Here I leave more than 10 examples of mathematical algorithms.

**Newton-Raphson:**Method for finding approximations of roots of functions through iterations.**Fermat:**Algorithm to check if a number is prime based on Fermat’s little theorem.**Karatsuba:**Algorithm for fast multiplication of large integers.**Horner:**Technique to evaluate polynomials efficiently.**Strassen:**Algorithm to multiply matrices more efficiently than the traditional method.**Miller-Rabin:**Probabilistic algorithm to verify the primality of a number.**Bresenham:**Algorithm for plotting lines on a discrete grid.**Sieve:**Method for finding all prime numbers up to a certain limit.**Euler:**Makes the local error proportional to the square of the step size, and the global error proportional to the step size.**Ruffini:**Method for dividing polynomials efficiently.**Akra-Basi:**Theorem to analyze the time complexity of recursive algorithms.**Gauss step:**Method for solving systems of linear equations using row operations.**Euclid:**Algorithm to calculate the greatest common divisor of two integers.**Fibonacci:**Sequence of numbers where each term is the sum of the previous two.**Simplex:**Algorithm to solve linear programming problems.**Metropolis-Hastings:**Monte Carlo method for generating samples from a probability distribution.**Francis:**Algorithm to calculate eigenvalues â€‹â€‹of tridiagonal symmetric matrices.**Tomasulo:**Algorithm for dynamic programming of execution units in superscalar processors.

### Do you need to integrate computational algorithms into your project?

We can help you! Whatever the algorithm, we will help you implement it with data and put it into production for your project.