He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3

He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3Ma nā ʻāpana mua (1, 2) ua kamaʻilio mākou e pili ana i ka honua ma ke ʻano he lāʻau, ma kēia e nānā mākou i nā honua ma ke ʻano he ʻano liʻiliʻi.

ʻAi ʻAʻohe ʻO ia ke ʻano o ka array kahi e lawe ai ka hapa nui o nā waiwai i ka waiwai like.

I ka hoʻomaʻamaʻa ʻana, ʻoi aku ka nui o nā arrays sparse a ʻaʻohe kumu o ka noho ʻana i ka hoʻomanaʻo me nā mea like. No laila, kūpono ke hoʻokō ʻana i nā ʻāpana liʻiliʻi ma ke ʻano i pau ʻole ai ka hoʻomanaʻo i ka mālama ʻana i nā waiwai like.
Ma kekahi mau ʻōlelo hoʻolālā, ua hoʻokomo ʻia nā papa kuhikuhi i loko o ka ʻōlelo ponoʻī, no ka laʻana ma J, MATLAB. Loaʻa i nā ʻōlelo papahana ʻē aʻe nā hale waihona puke kūikawā e ʻae iā ʻoe e hoʻokō iā lākou. No C++ - Ponoi a me kekahi poʻe'ē aʻe.

He mau moho maikaʻi nā Globals no ka hoʻokō ʻana i nā ʻāpana liʻiliʻi no ka mea:

  1. Mālama lākou i nā waiwai o kekahi mau nodes a ʻaʻole mālama i nā waiwai o nā mea i wehewehe ʻole ʻia;
  2. ʻO ke kikowaena no ke komo ʻana i ka waiwai o ka node e like loa me ka nui o nā ʻōlelo hoʻonohonoho e hoʻokō i ke komo ʻana i kahi element array multidimensional.
    Set ^a(1, 2, 3)=5
    Write ^a(1, 2, 3)

  3. He haʻahaʻa haʻahaʻa haʻahaʻa ka honua no ka mālama ʻana i ka ʻikepili, no laila loaʻa iā ia nā hiʻohiʻona wikiwiki (mai nā haneli haneli a i ʻumi miliona o nā kālepa i kēlā me kēia kekona, e pili ana i ka hāmeʻa, ʻike ma lalo). 1)

No ka mea he ʻano hoʻomau ka honua, kūpono ke hana ʻana i nā ʻāpana liʻiliʻi ma luna o lākou ke ʻike mua ʻia ʻaʻole lawa ka nui o ka RAM.

ʻO kekahi o nā waiwai o nā hoʻokō sparse array ʻo ia ka hoʻihoʻi ʻana i kekahi waiwai paʻamau inā loaʻa kahi komo i kahi cell undefined.

Hiki ke hoʻokō ʻia kēia me ka hoʻohana ʻana i ka hana $GET ma COS. Ke noʻonoʻo nei kēia laʻana i kahi ʻāpana 3-dimensional.

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

He aha nā hana e pono ai i nā ʻāpana liʻiliʻi a pehea e kōkua ai ka honua?

Matrix pili (pilina).

ʻO ia mau matrices hoʻohana ʻia e hōʻike i nā pakuhi:

He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3

ʻIke loa, ʻoi aku ka nui o ka pakuhi, ʻoi aku ka nui o nā zeros i loko o ka matrix. Inā, no ka laʻana, lawe mākou i kahi kiʻi pūnaewele pūnaewele a hōʻike iā ia ma ke ʻano o kahi matrix like, a laila kokoke loa ia i nā zeros, i.e. e lilo i kakaikahi.

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
....

Ma kēia laʻana, mālama mākou i ka honua ^m matrix connectivity, a me ka helu o nā ʻaoʻao ma kēlā me kēia node (ʻo wai nā hoaaloha me wai a me ka helu o nā hoaaloha).

Inā ʻaʻole ʻoi aku ka nui o nā mea i ka pakuhi ma mua o 29 miliona (ua lawe ʻia kēia helu ma ke ʻano he huahana o 8 * nui laina kiʻekiʻe), ʻo ia hoʻi, ʻo kahi ala ʻoi aku ka ʻoi aku ka maikaʻi o ka mālama ʻana i nā matrices he mau kaula liʻiliʻi, no ka mea, ʻo kā lākou hoʻokō ʻana e hoʻonui i nā āpau nui ma kahi ala kūikawā.

Hana ʻia nā hana me nā kaula bit e ka hana $BIT.

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

Papa hoʻololi mīkini mokuʻāina

No ka mea, he pakuhi ma'amau ka pakuhi ho'ololi o ka automaton palena, a laila, 'o ka papa ho'ololi o ka automaton palena ka matrix pili like i kūkākūkā 'ia ma luna.

Automata kelepona

He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3

ʻO ka automaton kelepona kaulana loa pāʻani "Life", ʻo ia, ma muli o kāna mau lula (inā he nui nā hoalauna o ke kelepona, make ia) he ʻano liʻiliʻi.

