
We are searching data for your request:
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
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 Coincidencia de secuencia aproximada Algoritmos teóricos de números Resolución de ecuaciones diferenciales Funciones elementales y especiales Interpolación y extrapolación Proceso de Gram-Schmidt: ortogonaliza un conjunto de vectores 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 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 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 Búsqueda local: una metaheurística para resolver problemas de optimización computacionalmente difíciles Algoritmo de probabilidades (algoritmo de Bruss): encuentra la estrategia óptima para predecir un último evento específico en un evento de secuencia aleatoria Aprendizaje automático y clasificación estadística Teoría del lenguaje de programación Teoría de la computación y los autómatas Teoría de la información y procesamiento de señales
¿Cómo aplicar el algoritmo Fast Folding? - Astronomía
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 - ¿Todos los poliedros convexos tienen un borde que se despliega? Este es también el problema más antiguo, implícito desde 1525.
- ¿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 2DEn 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).