678 lecturas
678 lecturas

Los 10 algoritmos más extraños y brillantes jamás inventados y lo que realmente hacen

por paoloap...12m2025/05/13
Read on Terminal Reader

Demasiado Largo; Para Leer

En 1987, dos programadores de General Electric inventaron el algoritmo Marching Cubes.Es la razón por la que los médicos pueden convertir las escenas médicas en modelos 3D que literalmente salvaron millones de vidas.
featured image - Los 10 algoritmos más extraños y brillantes jamás inventados y lo que realmente hacen
Paolo Perrone HackerNoon profile picture
0-item
1-item


¿Alguna vez ha intentado extraer una red poligonal de un campo escalar discreto en 3D?


¿No ?


Bueno, en 1987, dos programadores de General Electric lo hicieron - y terminaron inventando el algoritmo de los cubos de marcha.Es por eso que los médicos pueden convertir las escenas médicas en modelos 3D que literalmente salvaron millones de vidas.


Ese es el poder de un algoritmo.


Whenever you instruct a machine to solve a problem with code, you’re designing a procedure to transform bits into meaningAlgunos algoritmos son rápidos. Algunos son elegantes. Y algunos son tan extraños, se sienten como brujería.


En esta historia, nos sumergimos en diez de los algoritmos más extraños y brillantes jamás inventados, aquellos que ayudan a buscar miles de millones de líneas de código en milisegundos, generan mapas infinitos desde el nada y convierten la extrañeza cuántica en lógica práctica.


1 – Función de onda Colapse

Una de las cosas más extrañas en la ciencia es el experimento de doble fila: las partículas se comportan como ondas cuando no estás mirando, pero en el momento en que las observas, se agrupan como partículas.


The Double Slit Experiment aka ‘The Observer Effect’


Esta idea de un “colapso de la función de onda” suena abstracto, pero se ha convertido en un algoritmo sorprendentemente práctico. Imagínese que está diseñando un mapa de videojuegos de desplazamiento lateral.


Al principio, cada ladrillo del mapa es como una “onda” – todavía no es nada específico. Está lleno de posibilidades. Pero a medida que el jugador avanza – observando el mundo – el algoritmo “colapsa” esa incertidumbre. El mundo se solidifica en una ladrilla específica, pero lo hace de acuerdo con las reglas que has establecido.


Es aleatoriedad con un propósito, todo sin una sola pieza de IA generativa.


#2 El modelo de difusión

Es extraño, es realmente extraño.


Tomemos los modelos de difusión, la tecnología detrás de los generadores de imagen como DALL·E y Stable Diffusion. Se basan en una idea de la termodinámica: difusión, donde las partículas se propagan naturalmente de áreas de mayor concentración a áreas de menor concentración.


En el aprendizaje automático, este proceso se transforma.


En lugar de ir del orden al caos, el algoritmo comienza con el ruido puro -como una imagen de un gato- y aprende a refinarlo gradualmente en una imagen significativa.


Pero necesitas un modelo para hacer esto bien.El algoritmo de difusión funciona en dos fases.


En primer lugar, durante el entrenamiento, el modelo toma imágenes reales y gradualmente añade ruido en un proceso adelante hasta que se vuelven irreconocibles.

Noising and Denoising during the Diffusion Process


The architecture of the latent diffusion model (LDM).


Haz esto a través de millones de imágenes etiquetadas, y obtendrás un modelo que pueda soñar con nuevas imágenes desde cero. Gatos en el espacio. Antigua Roma en estilo Pixar. sillas de avocado hiperrealistas.


Es computacional, pero no se detiene en las imágenes.La difusión ya está remodelando la forma en que generamos música, audio y, a continuación, vídeo.

#3 Simulado Annealing

Una de las partes más frustrantes de la programación es que rara vez hay una solución correcta - solo un mar de cosas buenas, y unas pocas buenas.


Simulated annealing toma su nombre de la metalurgia, donde los metales se calientan y se enfrían repetidamente para eliminar defectos.El mismo concepto se aplica a la optimización.Estás tratando de encontrar la mejor solución en un paisaje caótico lleno de picos y valles locales.


Simulated Annealing used to optimize warehouse layout for faster order picking in an Amazon warehouse


