Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3Ni awọn ẹya ti tẹlẹ (1, 2) a ti sọrọ nipa awọn agbaye bi awọn igi, ninu eyi a yoo wo awọn agbaye bi awọn ohun-ọṣọ fọnka.

Sparse orun jẹ iru orun ninu eyiti pupọ julọ awọn iye gba iye kanna.

Ni iṣe, awọn akojọpọ fọnka nigbagbogbo tobi pupọ ti ko si aaye ni gbigba iranti pẹlu awọn eroja kanna. Nitorinaa, o jẹ oye lati ṣe imuse awọn opo fọnka ni iru ọna ti iranti ko padanu lori fifipamọ awọn iye kanna.
Ni diẹ ninu awọn ede siseto, awọn akojọpọ fọnka wa ninu ede funrararẹ, fun apẹẹrẹ ni J, MATLAB. Awọn ede siseto miiran ni awọn ile-ikawe pataki ti o gba ọ laaye lati ṣe imuse wọn. Fun C ++ - Ti ara ati awọn omiiran.

Awọn agbaye jẹ awọn oludije to dara fun imuse awọn akojọpọ fọnka nitori:

  1. Wọn tọju awọn iye ti awọn apa kan nikan ati pe ko tọju awọn iye ti awọn ti ko ṣe alaye;
  2. Ni wiwo fun iraye si iye oju ipade kan jẹ iru pupọ si bii ọpọlọpọ awọn ede siseto ṣe imuse iraye si ohun elo titobi pupọ.
    Set ^a(1, 2, 3)=5
    Write ^a(1, 2, 3)

  3. Agbaye jẹ eto ipele kekere ti iṣẹtọ fun titoju data, nitorinaa o ni awọn abuda iyara to dayato (lati awọn ọgọọgọrun egbegberun si awọn mewa ti awọn miliọnu awọn iṣowo fun iṣẹju kan, da lori ohun elo, wo isalẹ). 1)

Niwọn igba ti agbaye jẹ eto itẹramọṣẹ, o jẹ oye lati ṣẹda awọn akojọpọ fọnka lori wọn nigbati o ti mọ tẹlẹ pe iye Ramu kii yoo to.

Ọkan ninu awọn ohun-ini ti awọn imuse orun fọnka ni lati da iye aiyipada pada ti iraye ba wa si sẹẹli aisọ asọye.

Eyi le ṣee ṣe nipa lilo iṣẹ naa $Gba ninu COS. Apeere yii ṣe akiyesi titobi onisẹpo mẹta kan.

SET a = $GET(^a(x,y,z), defValue)

Awọn iṣẹ-ṣiṣe wo ni o nilo awọn akojọpọ fọnka ati bawo ni agbaye ṣe le ṣe iranlọwọ jade?

Adjacency (Asopọmọra) matrix

Iru matrices ti a lo lati ṣe aṣoju awọn aworan:

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3

O han ni, ti iwọn ti o tobi, awọn odo diẹ sii yoo wa ninu matrix naa. Ti, fun apẹẹrẹ, a ya aworan nẹtiwọọki awujọ kan ki o ṣafihan ni irisi matrix ti o jọra, lẹhinna o yoo fẹrẹ jẹ patapata ti awọn odo, ie. ni yio je kan fọnka orun.

Set ^m(id1, id2) = 1 
Set ^m(id1, id3) = 1 
Set ^m(id1, id4) = 1 
Set ^m(id1) = 3 
Set ^m(id2, id4) = 1 
Set ^m(id2, id5) = 1 
Set ^m(id2) = 2
....

Ni apẹẹrẹ yii, a fipamọ ni agbaye ^m Asopọmọra matrix, bi daradara bi awọn nọmba ti egbegbe ni kọọkan ipade (ti o jẹ ọrẹ pẹlu ẹniti ati awọn nọmba ti awọn ọrẹ).

