Lista de algoritmos

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

La siguiente es una lista de algoritmos junto con descripciones de una línea para cada uno.

Algoritmos combinatorios

Algoritmos combinatorios generales

  • Algoritmo de Brent: encuentra un ciclo en iteraciones de valor de función usando solo dos iteradores
  • Algoritmo de búsqueda de ciclos de Floyd: encuentra un ciclo en iteraciones de valores de función
  • Algoritmo de Gale-Shapley: resuelve el problema del matrimonio estable
  • Generadores de números pseudoaleatorios (distribuidos uniformemente; consulte también la Lista de generadores de números pseudoaleatorios para otros PRNG con diversos grados de convergencia y calidad estadística variable):
    • Generador BELLOTA
    • Blum Blum Shub
    • Generador de Fibonacci rezagado
    • Generador lineal congruente
    • Tornado de Mersenne

Algoritmos gráficos

  • Algoritmo de coloración: Algoritmo de coloración de gráficos.
  • Algoritmo de Hopcroft-Karp: convierte un gráfico bipartito en una coincidencia de cardinalidad máxima
  • Algoritmo húngaro: algoritmo para encontrar una combinación perfecta
  • Codificación de Prüfer: conversión entre un árbol etiquetado y su secuencia de Prüfer
  • Algoritmo de ancestros comunes más bajos fuera de línea de Tarjan: calcula los ancestros comunes más bajos para pares de nodos en un árbol
  • Clasificación topológica: encuentra el orden lineal de los nodos (por ejemplo, trabajos) en función de sus dependencias.

Dibujo gráfico

  • Algoritmos basados ​​en la fuerza (también conocidos como algoritmos dirigidos por la fuerza o algoritmos basados ​​en resortes)
  • Diseño espectral

Teoría de redes

  • Análisis de red
    • Análisis de enlaces
      • Algoritmo de Girvan-Newman: detección de comunidades en sistemas complejos
      • Análisis de enlaces web
        • Búsqueda de temas inducidos por hipervínculos (HITS) (también conocidos como centros y autoridades)
        • Rango de página
        • TrustRank
  • Redes de flujo
    • Algoritmo de Dinic: es un algoritmo fuertemente polinomial para calcular el flujo máximo en una red de flujo.
    • Algoritmo de Edmonds-Karp: implementación de Ford-Fulkerson
    • Algoritmo de Ford-Fulkerson: calcula el flujo máximo en un gráfico
    • Algoritmo de Karger: un método de Monte Carlo para calcular el corte mínimo de un gráfico conectado
    • Algoritmo push-relabel: calcula un flujo máximo en un gráfico

Enrutamiento para gráficos

  • Algoritmo de Edmonds (también conocido como algoritmo de Chu-Liu/Edmonds): encuentre ramificaciones máximas o mínimas
  • Árbol de expansión mínimo euclidiano: algoritmos para calcular el árbol de expansión mínimo de un conjunto de puntos en el plano
  • Problema del camino más largo: encuentre un camino simple de longitud máxima en un gráfico dado
  • Árbol de expansión mínimo
    • Algoritmo de Borůvka
    • Algoritmo de Kruskal
    • algoritmo de Prim
    • Algoritmo de eliminación inversa
  • Conmutador de expansión mínima sin bloqueo, por ejemplo, para una central telefónica
  • Problema del camino más corto
    • Algoritmo Bellman-Ford: calcula las rutas más cortas en un gráfico ponderado (donde algunos de los pesos de los bordes pueden ser negativos)
    • Algoritmo de Dijkstra: calcula las rutas más cortas en un gráfico con pesos de borde no negativos
    • Algoritmo de Floyd-Warshall: resuelve el problema del camino más corto de todos los pares en un gráfico dirigido y ponderado
    • Algoritmo de Johnson: algoritmo de ruta más corta de todos los pares en un gráfico dirigido ponderado disperso
  • Problema de cierre transitivo: encuentre el cierre transitivo de una relación binaria dada
  • Problema del vendedor ambulante
    • Algoritmo de Christofides
    • Algoritmo de vecino más cercano
  • Regla de Warnsdorff: un método heurístico para resolver el problema del recorrido del caballero.

Búsqueda gráfica

  • A*: caso especial de búsqueda mejor primero que utiliza heurística para mejorar la velocidad
  • B*: un algoritmo de búsqueda de gráfico mejor primero que encuentra la ruta de menor costo desde un nodo inicial dado a cualquier nodo objetivo (de uno o más objetivos posibles)
  • Backtracking: abandona soluciones parciales cuando se encuentra que no satisfacen una solución completa
  • Beam search: es un algoritmo de búsqueda heurística que es una optimización de la mejor búsqueda primero que reduce su requisito de memoria
  • Búsqueda de pila de haces: integra el retroceso con la búsqueda de haces
  • Mejor búsqueda primero: atraviesa un gráfico en el orden de importancia probable utilizando una cola de prioridad
  • Búsqueda bidireccional: encuentre la ruta más corta desde un vértice inicial hasta un vértice objetivo en un gráfico dirigido
  • Búsqueda primero en amplitud: atraviesa un gráfico nivel por nivel
  • Búsqueda de fuerza bruta: un método de búsqueda exhaustivo y confiable, pero computacionalmente ineficiente en muchas aplicaciones.
  • D*: un algoritmo de búsqueda heurística incremental
  • Búsqueda en profundidad: atraviesa un gráfico rama por rama
  • Algoritmo de Dijkstra: un caso especial de A* para el que no se utiliza ninguna función heurística
  • Solucionador general de problemas: un algoritmo seminal de prueba de teoremas destinado a funcionar como una máquina universal de resolución de problemas.
  • Búsqueda iterativa de profundización primero en profundidad (IDDFS): una estrategia de búsqueda en el espacio de estado
  • Búsqueda de punto de salto: una optimización de A* que puede reducir el tiempo de cálculo en un orden de magnitud utilizando heurísticas adicionales.
  • Búsqueda lexicográfica en amplitud (también conocida como Lex-BFS): un algoritmo de tiempo lineal para ordenar los vértices de un gráfico
  • Búsqueda de costo uniforme: una búsqueda de árbol que encuentra la ruta de menor costo donde los costos varían
  • SSS*: búsqueda en el espacio de estados que atraviesa un árbol de juegos de la mejor manera similar a la del algoritmo de búsqueda A*
  • F*: algoritmo especial para fusionar las dos matrices

Subgrafos

  • camarillas
    • Algoritmo de Bron-Kerbosch: una técnica para encontrar camarillas máximas en un gráfico no dirigido
    • Algoritmo de camarilla máxima MaxCliqueDyn: encuentre una camarilla máxima en un gráfico no dirigido
  • Componentes fuertemente conectados
    • Algoritmo de componentes fuertes basado en rutas
    • Algoritmo de Kosaraju
    • Algoritmo de componentes fuertemente conectados de Tarjan
  • Problema de isomorfismo de subgrafo

Algoritmos de secuencia

Coincidencia de secuencia aproximada

  • Algoritmo bitap: algoritmo difuso que determina si las cadenas son aproximadamente iguales.
  • Algoritmos fonéticos
    • Daitch-Mokotoff Soundex: un refinamiento de Soundex que permite la combinación de apellidos eslavos y germánicos
    • Metaphone doble: una mejora de Metaphone
    • Enfoque de clasificación de coincidencias: un algoritmo fonético desarrollado por Western Airlines
    • Metáfono: un algoritmo para indexar palabras por su sonido, cuando se pronuncia en inglés
    • NYSIIS: algoritmo fonético, mejora Soundex
    • Soundex: un algoritmo fonético para indexar nombres por sonido, como se pronuncia en inglés
  • Métricas de cadena: calcula una puntuación de similitud o diferencia (distancia) entre dos pares de cadenas de texto
    • Distancia Damerau-Levenshtein: calcula una medida de distancia entre dos cadenas, mejora la distancia de Levenshtein
    • Coeficiente de Dice (también conocido como coeficiente de Dice): una medida de similitud relacionada con el índice de Jaccard
    • Distancia de Hamming: suma del número de posiciones que son diferentes
    • Distancia Jaro-Winkler: es una medida de similitud entre dos cadenas
    • Distancia de edición de Levenshtein: calcula una métrica para la cantidad de diferencia entre dos secuencias
  • Búsqueda de trigramas: busca texto cuando no se conoce con precisión la sintaxis o la ortografía exactas del objeto de destino

Algoritmos de selección

  • Selección rápida
  • Introseleccionar