Imagínese que está buscando el pico más alto en una franja de montaña. Un algoritmo básico de subida de la colina te atrapará en el primer choque que parece prometedor. Pero el anillo simulado es más inteligente. Comienza con una "temperatura" alta, lo que significa que explora libremente - a veces incluso aceptando caminos peores para escapar de las trampas locales. A medida que la temperatura desciende gradualmente, se vuelve más picante, asentándose sólo en los mejores movimientos.


Simulated Annealing navigating a rugged mountain range to discover the highest peak among many local summits


El compromiso es exploración vs. explotación. Y no sólo es útil en el código, sino que es una buena metáfora para aprender a codificar, también.


#4 Dormir bien

No se puede hablar de algoritmos sin llevar a cabo la clasificación, y tal vez el más absurdamente inteligente (y completamente inútil) jamás inventado esDormir negro.


Los algoritmos de clasificación tradicionales, comoQuicksilveroMercurio, use estrategias de dividir y conquistar para romper recursivamente los arreglos en subarreglos y ordenarlos de manera eficiente.Pero en 4chan, un genio loco propuso un enfoque completamente diferente.


Aquí está cómo funciona: para cada número en la matriz, comience un nuevo hilo. Cada hilo duerme durante un número de milisegundos igual a su valor, luego imprime el número cuando se despierta. Debido a que los números más pequeños duermen por menos tiempo, se imprimen antes, lo que resulta en una salida ordenada.


Sleep Sort in Action


La parte inteligente? salta toda la lógica habitual y convierte el programador de hilo de la CPU en el motor de clasificación. No hay comparaciones. No hay recursión. Sólo duerme y imprime.


Pero es extremadamente impracticable. Se rompe con números negativos, duplicados o grandes valores. También es ineficiente, creando un hilo por número. Y depende del tiempo de sueño, que no es muy preciso.


#5 Dios es bueno

BogoSort es un algoritmo de broma: aleatoriamente cambia una matriz una y otra vez hasta que, por pura suerte, el resultado se ordena.


Ahora imaginen combinar esto con la idea de la mecánica cuántica y el multiverso.En teoría, si todos los resultados posibles existen en infinitos universos paralelos, entonces hayAlgunosuniverso en el que su array ya está ordenado.


La tecnología aún no está ahí, pero un “Quantum BogoSort” funcionaría creando todas esas posibilidades a la vez, y luego colapsando instantáneamente en el universo donde se ordena la matriz – esencialmente dejando que la aleatoriedad cuántica haga el trabajo por usted.


Por supuesto, esto es ciencia ficción, no ciencia de la computación.No podemos observar o colapsar el multiverso a voluntad.Pero es un experimento de pensamiento lúdico sobre la aleatoriedad de la fuerza bruta tomada a su extremo lógico (y absurdo).


Bogo sort algorithm Visualized


#6 - El boxeo

Y aquí está mi favorito.Lo que me parece realmente cool acerca de los algoritmos es cómo a veces pueden reflejar la naturaleza.Tome el programa Boids de Craig Reynolds de 1986 —fue una de las primeras simulaciones de vida artificial y imita cómo los pájaros rebanan.Sentimientostan vivo


Cada ave (o “boido”) sigue sólo tres reglas: evitar colisionar con los vecinos (Separación), alinearse con su dirección (Alineamiento), y moverse hacia el centro del grupo local (Cohesión).

Boid’s algorithm rules


Pero cuando simula un montón de estos comportamientos simples juntos, obtiene patrones orgánicos fascinantes que se desplazan y fluyen como un rebaño real.


La belleza aquí no está en el código - es en lo queemergeEstas complejas dinámicas de grupo no tienen que ser explicitamente programadas. simplemente ocurren.Es como tropezar con el código de engaño de la naturaleza para la coordinación descentralizada.


3D Boid’s simulation


#7 - El algoritmo de SHOR

La idea de permitir a las personas bloquear sus cajas de correo y firmar sus cartas con una firma única se basa en un concepto importante en la criptografía: la dificultad de factorizar grandes números.


La seguridad detrás de la mayoría de los métodos de cifrado se basa en esta simple realidad matemática: multiplicar grandes números juntos es fácil, pero averiguar los dos números primos originales detrás del productoUn problema conocido comoprime factorization Es muy difícil y consume tiempo.


