ಗ್ಲೋಬಲ್‌ಗಳು ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಿಧಿ-ಕತ್ತಿಗಳು. ವಿರಳ ಸರಣಿಗಳು. ಭಾಗ 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 * ರ ಉತ್ಪನ್ನವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ ಗರಿಷ್ಠ ಸಾಲಿನ ಗಾತ್ರ), ಅಂದರೆ, ಅಂತಹ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು ಇನ್ನೂ ಹೆಚ್ಚು ಆರ್ಥಿಕ ಮಾರ್ಗವೆಂದರೆ ಬಿಟ್ ತಂತಿಗಳು, ಏಕೆಂದರೆ ಅವುಗಳ ಅನುಷ್ಠಾನವು ದೊಡ್ಡ ಅಂತರವನ್ನು ವಿಶೇಷ ರೀತಿಯಲ್ಲಿ ಉತ್ತಮಗೊಳಿಸುತ್ತದೆ.

ಬಿಟ್ ಸ್ಟ್ರಿಂಗ್ಗಳೊಂದಿಗೆ ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್ಗಳನ್ನು ಕಾರ್ಯದಿಂದ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ $BIT.

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

ರಾಜ್ಯ ಯಂತ್ರ ಪರಿವರ್ತನೆ ಕೋಷ್ಟಕ

ಪರಿಮಿತ ಆಟೊಮ್ಯಾಟನ್‌ನ ಪರಿವರ್ತನೆಯ ಗ್ರಾಫ್ ಸಾಮಾನ್ಯ ಗ್ರಾಫ್ ಆಗಿರುವುದರಿಂದ, ಪರಿಮಿತ ಆಟೊಮ್ಯಾಟನ್‌ನ ಪರಿವರ್ತನೆ ಕೋಷ್ಟಕವು ಮೇಲೆ ಚರ್ಚಿಸಿದ ಅದೇ ಪಕ್ಕದ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಆಗಿದೆ.

ಸೆಲ್ಯುಲಾರ್ ಆಟೋಮ್ಯಾಟಾ

ಗ್ಲೋಬಲ್‌ಗಳು ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಿಧಿ-ಕತ್ತಿಗಳು. ವಿರಳ ಸರಣಿಗಳು. ಭಾಗ 3

ಅತ್ಯಂತ ಪ್ರಸಿದ್ಧವಾದ ಸೆಲ್ಯುಲಾರ್ ಆಟೊಮ್ಯಾಟನ್ ಆಗಿದೆ ಆಟ "ಜೀವನ", ಅದರ ನಿಯಮಗಳ ಕಾರಣದಿಂದಾಗಿ (ಕೋಶವು ಅನೇಕ ನೆರೆಹೊರೆಗಳನ್ನು ಹೊಂದಿರುವಾಗ, ಅದು ಸಾಯುತ್ತದೆ) ವಿರಳವಾದ ರಚನೆಯಾಗಿದೆ.

ಸೆಲ್ಯುಲಾರ್ ಆಟೋಮ್ಯಾಟಾ ಎಂದು ಸ್ಟೀಫನ್ ವೋಲ್ಫ್ರಾಮ್ ನಂಬುತ್ತಾರೆ ವಿಜ್ಞಾನದ ಹೊಸ ಕ್ಷೇತ್ರ. 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
...

ಬಿ, ಎಲ್, ಡಿ ಎಲ್ಲಿವೆ ಗ್ಯಾಲಕ್ಸಿಯ ಅಕ್ಷಾಂಶ, ರೇಖಾಂಶಗಳ ನಿರ್ದೇಶಾಂಕಗಳು ಮತ್ತು ಸೂರ್ಯನಿಗೆ ದೂರ.

ಗ್ಲೋಬಲ್‌ಗಳ ಹೊಂದಿಕೊಳ್ಳುವ ರಚನೆಯು ನಕ್ಷತ್ರಗಳು ಮತ್ತು ಗ್ರಹಗಳ ಯಾವುದೇ ಅಗತ್ಯ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಉಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಗ್ಲೋಬಲ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಸ್ಕೀಮ್-ಕಡಿಮೆ.

ನಮ್ಮ ಬ್ರಹ್ಮಾಂಡದ ನಕ್ಷೆಯನ್ನು ಸಂಗ್ರಹಿಸಲು, ಕ್ಯಾಶೆಯನ್ನು ಅದರ ನಮ್ಯತೆಗಾಗಿ ಮಾತ್ರ ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ, ಆದರೆ ವೇಗದ ಹುಡುಕಾಟಗಳಿಗಾಗಿ ಏಕಕಾಲದಲ್ಲಿ ಸೂಚ್ಯಂಕ ಗ್ಲೋಬಲ್‌ಗಳನ್ನು ರಚಿಸುವಾಗ ಡೇಟಾದ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ಸಂಗ್ರಹಿಸುವ ಸಾಮರ್ಥ್ಯಕ್ಕಾಗಿ ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ.

ನಾವು ಭೂಮಿಗೆ ಹಿಂತಿರುಗಿದರೆ, ನಂತರ ಕಾರ್ಟೊಗ್ರಾಫಿಕ್ ಯೋಜನೆಗಳನ್ನು ಜಾಗತಿಕವಾಗಿ ರಚಿಸಲಾಗಿದೆ OpenStreetMap XAPI ಮತ್ತು ಓಪನ್‌ಸ್ಟ್ರೀಟ್‌ಮ್ಯಾಪ್‌ನ ಫೋರ್ಕ್ - FOSM.

ಇತ್ತೀಚೆಗೆ ಹ್ಯಾಕಥಾನ್ ಸಂಗ್ರಹ ಭೌಗೋಳಿಕ ಸೂಚ್ಯಂಕಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ ಜಿಯೋಸ್ಪೇಷಿಯಲ್. ಅನುಷ್ಠಾನದ ವಿವರಗಳೊಂದಿಗೆ ಲೇಖಕರಿಂದ ಲೇಖನಕ್ಕಾಗಿ ನಾವು ಕಾಯುತ್ತಿದ್ದೇವೆ.

ಓಪನ್‌ಸ್ಟ್ರೀಟ್‌ಮ್ಯಾಪ್ 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).

ವಿರಳವಾದ ಸರಣಿಗಳಿಂದ ಡೇಟಾದ ಪರಿಮಾಣವು ಇನ್ನು ಮುಂದೆ RAM ಗೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದಾಗ, ಆದರೆ ನೀವು ಅವರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬೇಕಾದರೆ, ಜಾಗತಿಕ ಮತ್ತು COS ನಲ್ಲಿ ಇದೇ ರೀತಿಯ ಯೋಜನೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಾಧ್ಯತೆಯನ್ನು ಪರಿಗಣಿಸುವುದು ಯೋಗ್ಯವಾಗಿದೆ.

ನಿಮ್ಮ ಗಮನಕ್ಕೆ ಧನ್ಯವಾದಗಳು! ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಶುಭಾಶಯಗಳಿಗಾಗಿ ನಾವು ಕಾಯುತ್ತಿದ್ದೇವೆ.

ಹಕ್ಕುತ್ಯಾಗ: ಈ ಲೇಖನ ಮತ್ತು ಅದಕ್ಕೆ ನನ್ನ ಕಾಮೆಂಟ್‌ಗಳು ನನ್ನ ಅಭಿಪ್ರಾಯವಾಗಿದೆ ಮತ್ತು ಇಂಟರ್‌ಸಿಸ್ಟಮ್ಸ್ ಕಾರ್ಪೊರೇಷನ್‌ನ ಅಧಿಕೃತ ಸ್ಥಾನಕ್ಕೆ ಯಾವುದೇ ಸಂಬಂಧವಿಲ್ಲ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