610 lezingen
610 lezingen

De 10 vreemdste, meest briljante algoritmen die ooit zijn bedacht en wat ze eigenlijk doen

door Paolo Perrone12m2025/05/13
Read on Terminal Reader

Te lang; Lezen

In 1987 hebben twee programmeurs bij General Electric het Marching Cubes-algoritme uitgevonden.Het is de reden waarom artsen medische scans kunnen omzetten in 3D-modellen die letterlijk miljoenen levens hebben gered.
featured image - De 10 vreemdste, meest briljante algoritmen die ooit zijn bedacht en wat ze eigenlijk doen
Paolo Perrone HackerNoon profile picture
0-item
1-item


Heb je ooit geprobeerd om een polygonaal mesh te extraheren uit een 3D discreet scalarveld?


Nee niet?


Welnu, in 1987 deden twee programmeurs bij General Electric dat – en ze hebben uiteindelijk het Marching Cubes-algoritme uitgevonden.


Dat is de kracht van een algoritme.


Whenever you instruct a machine to solve a problem with code, you’re designing a procedure to transform bits into meaningSommige algoritmen zijn snel; sommige zijn elegant; en sommige zijn zo vreemd, ze voelen zich als toverij.


In dit verhaal duiken we in tien van de vreemdste, meest briljante algoritmen die ooit zijn bedacht - diegenen die helpen miljarden regels code in milliseconden te zoeken, eindeloze kaarten uit het niets genereren en kwantum vreemdheid in praktische logica veranderen.


#1 Wave function collapse

Een van de vreemdste dingen in de wetenschap is het dubbel gesneden experiment: deeltjes gedragen zich als golven wanneer je niet kijkt, maar op het moment dat je ze waarneemt, komen ze op hun plaats als deeltjes.


The Double Slit Experiment aka ‘The Observer Effect’


Dit idee van een “golffunctie die instort” klinkt abstract, maar het is omgezet in een verrassend praktisch algoritme. Stel je voor dat je een grafische kaart van een video game ontwerpt. Je wilt dat de wereld zich handgemaakt voelt, maar ook voor altijd gaat.


In het begin is elke tegel van de kaart als een "golf" - het is nog niet iets specifieks. Het is vol mogelijkheden. Maar als de speler vooruit gaat - de wereld observeert - het algoritme "vervalst" die onzekerheid. De wereld solidifieert in een specifieke tegel, maar het doet dat volgens de regels die je hebt ingesteld. wegen verbinden, rivieren stromen waar ze moeten en alles voelt alsof het opzettelijk is ontworpen.


Het is willekeurigheid met een doel, allemaal zonder een enkel stukje generatieve AI.


#2 Het verspreidingsmodel

Het is vreemd, echt vreemd.


Neem diffusiegemodellen – de technologie achter beeldgeneratoren zoals DALL·E en Stable Diffusion. ze zijn gebaseerd op een idee uit de thermodynamica: diffusie, waarbij deeltjes zich van nature verspreiden van gebieden met een hogere concentratie naar gebieden met een lagere concentratie.


In machine learning wordt dat proces omgedraaid.


In plaats van van van orde naar chaos te gaan, begint het algoritme met puur lawaai – zoals een foto van een kat – en leert het geleidelijk te verfijnen tot een betekenisvol beeld.


Maar je hebt een model nodig om dit goed te doen.Het diffusie-algoritme werkt in twee fasen.


Eerst neemt het model tijdens de training echte beelden en voegt geleidelijk geluid toe in een vooruitgangsproces totdat ze onherkenbaar worden.

Noising and Denoising during the Diffusion Process


The architecture of the latent diffusion model (LDM).


Doe dit over miljoenen gelabeld afbeeldingen, en je krijgt een model dat kan dromen op nieuwe afbeeldingen vanaf het niets. katten in de ruimte. oude Rome in de stijl van Pixar. hyperrealistische avocado stoelen. U noemt het.


Het is computair zwaar, maar het stopt niet bij beelden. Diffusie vormt al opnieuw hoe we muziek, audio en vervolgens video genereren.

#3 Simulatie van Annealing

Een van de meest frustrerende delen van programmeren is dat er zelden één juiste oplossing is - slechts een zee van goed, en een paar geweldige.


Simulated annealing heeft zijn naam geleend van de metallurgie, waar metalen herhaaldelijk worden verwarmd en gekoeld om defecten te verwijderen. Hetzelfde concept geldt voor optimalisatie.


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


