क्या मुश्किल है: एक सॉर्ट किए गए डेक को फेरबदल करना या एक फेरबदल करना?


18

आपके पास भिन्न तत्वों की एक सरणी है । आपके पास एक तुलनित्र तक पहुँच है (एक ब्लैक बॉक्स फ़ंक्शन दो तत्वों को और बी ले रहा है और सही iff एक < b ) और बिट्स का वास्तव में यादृच्छिक स्रोत (एक ब्लैक बॉक्स फ़ंक्शन बिना किसी तर्क के ले रहा है और एक स्वतंत्र रूप से समान रूप से यादृच्छिक बिट लौटाता है)। निम्नलिखित दो कार्यों पर विचार करें:naba<b

  1. वर्तमान में सरणी को सॉर्ट किया गया है। समान रूप से (या लगभग समान रूप से) अनियमित रूप से चयनित क्रमपरिवर्तन का उत्पादन करें।
  2. सरणी में प्रकृति द्वारा यादृच्छिक रूप से समान रूप से चयनित कुछ क्रमचय शामिल हैं। एक क्रमबद्ध सरणी का निर्माण करें।

मेरा सवाल यह है कि

किस कार्य के लिए अधिक ऊर्जा की आवश्यकता होती है?

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

अब, एल्गोरिथ्म में, मेरा अंतर्ज्ञान यह है कि वे समान हैं। ध्यान दें कि हर प्रकार रिवर्स में एक फेरबदल है, और इसके विपरीत। सॉर्टिंग के लिए आवश्यकता होती है ! फेरबदल करते हुए n लॉग एन तुलना करें, क्योंकि यह n से एक यादृच्छिक क्रमांकन चुनता है ! विकल्प, लॉग एन की आवश्यकता है ! एन लॉग एन यादृच्छिक बिट्स। फेरबदल और छँटाई दोनों को n स्वैप की आवश्यकता होती है ।logn!nlognn!logn!nlognn

हालांकि, मुझे ऐसा लगता है कि लैंडॉउर के सिद्धांत को लागू करने वाला एक उत्तर होना चाहिए , जो कहता है कि इसे थोड़ा "मिटाने" के लिए ऊर्जा की आवश्यकता होती है। Intuitively, मैं इस का मतलब है लगता है कि सरणी छँटाई और अधिक कठिन है, क्योंकि यह की आवश्यकता है "मिटा" जानकारी के टुकड़े, एक कम ऊर्जा, विकार की उच्च एन्ट्रापी जमीन राज्य से एक अत्यधिक के लिए जा रहा एक का आदेश दिया। लेकिन दूसरी ओर, किसी भी गणना के लिए, छँटाई सिर्फ एक क्रमांकन को दूसरे में बदल देती है। चूंकि मैं यहां एक पूर्ण गैर-विशेषज्ञ हूं, इसलिए मैं उम्मीद कर रहा था कि कोई व्यक्ति भौतिकी के कनेक्शन के ज्ञान के साथ इस तरह से "छाँटने" में मदद कर सकता है!nlogn

(इस सवाल का गणित पर कोई जवाब नहीं मिला । इसलिए, मैं इसे यहाँ पर पढ़ रहा हूँ। आशा है कि यह ठीक है।)


मैं यह सब के माध्यम से नहीं सोचा है, तो चेतावनी देनेवाला। हम एक क्रमबद्ध सरणी के साथ शुरू करते हैं, तो तरह मर्ज का उपयोग करें, लेकिन की तुलना करने के बजाय, हम यादृच्छिक बिट का उपयोग विलय करने के लिए (ताकि बजाय iff सच लौटने हम सच लौट iff यादृच्छिक बिट है 1 )। आधार मामला जहां हमारे पास आकार के दो सरणियाँ हैं एक समान संभावना के साथ आकार दो के दो संभावित सरणियों का उत्पादन करता है। मैं इससे आगे नहीं बढ़ी। a<b1
ल्यूक मैथिसन

2
मुझे लगता है कि इस प्रश्न का उत्तर देने के लिए, आपको पहले ऑपरेशन की सापेक्ष लागतों को परिभाषित करने की आवश्यकता है; डेटा पढ़ने, डेटा लिखने और एक यादृच्छिक संख्या प्राप्त / उत्पन्न करने में कितना खर्च होता है?
मिचस

@ मिचस: मैं मुख्य रूप से शारीरिक सीमाओं के बारे में उत्सुक हूं अगर हम "आशावादी रूप से कुशल" कंप्यूटर मानते हैं। मेरी समझ यह है कि थोड़ी जानकारी के लिए "मिटा" करने के लिए आवश्यक ऊर्जा की मात्रा पर एक शारीरिक कम बाध्यता है, जबकि अन्य कार्यों में बहुत कम ऊर्जा की आवश्यकता होती है। इसलिए मुझे आश्चर्य है कि अगर यह अंतर्ज्ञान सही है और जवाब देने के लिए पर्याप्त औपचारिक है।
usul