Manaʻo ʻo Stephen Wolfram ʻo ka cellular automata kahua ʻepekema hou. I ka makahiki 2002, ua paʻi ʻo ia i kahi puke 1280 ʻaoʻao, A New Kind of Science, kahi āna i hoʻopaʻapaʻa nui ai ʻaʻole i kaʻawale ka holomua o ka automata cellular, akā e hoʻomau a loaʻa nā hopena nui i nā wahi ʻepekema āpau.

Ua hōʻoia ʻia e hiki ke hoʻokō ʻia kekahi algorithm e hoʻokō ʻia ma ke kamepiula me ka hoʻohana ʻana i kahi automaton cellular. Hoʻohana ʻia ka automata kelepona e hoʻohālike i nā kaiapuni ikaika a me nā ʻōnaehana, e hoʻoponopono i nā pilikia algorithmic a no nā kumu ʻē aʻe.

Inā loaʻa iā mākou kahi kahua nui a pono mākou e hoʻopaʻa i nā mokuʻāina waena a pau o kahi automaton cellular, a laila kūpono ke hoʻohana ʻana i ka honua.

kiʻi kiʻi kiʻi

ʻO ka mea mua i hiki mai i koʻu noʻonoʻo i ka wā e hoʻohana ai i nā arrays sparse ʻo ia ka hana palapala ʻāina.

E like me ke kānāwai, nui ka hakahaka ma nā palapala ʻāina. Inā hōʻike ʻia ka palapala ʻāina e like me nā pika nui, a laila 71% o nā pika o ka Honua e noho ʻia e ke kai. ʻAha ʻokoʻa. A inā hoʻohana wale ʻoe i nā hana a nā lima kanaka, a laila ʻoi aku ka nui o ka hakahaka ma mua o 95%.

ʻOiaʻiʻo, ʻaʻohe mea mālama i nā palapala ʻāina ma ke ʻano o ka raster arrays; hoʻohana ʻia kahi hōʻike vector.
Akā he aha nā palapala ʻāina vector? He ʻano kiʻi kēia a me nā polylines a me nā polygons i loaʻa nā kiko.
ʻO ka mea nui he waihona o nā kiko a me nā pilina ma waena o lākou.

ʻO kekahi o nā mikiona palapala kiʻi nui loa ʻo Gaia Telescope mission e palapala i kā mākou galaxy. Ma ka ʻōlelo hoʻohālikelike, ʻo kā mākou galaxy, e like me ke ao holoʻokoʻa, he ʻano ʻokoʻa kaʻawale: nā ākea nui o ka hakahaka i loaʻa nā wahi liʻiliʻi liʻiliʻi - nā hōkū. He 99,999999 ka hakahaka o ka hakahaka. No ka mālama ʻana i ka palapala ʻāina o kā mākou galaxy, ua koho ʻia kahi waihona honua - Caché.

ʻAʻole maopopo iaʻu ke ʻano kikoʻī o ka honua i kēia papahana, hiki iaʻu ke manaʻo he mea like ia me:

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
...

Aia ʻo b, l, d huikau galactic latitu, longitude a me ka mamao i ka Lā.

ʻO ke ʻano maʻalahi o ka honua e hiki ai iā ʻoe ke mālama i nā ʻano pono o nā hōkū a me nā hōkū, no ka mea, ʻaʻole i hoʻolālā nā kumu o ka honua.

No ka mālama ʻana i ka palapala ʻāina o ko kākou ao, ua koho ʻia ʻo Caché ʻaʻole wale no kona maʻalahi, akā no kona hiki ke mālama i kahi kahawai o ka ʻikepili me ka wikiwiki, ʻoiai e hana ana i nā index globals no ka huli wikiwiki.

Inā hoʻi mākou i ka Honua, a laila ua hana ʻia nā papahana cartographic ma nā honua OpenStreetMap XAPI a me kahi ʻāpana o OpenStreetMap - FOSM.

I kēia mau lā ma hackathon Caché Ua hoʻokō ʻia nā ʻōlelo kuhikuhi geospatial ʻO Geospatial. Ke kali nei mākou i kahi ʻatikala mai nā mea kākau me nā kikoʻī hoʻokō.

Ka hoʻokō ʻana i nā kuhikuhi kikoʻī ma kahi honua ma OpenStreetMap XAPI

Nā kiʻi i lawe ʻia mai keia hoikeike.

Hoʻokaʻawale ʻia ka honua holoʻokoʻa i nā ʻāpana, a laila nā ʻāpana, a me nā ʻaoʻao i loko o nā ʻāpana, a pēlā aku. Ma keʻano laulā, loaʻa iā mākou kahi hierarchical structure no ka mālama ʻana i nā honua i hana ʻia.

He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3

I kēlā me kēia manawa, hiki iā mākou ke noi koke i ka huinahā i makemake ʻia a i ʻole e hoʻomaʻemaʻe ʻia, a e hoʻihoʻi ʻia nā ʻāpana ʻāpana āpau a pau.