Búsqueda de secuencia

  • Búsqueda lineal: localiza un elemento en una secuencia desordenada
  • Algoritmo de selección: encuentra el k -ésimo elemento más grande en una secuencia
  • Búsqueda ternaria: una técnica para encontrar el mínimo o el máximo de una función que es estrictamente creciente y luego estrictamente decreciente o viceversa.
  • listas ordenadas
    • Algoritmo de búsqueda binaria: localiza un elemento en una secuencia ordenada
    • Técnica de búsqueda de Fibonacci: busca una secuencia ordenada utilizando un algoritmo de divide y vencerás que reduce las ubicaciones posibles con la ayuda de los números de Fibonacci
    • Búsqueda de salto (o búsqueda de bloque): búsqueda lineal en un subconjunto más pequeño de la secuencia
    • Búsqueda predictiva: búsqueda de tipo binario que tiene en cuenta la magnitud del término de búsqueda frente a los valores alto y bajo de la búsqueda. A veces se llama búsqueda de diccionario o búsqueda interpolada.
    • Búsqueda binaria uniforme: una optimización del clásico algoritmo de búsqueda binaria

Fusión de secuencias

  • Algoritmo de fusión simple
  • algoritmo de fusión k-way
  • Unión (fusión, con elementos en la salida no repetidos)

Permutaciones de secuencia

  • Mezcla de Fisher-Yates (también conocida como la combinación de Knuth): mezcla aleatoriamente un conjunto finito
  • Algoritmo de Schensted: construye un par de cuadros de Young a partir de una permutación
  • Algoritmo Steinhaus-Johnson-Trotter (también conocido como algoritmo Johnson-Trotter): genera permutaciones transponiendo elementos
  • Algoritmo de generación de permutación de Heap: elementos de intercambio para generar la siguiente permutación

Combinaciones de secuencias

Alineación de secuencia

  • Deformación dinámica del tiempo: mida la similitud entre dos secuencias que pueden variar en tiempo o velocidad
  • Algoritmo de Hirschberg: encuentra la alineación de secuencia de menor costo entre dos secuencias, medida por su distancia de Levenshtein
  • Algoritmo de Needleman-Wunsch: encuentre la alineación global entre dos secuencias
  • Algoritmo de Smith-Waterman: encuentre la alineación de la secuencia local

Clasificación de secuencias

  • Tipos de intercambio
    • Ordenación de burbujas: para cada par de índices, intercambie los elementos si están fuera de servicio
    • Tipo de coctelera o tipo de burbuja bidireccional, un tipo de burbuja que atraviesa la lista alternativamente de adelante hacia atrás y de atrás hacia adelante
    • Tipo de peine
    • Tipo de gnomo
    • orden par-impar
    • Quicksort: divide la lista en dos, con todos los elementos de la primera lista antes que todos los elementos de la segunda lista.; luego ordene las dos listas. A menudo, el método de elección
  • Humorístico o ineficaz
    • Bogosort
    • Tipo de títere
  • Híbrido
    • Flashsort
    • Introsort: comience con quicksort y cambie a heapsort cuando la profundidad de recursión exceda un cierto nivel
    • Timsort: algoritmo adaptativo derivado de la ordenación por fusión y la ordenación por inserción. Usado en Python 2.3 y versiones posteriores, y Java SE 7.
  • Ordenaciones por inserción
    • Clasificación por inserción: determine dónde pertenece el elemento actual en la lista de elementos ordenados e insértelo allí
    • Clasificación de biblioteca
    • clasificación de paciencia
    • Shell sort: un intento de mejorar la ordenación por inserción
    • Clasificación de árbol (clasificación de árbol binario): cree un árbol binario, luego recorralo para crear una lista ordenada
    • Clasificación de ciclo: en el lugar con un número teóricamente óptimo de escrituras
  • Fusionar ordenaciones
    • Clasificación por combinación: ordene la primera y la segunda mitad de la lista por separado, luego combine las listas ordenadas
    • Clasificación lenta
    • Clasificación de hebras
  • Ordenaciones sin comparación
    • Clasificación de cuentas
    • Clasificación de cubeta
    • Burstsort: construya un trie de ráfaga compacto y eficiente en caché y luego recórralo para crear una salida ordenada
    • clasificación de conteo
    • Tipo de casillero
    • Tipo de cartero: variante del tipo de cubo que aprovecha la estructura jerárquica
    • Radix sort: ordena cadenas letra por letra
  • Clases de selección
    • Heapsort: convierta la lista en un montón, siga eliminando el elemento más grande del montón y agregándolo al final de la lista
    • Clasificación de selección: elija el más pequeño de los elementos restantes, agréguelo al final de la lista ordenada
    • Clasificación suave
  • Otro
    • Clasificador bitónico
    • clasificación de panqueques
    • Tipo de espagueti
    • clasificación topológica
  • clase desconocida
    • Clasificación de muestras

Subsecuencias

  • Algoritmo de Kadane: encuentra el subarreglo máximo de cualquier tamaño
  • Problema de la subsecuencia común más larga: encuentre la subsecuencia más larga común a todas las secuencias en un conjunto de secuencias
  • Problema de subsecuencia creciente más larga: encuentre la subsecuencia creciente más larga de una secuencia dada
  • Algoritmo de Ruzzo-Tompa: encuentre todas las subsecuencias de puntuación máxima, contiguas y que no se superpongan en una secuencia de números reales
  • Problema de la supersecuencia común más corta: encuentra la supersecuencia más corta que contiene dos o más secuencias como subsecuencias

Subcadenas

  • Problema de la subcadena común más larga: busque la cadena (o cadenas) más larga que sea una subcadena (o sean subcadenas) de dos o más cadenas
  • Búsqueda de subcadena
    • Algoritmo de coincidencia de cadenas Aho-Corasick: algoritmo basado en pruebas para encontrar todas las coincidencias de subcadenas con cualquiera de un conjunto finito de cadenas
    • Algoritmo de búsqueda de cadenas de Boyer-Moore: algoritmo lineal amortizado (sublineal en la mayoría de los casos) para la búsqueda de subcadenas
    • Algoritmo de Boyer-Moore-Horspool: simplificación de Boyer-Moore
    • Algoritmo Knuth-Morris-Pratt: búsqueda de subcadenas que evita el reexamen de caracteres coincidentes
    • Algoritmo de búsqueda de cadenas Rabin-Karp: busca múltiples patrones de manera eficiente
    • Algoritmo de coincidencia de cadenas Zhu-Takaoka: una variante de Boyer-Moore
  • Algoritmo de Ukkonen: un algoritmo en línea de tiempo lineal para construir árboles de sufijos
  • Comodines coincidentes
    • Wildmat de Rich Salz: un algoritmo recursivo de código abierto ampliamente utilizado
    • Algoritmo de comodines coincidentes de Krauss: un algoritmo no recursivo de código abierto

Matemáticas computacionales

Álgebra abstracta

  • Chien search: un algoritmo recursivo para determinar raíces de polinomios definidos sobre un campo finito
  • Algoritmo de Schreier-Sims: cálculo de un conjunto generador base y fuerte (BSGS) de un grupo de permutación
  • Algoritmo de Todd-Coxeter: Procedimiento para generar clases laterales.

álgebra informática

  • Algoritmo de Buchberger: encuentra una base de Gröbner
  • Algoritmo de Cantor-Zassenhaus: factorizar polinomios sobre campos finitos
  • Algoritmo Faugère F4: encuentra una base de Gröbner (también menciona el algoritmo F5)
  • Algoritmo de Gosper: encuentre sumas de términos hipergeométricos que sean en sí mismos términos hipergeométricos
  • Algoritmo de finalización de Knuth-Bendix: para reescribir sistemas de reglas
  • Algoritmo de división multivariante: para polinomios en varios indeterminados
  • Algoritmo canguro de Pollard (también conocido como algoritmo lambda de Pollard): un algoritmo para resolver el problema del logaritmo discreto
  • División larga de polinomios: un algoritmo para dividir un polinomio por otro polinomio del mismo grado o menor
  • Algoritmo de Risch: un algoritmo para la operación de cálculo de integración indefinida (es decir, encontrar antiderivadas)

