quadtrees-en sarrera interaktiboa
Iruzkinak
Mewayz Team
Editorial Team
Zergatik dira axola laukoak uste baino gehiago
Mapa digital batean txikiagotzeko, inguruko jatetxeei kontsulta egiten diozunean edo denbora errealeko flotaren jarraitzaile bat ibilgailuen dozenaka ibilgailuen ikono eguneratzen ikusten duzun bakoitzean, aukera handia dago zuhaitz laukoi batek eszena atzean lanak egiteko. Gehienek inoiz entzuten ez duten datu-egitura dotoreetako bat da Quadtrees, baina software modernoko errendimendu kritikoenetako sistema batzuk isilik elikatzen dituzte: bideo-jokoen talkak hautematetik hasi eta segundoko milioika kontsulta espazial prozesatzen dituzten informazio geografikoko sistemetara. Nola funtzionatzen duten ulertzeak ez zaitu garatzaile hobea bihurtzen; funtsean, datu espazialen bidez antolatzeko eta bilatzeko modua aldatzen du. Bidalketa-plataforma logistika bat eraikitzen ari zaren ala ez, kokapenean oinarritutako analisi-panel bat edo, besterik gabe, 50.000 datu-puntu mihise batean errendatzen saiatzen ari zaren, arakatzailea huts egin gabe, quadtrees-ek irtenbide intuitiboa eta oso eraginkorra eskaintzen du.
Zer da zehazki Quadtree?
Lau-zuhaitz bat zuhaitz-datuen egitura bat da, non barne-nodo bakoitzak zehazki lau seme-alaba dituen, bakoitzak bi dimentsioko espazio baten koadrante bat adierazten duena. Imajinatu eskualde karratu bat hartu eta lau karratu berdinetan banatzea: ipar-mendebaldea, ipar-ekialdea, hego-mendebaldea eta hego-ekialdea. Karratu horietako bakoitza beste lau karratutan bana daiteke, eta horrela, modu errekurtsiboan, geldialdi-baldintza batera iritsi arte. Gelditze-baldintza hori normalean nodo bakar batek zatitu behar duen zenbat datu-puntu eduki ditzakeen gehienezko sakonera edo atalasea izan ohi da.
Ikuspegi honen edertasuna bere izaera moldatzailean datza. Datu-puntuak dituzten eremu trinkoak gero eta zelula finagoetan banatzen dira, eta eremu urriak, berriz, eskualde handi eta zatigabe gisa geratzen dira. Herrialde batean zehar 10.000 kafetegiren kokapenak gordetzen dituen zuhaitz lauko batek Manhattanen zehar zatiketa sakon eta zehatzak sortuko lituzke -non 300 denda egon daitezkeen kilometro koadro gutxiren buruan - Wyoming landa eremu zabalak zero edo puntu bat duen nodo bakar eta zatitu gisa mantenduz. Egokitze-bereizmen hori da zuhaitz laukoteak hain indartsuak egiten dituen sare lau batekin alderatuta, eta horrek memoria kopuru izugarria xahutuko luke gelaxka hutsetan.
Kontzeptua Raphael Finkelek eta J.L. Bentley-k deskribatu zuten lehen aldiz 1974an, eta ordutik hainbat aldaeratan banatu da: puntuko zuhaitz laukoitzak koordenatu-bikote indibidualak gordetzen dituzte, eskualdeko zuhaitz laukoitzak eremu espazialak adierazten dituzte (irudien konpresiorako erabilgarriak) eta ertz laukoitzak lerroak kudeatzen dituzte. Aldaera bakoitza erabilera-kasu desberdinetarako optimizatzen da, baina oinarrizko zatiketa errekurtsiboaren printzipioa berdina izaten jarraitzen du guztietan.
Txertatzeak eta kontsultak nola funtzionatzen duten
Punto bat zuhaitz laukote batean txertatzeko, erro-nodotik hasten zara eta puntua lau koadranteetatik zeinetan kokatzen den zehaztu. Ondoren, koadrante horren seme-nodoan sartu eta prozesua errepikatuko duzu. Bere ahalmena gainditu ez duen hosto-nodo batera iristen bazara (normalean 1 edo 4 puntutan ezarrita), puntua bertan gorde besterik ez duzu. Hostoa dagoeneko edukiera badago, lau seme-alabatan zatitzen da, lehendik dituen puntuak haien artean birbanatzen ditu eta, ondoren, puntu berria dagokion umean txertatzen du. Prozesu hau normalean O(log n) denboran amaitzen da banaketa orekatu baterako, nahiz eta oso multzokatuta dauden datuak dituzten kasurik txarrenak errendimendua honda dezaketen.
Barrutiaren kontsultak (eremu angeluzuzen jakin bateko puntu guztiak aurkitzea) da zuhaitz laukoak benetan distiratsuak direnean. Zure datu multzoko puntu bakoitza egiaztatu beharrean (O(n) eragiketa bat), errotik hasten zara eta galdera sinple bat egiten duzu nodo bakoitzean: nodo honen muga nire bilaketa laukizuzenarekin gurutzatzen al da? Hala ez bada, azpizuhaitz osoa inausi dezakezu, konparazio bakarrean kontuan hartuta milaka puntu desagerraraziz. Elkargune bat badago, dagokion seme-alabatan sartuko zara. Bilaketa-laukizuzenaren barnean dauden hosto-nodoetan aurkitutako puntuak emaitza multzora gehitzen dira.
Kontuan izan adibide praktiko bat: 100.000 bezero kokapeneko datu-multzoa duzu eta denda berri bat irekitzeko 5 kilometroko erradioan denak aurkitu behar dituzu. Indar gordineko hurbilketa batek 100.000 distantzia kalkulatu behar ditu. Ondo eraikitako zuhaitz laukoteak 200-500 egiaztapenetara murriztu dezake zure bilaketa-eremuarekin argi eta garbi gainjartzen ez diren eskualde geografiko osoak azkar ezabatuz. Hori 200 aldiz edo gehiagoko errendimendua hobetu da; kontsulta batek 800 milisegundo behar dituen eta 4 milisegundo behar duen arteko aldea.
Lauko zuhaitzetan exekutatzen diren mundu errealeko aplikazioak
Lauko zuhaitzen aplikazioak informatika akademikotik haratago doaz. Oinarrizkoak dira milaka milioi pertsonak egunero erabiltzen dituzten sistemetarako, askotan konturatu gabe.
- Mapa eta nabigazioa: Google Maps eta Mapbox bezalako zerbitzuek zuhaitz lauko lauza-sistemak erabiltzen dituzte mapen irudiak hornitzeko. Zoom-maila bakoitzak fitxak lau seme-alabatan banatzen ditu, horregatik mapa-lauzaren koordenatuek z/x/y eredua jarraitzen dute zuhaitz laukoitzaren helbidea islatzen duena. Hiri-bloke batean zooma egiten duzunean, bereizmen handiko lauzak soilik kargatzen dira; munduak bereizmen larrian geratzen dira.
- Jokoetan talkak hautematea: joko-motorrek zuhaitz laukoak erabiltzen dituzte (eta haien 3D-ko parekoak, octrees) objektuek talka egiten dutenean modu eraginkorrean detektatzeko. Objektu bikote bakoitza probatu beharrean (O(n²) amesgaiztoa pantailan 1.000 entitate dituena), motorrak zuhaitz lauko gelaxka bera partekatzen duten objektuak soilik egiaztatzen ditu motorrak, kontrolak kopuru kudeagarri batera murriztuz.
- Irudiaren konpresioa: Eskualdeko lau zuhaitzek irudiak konprimi ditzakete, kolore antzekoak dituzten ondoko pixelak bloke handiagoetan batuz. Hau da konpresio-algoritmo batzuen oinarria, 10:1 konpresio-erlazioak lortzen dituztenak, xehetasun gutxiko eremuetan ikusmen-fideltasuna mantenduz.
- Flotaren kudeaketa eta logistika: Bidalketa-enpresek indexazio espaziala erabiltzen dute gidariek gertuko eskariekin denbora errealean parekatzeko. Lauko zuhaitz batek bidalketa-sistema bati berehala erantzuteko aukera ematen dio "zein 5 gidari daude bilketa-kokapen honetatik hurbilen?" milaka ibilgailuz osatutako flota batean, GPS-ko posizioak segundo gutxitan eguneratzen dituzte.
- Analitika geoespaziala: Kokapenean oinarritutako negozio-datuak batzen dituzten plataformak (bezeroen dentsitatearen mapak, salmenta-lurraldearen optimizazioa, dendak kokatzeko analisia) datu espazialen egituretan oinarritzen dira kontsulta hauek interaktiboak izan daitezen, multzoka prozesatu beharrean.
Lauko zuhaitzen atzean dagoen funtsezko ikuspegia da kontsulta espazialen gehienek ez dutela datu gehienak aztertu behar. Espazioa hierarkikoki antolatuz, indar gordineko bilaketak bideratze bideratuetan eraldatzen dituzu, segundoak milisegundo bihurtuz eta denbora errealeko interaktibitatea posible eginez datu multzo masiboekin ere.
Lauko zuhaitz bat hutsetik eraikitzea
Oinarrizko zuhaitz laukotea ezartzea harrigarria da, baita bitarteko garatzaileentzat ere. Oinarrizko egiturak osagai gutxi batzuk besterik ez ditu behar: muga (nodoak hartzen duen eremu angeluzuzena), gaitasuna (gehienezko puntuak zatitu aurretik), puntu-matrizea eta lau seme-nodoren erreferentziak (hasieran nulua). Txertatu funtzio osoa 30 kode-lerro baino gutxiagotan idatz daiteke hizkuntza gehienetan.
Zatiketa eragiketak lau nodo seme berri sortzen ditu, bakoitzak gurasoen mugaren koadrante bat hartzen du. Muga (x, y, zabalera, altuera) duen guraso batentzat, ipar-ekialdeko haurrak (x + zabalera/2, y, zabalera/2, altuera/2) lortzen du, ipar-mendebaldeak (x, y, zabalera/2, altuera/2) eta abar. Banatu ondoren, dauden puntuak dagokion seme-alabatan banatzen dira. Ohiko akats bat birbanatu ondoren gurasoen puntu-matrizea garbitzea ahaztea da, eta horrek emaitzak bikoiztu egiten ditu kontsultetan.
Ekoizpen erabilerarako, hainbat optimizazio garrantzitsuak dira. Nodoaren edukiera 4-8 puntutan ezartzeak normalean 1eko ahalmena gainditzen du, zuhaitzen sakonera eta nodoen objektuen gainkostua murrizten duelako. Gehieneko sakonera-muga gehitzeak (normalean 8-12 maila) eragozten du puntu askok koordenatu berdinak partekatzen dituzten kasu patologikoek infinitu sakoneko zuhaitzak sortzea. Eta puntuak mugitzen diren datu-multzo dinamikoetarako, hala nola ibilgailuen jarraipena, zuhaitza aldian-aldian berreraikitzeko kentzeko mekanismo bat edo estrategia bat nahi duzu, zuhaitz laukoteak ez baitira auto-oreka egiten zuhaitz gorri-beltzak egiten duten bezala.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →Lauko zuhaitzak Negozio-plataformetan eta analitiketan
Enpresa-plataforma modernoek gero eta gehiago lantzen dituzte datu espazialak, hala bezeroen kokapenak, entrega-eremuak, salmenta-lurraldeak edo aktiboen jarraipena. Erronka ez da datu hauek gordetzea soilik, eskalan denbora errealean kontsulta daitezkeela baizik. 50 hiritan jarduten duen enpresa batek bezeroen dentsitatea, bide-bidalketa-gidariak edo eskualdeko salmenten errendimendua aztertu behar duenean, azpian dagoen indexazio espazialaren estrategiak zehazten du aginte-panela 200 milisegundo edo 20 segundotan kargatzen den.
Hau da Mewayz bezalako plataformek (CRM, fakturazioa, flota kudeatzea, erreserbak eta analitika negozio-OS bakar batean barne hartzen dituen 207 modulu integratzen dituena) datu espazialak kudeatzeko modu eraginkorrean etekina ateratzeko. Flota kudeatzeko modulu batek 500 ibilgailu aktibo mapa batean bistaratu behar dituenean edo CRM modulu batek lurraldea planifikatzeko 138.000 erabiltzaile-kokapen baino gehiago bistaratzen dituenean, ikuspegi inozoak ez dira eskalatzen. Indexazio espazialaren egiturak (edo haien datu-basearen baliokideak, adibidez, PostGIS R-zuhaitzak eta MySQL indize espazialak) bezalako indexazio espazial-egiturek eginbide hauek eskaintzea bideragarria da enpresa-mailako hardwarea behar izan gabe.
Plataformak ebaluatzen dituzten enpresentzat, praktikoa da: kokapena eta datu espazialak ondo kudeatzen dituzten tresnek ez dute algoritmo dotoreak erabiltzen horregatik. 10 kilometro barru eskuragarri dauden zerbitzu-hornitzaileak berehala erakutsi ditzakeen erreserba-sistemaren eta emaitza berdinak kargatzeko 8 segundo behar dituenaren arteko aldea egiten ari dira. Maila honetako errendimendua zuzenean erabiltzailearen esperientzian bihurtzen da eta, azken finean, diru-sarreran.
Lauko zuhaitzak eta beste datu espazialen egiturak
Lauko zuhaitzak ez dira indexazio espaziala egiteko aukera bakarra, eta alternatibak ulertzeak tresna egokia aukeratzen laguntzen dizu. R-zuhaitzak, PostGIS eta SQLite-ren R*Tree moduluan modu zabalean erabiltzen diren datu-baseetan, datuak gutxieneko muga-laukizuzenetan antolatzen dituzte eta barrutietako kontsultak eta gertukoen bilaketak modu eraginkorrean kudeatzen dituzte. Orokorrean, diskoan oinarritutako biltegiratzeko zuhaitz laukoteak gainditzen dituzte, I/O eragiketak minimizatzen dituztelako, eta horregatik datu-base espazial gehienek R-zuhaitz aldaerak erabiltzen dituzte barnean lauko zuhaitzak baino.
K-d zuhaitzak zatiketa-espazioa ardatzetan lerrokaturiko zatiketa txandakatuz erabiliz (lehenik x-z, gero y-z, gero x-z berriro) eta bikainak dira dimentsio moderatuetan gertukoenen bilaketak egiteko. Dimentsioa txikia denean eta datu-multzoa estatikoa denean, lauko zuhaitzak gainditu ohi dituzte, baina dinamikoki eguneratzea zailagoa da. Geohash-ekek beste ikuspegi bat hartzen dute, latitudea eta longitudea kate bakar batean kodetzen dituzte, non partekatutako aurrizkiek hurbiltasun espaziala adierazten duten, datu-baseak indexatzeko eta cachean gordetzeko aproposak izanik, baina ez dira malguak sorta arbitrarioko kontsultak egiteko.
Lau-zuhaitzek beren indarguneak betetzen dituzten agertokietan eusten dute: memoriako indexazio espaziala, maiz txertatu eta ezabatzen dituzten datu-multzo dinamikoak, sare-egitura hierarkikoak zoom-mailak modu naturalean mapatzen dituen bistaratze-aplikazioak eta inplementazioaren sinpletasuna garrantzitsua den egoerak. Pantaila eta zooma duen mihise batean 10.000 datu-puntu errendatzen dituen frontend-aplikazio baterako, 100 JavaScript lerrotan inplementatutako lau zuhaitz batek datu-baseak babestutako edozein soluzio gaindituko ditu sareko latentzia ezabatuz besterik gabe.
Hasteko: hurrengo urrats praktikoak
Lauko zuhaitzen ulermena sakondu nahi baduzu haiei buruz irakurtzeaz haratago, ikuspegi eraginkorrena ikusmen bat eraikitzea da. Sortu mihise-aplikazio sinple bat non klik egiteak puntuak gehitzen dituen eta ikusi zuhaitza denbora errealean zatitzen den. Gehitu barruti-kontsulta laukizuzen bat, arrastatu dezakezun eta nabarmendu aurkitzen dituen puntuak. Esku-interakzio honek irakurketa-kopururik ezin duela bat etor daitekeen intuizioa sortzen du. Berehala ikusiko duzu klusteratutako datuek zergatik sortzen dituzten zuhaitz sakonagoak eta nola inausketa-jokaerak espazio zabalak ezabatzen dituen galdeketan.
Ekoizpen-aplikazioetarako, kontuan hartu jarraibide hauek: zure datuak datu-base batean bizi badira, erabili datu-baseak eskaintzen duen indexazio espaziala (PostGIS, MySQL Spatial, MongoDB 2dsphere indizeak) aplikazioaren kodean lauko zuhaitzak inplementatu beharrean. Bezeroaren alboko bistaratzea edo memorian prozesatzea egiten ari bazara, JavaScript-erako d3-quadtree bezalako liburutegiek edo Pythonerako pyquadtree borrokan probatutako inplementazioak eskaintzen dizkizute. Eta edozein motatako kokapen-datuak kudeatzen dituen plataforma bat eraikitzen ari bazara —bezeroen helbideetatik hasi eta bidalketa bideratzetik lurralde kudeaketara— inbertitu denbora indexazio espaziala ulertzeko, zure aplikazioak eskalan egin dezakeena moldatuko duelako funtsean.
Quadtree-ek printzipio zabalagoa adierazten dute informatikaren arloan: zure datuetarako aukeratzen duzun egiturak modu eraginkorrean erantzun ditzakezun galderak zehazten dituela. Koordenatuen zerrenda lau batek "eman iezadazu puntu guztiak" erantzun dezake, baina lauko zuhaitz batek "eman iezadazu hemengo gertuko puntu guztiak" erantzun dezake, eta nahikoa azkar egin dezake berehala sentitzeko. Enpresen datuen % 73k industriaren kalkuluen arabera osagai espaziala duten mundu honetan, gaitasun hori ez da soilik akademikoa. Abantaila lehiakorra da.
Ohiko galderak
Zer da zuhaitz laukoa eta nola funtzionatzen du?
Lauko zuhaitza zuhaitzetan oinarritutako datu-egitura bat da, bi dimentsioko espazio bat lau koadrante berdinetan banatzen duen modu errekurtsiboan. Nodo bakoitzak datu-puntu kopuru mugatu bat eduki dezake lau nodo umetan banatu aurretik. Partizio hierarkiko honek kontsulta espazialak (esaterako, eremu jakin bateko puntu guztiak aurkitzea) oso azkarrak egiten ditu, bilaketa-denbora linealetik logaritmikora murriztuz agertoki praktiko gehienetan.
Non erabiltzen dira lauko zuhaitzak mundu errealeko aplikazioetan?
Quadtree-ek sistema sorta zabala dute, besteak beste, mapa digitalak txikitzeko funtzionaltasunarekin, denbora errealeko flotaren jarraipen-panelak, bideo-jokoen talkak detektatzeko motorrak eta segundoko milioika kontsulta espazial prozesatzen dituzten informazio geografikoko sistemak. Bi dimentsioko espazioan banatutako objektuak modu eraginkorrean bilatu, txertatu edo kudeatu behar dituen edozein aplikaziok zuhaitz laukoteen indexazioaren onura izan dezake.
Nola alderatzen dira zuhaitz laukoak beste datu espazialen egiturarekin?
Sare lauak ez bezala, zuhaitz laukoitzak bere bereizmena datu-dentsitatera egokitzen du; eremu urriak lodi geratzen dira jendez gainezka dauden eskualdeak gehiago zatitzen diren bitartean. K-d zuhaitzekin alderatuta, lauko zuhaitzak inplementatzeko errazagoak dira eta hobeto egokitzen dira uniformeki banatutako 2D datuetarako. R-zuhaitzek gainjarritako eskualdeak dotoreago kudeatzen dituzte, baina lauko zuhaitzek txertatzeko abiaduran irabazten dute eta errazago paralelizatzen dira denbora errealeko lan-kargak egiteko.
Lauko zuhaitzek negozio-softwarearen errendimendua optimizatzen lagun dezakete?
Erabat. Kokapen-datuak, analisi espazialak edo aginte-panel interaktiboak kudeatzen dituen negozio-tresnak lauko zuhaitzen optimizazioari etekina ateratzen dio. Mewayz bezalako plataformek, 207 moduluko negozio-sistema eragilea, 19 $ hilean hasita, atzean datu-egitura eraginkorrak aprobetxatzen dituzte esperientzia azkarrak eta sentikorrak eskaintzeko, denda bilatzaileen mapetatik hasi eta denbora errealeko analisietara milaka datu-puntutan.
Try Mewayz Free
All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.
Get more articles like this
Weekly business tips and product updates. Free forever.
You're subscribed!
Start managing your business smarter today
Join 30,000+ businesses. Free forever plan · No credit card required.
Ready to put this into practice?
Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.
Start Free Trial →Related articles
Hacker News
Netflix Prices Went Up Again – I Bought a DVD Player Instead
Apr 9, 2026
Hacker News
Native Instant Space Switching on macOS
Apr 9, 2026
Hacker News
Maine Is About to Become the First State to Ban Major New Data Centers
Apr 9, 2026
Hacker News
PicoZ80 – Drop-In Z80 Replacement
Apr 9, 2026
Hacker News
Hegel, a universal property-based testing protocol and family of PBT libraries
Apr 9, 2026
Hacker News
Old laptops in a colo as low cost servers
Apr 9, 2026
Ready to take action?
Start your free Mewayz trial today
All-in-one business platform. No credit card required.
Start Free →14-day free trial · No credit card · Cancel anytime