Hacker News

Gabatarwa mai mu'amala ga bishiyar huɗu

Sharhi

16 min read Via growingswe.com

Mewayz Team

Editorial Team

Hacker News

Me yasa Bishiyoyi huɗu ke da mahimmanci fiye da yadda kuke tunani

A duk lokacin da kuka tsunkule-zuwa-zuƙowa akan taswirar dijital, tambayar gidajen abinci da ke kusa, ko kallon wani jirgin ruwa na zahiri yana sabunta gumakan abin hawa ba tare da mai binciken ku ya tsaya ba, akwai kyakkyawar damar bishiyar quadtree tana ɗaukar nauyi a bayan fage. Quadtrees ɗaya ne daga cikin kyawawan tsarin bayanan da yawancin mutane ba su taɓa jin labarinsu ba, duk da haka suna yin shuru suna ba da ƙarfi wasu mafi kyawun tsarin aiki a cikin software na zamani - daga gano karon wasan bidiyo zuwa tsarin bayanan yanki suna sarrafa miliyoyin tambayoyin sarari a sakan daya. Fahimtar yadda suke aiki ba wai kawai ya sa ku zama mafi haɓakawa ba; yana canza ainihin yadda kuke tunani game da tsari da bincike ta hanyar bayanan sarari. Ko kuna gina dandali na isar da saƙo, dashboard na nazari na tushen wuri, ko kuma kawai kuna ƙoƙarin ba da maki 50,000 akan zane ba tare da lalata mai binciken ba, bishiyar huɗu tana ba da mafita wanda ke da hankali da inganci sosai.

Menene Ainihi Quadtree?

Ita quadtree ita ce tsarin bayanan bishiya inda kowane kumburin ciki yana da yara huɗu daidai, kowanne yana wakiltar quadrant ɗaya na sarari mai girma biyu. Ka yi tunanin ɗaukar yanki mai murabba'i ka raba shi zuwa murabba'i huɗu daidai-da-wane - arewa maso yamma, arewa maso gabas, kudu maso yamma, da kudu maso gabas. Ana iya ƙara kowane ɗayan waɗannan murabba'ai zuwa ƙarin murabba'i huɗu, da sauransu, akai-akai, har sai kun isa wani yanayin tsayawa. Wannan yanayin tsayawa yawanci ko dai zurfin zurfi ne ko kuma kofa na adadin bayanan da kumburi ɗaya zai iya riƙe kafin ya buƙaci raba.

Kyakkyawar wannan hanyar tana cikin yanayin daidaitawa. Wurare masu yawa tare da bayanan bayanai sun kasu kashi mafi kyau da kuma mafi kyawun sel, yayin da ƙananan yankuna ke kasancewa a matsayin manyan yankuna marasa rarraba. Bishiyoyi huɗu da ke adana wuraren shagunan kofi 10,000 a duk faɗin ƙasar zai haifar da zurfin yanki mai zurfi a kan Manhattan - inda za a iya samun shaguna 300 a tsakanin ƴan murabba'in kilomita kaɗan - yayin da ke riƙe da faɗin ƙauyen Wyoming a matsayin kulli ɗaya, mara rarraba wanda ke ɗauke da sifili ko maki ɗaya. Wannan ƙudirin daidaitawa shine abin da ke sa bishiyar huɗu ke da ƙarfi idan aka kwatanta da madaidaicin grid, wanda zai ɓata adadi mai yawa na ƙwaƙwalwar ajiya akan sel mara komai.

Raphael Finkel da JL Bentley sun fara bayyana ra'ayin a cikin 1974, kuma tun daga wannan lokacin ya rabu zuwa bambance-bambancen da yawa: ma'ana quadtreesajiye nau'i-nau'i na daidaitawa guda ɗaya, yankin quadtreeswakilan sararin samaniya (mai amfani ga matsawa hoto), da kuma edge handles and curtrees. Kowane bambance-bambancen yana inganta don lokuta daban-daban na amfani, amma ainihin ƙa'idar juzu'i ta kasance iri ɗaya ce a dukkansu.

Yadda Shigarwa da Tambaya Aiki