Geometría

  • Problema del par más cercano: encuentre el par de puntos (de un conjunto de puntos) con la menor distancia entre ellos
  • Algoritmos de detección de colisiones: verifica la colisión o intersección de dos sólidos dados
  • Algoritmo de cono: identificar puntos de superficie
  • Algoritmos de casco convexo: determinación del casco convexo de un conjunto de puntos
    • Escaneo graham
    • Casco rápido
    • Algoritmo de envoltura de regalos o marcha de Jarvis
    • algoritmo de Chan
    • Algoritmo de Kirkpatrick-Seidel
  • Transformada de distancia euclidiana: calcula la distancia entre cada punto de una cuadrícula y una colección discreta de puntos.
  • Hashing geométrico: un método para encontrar de manera eficiente objetos bidimensionales representados por puntos discretos que han sufrido una transformación afín
  • Algoritmo de distancia de Gilbert-Johnson-Keerthi: determinación de la distancia más pequeña entre dos formas convexas.
  • Algoritmo Jump-and-Walk: un algoritmo para la ubicación de puntos en triangulaciones
  • Suavizado laplaciano: un algoritmo para suavizar una malla poligonal
  • Intersección de segmento de línea: encontrar si las líneas se cruzan, generalmente con un algoritmo de línea de barrido
    • Algoritmo de Bentley-Ottmann
    • Algoritmo de Shamos-Hoey
  • Algoritmos de cuadro delimitador mínimo: encuentre el cuadro delimitador mínimo orientado que encierra un conjunto de puntos
  • Búsqueda de vecino más cercano: encuentre el punto o puntos más cercanos a un punto de consulta
  • Punto en algoritmos de polígono: prueba si un punto dado se encuentra dentro de un polígono dado
  • Algoritmos de registro de conjuntos de puntos: encuentra la transformación entre dos conjuntos de puntos para alinearlos de manera óptima.
  • Calibradores giratorios: determinan todos los pares de puntos antípodas y vértices en un polígono convexo o casco convexo.
  • Algoritmo de cordón: determina el área de un polígono cuyos vértices están descritos por pares ordenados en el plano
  • Triangulación
    • triangulación de Delaunay
      • Algoritmo de Ruppert (también conocido como refinamiento de Delaunay): cree triangulaciones de Delaunay de calidad
      • Segundo algoritmo de Chew: crear triangulaciones de Delaunay con restricciones de calidad
    • Triángulos de marcha: reconstruya la geometría de la superficie bidimensional a partir de una nube de puntos no estructurada
    • Algoritmos de triangulación de polígonos: descomponer un polígono en un conjunto de triángulos
    • Diagramas de Voronoi, dual geométrico de triangulación de Delaunay
      • Algoritmo de Bowyer-Watson: cree un diagrama de Voronoi en cualquier número de dimensiones
      • Algoritmo de Fortune: crea un diagrama de voronoi
    • Cuasitriangulación

Algoritmos de teoría de números

  • Algoritmo GCD binario: forma eficiente de calcular GCD.
  • Algoritmo de multiplicación de Booth
  • Método Chakravala: un algoritmo cíclico para resolver ecuaciones cuadráticas indeterminadas, incluida la ecuación de Pell
  • Logaritmo discreto:
    • Paso de bebé paso de gigante
    • Algoritmo de cálculo de índice
    • Algoritmo rho de Pollard para logaritmos
    • Algoritmo de Pohlig-Hellman
  • Algoritmo euclidiano: calcula el máximo común divisor
  • Algoritmo euclidiano extendido: también resuelve la ecuación ax + by = c.
  • Factorización de enteros: descomponer un número entero en sus factores primos
    • Congruencia de cuadrados
    • algoritmo de dixon
    • método de factorización de Fermat
    • Tamiz de campo numérico general
    • Factorización de la curva elíptica de Lenstra
    • Algoritmo p − 1 de Pollard
    • Algoritmo rho de Pollard
    • algoritmo de factorización prima
    • tamiz cuadrático
    • Algoritmo de Shor
    • Tamiz de campo numérico especial
    • división de prueba
  • Algoritmos de multiplicación: multiplicación rápida de dos números
    • Algoritmo Karatsuba
    • Algoritmo de Schönhage-Strassen
    • Multiplicación de Toom-Cook
  • Raíz cuadrada modular: cálculo de raíces cuadradas módulo a número primo
    • Algoritmo de Tonelli-Shanks
    • Algoritmo de Cipolla
    • Algoritmo de búsqueda de raíces de Berlekamp
  • Algoritmo de Odlyzko-Schönhage: calcula ceros no triviales de la función zeta de Riemann
  • Algoritmo Lenstra-Lenstra-Lovász (también conocido como algoritmo LLL): encuentre una base reticular corta, casi ortogonal en tiempo polinomial
  • Pruebas de primalidad: determinar si un número dado es primo
    • Prueba de primalidad AKS
    • Prueba de primalidad de Baillie-PSW
    • Prueba de primalidad de Fermat
    • Prueba de primalidad de Lucas
    • Prueba de primalidad de Miller-Rabin
    • Tamiz de Atkin
    • Tamiz de Eratóstenes
    • Tamiz de Sundaram

Algoritmos numéricos

Resolución de ecuaciones diferenciales

  • método de Euler
  • Método de Euler hacia atrás
  • Regla trapezoidal (ecuaciones diferenciales)
  • Métodos lineales de varios pasos
  • Métodos de Runge-Kutta
    • Integración de Euler
  • Métodos de redes múltiples (métodos MG), un grupo de algoritmos para resolver ecuaciones diferenciales utilizando una jerarquía de discretizaciones.
  • Ecuación diferencial parcial:
    • Método de diferencias finitas
    • Método de Crank-Nicolson para ecuaciones de difusión
    • Lax-Wendroff para ecuaciones de onda
  • Integración de Verlet (pronunciación francesa: [ vɛʁˈlɛ]): integrar las ecuaciones de movimiento de Newton

Funciones elementales y especiales.

  • Cálculo de π:
    • Algoritmo de Borwein: un algoritmo para calcular el valor de 1/π
    • Algoritmo de Gauss-Legendre: calcula los dígitos de pi
    • Algoritmo de Chudnovsky: un método rápido para calcular los dígitos de π
    • Fórmula de Bailey-Borwein-Plouffe: (fórmula BBP) un algoritmo de espiga para el cálculo del enésimo dígito binario de π
  • Algoritmos de división: para calcular el cociente y/o resto de dos números
    • División larga
    • Restaurando la división
    • División no restauradora
    • división SRT
    • División de Newton-Raphson: utiliza el método de Newton para encontrar el recíproco de D y multiplica ese recíproco por N para encontrar el cociente final Q.
    • división Goldschmidt
  • Funciones hiperbólicas y trigonométricas:
    • Algoritmo BKM: calcula funciones elementales usando una tabla de logaritmos
    • CORDIC: calcula funciones hiperbólicas y trigonométricas utilizando una tabla de arcotangentes
  • Exponenciación:
    • Exponenciación de cadena de suma: exponenciación por potencias enteras positivas que requiere un número mínimo de multiplicaciones
    • Exponenciación por elevación al cuadrado: un algoritmo utilizado para el cálculo rápido de grandes potencias enteras de un número
  • Reducción de Montgomery: un algoritmo que permite que la aritmética modular se realice de manera eficiente cuando el módulo es grande
  • Algoritmos de multiplicación: multiplicación rápida de dos números
    • Algoritmo de multiplicación de Booth: un algoritmo de multiplicación que multiplica dos números binarios con signo en notación de complemento a dos
    • Algoritmo de Fürer: un algoritmo de multiplicación de enteros para números muy grandes que posee una complejidad asintótica muy baja
    • Algoritmo de Karatsuba: un procedimiento eficiente para multiplicar números grandes
    • Algoritmo de Schönhage-Strassen: un algoritmo de multiplicación asintóticamente rápido para números enteros grandes
    • Multiplicación Toom-Cook: (Toom3) un algoritmo de multiplicación para números enteros grandes
  • Algoritmos del inverso multiplicativo: para calcular el inverso multiplicativo (recíproco) de un número.
    • método de newton
  • Funciones de redondeo: las formas clásicas de redondear números
  • Algoritmo Spigot: una forma de calcular el valor de una constante matemática sin conocer los dígitos precedentes
  • Raíz cuadrada y enésima de un número:
    • Algoritmo alfa max más beta min: una aproximación de la raíz cuadrada de la suma de dos cuadrados
    • Métodos para calcular raíces cuadradas
    • algoritmo de raíz n -ésima
    • Desplazamiento del algoritmo de raíz enésima: extracción de raíz dígito por dígito
  • Suma:
    • División binaria: una técnica de divide y vencerás que acelera la evaluación numérica de muchos tipos de series con términos racionales
    • Algoritmo de suma de Kahan: un método más preciso para sumar números de coma flotante
  • Algoritmo sin restricciones

Geométrico

  • Retroproyección filtrada: calcula eficientemente la transformada de radón bidimensional inversa.
  • Método de ajuste de nivel (LSM): una técnica numérica para rastrear interfaces y formas

