Bunun yapılamayacağını göstermek için bir kanıt girişiminde bulunacağım.
A, B ve C olmak üzere 3 yığınla simüle edilmiş bir Q sırası olduğunu varsayalım.
İddialar
ASRT0: = Ayrıca, Q'nun O (1) 'deki {queue, dequeue} işlemlerini simüle edebileceğini varsayın. Bu, simüle edilecek her kuyruk / dequeue işlemi için belirli bir yığın push / pop dizisi olduğu anlamına gelir.
Genel kayıp olmadan, kuyruk işlemlerinin deterministik olduğunu varsayalım.
Q'ya sıralanan öğelerin sıra sıralarına göre 1, 2, ... olarak numaralandırılmasına izin verin, Q'ya sıralanan ilk öğe 1, ikincisi 2 olarak tanımlanır.
Tanımlamak
Q(0) := Q'da 0 eleman olduğunda Q'nun durumu (ve böylece A, B ve C'de 0 eleman)
Q(1) := 1 kuyruk işleminden sonra Q (ve A, B ve C) durumu Q(0)
Q(n) := N kuyruk işleminden sonra Q (ve A, B ve C) durumu Q(0)
Tanımlamak
|Q(n)| :=içindeki öğe sayısı Q(n)(bu nedenle|Q(n)| = n )
A(n) := Q durumu olduğunda A yığınının durumu Q(n)
|A(n)| := içindeki eleman sayısı A(n)
Ve B ve C yığınları için benzer tanımlar.
Önemsiz bir şekilde,
|Q(n)| = |A(n)| + |B(n)| + |C(n)|
---
|Q(n)| açıkçası n.
Bu nedenle, en azından biri |A(n)|, |B(n)|ya da |C(n)|, n ile sonsuz.
WLOG1, A yığını sınırsız ve B ve C yığınlarının bağlı olduğunu varsayalım.
* B_u :=B'nin üst sınırını tanımlayın * C_u :=C * 'nin üst sınırınıK := B_u + C_u + 1
WLOG2, böyle bir n |A(n)| > Kiçin K öğelerini seçin Q(n). Bu elemanlardan 1'inin A(n + x)herkes için olduğunu varsayalım x >= 0, yani kaç kuyruk işlemi yapılırsa yapılsın eleman her zaman A yığınındadır.
Sonra tanımlayabiliriz
ASRT1 :=X'i ayıklamak için gereken pop sayısı Q(n)en azAbv(n)
( ASRT0) Ve ( ASRT1) 'den,ASRT2 := Abv(n) öğelerinin sınırlanması gerekir.
Eğer Abv(n)sınırsızsa, X'i atlatmak için 20 dequeues gerekiyorsa Q(n), en azındanAbv(n)/20 pop gerekir. Bu sınırsız. 20 herhangi bir sabit olabilir.
Bu nedenle,
ASRT3 := Blo(n) = |A(n)| - Abv(n)
sınırsız olmalıdır.
WLOG3, altından K öğelerini seçebiliriz A(n)ve bunlardan biri A(n + x)herkes içinx >= 0
X(n) := herhangi bir n için
ASRT4 := Abv(n) >= |A(n)| - K
Bir öğe sıraya girdiğinde Q(n)...
WLOG4, B ve C'nin üst sınırlarına zaten doldurulmuş olduğunu varsayalım. Yukarıdaki öğeler için üst sınıra X(n)ulaşıldığını varsayalım . Ardından, yeni bir eleman A'ya girer.
WLOG5, sonuç olarak yeni öğenin aşağıya girmesi gerektiğini varsayalım X(n).
ASRT5 := Bir öğeyi aşağıya koymak için gereken pop sayısı X(n) >= Abv(X(n))
Gönderen (ASRT4), Abv(n)n'de sınırsızdır.
Bu nedenle, bir öğeyi aşağıya koymak için gereken pop sayısı X(n)sınırsızdır.
Bu ASRT1nedenle, bu nedenle, O(1)3 sıralı bir kuyruğu simüle etmek mümkün değildir .
yani
En az 1 yığın sınırsız olmalıdır.
Bu yığınta kalan bir öğe için, üstündeki öğelerin sayısı sınırlandırılmalıdır, yoksa o öğeyi kaldırmak için ayıklama işlemi sınırsız olacaktır.
Bununla birlikte, üstündeki elemanların sayısı sınırlanırsa, bir sınıra ulaşacaktır. Bir noktada, altına yeni bir eleman girilmelidir.
Eski öğeyi her zaman o yığının en düşük birkaç öğesinden birini seçebildiğimizden, üstünde sınırsız sayıda eleman olabilir (sınırsız yığının sınırsız boyutuna bağlı olarak).
Altına yeni bir eleman girmek için, üzerinde sınırsız sayıda eleman bulunduğundan, yeni elemanı altına koymak için sınırsız sayıda pop gerekir.
Ve böylece çelişki.
5 adet WLOG (Genellik kaybı olmadan) ifadesi bulunmaktadır. Bir anlamda sezgisel olarak doğru oldukları anlaşılabilir (ancak 5 oldukları göz önüne alındığında biraz zaman alabilir). Hiçbir genelliğin kaybolmadığına dair resmi kanıt elde edilebilir, ancak son derece uzundur. Bunlar çıkarıldı.
Bu ihmalin söz konusu WLOG ifadelerini bırakabileceğini itiraf ediyorum. Bir programcının hatalar için paranoyasıyla, isterseniz WLOG ifadelerini doğrulayın.
Üçüncü yığın da önemsizdir. Önemli olan bir dizi bağlı yığın ve bir dizi sınırsız yığın var. Bir örnek için gereken minimum miktar 2 istiftir. Yığın sayısı elbette sonlu olmalıdır.
Son olarak, kanıt olmadığına dair haklıysam, daha kolay bir endüktif kanıt olmalıdır. Muhtemelen her kuyruktan sonra ne olduğuna bağlı olarak (kuyruktaki tüm öğeler kümesi göz önüne alındığında en kötü dequeue durumunu nasıl etkilediğini takip edin).