Don shigar da aya a cikin bishiya huɗu, za ku fara daga tushen tushe kuma ku tantance ko wane daga cikin huɗun huɗun batu ya faɗi. Sa'an nan kuma za ku sake komawa cikin kumburin yaro na quadrant kuma ku maimaita aikin. Idan kun isa kullin ganyen da bai wuce ƙarfinsa ba (wanda aka saba saita zuwa maki 1 ko 4), kawai kuna adana batu a wurin. Idan ganyen ya riga ya girma, sai ya rabu gida hudu, ya sake rarraba wuraren da yake da su a tsakanin su, sa'an nan kuma shigar da sabon batu a cikin yaron da ya dace. Wannan tsari yawanci yana ƙarewa a cikin lokacin O(log n) don daidaitaccen rarrabawa, kodayake mafi munin yanayi tare da tarin bayanai na iya lalata aiki.

Tambayar kewayon - gano duk maki a cikin yanki mai murabba'i da aka bayar - shine inda bishiyar huɗu ke haskakawa da gaske. Maimakon bincika kowane batu guda ɗaya a cikin tsarin bayananku (O(n) aiki), kuna farawa daga tushen kuma kuyi tambaya mai sauƙi a kowane kulli: shin iyakar wannan kumburin tana haɗuwa da murabba'in bincike na? Idan ba haka ba, kuna datse dukkan bishiyar - mai yuwuwar kawar da dubban maki daga la'akari a cikin kwatance ɗaya. Idan akwai tsaka-tsaki, kuna sake komawa cikin yaran da suka dace. Mahimman abubuwan da aka samo a cikin kumburin ganye waɗanda suka faɗi a cikin rectangular bincike ana ƙara su zuwa saitin sakamako.

Yi la'akari da misali mai amfani: kuna da bayanan wuraren abokan ciniki 100,000 kuma kuna buƙatar nemo kowa a cikin radius mai nisan kilomita 5 na sabon kantin buɗewa. Hanyar da za a yi amfani da karfi tana buƙatar lissafin nesa 100,000. Kyakkyawan itace quadtree na iya rage hakan zuwa cak 200-500 kawai ta hanyar kawar da duk yankuna na yanki waɗanda a fili ba su zo tare da yankin bincikenku ba. Wannan shine haɓakar aiki na200x ko fiye - bambanci tsakanin tambayar da ke ɗaukar milliseconds 800 da ɗaukar 4 millise seconds.

Aikace-aikace na Duniya na Gaskiya waɗanda ke Gudu akan Bishiyoyi huɗu

Aikace-aikace na bishiya huɗu sun yi nisa fiye da kimiyyar kwamfuta na ilimi. Su ne tushen tsarin da biliyoyin mutane ke amfani da su kullum, sau da yawa ba tare da saninsa ba.

  • Taswirori da kewayawa: Ayyuka kamar Google Maps da Taswirorin Taswira suna amfani da tsarin tayal mai kama da bita huɗu don ba da hotunan taswira. Kowane matakin zuƙowa yana rarraba fale-falen fale-falen zuwa yara huɗu, wanda shine dalilin da ya sa daidaitawar fale-falen taswira ke bin tsarin z/x/y wanda ke nuna magana ta quadtree. Lokacin da kuka zuƙowa cikin toshewar birni, mafi girman fale-falen fale-falen fale-falen fale-falen kawai - sauran duniya suna tsayawa kan ƙaƙƙarfan ƙuduri.
  • Gano karo a cikin wasanni: Injin wasan suna amfani da bishiya huɗu (da takwarorinsu na 3D, octrees) don gano da kyau lokacin da abubuwa suka yi karo. Maimakon gwada kowane nau'i biyu na abubuwa - O(n²) mafarki mai ban tsoro tare da mahalli 1,000 akan allo - injin yana bincika abubuwan da ke raba tantanin halitta huɗu iri ɗaya, yana rage cak zuwa lambar da za a iya sarrafawa.
  • Tsarin hoto: Bishiyoyi huɗu na yanki na iya danne hotuna ta hanyar haɗa pixels kusa da waɗanda ke raba launuka iri ɗaya zuwa manyan tubalan. Wannan shine tushen wasu algorithms na matsawa waɗanda ke cimma ma'aunin matsawa na 10:1 yayin da suke riƙe amincin gani a cikin ƙananan dalla-dalla.
  • Mai sarrafa jiragen ruwa da dabaru: Kamfanonin isarwa suna amfani da firikwensin sararin samaniya don daidaita direbobi tare da umarni na kusa a ainihin lokacin. Itace quadtree tana barin tsarin aikawa nan take ya amsa tambayar "waɗanne direbobi 5 ne suka fi kusa da wannan wurin ɗaukar kaya?" a cikin gungun dubban motocin da ke sabunta wuraren GPS a kowane ƴan daƙiƙa kaɗan.
  • Analytics na Geospatial:Tsarin da ke tattara bayanan kasuwanci na tushen wuri - taswirar yawan abokin ciniki, haɓaka yanki na tallace-tallace, nazarin wuraren ajiya - dogara ga tsarin bayanan sararin samaniya don sanya waɗannan tambayoyin yin hulɗa tare da sarrafa tsari.