Hiki ke hoʻokō ʻia kahi papahana like ma ka honua ma nā ʻano he nui.

Kōkua 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ВторойТочки
...

Kōkua 2:

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

Ma nā hihia ʻelua, ʻaʻole paʻakikī ka hoʻohana ʻana i ka COS/M e noi i nā helu i loaʻa i kahi huinahā o kēlā me kēia pae. E ʻoi aku ka maʻalahi o ka hoʻomaʻemaʻe ʻana i nā ʻāpana huinahā like i kēlā me kēia pae i ka koho mua, akā ʻaʻole pono kēia.

He laʻana o kekahi o nā ʻāpana haʻahaʻa haʻahaʻa:

He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3

A eia kekahi mau honua mai ka papahana XAPI: hōʻike ʻana i kahi papa kuhikuhi ma nā honua:

He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3

puni honua ^ ala hoʻohana ʻia e mālama i nā helu polylines (nā alanui, nā muliwai liʻiliʻi, a me nā mea'ē aʻe) a me nā polygons (nā wahi pani: nā hale, nā ululāʻau, a pēlā aku).

ʻO ka hoʻokaʻawale ʻana o ka hoʻohana ʻana i nā ʻāpana liʻiliʻi ma ka honua.

  1. Mālama mākou i nā hoʻonohonoho o kekahi mau mea a me ko lākou mau mokuʻāina (mapping, cellular automata)
  2. Mālama mākou i nā matrices liʻiliʻi.

No ka hihia 2) i ke noi ʻana i kahi hoʻonohonoho kikoʻī kahi i hāʻawi ʻole ʻia ai ka mea waiwai, pono mākou e kiʻi i ka waiwai o ka mea paʻamau sparse array.

ʻO nā bonus i loaʻa iā mākou i ka wā e mālama ai i nā matrices multidimensional i ka honua

E wehe koke a/a i ʻole e koho i nā ʻāpana ākea he mau lālani, mokulele, cubes, etc. No nā hihia kahi i hoʻohana ʻia ai nā helu helu helu, hiki ke hoʻohana i ka hiki ke wehe a/a i ʻole kiʻi i nā ʻāpana o nā wahi he nui o nā lālani, nā mokulele, nā cubes, a me nā mea ʻē aʻe.

hui pepehi hiki iā mākou ke holoi i kahi mea hoʻokahi a i ʻole lālani, a i ʻole kahi mokulele holoʻokoʻa. Mahalo i nā waiwai o ke ao holoʻokoʻa, hiki koke kēia - he mau kaukani manawa ʻoi aku ka wikiwiki ma mua o ka wehe ʻana i ka element-by-element.

Hōʻike ke kiʻi i kahi ʻāpana ʻekolu i loko o kahi honua ^a a me nā ʻano holoi ʻokoʻa.

He mau pahi kaua waiwai ka honua no ka mālama ʻana i ka ʻikepili. ʻO nā ʻāpana liʻiliʻi. Mahele 3

No ke koho ʻana i nā ʻāpana ākea me ka hoʻohana ʻana i nā kuhikuhi i ʻike ʻia, hiki iā ʻoe ke hoʻohana i ke kauoha Hoʻohui.

Ke koho ʻana i kahi kolamu matrix i loko o ka hoʻololi Column:

; Зададим трёхмерный разреженный массив 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

Panina:

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

He aha ka mea hoihoi e pili ana i ka Column variable ʻo ia hoʻi mākou i kahi ʻāpana liʻiliʻi, pono ke komo ʻia ma o $GET, no ka mea ʻaʻole mālama ʻia nā waiwai paʻamau i loko.

Hiki ke hana ʻia ke koho ʻana i nā ʻāpana ākea ma o kahi papahana liʻiliʻi me ka hoʻohana ʻana i ka hana $Kauoha. He mea maʻalahi kēia ma nā hakahaka i helu ʻole ʻia nā helu (cartography).

hopena

ʻO ka manawa o kēia manawa ke hana nei i nā hana ambiuous hou. Hiki ke hana ʻia nā kiʻi me nā piliona o nā vertices, nā palapala ʻāina i hana ʻia me nā piliona o nā kiko, a makemake paha kekahi e holo i ko lākou honua ponoʻī ma ka cellular automata (1, 2).

Ke hiki ʻole ke hoʻokomo hou ʻia ka nui o ka ʻikepili mai nā ʻāpana liʻiliʻi i ka RAM, akā pono ʻoe e hana pū me lākou, a laila pono e noʻonoʻo i ka hiki ke hoʻokō i nā papahana like ma ka honua a me COS.

Mahalo i kou nānā ʻana! Ke kali nei mākou i kāu mau nīnau a me kāu mau manaʻo ma nā ʻōlelo.

Akahana: ʻO kēia ʻatikala a me kaʻu mau ʻōlelo i ia mea ʻo koʻu manaʻo a ʻaʻohe pili i ke kūlana kūhelu o InterSystems Corporation.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka