குளோபல்ஸ் என்பது தரவுகளை சேமிப்பதற்கான புதையல்-வாள்கள். அரிதான வரிசைகள். பகுதி 3

குளோபல்ஸ் என்பது தரவுகளை சேமிப்பதற்கான புதையல்-வாள்கள். அரிதான வரிசைகள். பகுதி 3முந்தைய பகுதிகளில் (1, 2) குளோபல்களை மரங்கள் என்று பேசினோம், இதில் குளோபல்களை ஸ்பார்ஸ் வரிசைகளாகப் பார்ப்போம்.

அரிதான வரிசை ஒரு வகை வரிசை, இதில் பெரும்பாலான மதிப்புகள் ஒரே மதிப்பை எடுக்கும்.

நடைமுறையில், அரிதான வரிசைகள் பெரும்பாலும் மிகப் பெரியவை, ஒரே மாதிரியான கூறுகளுடன் நினைவகத்தை ஆக்கிரமிப்பதில் எந்த அர்த்தமும் இல்லை. எனவே, ஒரே மாதிரியான மதிப்புகளை சேமிப்பதில் நினைவகம் வீணாகாத வகையில் ஸ்பேர்ஸ் வரிசைகளை செயல்படுத்துவது அர்த்தமுள்ளதாக இருக்கிறது.
சில நிரலாக்க மொழிகளில், அரிதான வரிசைகள் மொழியிலேயே சேர்க்கப்பட்டுள்ளன, உதாரணமாக ஜே, கொண்டும் MATLAB. பிற நிரலாக்க மொழிகளில் சிறப்பு நூலகங்கள் உள்ளன, அவை செயல்படுத்த உங்களை அனுமதிக்கின்றன. C++ க்கு - ஈஜென் மற்றும் பலர்.

ஸ்பேஸ் வரிசைகளை செயல்படுத்த குளோபல்ஸ் நல்ல வேட்பாளர்கள் ஏனெனில்:

  1. அவை குறிப்பிட்ட முனைகளின் மதிப்புகளை மட்டுமே சேமிக்கின்றன மற்றும் வரையறுக்கப்படாதவற்றின் மதிப்புகளை சேமிக்காது;
  2. ஒரு முனையின் மதிப்பை அணுகுவதற்கான இடைமுகம், பல பரிமாண வரிசை உறுப்புக்கான அணுகலை எத்தனை நிரலாக்க மொழிகள் செயல்படுத்துகின்றன என்பதைப் போலவே உள்ளது.
    Set ^a(1, 2, 3)=5
    Write ^a(1, 2, 3)

  3. குளோபல் என்பது தரவைச் சேமிப்பதற்கான மிகவும் குறைந்த அளவிலான கட்டமைப்பாகும், எனவே இது சிறந்த வேகப் பண்புகளைக் கொண்டுள்ளது (வன்பொருளைப் பொறுத்து வினாடிக்கு நூறாயிரக்கணக்கான முதல் பத்து மில்லியன் பரிவர்த்தனைகள், கீழே காண்க). 1)

குளோபல் ஒரு நிலையான கட்டமைப்பாக இருப்பதால், ரேமின் அளவு போதுமானதாக இருக்காது என்பதை முன்கூட்டியே அறியும்போது, ​​அவற்றின் மீது அரிதான வரிசைகளை உருவாக்குவது அர்த்தமுள்ளதாக இருக்கும்.

ஸ்பார்ஸ் வரிசை செயலாக்கங்களின் பண்புகளில் ஒன்று, வரையறுக்கப்படாத கலத்திற்கு அணுகல் செய்யப்பட்டால், சில இயல்புநிலை மதிப்பை வழங்குவதாகும்.

செயல்பாட்டைப் பயன்படுத்தி இதை செயல்படுத்தலாம் $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*ன் பலனாக எடுத்துக் கொள்ளப்படுகிறது. அதிகபட்ச வரி அளவு), அதாவது, அத்தகைய மெட்ரிக்குகளை சேமிப்பதற்கான இன்னும் சிக்கனமான வழி பிட் சரங்கள் ஆகும், ஏனெனில் அவற்றின் செயல்படுத்தல் ஒரு சிறப்பு வழியில் பெரிய இடைவெளிகளை மேம்படுத்துகிறது.

பிட் சரங்களைக் கொண்ட கையாளுதல்கள் செயல்பாட்டின் மூலம் செய்யப்படுகின்றன $BIT.

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

மாநில இயந்திர மாற்றம் அட்டவணை

வரையறுக்கப்பட்ட ஆட்டோமேட்டனின் மாறுதல் வரைபடம் ஒரு சாதாரண வரைபடம் என்பதால், வரையறுக்கப்பட்ட ஆட்டோமேட்டனின் மாறுதல் அட்டவணை மேலே விவாதிக்கப்பட்ட அதே அட்ஜெசென்சி மேட்ரிக்ஸ் ஆகும்.

செல்லுலார் ஆட்டோமேட்டா

குளோபல்ஸ் என்பது தரவுகளை சேமிப்பதற்கான புதையல்-வாள்கள். அரிதான வரிசைகள். பகுதி 3

மிகவும் பிரபலமான செல்லுலார் ஆட்டோமேட்டன் விளையாட்டு "வாழ்க்கை", இது, அதன் விதிகளின் காரணமாக (ஒரு செல் பல அண்டை நாடுகளைக் கொண்டிருக்கும் போது, ​​அது இறக்கும்) ஒரு அரிதான வரிசையாகும்.

செல்லுலார் ஆட்டோமேட்டா என்று ஸ்டீபன் வோல்ஃப்ராம் நம்புகிறார் புதிய அறிவியல் துறை. 2002 ஆம் ஆண்டில், அவர் 1280 பக்கங்கள் கொண்ட ஒரு புதிய வகை அறிவியல் புத்தகத்தை வெளியிட்டார், அதில் செல்லுலார் ஆட்டோமேட்டாவின் முன்னேற்றங்கள் தனிமைப்படுத்தப்பட்டவை அல்ல, ஆனால் அவை நீடித்து நிற்கின்றன மற்றும் அறிவியலின் அனைத்துப் பகுதிகளிலும் பெரும் தாக்கங்களைக் கொண்டுள்ளன என்று பரந்த அளவில் வாதிடுகிறார்.

கணினியில் இயங்கக்கூடிய எந்த அல்காரிதமும் செல்லுலார் ஆட்டோமேட்டனைப் பயன்படுத்தி செயல்படுத்தப்படலாம் என்பது நிரூபிக்கப்பட்டுள்ளது. செல்லுலார் ஆட்டோமேட்டா டைனமிக் சூழல்கள் மற்றும் அமைப்புகளை மாதிரியாக்க, அல்காரிதம் சிக்கல்களைத் தீர்க்க மற்றும் பிற நோக்கங்களுக்காகப் பயன்படுத்தப்படுகிறது.

எங்களிடம் ஒரு பெரிய புலம் இருந்தால், செல்லுலார் ஆட்டோமேட்டனின் அனைத்து இடைநிலை நிலைகளையும் பதிவு செய்ய வேண்டும் என்றால், குளோபல்களைப் பயன்படுத்துவது அர்த்தமுள்ளதாக இருக்கும்.

வரைபடவியல்

அரிதான வரிசைகளைப் பயன்படுத்தும்போது என் நினைவுக்கு வரும் முதல் விஷயம் மேப்பிங் பணிகள்.

ஒரு விதியாக, வரைபடங்களில் நிறைய வெற்று இடம் உள்ளது. வரைபடம் பெரிய பிக்சல்களாகக் குறிப்பிடப்பட்டால், பூமியின் 71% பிக்சல்கள் கடலால் ஆக்கிரமிக்கப்படும். அரிதான வரிசை. நீங்கள் மனித கைகளின் படைப்புகளை மட்டுமே பயன்படுத்தினால், வெற்று இடம் 95% க்கும் அதிகமாக இருக்கும்.

நிச்சயமாக, யாரும் வரைபடங்களை ராஸ்டர் வரிசைகளின் வடிவத்தில் சேமிப்பதில்லை; ஒரு திசையன் பிரதிநிதித்துவம் பயன்படுத்தப்படுகிறது.
ஆனால் திசையன் வரைபடங்கள் என்றால் என்ன? இது ஒரு வகையான சட்டகம் மற்றும் புள்ளிகளைக் கொண்ட பாலிலைன்கள் மற்றும் பலகோணங்கள்.
அடிப்படையில் புள்ளிகள் மற்றும் அவற்றுக்கிடையேயான இணைப்புகளின் தரவுத்தளம்.

நமது விண்மீன் மண்டலத்தை வரைபடமாக்குவதற்கான கியா தொலைநோக்கி பணி மிகவும் லட்சியமான மேப்பிங் பணிகளில் ஒன்றாகும். அடையாளப்பூர்வமாகச் சொன்னால், முழு பிரபஞ்சத்தைப் போலவே நமது விண்மீன் ஒரு தொடர்ச்சியான அரிதான வரிசை: வெறுமையின் பெரிய இடங்கள், இதில் அரிதான சிறிய புள்ளிகள் - நட்சத்திரங்கள் உள்ளன. காலி இடம் 99,999999.......%. நமது விண்மீன் மண்டலத்தின் வரைபடத்தை சேமிக்க, உலகளாவிய தரவுத்தளமானது தேர்ந்தெடுக்கப்பட்டது - Cache.

இந்த திட்டத்தில் உள்ள குளோபல்களின் சரியான அமைப்பு எனக்குத் தெரியாது, இது போன்றது என்று நான் அனுமானிக்க முடியும்:

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

பி, எல், டி எங்கே விண்மீன் ஆய அட்சரேகை, தீர்க்கரேகை மற்றும் சூரியனுக்கான தூரம்.

குளோபல்களின் நெகிழ்வான அமைப்பு நட்சத்திரங்கள் மற்றும் கிரகங்களின் தேவையான எந்த பண்புகளையும் சேமிக்க உங்களை அனுமதிக்கிறது, ஏனெனில் குளோபல்களின் அடிப்படைகள் திட்டம்-குறைவாக உள்ளன.

நமது பிரபஞ்சத்தின் வரைபடத்தைச் சேமிப்பதற்காக, Caché ஆனது அதன் நெகிழ்வுத்தன்மைக்காக மட்டும் தேர்ந்தெடுக்கப்பட்டது, ஆனால் வேகமான தேடல்களுக்கு ஒரே நேரத்தில் குறியீட்டு குளோபல்களை உருவாக்கும் அதே நேரத்தில், மிக விரைவாக தரவுகளின் ஸ்ட்ரீமைச் சேமிக்கும் திறனுக்காகவும் தேர்ந்தெடுக்கப்பட்டது.

நாம் பூமிக்குத் திரும்பினால், கார்ட்டோகிராஃபிக் திட்டங்கள் உலகளாவிய அளவில் உருவாக்கப்பட்டன OpenStreetMap XAPI மற்றும் OpenStreetMap இன் ஒரு போர்க் - FOSM.

சமீபத்தில் ஹேக்கத்தான் கேச் புவிசார் குறியீடுகள் செயல்படுத்தப்பட்டன ஜியோஸ்பேடியல். செயல்படுத்தல் விவரங்களுடன் ஆசிரியர்களிடமிருந்து ஒரு கட்டுரைக்காக நாங்கள் காத்திருக்கிறோம்.

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 இல் இதே போன்ற திட்டங்களை செயல்படுத்துவதற்கான சாத்தியத்தை கருத்தில் கொள்வது மதிப்பு.

உங்கள் கவனத்திற்கு நன்றி! கருத்துகளில் உங்கள் கேள்விகள் மற்றும் விருப்பங்களுக்காக நாங்கள் காத்திருக்கிறோம்.

பொறுப்புத் துறப்பு: இந்தக் கட்டுரையும் அதற்கான எனது கருத்துகளும் எனது கருத்து மற்றும் இண்டர்சிஸ்டம்ஸ் கார்ப்பரேஷனின் உத்தியோகபூர்வ நிலைக்கு எந்தத் தொடர்பும் இல்லை.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்