De hecho, es tan difícil que podría llevar cientos de billones de años a su portátil para forzar brutalmente la solución, a menos que, por supuesto, empecemos a usar computadoras cuánticas. las computadoras cuánticas tienen el potencial de resolver el problema de factorización de números enteros de forma exponencial más rápida que cualquier algoritmo clásico, gracias a algoritmos como el algoritmo de Shor.


El algoritmo de Shor puede descomponer grandes números en sus factores primos mucho más rápido que los métodos convencionales. el factoring primario es bastante simple, pero cómo funciona este algoritmo es donde las cosas se vuelven realmente extrañas.


En el corazón del algoritmo de Shor están los conceptos de mecánica cuántica como qubits, superposición y entanglement.Estos permiten que las computadoras cuánticas realicen cálculos masivos en paralelo, algo que las computadoras clásicas ni siquiera pueden acercarse a hacer.


Representation Shor’s Quantum Factorization Algorithm


Mientras que el algoritmo en sí es legítimo, su aplicación en el mundo real todavía está en sus primeras etapas.En realidad, el número más grande que se ha calculado con la computación cuántica es sólo 21.El sistema cuántico de última generación de IBM, Q System One, no puede calcular un número tan simple como 35.


Recientemente, un equipo chino logró calcular un número enorme usando una computadora cuántica, pero usaron un algoritmo que no escala bien para números mucho más grandes, lo que significa que aún no es práctico para uso general.


Sin embargo, si las computadoras cuánticas se vuelven lo suficientemente potentes y alguien se da cuenta de cómo escalar estos algoritmos para números verdaderamente grandes, espera serias perturbaciones en el mundo de la ciberseguridad.


# 8 - Marchas de cubos

Al comienzo de esta historia, mencionamos el algoritmo de los cubos de marcha, pero vale la pena sumergirse, porque era un punto de inflexión importante para la visualización de datos 3D, especialmente en la medicina.


Imagínese que tiene un escaneo 3D del cuerpo humano, como de una MRI. La MRI no le da un modelo 3D, sino un cubo gigante de números - un campo escalar 3D. Cada punto en ese campo tiene un valor que representa algo como la densidad de tejido o la intensidad de la señal.


Visualization of a 3d Scalar Field


El algoritmo toma este campo 3D y marcha a través de él un pequeño cubo a la vez. Cada cubo está formado por ocho puntos de datos vecinos en el campo.


Ahora aquí está el poco inteligente: cada uno de esos ocho puntos está por encima o por debajo de un umbral (por ejemplo, donde la piel se convierte en hueso).


Esto le da un número de 8 bits — 256 combinaciones posibles para cada cubo pequeño. Para cada una de esas combinaciones, un patrón específico de triángulos ha sido pre-calculado y almacenado en una tabla de búsqueda. Estos triángulos se utilizan para aproximar la superficie que pasa a través de ese cubo.


Illustration of the 15 basic cases of the marching cubes technique


Al repetir este proceso —caminando a través de cubo tras cubo, conectando valores, mirando las formas— el algoritmo gradualmente construye una red completa en 3D. Lo que obtiene es una superficie lisa que representa la frontera entre diferentes materiales en la exploración, como hueso y tejido.


FMRI of the Human Brain


Esto fue revolucionario en la década de 1980 porque transformó las flechas de escaneo MRI o CT en modelos 3D reales que los médicos podían rotar, zoom en y analizar.


# 9 - Práctica de la tolerancia de la culpa bizantina

En la computación moderna, a menudo estamos trabajando con sistemas distribuidos, redes de computadoras distribuidas en la nube, lo que nos lleva a uno de los problemas más famosos en la computación distribuida: el Problema de los Generales Bizantinos.


Imaginen esto: varios generales del ejército bizantino están rodeando una ciudad. Necesitan coordinar y atacar al mismo tiempo para ganar.Pero sólo pueden comunicarse enviando mensajes, y algunos de esos generales pueden ser traidores tratando de sabotear el plan.Puede que uno decida dormir en, o peor - mente sobre cuándo atacar.Si incluso un general falla o actúa maliciosamente, la estrategia entera podría caer.


Los ordenadores se enfrentan al mismo desafío.En un sistema distribuido, algunas máquinas pueden colapsar, ser lentas o incluso hackearse.¿Cómo puede el resto de la red estar de acuerdo en qué hacer cuando no pueden confiar en todos?


