Uyakwazi ukucubungula i-polygonal mesh kusuka ku-3D i-scalar field?
Ngaba?
Okwangoku, ngo-1987, amaprogramers amabili e-General Electric baye - futhi zikhona i-algorithm ye-Marching Cubes. Kuyinto isizathu ukuthi izidakamizwa zonyango zingahlukanisa amamodeli e-3D okuyinto ngokuvamile zitholela izigidi.
Kuyinto amandla ye-algorithm.
Whenever you instruct a machine to solve a problem with code, you’re designing a procedure to transform bits into meaningSome algorithms are fast. Some are elegant. And some are so strange, they feel like magic.
Kule ncwadi, sinikezela ezingu-10 ye-algorithms emangalisayo, emangalisayo kakhulu eyenziwe ngexesha - ama-algorithms ezisiza ukubuyekeza ama-billions of lines of code e-milliseconds, ukuguqulwa ama-maps e-infinite kusuka ku-nothing, kanye nokuguqulwa kwe-quantum we-strangeness ku-logic esebenzayo.
#1-Wave Function Ukukhula
Enye yezinto emangalisayo emayensi kuyinto i-double-slit experiment: izinhlayiya zihlanganisa njengamafutha lapho ungathanda, kodwa ngexesha ungathanda, zihlanganisa lapho zihlanganisa njengamafutha. Kuyinto emangalisayo - futhi enhle kakhulu.
I-idea ye- "function collapsing wave" ibonise emangalisayo, kodwa iye yakhelwe ku-algorithm enhle kakhulu. Qinisekisa ukuthi ushiye isithombe se-video game. Ungathanda ukuthi wonke umhlaba uyaziqhathaniswa, kodwa futhi uqhubeke ngempumelelo. Ungathanda isithombe se-infinite ngempumelelo, ngakho-ke ngempumelelo ukuvelisa ngempumelelo.
Okokuqala, zonke i-tile ye-map iyona i-"wave" - akuyona akukho okuhle. Kuyinto ephelele nezimo. Kodwa njengoba umdlali uhamba phambili - ukhangela emhlabeni - i-algorithm "ukungcola" ukuthi ukucaciswa. I-world ikakhulukazi ku-tile eyodwa, kodwa ivumela ngokuvumelana nezinsizakalo ezikhombisa. Izitimela zihlanganisa, amanzi zihlanganisa lapho kufanele, futhi konke kubonakala njengokukhiwa ngempumelelo.
Kuyinto i-randomity nge-purpose, konke ngaphandle kwe-I.I. ye-generative. It's just we-strange, beautiful logic.
#2 I-Model ye-Diffusion
I-AI kuyinto emangalisayo. I-Really Strange.
Thola amamodeli ye-diffusion — ubuchwepheshe esekelwe ama-imaging generators efana ne-DALL·E ne-Stabil Diffusion. Lezi zihlanganisa umqondo kusuka ku-thermodynamics: i-diffusion, lapho izinhlayiya zihlanganisa ngokwemvelo kusuka kumasese we-concentration aphezulu kuya kumasese we-concentration aphansi.
Ngama-machine learning, lokhu inqubo ivimbele.
Ngaphandle kokuphuma kusuka ku-order kuya ku-chaos, i-algorithm uqala nge-noise enhle - njenge-image ye-cat - futhi ufundisa indlela yokuphumelela ngokushesha ku-image enhle. Uqala nge-randomness (entropy ephezulu) futhi uqala nge-output enhle, enhle (entropy ephansi).
Kodwa kufanele unamodeli ukwenza lokhu kahle. I-algorithm ye-diffusion isebenza ngezigaba ezimbili.
Okokuqala, ngesikhathi sokucwaninga, imodeli ukuthatha imifanekiso real futhi ngokushesha ukongeza umnqumo kwinkqubo esilandelayo kuze kube akuyona engatholakali. Ngemuva kwalokho, ufundisa indlela yokuguqulwa kwelinye inqubo - ukuguqulwa kwakhona ku-image enhle.
Yenza lokhu phakathi kwezigidi ezimbonini ezimbonini, futhi uzothola imodeli okuyinto ungathanda izithombe ezintsha ukusuka emzimbeni. Cats e-space. I-Ancient Rome ku-Pixar style. Izikhwama ze-avocado ze-hyperrealistic. Uyazi.
It is compute-heavy. Kodwa akuyona imidwebo. Ukusabalalisa kuhlobisa indlela sikhiqiza umculo, i-audio, futhi elilandelayo - ividiyo.
#3–I-Annealing ye-simulated
One of the most frustrating parts of programming is that there’s rarely one right solution – just a sea of okay ones, and a few great ones. Imininingwane like organizing a Amazon warehouse: izindlela ezine ukwenza lokhu, kodwa kuphela amancane okuyinto ngokwenene zihlanganisa.
I-simulated annealing inikeza igama lakho kusuka ku-metallurgy, lapho ama-metals ashiselwe nokushisa futhi ashiselwe ngokuvamile ukuze zitholele izimpahla. I-concept efanayo isetshenziselwa ukucindezeleka. Ufuna ukufumana isixazululo enhle emkhakheni emangalisayo eningi emaphandleni emaphandleni emaphandleni.
Ukukhetha ukuthi uthatha ukubukeka okuphakeme kakhulu emaphandleni. I-algorithm ephakeme ye-hill-climbing uzokufaka kwelanga lokuqala esibonakalayo. Kodwa i-anchoring e-simulated kuyinto enhle kakhulu. Iqala ne-high "temperature", okuyinto ivumela ukuhlola ngokushesha - ngezinye izikhathi ngisho ukuthatha izindlela ezingaphakeme zokuhamba izindiza zendawo. Njengoba izinga lokushisa kwangaphakeme ngokushesha, kubaluleke kakhulu, ukujabulela kuphela izindiza ezinhle.
I-trade-off iyona i-exploration vs. i-exploitation. Futhi akunakwenzeka kuphela ku-code - kuyinto i-metaphor enhle yokufunda i-coding, futhi. Ekuqaleni, ufike phakathi kwezilimi, izixhobo, nama-frameworks. Kodwa ekugcineni, uhlaziyo, uhlaziywa, futhi uhlanganise.
#4-I-Sleep Black
Ngaba ungenza mayelana ne-algorithms ngaphandle kokufaka ukucubungula - futhi mhlawumbe i-absurdly smartest (and completely useless) eyenziwe ngexeshaIzingane Black.
I-algorithm ye-sorting ye-traditional, njengeUkuhlobisanomaUkuhlobisaUkusebenzisa izindlela ze-divide-and-conquer ukuze zihlukanise ama-array angama-subarrays futhi zihlanganisa ngokushesha. Kodwa emzimbeni e-4chan, isakhiwo se-geny ebonakalayo isixazululo esahlukile.
Ngiyavuza kanjani: Kuhlolwe ngama-nombolo ngamunye e-array, uqala i-thread entsha. I-thread eyahlukile ngama-milliseconds efana ne-value yayo, bese ifakwe inombolo lapho i-wake up. Njengoba ama-number amancane abalandeli isikhathi esincane, zithintshwe ngokushesha - okuholela ku-sorted output.
I-intelligent ingxenye? Kuyashintshela zonke izakhiwo ezivamile futhi i-CPU ye-string scheduler ku-motor yokuhlanganisa. Akukho ukuhlangabezana. Akukho ukuguqulwa. I-sleep kanye nokuprinta.
Kodwa kuyimfuneko emangalisayo. It ukuphazamiseka nezinombolo emibi, ama-duplicates, noma ama-values emikhulu. It is futhi engaphakeme, ukwakha umugqa omunye ngamathuluzi ngamathuluzi. Futhi kuxhomekeke ku-time of sleep, okuyinto ayikho kakhulu. I-Sleep Sort iyona i-hilar and useless - isibonelo ephelele yokuba okungenani akufanele iyatholakala.
#5 I-BOGO Sort
I-BogoSort kuyinto i-algorithm yokudlala: kuvimbela ngempumelelo i-array ngokushesha, kuze kube, ngempumelelo enhle, umphumela wahlanganiswa. Kuyinto enhle kakhulu - njengokufunda ukuhlaziywa indlela yakho lokuphendula ngempumelelo.
Ngokuqhathanisa ukuxhuma lokhu nge-ideal ye-quantum mechanics kanye ne-multiverse. Ngokwemvelo, uma zonke iziphumo ezivamile zihlanganisa phakathi kwe-infinite universes parallel, ngakho-keIzinganeuniverse lapho umlinganiselo yakho iyahambisana.
I-technology ayikho kakhulu, kodwa i-"Quantum BogoSort" iyasebenza ngokwenza zonke lezi zimo ngehora, bese ngehora ngehora ku-universe lapho i-array iyahlukaniswa - ngokuvamile ukunikeza ukufakelwa kwe-quantum ukwenza umsebenzi ngawe.
Okwakheka, lokhu kuyinto sci-fi, futhi akuyona ikhompyutha. Asikwazi ukuhlola noma ukuphazamiseka multiverse ngokufanele. Kodwa kuyinto isizukulwane esithakazelisayo yokuzonwabisa mayelana ne-bruto-force randomness eyenziwe ekupheleni yayo logical (and absurd).
#6 - Ukuhlobisa
Ngiyazi. Yini ngingathanda kakhulu mayelana ne-algorithms kuyinto ukuthi kungase ngempumelelo emzimbeni. Vumela i-Craig Reynolds' Boids Program kusuka ku-1986 - iyona omunye yokuqala yokufakelwa kwe-smart life futhi ibonisa indlela yokufakelwa kwe-birds. Kodwa okuhlobisa ukuthi i-coding eningi kufunekaUkulungeleNgingumfana
Konke umbhali (noma "boid") uyazi kuphela amasethi ezintathu: ukunciphisa ukuxhumana nabathengi (Separation), ukuxhumana ngezinyathelo zabo (Alignment), kanye nokushintsha ku-centre ye-group yendawo (Cohesion).
Kuyinto. Akukho umlinganiselo. Kodwa lapho usihlanganisa amabhokisi lwezinto eziningana, uzothola imizila emangalisayo, eziphilayo ezihlangene futhi zihlanganisa njengama-flock emangalisayo.
Ukukhanya lapha ayikho ku-code - kuyinto ku-whatUkukhanyaIzinzuzo ezinzima ze-Gruppe ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics ze-Dynamics.
#7 — I-Algorithm ye-SHOR
I-Ideya yokuvumela abantu ukujabulela ibhokisi zabo ze-mail kanye nokubhalisa amaphepha zabo nge-signature eyingqayizivele isekelwe ku-concept ebalulekile e-cryptography: ukuphazanyiswa kwe-factoring ye-number eningi.
Ukubuyekezwa kwezindlela ezininzi zokubuyekezwa ku-simple mathematical reality - ukuguqulwa kwezinombolo ezinkulu kuhlanganise kulula, kodwa ukubuyekeza izinombolo ezimbonini ezijwayelekile zezinombolo zokubuyekezwa kwe-product—I-problem ebizwa ngokuthiprime factorization —Kuyinto enhle kakhulu futhi ixabiso isikhathi.
Ngokuvamile, kubaluleke kakhulu ukuthi kungabangela i-laptop yakho izigidi ezingu-trillions ukuze i-brutto-force isisombululo - ngaphandle, ngokuvamile, siqala ukusetshenziswa kwamakhompyutha we-quantum. Amakhompyutha we-quantum inesibopho sokuphendula inkinga we-factorization ye-integra ngokushesha kunoma iyiphi i-algorithm ephakeme, ngenxa ye-algorithms efana ne-Shor's Algorithm.
I-Algorithm ye-Shor inokukwazi ukunciphisa inani elikhulu ku-principal factors yabo ngokushesha kunezindlela ezivamile. I-principal factoring kuyinto enhle kakhulu, kodwa indlela yokusebenza le-algorithm kuyinto lapho izinto zithole kakhulu.
Kwesimo se-Algorithm ye-Shor zihlanganisa izici ze-quantum, njenge-qubits, i-superposition, ne-embanglement. Lezi zithumela ama-computer ye-quantum ukwenza izibalo eziningi ngokuhambisana, okuhle ama-computers ezivamile angakwazi ukufinyelela.
Nangona i-algorithm ngokuvumelana, isicelo se-real-world iyatholakala eminyakeni yayo yokuqala. Ngokuvamile, inombolo eningi etholakala usebenzisa i-quantum computing kuyinto kuphela 21. I-state-of-the-art quantum system ye-IBM, i-Q System One, ayikwazanga ukufakela inombolo efana ne-35.
Ngaphezu kwalokho, inqwaba we-Chinese wahlangabezana inani elikhulu usebenzisa ikhompyutha ye-quantum, kodwa wahlangabezana ne-algorithm eyenza kahle ngezibalo ezininzi kakhulu, okuyinto kubalulekile ukuthi akuyona okungagunyaziwe ukusetshenziswa jikelele.
Kodwa-ke, uma ama-computer ye-quantum akuyona enhle kakhulu futhi umuntu uyakwazi ukucacisa indlela yokuphakamisa izinhlamvu ze-algorithms ngezibalo ezinhle kakhulu, uyakwazi ukucacisa kakhulu kwihlabathi ye-cyber security. Uma i-quantum computing iyakwazi ukucacisa ukucaciswa ngokufanelekileyo, zonke ama-protocols zethu zokusebenza zokusebenza kwebhizinisi zingatholakala.
#8 - Ukuhamba Kubheka
Ekupheleni le ncwadi, sinikeza i-Algorithm ye-Marching Cubes - kodwa kunzima ukujabulela, ngenxa yokuba kuyinto ingxubevange enkulu yokubonisa idatha ye-3D, ikakhulukazi ekwelasheni.
Ukukhetha ukuthi unayo ukucubungula kwe-3D emzimbeni yabantu, njenge-MRI. I-MRI akukwazi ukunikeza imodeli ye-3D, kodwa i-cube ye-3D ye-number — indawo ye-3D ye-scalar. Yonke ingxenye yayo elihlanganisa izinga elihlanganisa into efana ne-tissue density noma i-signal intensity. Lezi zebhizinisi zihlanganisa emzimbeni, kodwa kufanele ukuguqulwa ku-imeyile ye-visual — indawo, isakhiwo, into eyayitholakala ku-computer.
Kuyinto lapho i-Marching Cubes ivela. I-algorithm ithatha le ibhizinisi le-3D futhi ibhizinisi nge-cube encane ngexesha. Yonke ibhizinisi ifakwe amayunithi amayunithi amayunithi amayunithi amayunithi.
Ngiyazi le nqakraza esithile: zonke lezi zibhokisi ezine zihlanganisa phezulu noma ngaphansi kwe-threshold (ngokuthi, lapho isikhumba ivimbele ku-bone). Ngakho zonke izindawo zithunyelwe i-0 noma i-1, ngokuvumelana nephakathi noma ngaphandle kwe-surface oyithanda ukuvikelwa.
Oku kunikeza inombolo ye-8-bit — i-256 ama-combinations eyenziwe ngalinye ye-cube encane. Ukuze ngamunye le-combination, isampula esigcwele se-triangle etholakalisiwe futhi ibhekwa embhedeni yokufunda. Lezi zindandatho zisetshenziselwa ukuhlaziywa kwe-surface eyenza le-cube. Ngakho-ke, ngaphandle kokucubungula i-geometry eyenziwe ngalinye, i-algorithm kuphela ibheka.
Ngokuvamile le nqubo — ukuhambisa nge-cube nge-cube, ukuxhuma ama-values, ukufuna izakhiwo — i-algorithm ngokuvamile ukwakha i-mesh ephelele ye-3D. Yini ungathola kuyinto surface enhle enikeza ukuhambisa phakathi kwezinto ezihlukahlukene ku-scanning, njenge-bone kanye ne-webhu.
Kuyinto enhle eminyakeni e-1980 ngenxa yokuguqulwa kwe-Flat MRI noma i-CT scan slices ezivela kuma-models ze-3D ezivamile abaculi angakwazi ukuxuba, ukuxuba, nokuhlola. Futhi ngisho namhlanje, i-Marching Cubes isetshenziselwa ezindaweni eziningi - kusuka ku-imaging yezokwelapha kanye ne-geology kuya ku-procedural generation emidlalo.
# 9 — Ukusebenza kwe-Byzantine Fault Tolerance
Ngama-computing yama-modern, thina ngokuvamile usebenza nezinhlelo zokudibanisa - ama-networks ze-computers ezidlulile emkhakheni. Lokhu kuthatha kwelinye ingxaki enhle ye-computing yokudibanisa: I-Byzantine Generals Problem.
Ukubonisa lokhu: izibane ezingu-general ezivela e-Byzantine zihlanganisa idolobha. Zihlanganisa kanye nokushuthaza ngexesha elifanayo ukufumana. Kodwa angakwazi ukuxhumana kuphela ngokuthumela imiyalezo, futhi ezinye izibane angakwazi ukuba ama-traitors abacwaningela ukuhlangabezana nenkqubo. Mhlawumbe umuntu uyehlisa ukuxuba, noma engaphansi – ibheka mayelana ngexesha lokuphumula. Uma ngisho nomunye umgeneral akufanele noma isebenza ngempumelelo, yonke isinyathelo ingangena.
I-computers ihamba ne-challenge efanayo. E-system e-distributed, ezinye izinjini zihlukile, zihlukile, noma ngisho zihlukile. Indlela yokufakelwa kwebhizinisi kungenzeka ukuthi akuyona ukuthi akuyona wonke umuntu?
Kuyinto lapho i-algorithms ye-consensus efana ne-PBFT - Practical Byzantine Fault Tolerance - ivela. I-PBFT yenzelwe ukulawula izimo ezivela. It isebenza ngokuvumela i-node eyodwa ukuchofoza isinyathelo ngokuvumela isivumelwano se-"pre-prepare". Ama-node ezinye zibophoza ngokuvumelana. Uma inani elilodwa le-node (ngaphezulu kwezigidi ezimbili noma ngaphezulu) isivumelane, zihlanganisa isivumelwano. Ekugcineni, i-node yokuqala inikeza isivumelwano se-"commit" enikezela wonke umuntu ukuba isebenze isinyathelo. Ngaphandle kwe-up to one-third of the nodes is faulty or malicious,
I-algorithms efana ne-PBFT iyinhlanganisela ye-blockchain systems ne-distributed cloud databases, okwenza kube lula ukuhambisana nokufikelela - ngisho lapho izinto zihambe.
#10 – Boyer Moore
Futhi lokugqibela, okuvela ku-old-school algorithm enikeza ngokushesha ezinye izixhobo ezincinane ezivamile ezisetshenziselwa namhlanje - njenge-grep. It ibizwa ngokuthi i-Boyer-Moore string search, futhi ungayifuma emzimbeni yami ngenxa yokuthintela ukuthi kungcono: okungenani i-text,Ngena ngemvumeYiba
Ngiyazinza kanjani. I-algorithm ye-search ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm ye-Algorithm.right to leftngaphakathi isampula search, futhi usebenzisa amaphuzu amabili ukujabulela amaphuzu amakhulu ye-text. Thina ukhangela inkulumo“needle“Nge-block enkulu ye-text.
1. Bad character rule:
Uma ufuna "needle" futhi umbhali lokugqibela umbhali "z" - ke kungekho indlela ukuqala umbhali lapho noma ngaphambi kwalo isikhathi. Ngakho-ke, Ngaphandle kokucwaninga umbhali ngalinye, i-algorithm uhamba phambili nge-6 izindawo - ubude obugcwele we "needle" - futhi ivela.
2. Good suffix rule:
Uma ufuna i-"dle" futhi uxhumane "dle" ekupheleni - kodwa umbhali elandelayo uxhumane umbhali - i-algorithm akukwazi ukuqala kusuka ku-letter elandelayo. Ngokuphathelene, ibiza: "dle" ifumaneke ngaphambi kwe-"needle"? Uma kunjalo, uye ukuguqulela isampula ukuze "dle" elandelayo izihlanganisa. Uma kungekho, uxhumane yonke ingxenye ye-dle ngokugcwele. Noma kunjalo, uxhumane ngokushesha ngaphandle kokuthintela isikhathi.
Izinhlelo zokusebenza ze-heuristics zangaphandle zangaphambili, kodwa zihlanganisaIndlelaUkusebenza okungcono kunama-force brute methods.
Umphumela? Njengoba umbhalo uhlaziywa, i-algorithm ingathanda ukuchithwa ama-characters amaningi, okwenza kube lula ngokuhambisana ne-size ye-input. Ngakho-ke i-tools efana ne-grep angakwazi ukuchithwa ama-gigabytes ye-logs ngesivinini esizayo - futhi ukuthi lokhu i-algorithm enezinyakeni esidala kusebenza like i-black magic namhlanje.
When Logic Meets Imagination: The Real Power of Algorithms
Noma ukuguqulwa kwe-quantum uncertainty ku-imaging ephakeme, ukuguqulwa kwe-biological flocking behaviors nge-3 amasethi amancane, noma ukubuyekeza umbhalo ngokushesha ukuze ufunde amamodeli, lezi zindlela zibonisa ukuthi izinhlamvu ezingenalutho kakhulu zihlanganisa izixazululo ezinzima.
I-algorithms eyenza kakhulu kungcono ukusebenza kwayo noma ukuvuselelwa kwayo - kuyinto ukunambitheka kwayo. Zihlanganisa ama-assumptions. Zihlanganisa imibuzo emzimbeni yabo. Zihlanganisa i-randomity ku-structure, i-chaos ku-order, futhi i-abstract theory ku-impact ye-real-world.
Ngaphezu kwama-Elegant Mathematical Tools – Lezi 10 Amazing Algorithmsare a testament to human ingenuity.
Ingabe ufuna ukhangela kwami ngokushesha?
Xhumana nathi ku-LinkedInIbhizinisiikhayaizibuyekezo, izibuyekezo, futhi izibuyekezo zokusiza ukunceda iziphumo ezinzima kanye nokufinyelela ehlabathini ye-AI. Ngiyaxolisa lapha:
Ingabe u-tech professional ufuna ukwandisa ubudlelwane wakho ngokusebenzisa ukubhalisa?
Thola i-newsletter yethuWazeTech Audience Acceleratorisibhakabhaka copywriting esebenzayo kanye nezinhlangano yokwakha abadumile ezinikezela amabhizinisi amayuningi ukujabulela nokukhuthaza ukukhula kwabo.