Öğeleri, bazı öğelerin diğerleri arasına girmeyecek şekilde sipariş etme


10

Bir tamsayıdır verilen farklı tamsayılar üçlü ve ayar S { ( i , j , k ) | 1 i , j , k n , i j , j k , i k } , ya da hangi bir algoritma bulmak bir permütasyon bulur π kümesinin { 1 , 2 , ... , n } , öyle ki ( in

S{(i,j,k)1i,j,kn,ij,jk,ik},
π{1,2,,n} veya böyle bir permütasyon olmadığını doğru bir şekilde belirler. Daha az resmi olarak, 1'den n'ye kadar olan sayıları yeniden sıralamak istiyoruz; Her bir üçlü ( i , j , k ) içinde S belirtir I önce gelmelidir k
(i,j,k)S(π(j)<π(i)<π(k))  (π(i)<π(k)<π(j))
n(i,j,k)Sikancak , i ve k arasında görünmemelidir .jik

örnek 1

ve S = { ( 1 , 2 , 3 ) , ( 2 , 3 , 4 ) } olduğunu varsayalım . Sonran=5S={(1,2,3),(2,3,4)}

  • olduğudeğil, geçerli bir permütasyon çünkü ( 1 , 2 , 3 ) S , ancak π ( 1 ) > π ( 3 ) .π=(5,4,3,2,1)(1,2,3)Sπ(1)>π(3)

  • π=(1,2,4,5,3)(1,2,3)Sπ(1)<π(3)<π(5)

  • (2,4,1,3,5)

ÖRNEK 2

n=5S={(1,2,3),(2,1,3)}n=5S={(1,2,3),(3,4,5),(2,5,3),(2,1,4)}

S


(σmi,σmj,σmk)S(i>jj>k)

BTW: Bu sorunun motivasyonu nedir?
Dave Clarke

@DaveClarke Düzenlememe bakın. Bu problem, laboratuardaki diğer bazı öğrencilerle tartıştığım bir programlama problemini çevreleyen bir tartışmadan çıkarıldı. Temel olarak, fikir, bazılarının belirli bir sırayla yürütülmesi gereken birçok işinizin olması. Ancak, muhtemelen çok ince nedenlerden ötürü bazı işlerin sırayla işler arasında zamanlanmasını istemezsiniz.
Patrick87

3
Σ={1,2,,n}

σ

Yanıtlar:


3

İşte saf bir algoritma. Nihayetinde kaba kuvvete dayanır, ancak bazen iyi performans gösterebilir.

(σmi,σmj,σmk)Si<k¬(i<j<k)Ai<kB¬(i<j<k)Bi>jj>kij,jk

  1. AΘO(|S|)
  2. BΘΘBΘO(|S|2)
  3. BΘ|S|
    B
  4. AB

nxi[0,n1]


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.