Interpolación y extrapolación

  • Interpolación de Birkhoff: una extensión de la interpolación polinomial
  • interpolación cúbica
  • Interpolación de hermita
  • Interpolación de Lagrange: interpolación usando polinomios de Lagrange
  • Interpolación lineal: un método de ajuste de curvas utilizando polinomios lineales
  • Interpolación cúbica monótona: una variante de la interpolación cúbica que conserva la monotonicidad del conjunto de datos que se interpola.
  • Interpolación multivariante
    • Interpolación bicúbica, una generalización de la interpolación cúbica a dos dimensiones
    • Interpolación bilineal: una extensión de la interpolación lineal para interpolar funciones de dos variables en una cuadrícula regular
    • Remuestreo de Lanczos ("Lanzosh"): un método de interpolación multivariable utilizado para calcular nuevos valores para cualquier dato muestreado digitalmente
    • Interpolación del vecino más cercano
    • Interpolación tricúbica, una generalización de la interpolación cúbica a tres dimensiones
  • Interpolación de Pareto: un método para estimar la mediana y otras propiedades de una población que sigue una distribución de Pareto.
  • Interpolación de polinomios
    • Algoritmo de Neville
  • Interpolación spline: reduce el error con el fenómeno de Runge.
    • Algoritmo de De Boor: B-splines
    • Algoritmo de De Casteljau: curvas de Bézier
  • Interpolación trigonométrica

Álgebra lineal

  • Algoritmos de valores propios
    • Iteración de Arnoldi
    • iteración inversa
    • método jacobi
    • iteración de Lanczos
    • Iteración de potencia
    • algoritmo QR
    • iteración del cociente de Rayleigh
  • Proceso de Gram-Schmidt: ortogonaliza un conjunto de vectores
  • Algoritmos de multiplicación de matrices
    • Algoritmo de Cannon: un algoritmo distribuido para la multiplicación de matrices especialmente adecuado para computadoras dispuestas en una malla N × N
    • Algoritmo de Coppersmith-Winograd: multiplicación de matrices cuadradas
    • Algoritmo de Freivalds: un algoritmo aleatorio utilizado para verificar la multiplicación de matrices
    • Algoritmo de Strassen: multiplicación de matrices más rápida
  • Resolver sistemas de ecuaciones lineales
    • Método del gradiente biconjugado: resuelve sistemas de ecuaciones lineales
    • Gradiente conjugado: un algoritmo para la solución numérica de sistemas particulares de ecuaciones lineales
    • eliminación gaussiana
    • Eliminación de Gauss-Jordan: resuelve sistemas de ecuaciones lineales
    • Método de Gauss-Seidel: resuelve sistemas de ecuaciones lineales de forma iterativa
    • Recursión de Levinson: resuelve una ecuación que involucra una matriz de Toeplitz
    • Método de Stone: también conocido como procedimiento fuertemente implícito o SIP, es un algoritmo para resolver un sistema lineal de ecuaciones disperso.
    • Sobrerelajación sucesiva (SOR): método utilizado para acelerar la convergencia del método de Gauss-Seidel
    • Algoritmo de matriz tridiagonal (algoritmo de Thomas): resuelve sistemas de ecuaciones tridiagonales
  • Algoritmos de matriz dispersa
    • Algoritmo Cuthill-McKee: reduce el ancho de banda de una matriz dispersa simétrica
    • Algoritmo de grado mínimo: permuta las filas y columnas de una matriz dispersa simétrica antes de aplicar la descomposición de Cholesky
    • Descomposición simbólica de Cholesky: forma eficiente de almacenar matriz dispersa

Monte Carlo

  • Muestreo de Gibbs: genera una secuencia de muestras a partir de la distribución de probabilidad conjunta de dos o más variables aleatorias
  • Hybrid Monte Carlo: genera una secuencia de muestras utilizando la cadena de Markov ponderada hamiltoniana Monte Carlo, a partir de una distribución de probabilidad que es difícil de muestrear directamente.
  • Algoritmo Metropolis-Hastings: utilizado para generar una secuencia de muestras a partir de la distribución de probabilidad de una o más variables
  • Algoritmo de Wang y Landau: una extensión del muestreo del algoritmo Metropolis-Hastings

Integracion numerica

  • Algoritmo MISER: simulación Monte Carlo, integración numérica

Hallazgo de raíz

  • método de bisección
  • Método de la posición falsa: aproxima las raíces de una función
  • Método ITP: minmax convergencia óptima y superlinar simultáneamente
  • Método de Newton: encuentra ceros de funciones con cálculo
  • Método de Halley: utiliza derivadas primera y segunda
  • Método secante: 2 puntos, 1 lado
  • Método de posición falsa y método de Illinois: 2 puntos, horquillado
  • Método de Ridder: escala exponencial de 3 puntos
  • Método de Muller: interpolación cuadrática de 3 puntos

Algoritmos de optimización

  • Poda alfa-beta: búsqueda para reducir el número de nodos en el algoritmo minimax
  • Rama y atado
  • Algoritmo de Bruss: ver algoritmo de cuotas
  • Multiplicación de matrices en cadena
  • Optimización combinatoria: problemas de optimización donde el conjunto de soluciones factibles es discreto
    • Procedimiento de búsqueda adaptativa aleatoria voraz (GRASP): construcciones sucesivas de una solución aleatoria aleatoria voraz y mejoras iterativas posteriores de la misma a través de una búsqueda local
    • Método húngaro: un algoritmo de optimización combinatoria que resuelve el problema de asignación en tiempo polinomial
  • Satisfacción de restricciones
    • Algoritmos generales para la satisfacción de restricciones
      • Algoritmo AC-3
      • Algoritmo de mapa de diferencia
      • Algoritmo de conflictos mínimos
    • Algoritmo Chaff: un algoritmo para resolver instancias del problema de satisfacibilidad booleano
    • Algoritmo de Davis-Putnam: comprobar la validez de una fórmula lógica de primer orden
    • Algoritmo de Davis-Putnam-Logemann-Loveland (DPLL): un algoritmo para decidir la satisfacibilidad de la fórmula lógica proposicional en forma normal conjuntiva, es decir, para resolver el problema CNF-SAT
    • Problema de cobertura exacta
      • Algoritmo X: un algoritmo no determinista
      • Dancing Links: una implementación eficiente del Algoritmo X
  • Método de entropía cruzada: un enfoque general de Monte Carlo para la optimización multiextremal combinatoria y continua y el muestreo de importancia
  • Evolución diferencial
  • Programación dinámica: problemas que exhiben las propiedades de subproblemas superpuestos y subestructura óptima
  • Método elipsoide: es un algoritmo para resolver problemas de optimización convexa
  • Computación evolutiva: optimización inspirada en los mecanismos biológicos de la evolución
    • estrategia de evolución
    • Programación de expresión génica
    • Algoritmos genéticos
      • Selección proporcional al estado físico, también conocida como selección de rueda de ruleta
      • Muestreo universal estocástico
      • Selección de truncamiento
      • selección de torneo
    • Algoritmo memético
    • Inteligencia de enjambre
      • Optimización de colonias de hormigas
      • Algoritmo de abejas: un algoritmo de búsqueda que imita el comportamiento de búsqueda de alimentos de los enjambres de abejas melíferas.
      • Enjambre de particulas
  • Algoritmo de Frank-Wolfe: un algoritmo iterativo de optimización de primer orden para la optimización convexa restringida
  • Búsqueda de sección áurea: un algoritmo para encontrar el máximo de una función real
  • Descenso de gradiente
  • Búsqueda de cuadrícula
  • Búsqueda de armonía (HS): un algoritmo metaheurístico que imita el proceso de improvisación de los músicos
  • Método del punto interior
  • Programación lineal
    • Algoritmo de Benson: un algoritmo para resolver problemas de optimización de vectores lineales
    • Descomposición de Dantzig-Wolfe: un algoritmo para resolver problemas de programación lineal con estructura especial
    • Generación de columna retrasada
    • Programación lineal entera: resuelva problemas de programación lineal donde algunas o todas las incógnitas están restringidas a valores enteros
      • Rama y corte
      • Método del plano de corte
    • Algoritmo de Karmarkar: El primer algoritmo razonablemente eficiente que resuelve el problema de programación lineal en tiempo polinomial.
    • Algoritmo simplex: un algoritmo para resolver problemas de programación lineal
  • búsqueda de línea
  • Búsqueda local: una metaheurística para resolver problemas de optimización computacionalmente difíciles
    • Escalada de colinas con reinicio aleatorio
    • Búsqueda tabú
  • Minimax utilizado en la programación de juegos
  • Búsqueda de vecino más cercano (NNS): encuentre los puntos más cercanos en un espacio métrico
    • Best Bin First: encuentre una solución aproximada al problema de búsqueda del vecino más cercano en espacios de dimensiones muy altas
  • El método de Newton en optimización.
  • optimización no lineal
    • Método BFGS: un algoritmo de optimización no lineal
    • Algoritmo de Gauss-Newton: un algoritmo para resolver problemas de mínimos cuadrados no lineales.
    • Algoritmo de Levenberg-Marquardt: un algoritmo para resolver problemas de mínimos cuadrados no lineales.
    • Método Nelder-Mead (método downhill simplex): un algoritmo de optimización no lineal
  • Algoritmo de probabilidades (algoritmo de Bruss): encuentra la estrategia óptima para predecir un último evento específico en un evento de secuencia aleatoria
  • Búsqueda aleatoria
  • recocido simulado
  • Tunelización estocástica
  • Algoritmo de suma de subconjuntos

