Strategi penyortiran hierarkis untuk permutasi yang menghindari pola?

8

Untuk kelas permutasi, kita tidak bisa berharap untuk mengurutkan permutasi C dengan kurang dari O ( log | C n | ) perbandingan, di mana dengan konvensi C n : = CS n .CCO(log|Cn|)Cn:=CSn

Khususnya, ketika ditutup oleh subpatterns, itu diikuti oleh teorema Marcus-Tardos (disempurnakan oleh J. Fox) yang | C n | C n di mana C adalah konstanta Stanley-Wilf dari C . Ini mengarah pada pertanyaan berikut: apakah mungkin untuk mengurutkan kelas seperti itu menggunakan paling banyak perbandingan O ( n log C ) ? Pertanyaan ini adalah penguatan dari Pertanyaan 1 di makalah ' Permutasi Cepat Penyortiran dan Penghindaran Pola ' oleh D. Arthur.C|Cn|CnCCO(nlogC)

Tampaknya mungkin untuk merepresentasikan strategi penyortiran seperti itu oleh pohon biner yang pada dasarnya akan meniru suatu algoritma merge-sort yang 'tidak seimbang'. Berikut adalah ide: diberikan permutasi , kita akan mencari pohon T π daun-berlabel dengan poin dari π , sehingga untuk setiap node u dari T π yang 'tumpang tindih' antara dua sub pohon anak akan menjadi O ( log C ) (baik yang terburuk atau rata-rata). Namun saya menduga bahwa struktur yang lebih terlibat diperlukan untuk menyelesaikan masalah ini; haruskah itu mengakui solusi positif.πTππuTπO(logC)

NisaiVloot
sumber
2
Apa yang Anda maksud dengan "ditutup oleh subpasterns"? Apakah ini sesuatu yang berbeda dari menghindari pola tertentu?
Sasho Nikolov
Dengan merujuk pada Stanley-Wilf, tampaknya inilah yang dimaksudkan.
Suresh Venkat
1
Sebuah pertanyaan terkait: kapan mungkin untuk merepresentasikan kelas permutasi yang menghindari pola dalam n log C bits? βnlogC
Suresh Venkat
1
@SashoNikolov: Maksud saya penutupan di bawah hubungan 'keterlibatan' seperti yang biasa disebut; ini sama dengan menghindari serangkaian pola (mungkin tak terbatas).
NisaiVloot
@ SureshVenkat: layak untuk kelas tertentu yang menerima representasi berbasis pohon atau kata; memecahkan kasus umum dengan representasi poly-time terbuka sejauh yang saya tahu. Dalam bahasa enumerasi kombinatorial, ini adalah masalah peringkat / unranking , sementara masalah daftar terkait dapat dilakukan secara efisien melalui pembuatan pohon.
NisaiVloot

Jawaban:

2

Pendekatan lain adalah pengkodean enumeratif. Pertimbangkan misalnya -hindari permutasi, yang ada C n . Jumlah 231 -menghapus permutasi dengan π - 1 ( n ) = i adalah C i - 1 C n - i , dan ini memberikan algoritma rekursif untuk pengkodean 231 -menghindari permutasi: bagi interval [ 0 , C n ) menjadi n interval I 1 , ... ,231Cn231π1(n)=iCi1Cni231[0,Cn)n panjang C i C n - i - 1 untuk i = 1 , , n sewenang-wenang. Diberi permutasi dengan π - 1 ( n ) = i , perhatikan bahwa π | 1 , , i - 1 adalah 231 permutasi dari { 1 , , i - 1 } , dan π | sayaI1,,InCiCni1i=1,,nπ1(n)=iπ|1,,i1231{1,,i1} adalahpermutasi231-hindari{i+1,...,n}. Secara encode rekam bagian pertama dalam[0, C i - 1 )dan bagian kedua dalam[0, C n - i ), dan satukan kedua penyandian untuk menyandikanπdi I i .π|i+1,,n231{i+1,,n}[0,Ci1)[0,Cni)πIi

Untuk setiap , τ permutasi yang tidak berhubungan secara bijektif berkaitan dengan 231- permutasi yang tidak berlaku, melalui pengambilan invers, melengkapi elemen, membalikkan, atau pengawetan Simion-Schmidt antara 132 - dan 123 permutasi yang tidak berlaku. Jadi pengkodean ini berlaku untuk semua pola dengan panjang 3 .τS3τ2311321233

Yuval Filmus
sumber