Miklix

Ellerin algoritmin sokkelogeneraattori

Julkaistu: 16. helmikuuta 2025 klo 19.58.35 UTC
Viimeksi päivitetty: 12. tammikuuta 2026 klo 9.04.06 UTC

Sokkelogeneraattori, joka käyttää Ellerin algoritmia täydellisen sokkelon luomiseen. Tämä algoritmi on mielenkiintoinen, koska se vaatii vain nykyisen rivin (ei koko sokkelon) säilyttämisen muistissa, joten sitä voidaan käyttää erittäin, erittäin suurten sokkeloiden luomiseen jopa erittäin rajoitetuissa järjestelmissä.

Tämä sivu on käännetty koneellisesti englannista, jotta se olisi mahdollisimman monen ihmisen saatavilla. Valitettavasti konekääntäminen ei ole vielä täydellistä tekniikkaa, joten virheitä voi esiintyä. Voit halutessasi tarkastella alkuperäistä englanninkielistä versiota täällä:

Eller's Algorithm Maze Generator

Ellerin algoritmi on sokkeloiden generointialgoritmi, joka tuottaa tehokkaasti täydellisiä sokkeloita (sokkeloita ilman silmukoita ja vain yhden polun minkä tahansa kahden pisteen välillä) rivi riviltä -lähestymistavalla. Se tuottaa sokkeloita, jotka ovat samanlaisia kuin Kruskalin algoritmi, mutta se tekee sen luomalla vain yhden rivin kerrallaan ilman, että koko sokkeloa tarvitsee tallentaa muistiin. Tämä tekee siitä hyödyllisen erittäin suurten sokkeloiden luomiseen erittäin rajoitetuissa järjestelmissä ja proseduraaliseen sisällön luomiseen.

Täydellinen sokkelo on sokkelo, jossa on täsmälleen yksi reitti mistä tahansa sokkelon pisteestä mihin tahansa toiseen pisteeseen. Tämä tarkoittaa, että et voi päätyä kiertämään ympyrää, mutta joudut usein umpikujaan, jolloin sinun on pakko kääntyä ympäri ja palata takaisin.

Tässä luotuihin sokkelokarttoihin sisältyy oletusversio, jossa ei ole alku- ja loppupisteitä, joten voit päättää ne itse: mistä tahansa sokkelon pisteestä mihin tahansa muuhun pisteeseen on olemassa ratkaisu. Jos haluat inspiraatiota, voit ottaa käyttöön ehdotetun alku- ja maalipaikan - ja jopa nähdä ratkaisun näiden kahden välissä.


Luo uusi sokkelo








Tietoja Ellerin algoritmista

Ellerin algoritmin esitteli David Eller.

Algoritmi on merkittävä tehokkaan rivi riviltä tapahtuvan sokkeloiden luomisen lähestymistavansa ansiosta, mikä tekee siitä ihanteellisen äärettömille sokkeloille tai reaaliajassa luoduille sokkeloille. Sitä mainitaan yleisesti proseduraalisessa sisällön luomisessa ja sokkeloiden luomisessa, mutta en ole löytänyt alkuperäislähteitä, jotka yksityiskohtaisesti kuvaisivat sen alkuperäistä julkaisua.

Kuinka Ellerin algoritmi toimii sokkeloiden luomisessa

Ellerin algoritmi käsittelee yhden rivin kerrallaan, ylläpitäen ja muokkaaen yhdistettyjen solujen joukkoja. Se varmistaa yhdistettävyyden välttäen silmukoita ja laajentaa sokkeloa tehokkaasti alaspäin.

Sitä voidaan teoriassa käyttää äärettömien sokkeloiden luomiseen, mutta sen varmistamiseksi, että luotu sokkelo on todella ratkaistavissa, on jossain vaiheessa tarpeen vaihtaa "viimeisen rivin" logiikkaan sokkelon loppuun saattamiseksi.

Vaihe 1: Alusta ensimmäinen rivi

  • Anna rivin jokaiselle solulle yksilöllinen joukko-ID.

Vaihe 2: Yhdistä joitakin vierekkäisiä soluja vaakasuunnassa

  • Yhdistä vierekkäiset solut satunnaisesti asettamalla niille sama joukko-ID. Tämä varmistaa, että vaakasuoria kohtia on.

Vaihe 3: Luo pystysuorat yhteydet seuraavaan riviin

  • Jokaista rivillä näkyvää joukkoa kohden vähintään yhden solun on oltava yhteydessä alaspäin (yhteyden varmistamiseksi).
  • Valitse kustakin joukosta satunnaisesti yksi tai useampi solu yhteyden muodostamiseksi seuraavaan riviin.

Vaihe 4: Siirry seuraavalle riville

  • Jatka pystysuuntaisia yhteyksiä määrittämällä sama joukko-ID vastaaville soluille alla.
  • Määritä uudet joukko-ID:t kaikille määrittämättömille soluille.

Vaihe 5: Toista vaiheet 2–4, kunnes viimeinen rivi on saavutettu

  • Jatka käsittelyä rivi riviltä.

Vaihe 6: Viimeisen rivin käsittely

  • Varmista, että kaikki viimeisen rivin solut kuuluvat samaan joukkoon yhdistämällä mahdolliset jäljellä olevat erilliset joukot.

Lisälukemista

Jos pidit tästä postauksesta, saatat pitää myös näistä ehdotuksista:


Jaa BlueskyssäJaa FacebookissaJaa LinkedInissäJaa TumblrissaJaa X:ssäJaa LinkedInissäPin Pinterestissä

Mikkel Christensen

Kirjoittajasta

Mikkel Christensen
Mikkel on miklix.com-sivuston luoja ja omistaja. Hänellä on yli 20 vuoden kokemus ammattimaisena tietokoneohjelmoijana/ohjelmistokehittäjänä, ja tällä hetkellä hän työskentelee kokopäiväisesti suuressa eurooppalaisessa IT-yrityksessä. Kun hän ei ole bloggaamassa, hän käyttää vapaa-aikaansa monenlaisiin kiinnostuksen kohteisiin, harrastuksiin ja aktiviteetteihin, mikä saattaa jossain määrin heijastua tällä verkkosivustolla käsiteltävien aiheiden moninaisuuteen.