Astronomía

¿Cómo aplicar el algoritmo Fast Folding?

¿Cómo aplicar el algoritmo Fast Folding?


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Tengo un conjunto de datos de High Time Resolution Universe. Apliqué la desdispersión en este conjunto de datos HTRU y, a partir de entonces, apliqué la función de plegado para plegar el conjunto de datos.

¿Cómo puedo encontrar que la periodicidad de la señal usando un plegado rápido ¿algoritmo?


Algoritmo cuántico de uso eficiente de los recursos para el plegamiento de proteínas

La predicción de la estructura tridimensional de una proteína a partir de su secuencia primaria de aminoácidos se conoce como problema de plegamiento de proteínas. Debido al papel central de las estructuras de las proteínas en las aplicaciones de la química, la biología y la medicina, este tema se ha estudiado intensamente durante más de medio siglo. Aunque los algoritmos clásicos proporcionan soluciones prácticas para el muestreo del espacio de conformación de proteínas pequeñas, no pueden abordar la complejidad intrínseca NP-hard del problema, incluso cuando se reducen al modelo hidrofóbico-polar más simple. Por otro lado, si bien las computadoras cuánticas tolerantes a fallas están fuera del alcance de las tecnologías cuánticas de vanguardia, hay evidencia de que los algoritmos cuánticos se pueden usar con éxito en computadoras cuánticas de última generación ruidosas para acelerar la optimización de la energía. en sistemas frustrados. En este trabajo, presentamos un modelo hamiltoniano con (< mathcal>(^ <4>) ) escalado y un algoritmo variacional cuántico correspondiente para el plegado de una cadena de polímero con norte monómeros en una rejilla. El modelo refleja muchas propiedades físico-químicas de la proteína, reduciendo la brecha entre las representaciones de grano grueso y los simples modelos de celosía. Además, utilizamos un esquema de optimización robusto y versátil, que reúne algoritmos cuánticos variacionales específicamente adaptados a funciones de costo clásicas y estrategias evolutivas para simular el plegamiento de la angiotensina de 10 aminoácidos en 22 qubits. El mismo método también se aplica con éxito al estudio del plegamiento de un neuropéptido de 7 aminoácidos utilizando 9 qubits en una computadora cuántica IBM de 20 qubit. Al reunir los avances recientes en la construcción de computadoras cuánticas basadas en puertas con algoritmos híbridos cuánticos-clásicos tolerantes al ruido, este trabajo allana el camino hacia experimentos científicos accesibles y relevantes en procesadores cuánticos reales.


¿Cómo aplicar el algoritmo Fast Folding? - Astronomía

Este proyecto es un trabajo en progreso. Probablemente nunca estará terminado, pero si lo está, será una sola biblioteca de Python con La lista. (No incluye algoritmos que están en una lista separada que está vinculada a La lista.)

Una lista de verificación directamente de Wikipedia, que muestra nuestro progreso:

