गणितीय सॉफ्टवेयर के लिए गवाह


11

मैं, कई लोगों की तरह, गणितीय सॉफ्टवेयर जैसे कि गणितज्ञ और मेपल का उत्सुक उपयोगकर्ता हूं। हालाँकि, मैं कई मामलों से बहुत अधिक हताश हो गया हूँ, जहाँ इस तरह के सॉफ्टवेयर आपको बिना चेतावनी दिए गलत जवाब देते हैं। यह कई प्रकार के अन्य उदाहरणों के बीच अनुकूलन के लिए सरल रकम से सभी प्रकार के संचालन करते समय हो सकता है ।

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

तो संक्षेप में, मेरा प्रश्न निम्नलिखित है।

गणितीय सॉफ्टवेयर के लिए कम से कम सिद्धांत में यह संभव हो सकता है कि आपके द्वारा पूछे गए उत्तर के साथ एक छोटा सा जाँच योग्य प्रमाण प्रदान किया जाए?

एक तुच्छ मामला जहां हम तुरंत ऐसा कर सकते हैं, पूर्णांकों के पूर्णांक या क्लासिक एनपी-पूर्ण समस्याओं (जैसे हैमिल्टनियन सर्किट आदि) के कई कारकों का कारक है।


क्या आप एक उदाहरण दे सकते हैं जहां उत्पादित उत्तर गलत है? निश्चित रूप से गणनाओं की शुद्धता का एक प्रमाण प्रमाण उत्पन्न करना संभव है, लेकिन इस तरह के प्रमाण को हाथ से जांचना आसान नहीं है, बस इसलिए कि सॉफ्टवेयर आमतौर पर अत्यधिक गैर-तुच्छ एल्गोरिदम का उपयोग करता है जो कि सबसे सहज ज्ञान युक्त लोगों की तुलना में अधिक कुशल हैं।
महदी Cheraghchi

मैंने प्रश्न में दो उदाहरण दिए हैं, लेकिन लिंक रंगों को देखना आसान नहीं होगा। "रकम" या "अनुकूलन" पर क्लिक करें।

1
Manuel Blum और संपत कन्नन ने dl.acm.org/citation.cfm?id=200880 में क्या किया ?
एंड्रेज बॉयर

आप प्रमाणित एल्गोरिदम पर एक नज़र डालना चाहते हैं ।
प्रतीक देवघर

हां बहुत से प्रतीकात्मक सॉफ्टवेयर सिस्टम को "ब्लैक बॉक्स" के रूप में माना जाता है और यह व्यापार रहस्यों को बचाने के लिए एक कॉर्पोरेट रणनीति भी है। (1) खुले स्रोत के विकल्प का प्रयास करें (2) सॉफ्टवेयर इंजीनियरिंग को "इकाई परीक्षण" का "सर्वोत्तम अभ्यास" मानें। संक्षेप में, विचार यह होगा कि परिणामों की "पवित्रता जाँच" बनाने के लिए, उदाहरण के लिए ज्ञात मूल्यों, अन्य जोड़तोड़, व्युत्क्रम, आदि के निर्माण के लिए अच्छी तरह से निर्मित परीक्षणों से यह संभावना नहीं है कि सूत्र और परीक्षण दोनों एक तरह से विफल हो जाएंगे। एक "झूठी सकारात्मक"।
vzn

जवाबों:


5
  1. "गवाह" या "जाँच योग्य सबूत" की अवधारणा पूरी तरह से नई नहीं है: जैसा कि टिप्पणियों में बताया गया है, "प्रमाण पत्र" की अवधारणा के लिए देखें। तीन उदाहरणों के बारे में पता चला, और भी (टिप्पणी और अन्य जगहों पर) हैं:

    • कर्ट मेहालॉर्न ने 1999 में कम्प्यूटेशनल ज्यामिति एल्गोरिदम में इसी तरह की समस्या का वर्णन किया (उदाहरण के लिए निर्देशांक में छोटी सी त्रुटि कुछ एल्गोरिथ्म के परिणामों में बड़ी त्रुटियां पैदा कर सकती हैं), लाइब्रेरी लेडा में इसी तरह से हल किया गया है , जिसमें जोर देकर कहा गया है कि प्रत्येक एल्गोरिथ्म "प्रमाण पत्र" का उत्पादन करता है इसके जवाब के अलावा खुद के जवाब।

    • डेमनी, 2000 में लोपेज़-ओर्टिज़ और मुनरो ने संघ और चौराहे (और अंतर, लेकिन यह एक एक प्रकार का वृक्ष है) की गणना पर अनुकूली कम सीमा दिखाने के लिए प्रमाण पत्र की अवधारणाओं (वे उन्हें "प्रमाण" कहते हैं) का उपयोग किया। अपने काम को बाहर न करें क्योंकि उन्होंने कंप्यूटिंग त्रुटियों से बचाने के लिए प्रमाण पत्र का उपयोग नहीं किया: उन्होंने दिखाया कि भले ही सबसे खराब स्थिति में प्रमाण पत्र के आकार में रैखिक हो सकता है, यह अक्सर कम होता है, और इसलिए इसे "जांचा जा सकता है" "सुपाच्य समय में (एक सॉर्ट किए गए सरणी या बी-ट्री के रूप में इनपुट को यादृच्छिक रूप से दिया जाता है), और विशेष रूप से इस तरह के प्रमाण पत्र की गणना करने के लिए आवश्यक से कम समय में।

    • मैं कई अन्य समस्याओं पर प्रमाण पत्र की अवधारणा का उपयोग कर रहा हूं, जब से इयान मुनरो ने एलेनेक्स 2001 में अपना कार्यान्वयन पेश किया है , और विशेष रूप से क्रमपरिवर्तन के लिए (बेशर्म प्लग के लिए माफी, एक और एक आ रहा है), जहां प्रमाण पत्र सबसे अच्छा मामले में कम है सबसे खराब या औसत मामले की तुलना में, जो क्रमपरिवर्तन के लिए एक संकुचित डेटा संरचना देता है। यहाँ फिर से, सर्टिफिकेट (यानी ऑर्डर) की जाँच करना अधिकांश रैखिक समय पर होता है, जो इसे गणना करने से कम है (यानी क्रमबद्ध करना)।

  2. त्रुटि की जांच के लिए अवधारणा हमेशा उपयोगी नहीं होती है: ऐसी समस्याएं हैं जहां प्रमाण पत्र की जांच में इसे उत्पादन करने में अधिक समय लगता है (या बस परिणाम का उत्पादन होता है)। दो उदाहरण दिमाग में आते हैं, एक तुच्छ और एक जटिल, ब्लम और कन्नन (टिप्पणियों में उल्लिखित) अन्य देते हैं।

    • nn
    • दो और तीन आयामों में उत्तल हल के लिए प्रमाण पत्र, यदि अंक यादृच्छिक क्रम में दिए गए हैं, तो [FOCS 2009] (अन्य बेशर्म प्लग) की तुलना करने के लिए बिट्स को सांकेतिक शब्दों में बदलना चाहिए ।

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

आशा है ये मदद करेगा...


शुक्र है कि बहुत दिलचस्प है। अपनी बात के संबंध में 2. मुझे लगता है कि मैं कुछ अलग बात कर रहा हूं। समस्या कोड में बग नहीं है, बल्कि एल्गोरिदम जो हम जानते हैं कि गलत उत्तर दे सकते हैं। इसके अलावा, एक सांसारिक स्तर पर मुझे यह भी नहीं पता है कि कई गणितीय कार्यों के लिए एक उपयोगी प्रमाण पत्र कैसा दिखेगा। उदाहरण के लिए एक अनंत राशि या कहें, किसी फ़ंक्शन का न्यूनतमकरण।

थोड़ा साफ होना। ऐसा लगता है कि बहुत से गणित की समस्याओं के लिए सही एल्गोरिदम को तैयार करना बहुत कठिन है। हालाँकि, हम उन एल्गोरिदम के साथ रहते हैं जो व्यावहारिक कारणों से हमें (और वास्तव में गलत रूप से गलत हैं) चेतावनी के बिना गलती कर सकते हैं। यह आशा है कि समस्याओं के समान सेट के लिए सही ढंग से सही चेकर्स को सही ढंग से तैयार करना कठिन नहीं है।

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

यह एक दिलचस्प सवाल है और हो सकता है कि यहां कोई व्यक्ति निश्चित रूप से जानता हो .. हालांकि मैं जिन गलत उत्तरों के बारे में बात कर रहा हूं उनमें से कई संख्यात्मक गणनाओं के लिए नहीं हैं, इसलिए इसका मतलब है कि कम से कम प्राइमा फेसिअल है कि समस्याएं आपके द्वारा वर्णित से अधिक हैं। मुझे कंप्यूटिंग सीमा / अनंत रकम आदि की जटिलता का पता नहीं है, लेकिन मुझे लगता है कि सामान्य तौर पर वे सबसे खराब स्थिति में असाध्य होते हैं और इसलिए उत्तराधिकार जो कभी-कभी गलत उत्तर देते हैं उनकी आवश्यकता / उपयोगी होती है। mathematica.stackexchange.com/questions/tagged/bugs गलत होने वाली चीज़ों के लिए एक भावना प्राप्त करने के लिए असुविधाजनक नहीं है।

सैद्धांतिक सीएस में स्व-परीक्षण की अवधारणा है, जो रैखिक बीजगणित में कई समस्याओं पर लागू होती है। बुनियादी विचारों में से एक यह है कि कई समस्याओं के लिए, समाधान की जांच की जा सकती है (शायद थोड़ी अतिरिक्त जानकारी के साथ) इससे अधिक आसानी से गणना की जा सकती है। उदाहरण देखें https://doi.org/10.1016/0022-0000(93)90044-W
नील युवा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.