Ciencia computacional

Astronomía

  • Algoritmo del fin del mundo: día de la semana
  • La congruencia de Zeller es un algoritmo para calcular el día de la semana para cualquier fecha del calendario juliano o gregoriano
  • varios algoritmos de Pascua se utilizan para calcular el día de Pascua

Bioinformática

  • Herramienta de búsqueda de alineación local básica, también conocida como BLAST: un algoritmo para comparar información de secuencias biológicas primarias
  • Algoritmo de Kabsch: calcule la alineación óptima de dos conjuntos de puntos para calcular la desviación cuadrática media de la raíz entre dos estructuras de proteínas.
  • Velvet: un conjunto de algoritmos que manipulan gráficos de Bruijn para el ensamblaje de secuencias genómicas
  • Clasificación por reversiones firmadas: un algoritmo para comprender la evolución genómica.
  • Máxima parsimonia (filogenética): un algoritmo para encontrar el árbol filogenético más simple para explicar una matriz de caracteres dada.
  • UPGMA: un algoritmo de construcción de árboles filogenéticos basado en la distancia.

Geociencia

  • Fórmulas de Vincenty: un algoritmo rápido para calcular la distancia entre dos puntos de latitud/longitud en un elipsoide
  • Geohash: un algoritmo de dominio público que codifica un par decimal de latitud/longitud como una cadena hash

Lingüística

  • Algoritmo de Lesk: desambiguación del sentido de las palabras
  • Algoritmo de derivación: un método para reducir palabras a su forma de raíz, base o raíz
  • Algoritmo de Sukhotin: un algoritmo de clasificación estadística para clasificar caracteres en un texto como vocales o consonantes

Medicamento

  • Algoritmo ESC para el diagnóstico de insuficiencia cardiaca
  • Criterios de Manning para el síndrome del intestino irritable
  • Algoritmos de diagnóstico de embolia pulmonar
  • Proyecto de Algoritmo de Medicamentos de Texas

Física

  • Algoritmo de restricción: una clase de algoritmos para satisfacer restricciones para cuerpos que obedecen las ecuaciones de movimiento de Newton.
  • Algoritmo Demon: un método de Monte Carlo para muestrear eficientemente miembros de un conjunto microcanónico con una energía dada
  • Algoritmo de Featherstone: calcula los efectos de las fuerzas aplicadas a una estructura de juntas y enlaces
  • Aproximación del estado fundamental
    • método variacional
      • metodo ritz
  • problemas de n -cuerpo
    • Simulación de Barnes-Hut: Resuelve el problema de n cuerpos de una manera aproximada que tiene el orden O(n log n) en lugar de O(n) como en una simulación de suma directa.
    • Método multipolar rápido (FMM): acelera el cálculo de fuerzas de largo alcance
  • Algoritmo de conteo de flujo de lluvia: reduce un historial de estrés complejo a un conteo de reversiones de estrés elementales para usar en el análisis de fatiga
  • Barrido y poda: un algoritmo de fase amplia utilizado durante la detección de colisiones para limitar la cantidad de pares de sólidos que deben verificarse para detectar colisiones
  • Algoritmo VEGAS: un método para reducir el error en las simulaciones Monte Carlo
  • Dinámica de Glauber: un método para simular el modelo de Ising en una computadora

Estadísticas

  • Algoritmos para el cálculo de la varianza: evitando la inestabilidad y el desbordamiento numérico
  • Algoritmo de conteo aproximado: permite contar un gran número de eventos en un pequeño registro
  • estadísticas bayesianas
    • Algoritmo de muestreo anidado: un enfoque computacional para el problema de comparar modelos en estadísticas bayesianas
  • Algoritmos de agrupamiento
    • Agrupamiento de vinculación promedio: un algoritmo de agrupamiento aglomerativo simple
    • Algoritmo de agrupamiento Canopy: un algoritmo de agrupamiento previo no supervisado relacionado con el algoritmo K-means
    • Agrupamiento de enlaces completos: un algoritmo de agrupamiento aglomerativo simple
    • DBSCAN: un algoritmo de agrupamiento basado en la densidad
    • Algoritmo de maximización de expectativas
    • Agrupación difusa: una clase de algoritmos de agrupación donde cada punto tiene un grado de pertenencia a las agrupaciones
      • c-medias difusas
      • Agrupación de FLAME (agrupación difusa por aproximación local de membresías): defina agrupaciones en las partes densas de un conjunto de datos y realice la asignación de agrupaciones únicamente en función de las relaciones de vecindad entre los objetos
    • Algoritmo de agrupamiento KHOPCA: un algoritmo de agrupamiento local, que produce clústeres jerárquicos de saltos múltiples en entornos estáticos y móviles.
    • k-means clustering: agrupar objetos basados ​​en atributos en particiones
    • k-means++: una variación de esto, usando semillas aleatorias modificadas
    • k-medoids: similar a k-means, pero elige puntos de datos o medoids como centros
    • Algoritmo Linde-Buzo-Gray: un algoritmo de cuantificación vectorial para obtener un buen libro de códigos
    • Algoritmo de Lloyd (iteración o relajación de Voronoi): agrupa puntos de datos en un número determinado de categorías, un algoritmo popular para la agrupación de k-medias
    • OPTICS: un algoritmo de agrupamiento basado en la densidad con un método de evaluación visual
    • Agrupamiento de enlace único: un algoritmo de agrupamiento aglomerativo simple
    • SUBCLU: un algoritmo de agrupamiento subespacial
    • Método de Ward: un algoritmo de agrupamiento aglomerativo, extendido a algoritmos de Lance-Williams más generales
    • Algoritmo de agrupamiento WACA: un algoritmo de agrupamiento local con estructuras potencialmente multisalto; para redes dinámicas
  • Teoría de la estimación
    • Algoritmo de maximización de expectativas Una clase de algoritmos relacionados para encontrar estimaciones de máxima verosimilitud de parámetros en modelos probabilísticos.
      • Maximización de expectativa de subconjunto ordenado (OSEM): se utiliza en imágenes médicas para tomografía por emisión de positrones, tomografía computarizada por emisión de fotón único y tomografía computarizada de rayos X.
    • Algoritmo de probabilidades (algoritmo de Bruss) Búsqueda en línea óptima de valor distinguido en entrada aleatoria secuencial
    • Filtro de Kalman: estime el estado de un sistema dinámico lineal a partir de una serie de medidas ruidosas
  • El algoritmo del falso vecino más cercano (FNN) estima la dimensión fractal
  • Modelo oculto de Markov
    • Algoritmo de Baum-Welch: calcula estimaciones de máxima verosimilitud y estimaciones de modo posterior para los parámetros de un modelo oculto de Markov
    • Algoritmo adelante-atrás: un algoritmo de programación dinámica para calcular la probabilidad de una secuencia de observación particular
    • Algoritmo de Viterbi: encuentre la secuencia más probable de estados ocultos en un modelo oculto de Markov
  • Regresión de mínimos cuadrados parciales: encuentra un modelo lineal que describe algunas variables pronosticadas en términos de otras variables observables
  • Teoría de colas
    • Algoritmo de Buzen: un algoritmo para calcular la constante de normalización G (K) en el teorema de Gordon-Newell
  • RANSAC (una abreviatura de "RANdom SAmple Consensus"): un método iterativo para estimar los parámetros de un modelo matemático a partir de un conjunto de datos observados que contiene valores atípicos
  • Algoritmo de puntuación: es una forma del método de Newton que se utiliza para resolver numéricamente ecuaciones de máxima verosimilitud.
  • Método de Yamartino: calcule una aproximación a la desviación estándar σθ de la dirección del viento θ durante un solo paso a través de los datos entrantes
  • Algoritmo Ziggurat: genera números aleatorios a partir de una distribución no uniforme

Ciencias de la Computación

Arquitectura de Computadores

  • Algoritmo de Tomasulo: permite que las instrucciones secuenciales que normalmente estarían bloqueadas debido a ciertas dependencias se ejecuten de forma no secuencial

