Tuesday 16 January 2018

चलती - औसत - ऑनलाइन - एल्गोरिथ्म


मुझे फ्लैट फ़ाइल पढ़ने पाश में पिछले 7 दिनों के काम के घंटे का ट्रैक रखने की आवश्यकता है I काम रोस्टरों की थकान क्षमता को मापने के लिए इसका इस्तेमाल किया जा रहा है अभी मेरे पास कुछ है जो काम करता है, परन्तु यह शब्दशः लगता है और मुझे यकीन नहीं है कि क्या एक पैटर्न अधिक सटीक है। वर्तमान में, मेरे पास पिछले x दिनों के डेटा को पकड़ने के लिए एक स्थिर सरणी के साथ एक जावा क्लास है, और जैसा कि मैंने फाइल के माध्यम से पढ़ा है, मैं पहला तत्व काट कर और दूसरे 6 (एक सप्ताह के लिए रोलिंग के लिए) को एक करके वापस ले जाता हूं इस स्थिर सरणी का प्रसंस्करण अपनी पद्धति में किया जाता है। मेरा प्रश्न: क्या यह एक उचित डिजाइन दृष्टिकोण है, या इस काम को अंधाधुंध रूप से स्पष्ट और सरल किया जा रहा है धन्यवाद दोस्तों ने 30 अगस्त को 14:33 पूछा धन्यवाद बहुत लोग: Iveve संदेश मिला: एक उच्च स्तरीय ऑब्जेक्ट का उपयोग करें और शोषण प्रासंगिक तरीके या एक परिपत्र बफर महान जवाब, उनमें से सभी जब आप इसके बारे में सोचते हैं, तो आपको हमेशा पूरी सरणी तक पहुंच की आवश्यकता होती है, ताकि आप उस पहली प्रविष्टि से छुटकारा पा सकें - जो मुझे अपने दम पर 100 यकीन हो। I39m राहत मिली है कि मुझे कुछ 1 लाइनर याद नहीं था और मूल रूप से एक उचित, अगर कुशल और संक्षिप्त ट्रैक पर नहीं था इस बारे में मुझे इस साइट के बारे में क्या पसंद है: उच्च गुणवत्ता वाले लोगों से संबंधित जवाब, जो उनके शोर्ट को जानते हैं ndash Pete855217 अगस्त 30 11 पर 15:05 आप चालू क्यों शुरू करते हैं कुल को रद्द करने के लिए इसकी प्रकार क्या है, जहां इसे घोषित किया जाता है यह अच्छा होगा यदि आप कुछ कोड नमूने डालते हैं जो वास्तविक जावा कोड के समान है। आगे बढ़ते हुए, मेरी आलोचना निम्न होगी: आपका फ़ंक्शन बहुत अधिक होता है I एक समारोह या विधि, एकजुट होनी चाहिए। अधिक उपयुक्त, उन्हें एक काम करना चाहिए और केवल एक ही चीज़ करना चाहिए इससे भी बदतर, आपके लूप के लिए क्या होता है जब x 5 आप चल रहे कुल संख्या को चालू करते हैं कुल संख्या 5 लेकिन तब आपके पास स्थिति 5 और 6 पर समान मूल्य की दो प्रतियां हैं। आपके डिज़ाइन में, आपके फ़ंक्शन movesshuffles आपके सरणी में आइटम की कुल प्रिंट की गणना करता है मानक त्रुटि के सामान सामान यह बहुत अधिक देता है। मेरा पहला सुझाव सरणी में सामग्री को स्थानांतरित करने के लिए नहीं है। इसके बजाय, एक परिपत्र बफर को लागू करें और इसे सरणी के बजाय उपयोग करें। यह आपके डिजाइन को आसान बना देगा मेरा दूसरा सुझाव है कि चीजों को एकजुट करने वाले कार्यों में तोड़ दिया जाए: एक डेटा संरचना (एक परिपत्र बफर) है जो आपको इसे जोड़ने की अनुमति देता है (और जब भी इसकी क्षमता पहुंचता है तो सबसे पुराना प्रविष्टि निकल जाता है।) डेटा संरचना को लागू करने के लिए एक इंटरएटर के पास एक फ़ंक्शन होता है जो इटरेटर पर कुल गणना करता है (आप परवाह नहीं करते हैं कि आप किसी सरणी, सूची या परिपत्र के द्वारा खरीदे गए हैं।) इसे कॉल न करें। इसे योग कॉल करें, जो कि आप कंप्यूटिंग हैं यह बात क्या है कि यह क्या है :) यह बहुत अच्छी जानकारी है, हालांकि यह याद रखना है कि यह फ़ंक्शन क्लास की कार्यक्षमता का एक छोटा सा हिस्सा है, और यह इसे सही बनाने के लिए बहुत अधिक कोड जोड़ने के लिए अतिरेक होगा। आप तकनीकी रूप से सही हैं, और मैं समझता हूं कि मेरे कोड में 39 टीओएल 39 ज्यादा है, लेकिन एक ही समय में कभी-कभी यह सही है कि पूर्णता के लिए जाने के बजाय छोटे, स्पष्ट कोड के पक्ष में गलती होगी। अपने जावा कौशल को देखते हुए, यहां तक ​​कि क्यूकोडोल भी बनाने से आप संकलन के बारे में बता सकते हैं कि मुझे इस पर मेरा बजट उड़ाया जाएगा, लेकिन स्पष्ट विवरण के लिए धन्यवाद। ndash Pete855217 अगस्त 31 11 बजे 2:23 हम्म्, यह पूर्णता के बारे में नहीं है, लेकिन स्थापित औद्योगिक प्रथाओं के बारे में जो हमें पिछले 3 दशकों से पता है। क्लीन कोड हमेशा एक है जो विभाजन किया गया है। हमारे पास दशकों से सबूत हैं जो दर्शाते हैं कि यह सामान्य मामले में जाने का तरीका है (लागत-दक्षता, दोष में कमी, समझ, आदि के संदर्भ में) जब तक कि यह एक बार की तरह बात नहीं है, इस तरह से कोई भी समस्या विश्लेषण शुरू होने पर ऐसा करने के लिए कभी महंगा नहीं होता है 101 को कोडिंग, समस्या को तोड़ना और कोड निम्नानुसार है, न तो ओक्करिल और न ही कठिन) ndash luis. spinal अगस्त 31 11 पर 15:55 आपका काम बहुत आसान है और आपके द्वारा अपनाई गई प्रगति निश्चित रूप से नौकरी के लिए अच्छा है हालांकि, यदि आप बेहतर डिज़ाइन का उपयोग करना चाहते हैं, तो आपको उस नंबर की संख्या से छुटकारा मिलना चाहिए जो आपको बेहतर फीफो कतार का उपयोग करना चाहिए और धक्का और पॉप विधियों का अच्छा उपयोग करना चाहिए, जिस तरह कोड किसी भी डेटा आंदोलन को प्रतिबिंबित नहीं करेगा, सिर्फ दो तर्क क्रिया नए डेटा का और 7 दिन से पुराने डेटा को हटा दें। उत्तर अगस्त 30 11 पर 14: 4 9 ए उन्नत कॉडस मूविंग एॉलगोरिदम में उन्नत देखो उन्नत कॉडस एल्गोरिथ्म में बहुमुखी चलती औसत तरंग शोर, निष्कर्षों का मतलब है, और आधार रेखा के बहाव को समाप्त करता है। चलती औसत एक सरल गणितीय तकनीक है जो मुख्य रूप से अपवितरण को खत्म करने और डेटा बिंदुओं के संग्रह में वास्तविक प्रवृत्ति को प्रकट करने के लिए उपयोग किया जाता है। आप नए वैज्ञानिक भौतिकी प्रयोग में शोरयुक्त डेटा की औसत से या किसी निवेश के मूल्य पर नज़र रखने से परिचित हो सकते हैं। आपको शायद यह नहीं पता कि चलती औसत परिमित आवेग प्रतिक्रिया फ़िल्टर का एक प्रोटोटाइप है, कंप्यूटर-आधारित उपकरण में उपयोग किए जाने वाले सबसे सामान्य प्रकार के फ़िल्टर। ऐसे मामलों में जहां एक दिया गया तरंग शोर से बरबाद होता है, जहां एक आवधिक आवधिक संकेत से निकाले जाने की ज़रूरत होती है, या जहां धीरे-धीरे बहती आधार रेखा को उच्च आवृत्ति संकेत से समाप्त करने की आवश्यकता होती है, वांछित प्राप्त करने के लिए चलती औसत फिल्टर लागू किया जा सकता है परिणाम। एडवांस्ड कॉडस की बढ़ती औसत एल्गोरिथ्म इस तरह की तरंग फ़िल्टरिंग प्रदर्शन को पेश करता है। उन्नत कॉडस एक विश्लेषण सॉफ्टवेयर पैकेज है जो कि पहली पीढ़ी के WinDaq या दूसरी पीढ़ी के WinDaq डाटा अधिग्रहण संकुल द्वारा बनाई गई मौजूदा तरंग डेटा फ़ाइलों पर चल रही है। चलती औसत एल्गोरिदम के अलावा, उन्नत कॉडस में तरंग एकीकरण, भेदभाव, शिखर और घाटी पर कब्जा करने, सुधार और अंकगणित संचालन के लिए एक रिपोर्ट जनरेटर उपयोगिता और सॉफ़्टवेयर रूटिटी भी शामिल हैं। औसतन एल्गोरिथम चलते औसत फ़िल्टर थ्योरी DATAQ उपकरण चलते हुए तरंग फ़िल्टरिंग अनुप्रयोगों में लचीलेपन का एक बड़ा सौदा देता है। यह कई प्रकार के तरंगों में अंतर्निहित शोर को निचोड़ने के लिए एक कम-पास वाले फिल्टर के रूप में इस्तेमाल किया जा सकता है, या उच्च आवृत्ति संकेत से एक बहती आधार रेखा को समाप्त करने के लिए उच्च पास वाले फिल्टर के रूप में। फ़िल्टरिंग की मात्रा निर्धारित करने के लिए एल्गोरिथ्म द्वारा उपयोग की जाने वाली प्रक्रिया में एक चौरसाई कारक का उपयोग शामिल है। सॉफ़्टवेयर के माध्यम से आपके द्वारा नियंत्रित इस चिकनाई का पहलू, वास्तविक तरंग डाटा पॉइंट या नमूनों की संख्या को निर्दिष्ट करने के लिए बढ़ा या घटाया जा सकता है जो कि चलती औसत अवधि होगी। किसी आवधिक तरंग को एक लंबी स्ट्रिंग या डेटा बिंदुओं के संग्रह के रूप में माना जा सकता है। एल्गोरिथ्म औसत आंकड़ों की गणना के साथ तरंग के पहले डेटा बिन्दु को बदलकर, डेटा पॉइंट की कुल संख्या से जोड़कर, उनका जोड़, अधिग्रहित तरंग से इन आंकड़ों के दो या अधिक अंक ले कर चलती औसत को पूरा करता है, और डेटा के अंत तक डेटा तक पहुंचने तक डेटा बिंदुओं पर दूसरे, तीसरे और इतने सारे कदम दोहराते हैं। इसका नतीजा औसत डेटा से मिलकर एक दूसरा या उत्पन्न तरंग होता है और मूल तरंग के समान अंकों की संख्या होती है। चित्रा 1 8212 किसी भी आवधिक तरंग को एक लंबी स्ट्रिंग या डेटा बिंदुओं के संग्रह के रूप में माना जा सकता है। उपरोक्त उदाहरण में, लगातार तरंग डेटा अंक को quotyquot द्वारा दर्शाया जाता है कि यह दर्शाता है कि चलती औसत की गणना कैसे की जाती है। इस मामले में, तीन का एक चौरसाई कारक लागू किया गया था, जिसका अर्थ है मूल तरंग से लगातार तीन डेटा बिंदु जोड़े गए हैं, उनका योग तीन से विभाजित है, और फिर यह अंश एक उत्पन्न तरंग के पहले डेटा बिंदु के रूप में रखा गया है। डेटा को समाप्त होने तक मूल तरंग के डेटा बिंदुओं पर दूसरी, तीसरी और इतनी प्रक्रिया दोहराता है। एक विशेष कोटिफाइंग टेक्नोलॉजी तकनीक मूल तरंग-फार्म के शुरुआती और अंतिम डाटा पॉइंट की औसत है, यह सुनिश्चित करने के लिए कि उत्पन्न तरंग में मूल संख्या के समान डेटा अंक होते हैं। चित्रा 1 चित्रा 1 दिखाता है कि चलती औसत एल्गोरिथ्म तरंग डेटा बिंदुओं पर लागू होता है (जो y द्वारा दर्शाया गया है)। इस चित्रण में 3 का एक चौरसाई कारक है, जिसका अर्थ है कि औसत मूल्य (एक द्वारा दर्शाया गया) की गणना 3 लगातार तरंग डेटा डेटा मूल्यों पर की जाएगी। ध्यान दें कि चलती औसत गणनाओं में मौजूद ओवरलैप यह अतिव्यापी तकनीक है, एक विशेष शुरुआत के साथ - और अंत-बिंदु के उपचार के साथ जो मूल में मौजूद औसत तरंग में मौजूद आंकड़ों के अंकों की समान संख्या उत्पन्न करता है। जिस तरह से एल्गोरिथ्म चलती औसत की गणना करता है, वह करीब से देखने योग्य है और एक उदाहरण के साथ सचित्र किया जा सकता है। कहते हैं कि हम दो सप्ताह के लिए भोजन पर रहे हैं और हम पिछले 7 दिनों में हमारे औसत वजन की गणना करना चाहते हैं। हम 7, 9, 10, 11, 12 और 13 के दिनों में हमारे वजन के साथ दिन 7 पर अपना वजन बढ़ाते हैं और फिर 17 से गुणा करें। प्रक्रिया को औपचारिक रूप देने के लिए, इसे व्यक्त किया जा सकता है: a (7) 17 (y 7) वाई (8) वाई (9)। वाई (13)) इस समीकरण को और सामान्यीकृत किया जा सकता है। एक तरंग के चलती औसत से गणना की जा सकती है: कहां: एक औसत मूल्य एन डेटा बिंदु स्थिति की चौरसाई कारक वाई वास्तविक डेटा बिंदु मूल्य चित्रा 2 8212 लोड सेल उत्पादन तरंग शीर्ष चैनल में मूल और अनफ़िल्टर्ड और एक 11-बिंदु नीचे चैनल में औसत तरंग हिलना। मूल तरंग पर दिखने वाला शोर पैकेज़िंग ऑपरेशन के दौरान प्रेस द्वारा बनाई गई तीव्र कंपन के कारण था। इस एल्गोरिथ्म की लचीलापन की कुंजी इसकी चुनिंदा चौरसाई कारकों (2 - 1,000 से) की विस्तृत श्रृंखला है। चौरसाई कारक निर्धारित करता है कि कितने वास्तविक डेटा बिंदु या नमूनों का औसत होगा। किसी भी सकारात्मक चौरसाई कारक को निर्दिष्ट करते हुए एक कम-गुजारें फ़िल्टर को सिग्नल करते हुए एक नकारात्मक चौरसाई कारक निर्दिष्ट करते हुए एक हाई-पास फ़िल्टर का अनुकरण करता है। चौरसाई कारक के पूर्ण मूल्य को देखते हुए, उच्च मूल्यों के परिणामी तरंग पर अधिक चौरसाई बाधाएं लागू होती हैं और इसके विपरीत, कम मूल्य कम चौरसाई को लागू होते हैं। उचित चौरसाई कारक के आवेदन के साथ, एल्गोरिथ्म का उपयोग किसी निश्चित आवधिक तरंग के माध्य मूल्य को निकालने के लिए भी किया जा सकता है। एक उच्च सकारात्मक चौरसाई कारक आम तौर पर औसत तरंग मान पैदा करने के लिए उपयोग किया जाता है। स्थानांतरण औसत एल्गोरिथम को लागू करना चल औसत औसत एल्गोरिथ्म की एक प्रमुख विशेषता यह है कि वांछित फ़िल्टरिंग परिणाम प्राप्त करने के लिए आवश्यक होने पर इसे एक ही तरंग में कई बार लागू किया जा सकता है। तरंग फिल्टरिंग बहुत ही व्यक्तिपरक व्यायाम है एक उपयोगकर्ता को ठीक से फ़िल्टर्ड तरंग किसी अन्य के लिए अस्वीकार्य शोर हो सकता है। केवल आप ही फैसला कर सकते हैं कि चयनित औसत अंकों की संख्या बहुत अधिक थी, बहुत कम है या सिर्फ सही है। एल्गोरिथ्म की लचीलेपन आपको चौरसाई कारक को समायोजित करने और एल्गोरिथ्म के माध्यम से एक और पास बनाने की अनुमति देता है जब प्रारंभिक प्रयास से संतोषजनक परिणाम प्राप्त नहीं किए जाते हैं। निम्नलिखित उदाहरणों द्वारा चलती औसत एल्गोरिथ्म के अनुप्रयोग और क्षमताओं को सर्वोत्तम रूप से सचित्र किया जा सकता है। चित्रा 3 8212 ईसीजी तरंग शीर्ष चैनल में मूल और अनफ़िल्टर्ड दिखाया गया है और नीचे की तरफ 97-अंक बढ़ते औसत तरंग के रूप में। नीचे चैनल में आधार रेखा के बहाव की अनुपस्थिति पर ध्यान दें। प्रस्तुति प्रयोजनों के लिए संकुचित हालत में दोनों तरंगों को दिखाया गया है शोर कटौती आवेदन मामलों में जहां एक दिया तरंग शोर से बरबाद है, चलती औसत फिल्टर शोर को दबाने और तरंग के स्पष्ट चित्र उत्पन्न करने के लिए लागू किया जा सकता है। उदाहरण के लिए, एक उन्नत कॉडस ग्राहक पैकेजिंग ऑपरेशन में एक प्रेस और लोड सेल का उपयोग कर रहा था। उत्पाद को शामिल करने के लिए आवश्यक पैकेज के आकार को कम करने के लिए उनके उत्पाद को पूर्व निर्धारित स्तर (लोड सेल द्वारा मॉनिटर किया गया) में संकुचित किया जाना था। गुणवत्ता नियंत्रण के कारणों के लिए, उन्होंने वाद्य यंत्र के साथ प्रेस ऑपरेशन की निगरानी करने का निर्णय लिया। एक अनपेक्षित समस्या तब सामने आई जब वे वास्तविक समय लोड सेल आउटपुट देखने लग गए। चूंकि प्रेस मशीन ने ऑपरेशन में काफी समय तक स्पंदित किया था, लोड सेल आउटपुट तरंग को समझना मुश्किल था, क्योंकि चित्रा 2 के शीर्ष चैनल में दिखाए गए अनुसार स्पंदन के कारण इसमें बड़ी मात्रा में शोर था। इस शोर को 11-अंक बढ़ते हुए औसत चैनल के रूप में दिखाया गया था, जैसा कि चित्रा 2 के नीचे वाले चैनल में दिखाया गया है। परिणाम लोड कोशिकाओं के उत्पादन की एक बहुत स्पष्ट तस्वीर थी। बेसलाइन बहाव को खत्म करने के लिए एक आवेदन जहां धीरे-धीरे बहती आधार रेखा को उच्च आवृत्ति संकेत से हटाया जाना आवश्यक है, चलती औसत फिल्टर को बहती आधार रेखा को खत्म करने के लिए लागू किया जा सकता है। उदाहरण के लिए, ईसीजी तरंग आमतौर पर कुछ हद तक बेसलाइन भटकते दिखाता है जैसा कि चित्रा 3 के शीर्ष चैनल में देखा जा सकता है। चित्रा 3 के निचले चैनल में दिखाए गए अनुसार वेवफॉर्म की विशेषताओं को बदलने या परेशान करने के बिना यह आधार रेखा के बहाव को समाप्त किया जा सकता है। चलती औसत गणना के दौरान यह उचित नकारात्मक-मूल्य चौरसाई कारक लगाने से पूरा किया जाता है। उपयुक्त चौरसाई कारक एक नमूना अंतराल द्वारा एक तरंग अवधि (सेकेंड में) को विभाजित करके निर्धारित किया जाता है। चैनल नमूना अंतराल केवल चैनल नमूना दर का पारस्परिक है और आसानी से चलती औसत उपयोगिता मेनू पर प्रदर्शित किया जाता है। वेवफॉर्म की अवधि आसानी से डिस्प्ले स्क्रीन से कर्सर को तरंग के सुविधाजनक बिंदु पर स्थितिबद्ध करके, एक समय मार्कर सेट करके, और फिर कर्सर को एक पूर्ण चक्र को प्रदर्शित समय मार्कर से स्थानांतरित करके आसानी से निर्धारित किया जाता है कर्सर और समय मार्कर के बीच का अंतर अंतर एक तरंग अवधि है और स्क्रीन के निचले भाग में सेकंड में प्रदर्शित होता है। हमारे ईसीजी उदाहरण में, वेवफॉर्म .004 सेकंड (चलती औसत उपयोगिता मेनू से प्राप्त) के एक चैनल का नमूना अंतराल था और एक तरंग अवधि की अवधि को .388 सेकंड तक मापा गया था। चैनल नमूना अंतराल द्वारा तरंग अवधि को बांटने में हमें 97 का एक चौरसाई कारक दिया। चूंकि यह आधार रेखा का बहाव है कि हम को नष्ट करने में रुचि है, हमने चलने वाले औसत एल्गोरिदम को नकारात्मक चौरसाई कारक (-97) लागू किया है। प्रभाव में यह मूल तरंग सिग्नल से चलती औसत परिणाम को घटाया, जिसने तरंग जानकारी को परेशान किए बिना आधार रेखा के बहाव को समाप्त कर दिया। अन्य तरंग मूविंग औसत मुद्दों जो भी आवेदन, चलती औसत फिल्टर को लागू करने के लिए सार्वभौमिक कारण उच्च और निम्न विचलन से बाहर निकलने के लिए और अधिक प्रतिनिधि मध्यवर्ती तरंग मान दिखाती है। ऐसा करते समय, सॉफ़्टवेयर को चलती औसत तरंग पैदा करने की प्रक्रिया में मूल तरंग के अन्य विशेषताओं का समझौता नहीं करना चाहिए। उदाहरण के लिए, सॉफ्टवेयर स्वचालित रूप से मूल डेटा फ़ाइल के साथ जुड़े अंशांकन जानकारी को समायोजित कर लेगा, ताकि जेनरेट होने पर बढ़ते औसत तरंग उचित इंजीनियरिंग इकाइयों में हो। आंकड़ों के सभी रीडिंग्स को WinDaq डेटा अधिग्रहण सॉफ्टवेयर के माध्यम से लिया गया था मैं अब तक प्राप्त हुई गिनती और कुल डेटा को संग्रहित किए बिना चल संचयी औसत की गणना करने का एक तरीका ढूंढने की कोशिश कर रहा हूं। मैं दो एल्गोरिदम के साथ आया था, लेकिन दोनों को गणना करने की आवश्यकता है: नए औसत (पुराने पुराने पुराने डेटा) अगले डेटा) अगले नए औसत पुरानी औसत (अगले डेटा-पुरानी औसत) को अगली गिनती इन विधियों के साथ समस्या यह है कि गणना परिणामस्वरूप औसत में सटीक खोने के परिणामस्वरूप बड़ा और बड़ा हो जाता है। पहली विधि पुराने गणना और अगली गिनती का उपयोग करती है जो स्पष्ट रूप से 1 अलग हैं। यह मुझे सोचने लगा कि शायद गिन को निकालने का एक तरीका है, लेकिन दुर्भाग्य से मुझे यह अभी तक मिला है। यह मुझे थोड़ी आगे ले गया, जिसके परिणामस्वरूप दूसरी विधि बन गई लेकिन अभी भी गिनती मौजूद है। क्या यह संभव है, या क्या मैं सिर्फ 28 सितंबर 8:46 पर पूछा असंभव पूछता हूं

No comments:

Post a Comment