मैं अक्सर कंप्यूटर विज्ञान में सिमुलेशन और अनुकरण देखता हूं । ये दो शब्द पर्यायवाची लगते हैं। वहाँ के बीच कोई अंतर है सिमुलेशन और अनुकरण ?
मैं अक्सर कंप्यूटर विज्ञान में सिमुलेशन और अनुकरण देखता हूं । ये दो शब्द पर्यायवाची लगते हैं। वहाँ के बीच कोई अंतर है सिमुलेशन और अनुकरण ?
जवाबों:
हां, अवधारणाएं अलग हैं।
ए simulation
एक ऐसी प्रणाली है जो कुछ और के समान व्यवहार करती है, लेकिन इसे पूरी तरह से अलग तरीके से लागू किया जाता है। यह एक प्रणाली का मूल व्यवहार प्रदान करता है, लेकिन जरूरी नहीं कि प्रणाली के सभी नियमों का पालन किया जा सकता है। यह वहाँ है कि आप कैसे कुछ काम करता है के बारे में एक विचार दे।
उदाहरण
एक उदाहरण के रूप में एक उड़ान सिम्युलेटर के बारे में सोचो। ऐसा लगता है और लगता है जैसे आप एक हवाई जहाज उड़ा रहे हैं, लेकिन आप पूरी तरह से विमान को उड़ाने की वास्तविकता से अलग हो गए हैं, और आप उन नियमों को मोड़ सकते हैं या तोड़ सकते हैं जैसे आप फिट देखते हैं। उदाहरण के लिए, लंदन और सिडनी के बीच एक एयरबस ए 380 को उल्टा लटकाएं।
एक emulation
ऐसी प्रणाली है जो बिल्कुल कुछ और की तरह व्यवहार करती है , और सिस्टम के सभी नियमों का पालन करती है। यह प्रभावी रूप से एक और प्रणाली की पूर्ण प्रतिकृति है, जो कि अनुकरणीय प्रणाली के इनपुट और आउटपुट के साथ बाइनरी संगत होने के लिए सही है, लेकिन मूल उत्सर्जित प्रणाली के वातावरण के लिए एक अलग वातावरण में काम कर रहा है। नियम निर्धारित हैं, और उन्हें बदला नहीं जा सकता है, या सिस्टम विफल हो जाता है।
उदाहरण
MAME प्रणाली यह बहुत ही आधार आसपास बनाया गया है। उन सभी पुराने आर्केड सिस्टम जिन्हें लंबे समय से भुला दिया गया है, जो लगभग पूरी तरह से हार्डवेयर में लागू किए गए थे, या उनके हार्डवेयर सिस्टम के फर्मवेयर में मूल कीड़े और क्रैश के ठीक नीचे अनुकरण किए जा सकते हैं जो तब संभव होता है जब आप उच्चतम संभव स्कोर तक पहुंचते हैं।
एक सिमुलेशन स्पष्ट रूप से आप आपकी क्वेरी से प्रासंगिक सुविधाओं को बनाए रखने, और अप्रासंगिक लोगों को छोड़ना चाहते हैं - एक मॉडल कुछ और जो उस चीज़ की सुविधाओं में से कुछ reproduces और दूसरों को बाहर छोड़ देता है का निर्माण किया है।
उदाहरण के लिए, सुबह-सुबह कम्यूटर ट्रैफ़िक का अनुकरण कम्यूटर के नामों को छोड़ देता है, और शायद उनकी पहचान ( Commuter
वस्तुओं के वास्तविक सेट के बजाय काउंटर वेरिएबल का उपयोग करके ), लेकिन यह उनके आगमन की दर की उपेक्षा नहीं कर सकता है।
एमुलेशन सॉफ्टवेयर बी के प्लेटफॉर्म ए पर प्लेटफॉर्म बी के लिए बनाए गए सॉफ्टवेयर को चलाने के लिए है, जो खुद सॉफ्टवेयर में बदलाव किए बिना चल रहा है। इसके लिए A का एक मॉडल बनाना आवश्यक है जो B पर चलता है, और जाहिर है इसमें A के बारे में सब कुछ मॉडल करना होगा जिसमें कोड निष्पादन शामिल है। (सिद्धांत रूप में आप opcodes के लिए समर्थन को छोड़ सकते हैं जिसे आप जानते हैं कि यह विशेष सॉफ़्टवेयर कभी उपयोग नहीं करेगा, लेकिन यह दुर्लभ है - एक एमुलेटर करना कठिन काम है, और यह पूरी तरह से काम करने के लिए अधिक सार्थक है और एक कीचड़ की तुलना में पुन: प्रयोज्य है यह केवल एस के लिए काम करता है)
दोनों का मतलब है कुछ और काम करना।
अंतर यह है कि "सिमुलेशन" एक सचेत स्तर पर होता है (उपयोगकर्ता के संबंध में) और आमतौर पर वास्तविकता को छूने के बिना एक वास्तविकता के परिणाम का अनुमान लगाने के लिए अंतिम रूप दिया जाता है।
"एमुलेशन" एक बेहोश स्तर पर होता है, और इसका उद्देश्य एक अंतर्निहित घटक को दूसरे भिन्न के साथ बदलना होता है जो उपयोगकर्ता के लिए सम्मान करता है- पुराने के रूप में काम करता है।
दूसरे शब्दों में, अनुकरण "समानांतर दुनिया" में होता है , जबकि अनुकरण "प्रतिस्थापित दुनिया" में होता है।
तकनीकी रूप से, वे दोनों ऐसा ही करते हैं: एक ऐसे वातावरण में कुछ करते हैं जो वास्तविक कार्य करता है।
वैचारिक रूप से, हालांकि, एक महत्वपूर्ण अंतर है।
एक सिमुलेशन को वास्तविक दुनिया से एक निश्चित डिग्री तक अलग किया जाना चाहिए; सिमुलेशन का आउटपुट सीधे उस चीज़ से नहीं जुड़ा होता है जो वह अनुकरण करता है। उदाहरण के लिए, एक विमान सिम्युलेटर वास्तव में उड़ान नहीं भरता है, और पायलट वास्तव में एक वास्तविक वायु यातायात नियंत्रक के साथ संचार नहीं कर रहा है।
एक सिमुलेशन में आमतौर पर सुरक्षित वातावरण में कुछ वास्तविक जीवन की प्रक्रिया का परीक्षण या भविष्यवाणी करने का लक्ष्य होता है; क्योंकि अनुकरण वास्तविक दुनिया से अलग हो जाता है, वास्तव में कुछ भी बुरा नहीं हो सकता है (एक दुर्घटनाग्रस्त विमान सिम्युलेटर वास्तविक लोगों को कभी नहीं मारता है)।
एक अनुकरण , इसके विपरीत, वास्तविक चीज़ की जगह लेने का लक्ष्य है: उदाहरण के लिए, यदि आप अधिक परिष्कृत प्रोग्रामेबल सीपीयू का उपयोग करके एक सरल माइक्रोकंट्रोलर का अनुकरण करते हैं, तो सीपीयू का उपयोग मूल माइक्रोकंट्रोलर के स्थान पर किया जा सकता है; यह शारीरिक रूप से किसी मशीन से जुड़ा होगा, और यह वास्तव में उस मशीन को नियंत्रित करेगा जैसे कि माइक्रोकंट्रोलर करेगा।
लक्ष्य एक के अनुकरण जब मूल मॉड्यूल उपलब्ध नहीं हैं (या बहुत महंगा हो गए हैं, यदि केवल बनाए रखने के लिए) कार्यात्मक समकक्ष के साथ हार्डवेयर या सॉफ्टवेयर घटकों को बदलने के लिए है। अनुकरण भी अधिक लचीले ढंग से हार्डवेयर का उपयोग करने के लक्ष्य को पूरा कर सकता है - एक ही प्रोग्राम योग्य माइक्रोकंट्रोलर कई सरल नियंत्रकों के लिए दोगुना हो सकता है, जरूरत के अनुसार अनुकरण मोड।
"technically"
, वे पूरी तरह से अलग हैं। आपके द्वारा वर्णित वैचारिक अंतर इस अंतर के लिए मौलिक है।
जबकि व्युत्पत्ति कड़ाई से सटीक नहीं है, सहानुभूति के बीच अंतर के बारे में सोचें, "मैं कल्पना कर सकता हूं कि ऐसा क्या महसूस करना चाहिए" और सहानुभूति, "मुझे पता है कि ऐसा क्या लगता है।" एक सिमुलेशन में एक समस्या का दृश्य प्रतिनिधित्व शामिल हो सकता है, लेकिन यह नहीं हो सकता है। उदाहरण के लिए, यह केवल संख्याओं के कॉलम को प्रिंट कर सकता है जो दर्शाता है कि कितने लोग किसी चीज़ या कुल राजस्व या औसत गति के लिए पंक्तिबद्ध हैं। इसमें कुछ विशेषताएं हैं जो वास्तविकता से मेल खाती हैं, और कुछ ऐसी भी नहीं हैं।
एमुलेशन, जिसका उपयोग अक्सर एक प्लेटफ़ॉर्म के संदर्भ में किया जाता है, जो दूसरे प्लेटफ़ॉर्म का दिखावा करता है, वह कहीं अधिक पूर्ण होता है। इसलिए विंडोज फोन डेवलपर्स अपने फोन ऐप को एमुलेटर में विंडोज मशीन पर चला सकते हैं या डिबग कर सकते हैं, जो फोन की तरह दिखता है और एक जैसा व्यवहार करता है। आप अपने पुराने कमोडोर 64 गेम को एमुलेटर में भी चला सकते हैं।
शब्द सटीक नहीं हैं। अधिकांश फ्लाइट सिमुलेटर मेरी राय में एमुलेटर की तरह अधिक हैं, लेकिन नाम ऐसे समय से अटक गया है जब वे इतने इमर्सिव नहीं थे। कुछ लोग क्रॉस-प्लेटफॉर्म मामले के लिए एमुलेटर शब्द को आरक्षित करते हैं और इसे किसी और चीज के लिए अस्वीकार करते हैं। यदि आप बोलते समय ऐसा ही करते हैं, तो आप शायद कभी गलत नहीं सोचेंगे, लेकिन यह समझें कि कुछ लोग दो शब्दों के बीच की सीमा को थोड़ा अलग तरीके से रख सकते हैं, और जब कोई कहता है कि "यह एक अनुकरण है" तो वास्तव में सटीक और पूरा अनुकरण।
दोनों शब्द अवधारणा में बहुत समान हैं - नकल।
सिमुलेशन या सिमुलेटर एक प्रतिकृति प्रणाली का निर्माण करने के लिए सॉफ्टवेयर का उपयोग करते हैं जो कि इसके अंतर्निहित कोर कार्यक्षमता (विशेष रूप से इसकी मूल कार्यप्रणाली) के संबंध में लक्ष्य मॉडल के समान है।
दूसरी ओर, एम्यूलेटर, लक्ष्य प्रणाली की तुलना में बाहरी समानता पर अधिक ध्यान केंद्रित करते हैं। इसमें "कैसे" कार्यों की न्यूनतम चिंता है। एमुलेटर, सामान्य रूप से, मूल प्रणाली की तुलना में पूरी तरह से अलग वातावरण में काम करते हैं (उदाहरण के लिए एक अलग ऑपरेटिंग सिस्टम)।