थोडा मिटने से आपका क्या मतलब है? इसे अधिलेखित करना? जहां तक ​​मुझे पता है कि कंप्यूटर आमतौर पर कुछ भी नहीं मिटाते हैं (गोपनीयता कारणों को छोड़कर) लेकिन संबंधित मेमोरी क्षेत्र को डी-आवंटित करके इसके बारे में केवल "भूल" करें। लेकिन शायद मैं एब्सट्रैक्शन लेवल को सही तरीके से यहाँ पर नहीं कर रहा हूँ :)
मिचस

2
@ पैट्रिक87 दुर्भाग्य से, एक समान ऊर्जा मॉडल इसका उपयोग करने के लिए सच्चाई से बहुत दूर है; फूडीस नी बायर और नेबेल (2009) द्वारा उनकी ऊर्जा खपत के अनुसार एल्गोरिदम का मूल्यांकन करना देखें ।
राफेल

जवाबों:


6

Landauer के सिद्धांत के अनुसार, यदि आप कीज़ की एक समान यादृच्छिक क्रमबद्धता को क्रमबद्ध तरीके से लेना चाहते हैं, और कंप्यूटर में कोई भी बिट नहीं रखते हैं, जो यह बताता है कि समान यादृच्छिक क्रमपरिवर्तन क्या था, तो आपको l o g n को मिटाना होगा ! एन लॉग 2 एन बिट्स। यह ( n ln n ) k T ऊर्जा लेगा । दूसरी ओर, क्रमबद्ध सरणी और n लॉग 2 n यादृच्छिक बिट्स को यादृच्छिक सरणी में ले जाने की गणना प्रतिवर्ती है, और इस प्रकार खर्च की गई ऊर्जा को मनमाने ढंग से छोटा किया जा सकता है।nlogn!nlog2n(nlnn)kTnlog2n

ध्यान दें कि ये सिर्फ सैद्धांतिक कम सीमाएं हैं। एक वास्तविक डिजिटल कंप्यूटर पर इन प्रक्रियाओं द्वारा वर्तमान में खपत ऊर्जा का उपरोक्त विश्लेषण से कोई संबंध नहीं है।


बहुत बहुत धन्यवाद! क्या मैं एक संभावित भोले से पूछ सकता हूं? मान लीजिए कि मैं प्रश्न के शब्दों को बदल देता हूं ताकि छंटाई एल्गोरिथ्म को वस्तुओं के कुछ निश्चित क्रमांकन दिए जाएं और उन्हें क्रमबद्ध करना पड़े। अब, यदि आप बायेसियन दर्शन की सदस्यता लेते हैं और इस इनपुट पर एक समान विश्वास रखते हैं, तो ऐसा लगता है कि उत्तर समान होना चाहिए। लेकिन एक दर्शन के तहत कि इनपुट में कोई यादृच्छिकता नहीं है (हालांकि मुझे नहीं पता कि यह क्या है), तर्क विफल होता है। मैं विरोधाभास को कैसे हल करूं? एक बार फिर धन्यवाद!!
usul

@सुल: उस स्थिति में, आपने अभी भी बिट्स को मिटा दिया है, इसलिए एल्गोरिथ्म अभी भी ऊर्जा लेता है । यह सिर्फ इतना है कि इस मामले में, आपके द्वारा उपयोग किया जा सकने वाला एक बेहतर एल्गोरिदम है, अगर आपको पता था कि इनपुट किस क्रमबद्धता से निर्धारित था। (nlnn)टी
पीटर शोर

3

न तो। किसी भी सर्किट को इनपुट पर नज़र रखते हुए प्रतिवर्ती बनाया जा सकता है , और प्रतिवर्ती संगणना के ऊर्जा अपव्यय को मनमाने ढंग से छोटा किया जा सकता है ।


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

1
"कुशल" से क्या आप दोनों के समय, स्थान या कुछ संयोजन का मतलब है? एक अभिकलन प्रतिवर्ती बनाने से जरूरी असममित समय जटिलता नहीं जुड़ती है , और हर संगणना के प्रतिवर्ती संस्करण मौजूद होते हैं जो मूल [Vitányi05] से अधिक स्थान का उपयोग नहीं करते हैं ।
rphv

1
जब तक आप इनपुट को चारों ओर रखते हैं, तब तक किसी भी सर्किट को प्रतिवर्ती बनाया जा सकता है। यदि आप ऐसी जानकारी नहीं रखना चाहते हैं जो मूल क्रमपरिवर्तन को फिर से बना सके, तो छँटाई सर्किट को प्रतिवर्ती नहीं बनाया जा सकता है।
पीटर शोर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.