प्लॉट निरीक्षण को कैसे मूर्ख बनाया जाए?


23

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

जब TCS पढ़ाते हैं, तो हमेशा वह छात्र होता है जो पूछता है: "क्या मुझे औपचारिक प्रमाण की आवश्यकता है अगर मैं सिर्फ X कर सकता हूँ जो हमेशा काम करता है?" यह उनके शिक्षक (ओं) पर निर्भर करता है कि वे किस बिंदु पर और स्पष्टता का वर्णन करें। स्पष्ट पैटर्न के उदाहरणों का एक शानदार सेट है जो अंततः math.SE पर विफल होता है, लेकिन वे काफी गणितीय परिदृश्य हैं।

तो, आप प्लॉट निरीक्षण को कैसे मूर्ख बनाते हैं? कुछ मामले ऐसे होते हैं, जिनमें अंतर, एपार्ट को बताना मुश्किल होता है, जैसे

उदाहरण उदाहरण उदाहरण
[ स्रोत ]

एक अनुमान लगाएं, और फिर वास्तविक कार्यों के लिए स्रोत की जांच करें। लेकिन वे उतने शानदार नहीं हैं जितना कि मैं विशेष रूप से उम्मीद करूंगा, क्योंकि वास्तविक संबंधों को अकेले फ़ंक्शन से भी आसान है, यहां तक ​​कि शुरुआत के लिए भी।

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


2
वास्तव में, मैंने इसे समस्या को समझने के लिए एक टिप के रूप में प्रस्तावित किया।
डेव क्लार्क

@DaveClarke: मुझे पता है; मैंने आपके आरंभिक सूत्रीकरण को एक उत्तेजक सलामी बल्लेबाज के रूप में इस्तेमाल किया। कोई अपराध नहीं।
राफेल

जवाबों:


23

(logn)anbO(nlogn)O(n0.6)

भूखंड
[ स्रोत ]

[0,1]n0.6n0.7n1/2log3/4nn2/3


15

यहां एक और (उदाहरण के लिए निर्मित) उदाहरण है, लेकिन फिर भी मुझे उल्लेखनीय लगता है। यह दिखाने का इरादा है कि विषम विकास को पहचानने के लिए भूखंड बहुत भ्रामक हो सकते हैं।

fg

क्या आप अनुमान लगा सकते हैं कि कौन से कार्य तेजी से (बढ़ते हुए) बढ़ रहे हैं?

2000 तक f और g का प्लॉट f और g का प्लॉट 10,000 तक है एफ और जी की साजिश 200,000 तक

fg

f(x)=x2
g(x)=sin(log(x))+1dxdx=x2(135cos(log(x))+15sin(log(x))).

तो अनिवार्य रूप से , अर्थात के समान , लेकिन इसकी दूसरी व्युत्पत्ति समान रूप से नहीं है , लेकिन और बीच तेजी से बढ़ती अवधि के साथ दोलन करती है । यह दोलन साधारण भूखंडों में दिखाई नहीं देता है।gx2f204

के लिए यह उदाहरण के लिए, हम एक लॉग-लॉग-भूखंड पर विचार करके दोलनों demask कर सकते हैं:

200,000 तक का लॉग-लॉग-प्लॉट और जी

बेशक, यह सामान्य रूप से मदद नहीं करता है; उदाहरण के लिए, हमारे पास दोगुना घातीय अवधि हो सकती है ...


12

एक अच्छा उदाहरण Brzozowski का गहरा जादुई न्यूनतम DFA एल्गोरिथ्म है। एक परिमित , हम इसमें से एक न्यूनतम नियतात्मक परिमित गणना कर सकते हैं:N=(Q,SQ,FQ,RQ×Σ×Q)

Minimize:NFADFA=DeterminizeReverseDeterminizeReverse

यह स्पष्ट रूप से सबसे खराब स्थिति वाला घातीय समय एल्गोरिथ्म है, क्योंकि यह एक nondeterministic automaton ले सकता है और आपको एक निर्धारक एक (या इससे भी अधिक स्पष्ट रूप से, यह दो बार सबसेट निर्माण कहता है) दे सकता है।

हालाँकि, यदि आप ब्रेज़ोज़ोव्स्की के एल्गोरिथ्म को इनपुट के रूप में डीएफए देते हैं, तो कई सामान्य प्रकार के इनपुट पर यह विशेष रूप से विशेषीकृत डीएफए-मिनिमाइजेशन एल्गोरिदम के साथ प्रतिस्पर्धा कर सकता है (जो आमतौर पर , या यदि आप हार्ड-कोर हैं और हॉपक्राफ्ट के एल्गोरिथ्म को लागू करते हैं)।O ( n log ( n ) )O(n2)O(nlog(n))

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

क्विकॉर्ट का अंतर "केवल" द्विघात / लॉग-रैखिक है, जो एक बहुपद / घातीय अंतर की तुलना में कम शानदार है। सिम्प्लेक्स एल्गोरिथ्म में समान रूप से शानदार अंतर है, लेकिन यह विश्लेषण ब्रेज़ोज़ोवस्की के एल्गोरिथ्म की तुलना में काफी जटिल है।

(इसके अलावा, मुझे लगता है कि ब्रेज़ोज़ोव्स्की का डीएफए कम से कम एल्गोरिथ्म बहुत कम प्रसिद्ध है, जितना कि वह इसके लायक है, लेकिन निश्चित रूप से यह स्वाद का मामला है।)


क्षमा करें, लेकिन मैं फ़ंक्शन प्लॉट की व्याख्या करने के लिए कनेक्शन नहीं देखता हूं।
राफेल

3
मुझे लगता है कि आप उदाहरणों के नमूने के लिए कथानक प्रदर्शन बनाम उदाहरण आकार जैसे कुछ करेंगे - और ब्रोज़ोज़ोव्स्की एल्गोरिथ्म तब तक "बहुपद" दिखेगा जब तक कि आप इसे घातीय समय बनाने के लिए उदाहरण नहीं चुनते।
नील कृष्णस्वामी

1
समझा। यह निश्चित रूप से एक मुद्दा है जब एल्गोरिदम को बेंचमार्क करना और औसत रनटाइम को प्लॉट करना, यानी सही डेटा को प्लॉट करने का मुद्दा । जब मैंने सवाल उठाया तो मैं केवल साजिश की सही ढंग से व्याख्या करने के बारे में सोच रहा था , जो पूरी तरह से एक और जानवर है। क्या आप कृपया इस परिप्रेक्ष्य को उत्तर में जोड़ सकते हैं?
राफेल

आपको सभी एल्गोरिदम के लिए एक ही समस्या होगी जिसमें अलग-अलग औसत और सबसे खराब स्थिति होती है; क्विकसॉर्ट और सिम्पलेक्स दिमाग में आते हैं।
राफेल

8

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

यहां छवि विवरण दर्ज करें

मैं उच्च क्रम के बहुपदों का उपयोग कर सकता था, और इस ग्राफ से बेहतर प्लॉट निरीक्षण को भी मूर्ख बना सकता था।


2
यह सच है। हालांकि इसका कृत्रिम स्वाद भी है। यकीन है कि मैं इस तरह से छात्रों के लिए काउंटर-उदाहरण उत्पन्न कर सकता हूं, लेकिन मुझे इससे अधिक संदेह नहीं है। क्या इस घटना की "प्राकृतिक" घटनाएं हैं (अर्थात उच्च डिग्री की बहुपद कार्य जो अन्य कार्यों के लिए गलत हो सकती हैं) जहां गलत व्याख्या "घातक" है?
राफेल

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