Stel je voor dat je op zoek bent naar de hoogste piek in een bergengebied. Een basisalgoritme voor het beklimmen van een heuvel zal je vastklampen bij de eerste botsing die veelbelovend lijkt. Maar gesimuleerd annealing is slimmer. Het begint met een hoge "temperatuur", wat betekent dat het vrij verkent - soms zelfs slechtere paden accepteert om lokale valstrikken te ontsnappen.


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


En het is niet alleen nuttig in code – het is ook een goede metafoor voor het leren coderen. vroeg op, je bounce tussen talen, hulpmiddelen en frameworks.


#4 Slaap slecht

Je kunt niet praten over algoritmen zonder sortering op te wekken - en misschien wel de meest absurd slimme (en volledig nutteloze) ooit bedacht isSlaap zwart.


Traditionele algoritmen, zoalsQuicksortofMerken, gebruik split-and-conquer-strategieën om array's recursief in subarray's te breken en ze efficiënt te sorteren.


Hier is hoe het werkt: voor elk getal in de matrix, start een nieuwe draad. Elke draad slaapt gedurende een aantal milliseconden gelijk aan de waarde ervan, druk vervolgens het getal af wanneer het wakker wordt. Omdat kleinere getallen minder tijd slapen, worden ze eerder afgedrukt - wat resulteert in een gesorteerde output.


Sleep Sort in Action


Het slimme deel? Het overslaat alle gebruikelijke logica en verandert de draadplanner van de CPU in de sorteringsmachine. geen vergelijkingen. geen recursie. gewoon slapen en printen.


Maar het is wild onpraktisch. Het breekt met negatieve getallen, duplicaten of grote waarden. Het is ook inefficiënt, het creëren van één draad per nummer. En het hangt af van de slaaptijd, die niet erg nauwkeurig is. Sleep Sort is zowel grappig als nutteloos - een perfect voorbeeld van hoe slim niet altijd nuttig betekent.


#5 Goed voor elkaar

BogoSort is een grappige algoritme: het willekeurig shuffles een reeks keer op keer totdat, door puur geluk, het resultaat wordt gesorteerd.


Stel je nu voor dat je dit combineert met het idee van de kwantummechanica en het multiversum.In theorie, als alle mogelijke uitkomsten bestaan over oneindige parallelle universa, dan is erSommigeuniversum waar uw array al is gesorteerd.


De technologie is er nog niet helemaal, maar een "Quantum BogoSort" zou werken door al die mogelijkheden tegelijk te creëren en vervolgens onmiddellijk in het universum te instorten waar de matrix wordt gesorteerd - in wezen waardoor quantum randomness het werk voor u doet.


Natuurlijk is dit sci-fi, niet computerwetenschap.We kunnen het multiversum niet observeren of instorten op wil.Maar het is een speelse gedachtexperiment over brute-force randomness genomen tot zijn logische (en absurde) extreme.


Bogo sort algorithm Visualized


#6 - De Boer

En hier is mijn favoriete.Wat ik echt cool vind over algoritmen is hoe ze soms de natuur kunnen weerspiegelen. Neem Craig Reynolds' Boids-programma uit 1986 - het was een van de eerste kunstmatige levenssimulaties en het imiteert hoe vogels flotten.voeltZo levend


Elke vogel (of "boid") volgt slechts drie regels: vermijd crashing in buren (Separatie), in lijn met hun richting (Alignment), en bewegen naar het centrum van de lokale groep (Cohesie).

Boid’s algorithm rules


Maar wanneer je een hoop van deze eenvoudige gedragingen samen simuleert, krijg je betoverende, organische patronen die verschuiven en stromen als een echte kudde.


De schoonheid is hier niet in de code - het is in watEmergentieDeze complexe groepsdynamiek hoeft niet expliciet geprogrammeerd te worden. ze gebeuren gewoon.


3D Boid’s simulation


#7 - Het algoritme van SHOR

Het idee om mensen in staat te stellen hun postvakken te vergrendelen en hun brieven te ondertekenen met een unieke handtekening is gebaseerd op een belangrijk concept in de cryptografie: de moeilijkheid van het factoren van grote getallen.


De beveiliging achter de meeste encryptiemethoden is gebaseerd op deze eenvoudige wiskundige realiteit - het vermenigvuldigen van grote getallen is gemakkelijk, maar het uitzoeken van de twee originele primetallen achter het productEen probleem dat bekend staat alsprime factorization Het is extreem moeilijk en tijdrovend.


In feite is het zo moeilijk dat het uw laptop honderden biljoenen jaren kan duren om de oplossing brute kracht te geven - tenzij we natuurlijk beginnen met het gebruik van kwantumcomputers.


Shor's Algorithm kan grote getallen veel sneller in hun primaire factoren breken dan conventionele methoden. primaire factoring is vrij eenvoudig, maar hoe dit algoritme werkt, is waar dingen echt vreemd worden.


In het hart van Shor's Algorithm zijn kwantummechanica concepten zoals qubits, superpositie en verstrengeling.Deze toestaan dat kwantumcomputers massale berekeningen parallel uitvoeren, iets wat klassieke computers niet eens kunnen naderen.


Representation Shor’s Quantum Factorization Algorithm


Hoewel het algoritme zelf legitiem is, bevindt de werkelijke toepassing ervan zich nog in de vroege stadia.In feite is het grootste getal dat ooit met behulp van quantum computing is berekend, slechts 21. IBM's state-of-the-art quantum systeem, Q System One, faalt een getal te berekenen dat zo eenvoudig is als 35.


Onlangs slaagde een Chinees team erin een enorm aantal te factoren met behulp van een kwantumcomputer, maar ze gebruikten een algoritme dat niet goed schaalt voor veel grotere getallen, wat betekent dat het nog niet praktisch is voor algemeen gebruik.


Als quantumcomputers echter krachtig genoeg worden en iemand erachter komt hoe deze algoritmen naar echt grote aantallen kunnen scalen, verwacht dan een ernstige verstoring in de wereld van cyberbeveiliging.


# 8 - Marching Cubes

Aan het begin van dit verhaal hebben we het Marching Cubes-algoritme genoemd - maar het is de moeite waard om erin te duiken, omdat het een belangrijk keerpunt was voor het visualiseren van 3D-gegevens, vooral in de geneeskunde.


Stel je voor dat je een 3D-scan van het menselijk lichaam hebt, zoals van een MRI. De MRI geeft je geen 3D-model, maar een reusachtige kubus van getallen - een 3D-skalarveld. Elk punt in dat veld heeft een waarde die iets vertegenwoordigt zoals weefseldichtheid of signaalintensiteit.


Visualization of a 3d Scalar Field


Het algoritme neemt dit 3D-veld en marschert er één kleine kubus per keer door.


Nu is hier de slimme beetje: elk van die acht punten is of boven of onder een drempel (zeg, waar de huid verandert in bot).


Dat geeft je een 8-bits getal — 256 mogelijke combinaties voor elke kleine kubus. Voor elke van die combinaties is een specifiek patroon van driehoeken vooraf berekend en opgeslagen in een zoektafel. Deze driehoeken worden gebruikt om het oppervlak dat door die kubus gaat te benaderen.


Illustration of the 15 basic cases of the marching cubes technique


Door dit proces te herhalen – door de kubus na de kubus te marcheren, waarden aan te sluiten, vormen op te zoeken – bouwt het algoritme geleidelijk een volledig 3D-mesh op.


FMRI of the Human Brain


Dit was baanbrekend in de jaren tachtig omdat het vlakke MRI- of CT-schijven veranderde in echte 3D-modellen die artsen konden draaien, zoomen en analyseren.


# 9 - Praktische Byzantijnse fouttolerantie

In moderne computing werken we vaak met gedistribueerde systemen - netwerken van computers verspreid over de cloud.


Stel je dit voor: verschillende generaals uit het Byzantijnse leger omringen een stad. Ze moeten tegelijkertijd coördineren en aanvallen om te winnen. Maar ze kunnen alleen communiceren door berichten te sturen, en sommige van die generaals kunnen verraders zijn die het plan proberen te saboteren. Misschien beslist men om in te slapen, of erger - liegt over wanneer te aanvallen. Als zelfs een generaal faalt of kwaadaardig handelt, kan de hele strategie kapot gaan.


Computers worden geconfronteerd met dezelfde uitdaging.In een gedistribueerd systeem kunnen sommige machines crashen, traag zijn of zelfs worden gehackt.Hoe kan de rest van het netwerk overeenkomen wat te doen als ze niet iedereen kunnen vertrouwen?


Dat is waar consensusalgoritmen zoals PBFT – Practical Byzantine Fault Tolerance – komen. PBFT is ontworpen om dit soort mislukkingen aan te pakken. Het werkt door één knooppunt een actie voor te stellen door een "voorbereide" boodschap uit te zenden. De andere knooppunten reageren met erkenningen. Zodra een bepaald aantal knooppunten (meestal twee derde of meer) het eens zijn, bereiken ze consensus. Ten slotte stuurt de oorspronkelijke knooppunt een "commit" -bericht, waarin iedereen wordt verteld de actie uit te voeren. Zelfs als tot een derde van de knooppunten defect of kwaadaardig is, kan het systeem nog steeds correct functioneren.


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


Algoritmen zoals PBFT zijn de ruggengraat van blockchain-systemen en gedistribueerde clouddatabases, waardoor ze consistent en betrouwbaar blijven - zelfs als dingen mis gaan.


#10 – Boyer Moore

En ten slotte, dat brengt ons naar een oud-school algoritme dat rustig sommige van de snelste tools die we vandaag de dag gebruiken - zoals grep. Het wordt de Boyer-Moore string zoekopdracht genoemd, en het heeft onlangs mijn geest geblazen vanwege hoe tegen-intuïtief het is: hoe langer de tekst, desnellerHet krijgt.


De meeste basiszoekalgoritmen gaan links naar rechts en controleren elk teken één voor één.right to leftbinnen het zoekpatroon, en het gebruikt twee slimme trucs om grote stukjes tekst te overslaan.“needleIn een groot blokje tekst.


1. Bad character rule:

Als u op zoek bent naar "needle" en het huidige tekstteken "z" is - dan is er geen manier waarop een match op of vóór dat punt kon beginnen.


2. Good suffix rule:

Als je op zoek bent naar "needle" en je pas aan het einde "dle" hebt gekoppeld - maar het volgende personage breekt de match - begint het algoritme niet opnieuw vanaf de volgende letter. In plaats daarvan vraagt het: verschijnt "dle" eerder in "needle"? Als ja, verplaatst het het patroon zodat de vorige "dle" lijnen op.


Deze heuristische skip-strategieën zijn niet perfect, maar ze zijnWegEfficiënter dan brute force.


Als de tekst langer wordt, heeft het algoritme de neiging om meer en meer tekens te overslaan, waardoor het sneller wordt ten opzichte van de grootte van de input.


Wanneer logica de verbeelding ontmoet: de ware kracht van algoritmen

Of het nu gaat om het omzetten van kwantumonzekerheid in praktische beeldgeneratie, het nabootsen van biologisch flockinggedrag met drie eenvoudige regels, of het zoeken naar tekst terug om patronen sneller te vinden, deze benaderingen tonen aan dat de meest onconventionele ideeën vaak leiden tot de meest krachtige oplossingen.


Wat deze algoritmen briljant maakt, is niet hun efficiëntie of nieuwigheid – het is hun gedurfdheid. ze uitdagen veronderstellingen. ze draaien problemen op hun hoofd. ze veranderen willekeurigheid in structuur, chaos in orde en abstracte theorie in real-world impact.


Meer dan elegante wiskundige hulpmiddelen - deze 10 vreemde algoritmenare a testament to human ingenuity.


Visualization of Shor’s algorithm quantum circuit representation


Wil je vaker van mij horen?

🙂Connect with me on LinkedIn!

Neem contact met me op LinkedIn

Ik deelDagelijksehandige inzichten, tips en updates om u te helpen kostbare fouten te vermijden en voorop te blijven in de AI-wereld.

Ben je een tech-professional die je publiek wil laten groeien door te schrijven?

🙂Don’t miss my newsletter!

Mis mijn nieuwsbrief niet

MijnTech Audience Acceleratoris gevuld met handige copywriting- en publiekopbouwstrategieën die honderden professionals hebben geholpen zich te onderscheiden en hun groei te versnellen.

L O A D I N G
. . . comments & more!

About Author

Paolo Perrone HackerNoon profile picture
Paolo Perrone@paoloap
No BS AI/ML Content | ML Engineer with a Plot Twist 🥷 40k+ Followers on LinkedIn

LABELS

DIT ARTIKEL WERD GEPRESENTEERD IN...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks