ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3

ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3በቀደሙት ክፍሎች1, 2) ስለ ዓለም አቀፋዊ ነገሮች እንደ ዛፍ ተነጋግረናል፣ በዚህ ውስጥ ግሎባልን እንደ ተራ ተራ ተራሮች እንቆጥረዋለን።

ትንሽ ድርድር አብዛኛዎቹ እሴቶች ተመሳሳይ እሴት የሚወስዱበት የድርድር አይነት ነው።

በተግባራዊ ሁኔታ ፣ ብዙውን ጊዜ እንደዚህ ያሉ ግዙፍ ትናንሽ ድርድሮች አሉ ፣ እናም ትውስታን ከተመሳሳዩ አካላት ጋር መያዙ ምንም ትርጉም የለውም። ስለዚህ የማስታወስ ችሎታ ተመሳሳይ እሴቶችን ለማከማቸት በማይውልበት መንገድ አነስተኛ ድርድሮችን መተግበር ምክንያታዊ ነው።
በአንዳንድ የፕሮግራም አወጣጥ ቋንቋዎች፣ ጥቅጥቅ ያሉ ድርድሮች የቋንቋው አካል ናቸው፣ ለምሳሌ በጄ, MATLAB. ሌሎች የፕሮግራም አወጣጥ ቋንቋዎች እርስዎ እንዲተገብሯቸው የሚፈቅዱ ልዩ ቤተ መጻሕፍት አሏቸው። ለ C++ - ኢጅን እና ሌሎች.

ግሎባልስ አነስተኛ ድርድሮችን ለመተግበር ጥሩ እጩዎች ናቸው ምክንያቱም፡-

  1. እነሱ የተገለጹ አንጓዎችን ብቻ ያከማቻሉ እና ያልተገለጹትን እሴቶች አያከማቹም ፣
  2. የመስቀለኛ መንገድን ዋጋ ለማግኘት በይነገጽ ስንት የፕሮግራሚንግ ቋንቋዎች የባለብዙ ልኬት አደራደር አባል መዳረሻን እንደሚተገበሩ በጣም ተመሳሳይ ነው።
    Set ^a(1, 2, 3)=5
    Write ^a(1, 2, 3)

  3. ግሎባል መረጃን ለማከማቸት በጣም ዝቅተኛ ደረጃ መዋቅር ነው, ስለዚህ, አስደናቂ የፍጥነት ባህሪያት አሏቸው (ከመቶ ሺዎች እስከ አስር ሚሊዮኖች የሚቆጠር ግብይቶች በሰከንድ, እንደ ሃርድዌር, ከታች ይመልከቱ). 1)

ዓለም አቀፋዊው ቀጣይነት ያለው መዋቅር ስለሆነ, የ RAM መጠን በቂ እንደማይሆን አስቀድሞ ሲታወቅ በእነሱ ላይ ትንሽ ድርድር ማድረግ ምክንያታዊ ነው.

ከጠባብ ድርድር አተገባበር ባህሪያት አንዱ መዳረሻው ወደ ላልተገለጸ ሕዋስ ከሆነ የተወሰነ ነባሪ እሴት መመለስ ነው።

ይህንን ተግባር በመጠቀም ሊከናወን ይችላል $GET በ COS ውስጥ. በዚህ ምሳሌ, ባለ 3-ልኬት ድርድር ግምት ውስጥ ይገባል.

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

የትኛዎቹ ተግባራት ጥቃቅን ድርድሮችን ይፈልጋሉ እና ግሎባልስ እንዴት ሊረዳ ይችላል?

ተያያዥነት (ግንኙነት) ማትሪክስ

እንደዚህ ያሉ ማትሪክስ ግራፎችን ለመወከል ጥቅም ላይ ይውላሉ:

ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3

በግልጽ ለማየት እንደሚቻለው, ግራፉ ትልቅ, ብዙ ዜሮዎች በማትሪክስ ውስጥ ይሆናሉ. ለምሳሌ የማህበራዊ አውታረ መረብን ግራፍ ወስደን በተመሳሳዩ ማትሪክስ መልክ እንወክላለን, ከዚያ ሁሉም ማለት ይቻላል ዜሮዎችን ያካትታል, ማለትም. ትንሽ ድርድር ይሆናል።

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

በዚህ ምሳሌ, በአለምአቀፍ ውስጥ እናቆጥባለን ^m የግንኙነት ማትሪክስ, እንዲሁም በእያንዳንዱ መስቀለኛ መንገድ ላይ ያሉት የጠርዝ ብዛት (ከማን ጋር ጓደኛ እና የጓደኞች ብዛት ማን ነው).

በግራፉ ውስጥ ያሉት ንጥረ ነገሮች ብዛት ከ 29 ሚሊዮን ያልበለጠ ከሆነ (ይህ ቁጥር እንደ 8 * ምርት ይወሰዳል) ከፍተኛው የመስመር መጠን), ማለትም ትላልቅ ክፍተቶች በአፈፃፀማቸው ውስጥ በልዩ ሁኔታ የተመቻቹ ስለሆኑ እንደነዚህ ያሉትን ማትሪክስ ለማከማቸት የበለጠ ኢኮኖሚያዊ መንገድ ትንሽ ገመዶች ነው።

ከቢት ሕብረቁምፊዎች ጋር መጠቀሚያዎች በተግባሩ ይከናወናሉ $ ቢት.

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

የስቴት ማሽን ዝላይ ጠረጴዛ

የአንድ የተወሰነ አውቶሜትድ ሽግግር ግራፍ ተራ ግራፍ ስለሆነ፣ ከዚያ በላይ የተወያየው የአንድ የተወሰነ አውቶሜት ሽግግር ሰንጠረዥ ተመሳሳይ የአጃቢ ማትሪክስ ነው።

ሴሉላር አውቶማቲክ

ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3

በጣም ታዋቂው ሴሉላር አውቶሜትድ ጨዋታ "ሕይወት", እሱም በህጎቹ ምክንያት (አንድ ሕዋስ ብዙ ጎረቤቶች ሲኖሩት, ይሞታል) ትንሽ ድርድር ነው.

እስጢፋኖስ Wolfram, ሴሉላር አውቶማቲክ እንደሆኑ ያምናል አዲስ የሳይንስ መስክ. እ.ኤ.አ. በ 2002 ፣ በ 1280 ገፆች አዲስ ዓይነት ሳይንስን አሳተመ ፣ በሴሉላር አውቶሜትስ ውስጥ ያሉ እድገቶች የተገለሉ አይደሉም ፣ ግን በጣም የተረጋጋ እና ለሁሉም የሳይንስ ዘርፎች ትልቅ ጠቀሜታ እንዳለው በሰፊው ይከራከራሉ።

በኮምፒዩተር ላይ የሚተገበር ማንኛውም አልጎሪዝም ሴሉላር አውቶሜትን በመጠቀም ሊተገበር እንደሚችል ተረጋግጧል። ሴሉላር አውቶሜትቶች ተለዋዋጭ አካባቢዎችን እና ስርዓቶችን ለመቅረጽ, አልጎሪዝም ችግሮችን ለመፍታት እና ለሌሎች ዓላማዎች ያገለግላሉ.

ትልቅ መስክ ካለን እና ሁሉንም የሴሉላር አውቶሜትድ መካከለኛ ግዛቶችን መመዝገብ ያስፈልገናል, ከዚያም ግሎባልስን መጠቀም በጣም ምክንያታዊ ነው.

ካርቶግራፊ

አነስተኛ ድርድሮችን ስጠቀም ወደ አእምሮዬ የሚመጣው የመጀመሪያው ነገር የካርታ ስራዎችን ነው።

እንደ አንድ ደንብ, በካርዶቹ ላይ ብዙ ባዶ ቦታ አለ. ካርታው እንደ ትልቅ ፒክሰሎች ከተወከለ 71% የምድር ፒክስሎች በውቅያኖስ ይያዛሉ። ትንሽ ድርድር። እና የሰው እጅ ስራዎችን ብቻ ተግባራዊ ካደረጉ, ከዚያ ከ 95% በላይ ባዶ ቦታ ይኖራል.

እርግጥ ነው, ማንም ካርታዎችን እንደ ራስተር ድርድር አያከማችም, የቬክተር ውክልና ጥቅም ላይ ይውላል.
ግን የቬክተር ካርታዎች ምንድን ናቸው? ይህ የፍሬም አይነት እና ፖሊላይን እና ፖሊጎኖች ነጥቦችን ያቀፈ ነው።
በእውነቱ በመካከላቸው የነጥቦች እና ግንኙነቶች የውሂብ ጎታ።

በጣም ትልቅ ከሚባሉት የካርታ ስራዎች አንዱ የጋይያ ቴሌስኮፕ የካርታ ስራ ወደ ጋላክሲያችን ነው። በምሳሌያዊ አነጋገር፣ የእኛ ጋላክሲ፣ ልክ እንደ አጽናፈ ዓለማት ሁሉ፣ ቀጣይነት ያለው ትንሽ ድርድር ነው፡ ሰፊ ባዶነት፣ በውስጡም ብርቅዬ ትናንሽ ነጠብጣቦች - ኮከቦች። ባዶ ቦታ 99,999999…….%. የኛን ጋላክሲ ካርታ ለማከማቸት በአለምአቀፍ ደረጃ ላይ ያለ የውሂብ ጎታ - ካሼ ተመርጧል።

በዚህ ፕሮጀክት ውስጥ የዓለማቀፉን ትክክለኛ መዋቅር አላውቅም፣ እሱ ከሚከተለው ጋር ተመሳሳይ እንደሆነ መገመት እችላለሁ፡-

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

b, l, d ያሉበት ጋላክቲክ ኬንትሮስን፣ ኬንትሮስን ያስተባብራል። እና ከፀሐይ ርቀት.

የዓለማቀፉ ተለዋዋጭ መዋቅር ማንኛውንም የተፈለገውን የከዋክብትን እና የፕላኔቶችን ባህሪያት እንዲያድኑ ይፈቅድልዎታል, ምክንያቱም በአለምአቀፍ ደረጃ ላይ ያሉት መሠረቶች ንድፍ የሌላቸው ናቸው.

የአጽናፈ ዓለማችንን ካርታ ለማከማቸት፣ ካቼ የተመረጠው በተለዋዋጭነቱ ብቻ ሳይሆን የውሂብ ዥረት በፍጥነት ለማከማቸት በመቻሉ፣ በመንገዱ ላይ ፈጣን ፍለጋዎችን ለማግኘት ኢንዴክስ ግሎባልን በመፍጠር ነው።

ወደ ምድር ከተመለስን, ከዚያም የካርታግራፊ ፕሮጀክቶች በአለም አቀፍ ደረጃ ተፈጥረዋል የStreetMap XAPI እና የ OpenStreetMap ሹካ - FOSM.

በቅርቡ Hackathon መሸጎጫ የጂኦስፓሻል ኢንዴክሶች ተተግብረዋል geospatial. የአተገባበር ዝርዝሮችን ከደራሲዎች ጋር መጣጥፎችን እየጠበቅን ነው።

በOpenStreetMap XAPI ላይ የቦታ ኢንዴክሶችን በአለምአቀፍ ደረጃ መተግበር

የተነሱ ምስሎች ይህ አቀራረብ.

መላው ሉል በካሬዎች, ከዚያም በንዑስ-ካሬዎች እና በንዑስ-ካሬዎች, ወዘተ. በአጠቃላይ, የትኞቹ ግሎባልስ እንደተፈጠሩ ለማከማቸት የተዋረድ መዋቅር እናገኛለን.

ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3

በማንኛውም ጊዜ፣ ወዲያውኑ ማለት ይቻላል የምንፈልገውን ካሬ ልንጠይቀው ወይም ልናጸዳው እንችላለን፣ ሁሉም ንዑስ ካሬዎች እንዲሁ ይመለሳሉ ወይም ይጸዳሉ።

በአለምአቀፍ ደረጃ ላይ ያለው እንዲህ ዓይነቱ እቅድ በበርካታ መንገዶች ሊተገበር ይችላል.

አማራጭ 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ВторойТочки
...

አማራጭ 2:

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

በሁለቱም ሁኔታዎች በ COS/M ላይ በየትኛውም ደረጃ ካሬ ውስጥ የሚገኙ ነጥቦችን ለመጠየቅ አስቸጋሪ አይደለም. በመጀመሪያው አማራጭ ውስጥ የካሬ ክፍሎችን ከማንኛውም ደረጃ ለማጽዳት ትንሽ ቀላል ይሆናል, ነገር ግን ይህ በጣም አልፎ አልፎ አስፈላጊ ነው.

የታችኛው ደረጃ ካሬዎች የአንዱ ምሳሌ፡-

ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3

እና ከXAPI ፕሮጀክት የተወሰኑ አለምአቀፋዊ ነገሮች እዚህ አሉ፡ የአለም አቀፍ መረጃ ጠቋሚ፡

ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3

ዓለም አቀፍ ^ መንገድ ነጥቦችን ለማከማቸት ጥቅም ላይ ይውላል ፖሊላይን (መንገዶች, ጥልቀት የሌላቸው ወንዞች, ወዘተ) እና ፖሊጎኖች (የተዘጉ ቦታዎች: ሕንፃዎች, ደኖች, ወዘተ.).

በአለምአቀፍ ደረጃ ላይ ያሉ ጥቃቅን ድርድሮች አጠቃቀም ግምታዊ ምደባ።

  1. የአንዳንድ ነገሮችን እና የግዛቶቻቸውን መጋጠሚያዎች እናከማቻለን (ካርታ ፣ ሴሉላር አውቶማቲክ)
  2. ጥቃቅን ማትሪክስ እናከማቻለን.

ለጉዳይ 2) ኤለመንቱ እሴት ያልተመደበበት የተወሰነ መጋጠሚያ ስንጠይቅ፣ የጠባቡ ድርድር ንጥረ ነገር በነባሪነት ዋጋ ማግኘት አለብን።

ሁለገብ ማትሪክስ በአለምአቀፍ ደረጃ ስናከማች የምናገኛቸው ጉርሻዎች

ፈጣን ስረዛ እና/ወይም የቦታ ቁራጮች ምርጫ፣ ባለብዙ ሕብረቁምፊዎች፣ አውሮፕላኖች፣ ኪዩቦች፣ ወዘተ. የኢንቲጀር ኢንዴክሶች ጥቅም ላይ ለዋሉባቸው ጉዳዮች፣ ባለብዙ ሕብረቁምፊዎች፣ አውሮፕላኖች፣ ኪዩቦች፣ ወዘተ የሆኑ የቦታ ክፍሎችን በፍጥነት ለማስወገድ እና/ወይም ለመምረጥ መቻል ጠቃሚ ነው።

ቡድን ግደል ሁለቱንም ነጠላ ኤለመንቶችን እና መስመርን እና አንድን አውሮፕላን እንኳን መሰረዝ እንችላለን። ለግሎባልስ ባህሪያት ምስጋና ይግባውና ይህ በጣም ፈጣን ነው - ከኤለመንት-በ-ንጥረ-ነገር መሰረዝ በሺዎች በሚቆጠር ጊዜ ፈጣን ነው.

ስዕሉ በአለምአቀፍ ውስጥ ባለ ሶስት አቅጣጫዊ አቀማመጥ ያሳያል ^a እና የተለያዩ አይነት ስረዛዎች.

ግሎባልስ መረጃን ለማከማቸት ውድ ሰይፎች ናቸው። ትንሽ ድርድሮች። ክፍል 3

የቦታ ክፍሎችን በሚታወቁ ኢንዴክሶች ለመምረጥ ትዕዛዙን መጠቀም ይችላሉ። አዋህደኝ.

በአምድ ተለዋዋጭ ውስጥ የማትሪክስ አምድ መምረጥ፡-

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

ማጠቃለያ:

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

በአምድ ተለዋዋጭ ውስጥ የሚያስደስተው ነገር፣ እኛ ደግሞ ትንሽ ድርድር አግኝተናል፣ እሱም እንዲሁ መድረስ ያለበት $GET, ምክንያቱም ነባሪ ዋጋዎች በእሱ ውስጥ አይቀመጡም.

የቦታ ክፍሎችን ናሙና ማድረግም ተግባሩን በመጠቀም በትንሽ ፕሮግራም ሊከናወን ይችላል $ ትእዛዝ. ይህ በተለይ ኢንዴክሶች በቁጥር ያልተቆጠሩ (ካርታግራፊ) ላይ ባሉ ቦታዎች ላይ ምቹ ነው።

መደምደሚያ

አሁን ያለንበት ዘመን አዲስ ድንቅ ስራዎችን አዘጋጅቷል። ግራፎች በቢሊዮኖች የሚቆጠሩ ጫፎች፣ ካርታዎች በቢሊዮኖች የሚቆጠሩ ነጥቦች ሊኖሩት ይችላል፣ እና አንድ ሰው የራሱን ዩኒቨርስ በሴሉላር አውቶማታ ማሄድ ሊፈልግ ይችላል።1, 2).

የተራቀቁ ድርድሮች የውሂብ መጠን ከአሁን በኋላ ወደ ራም ሊገባ በማይችልበት ጊዜ እና ከእነሱ ጋር አብሮ መስራት ሲኖርብዎ እንደዚህ ያሉ ፕሮጀክቶችን በአለምአቀፍ እና በ COS ላይ የመተግበር እድልን ግምት ውስጥ ማስገባት ጠቃሚ ነው.

ለሰጠህው አትኩሮት እናመሰግናለን! በአስተያየቶች ውስጥ የእርስዎን ጥያቄዎች እና ምኞቶች እየጠበቅን ነው.

ማስተባበያ: ይህ ጽሑፍ እና በእሱ ላይ የእኔ አስተያየቶች የእኔ አስተያየት ናቸው እና የ InterSystems ኮርፖሬሽን ኦፊሴላዊ ቦታን አይወክሉም.

ምንጭ: hab.com

አስተያየት ያክሉ