Ti nọmba awọn eroja ti o wa ninu aworan naa ko ju miliọnu 29 lọ (nọmba yii ni a mu bi ọja ti 8 * o pọju ila iwọn), iyẹn ni, paapaa ọna ti ọrọ-aje diẹ sii lati tọju iru awọn matrices jẹ awọn okun bit, nitori imuse wọn mu awọn ela nla ni ọna pataki kan.

Awọn ifọwọyi pẹlu awọn okun bit ni a ṣe nipasẹ iṣẹ naa $BIT.

; установка бита
SET $BIT(rowID, positionID) = 1
; получение бита
Write $BIT(rowID, positionID)

State ẹrọ orilede tabili

Niwọn igba ti iyaya iyipada ti adaṣe adaṣe kan jẹ ayaworan lasan, lẹhinna tabili iyipada ti adaṣe adaṣe jẹ matrix isunmọ kanna ti a jiroro loke.

Cellular automata

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3

Awọn julọ olokiki cellular automaton ni ere "Life", eyiti, nitori awọn ofin rẹ (nigbati sẹẹli kan ba ni ọpọlọpọ awọn aladugbo, o ku) jẹ apẹrẹ ti o ṣoki.

Stephen Wolfram gbagbọ pe cellular automata jẹ titun aaye ti Imọ. Ni 2002, o ṣe atẹjade iwe oju-iwe 1280 kan, Iru Imọ Titun Titun, ninu eyiti o jiyan ni gbooro pe awọn ilọsiwaju ninu cellular automata ko ni iyasọtọ, ṣugbọn o duro ati pe o ni awọn ipa nla fun gbogbo awọn agbegbe ti imọ-jinlẹ.

O ti fihan pe eyikeyi algorithm ti o ṣiṣẹ lori kọnputa le ṣe imuse nipa lilo adaṣe cellular kan. Cellular automata ni a lo lati ṣe apẹẹrẹ awọn agbegbe ti o ni agbara ati awọn ọna ṣiṣe, lati yanju awọn iṣoro algorithmic ati fun awọn idi miiran.

Ti a ba ni aaye nla kan ati pe a nilo lati ṣe igbasilẹ gbogbo awọn ipinlẹ agbedemeji ti cellular automaton, lẹhinna o jẹ oye lati lo awọn agbaye.

Aworan aworan

Ohun akọkọ ti o wa si ọkan mi nigbati o ba de si lilo awọn akojọpọ fọnka jẹ awọn iṣẹ ṣiṣe aworan.

Gẹgẹbi ofin, aaye ṣofo pupọ wa lori awọn maapu. Ti maapu naa ba jẹ aṣoju bi awọn piksẹli nla, lẹhinna 71% ti awọn piksẹli Earth yoo gba nipasẹ okun. fọnka orun. Ati pe ti o ba lo awọn iṣẹ ọwọ eniyan nikan, lẹhinna aaye ofo yoo jẹ diẹ sii ju 95%.

Nitoribẹẹ, ko si ẹnikan ti o tọju awọn maapu ni irisi awọn ohun elo raster;
Ṣugbọn kini awọn maapu fekito? Eyi jẹ iru fireemu ati awọn polylines ati awọn polygons ti o ni awọn aaye.
Ni pataki aaye data ti awọn aaye ati awọn asopọ laarin wọn.

Ọkan ninu awọn iṣẹ apinfunni ti o ni itara julọ ni iṣẹ apinfunni Gaia Telescope lati ṣe maapu galaxy wa. Lọ́nà ìṣàpẹẹrẹ, ìṣùpọ̀ ìràwọ̀ wa, gẹ́gẹ́ bí gbogbo àgbáálá ayé, jẹ́ àkópọ̀ àkópọ̀ tẹ́lẹ̀: àwọn àfofofo ńláńlá nínú èyí tí àwọn àyè kéékèèké tí ó ṣọ̀wọ́n wà – ìràwọ̀. Aaye ofo jẹ 99,999999…….%. Lati tọju maapu ti galaxy wa, a yan aaye data agbaye kan - Caché.

Emi ko mọ eto gangan ti awọn agbaye ni iṣẹ akanṣe yii, Mo le ro pe o jẹ nkan ti o jọra si:

Set ^galaxy(b, l, d) = 1; Номер звезды по каталогу, если есть
Set ^galaxy(b, l, d, "name") = "Sun"
Set ^galaxy(b, l, d, "type") = "normal" ; варианты blackhole, quazar, red_dwarf и т.д.
Set ^galaxy(b, l, d, "weight") = 14E50
Set ^galaxy(b, l, d, "planetes") = 7
Set ^galaxy(b, l, d, "planetes", 1) = "Mercury"
Set ^galaxy(b, l, d, "planetes", 1, weight) = 1E20
...

Nibo b, l, d wa galactic ipoidojuko latitude, ìgùn ati ijinna si Oorun.

Eto irọrun ti awọn agbaye gba ọ laaye lati ṣafipamọ eyikeyi awọn abuda pataki ti awọn irawọ ati awọn aye-aye, nitori awọn ipilẹ lori agbaye jẹ ero-kere.

Lati tọju maapu agbaye wa, Caché ti yan kii ṣe fun irọrun rẹ nikan, ṣugbọn tun fun agbara rẹ lati ṣafipamọ ṣiṣan ti data ni iyara, lakoko ti o ṣẹda atọka agbaye fun awọn wiwa iyara.

Ti a ba pada si Earth, lẹhinna a ṣẹda awọn iṣẹ akanṣe lori awọn agbaye ṢiiStreetMap XAPI ati orita ti OpenStreetMap - FOSM.

Laipe lori hackathon kaṣe Awọn atọka geospatial ti wa ni imuse Geospatial. A n duro de nkan kan lati ọdọ awọn onkọwe pẹlu awọn alaye imuse.

Imuse ti awọn atọka aaye lori agbaye ni OpenStreetMap XAPI

Awọn aworan ti o ya lati igbejade yii.

Gbogbo agbaiye ti pin si awọn onigun mẹrin, lẹhinna iha-squares, ati awọn ipin-ipin si awọn agbegbe-ipin, ati bẹbẹ lọ. Ni gbogbogbo, a gba eto akosoagbasomode fun titoju eyiti awọn agbaye ti ṣẹda.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3

Ni eyikeyi akoko, a le fẹẹrẹ lesekese beere onigun mẹrin ti o fẹ tabi ko o, ati gbogbo awọn iha-square yoo tun jẹ pada tabi nu.

Ilana ti o jọra lori agbaye le ṣee ṣe ni awọn ọna pupọ.

Aṣayan 1:

Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 1) = idПервойТочки
Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 2) = idВторойТочки
...

Aṣayan 2:

Set ^m('abacdabcdabacdabcda', 1) = idПервойТочки
Set ^m('abacdabcdabacdabcda', 2) = idВторойТочки
...

Ni awọn ọran mejeeji, ko nira lati lo COS/M lati beere awọn aaye ti o wa ni square ti eyikeyi ipele. Yoo rọrun diẹ lati nu awọn ege onigun mẹrin ti aaye ni ipele eyikeyi ni aṣayan akọkọ, ṣugbọn eyi kii ṣe pataki.

Apeere ti ọkan ninu awọn onigun mẹrin ipele isalẹ:

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3

Ati pe nibi ni ọpọlọpọ awọn agbaye lati iṣẹ akanṣe XAPI: aṣoju atọka lori agbaye:

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3

agbaye ^ona lo lati fi awọn ojuami polylines (awọn ọna, awọn odo kekere, ati bẹbẹ lọ) ati awọn polygons (awọn agbegbe ti a ti pa: awọn ile, awọn igbo, ati bẹbẹ lọ).