Gráficos de computadora

  • Recorte
    • recorte de línea
      • Cohen–Sutherland
      • Ciro-Beck
      • Recorte rápido
      • Liang–Barsky
      • Nicholl-Lee-Nicholl
    • Recorte de polígono
      • Sutherland–Hodgman
      • Vatti
      • Weiler–Atherton
  • Curvas de nivel e Isosuperficies
    • Cubos en marcha: extraiga una malla poligonal de una isosuperficie de un campo escalar tridimensional (a veces llamado vóxeles)
    • Cuadrados de marcha: genera líneas de contorno para un campo escalar bidimensional
    • Tetraedros en marcha: una alternativa a los cubos en marcha
  • Teorema de Green discreto: es un algoritmo para calcular integrales dobles sobre un dominio rectangular generalizado en tiempo constante. Es una extensión natural del algoritmo de tabla de área sumada.
  • Relleno de inundación: llena una región conectada de una matriz multidimensional con un símbolo específico
  • Algoritmos de iluminación global: considera la iluminación directa y la reflexión de otros objetos.
    • Oclusión ambiental
    • Trazado de haz
    • Trazado de cono
    • Iluminación basada en imágenes
    • transporte ligero metrópolis
    • Trazado de ruta
    • Mapeo de fotones
    • radiosidad
    • trazado de rayos
  • Eliminación de superficies ocultas o Determinación visual de superficies
    • Algoritmo de Newell: elimine los ciclos de polígonos en la clasificación de profundidad requerida en la eliminación de superficies ocultas
    • Algoritmo de pintor: detecta partes visibles de un paisaje tridimensional
    • Representación de línea de exploración: construye una imagen moviendo una línea imaginaria sobre la imagen
    • Algoritmo Warnock
  • Dibujo lineal: algoritmo gráfico para aproximar un segmento de línea en medios gráficos discretos.
    • Algoritmo de línea de Bresenham: traza puntos de una matriz bidimensional para formar una línea recta entre 2 puntos específicos (usa variables de decisión)
    • Algoritmo de línea DDA: traza puntos de una matriz bidimensional para formar una línea recta entre 2 puntos específicos (usa matemáticas de punto flotante)
    • Algoritmo de línea de Xiaolin Wu: algoritmo para antialiasing de línea.
  • Algoritmo de círculo de punto medio: un algoritmo utilizado para determinar los puntos necesarios para dibujar un círculo
  • Algoritmo Ramer-Douglas-Peucker: dada una 'curva' compuesta de segmentos de línea para encontrar una curva no muy diferente pero que tenga menos puntos
  • Sombreado
    • Sombreado Gouraud: un algoritmo para simular los diferentes efectos de la luz y el color en la superficie de un objeto en gráficos 3D por computadora
    • Sombreado de Phong: un algoritmo para interpolar vectores normales de superficie para sombreado de superficie en gráficos de computadora 3D
  • Slerp (interpolación lineal esférica): interpolación de cuaterniones con el fin de animar la rotación 3D
  • Tabla de área sumada (también conocida como imagen integral): un algoritmo para calcular la suma de valores en un subconjunto rectangular de una cuadrícula en tiempo constante

Criptografía

  • Cifrado asimétrico (clave pública):
    • ElGamal
    • Criptografía de curva elíptica
    • MAE1
    • NTRUEncriptar
    • RSA
  • Firmas digitales (autenticación asimétrica):
    • DSA, y sus variantes:
      • ECDSA y ECDSA determinista
      • EdDSA (Ed25519)
    • RSA
  • Funciones hash criptográficas (ver también la sección sobre códigos de autenticación de mensajes):
    • BLAKE
    • MD5: tenga en cuenta que ahora hay un método para generar colisiones para MD5
    • RIPEMD-160
    • SHA-1: tenga en cuenta que ahora hay un método para generar colisiones para SHA-1
    • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
    • SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256)
    • Tiger (TTH), generalmente utilizado en hash de árbol de tigre
    • TORBELLINO
  • Generadores de números pseudoaleatorios criptográficamente seguros
    • Blum Blum Shub: basado en la dureza de la factorización
    • Fortuna, pensado como una mejora del algoritmo Yarrow
    • Registro de desplazamiento de retroalimentación lineal (nota: muchos algoritmos basados ​​en LFSR son débiles o se han roto)
    • Algoritmo de milenrama
  • Intercambio de llaves
    • Intercambio de llaves Diffie-Hellman
    • Diffie-Hellman de curva elíptica (ECDH)
  • Funciones de derivación de claves, a menudo utilizadas para el hash de contraseñas y el estiramiento de claves
    • cripta
    • PBKDF2
    • cripta
    • Argón2
  • Códigos de autenticación de mensajes (algoritmos de autenticación simétricos, que toman una clave como parámetro):
    • HMAC: autenticación de mensajes hash con clave
    • poli1305
    • SipHash
  • Compartir secretos, dividir secretos, dividir claves, algoritmos M de N
    • Esquema de Blakey
    • El esquema de Shamir
  • Cifrado simétrico (clave secreta):
    • Estándar de cifrado avanzado (AES), ganador de la competencia NIST, también conocido como Rijndael
    • pez globo
    • Dos peces
    • Tres peces
    • Estándar de cifrado de datos (DES), a veces algoritmo DE, ganador de la competencia de selección de NBS, reemplazado por AES para la mayoría de los propósitos
    • OCURRENCIA
    • RC4 (cifrado)
    • Algoritmo de cifrado minúsculo (TEA)
    • Salsa20, y su variante actualizada ChaCha20
  • Criptografía poscuántica
  • Algoritmos de prueba de trabajo

Lógica digital

  • minimización booleana
    • Algoritmo Quine-McCluskey: también llamado algoritmo QM, método programable para simplificar las ecuaciones booleanas.
    • Método de Petrick: Otro algoritmo para la simplificación booleana.
    • Minimizador de lógica heurística de Espresso: algoritmo rápido para la minimización de funciones booleanas.

Aprendizaje automático y clasificación estadística

  • ALOPEX: un algoritmo de aprendizaje automático basado en correlación
  • Aprendizaje de reglas de asociación: descubre relaciones interesantes entre variables, utilizadas en minería de datos
    • algoritmo a priori
    • Algoritmo Eclat
    • Algoritmo de crecimiento FP
    • Regla de un atributo
    • Regla de atributo cero
  • Impulso (meta-algoritmo): use muchos alumnos débiles para aumentar la efectividad
    • AdaBoost: refuerzo adaptativo
    • BrownBoost: un algoritmo de refuerzo que puede ser robusto para conjuntos de datos ruidosos
    • LogitBoost: impulso de regresión logística
    • LPBoost: refuerzo de programación lineal
  • Bootstrap aggregating (bagging): técnica para mejorar la estabilidad y la precisión de la clasificación
  • Visión por computador
    • Grabcut basado en cortes gráficos
  • Árboles de decisión
    • Algoritmo C4.5: una extensión de ID3
    • Algoritmo ID3 (dicotómico iterativo 3): use heurística para generar pequeños árboles de decisión
  • Agrupamiento: una clase de algoritmos de aprendizaje no supervisados ​​para agrupar y agrupar vectores de entrada relacionados.
    • k-vecinos más cercanos (k-NN): un método para clasificar objetos basado en ejemplos de entrenamiento más cercanos en el espacio de características
  • Algoritmo Linde-Buzo-Gray: un algoritmo de cuantificación vectorial utilizado para derivar un buen libro de códigos
  • Hashing sensible a la localidad (LSH): un método para realizar la reducción de dimensión probabilística de datos de alta dimensión
  • Red neuronal
    • Retropropagación: un método de aprendizaje supervisado que requiere un maestro que sepa, o pueda calcular, el resultado deseado para cualquier entrada dada
    • Hopfield net: una red neuronal recurrente en la que todas las conexiones son simétricas
    • Perceptron: el tipo más simple de red neuronal feedforward: un clasificador lineal.
    • Redes neuronales acopladas a pulsos (PCNN): modelos neuronales propuestos mediante el modelado de la corteza visual de un gato y desarrollados para el procesamiento de imágenes biomiméticas de alto rendimiento.
    • Red de función de base radial: una red neuronal artificial que utiliza funciones de base radial como funciones de activación.
    • Mapa autoorganizado: una red no supervisada que produce una representación de baja dimensión del espacio de entrada de las muestras de entrenamiento
  • Bosque aleatorio: clasifique usando muchos árboles de decisión
  • Aprendizaje reforzado:
    • Q-learning: aprende una función de valor de acción que proporciona la utilidad esperada de realizar una acción determinada en un estado determinado y seguir una política fija a partir de entonces
    • Estado-Acción-Recompensa-Estado-Acción (SARSA): aprenda una política de proceso de decisión de Markov
    • Aprendizaje de diferencia temporal
  • Máquina de vectores de relevancia (RVM): similar a SVM, pero proporciona una clasificación probabilística
  • Aprendizaje supervisado: aprendizaje mediante ejemplos (conjunto de datos etiquetado dividido en conjunto de entrenamiento y conjunto de prueba)
  • Máquina de vectores de soporte (SVM): un conjunto de métodos que dividen datos multidimensionales al encontrar un hiperplano divisorio con el margen máximo entre los dos conjuntos
    • SVM estructurado: permite el entrenamiento de un clasificador para etiquetas de salida estructuradas generales.
  • Algoritmo Winnow: relacionado con el perceptrón, pero utiliza un esquema de actualización de peso multiplicativo