Makullin fahimtar da ke bayan bishiyar huɗun ita ce mafi yawan tambayoyin sararin samaniya ba sa buƙatar bincika yawancin bayanai. Ta hanyar tsara sararin samaniya bisa tsari, kuna canza bincike mai ƙarfi zuwa ƙetare da aka yi niyya - juya daƙiƙa zuwa mil daƙiƙai da kuma sa mu'amala ta ainihi ta yiwu koda tare da manyan bayanai.

Gina Bishiyoyi Hudu Daga Tsage

Aiwatar da asali na bishiyar huɗu yana da ban mamaki abin kusanci, har ma ga masu haɓaka tsaka-tsaki. Tsarin tushen yana buƙatar kawai 'yan sassa: aiyaka(yankin rectangular da kumburi ya rufe), aikon(mafi girman maki kafin rarrabawa), amaki tsararru, da kuma nuni zuwa ga huduyaro nodes(farko maras kyau). Ana iya rubuta duk aikin sakawa a ƙarƙashin layukan lamba 30 a yawancin harsuna.

Aikin tsaga ya haifar da sababbin nodes na yara guda huɗu, kowannensu yana rufe kwata ɗaya na iyakar iyaye. Ga iyaye masu iyaka (x, y, faɗi, tsayi), ɗan arewa maso gabas yana samun (x + nisa/2, y, faɗi/2, tsayi/2), arewa maso yamma yana samun (x, y, faɗi/2, tsayi/2), da sauransu. Bayan rarrabuwa, ana sake rarraba abubuwan da ke akwai zuwa yaran da suka dace. Kuskure na yau da kullun shine mantawa don share tsararrun maki na iyaye bayan sake rarrabawa, wanda ke haifar da kwafin sakamako yayin tambayoyi.

Don amfanin samarwa, haɓakawa da yawa suna da mahimmanci. Saita ƙarfin kumburi zuwa maki 4-8 yawanci ya fi ƙarfin 1, saboda yana rage zurfin bishiyar da saman abubuwan kumburi. Ƙara mafi girman iyaka mai zurfi(yawanci matakan 8-12) yana hana cututtukan cututtuka inda maki da yawa ke raba daidaitawa iri ɗaya daga ƙirƙirar bishiyoyi masu zurfi marasa iyaka. Kuma ga ma'aunin bayanai masu ƙarfi inda maki ke motsawa - kamar bin diddigin abin hawa - zaku so tsarin cirewa ko dabarun sake gina bishiyar lokaci-lokaci, tunda 'yan hudu ba su daidaita kansu kamar jajayen bishiyar baƙar fata suke yi.

💡 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 →

Bishiyoyi huɗu a Dandalin Kasuwanci da Nazari

ku

Tsarin kasuwanci na zamani suna ƙara mu'amala da bayanan sarari, ko wuraren abokan ciniki ne, yankunan bayarwa, yankunan tallace-tallace, ko bin diddigin kadara. Kalubalen ba kawai adana wannan bayanan ba - yana sanya shi abin tambaya a ainihin lokacin a sikelin. Lokacin da kasuwancin da ke aiki a cikin biranen 50 yana buƙatar hangen nesa yawan abokin ciniki, direbobin isar da hanya, ko nazarin ayyukan tallace-tallace na yanki, dabarun ƙirar sararin samaniya yana ƙayyade ko dashboard ɗin yana ɗauka a cikin milliseconds 200 ko 20 seconds.

Wannan shine dalili guda ɗaya dandamali kamarMewayz - wanda ke haɗa nau'ikan nau'ikan nau'ikan 207 waɗanda suka mamaye CRM, daftari, sarrafa jiragen ruwa, yin ajiyar kuɗi, da kuma nazari a cikin OS na kasuwanci guda ɗaya - suna amfana daga ingantaccen sarrafa bayanan sarari a ƙarƙashin hular. Lokacin da tsarin sarrafa jiragen ruwa yana buƙatar nunin motoci masu aiki 500 akan taswira, ko kuma lokacin da tsarin CRM ya hango wuraren masu amfani 138,000+ don tsara ƙasa, hanyoyin butulci kawai ba sa ƙima. Tsarukan ƙididdiga na sararin samaniya kamar bishiya huɗu (ko makamantan bayanan su, kamar PostGIS R-bishiyoyi da maƙasudin sararin samaniya na MySQL) sun sa ya yiwu a ba da waɗannan fasalulluka ba tare da buƙatar kayan masarufi ba.