Iyasọtọ ti o ni inira ti lilo awọn ohun elo fọnka lori agbaye.

  1. A tọju awọn ipoidojuko ti awọn nkan kan ati awọn ipinlẹ wọn (aworan agbaye, cellular automata)
  2. A tọju awọn matrices fọnka.

Fun ọran 2) nigbati o ba n beere ipoidojuko kan pato nibiti a ko ti yan ipin kan ni iye, a gbọdọ gba iye ti eroja fọnka fọnka.

Awọn imoriri ti a gba nigba titoju multidimensional matrices ni globals

Yọọ kuro ni kiakia ati/tabi yan awọn ege aaye ti o jẹ ọpọlọpọ awọn ori ila, awọn ọkọ ofurufu, awọn cubes, ati bẹbẹ lọ. Fun awọn iṣẹlẹ nibiti o ti lo awọn atọka odidi, agbara lati yara yọkuro ati/tabi mu awọn ṣoki aaye ti o jẹ ọpọlọpọ awọn ori ila, awọn ọkọ ofurufu, cubes, ati bẹbẹ lọ le wulo.

egbe pa a le pa boya kan nikan ano tabi kana, tabi paapa ohun gbogbo ofurufu. Ṣeun si awọn ohun-ini ti agbaye, eyi n ṣẹlẹ ni iyara pupọ - awọn ẹgbẹẹgbẹrun awọn akoko yiyara ju yiyọ-ero-nipasẹ-eroja lọ.

Nọmba naa ṣe afihan titobi onisẹpo mẹta ni agbaye kan ^a ati awọn oriṣiriṣi awọn piparẹ.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3

Lati yan awọn ege aaye nipa lilo awọn atọka ti a mọ, o le lo aṣẹ naa Dapọ.

Yiyan iwe matrix kan sinu oniyipada Ọwọn:

; Зададим трёхмерный разреженный массив 3x3x3
Set ^a(0,0,0)=1,^a(2,2,0)=1,^a(2,0,1)=1,^a(0,2,1)=1,^a(2,2,2)=1,^a(2,1,2)=1
Merge Column = ^a(2,2)
; Выведем переменную Column
Zwrite Column

Ipari:

Column(0)=1
Column(2)=1

Ohun ti o ni iyanilenu nipa oniyipada Ọwọn ni pe a tun ni opo fọnka, eyiti o tun gbọdọ wọle nipasẹ $Gba, niwon awọn iye aiyipada ko ni ipamọ ninu rẹ.

Yiyan awọn ege aaye tun le ṣee ṣe nipasẹ eto kekere kan nipa lilo iṣẹ naa $Pase. Eyi jẹ irọrun paapaa lori awọn aaye ti awọn atọka wọn ko ni iwọn (aworan aworan).

ipari

Awọn akoko lọwọlọwọ duro awọn iṣẹ-ṣiṣe ifẹ agbara titun. Awọn aworan le jẹ ti awọn ọkẹ àìmọye ti awọn inaro, awọn maapu ti o ni awọn ọkẹ àìmọye awọn aaye, ati pe diẹ ninu le paapaa fẹ lati ṣiṣẹ agbaye tiwọn lori cellular automata (1, 2).

Nigbati iwọn didun ti data lati awọn akojọpọ fọnka ko le baamu si Ramu mọ, ṣugbọn o nilo lati ṣiṣẹ pẹlu wọn, lẹhinna o tọ lati gbero iṣeeṣe ti imuse awọn iṣẹ akanṣe lori agbaye ati COS.

Mo dupe fun ifetisile re! A n duro de awọn ibeere ati awọn ifẹ rẹ ninu awọn asọye.

be: Nkan yii ati awọn asọye mi si rẹ jẹ ero mi ati pe ko ni ibatan si ipo osise ti InterSystems Corporation.

orisun: www.habr.com

Fi ọrọìwòye kun