Teoría del lenguaje de programación

  • Linealización C3: un algoritmo utilizado principalmente para obtener una linealización consistente de una jerarquía de herencia múltiple en la programación orientada a objetos
  • Algoritmo de Chaitin: un algoritmo de asignación de registro de coloración de gráficos de abajo hacia arriba que utiliza el costo / grado como su métrica de derrame
  • Algoritmo de inferencia de tipo Hindley-Milner
  • Algoritmo Rete: un algoritmo de coincidencia de patrones eficiente para implementar sistemas de reglas de producción
  • Algoritmo Sethi-Ullman: genera código óptimo para expresiones aritméticas

Análisis

  • Algoritmo CYK: un algoritmo O (n) para analizar gramáticas sin contexto en forma normal de Chomsky
  • Analizador Earley: Otro algoritmo O(n) para analizar cualquier gramática libre de contexto
  • Analizador GLR: un algoritmo para analizar cualquier gramática libre de contexto de Masaru Tomita. Está ajustado para gramáticas deterministas, en las que realiza un tiempo casi lineal y O(n) en el peor de los casos.
  • Algoritmo de adentro hacia afuera: un algoritmo O (n) para reestimar las probabilidades de producción en gramáticas probabilísticas libres de contexto
  • Analizador LL: un algoritmo de análisis de tiempo lineal relativamente simple para una clase limitada de gramáticas libres de contexto
  • Analizador LR: un algoritmo de análisis de tiempo lineal más complejo para una clase más grande de gramáticas libres de contexto. variantes:
    • Analizador LR canónico
    • Analizador LALR (anticipación LR)
    • Analizador de precedencia de operadores
    • Analizador SLR (LR simple)
    • Analizador de precedencia simple
  • Packrat parser: un algoritmo de análisis de tiempo lineal que admite algunas gramáticas libres de contexto y gramáticas de expresión de análisis
  • Analizador de descenso recursivo: un analizador de arriba hacia abajo adecuado para gramáticas LL (k)
  • Algoritmo de patio de maniobras: convierta una expresión matemática de notación infija en sufijo
  • analizador Pratt
  • Análisis léxico

Algoritmos cuánticos

  • Algoritmo de Deutsch-Jozsa: criterio de equilibrio para la función booleana
  • Algoritmo de Grover: proporciona aceleración cuadrática para muchos problemas de búsqueda
  • Algoritmo de Shor: proporciona una aceleración exponencial (en relación con los algoritmos no cuánticos actualmente conocidos) para factorizar un número
  • Algoritmo de Simon: proporciona una aceleración probablemente exponencial (en relación con cualquier algoritmo no cuántico) para un problema de caja negra

Teoría de la computación y autómatas

  • Algoritmo de Hopcroft, algoritmo de Moore y algoritmo de Brzozowski: algoritmos para minimizar el número de estados en un autómata finito determinista
  • Construcción Powerset: Algoritmo para convertir un autómata no determinista en un autómata determinista.
  • Algoritmo de Tarski-Kuratowski: un algoritmo no determinista que proporciona un límite superior para la complejidad de las fórmulas en la jerarquía aritmética y la jerarquía analítica

Teoría de la información y procesamiento de señales.

Teoría de la codificación

Detección y corrección de errores

  • Códigos BCH
    • Algoritmo de Berlekamp-Massey
    • Algoritmo de Peterson-Gorenstein-Zierler
    • Corrección de errores de Reed-Solomon
  • Algoritmo BCJR: decodificación de códigos de corrección de errores definidos en trellises (principalmente códigos convolucionales)
  • Corrección de errores de reenvío
  • código gris
  • Códigos de Hamming
    • Hamming(7,4): un código de Hamming que codifica 4 bits de datos en 7 bits agregando 3 bits de paridad
    • Distancia de Hamming: suma del número de posiciones que son diferentes
    • Peso de Hamming (recuento de población): encuentre el número de 1 bits en una palabra binaria
  • Comprobaciones de redundancia
    • Adler-32
    • Verificación de redundancia cíclica
    • Maldito algoritmo
    • Suma de comprobación de Fletcher
    • Comprobación de redundancia longitudinal (LRC)
    • Algoritmo de Luhn: un método para validar números de identificación
    • Algoritmo Luhn mod N: extensión de Luhn a caracteres no numéricos
    • Paridad: técnica de detección de errores simple/rápida
    • Algoritmo de Verhoeff

Algoritmos de compresión sin pérdida

  • Transformada de Burrows-Wheeler: preprocesamiento útil para mejorar la compresión sin pérdidas
  • Ponderación del árbol de contexto
  • Codificación delta: ayuda a la compresión de datos en los que los datos secuenciales aparecen con frecuencia
  • Compresión dinámica de Markov: compresión mediante codificación aritmética predictiva
  • Codificadores de diccionario
    • Codificación de pares de bytes (BPE)
    • Desinflar
    • Lempel–Ziv
      • LZ77 y LZ78
      • Lempel–Ziv Jeff Bonwick (LZJB)
      • Algoritmo de cadena Lempel-Ziv-Markov (LZMA)
      • Lempel–Ziv–Oberhumer (LZO): orientado a la velocidad
      • Lempel–Ziv–Stac (LZS)
      • Lempel–Ziv–Storer–Szymanski (LZSS)
      • Lempel–Ziv–Welch (LZW)
      • LZWL: variante basada en sílabas
      • LZX
      • Lempel–Ziv Ross Williams (LZRW)
  • Codificación de entropía: esquema de codificación que asigna códigos a los símbolos para hacer coincidir las longitudes de los códigos con las probabilidades de los símbolos.
    • Codificación aritmética: codificación de entropía avanzada
      • Codificación de rango: igual que la codificación aritmética, pero vista de una manera ligeramente diferente
    • Codificación Huffman: compresión simple sin pérdidas aprovechando las frecuencias de caracteres relativas
      • Codificación Huffman adaptativa: técnica de codificación adaptativa basada en la codificación Huffman
      • Algoritmo de combinación de paquetes: optimiza la codificación de Huffman sujeta a una restricción de longitud en las cadenas de código
    • Codificación de Shannon-Fano
    • Codificación Shannon-Fano-Elias: precursora de la codificación aritmética
  • Codificación de entropía con características de entropía conocidas
    • Codificación Golomb: forma de codificación de entropía que es óptima para alfabetos que siguen distribuciones geométricas
    • Codificación de arroz: forma de codificación de entropía que es óptima para alfabetos que siguen distribuciones geométricas
    • Codificación binaria truncada
    • Codificación unaria: código que representa un número n con n unos seguidos de un cero
    • Códigos universales: codifica números enteros positivos en palabras de código binario
      • Codificación Elias delta, gamma y omega
      • Codificación exponencial-Golomb
      • Codificación de Fibonacci
      • Codificación Levenstein
  • Fast Efficient & Lossless Image Compression System (FELICS): un algoritmo de compresión de imágenes sin pérdidas
  • Codificación incremental: codificación delta aplicada a secuencias de cadenas
  • Predicción por coincidencia parcial (PPM): una técnica de compresión de datos estadísticos adaptativa basada en el modelado y la predicción del contexto
  • Codificación de longitud de ejecución: compresión de datos sin pérdidas aprovechando cadenas de caracteres repetidos
  • Algoritmo SEQUITUR: compresión sin pérdida por inferencia gramatical incremental en una cadena

Algoritmos de compresión con pérdida

  • 3Dc: un algoritmo de compresión de datos con pérdida para mapas normales
  • Compresión de audio y voz
    • Algoritmo de ley A: algoritmo de compresión estándar
    • Predicción lineal excitada por código (CELP): compresión de voz de baja tasa de bits
    • Codificación predictiva lineal (LPC): compresión con pérdida al representar la envolvente espectral de una señal digital de voz en forma comprimida
    • Algoritmo de ley Mu: algoritmo de compresión o compresión de señal analógica estándar
    • Codificación predictiva lineal deformada (WLPC)
  • Compresión de imagen
    • Block Truncation Coding (BTC): un tipo de técnica de compresión de imágenes con pérdida para imágenes en escala de grises
    • Wavelet Zerotree integrada (EZW)
    • Algoritmos de transformación rápida de coseno (algoritmos FCT): calcula la transformada discreta de coseno (DCT) de manera eficiente
    • Compresión fractal: método utilizado para comprimir imágenes usando fractales
    • Establecer particiones en árboles jerárquicos (SPIHT)
    • Compresión wavelet: forma de compresión de datos adecuada para la compresión de imágenes (a veces también compresión de video y compresión de audio)
  • Codificación de transformación: tipo de compresión de datos para datos "naturales" como señales de audio o imágenes fotográficas
  • Compresión de video
  • Cuantificación vectorial: técnica utilizada a menudo en la compresión de datos con pérdida