Algoritmos combinatorios generales

  • Algoritmo de Brent: encuentra un ciclo en las iteraciones del valor de la función usando solo dos iteradores
  • Algoritmo de búsqueda de ciclo de Floyd: encuentra un ciclo en iteraciones de valor de función
  • Algoritmo de Gale-Shapley: resuelve el problema del matrimonio estable
  • Generadores de números pseudoaleatorios (distribuidos uniformemente):
    • Blum Blum Shub
    • Generador de Fibonacci retrasado
    • Generador de congruencia lineal
    • Mersenne Twister
    • Algoritmo de coloración: algoritmo de coloración de gráficos.
    • Algoritmo Hopcroft-Karp: convierta un gráfico bipartito en una coincidencia máxima de cardinalidad
    • Algoritmo húngaro: algoritmo para encontrar una coincidencia perfecta
    • Codificación Prüfer: conversión entre un árbol etiquetado y su secuencia 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.
    • Algoritmos basados ​​en fuerza (también conocidos como algoritmos dirigidos por fuerza o algoritmo basado en resortes)
    • Disposición espectral
    • Análisis de red
      • Análisis de enlaces
        • Algoritmo Girvan-Newman: detecta comunidades en sistemas complejos
        • Análisis de enlaces web
          • Búsqueda de temas inducida por hipervínculos (HITS) (también conocida como Hubs y autoridades)
          • Rango de página
          • TrustRank
          • 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-reetiquetado: calcula un flujo máximo en un gráfico
          • 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 corto euclidiano: encuentre el camino más corto entre dos puntos que no cruce ningún obstáculo
          • Problema de ruta más larga: encuentre una ruta 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
            • Algoritmo de 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 de la ruta más corta de todos los pares en un gráfico dirigido 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 del vecino más cercano
              • A *: caso especial de búsqueda del mejor primero que utiliza heurística para mejorar la velocidad
              • B *: un algoritmo de búsqueda de gráfico del mejor primero que encuentra la ruta de menor costo desde un nodo inicial dado a cualquier nodo de objetivo (de uno o más objetivos posibles)
              • Retroceso: abandona las soluciones parciales cuando se descubre que no satisfacen una solución completa
              • Beam search: es un algoritmo de búsqueda heurístico que es una optimización de la mejor búsqueda que reduce su requerimiento 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 el camino más corto desde un vértice inicial hasta un vértice de meta 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 una función heurística
              • Solucionador de problemas generales: un algoritmo de demostración de teoremas seminal 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 de espacio de estado
              • Búsqueda de punto de salto: una optimización a A * que puede reducir el tiempo de cálculo en un orden de magnitud utilizando heurísticas adicionales.
              • Búsqueda lexicográfica primero 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 de espacio de estado atravesando un árbol de juego de una manera mejor primero similar a la del algoritmo de búsqueda A *
              • 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
                • Algoritmo de componente fuerte basado en ruta
                • Algoritmo de Kosaraju
                • Algoritmo de componentes fuertemente conectados de Tarjan

                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 coincidencia de apellidos eslavos y germánicos
                  • Double Metaphone: una mejora en Metaphone
                  • Enfoque de clasificación de coincidencia: un algoritmo fonético desarrollado por Western Airlines
                  • Metaphone: un algoritmo para indexar palabras por su sonido, cuando se pronuncia en inglés
                  • NYSIIS: algoritmo fonético, mejora en Soundex
                  • Soundex: un algoritmo fonético para indexar nombres por sonido, como se pronuncia en inglés
                  • La distancia Damerau-Levenshtein calcula una medida de distancia entre dos cuerdas, mejora la distancia de Levenshtein
                  • Coeficiente de dados (también conocido como coeficiente de dados): 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: calcule una métrica para la cantidad de diferencia entre dos secuencias
                  • Búsqueda lineal: encuentra un elemento en una secuencia sin clasificar.
                  • Algoritmo de selección: encuentra el kel elemento más grande de una secuencia
                  • Búsqueda ternaria: una técnica para encontrar el mínimo o máximo de una función que es estrictamente creciente y luego estrictamente decreciente o viceversa.
                  • Listas ordenadas
                    • Algoritmo de búsqueda binaria: ubica un elemento en una secuencia ordenada
                    • Técnica de búsqueda de Fibonacci: busque una secuencia ordenada utilizando un algoritmo de dividir y conquistar que reduce las posibles ubicaciones 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 altos y bajos de la búsqueda. A veces se denomina búsqueda de diccionario o búsqueda interpolada.
                    • Búsqueda binaria uniforme: una optimización del algoritmo de búsqueda binaria clásico
                    • Algoritmo de fusión simple
                    • algoritmo de fusión de k-way
                    • Unión (fusionar, con elementos en la salida no repetidos)
                    • Mezcla de Fisher-Yates (también conocida como reproducción aleatoria 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 mediante la transposición de elementos
                    • Algoritmo de generación de permutación de heap: intercambiar elementos para generar la siguiente permutación
                    • Deformación de tiempo dinámica: mide la similitud entre dos secuencias que pueden variar en el tiempo o la 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 secuencia local
                    • Tipos de intercambio
                      • Clasificación de burbujas: para cada par de índices, intercambie los elementos si están fuera de orden
                      • Clasificación de coctelera o clasificación de burbujas bidireccionales, una clasificación de burbujas que recorre la lista alternativamente de adelante hacia atrás y de atrás hacia adelante
                      • Tipo de peine
                      • Tipo de gnomo
                      • Tipo impar-par
                      • Clasificación rápida: divida la lista en dos, con todos los elementos de la primera lista antes de todos los elementos de la segunda lista. luego ordene las dos listas. A menudo, el método de elección
                      • Bogosort
                      • Tipo chiflado
                      • Flashsort
                      • Introsort: comience con quicksort y cambie a heapsort cuando la profundidad de recursividad 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.
                      • Orden de inserción: determine dónde pertenece el elemento actual en la lista de ordenados e insértelo allí
                      • Orden de biblioteca
                      • Clasificación de paciencia
                      • Ordenación de shell: un intento de mejorar la ordenación por inserción
                      • Clasificación de árbol (clasificación de árbol binario): construya un árbol binario, luego recorralo para crear una lista ordenada
                      • Orden de ciclo: en el lugar con un número teóricamente óptimo de escrituras
                      • Combinar ordenación: ordena la primera y la segunda mitad de la lista por separado, luego combina las listas ordenadas
                      • Tipo de hebra
                      • Tipo de cuentas
                      • Tipo de cubo
                      • Burstsort: cree un trie de ráfagas compacto y eficiente en caché y luego recorralo para crear una salida ordenada
                      • Contando ordenar
                      • Tipo de casillero
                      • Tipo de cartero: variante del tipo de cubo que aprovecha la estructura jerárquica
                      • Ordenación por radix: ordena las cadenas letra por letra
                      • 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
                      • Orden de selección: elija el más pequeño de los elementos restantes, agréguelo al final de la lista ordenada
                      • Smoothsort
                      • Clasificador bitónico
                      • Clasificación de panqueques
                      • Tipo de espagueti
                      • Orden topológico
                      • Ordenación de muestras
                      • Algoritmo de Kadane: encuentra la submatriz máxima de cualquier tamaño
                      • Problema de 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
                      • Problema de supersecuencia común más corta: encuentre la supersecuencia más corta que contenga dos o más secuencias como subsecuencias
                      • Problema de subcadena común más largo: encuentre la cadena (o cadenas) más larga que sea una subcadena (o son subcadenas) de dos o más cadenas
                      • Búsqueda de subcadenas
                        • Algoritmo de coincidencia de cadenas Aho-Corasick: algoritmo basado en trie 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 de Knuth-Morris-Pratt: búsqueda de subcadenas que omite el reexamen de caracteres coincidentes
                        • Algoritmo de búsqueda de cadenas de Rabin-Karp: busca múltiples patrones de manera eficiente
                        • Algoritmo de coincidencia de cadenas de Zhu-Takaoka: una variante de Boyer-Moore
                        • Wildmat de Rich Salz: un algoritmo recursivo de código abierto ampliamente utilizado
                        • Algoritmo de comodines de coincidencia de Krauss: un algoritmo no recursivo de código abierto
                        • Búsqueda de Chien: un algoritmo recursivo para determinar las raíces de polinomios definidos sobre un campo finito
                        • Algoritmo de Schreier-Sims: cálculo de un grupo electrógeno base y fuerte (BSGS) de un grupo de permutación
                        • Algoritmo de Todd-Coxeter: procedimiento para generar clases laterales.
                        • El 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 o menor grado.
                        • Algoritmo de Risch: un algoritmo para la operación de cálculo de integración indefinida (es decir, encontrar antiderivadas)
                        • Problema del par más cercano: encuentre el par de puntos (de un conjunto de puntos) con la distancia más pequeña entre ellos
                        • Algoritmos de detección de colisiones: compruebe 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 de Graham
                          • Quickhull
                          • Algoritmo de envoltura de regalos o marcha de Jarvis
                          • Algoritmo de Chan
                          • Algoritmo de Kirkpatrick-Seidel
                          • Algoritmo de Bentley-Ottmann
                          • Algoritmo de Shamos-Hoey
                          • Triangulación de Delaunay
                            • Algoritmo de Ruppert (también conocido como refinamiento de Delaunay): cree triangulaciones de Delaunay de calidad
                            • El segundo algoritmo de Chew: crear triangulaciones de Delaunay con restricciones de calidad
                            • Algoritmo de Bowyer-Watson: cree un diagrama de voronoi en cualquier número de dimensiones
                            • Algoritmo de Fortune: crear diagrama de voronoi

                            Algoritmos teóricos de números

                            • Algoritmo binario GCD: forma eficiente de calcular GCD.
                            • Algoritmo de multiplicación de Booth
                            • Método de Chakravala: un algoritmo cíclico para resolver ecuaciones cuadráticas indeterminadas, incluida la ecuación de Pell
                            • Logaritmo discreto:
                              • Paso de bebé paso gigante
                              • Algoritmo de cálculo de índices
                              • Algoritmo rho de Pollard para logaritmos
                              • Algoritmo de Pohlig-Hellman
                              • Congruencia de cuadrados
                              • El algoritmo de Dixon
                              • Método de factorización de Fermat
                              • Tamiz de campo de número general
                              • Factorización de la curva elíptica de Lenstra
                              • Pollard's pag - 1 algoritmo
                              • Algoritmo rho de Pollard
                              • algoritmo de factorización prima
                              • Tamiz cuadrático
                              • Algoritmo de Shor
                              • Tamiz de campo de número especial
                              • División de prueba
                              • Algoritmo de Karatsuba
                              • Algoritmo de Schönhage-Strassen
                              • Multiplicación de Toom-Cook
                              • Algoritmo de Tonelli-Shanks
                              • Algoritmo de Cipolla
                              • Prueba de primalidad de AKS
                              • Prueba de primalidad 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

                              Resolución de ecuaciones diferenciales

                              • Método 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étodo de diferencias finitas
                                • Método de Crank-Nicolson para ecuaciones de difusión
                                • Lax-Wendroff para ecuaciones de onda

                                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 π
                                  • División larga
                                  • Restaurando la división
                                  • División no restauradora
                                  • División SRT
                                  • División de Newton-Raphson: usa 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
                                  • Algoritmo BKM: calcula funciones elementales usando una tabla de logaritmos
                                  • CORDIC: calcula funciones hiperbólicas y trigonométricas usando una tabla de arcangentes
                                  • Exponenciación de cadena de suma Exponenciación por potencias enteras positivas que requiere un número mínimo de multiplicaciones
                                  • Exponenciación por cuadratura: un algoritmo utilizado para el cálculo rápido de grandes potencias enteras de un número.
                                  • 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 poseen una complejidad asintótica muy baja
                                  • Algoritmo de Karatsuba: un procedimiento eficaz 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 de Toom-Cook: (Toom3) un algoritmo de multiplicación para números enteros grandes
                                  • Método de Newton
                                  • Algoritmo alpha max plus beta min: una aproximación de la raíz cuadrada de la suma de dos cuadrados
                                  • Métodos para calcular raíces cuadradas
                                  • norteth algoritmo raíz
                                  • Cambio de algoritmo de raíz n: extracción de raíz dígito a dígito
                                  • 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 punto flotante
                                  • Retroproyección filtrada: calcule eficientemente la transformación bidimensional inversa de radón.
                                  • Método de conjunto de niveles (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 Hermite
                                  • Interpolación de Lagrange: interpolación utilizando polinomios de Lagrange
                                  • Interpolación lineal: un método de ajuste de curvas que utiliza polinomios lineales.
                                  • Interpolación cúbica monótona: una variante de 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 multivariante 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
                                    • El algoritmo de Neville
                                    • Algoritmo de De Boor: B-splines
                                    • Algoritmo de De Casteljau: curvas de Bézier

                                    Proceso de Gram-Schmidt: ortogonaliza un conjunto de vectores

                                    • Algoritmo de Cannon: un algoritmo distribuido para la multiplicación de matrices especialmente adecuado para computadoras dispuestas en una malla N × N
                                    • Algoritmo de calderero-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
                                    • Método de 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
                                    • Recursividad 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 disperso de ecuaciones.
                                    • Sobre-relajación sucesiva (SOR): método utilizado para acelerar la convergencia del método Gauss-Seidel
                                    • Algoritmo de matriz tridiagonal (algoritmo de Thomas): resuelve sistemas de ecuaciones tridiagonales
                                    • Algoritmo de Cuthill-McKee: reduzca el ancho de banda de una matriz dispersa simétrica
                                    • Algoritmo de grado mínimo: permutar 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
                                    • Muestreo de Gibbs: genere una secuencia de muestras a partir de la distribución de probabilidad conjunta de dos o más variables aleatorias
                                    • Monte Carlo híbrido: genere 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 de Metropolis-Hastings: se utiliza 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 de Metropolis-Hastings
                                    • Método de bisección
                                    • Método de posición falsa: aproxima las raíces de una función
                                    • 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 cara
                                    • Método de posición falsa y método de Illinois: 2 puntos, entre corchetes
                                    • Método de Ridder: escala exponencial de 3 puntos
                                    • Método de Muller: interpolación cuadrática de 3 puntos

                                    Poda alfa-beta: búsqueda para reducir el número de nodos en el algoritmo minimax

                                    Optimización combinatoria: problemas de optimización donde el conjunto de soluciones factibles es discreto

                                    • Procedimiento de búsqueda adaptativa aleatoria codiciosa (GRASP): construcciones sucesivas de una solución aleatoria codiciosa y posteriores mejoras iterativas 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.
                                    • Algoritmos generales para la satisfacción de restricciones
                                      • Algoritmo AC-3
                                      • Algoritmo de mapa de diferencias
                                      • Algoritmo de conflictos mínimos
                                      • 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 combinatoria y continua multi-extremal y el muestreo de importancia

                                      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 genética
                                      • Algoritmos genéticos
                                        • Selección proporcional de fitness, también conocida como selección de rueda de ruleta
                                        • Muestreo universal estocástico
                                        • Selección de truncamiento
                                        • Selección de torneo
                                        • Optimización de colonias de hormigas
                                        • Algoritmo de abejas: un algoritmo de búsqueda que imita el comportamiento de búsqueda de alimentos de enjambres de abejas melíferas.
                                        • Enjambre de particulas

                                        búsqueda de la sección dorada: un algoritmo para encontrar el máximo de una función real

                                        Búsqueda de armonía (HS): un algoritmo metaheurístico que imita el proceso de improvisación de los músicos

                                        • 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 de enteros: resuelva problemas de programación lineal donde algunas o todas las incógnitas están restringidas a valores enteros
                                          • Ramificar y cortar
                                          • Método de plano de corte

                                          Búsqueda local: una metaheurística para resolver problemas de optimización computacionalmente difíciles

                                          • 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 de Nelder-Mead (método simplex cuesta abajo): 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

                                          • 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
                                          • Se utilizan varios algoritmos de Pascua para calcular el día de Pascua.
                                          • Herramienta básica de búsqueda de alineación local también conocida como BLAST: un algoritmo para comparar información de secuencia biológica primaria
                                          • 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 los 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 determinada.
                                          • UPGMA: un algoritmo de construcción de árboles filogenéticos basado en la distancia.
                                          • 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
                                          • Algoritmo de Lesk: desambiguación del sentido de las palabras
                                          • Algoritmo de raíz: un método para reducir las 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
                                          • Algoritmo ESC para el diagnóstico de insuficiencia cardíaca
                                          • Criterios de Manning para el síndrome del intestino irritable
                                          • Algoritmos de diagnóstico de embolia pulmonar
                                          • Proyecto de algoritmo de medicación de Texas
                                          • Algoritmo de restricción: una clase de algoritmos para satisfacer restricciones para cuerpos que obedecen las ecuaciones de movimiento de Newton.
                                          • Algoritmo de demonio: un método de Monte Carlo para muestrear de manera eficiente miembros de un conjunto microcanónico con una energía determinada
                                          • Algoritmo de Featherstone: calcula los efectos de las fuerzas aplicadas a una estructura de articulaciones y enlaces
                                          • Aproximación del estado fundamental
                                            • Método variacional
                                              • Método Ritz
                                              • Simulación de Barnes-Hut: resuelve el problema de n cuerpos de una manera aproximada que tiene el orden en lugar de como en una simulación de suma directa.
                                              • Método rápido multipolar (FMM): acelera el cálculo de fuerzas de largo alcance
                                              • Algoritmos para calcular la varianza: evitar la inestabilidad y el desbordamiento numérico
                                              • Algoritmo de recuento aproximado: permite contar una gran cantidad de eventos en un registro pequeño
                                              • Estadísticas bayesianas
                                                • Algoritmo de muestreo anidado: un enfoque computacional al problema de comparar modelos en estadísticas bayesianas
                                                • Agrupación de enlaces promedio: un algoritmo de agrupación de aglomeraciones simple
                                                • Algoritmo de agrupación en clústeres de dosel: un algoritmo de agrupación previa no supervisado relacionado con el algoritmo K-means
                                                • Agrupación de agrupamiento de enlace completo: un algoritmo de agrupación de aglomeración simple
                                                • DBSCAN: un algoritmo de agrupamiento basado en densidad
                                                • Algoritmo de maximización de expectativas
                                                • Agrupación difusa: una clase de algoritmos de agrupación en la que cada punto tiene un grado de pertenencia a agrupaciones.
                                                  • C-significa difuso
                                                  • 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 basándose únicamente en las relaciones de vecindad entre objetos
                                                  • 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 expectativas 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 Baum-Welch: calcula estimaciones de máxima verosimilitud y estimaciones de modo posterior para los parámetros de un modelo de Markov oculto
                                                    • Algoritmo hacia adelante y hacia 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 de markov oculto
                                                    • Algoritmo de Buzen: un algoritmo para calcular la constante de normalización G (K) en el teorema de Gordon-Newell
                                                    • Algoritmo de Tomasulo: permite que las instrucciones secuenciales que normalmente estarían estancadas debido a ciertas dependencias se ejecuten de forma no secuencial
                                                    • Recorte
                                                      • Recorte de línea
                                                        • Cohen – Sutherland
                                                        • Cyrus – Beck
                                                        • Recorte rápido
                                                        • Liang – Barsky
                                                        • Nicholl – Lee – Nicholl
                                                        • Sutherland – Hodgman
                                                        • Vatti
                                                        • Weiler – Atherton
                                                        • Cubos de marcha: extrae una malla poligonal de una isosuperficie de un campo escalar tridimensional (a veces llamado vóxeles)
                                                        • Cuadrados de marcha: genere líneas de contorno para un campo escalar bidimensional
                                                        • Tetraedros en marcha: una alternativa a los cubos en marcha
                                                        • Oclusión ambiental
                                                        • Seguimiento de haz
                                                        • Rastreo de cono
                                                        • Iluminación basada en imágenes
                                                        • Transporte ligero Metropolis
                                                        • Seguimiento de ruta
                                                        • Mapeo de fotones
                                                        • Radiosidad
                                                        • trazado de rayos
                                                        • Algoritmo de Newell: elimine los ciclos de polígono en la clasificación de profundidad requerida en la eliminación de superficies ocultas
                                                        • Algoritmo del pintor: detecta partes visibles de un escenario tridimensional
                                                        • Renderizado de línea de exploración: construye una imagen moviendo una línea imaginaria sobre la imagen
                                                        • Algoritmo Warnock
                                                        • Algoritmo de línea de Bresenham: traza puntos de una matriz bidimensional para formar una línea recta entre 2 puntos especificados (utiliza variables de decisión)
                                                        • Algoritmo de línea DDA: traza puntos de una matriz bidimensional para formar una línea recta entre 2 puntos especificados (usa matemáticas de punto flotante)
                                                        • Algoritmo de línea de Xiaolin Wu: algoritmo para antialiasing de línea.
                                                        • Sombreado de Gouraud: un algoritmo para simular los diferentes efectos de la luz y el color en la superficie de un objeto en gráficos por computadora en 3D
                                                        • Sombreado Phong: un algoritmo para interpolar vectores normales de superficie para sombreado de superficie en gráficos por computadora en 3D
                                                        • Cifrado asimétrico (clave pública):
                                                          • ElGamal
                                                          • Criptografía de curva elíptica
                                                          • MAE1
                                                          • NTRUEncrypt
                                                          • RSA
                                                          • DSA y sus variantes:
                                                            • ECDSA y ECDSA determinista
                                                            • EdDSA (Ed25519)
                                                            • BLAKE
                                                            • MD5: tenga en cuenta que ahora existe un método para generar colisiones para MD5
                                                            • RIPEMD-160
                                                            • SHA-1: tenga en cuenta que ahora existe 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)
                                                            • Tigre (TTH), generalmente utilizado en hashes de árboles de tigre
                                                            • TORBELLINO
                                                            • Blum Blum Shub: basado en la dureza de la factorización
                                                            • Fortuna, pensado como una mejora en el algoritmo de Milenrama
                                                            • 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 claves Diffie-Hellman
                                                            • Curva elíptica Diffie-Hellman (ECDH)
                                                            • bcrypt
                                                            • PBKDF2
                                                            • scrypt
                                                            • Argón2
                                                            • HMAC: autenticación de mensajes con clave hash
                                                            • Poli1305
                                                            • SipHash
                                                            • El plan de Blakey
                                                            • El plan de Shamir
                                                            • Estándar de cifrado avanzado (AES), ganador del concurso NIST, también conocido como Rijndael
                                                            • Pez globo
                                                            • Dos peces
                                                            • Tres peces
                                                            • Estándar de cifrado de datos (DES), a veces algoritmo DE, ganador del concurso de selección de NBS, reemplazado por AES para la mayoría de los propósitos
                                                            • OCURRENCIA
                                                            • RC4 (cifrado)
                                                            • Pequeño algoritmo de cifrado (TEA)
                                                            • Salsa20 y su variante actualizada ChaCha20
                                                            • Minimización booleana
                                                              • Algoritmo de Quine-McCluskey: también llamado algoritmo Q-M, método programable para simplificar las ecuaciones booleanas.
                                                              • Método de Petrick: otro algoritmo de simplificación booleana.
                                                              • Minimizador lógico heurístico 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: descubra relaciones interesantes entre variables, utilizadas en la minería de datos
                                                                • Algoritmo a priori
                                                                • Algoritmo Eclat
                                                                • Algoritmo de crecimiento FP
                                                                • Regla de un atributo
                                                                • Regla de atributo cero
                                                                • AdaBoost: refuerzo adaptativo
                                                                • BrownBoost: un algoritmo de impulso que puede ser robusto para conjuntos de datos ruidosos
                                                                • LogitBoost: aumento de la regresión logística
                                                                • LPBoost: refuerzo de programación lineal
                                                                • Grabcut basado en cortes de Graph
                                                                • Algoritmo C4.5: una extensión de ID3
                                                                • Algoritmo ID3 (dicotomizador iterativo 3): use heurística para generar pequeños árboles de decisión
                                                                • 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
                                                                • 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 por 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.
                                                                • Q-learning: aprende una función de valor de acción que brinda la utilidad esperada de tomar una acción determinada en un estado dado 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 la diferencia temporal
                                                                • SVM estructurado: permite el entrenamiento de un clasificador para etiquetas de salida estructuradas generales.

                                                                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 registros de coloración de gráficos de abajo hacia arriba que utiliza costo / grado como 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: generar código óptimo para expresiones aritméticas
                                                                • Algoritmo CYK: un algoritmo O (n ^ 3 ^) para analizar gramáticas libres de contexto en la forma normal de Chomsky
                                                                • Analizador de Earley: otro algoritmo O (n ^ 3 ^) para analizar cualquier gramática libre de contexto
                                                                • Analizador GLR: un algoritmo para analizar cualquier gramática libre de contexto de Masaru Tomita. Está afinado para gramáticas deterministas, en las que realiza un tiempo casi lineal y O (n ^ 3 ^) en el peor de los casos.
                                                                • Algoritmo de adentro hacia afuera: un algoritmo O (n ^ 3 ^) para volver a estimar las probabilidades de producción en gramáticas probabilísticas libres de contexto
                                                                • Analizador de 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 (LR anticipado)
                                                                  • Analizador de precedencia de operadores
                                                                  • Analizador SLR (Simple LR)
                                                                  • Analizador de precedencia simple
                                                                  • Algoritmo 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 conocidos actualmente) para factorizar un número
                                                                  • Algoritmo de Simon: proporciona una aceleración exponencial demostrable (en relación con cualquier algoritmo no cuántico) para un problema de caja negra

                                                                  Teoría de la computación y los 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

                                                                  Detección y corrección de errores

                                                                  • Códigos BCH
                                                                    • Algoritmo de Berlekamp-Massey
                                                                    • Algoritmo Peterson-Gorenstein-Zierler
                                                                    • Corrección de errores de Reed-Solomon
                                                                    • Hamming (7,4): un código 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
                                                                    • Adler-32
                                                                    • Verificación de redundancia cíclica
                                                                    • Algoritmo Damm
                                                                    • 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érdidas

                                                                    • 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 ocurren 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 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 adaptativa de Huffman: técnica de codificación adaptativa basada en la codificación de 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 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 delta, gamma y omega de Elias
                                                                            • Codificación exponencial de Golomb
                                                                            • Codificación de Fibonacci
                                                                            • Codificación de Levenshtein

                                                                            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 mu-law: compresión de señal analógica estándar o algoritmo de companding
                                                                              • Codificación predictiva lineal deformada (WLPC)
                                                                              • Codificación de truncamiento de bloques (BTC): un tipo de técnica de compresión de imágenes con pérdida para imágenes en escala de grises
                                                                              • Wavelet Zerotree integrado (EZW)
                                                                              • Algoritmos de transformación rápida de coseno (algoritmos FCT): calcule la transformación de coseno discreta (DCT) de manera eficiente
                                                                              • Compresión fractal: método utilizado para comprimir imágenes mediante fractales.
                                                                              • Establecer particiones en árboles jerárquicos (SPIHT)
                                                                              • Compresión wavelet: forma de compresión de datos muy adecuada para la compresión de imágenes (a veces también compresión de video y compresión de audio)

                                                                              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 señal (segmento de a)
                                                                                • 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
                                                                                • Mejora de contraste
                                                                                  • Ecualización de histograma: use histograma para mejorar el contraste de la imagen
                                                                                  • Ecualización adaptativa del histograma: ecualización del histograma que se adapta a los cambios locales de contraste
                                                                                  • Difusión de errores
                                                                                  • Dithering de Floyd-Steinberg
                                                                                  • Dithering ordenado
                                                                                  • Riemersma titubeando
                                                                                  • Detector de bordes astuto: detecta una amplia gama de bordes en imágenes
                                                                                  • Transformada de Hough generalizada
                                                                                  • Hough transformar
                                                                                  • Algoritmo de 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 (Funciones robustas aceleradas): es un detector de características locales robusto, presentado por primera vez por Herbert Bay et al. en 2006, que se puede utilizar en tareas de visión por computadora como el reconocimiento de objetos o la reconstrucción 3D. Está inspirado en parte por 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 robusta frente a diferentes transformaciones de imágenes que SIFT. [^ 2] [^ 3]
                                                                                  • Algoritmo GrowCut: un algoritmo de segmentación interactivo
                                                                                  • Algoritmo de caminante aleatorio
                                                                                  • Región en crecimiento
                                                                                  • Transformación de cuencas hidrográficas: una clase de algoritmos basados ​​en la analogía de cuencas hidrográficas
                                                                                  • Algoritmos de caché
                                                                                  • Conversión CHS: conversión entre sistemas de direccionamiento de disco
                                                                                  • Doble incursión: convierte 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 único entero que puede servir como índice en una matriz.
                                                                                    • Función hash Fowler – Noll – Vo: rápida con baja tasa de colisión
                                                                                    • Hash de Pearson: calcula solo el valor de 8 bits, optimizado para computadoras de 8 bits
                                                                                    • Hash de Zobrist: utilizado en la implementación de tablas de transposición

                                                                                    Algoritmos de sistemas distribuidos

                                                                                    • Algoritmo Bully: un método para seleccionar dinámicamente a un coordinador
                                                                                    • Tolerancia a fallos bizantinos: buena tolerancia a fallos.
                                                                                    • Sincronización de reloj
                                                                                      • Algoritmo de Berkeley
                                                                                      • El algoritmo de Cristian
                                                                                      • Algoritmo de intersección
                                                                                      • El algoritmo de Marzullo
                                                                                      • Algoritmo de Dijkstra-Scholten
                                                                                      • Algoritmo de Huang
                                                                                      • Algoritmo de exclusión mutua distribuido de Lamport
                                                                                      • Algoritmo log (n) de Naimi-Trehel
                                                                                      • Algoritmo de Maekawa
                                                                                      • Algoritmo de Raymond
                                                                                      • Algoritmo Ricart-Agrawala
                                                                                      • Algoritmo de Chandy-Lamport

                                                                                      Algoritmos de asignación y desasignación de memoria

                                                                                      • Asignación de memoria de amigos: algoritmo para asignar memoria de manera que la fragmentación sea menor.
                                                                                      • Recolectores de basura
                                                                                        • Algoritmo de Cheney: una mejora en el colector semiespacio
                                                                                        • Recolector de basura generacional: recolectores de basura rápidos que segregan la memoria por edad
                                                                                        • Algoritmo Mark-Compact: una combinación del algoritmo Mark-Sweep y el algoritmo de copia de Cheney
                                                                                        • Marcar y barrer
                                                                                        • Coleccionista de semiespacio: un coleccionista de copias temprano
                                                                                        • 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: mejore la eficiencia de las redes TCP / IP mediante la fusión de 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 adaptable (CAR): es un algoritmo de reemplazo de página que tiene un rendimiento comparable al caché de reemplazo adaptable
                                                                                            • Fecha límite más temprana primera programación
                                                                                            • Programación equitativa
                                                                                            • Programación del menor tiempo de inactividad
                                                                                            • Programación de listas
                                                                                            • Cola de retroalimentación de varios niveles
                                                                                            • Programación de tarifas monótona
                                                                                            • Programación por turnos
                                                                                            • Siguiente trabajo más corto
                                                                                            • El tiempo restante más corto
                                                                                            • Algoritmo de nodos superiores: gestión del calendario de recursos
                                                                                            • Algoritmo de elevador: algoritmo de programación de disco que funciona como un elevador.
                                                                                            • La búsqueda más corta primero: algoritmo de programación de disco para reducir el tiempo de búsqueda.

                                                                                            Tareas de ejemplo

                                                                                            Busque cadenas duplicadas en una matriz de cadenas

                                                                                            Problema: Dada una lista de $ n $ cadenas $ s_i $, cada una de no más de $ m $ caracteres, busque todas las cadenas duplicadas y divídalas en grupos.

                                                                                            A partir del algoritmo obvio que implica ordenar las cadenas, obtendríamos una complejidad de tiempo de $ O (nm log n) $ donde la ordenación requiere $ O (n log n) $ comparaciones y cada comparación toma $ O (m) $ tiempo . Sin embargo, al usar hashes, reducimos el tiempo de comparación a $ O (1) $, lo que nos da un algoritmo que se ejecuta en $ O (n m + n log n) $ tiempo.

                                                                                            Calculamos el hash para cada cadena, ordenamos los hash junto con los índices y luego agrupamos los índices por hash idénticos.

                                                                                            Cálculo rápido de hash de subcadenas de una cadena dada

                                                                                            Problema: Dada una cadena $ s $ e índices $ i $ y $ j $, encuentre el hash de la subcadena $ s [i dots j] $.

                                                                                            Por definición, tenemos: $ text(s [i puntos j]) = sum_^ j s [k] cdot p ^ mod m $ Multiplicar por $ p ^ i $ da: $ begin exto(s [i puntos j]) cdot p ^ i & amp = sum_^ j s [k] cdot p ^ k mod m & # 92 & # 92 & amp = text(s [0 puntos j]) - texto(s [0 dots i-1]) mod m end$

                                                                                            Entonces, al conocer el valor hash de cada prefijo de la cadena $ s $, podemos calcular el hash de cualquier subcadena directamente usando esta fórmula. El único problema al que nos enfrentamos al calcularlo es que debemos poder dividir $ text(s [0 puntos j]) - texto(s [0 dots i-1]) $ por $ p ^ i $. Por lo tanto, necesitamos encontrar el inverso multiplicativo modular de $ p ^ i $ y luego realizar la multiplicación con este inverso. Podemos precalcular el inverso de cada $ p ^ i $, lo que permite calcular el hash de cualquier subcadena de $ s $ en $ O (1) $ tiempo.

                                                                                            Sin embargo, existe una forma más sencilla. En la mayoría de los casos, en lugar de calcular exactamente los valores hash de la subcadena, basta con calcular el valor hash multiplicado por una potencia de $ p $. Supongamos que tenemos dos valores hash de dos subcadenas, una multiplicada por $ p ^ i $ y la otra por $ p ^ j $. Si $ i & lt j $ multiplicamos el primer hash por $ p ^$, de lo contrario, multiplicamos el segundo hash por $ p ^PS Al hacer esto, obtenemos ambos hashes multiplicados por la misma potencia de $ p $ (que es el máximo de $ i $ y $ j $) y ahora estos hashes se pueden comparar fácilmente sin necesidad de ninguna división.


                                                                                            C-3PO, PhD: Aprendizaje automático en astronomía

                                                                                            Los astrónomos trabajan con muchos datos. Una gran cantidad de datos. Y la velocidad a la que los telescopios y las simulaciones arrojan datos está aumentando rápidamente. Tome el próximo Gran Telescopio de Levantamiento Sinóptico, o LSST. Cada imagen tomada por el telescopio tendrá un tamaño de varios GB. Entre las 2000 imágenes nocturnas, procesando más de 10 millones de fuentes en cada imagen y luego enviando hasta 100,000 alertas transitorias, la encuesta resultará en más de 10 Terabytes de datos & # 8230 CADA NOCHE! A lo largo de todo el proyecto, se generarán más de 60 Petabytes de datos. A un GB por episodio, se necesitarían 6 millones de temporadas de Game of Thrones para sumar esa cantidad de datos. Eso es mucha ciencia que sale de LSST.

                                                                                            Uno de los mayores problemas con el manejo de cantidades tan grandes de datos astronómicos es cómo buscar de manera eficiente objetos transitorios: cosas que aparecen y desaparecen. Un desafío importante de la astronomía transitoria es cómo distinguir algo que realmente se volvió más brillante (como una supernova) de un artefacto mecánico (como un píxel defectuoso, un rayo cósmico u otro defecto). Con tantas imágenes entrando, no puede & # 8217t volver a tomarlas cada vez para verificar si una fuente es real.

                                                                                            Antes de la era de Big Data, los astrónomos a menudo podían comprobar las imágenes a simple vista. Con este proceso, conocido como & # 8220scanning & # 8221, un científico capacitado a menudo podría distinguir entre una fuente real y un artefacto. A medida que han ido llegando más imágenes, han surgido proyectos de ciencia ciudadana para aprovechar el poder de los miembros ansiosos del público en la categorización de datos. Pero con LSST en el horizonte, los astrónomos necesitan desesperadamente mejores métodos para clasificar imágenes.

                                                                                            Incorporar el aprendizaje automático

                                                                                            Fig. 1 & # 8211 Un ejemplo visual de un problema de clasificación de aprendizaje automático. Aquí, los árboles se clasifican por dos características: tamaño de la hoja y número de hojas por ramita. El conjunto de entrenamiento (puntos abiertos) tiene clasificaciones conocidas (Especies 1, 2 o 3). Una vez que se ha procesado el conjunto de entrenamiento, el algoritmo puede generar reglas de clasificación (las líneas discontinuas). Luego, los árboles nuevos (puntos rellenos) se pueden clasificar en función de sus características. Imagen adaptada de http://nanotechweb.org/cws/article/lab/46619

                                                                                            El artículo de Today & # 8217s hace uso de una técnica computacional conocida como aprendizaje automático para resolver este problema. Específicamente, utilizan una técnica conocida como & # 8220 clasificación de aprendizaje automático supervisado & # 8220. El objetivo de este método es obtener una clasificación de un objeto (en este caso, un artefacto o una fuente real) basado en características que se puede cuantificar sobre el objeto. El método es & # 8220supervisado & # 8221 porque requiere un conjunto de entrenamiento: una serie de objetos y sus características junto con clasificaciones conocidas. El conjunto de entrenamiento se utiliza para enseñar al algoritmo cómo clasificar objetos. En lugar de que un científico elabore reglas que definan una clasificación, esta técnica desarrolla estas reglas a medida que aprende. Una vez procesado este conjunto de entrenamiento, el algoritmo puede clasificar nuevos objetos en función de sus características (ver Fig. 1).

                                                                                            Para comprender mejor el aprendizaje automático supervisado, imagine que está tratando de identificar especies de árboles. Un amigo experto le dice que estudie el color de la corteza, la forma de las hojas y el número de hojas en una ramita. Estas son las características que utilizará para clasificar. Tu amigo te muestra muchos árboles y te dice el nombre de su especie (este es tu conjunto de entrenamiento), y tú aprendes a identificar cada especie según sus características. Con un conjunto de entrenamiento lo suficientemente grande, debería poder clasificar el siguiente árbol al que llegue, sin necesidad de una clasificación de su amigo. ¡Ahora está listo para aplicar un método de & # 8220supervised learning & # 8221 a nuevos datos!

                                                                                            Usar el aprendizaje automático para mejorar las búsquedas transitorias

                                                                                            Fig. 2 & # 8211 El rendimiento del algoritmo autoScan. La tasa de detección falsa es la frecuencia con la que un artefacto se etiqueta como fuente verdadera. La tasa de detección perdida (o tasa de falsos negativos) es la frecuencia con la que las fuentes reales se etiquetan como artefactos. Para un nivel de tolerancia dado (tau), los autores pueden seleccionar qué tan dispuestos están a aceptar falsos positivos a cambio de un menor riesgo de perder fuentes verdaderas. Los autores adoptaron una tolerancia de 0,5 para su algoritmo final. Este nivel identifica correctamente las fuentes reales el 96% de las veces, con solo un 2,5% de falsos positivos. Fig. 7 de Goldstein et al. 2015.

                                                                                            Los autores del artículo de hoy & # 8217s desarrollaron un algoritmo de aprendizaje automático llamado auto escáner, que clasifica posibles objetos transitorios como artefactos o fuentes reales. Aplican esta técnica para obtener imágenes de datos del Dark Energy Survey, o DES. El programa DES Supernova está diseñado para medir la aceleración del universo mediante la obtención de imágenes de más de 3000 supernovas y la obtención de espectros para cada una. Ubicado en las montañas de los Andes chilenos, DES será algo parecido a una ejecución de práctica para LSST, en términos de producción de datos.

                                                                                            La auto escáner El algoritmo utiliza una larga lista de características (como el flujo del objeto y su forma) y un conjunto de entrenamiento de casi 900.000 fuentes y artefactos. Después de que se procesó este conjunto de entrenamiento, los autores probaron el algoritmo y las capacidades de clasificación # 8217 contra otro conjunto de validación: más objetos con clasificaciones conocidas que no se utilizaron en el conjunto de entrenamiento. AutoScan pudo identificar correctamente las fuentes reales en el conjunto de validación el 96% del tiempo, con una tasa de detección falsa (alegando que un artefacto es una fuente) de solo el 2.5% (ver Fig. 2).

                                                                                            Con autoScan, los autores están preparados para analizar nuevos datos provenientes de Dark Energy Survey. Pueden mejorar en gran medida la eficiencia de la detección de fuentes transitorias como supernova, distinguiéndolas fácilmente de los artefactos instrumentales. Pero mejores técnicas, como un desarrollo más inteligente de conjuntos de entrenamiento, continuarán reduciendo la tasa de falsos positivos.

                                                                                            Los algoritmos de aprendizaje automático se volverán críticos para el éxito de futuras encuestas grandes como LSST, donde el poder de la persona por sí solo será completamente insuficiente para administrar los datos entrantes. Lo mismo puede decirse de Gaia, TESS, la instalación transitoria de Zwicky y prácticamente cualquier otro estudio astronómico próximo. Los proyectos de ciencia ciudadana seguirán teniendo muchos usos prácticos, y el ojo entrenado de un astrónomo profesional siempre será esencial. Pero en la era de Big Astro, las computadoras continuarán convirtiéndose cada vez más en partes integrales de la gestión de las operaciones diarias de investigación y descubrimiento.


                                                                                            Es común evaluar modelos de aprendizaje automático en un conjunto de datos mediante la validación cruzada de k-fold.

                                                                                            El procedimiento de validación cruzada de k pliegues divide un conjunto de datos limitado en k pliegues que no se superponen. Cada uno de los k pliegues tiene la oportunidad de usarse como un conjunto de prueba retenido, mientras que todos los demás pliegues se usan colectivamente como un conjunto de datos de entrenamiento. Se ajustan y evalúan un total de k modelos en los k conjuntos de pruebas de retención y se informa el rendimiento medio.

                                                                                            Para obtener más información sobre el procedimiento de validación cruzada de k-fold, consulte el tutorial:

                                                                                            El procedimiento de validación cruzada de k-fold se puede implementar fácilmente utilizando la biblioteca de aprendizaje automático scikit-learn.

                                                                                            Primero, definamos & # 8217s un conjunto de datos de clasificación sintético que podamos usar como base de este tutorial.

                                                                                            La función make_classification () se puede utilizar para crear un conjunto de datos de clasificación binario sintético. Lo configuraremos para generar 100 muestras cada una con 20 características de entrada, 15 de las cuales contribuyen a la variable objetivo.

                                                                                            El siguiente ejemplo crea y resume el conjunto de datos.

                                                                                            La ejecución del ejemplo crea el conjunto de datos y confirma que contiene 100 muestras y 10 variables de entrada.

                                                                                            La semilla fija para el generador de números pseudoaleatorios asegura que obtengamos las mismas muestras cada vez que se genera el conjunto de datos.

                                                                                            A continuación, podemos evaluar un modelo en este conjunto de datos mediante la validación cruzada de k veces.

                                                                                            Evaluaremos un modelo LogisticRegression y usaremos la clase KFold para realizar la validación cruzada, configurada para mezclar el conjunto de datos y establecer k = 10, un valor predeterminado popular.

                                                                                            La función cross_val_score () se utilizará para realizar la evaluación, tomando el conjunto de datos y la configuración de validación cruzada y devolviendo una lista de puntuaciones calculadas para cada pliegue.

                                                                                            El ejemplo completo se enumera a continuación.

                                                                                            Al ejecutar el ejemplo, se crea el conjunto de datos y luego se evalúa un modelo de regresión logística utilizando una validación cruzada de 10 veces. Luego se informa la precisión de clasificación media en el conjunto de datos.

                                                                                            Nota: Sus resultados pueden variar dada la naturaleza estocástica del algoritmo o procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo varias veces y compare el resultado promedio.

                                                                                            En este caso, podemos ver que el modelo logró una precisión de clasificación estimada de alrededor del 85,0 por ciento.

                                                                                            Ahora que estamos familiarizados con la validación cruzada de k-fold, veamos cómo podemos configurar el procedimiento.


                                                                                            6.849: Algoritmos de plegado geométrico: vínculos, origami, poliedros (otoño de 2010)

                                                                                            En el lado del diseño, veremos cómo los pliegues simples son suficientes para doblar cualquier forma 2D, y con pliegues un poco más generales, podemos doblar cualquier forma 3D incluso con un patrón de dos colores en la superficie.

                                                                                            En el lado de la capacidad de plegado, veremos cómo determinar de manera eficiente si un patrón de pliegue con montañas y valles indicados se puede doblar plano en dos casos interesantes: hojas de papel 1D (en otras palabras, pliegues paralelos en una tira de papel) y 2D. mapas rectangulares. L03 15 de septiembre

                                                                                            [+] Patrones de pliegue de un solo vértice: caracterizaciones de patrones de pliegue plano-plegables y patrones de montaña-valle, combinatoria de este último, plegabilidad plana local es fácil.
                                                                                            Método de árbol de diseño de origami: Introducción, base uniaxial, demostración. [Notas] [Diapositivas] [Video] --> Esta conferencia trata sobre el comportamiento local del plegado plano alrededor de cada vértice de un patrón de pliegue. En otras palabras, estudiamos cada vértice individualmente, caracterizando todos los patrones de pliegue de un solo vértice y los patrones de montaña-valle que son plegables en plano. Luego veremos cómo combinar múltiples vértices en un patrón de pliegue "plegable localmente".

                                                                                            También comenzamos con el método del árbol del diseño de origami, desarrollado por muchos diseñadores de origami japoneses a lo largo de los años, y convertido en un algoritmo y programa de computadora TreeMaker por Robert Lang. Este método ha sido el más exitoso en la transformación del diseño de origami complejo, y cubriremos más en la próxima lección. L04 20 de septiembre

                                                                                            [+] Eficiente diseño de origami: Método de árbol, TreeMaker, base uniaxial, camino activo, molécula de oreja de conejo, molécula universal, Servilleta Margulis Plegado de cubos problemáticos, plegado en tablero de ajedrez Origamizer, estanco, tuck proxy. [Notas] [Diapositivas] [Video] --> Esta conferencia trata sobre el diseño eficiente de origami. En la lección 2 vimos cómo doblar cualquier cosa de manera poco práctica. Ahora veremos cómo doblar muchas formas de forma práctica.

                                                                                            Primero está el método de árbol, cuya implementación de software TreeMaker demostré al final de la Lección 3. Describiré cómo nos permite doblar una base de origami de figura de palo (árbol) óptima, aunque calcular ese óptimo es en realidad NP-completo ( como veremos en la lección 5). Este algoritmo se utiliza en todo el diseño moderno de origami complejo. Mostraré algunos ejemplos de Robert Lang y nuestro propio Jason Ku.

                                                                                            En segundo lugar, veremos un caso simple y completamente entendido: el cuadrado más pequeño para doblar un cubo.

                                                                                            En tercer lugar, veremos un problema clásico en el que avanzamos recientemente: doblar un tablero de ajedrez n & times n desde el cuadrado bicolor más pequeño.

                                                                                            Finalmente, veremos el método más reciente y más general, Origamizer, para doblar cualquier poliedro de manera razonablemente eficiente. Aquí no tenemos una buena garantía teórica sobre la optimización, pero el método funciona bien en la práctica, siempre funciona y tiene otras características interesantes como la estanqueidad. L05 22 de septiembre

                                                                                            [+] Patrones de bisagras universales: plisado de caja, plegado de laberinto ortogonal de policubos.
                                                                                            Dureza NP: introducción, reducciones, patrón de pliegue de plegado simple, embalaje de disco de plegado plano (para el método de árbol). [Notas] [Diapositivas] [Video] --> Esta conferencia cubre dos temas principales:

                                                                                            Primero, continuando con nuestro tema de la Lección 4 sobre el diseño eficiente de origami, veremos cómo los subconjuntos de un solo patrón de bisagra son suficientes para doblar cualquier forma ortogonal formada por cubos, mientras que otros enfoques usan un conjunto de pliegues completamente diferente para cada modelo de origami. quieres. En general, podemos doblar n cubos de un cuadrado de papel O (n) y multiplicado por O (n). En el caso especial de los "laberintos ortogonales", no podemos desperdiciar casi nada de papel, y el plegado es solo un pequeño factor constante más pequeño que el papel original. Puedes probar esto tú mismo.

                                                                                            • doblar un patrón de pliegue dado a través de una secuencia de pliegues simples
                                                                                            • plegado plano de un patrón de pliegue determinado (utilizando cualquier estado de plegado)
                                                                                            • diseño óptimo de una base uniaxial, incluso cuando el árbol es solo una estrella.

                                                                                            [+] Diseño artístico de origami: muestreo del método del árbol del arte representativo del origami y su uso.
                                                                                            (conferencia invitada por Jason Ku) [Diapositivas] [Video]--> Esta es una conferencia invitada por Jason Ku, presidente de OrigaMIT (el club de origami del MIT), estudiante de doctorado en ingeniería mecánica y destacado diseñador de origami.

                                                                                            Su conferencia versará sobre sus perspectivas sobre el diseño artístico de origami. La lección 4 describió el algoritmo del método del árbol del diseño de origami. Ahora veremos cómo se aplica este método en ejemplos del mundo real.

                                                                                            La primera mitad de la conferencia introducirá el lado artístico del origami representativo. En el origami, como en muchas disciplinas, la familiaridad con el canon de trabajo que ya existe puede ser bastante útil para comprender las vías del desarrollo creativo futuro. Por lo tanto, cubriremos las obras y estilos de una muestra de las carpetas de papel más famosas del mundo.

                                                                                            La segunda mitad de la conferencia se centrará en el diseño real del arte representativo del origami. Repasaremos brevemente la teoría del árbol, sopesaremos los pros y los contras de este método de diseño y enfatizaremos las relaciones entre un árbol, un empaquetamiento de círculo / río y el lugar del posible pliegue de bisagra en una base uniaxial. Finalmente, pasaremos por el proceso de diseño de un modelo de origami con, luego sin, la ayuda de TreeMaker. L07 28 de septiembre

                                                                                            [+] Pliegue y un corte: historia, método de esqueleto recto, método de empaquetadura de disco, pliegues simples, dimensiones superiores, poliedros de aplanamiento. [Notas] [Diapositivas] [Video] --> Esta conferencia trata sobre mi primer trabajo en origami computacional: doblar una hoja de papel para que un corte recto completo haga un patrón de cortes deseado (y las formas poligonales resultantes). El problema tiene una larga historia (desde el siglo XVIII) y posibles aplicaciones al plegado de bolsas de aire a través de un problema llamado aplanamiento. Veremos dos métodos diferentes para este problema, cada uno con conexiones con el método del árbol del diseño de origami: el primero generaliza la molécula universal a polígonos no convexos, pero pierde la capacidad de controlar el árbol de sombra, el segundo usa el empaquetado de discos (pero no los ríos ) y moléculas universales para triángulos y cuadrángulos. También hablaré sobre un resultado completamente nuevo que comenzó en esta clase hace tres años: ¿qué formas puedes hacer solo con pliegues simples? L08 4 de octubre

                                                                                            [+] Movimientos de plegado: estados de plegado vs. movimientos plegabilidad universal del papel poligonal.
                                                                                            Vínculos para firmar su nombre: gráficos vs. vínculos vs. configuraciones, espacio de configuración Teorema de universalidad de Kempe, prueba original, error, correcciones, generalizaciones y fortalecimientos. [Notas] [Diapositivas] [Video] --> Esta conferencia inicia el comienzo del plegado de varillaje. Pasaremos del origami pensando en movimientos de plegado de trozos de papel y demostraremos que siempre es posible alcanzar cualquier estado doblado de un trozo de papel poligonal. ¿Cuántos pliegues adicionales necesitamos? Esta pregunta sin resolver conduce a problemas en el dominio del plegamiento de enlaces.

                                                                                            Luego nos centraremos en el teorema de universalidad de Kempe: hay un vínculo para firmar su nombre, o más matemáticamente, trazar cualquier curva polinomial. Esta prueba presenta un montón de artilugios geniales, en particular para sumar ángulos y multiplicar (o dividir) ángulos por factores constantes. L09 6 de octubre

                                                                                            [+] Teoría de la rigidez: Rigidez, rigidez genérica, rigidez genérica mínima, caracterización de Henneberg, caracterización de Laman, algoritmo polinomial-tiempo, poliedros convexos. [Notas] [Diapositivas] [Video] --> Esta conferencia trata sobre la teoría de la rigidez, que trata de saber cuándo un vínculo puede doblarse. Este campo se remonta a la ingeniería mecánica de los siglos XVIII y XIX, con aplicaciones a la ingeniería estructural y la arquitectura (hacer que los edificios y puentes se levanten), la biología (comprender qué partes de una proteína aún se mueven después de plegarse) y el enlace que se pliega. (más allá de "¿se mueve en absoluto?", como veremos en la próxima conferencia).

                                                                                            Cubriremos dos teoremas principales que caracterizan "genéricamente" gráficos rígidos en 2D. El teorema de Henneberg, de 1911, ofrece una caracterización agradable y directa, pero es difícil convertirlo en un algoritmo. El teorema de Laman, de 1970, es intuitivamente más difícil de trabajar, pero se convierte en un algoritmo rápido (tiempo cuadrático).

                                                                                            Desafortunadamente, todo esto es solo para 2D, y no conocemos buenas caracterizaciones para la rigidez genérica en 3D. Sin embargo, describiré brevemente algunos teoremas agradables sobre la rigidez de los poliedros convexos en 3D, que en particular explican por qué se levantan las cúpulas geodésicas de Buckminster Fuller. L10 13 de octubre

                                                                                            [+] Teoría de la rigidez: rigidez infinitesimal, matriz de rigidez.
                                                                                            Teoría de la tensegridad: tensegridades, tensión de equilibrio, dualidad, levantamiento poliédrico, Teorema de Maxwell-Cremona.
                                                                                            Vínculos bloqueados: Teorema de la regla de carpintero. [Notas] [Diapositivas] [Video] --> Esta conferencia continúa nuestro recorrido a través de la teoría de la rigidez, presentando dos grandes ideas más: rigidez infinitesimal y tensegridades. La rigidez infinitesimal es una buena forma de capturar el caso genérico usando álgebra lineal, y se generaliza muy bien (y es eficientemente computable) en cualquier dimensión. Las tensegridades (un término acuñado por Buckminster Fuller) permiten la adición de puntales (que evitan la compresión) y cables (que evitan la expansión) además de barras (que evitan ambos & mdash, que es en lo que más hemos estado pensando). Un buen caso especial de tensegridades son las & ldquospider webs & rdquo, que resultan estar relacionadas con el diseño algorítmico de teselaciones de origami.

                                                                                            Aunque obviamente no están relacionadas, las herramientas de rigidez que construimos nos permiten probar la existencia de movimientos de plegado reales entre dos configuraciones de "enlaces de cadena ldquo" (cuyos gráficos son caminos o ciclos) cuyos bordes no se pueden cruzar. Este Teorema de la regla de carpintero (que fue esencialmente mi tesis de doctorado) inicia nuestra cobertura sobre la comprensión de cuándo los vínculos pueden y ldquolock & rdquo. L11 18 de octubre

                                                                                            [+] Vínculos bloqueados: algoritmos para desplegar cadenas 2D, pseudotriangulación, plegado rígido de energía de árboles bloqueados de origami de un solo vértice, vínculos infinitesimalmente bloqueados, Reglas 1 y 2 cadenas 3D bloqueadas, agujas de tejer. [Notas] [Diapositivas] [Video] --> Esta conferencia trata sobre los vínculos cerrados. Continuando con el Teorema de la regla de carpintero de la última lección, que dice que las cadenas 2D no se pueden bloquear, veremos tres algoritmos diferentes para plegar cadenas 2D. Cada algoritmo tiene diferentes niveles de expansión, simetría y eficiencia, con aplicaciones para la planificación del movimiento del brazo robótico en 2D. También veremos una aplicación de una versión esférica del problema de la regla de carpintero al plegado rígido de origami de un solo vértice. Luego recorreremos el mundo de los árboles 2D bloqueados, que ha tenido un progreso significativo recientemente. Con este fin, describiré la amplia tecnología para probar que los enlaces 2D están bloqueados. Finalmente, veremos brevemente las cadenas 3D bloqueadas, que se relacionan con el plegamiento de proteínas. L12 20 de octubre

                                                                                            [+] Disecciones con bisagras: Cadenas bloqueadas y desbloqueadas de formas planas, cadenas adornadas, adornos delgados, esbeltas implicaciones no bloqueadas, Teorema de Kirszbaun, triángulos bloqueados con ángulo de vértice & gt 90 & deg existencia de disecciones con bisagras, refinamiento. [Notas] [Diapositivas] [Video] --> Esta conferencia trata sobre cadenas de polígonos u otras formas 2D, conectadas entre sí por bisagras en 2D. Estas estructuras se denominan clásicamente "disecciones ldquohinged". En el lado de la capacidad de plegado, veremos algunas situaciones sorprendentemente generales, llamadas "adornos finos", en las que estas cadenas no se pueden bloquear, basándose en el Teorema de la regla de carpintero y la expansividad (Clase 10). También veremos algunos ejemplos que se bloquean, basados ​​en nuestra teoría de los vínculos infinitesimalmente bloqueados y las Reglas 1 y 2 (Clase 11). En cuanto al diseño, mostraremos que en realidad podemos diseñar disecciones con bisagras que se pliegan en cualquier colección finita de formas poligonales deseadas, utilizando adornos delgados para garantizar movimientos plegables. L13 25 de octubre

                                                                                            1. ¿Todos los poliedros convexos tienen un borde que se despliega? Este es también el problema más antiguo, implícito desde 1525.
                                                                                            2. ¿Cada poliedro (sin límite) tiene un despliegue general? Este es uno de mis problemas abiertos favoritos.

                                                                                            [+] Desdoblamiento de poliedros: Despliegue de vértices, trayectorias de facetas, poliedros ortogonales desplegados en general, despliegue de rejilla, refinamiento, torres Manhattan, ortesis, ortotubos, ortoteros.
                                                                                            Plegado del poliedro: Teorema de rigidez de Cauchy, la singularidad del plegado de Alexandrov. [Notas] [Diapositivas] [Video] --> Esta conferencia continúa con el tema de desplegar poliedros y da inicio a nuestra cobertura de polígonos plegables en poliedros.

                                                                                            En el lado del despliegue, cubriremos el & ldquovertex desplegado & rdquo, que es una variación del despliegue del borde como disecciones con bisagras. Demostraremos que este tipo de despliegue existe, incluso para poliedros no convexos, siempre que cada cara sea un triángulo. Luego, cubriremos los avances recientes en el desarrollo general, para poliedros ortogonales.

                                                                                            En el lado de plegado, probaremos el Teorema de rigidez de Cauchy: los poliedros convexos tienen exactamente una realización convexa (viendo las caras rígidas y los bordes como bisagras). Luego mostraremos cómo extender esto al Teorema de unicidad de Alexandrov: si pega el límite de un polígono, hay como máximo un poliedro convexo que puede hacer. (En la próxima lección veremos cómo conseguir uno). L15 1 de noviembre

                                                                                            [+] Plegado de poliedros: Problema de decisión, problema de enumeración, problema combinatorio, solución no convexa, métricas poliédricas convexas, encolados de Alexandrov, teorema de Alexandrov, prueba constructiva de Bobenko-Izmestiev, algoritmo pseudopolinomial, polígonos no gloriosos, reducción a la mitad del perímetro, árbol de encolado, cinturones rodantes. [Notas] [Diapositivas] [Video] --> Esta conferencia se sumerge en el problema de doblar polígonos en poliedros. El enfoque aquí está en los poliedros convexos plegables, aunque hay un buen resultado sobre el caso no convexo de Burago & amp Zalgaller.

                                                                                            La principal herramienta en esta área se llama Teorema de Alexandrov, de 1941, que caracteriza cuando un pegado del límite de un polígono dará como resultado un poliedro convexo más, como vimos en la última lección, ese resultado convexo es siempre único. Esbozaremos una prueba de este teorema, así como algoritmos recientes para encontrar el poliedro convexo.


                                                                                            3 respuestas 3

                                                                                            Hay 2 tipos de métodos de plegado que se utilizan Desplazamiento de plegado y Límite de plegado.

                                                                                            Divide la clave en partes cuyo tamaño coincida con el tamaño de la dirección requerida. Las partes simplemente se agregan para obtener la dirección requerida.

                                                                                            Clave: 123456789 y el tamaño de la dirección requerida es de 3 dígitos.

                                                                                            123 + 456 + 789 = 1368. Para reducir el tamaño a 3, se elimina 1 u 8 y, en consecuencia, la clave sería 368 o 136 respectivamente.

                                                                                            Doblar el límite

                                                                                            Vuelve a dividir la llave en partes cuyo tamaño coincide con el tamaño de la dirección requerida, pero ahora también aplica el plegado, excepto por la parte central, si está ahí.

                                                                                            Clave: 123456789 y el tamaño de la dirección requerida es de 3 dígitos

                                                                                            321 (plegado aplicado) + 456 + 987 (plegado aplicado) = 1764 (descartar 1 o 4)

                                                                                            Dado 424-124-9675, usted decide dónde desea dividirlo en grupos. Por ejemplo:

                                                                                            cada 3 dígitos de izquierda a derecha: hash = 424 + 124 + 967 + 5

                                                                                            cada 3 dígitos desde la derecha: hash = 675 + 249 + 241 + 4

                                                                                            donde los guiones son: hash = 424 + 124 + 9675

                                                                                            Sin embargo, es una forma terriblemente débil de hash, muy propensa a colisiones.

                                                                                            Siguiendo las respuestas de Tony y Sumeet, investigué un poco más sobre el plegado de dígitos y decidí implementar la técnica explicada por Robert Lafore en su libro Estructuras de datos.

                                                                                            Por ejemplo, suponga que desea aplicar un hash a números de máquina de 10 dígitos. Si el tamaño de la matriz es 1,000, dividiría el número de 10 dígitos en tres grupos de tres dígitos y un grupo de un dígito. En nuestro ejemplo, el número de máquina en cuestión es 424-124-9675, por lo que calcularía un valor clave de 424 + 124 + 967 + 5 = 1520. Puede utilizar el operador% para recortar tales sumas de modo que el índice más alto sea 999. En este caso, 1520% 1000 = 520.

                                                                                            Si el tamaño de la matriz es 100, deberá dividir la clave de 10 dígitos en cinco números de dos dígitos: 42 + 41 + 24 + 96 + 75 = 278 y 278% 100 = 78.

                                                                                            Es más fácil imaginar cómo funciona esto cuando el tamaño de la matriz es un múltiplo de 10. Sin embargo, para obtener mejores resultados, debe ser un número primo.

                                                                                            Aquí está el código Java de la técnica de plegado de dígitos que implementé:

                                                                                            Encontré el método de hacer grupos aquí. Pero hace grupos de derecha a izquierda. Entonces, utilicé el método String # subString () para hacer grupos de izquierda a derecha.


                                                                                            FFT bidimensional

                                                                                            A continuación se describe brevemente cómo realizar transformadas de Fourier bidimensionales. El código fuente se proporciona al final y se presenta un ejemplo en el que se aplica un filtro de paso bajo simple a una imagen. El filtrado en el dominio de la frecuencia espacial es ventajoso por las mismas razones que el filtrado en el dominio de la frecuencia se utiliza en el análisis de series de tiempo, el filtrado es más fácil de aplicar y puede ser significativamente más rápido.

                                                                                            Se supone que el lector está familiarizado con las transformadas de Fourier unidimensionales, así como con los pares clave de transformadas de tiempo / frecuencia.

                                                                                            En la situación más general, una transformación bidimensional requiere una matriz compleja. La aplicación más común es para el procesamiento de imágenes donde cada valor en la matriz representa un píxel, por lo tanto, el valor real es el valor del píxel y el valor imaginario es 0.

                                                                                            Las transformadas bidimensionales de Fourier simplemente implican una serie de transformadas unidimensionales de Fourier. Más precisamente, una transformación bidimensional se logra transformando primero cada fila, reemplazando cada fila con su transformación y luego transformando cada columna, reemplazando cada columna con su transformación. Por lo tanto, una transformación 2D de una imagen de 1K por 1K requiere transformaciones de 2K 1D. Esto se deriva directamente de la definición de la transformada de Fourier de una variable continua o la transformada discreta de Fourier de un sistema discreto.

                                                                                            Los pares de transformación que se derivan comúnmente en 1 dimensión también se pueden derivar para la situación bidimensional. Los pares bidimensionales a menudo se pueden derivar simplemente considerando el procedimiento de aplicar transformaciones a las filas y luego a las columnas de la matriz bidimensional.


                                                                                            La función delta se transforma en un plano de CC 2D


                                                                                            La línea de funciones delta se transforma en una línea de funciones delta


                                                                                            Pulso cuadrado

                                                                                            Función sinc 2D

                                                                                            En el ejemplo anterior se han reorganizado los cuadrantes para colocar DC (freq = 0) en el centro de la imagen. La organización predeterminada de los cuadrantes de la mayoría de las rutinas FFT es la siguiente

                                                                                            Ejemplo

                                                                                            Para realizar FFT (Transformada rápida de Fourier) en lugar de la DFT (Transferencia discreta de Fourier) mucho más lenta, la imagen debe transformarse de modo que el ancho y la altura sean una potencia entera de 2. Esto se puede lograr de dos maneras, escalar la imagen hasta la potencia entera más cercana de 2 o el pad de cero hasta la potencia entera más cercana de 2. La segunda opción se eligió aquí para facilitar las comparaciones con el original. La imagen resultante es de 256 x 256 píxeles.

                                                                                            Ahora se puede realizar el procesamiento de imágenes (por ejemplo, filtrado) y la imagen se puede convertir de nuevo al dominio espacial. Por ejemplo, el filtrado de paso bajo implica reducir los componentes de alta frecuencia (aquellos radialmente distantes del centro de la imagen de arriba). A continuación se ilustran dos ejemplos que utilizan diferentes frecuencias de corte.


                                                                                            Estrategias de modelado inteligente para pronosticar series de tiempo de calidad del aire: una revisión

                                                                                            Hui Liu,. Chao Chen, en Soft Computing aplicado, 2021

                                                                                            4 Método auxiliar I: Optimización metaheurística

                                                                                            Aunque los modelos predictivos simples y los métodos de procesamiento de datos pueden mejorar en gran medida las capacidades de los modelos inteligentes, el rendimiento de la predicción se puede mejorar aún más en la estructura y los hiperparámetros. Los algoritmos de optimización metaheurística apuntan a una mayor optimización de los datos originales. Todo el proceso de datos de entrada es una selección de características típica, en la que se utilizan algoritmos metaheurísticos para generar datos de entrada y los datos se utilizarán como muestras de entrenamiento para pronosticar resultados.

                                                                                            4.1 Algoritmo heurístico y metaheurístico

                                                                                            Los algoritmos heurísticos son una especie de algoritmos construidos de manera intuitiva o empírica que brindan una solución factible para problemas específicos a resolver. Los algoritmos metaheurísticos son la mejora de los algoritmos heurísticos, que es la combinación de algoritmos aleatorios y algoritmos de búsqueda local como estrategias heurísticas generales. Muchos algoritmos metaheurísticos simulan los fenómenos biológicos o físicos de la naturaleza en estructuras matemáticas para resolver problemas [157]. En la figura 13 se muestran algunos algoritmos metaheurísticos utilizados en los modelos de predicción de la calidad del aire.

                                                                                            Los algoritmos heurísticos son los métodos que dependen del problema. Por tanto, suelen adaptarse al problema actual e intentan aprovechar al máximo la particularidad de este problema. Sin embargo, generalmente caen en un estado óptimo local y, por lo tanto, generalmente no pueden obtener una solución óptima globalmente. Aunque los algoritmos metaheurísticos son diferentes en el mecanismo, son métodos independientes del problema. No son tan codiciosos que les permitan explorar el espacio de la solución más a fondo y repetir hasta que el criterio de convergencia sea lo suficientemente bueno para obtener las soluciones óptimas [158]. Todavía es necesario realizar algunos ajustes en sus parámetros internos, especialmente los hiperparámetros, como el número de iteraciones, el número de capas ocultas, el número de neuronas en cada capa, la tasa de aprendizaje, etc. [86].

                                                                                            El algoritmo genético (GA) es un método para buscar soluciones óptimas mediante la simulación de la selección evolutiva natural, apuntando a todos los individuos de la población. La optimización del enjambre de partículas (PSO) es también un método de optimización basado en la población desarrollado mediante la simulación del comportamiento colectivo de las aves para obtener la solución óptima [59,159]. En Ref. [160], similar a GA, el algoritmo de evolución diferencial (DE) se utiliza para la búsqueda global de optimización en modelos híbridos. Otros algoritmos metaheurísticos, como la búsqueda de cuco (CS) [62,161], el algoritmo de murciélago (BA) [162] y el optimizador de lobo gris (GWO) [90], también se han utilizado comúnmente para mejorar el rendimiento de la predicción. La combinación de algoritmos metaheurísticos puede mejorar aún más los parámetros basados ​​en la complejidad de los modelos híbridos, como el algoritmo de optimización de enjambre de partículas y búsqueda gravitacional (PSOGSA) y el algoritmo de búsqueda de cuco modificado y evolución diferencial (MCSDE).