गणित की बात: सिद्धांत संशोधन नियंत्रण प्रणाली के बारे में प्रमेय?


19

मैं git revision control system पर गणित की बात देना चाहूंगा । अब यह व्यापक रूप से गणित के साथ-साथ कंप्यूटर विज्ञान उद्योग में उपयोग किया जाता है। उदाहरण के लिए, HoTT (होमोटोपी टाइप थ्योरी) समुदाय इसका उपयोग करता है, और यह पाठ फ़ाइलों के सहयोगी संपादन के लिए सिस्टम पर जाता है, चाहे वे स्रोत कोड या लेटेक्स मार्कअप हो।

मुझे पता है कि git एक निर्देशित चक्रीय ग्राफ की धारणा का उपयोग करता है, जो एक शुरुआत है। हालांकि, एक अच्छी गणित की बात सबूतों और प्रमेयों का उल्लेख करती है।

मैं किस प्रमेय के बारे में साबित कर सकता हूं जो वास्तव में इसके उपयोग के लिए प्रासंगिक है?


1
मुख्य रूप से, मेरी प्रेरणा यह प्रदर्शित करना है कि गणितीय अवधारणाओं को एक उदाहरण के रूप में उपयोग करके लागू किया जाता है। दूसरी बात, git गणित की दुनिया में काफी उपयोगी है, जितना कि CS की दुनिया में, इसलिए मेरे दर्शकों को यह भी पता चल सकता है कि यह क्या करता है और कोई इसका उपयोग क्यों कर सकता है।
थोरलफस्कॉलेमे 20

2
@RexButler - git गणित में उसी तरह से उपयोगी है जिस तरह से एक पेंसिल है। यह एक सामान्य उपकरण है जिसका उपयोग कुछ गणितज्ञ करते हैं।
डावोर

1
यह प्रश्न मुझे "ए गाइड टू जीआईएटी का उपयोग करते हुए स्थानिक उपमाओं की याद दिलाता है " (वेबैक मशीन से लिंक क्योंकि साइट अभी नीचे दिखाई देती है)।
डूप्लोड


1
इसी तरह का प्रश्न हाल ही में कंप्यूटर विज्ञान पर दिखाया गया है : VCS का औपचारिक CS
मान

जवाबों:


16

जीआईटी रिपॉजिटरी को आंशिक रूप से आदेशित संशोधनों के सेट के रूप में माना जा सकता है (जहां एक संशोधन पहले के आदेश से दूसरे की तुलना में पहले होता है अगर यह पहले का प्रत्यक्ष या अप्रत्यक्ष उत्तराधिकारी है)। गैट रिपॉजिटरी से मिलने वाले आंशिक आदेशों में कम चौड़ाई (पारस्परिक रूप से स्वतंत्र संशोधनों के सबसे बड़े सेट का आकार) होती है क्योंकि चौड़ाई सीधे सक्रिय डेवलपर्स की संख्या और विभिन्न कांटे की संख्या से संबंधित होती है जो किसी भी व्यक्तिगत डेवलपर के काम आ सकती है। पर।

इस पृष्ठभूमि के आधार पर, मैं दिलवर्थ के प्रमेय का सुझाव दूंगा , जिसमें कहा गया है कि किसी भी आंशिक क्रम की चौड़ाई सभी संस्करणों को कवर करने के लिए आवश्यक न्यूनतम संख्या में जंजीरों (पूरी तरह से ऑर्डर किए गए सबसेट) के बराबर होती है। और इस बोर्ड के लिए इसे ऑन-टॉपिक बनाने के लिए, आप चौड़ाई की गणना के लिए ग्राफ मिलान आधारित एल्गोरिदम का उल्लेख भी कर सकते हैं और बहुपद समय में न्यूनतम संख्या में जंजीरों से कवर पा सकते हैं।

एक तरह से यह Git में वास्तविक उपयोग के लिए प्रासंगिक हो सकता है एक सिस्टम के संस्करण इतिहास की कल्पना करने के लिए एक प्रणाली में है: अधिकांश Git विज़ुअलाइज़ेशन सिस्टम जो मैंने ऊर्ध्वाधर अक्ष पर समय ड्रा देखा है, और क्षैतिज रूप से रिपॉजिटरी के स्वतंत्र संस्करण हैं, इसलिए यह आपको विज़ुअलाइज़ेशन को स्वतंत्र ऊर्ध्वाधर पटरियों की एक छोटी संख्या में व्यवस्थित करने का एक तरीका देगा।

वैकल्पिक रूप से, यदि आप कुछ अधिक महत्वाकांक्षी और उन्नत चाहते हैं, तो डेमनी एट अल का दोष पेड़ डेटा संरचना की कोशिश करें , जो सीधे गिट-जैसे संस्करण नियंत्रण प्रणालियों में संघर्ष के समाधान से प्रेरित है।


17

दिलचस्प है, संस्करण नियंत्रण प्रणालियों का एक नवजात गणितीयकरण है, हालांकि इस बिंदु पर यह केवल आंशिक रूप से गिट पर लागू होता है। इसे पैच सिद्धांत [1, 2, 3, 4, 5] कहा जाता है और यह DARCS संस्करण नियंत्रण प्रणाली के संदर्भ में उत्पन्न हुआ है। इसे ब्रांचिंग और विलय के एक सार सिद्धांत के रूप में देखा जा सकता है । हाल ही में पैच सिद्धांत को HoTT [6] और श्रेणीबद्ध [7] उपचार दिया गया है।

पैच सिद्धांत प्रगति पर काम कर रहा है, और संस्करण नियंत्रण के सभी पहलुओं को कवर नहीं करता है, लेकिन इसमें बहुत सारे प्रमेय शामिल हैं जिन्हें आप देख सकते हैं। यह सिद्धांत का एक स्पष्ट उदाहरण है जो 'वास्तविक दुनिया' पर लागू होता है - आश्चर्य की बात नहीं है, क्योंकि पैच सिद्धांत एक अमूर्त / बहुत ठोस चीज का सरलीकरण है। साथ ही यह अत्याधुनिक गणित जैसे HoTT से जुड़ता है।


  1. जे। डगिट, टाइप-करेक्ट चेंजेस - वर्जन कंट्रोल इंप्लीमेंटेशन के लिए एक सुरक्षित दृष्टिकोण
  2. जी। सितापलम, डार्क्स पैच थ्योरी के कुछ गुण
  3. आई। लिंग, कैंप पथ सिद्धांत।
  4. डी। राउंडी, डार्क्स पैच औपचारिकता को लागू करना ... और इसे सत्यापित करना।
  5. जे। जैकबसन, एर्स ऑफ सेमीग्रुप्स का उपयोग करके डार्क्स पैच थ्योरी का औपचारिककरण
  6. सी। एंगुली, ई। मोरहाउस, डीआर लिसाटा, आर। हार्पर, होमोटॉपिकल पैच थ्योरी
  7. एस। मीराम, सी। डी। गिउस्तो, पैच का एक श्रेणीबद्ध सिद्धांत

4

एक और विकल्प लगातार (या विशुद्ध रूप से कार्यात्मक) डेटा संरचनाओं को देखना है। Git की आंतरिक डेटा संरचना को एक निरंतर वृक्ष के रूप में देखा जा सकता है :

एक सतत डेटा संरचना एक डेटा संरचना है जो हमेशा संशोधित होने पर स्वयं के पिछले संस्करण को संरक्षित करती है। इस तरह की डेटा संरचनाएं प्रभावी रूप से अपरिवर्तनीय होती हैं, क्योंकि उनके संचालन (नेत्रहीन) संरचना को जगह में अद्यतन नहीं करते हैं, लेकिन इसके बजाय हमेशा एक नई अद्यतन संरचना प्राप्त करते हैं।

यदि सभी संस्करणों तक पहुँचा जा सकता है, लेकिन केवल नवीनतम संस्करण को संशोधित किया जा सकता है, तो डेटा संरचना आंशिक रूप से लगातार बनी रहती है। यदि हर संस्करण को एक्सेस और संशोधित किया जा सकता है, तो डेटा संरचना पूरी तरह से स्थिर है। यदि कोई मेलड या मर्ज ऑपरेशन भी होता है जो दो पिछले संस्करणों से एक नया संस्करण बना सकता है, तो डेटा संरचना को लगातार स्थायी कहा जाता है।

यह सवाल प्रासंगिक भी है।


1

हां, आप गणितीय रूप से परिभाषित कर सकते हैं कि Git कैसे काम करता है। आप उन पर आदिम Git संरचनाओं और Git संचालन को परिभाषित कर सकते हैं और फिर प्रमेय हैं जो यह साबित करते हैं कि इन कार्यों का उपयोग विशेष रूप से विशेष रूप से उच्च-स्तरीय लक्ष्यों को प्राप्त करता है, या उन स्थितियों को चिह्नित या निर्धारित करने का प्रयास करता है जिनमें यह मामला नहीं है। (हैश पर Git की निर्भरता त्रुटि के लिए एक छोटा सा मार्जिन छोड़ देती है।)

एक अन्य विचार यह है कि तोड़फोड़ के लिए एक ही काम करना है, फिर उन प्रमेयों का उत्पादन करें जो दोनों की तुलना करते हैं। उदाहरण के लिए, अक्सर यह दावा किया जाता है कि मर्ज से निपटने के लिए Git बेहतर है; आपके पास ऐसे प्रमेय हो सकते हैं जो यह साबित करते हैं, गुणात्मक या मात्रात्मक रूप से।

उपयोगिता सही रूप से सही अमूर्त बनाने पर निर्भर करेगी। गणितीय रूप से गिट स्रोत कोड के कामकाज को सभी विवरणों में वर्णित करना व्यर्थ है: स्रोत कोड खुद को बहुत अधिक प्रभावी और संक्षिप्त रूप से करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.