Factorio में B-ट्री
(razberry.substack.com)B-ट्री के बारे में सीखना
-
Binary Search Trees (BSTs): हर node में एक key होती है; बायां node कम key value रखता है, और दायां node अधिक key value रखता है।
-
BST तभी काम करता है जब keys को sort किया जा सके, और अगर values सिर्फ एक तरफ जोड़ी जाएं तो balance बिगड़ जाता है और efficiency घट जाती है।
-
balance बिगड़े हुए BST को pivoting के जरिए ठीक किया जा सकता है, लेकिन यह disk-based storage के लिए उपयुक्त नहीं है (बार-बार rebalancing की ज़रूरत होती है, और पास-पास के node अलग-अलग pages में store हो सकते हैं)।
-
B-Trees: ऐसे nodes से बने होते हैं जिनमें binary tree की तुलना में अधिक keys और pointers होते हैं।
-
हर node में कई keys होती हैं, और हर key के अनुसार कई pointers होते हैं (उदाहरण: 17 और 24 keys वाला node उन nodes की ओर pointers रखेगा जिनकी keys 17 से छोटी हैं, 17 और 24 के बीच हैं, और 24 से बड़ी हैं)।
Factorio में B-ट्री का implementation
- Factorio (factory-building game) में एक सरल binary search tree implementation: हर node एक wooden chest (key) और दो paths (pointers) से बना होता है।
- materials की value की तुलना करने का कोई तरीका नहीं है, इसलिए एक मनमाना क्रम दिया जाता है, और filter inserters का उपयोग तुलना के लिए किया जाता है।
- B-ट्री implementation अधिक जटिल है: हर node में तीन keys और चार child nodes की ओर pointers होते हैं।
- B-ट्री अधिक जानकारी store कर सकता है, और items को manually sort करने के बजाय tree को फिलहाल खाली छोड़ा जाता है, जब तक बाद में इसे दर्शाने का बेहतर तरीका न मिल जाए।
GN⁺ की राय
- इस लेख की सबसे महत्वपूर्ण बात B-ट्री की अवधारणा को समझना और उसे Factorio गेम में लागू करने का रचनात्मक तरीका है।
- पाठकों के लिए दिलचस्प बात यह है कि यह computer science की जटिल data structures को गेम के माध्यम से visual और intuitive तरीके से समझने का अवसर देता है।
- ऐसा दृष्टिकोण सीखने को अधिक मज़ेदार और आकर्षक बनाता है, और software engineering की बुनियादी अवधारणाओं को गेम जैसे गैर-पारंपरिक माध्यमों के जरिए समझने का नया तरीका पेश करता है।
1 टिप्पणियां
Hacker News राय