मैं यह दिखाने के लिए एक प्रमाण का प्रयास करने जा रहा हूं कि यह नहीं किया जा सकता है।
मान लीजिए कि एक कतार क्यू है जो 3 स्टैक, ए, बी और सी द्वारा सिम्युलेटेड है।
इस प्रकार के दावे
ASRT0: = इसके अलावा, मान लें कि Q, O (1) में {{कतार) में ऑपरेशन {क्यू, डीक्यू} का अनुकरण कर सकता है। इसका मतलब यह है कि हर कतार / डैक्यू ऑपरेशन के लिए स्टैक पुश / पॉप का एक विशिष्ट अनुक्रम मौजूद है।
सामान्यता के नुकसान के बिना, मान लें कि कतार संचालन नियतात्मक हैं।
बता दें कि क्यू में गिने जाने वाले तत्वों को कतार के उनके क्रम के आधार पर 1, 2, ... गिना जाता है, क्यू के पहले पंक्ति वाले तत्व को 1 के रूप में परिभाषित किया जा रहा है, 2 के रूप में दूसरा, और इसी तरह।
परिभाषित करें
Q(0) :=
Q की वह स्थिति जब Q में 0 तत्व होते हैं (और इस प्रकार A, B और C में 0 तत्व)
Q(1) :=
1 कतार संचालन के बाद Q (और A, B और C) की स्थिति Q(0)
Q(n) :=
N कतार संचालन के बाद Q (और A, B और C) की स्थिति Q(0)
परिभाषित करें
|Q(n)| :=
तत्वों की संख्या Q(n)
(इसलिए |Q(n)| = n
)
A(n) :=
जब Q की अवस्था हो तो स्टैक A की स्थिति Q(n)
|A(n)| :=
में तत्वों की संख्या A(n)
और स्टैक बी और सी के लिए इसी तरह की परिभाषाएं।
तुच्छता,
|Q(n)| = |A(n)| + |B(n)| + |C(n)|
---
|Q(n)|
स्पष्ट रूप से n पर अनबाउंड है।
इसलिए, कम से कम एक |A(n)|
, |B(n)|
या|C(n)|
एन पर अनबाउंड है।
WLOG1
, मान लीजिए कि स्टैक ए अनबाउंड है और स्टैक बी और सी बंधे हैं।
परिभाषित करें * B_u :=
B C_u :=
का ऊपरी भाग * C की ऊपरी सीमा *K := B_u + C_u + 1
WLOG2
, ऐसे n के लिए |A(n)| > K
, से K तत्वों का चयन करें Q(n)
। मान लीजिए कि उन तत्वों में से 1 A(n + x)
सभी के लिए है x >= 0
, अर्थात तत्व हमेशा स्टैक में है कोई फर्क नहीं पड़ता कि कितने कतार संचालन किए जाते हैं।
तब हम परिभाषित कर सकते हैं
ASRT1 :=
X से अलग करने के लिए आवश्यक पॉप की संख्या Q(n)
कम से कम हैAbv(n)
से ( ASRT0
) और ( ASRT1
), ASRT2 := Abv(n)
बाउंड होना चाहिए।
यदि Abv(n)
निर्बाध है, तो यदि एक्स से छल करने के लिए 20 विकारों की आवश्यकता Q(n)
होती है, तो इसे कम से कम आवश्यकता होगीAbv(n)/20
चबूतरे की । जो अबाधित है। 20 कोई भी स्थिर हो सकता है।
इसलिए,
ASRT3 := Blo(n) = |A(n)| - Abv(n)
निर्बाध होना चाहिए।
WLOG3
, हम K तत्वों का चयन नीचे से कर सकते हैं A(n)
, और उनमें से एक A(n + x)
सभी के लिए हैx >= 0
X(n) :=
वह तत्व, किसी भी दिए गए n के लिए
ASRT4 := Abv(n) >= |A(n)| - K
जब भी किसी तत्व की कतार लगती है Q(n)
...
WLOG4
, मान लीजिए कि B और C पहले से ही अपनी ऊपरी सीमा में भरे हुए हैं। मान लीजिए कि ऊपर के तत्वों के लिए ऊपरी सीमा पर X(n)
पहुंच गया है। फिर, एक नया तत्व ए में प्रवेश करता है।
WLOG5
, मान लीजिए कि परिणामस्वरूप, नए तत्व को नीचे दर्ज करना होगा X(n)
।
ASRT5 :=
नीचे एक तत्व डालने के लिए आवश्यक पॉप की संख्या X(n) >= Abv(X(n))
से (ASRT4)
, Abv(n)
n पर अनबाउंड है।
इसलिए, नीचे एक तत्व डालने के लिए आवश्यक पॉप की संख्या X(n)
अनबाउंड है।
यह विरोधाभास है ASRT1
, इसलिए, O(1)
3 स्टैक के साथ एक कतार अनुकरण करना संभव नहीं है ।
अर्थात
कम से कम 1 स्टैक अनबाउंड होना चाहिए।
उस स्टैक में रहने वाले तत्व के लिए, इसके ऊपर के तत्वों की संख्या को बाध्य किया जाना चाहिए, या उस तत्व को हटाने के लिए dequeue ऑपरेशन अनबाउंड हो जाएगा।
हालांकि, यदि इसके ऊपर के तत्वों की संख्या बाध्य है, तो यह एक सीमा तक पहुंच जाएगी। कुछ बिंदु पर, इसके नीचे एक नया तत्व दर्ज करना होगा।
चूंकि हम हमेशा उस स्टैक के सबसे कम कुछ तत्वों में से एक से पुराने तत्व को चुन सकते हैं, इसलिए इसके ऊपर तत्वों की एक अनबिकेड संख्या हो सकती है (अनबाउंड स्टैक के बिना आकार के आधार पर)।
इसके नीचे एक नया तत्व दर्ज करने के लिए, क्योंकि इसके ऊपर तत्वों की एक अनबिके संख्या है, नए तत्व को नीचे रखने के लिए एक अनबाउंड पॉप की आवश्यकता है।
और इस प्रकार विरोधाभास।
5 WLOG (सामान्यता की हानि के बिना) बयान हैं। कुछ अर्थों में, उन्हें सहज रूप से सच समझा जा सकता है (लेकिन यह देखते हुए कि वे 5 हैं, इसमें कुछ समय लग सकता है)। औपचारिक प्रमाण कि कोई सामान्यता नहीं खोई जा सकती है, लेकिन यह बहुत लंबा है। वे चूक गए।
मैं मानता हूं कि इस तरह की चूक से डब्ल्यूएलओजी के बयानों पर सवाल उठ सकता है। बग के लिए एक प्रोग्रामर के व्यामोह के साथ, यदि आप चाहें तो कृपया डब्लूएलओजी कथनों को सत्यापित करें।
तीसरा स्टैक भी अप्रासंगिक है। क्या मायने रखता है कि वहाँ बंधे हुए ढेर का एक सेट है, और अनबाउंड ढेर का एक सेट है। एक उदाहरण के लिए आवश्यक न्यूनतम 2 स्टैक है। ढेर की संख्या, निश्चित रूप से, परिमित होनी चाहिए।
अंत में, अगर मैं सही हूं कि कोई प्रमाण नहीं है, तो एक आसान प्रेरक प्रमाण उपलब्ध होना चाहिए। शायद हर कतार के बाद क्या होता है, इसके आधार पर (यह ध्यान रखें कि कतार में सभी तत्वों के सेट को देखते हुए यह सबसे खराब स्थिति को कैसे प्रभावित करता है)।