Es ahí donde entran los algoritmos de consenso como PBFT – Practical Byzantine Fault Tolerance. PBFT está diseñado para manejar este tipo de fallos. Funciona al tener un nodo proponiendo una acción mediante la emisión de un mensaje “preparado”. Los otros nodos responden con reconocimientos. Una vez que un cierto número de nodos (normalmente dos tercios o más) estén de acuerdo, llegan a un consenso. Finalmente, el nodo original envía un mensaje “compromiso”, diciendo a todos que ejecuten la acción. Incluso si hasta un tercio de los nodos son defectuosos o maliciosos, el sistema todavía puede funcionar correctamente.


Normal case operation of the Practical Byzantine Fault Tolerance (PBFT) network


Los algoritmos como PBFT son la columna vertebral de los sistemas de blockchain y las bases de datos en la nube distribuida, ayudándoles a mantenerse consistentes y confiables, incluso cuando las cosas van mal.


Título: Boyer Moore

Y finalmente, eso nos lleva a un algoritmo de la vieja escuela que silenciosamente empuja algunas de las herramientas más rápidas que utilizamos hoy en día, como el grep. Se llama la búsqueda de cuerdas de Boyer-Moore, y recientemente me sacudió la mente por lo contraintuitivo que es: cuanto más largo es el texto, másmás rápidoEso se consigue.


La mayoría de los algoritmos de búsqueda básicos van de izquierda a derecha, comprobando cada caracter uno por uno.right to leftdentro del patrón de búsqueda, y utiliza dos trucos inteligentes para saltar grandes pedazos de texto.“needleEn un gran bloque de texto.


1. Bad character rule:

Si está buscando "needle" y el caracter de texto actual es "z" - entonces no hay manera de que un encuentro pueda comenzar en o antes de ese punto.


2. Good suffix rule:

Si estás buscando “needle” y acaba de coincidir con “dle” al final – pero el siguiente personaje rompe el encuentro – el algoritmo no empieza de nuevo desde la siguiente letra. En cambio, pregunta: ¿puede “dle” aparecer antes en “needle”? Si es así, cambia el patrón para que el “dle” anterior se enrolle. Si no, salta toda la parte de “dle” por completo. De cualquier manera, salta hacia adelante inteligentemente en lugar de perder tiempo revisando.


Estas estrategias de salto heurístico no son perfectas, pero soncaminomás eficientes que los métodos de fuerza bruta.


A medida que el texto se prolonga, el algoritmo tiende a saltar más y más caracteres, lo que lo hace más rápido en relación al tamaño de la entrada.Es por eso que herramientas como grep pueden masticar gigabytes de registros con una velocidad sorprendente - y por qué este algoritmo de décadas todavía se siente como magia negra hoy en día.


Cuando la lógica se encuentra con la imaginación: el verdadero poder de los algoritmos

Ya sea que se trate de convertir la incertidumbre cuántica en generación de imagen práctica, imitar comportamientos biológicos de aglomeración con tres reglas simples, o buscar texto hacia atrás para encontrar patrones más rápidamente, estos enfoques muestran que las ideas más no convencionales a menudo conducen a las soluciones más poderosas.


Lo que hace que estos algoritmos sean brillantes no es su eficiencia o novedad, sino su audacia.Ellos desafían suposiciones.Ellos cambian los problemas en sus cabezas.Ellos convierten la aleatoriedad en estructura, el caos en orden y la teoría abstracta en impacto en el mundo real.


Más que herramientas matemáticas elegantes: estos 10 algoritmos extrañosare a testament to human ingenuity.


Visualization of Shor’s algorithm quantum circuit representation


¿Quieres oír de mí más a menudo?

Connect with me on LinkedIn!

Contacta conmigo en Linkedin

Compartimosdiarioideas, consejos y actualizaciones para ayudarle a evitar errores costosos y seguir adelante en el mundo de la IA.

¿Eres un profesional de la tecnología que busca aumentar su audiencia a través de la escritura?

No te pierdas mi newsletter!

No te pierdas mi newsletter

míaTech Audience Acceleratorestá lleno de copywriting y estrategias de construcción de audiencia que han ayudado a cientos de profesionales a destacarse y acelerar su crecimiento.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks