Yığınla sıralanabilir permütasyon - Stack-sortable permutation

İçinde matematik ve bilgisayar Bilimi, bir yığın sıralanabilir permütasyon (ayrıca a ağaç permütasyonu)[1] bir permütasyon kimin öğeleri olabilir sıralanmış dahili depolaması tek bir cihazla sınırlı bir algoritma ile yığın veri yapısı. Yığın-sıralanabilir permütasyonlar, tam olarak şunu içermeyen permütasyonlardır. permütasyon modeli 231; tarafından sayılırlar Katalan numaraları ve yerleştirilebilir birebir örten aynı sayma işlevine sahip diğer birçok kombinatoryal nesne ile Dyck yolları ve ikili ağaçlar.

Bir yığınla sıralama

Yığın kullanarak bir girdi dizisini sıralama problemi ilk olarak Knuth (1968) aşağıdakileri kim verdi doğrusal zaman algoritma (daha sonrası için algoritmalarla yakından ilgilidir en yakın tüm küçük değerler sorun):

  • Boş bir yığını başlatın
  • Her giriş değeri için x:
    • Yığın boş değilken ve x yığındaki en üstteki öğeden daha büyükse yığını çıktıya çıkar
    • it x yığının üstüne
  • Yığın boş değilken çıktıya pop

Knuth, bu algoritmanın bazı girdi dizilerini doğru bir şekilde sıraladığını ve diğerlerini sıralayamadığını gözlemledi. Örneğin 3,2,1 dizisi doğru şekilde sıralanır: üç öğenin tümü yığına itilir ve ardından 1,2,3 sırasına göre açılır. Bununla birlikte, 2,3,1 dizisi doğru şekilde sıralanmamıştır: algoritma önce 2'ye basar ve daha büyük giriş değeri 3'ü gördüğünde onu açar ve 2'nin 1'den sonra değil 1'den önce çıkmasına neden olur.

Çünkü bu algoritma bir karşılaştırma sıralaması başarısı veya başarısızlığı, girdi dizisinin sayısal değerlerine değil, yalnızca göreli sıralarına bağlıdır; diğer bir deyişle, bir giriş, permütasyon bu girdiyi aynı uzunlukta sıralanmış bir diziden oluşturmak gerekir. Knuth, bu algoritmanın doğru şekilde sıraladığı permütasyonları, tam olarak içermeyen permütasyonlar olarak karakterize etti. permütasyon modeli 231: üç öğe x, y, ve z, girişte ilgili sırayla görünerek z < x < y. Dahası, algoritma bir girdiyi sıralayamazsa, bu girdinin tek bir yığınla sıralanamayacağını gözlemledi.

Daha karmaşık yığın sistemleri ve ilgili veri yapılarını kullanarak sıralama üzerine daha sonraki çalışmalara ilham vermenin yanı sıra,[2] Knuth'un araştırması, permütasyon kalıpları ve yasak kalıplarla tanımlanan permütasyon sınıfları.

Bijections ve sayım

Knuth'un sıralama algoritması tarafından yığın olarak sıralanabilir permütasyon formunu sıralarken gerçekleştirilen itme ve açma dizisi. Dyck dili: bir itmeyi sol parantez olarak ve pop'u sağ parantez olarak yeniden yorumlamak, dengeli bir parantez dizisi oluşturur. Dahası, her Dyck dizisi bu şekilde yığın-sıralanabilir bir permütasyondan gelir ve her iki farklı yığın-sıralanabilir permütasyon farklı Dyck dizgileri üretir. Bu nedenle, uzunluktaki yığın şeklinde sıralanabilir permütasyonların sayısı n 2 uzunluğundaki Dyck dizelerinin sayısı ile aynıdırn, Katalan numarası

[3]
Arasındaki bağlantı ikili ağaçlar (soldan sağa numaralandırılmış düğümler ile) ve yığınla sıralanabilir permütasyonlar, ön sipariş

Yığınla sıralanabilir permütasyonlar da doğrudan ve buradan çevrilebilir (etiketlenmemiş) ikili ağaçlar, bir diğeri kombinatoryal sınıf kimin sayma işlevi Katalan sayılarının dizisidir. İkili ağaç, düğümleri numaralandırılarak yığın şeklinde sıralanabilir bir permütasyona dönüştürülebilir. soldan sağa sıralama ve sonra bu numaraları, bir kişi tarafından ziyaret edilecekleri sırayla listelemek ön sipariş geçişi ağacın: önce kök, sonra sol alt ağaç, sonra sağ alt ağaç, devam ediyor tekrarlı her bir alt ağaç içinde. Ters yönde, yığınla sıralanabilir bir permütasyon, ilk değerin bulunduğu bir ağaca çözülebilir. x permütasyon ağacın köküne karşılık gelir, sonraki x - 1 değerin, kökün sol çocuğunu vermek için özyinelemeli olarak kodu çözülür ve kalan değerler, doğru çocuğa vermek için tekrar yinelemeli olarak çözülür.[1]

Diğer birkaç permütasyon sınıfı da yığınla sıralanabilir permütasyonlarla birbirine bağlanabilir. Örneğin, 132, 213 ve 312 modellerinden kaçınan permütasyonlar, permütasyonu tersine çevirerek, her bir değeri değiştirerek sırasıyla yığına göre sıralanabilir (231-kaçınma) permütasyonlardan oluşturulabilir. x tarafından permütasyonda n + 1 − xveya her iki işlem birleştirilir. 312-kaçınma permütasyonları aynı zamanda 231-kaçınma permütasyonlarının tersidir ve yığın gerçekleştirilebilir permütasyonlar çünkü bunlar kimlik permütasyonundan, bir yığın üzerindeki girdiden itme ve çıktıdan çıktıya çıkarma işlemlerinin bir dizisi ile oluşturulabilen permütasyonlardır.[4]Gibi Knuth (1968) belirtildiğine göre, 123-kaçınma ve 321-kaçınma permütasyonları, yığın-sıralanabilir permütasyonlarla daha az doğrudan ilişkili olmalarına rağmen aynı sayma fonksiyonuna sahiptir.

Rastgele yığın sıralanabilir permütasyonlar

Rotem (1981) seçilen yığın sıralanabilir permütasyonların özelliklerini araştırır tekdüze rastgele belirli bir uzunluktaki tüm bu tür permütasyonlar arasında. beklenen uzunluk of en uzun alçalan alt dizi böyle bir permütasyonda , kısıtlanmamış rastgele permütasyonlardan sabit bir faktörle farklılık gösterir (beklenen uzunluk yaklaşık olarak ). En uzun yükselen dizinin beklenen uzunluğu, sınırlandırılmamış permütasyonlardan çok daha güçlü bir şekilde farklıdır: . Önceki tüm değerlerden daha büyük olan permütasyon içinde beklenen değer sayısı yalnızca , kısıtsız permütasyonlar için logaritmik değerinden daha küçük. Ve beklenen sayı ters çevirmeler dır-dir değerinin aksine kısıtsız permütasyonlar için.

Ek özellikler

Her permütasyon bir permütasyon grafiği, köşeleri permütasyonun öğeleri olan ve kenarları olan öğe çiftlerini birbirine bağlayan bir grafik ters permütasyon ile. Yığınla sıralanabilir permütasyonların permütasyon grafikleri önemsiz derecede mükemmel.[4]

Her eleman için ben permütasyon p, tanımlamak bben solunda ve şundan büyük diğer öğelerin sayısı ben. Sonra p yığın olarak sıralanabilir ancak ve ancak herkes için ben, bben − bben + 1 ≤ 1.[1]

Algoritmalar

Knott (1977) her ikili ağaç için sayısal bir sıra tanımlamak ve bir ağacın sırasını hesaplamak ("sıralama") ve belirli bir sıraya sahip ağacı hesaplamak için ("sıralanmamış") verimli algoritmalar oluşturmak için yığınla sıralanabilir permütasyonlar ve ikili ağaçlar arasındaki eşleştirmeyi kullanır ").

Micheli ve Rossin (2006) permütasyonlarda iki düzenleme işlemi tanımladı: silme (bir permütasyon modeli ) ve tersi. Ağaçlar ve permütasyonlar arasındaki aynı yazışmayı kullanarak, bu işlemlerin kenar daralması bir ağaçta ve onun tersi. Uygulayarak polinom zamanı dinamik program için algoritma mesafeyi düzenle ağaçlarda, iki yığınla sıralanabilir permütasyon arasındaki düzenleme mesafesinin (ve dolayısıyla en uzun ortak modelin) polinom zamanında bulunabileceğini gösterdiler. Bu teknik daha sonra en uzun ortak kalıpları bulmak için algoritmalara genelleştirildi. ayrılabilir permütasyonlar;[5] bununla birlikte, en uzun ortak model problemi, keyfi permütasyonlar için NP-tamdır.[6]

Notlar

Referanslar

  • Avis, David; Yenidoğan, Monroe (1981), "Serideki pop-yığınlarda", Utilitas Mathematica, 19: 129–140, BAY  0624050.
  • Bóna, Miklós (2002), "Yığın sıralama disiplinlerinin incelenmesi", Elektronik Kombinatorik Dergisi, 9 (2): A1, BAY  2028290.
  • Bouvel, Mathilde; Rossin, Dominique; Vialette, Stéphane (2007), "Permütasyonlar arasında en uzun ortak ayrılabilir model", Kombinatoryal Örüntü Eşleştirme (CPM 2007), Bilgisayar Bilimleri Ders Notları, 4580, Springer, s. 316–327, doi:10.1007/978-3-540-73437-6_32.
  • Felsner, Stefan; Pergel, Martin (2008), "Yığın ve kuyruk ağlarıyla sıralama karmaşıklığı", Proc. 16. Eur. Symp. Algoritmalar, Karlsruhe, Almanya, s. 417–429, doi:10.1007/978-3-540-87744-8_35, ISBN  978-3-540-87743-1.
  • Knott, Gary D. (Şubat 1977), "İkili ağaçlar için bir numaralandırma sistemi", ACM'nin iletişimi, 20 (2): 113–115, doi:10.1145/359423.359434.
  • Knuth, Donald (1968), "Cilt 1: Temel Algoritmalar", Bilgisayar Programlama Sanatı, Okuma, Kütle.: Addison-Wesley.
  • Micheli, Anne; Rossin, Dominique (2006), "Etiketlenmemiş sıralı ağaçlar arasındaki mesafeyi düzenle", Teorik Bilişim ve Uygulamalar, 40 (4): 593–609, arXiv:matematik / 0506538, doi:10.1051 / ita: 2006043, BAY  2277052.
  • Rosenstiehl, Pierre; Tarjan, Robert E. (1984), "Gauss kodları, düzlemsel Hamilton grafikleri ve yığın-sıralanabilir permütasyonlar", Algoritmalar Dergisi, 5 (3): 375–390, doi:10.1016 / 0196-6774 (84) 90018-X, BAY  0756164
  • Rotem, D. (1981), "Yığın sıralanabilir permütasyonlar", Ayrık Matematik, 33 (2): 185–196, doi:10.1016 / 0012-365X (81) 90165-5, BAY  0599081.
  • Tarjan, Robert (Nisan 1972), "Sıra ve Yığın Ağlarını Kullanarak Sıralama", ACM Dergisi, 19 (2): 341–346, doi:10.1145/321694.321704.