Procesamiento de señales digitales

  • Algoritmo adaptativo-aditivo (algoritmo AA): encuentre la fase de frecuencia espacial de una fuente de onda observada
  • Transformada discreta de Fourier: determina las frecuencias contenidas en una (segmento de una) señal
    • Algoritmo FFT de Bluestein
    • Algoritmo FFT de Bruun
    • Algoritmo Cooley-Tukey FFT
    • Transformada rápida de Fourier
    • Algoritmo FFT de factor primo
    • Algoritmo FFT de Rader
  • Algoritmo de plegamiento rápido: un algoritmo eficiente para la detección de eventos aproximadamente periódicos dentro de datos de series temporales
  • Algoritmo de Gerchberg-Saxton: algoritmo de recuperación de fase para planos ópticos
  • Algoritmo de Goertzel: identifica un componente de frecuencia particular en una señal. Se puede utilizar para la decodificación de dígitos DTMF.
  • Síntesis de cuerda Karplus-Strong: síntesis de modelado físico para simular el sonido de una cuerda martillada o pulsada o algunos tipos de percusión

Procesamiento de imágenes

  • Mejora de contraste
    • Ecualización de histograma: use el histograma para mejorar el contraste de la imagen
    • Ecualización de histograma adaptable: ecualización de histograma que se adapta a los cambios locales en contraste
  • Etiquetado de componentes conectados: busque y etiquete regiones disjuntas
  • Tramado y medios tonos
    • Difusión de errores
    • Difuminado de Floyd-Steinberg
    • difuminado ordenado
    • Difuminado de Riemersma
  • Algoritmo de mapa de diferencias de Elser: un algoritmo de búsqueda para problemas generales de satisfacción de restricciones. Utilizado originalmente para microscopía de difracción de rayos X
  • Detección de características
    • Canny edge detector: detecta una amplia gama de bordes en las imágenes
    • Transformada de Hough generalizada
    • Hough transformar
    • Algoritmo Marr-Hildreth: un algoritmo de detección temprana de bordes
    • SIFT (transformación de características invariantes de escala): es un algoritmo para detectar y describir características locales en imágenes.
    • SURF (Características robustas aceleradas): es un detector robusto de características locales, presentado por primera vez por Herbert Bay et al. en 2006, que se puede utilizar en tareas de visión artificial como el reconocimiento de objetos o la reconstrucción 3D. Está parcialmente inspirado en el descriptor SIFT. La versión estándar de SURF es varias veces más rápida que SIFT y sus autores afirman que es más sólida frente a diferentes transformaciones de imágenes que SIFT.
  • Deconvolución de Richardson-Lucy: algoritmo de desenfoque de imágenes
  • Desconvolución ciega: algoritmo de desenfoque de imagen cuando se desconoce la función de dispersión de puntos.
  • Filtrado mediano
  • Talla de costura: algoritmo de cambio de tamaño de imagen consciente del contenido
  • Segmentación: dividir una imagen digital en dos o más regiones
    • Algoritmo GrowCut: un algoritmo de segmentación interactivo
    • Algoritmo de caminante aleatorio
    • región en crecimiento
    • Transformación de cuenca hidrográfica: una clase de algoritmos basados ​​en la analogía de la cuenca hidrográfica

Ingeniería de software

  • Algoritmos de caché
  • Conversión CHS: conversión entre sistemas de direccionamiento de disco
  • Double dabble: convertir números binarios a BCD
  • Función hash: convierte una gran cantidad de datos, posiblemente de tamaño variable, en un dato pequeño, generalmente un entero único que puede servir como índice en una matriz
    • Función hash Fowler-Noll-Vo: rápida con baja tasa de colisión
    • Hashing de Pearson: calcula solo el valor de 8 bits, optimizado para computadoras de 8 bits
    • Hashing de Zobrist: utilizado en la implementación de tablas de transposición
  • Algoritmo de intercalación Unicode
  • Algoritmo de intercambio Xor: intercambia los valores de dos variables sin usar un búfer

Algoritmos de base de datos

  • Algoritmos de Recuperación y Aislamiento Explotando Semántica (ARIES): recuperación de transacciones
  • Unir algoritmos
    • Bucle anidado en bloque
    • Unión hash
    • Unión de bucle anidado
    • Ordenar-Combinar Unir

Algoritmos de sistemas distribuidos

  • Sincronización de reloj
    • Algoritmo de Berkeley
    • algoritmo de cristian
    • Algoritmo de intersección
    • algoritmo de marzullo
  • Consenso (informática): acordar un único valor o historia entre procesadores poco fiables
    • Algoritmo de consenso de Chandra-Toueg
    • Algoritmo de Paxos
    • Balsa (informática)
  • Detección de Terminación de Proceso
    • Algoritmo de Dijkstra-Scholten
    • algoritmo de huang
  • Ordenación de Lamport: una ordenación parcial de eventos basada en la relación que sucedió antes
  • Elección de líder: un método para seleccionar dinámicamente a un coordinador
    • Algoritmo de intimidación
  • Exclusión mutua
    • Algoritmo de exclusión mutua distribuida de Lamport
    • Algoritmo log(n) de Naimi-Trehel
    • Algoritmo de Maekawa
    • Algoritmo de Raymond
    • Algoritmo Ricart-Agrawala
  • Algoritmo de instantánea: registre un estado global consistente para un sistema asíncrono
    • Algoritmo de Chandy-Lamport
  • Relojes vectoriales: genere una ordenación parcial de eventos en un sistema distribuido y detecte violaciones de causalidad

Algoritmos de asignación y desasignación de memoria

  • Asignación de memoria de compañeros: Algoritmo para asignar memoria de modo que la fragmentación sea menor.
  • recolectores de basura
    • Algoritmo de Cheney: una mejora en el colector semiespacial
    • Recolector de basura generacional: Recolectores de basura rápidos que segregan la memoria por edad
    • Algoritmo de marca-compacto: una combinación del algoritmo de barrido de marca y el algoritmo de copia de Cheney
    • Marcar y barrer
    • Coleccionista semiespacial: uno de los primeros coleccionistas de copias
  • Recuento de referencias

Redes

  • Algoritmo de Karn: aborda el problema de obtener estimaciones precisas del tiempo de ida y vuelta de los mensajes cuando se usa TCP.
  • Algoritmo de Luleå: una técnica para almacenar y buscar tablas de enrutamiento de Internet de manera eficiente
  • Congestión en la red
    • Retroceso exponencial
    • Algoritmo de Nagle: mejora la eficiencia de las redes TCP/IP fusionando paquetes
    • Retroceso exponencial binario truncado

Algoritmos de sistemas operativos

  • Algoritmo de banquero: Algoritmo utilizado para evitar interbloqueos.
  • Algoritmos de reemplazo de página: selección de la página víctima en condiciones de poca memoria.
    • Caché de reemplazo adaptable: mejor rendimiento que LRU
    • Reloj con reemplazo adaptativo (CAR): es un algoritmo de reemplazo de página que tiene un rendimiento comparable al caché de reemplazo adaptativo

Sincronización de procesos

  • Algoritmo de Dekker
  • Algoritmo de panadería de Lamport
  • algoritmo de Peterson

Planificación

  • Fecha límite más temprana primera programación
  • Programación de reparto justo
  • Programación de tiempo de menor holgura
  • Lista de programación
  • Cola de comentarios de varios niveles
  • Programación de tarifa monotónica
  • Programación por turnos
  • Trabajo más corto siguiente
  • Tiempo restante más corto
  • Algoritmo de nodos superiores: gestión del calendario de recursos

Programación de E/S

Programación de disco

  • Algoritmo de ascensor: Algoritmo de programación de disco que funciona como un ascensor.
  • Búsqueda más corta primero: Algoritmo de programación de disco para reducir el tiempo de búsqueda.

Otro

  • Algoritmo 'For You': un algoritmo patentado desarrollado por la red social Tik-Tok. Los videos cargados se publican primero a una selección de usuarios que el algoritmo ha identificado como propensos a interactuar con el video, según sus patrones de visualización anteriores del sitio web.

Contenido relacionado

Hipergrafo

En matemáticas, una hipergrafía es una generalización de una gráfica en la que una arista puede unir cualquier número de vértices. Por el contrario, en...

Centralidad

En teoría de grafos y análisis de redes, los indicadores de centralidad asignan números o clasificaciones a los nodos dentro de un gráfico correspondiente...

Modelo Barabási–Albert

El modelo Barabási-Albert es un algoritmo para generar redes aleatorias sin escala utilizando un mecanismo de conexión preferencial. Se cree que varios...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save