Ga 'yan kasuwa masu kimanta dandamali, hanyar da za a ɗauka yana da amfani: kayan aikin da ke sarrafa wuri da bayanan sararin samaniya da kyau ba kawai suna amfani da algorithms masu kyau don kare kansu ba. Suna yin bambanci tsakanin tsarin ajiya wanda zai iya nuna masu samar da sabis nan take a cikin nisan kilomita 10 da wanda ke ɗaukar daƙiƙa 8 don ɗaukar sakamako iri ɗaya. Ayyuka a wannan matakin kai tsaye yana fassara zuwa ƙwarewar mai amfani da kuma, a ƙarshe, kudaden shiga.

Bishiyoyi huɗu vs. Sauran Tsarukan Bayanan sarari

Bishiyoyi huɗu ba su ne kawai zaɓi don ƙididdige sararin samaniya ba, kuma fahimtar zaɓuɓɓukan yana taimaka muku zaɓi kayan aikin da ya dace. R-bishiyoyi, ana amfani da su sosai a cikin ma'ajin bayanai kamar PostGIS da SQLite's R*Tree module, tsara bayanai zuwa mafi ƙanƙanta ƙugiya mai ɗaurewa da sarrafa tambayoyin kewayo da binciken maƙwabta da kyau sosai. Gabaɗaya sun fi bishiyu huɗu don ajiya na tushen diski saboda suna rage ayyukan I/O, wanda shine dalilin da ya sa mafi yawan ma'ajin bayanai ke amfani da bambance-bambancen itacen R a ciki maimakon bishiyar huɗu.

K-d bishiyoyi sarari ta hanyar amfani da madaidaicin madaidaitan tsaga (da farko ta x, sannan ta y, sannan ta x sake) kuma suna da kyau ga binciken makwabci mafi kusa a matsakaicin girma. Suna da yawa fiye da bishiyar huɗu lokacin da girman girman ya yi ƙasa kuma saitin bayanai ya tsaya tsayin daka, amma suna da wahalar ɗaukakawa sosai. Geohashesa ɗauki wata hanya ta dabam gaba ɗaya, tana ɓoye latitude da longitude cikin layi ɗaya inda prefixes ɗin da aka raba suna nuna kusancin sarari - yana sa su dace don fidda bayanai da caching amma ƙasa da sassauƙa don tambayoyin kewayon sabani.

Bishiyoyi huɗu suna riƙe nasu cikin yanayi waɗanda ke wasa da ƙarfinsu: a cikin ƙwaƙwalwar ajiyar sarari, saiti mai ƙarfi tare da sakawa akai-akai da gogewa, aikace-aikacen gani inda tsarin tsarin grid ɗin ya yi taswira ta zahiri don zuƙowa matakan, da yanayi inda sauƙin aiwatarwa ya shafi al'amura. Don aikace-aikacen gaba-gaba da ke ba da maki 10,000 bayanai akan zane tare da pan-da-zuƙowa, itace quadtree da aka aiwatar a cikin layukan JavaScript 100 zai fi kowane bayani mai goyon bayan bayanan bayanai ta hanyar kawar da latency na cibiyar sadarwa.

Farawa: Matakai Na Gaba Masu Aiki

Idan kana son zurfafa fahimtar bishiyar hudu fiye da karanta su, hanya mafi inganci ita ce gina ta gani. Ƙirƙirar aikace-aikacen zane mai sauƙi inda dannawa ke ƙara maki, kuma duba yadda ake rarraba itace a cikin ainihin lokaci. Ƙara rectangle na kewayon tambaya wanda za ku iya jawa da shi kuma ku haskaka wuraren da ya samo. Wannan hulɗar hannu-da-hannu tana gina hankali wanda babu adadin karatu da zai iya daidaitawa - nan da nan za ku ga dalilin da ya sa tarin bayanai ke haifar da zurfafan bishiyoyi da kuma yadda yanayin datsa yayin tambayoyin ke kawar da manyan sararin samaniya.

Don aikace-aikacen samarwa, yi la'akari da waɗannan jagororin: idan bayananku suna zaune a cikin ma'ajin bayanai, yi amfani da bayanan sararin samaniya da bayananku ke bayarwa (PostGIS, MySQL Spatial, MongoDB 2dsphere indexes) maimakon aiwatar da bishiya huɗu a cikin lambar aikace-aikace. Idan kuna yin hangen nesa-gefen abokin ciniki ko sarrafa ƙwaƙwalwar ajiya, ɗakunan karatu kamard3-quadtreedon JavaScript kopyquadtreena Python suna ba ku aiwatar da gwajin yaƙi. Kuma idan kuna gina wani dandali wanda ke sarrafa kowane irin bayanan wuri - daga adiresoshin abokin ciniki zuwa hanyar isar da saƙo zuwa sarrafa yanki - saka hannun jari don fahimtar bayanan sararin samaniya, saboda zai iya siffata abin da aikace-aikacenku zai iya yi a sikelin.

Bishiyoyi huɗu suna wakiltar babban ƙa'ida a kimiyyar kwamfuta: cewa tsarin da kuka zaɓa don bayananku yana ƙayyade tambayoyin da zaku iya amsawa da kyau. Lissafin layi na daidaitawa na iya amsawa "ba ni duk maki," amma quadtree na iya amsawa "ba ni duk maki kusa da nan" - kuma yana iya yin shi da sauri don jin nan take. A cikin duniyar da kashi 73% na bayanan kasuwanci ke da ɓangaren sararin samaniya bisa ga ƙimar masana'antu, wannan damar ba ta ilimi ce kawai ba. Yana da fa'ida gasa.

Tambayoyin da ake yawan yi

Mene ne itace quadtree kuma ta yaya yake aiki?

Ita quadtree tsarin bayanai ne na tushen bishiya wanda akai-akai ya raba sarari mai girma biyu zuwa hudu daidai gwargwado. Kowane kumburi zai iya riƙe iyakataccen adadin bayanan bayanai kafin ya rabu gida huɗu na yara. Wannan rarrabuwar kawuna tana yin tambayoyin sarari - kamar gano duk maki a cikin yanki da aka bayar - da sauri sosai, yana rage lokacin bincike daga layi zuwa logarithmic a mafi yawan yanayi mai amfani.

A ina ake yawan amfani da itacen hudu a aikace-aikace na zahiri?

Bishiyoyi huɗu suna iko da nau'ikan tsarin da suka haɗa da taswirori na dijital tare da ayyukan tsunkule-zuwa-zuƙowa, dashboards na sa ido na jirgin ruwa na gaske, injin gano karo na wasan bidiyo, da tsarin bayanan yanki suna sarrafa miliyoyin tambayoyin sarari a sakan daya. Duk wani aikace-aikacen da ke buƙatar bincika, sakawa, ko sarrafa abubuwan da aka rarraba a cikin sarari mai girma biyu zai iya amfana daga indexing quadtree.

Ta yaya bishiyoyi huɗu ke kwatanta da sauran tsarin bayanan sararin samaniya?

Ba kamar grid ɗin lebur ba, bishiyar huɗu tana daidaita ƙudurin su zuwa yawan bayanai - wuraren da ba su da yawa suna zama marasa ƙarfi yayin da yankuna masu cunkoson jama'a ke ƙara rarrabuwa. Idan aka kwatanta da bishiyoyin k-d, bishiyar huɗu sun fi sauƙi don aiwatarwa kuma sun fi dacewa don rarraba bayanai na 2D iri ɗaya. Bishiyoyin R-bishiyoyi suna ɗaukar yankuna masu haɗuwa da kyau, amma bishiyar huɗu suna samun nasara akan saurin sakawa kuma suna da sauƙin daidaitawa don ayyukan aiki na lokaci-lokaci.

Shin bishiya huɗu na iya taimakawa haɓaka aiki a cikin software na kasuwanci?

Lallai. Duk wani kayan aikin kasuwanci da ke sarrafa bayanan wuri, ƙididdigar sararin samaniya, ko dashboards masu ma'amala suna fa'ida daga ingantawa na quadtree. Platforms like Mewayz, a 207-module business OS starting at $19/mo, leverage efficient data structures behind the scenes to deliver fast, responsive experiences — from store locator maps to real-time analytics across thousands of data points.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

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 →

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