• Nie Znaleziono Wyników

Niech Σ(x) będzie zbiorem liter słowa x. Zauważmy że x ≈ y ⇒ Σ(x) = Σ(y)

N/A
N/A
Protected

Academic year: 2021

Share "Niech Σ(x) będzie zbiorem liter słowa x. Zauważmy że x ≈ y ⇒ Σ(x) = Σ(y)"

Copied!
3
0
0

Pełen tekst

(1)

Sprawdzanie równoważności kwadratowej słów

Dwa słowa są kwadratowo równoważne gdy możemy zamienić jedno w drugie wykonując ciąg (być może pusty) operacji zamiany podsłowa typu zz przez z lub podsłowa z przez zz. Inaczej mówiąc definiujemy z ≈ zz, oraz x ≈ y gdy można otrzymać x z y przez wielokrotne stosowanie z → zz dla podsłów x lub y.

Niech Σ(x) będzie zbiorem liter słowa x. Zauważmy że x ≈ y ⇒ Σ(x) = Σ(y)

Oznaczamy

ˆ

x = pαβq, p, q ∈ Σ(x) , α, β ∈ Σ(x)

gdzie pα to najkrótszy prefiks taki, że Σ(pα) = Σ(x) oraz βq najkrótszy sufiks o tej samej własności. Zauważmy, że

Σ(p) = Σ(x) − {α}

Następujący fakt (a dokładniej punkt 2) daje algorytm sprawdzania rów- noważności kwadratowej. Algorytm ten jest zasadniczo algorytmem z zada- nia „Przyspieszanie algorytmu” z XVI Olimpiady Informatycznej.

Twierdzenie.

1. x 1 ≈ x 2 ⇔ ˆ x 1 ≈ ˆ x 2

2. Niech ˆ x 1 = p 1 α 1 β 1 q 1 i ˆ x 2 = p 2 α 2 β 2 q 2 . Wtedy ˆ

x 1 ≈ ˆ x 2 ⇔ (p 1 ≈ p 2 ∧ q 1 ≈ q 2 ∧ α 1 = α 2 ∧ β 1 = β 2 ) Lemat (pomocniczy).

x ≈ ˆ x Dowód.

Fakt 1. Σ(y) ⊆ Σ(x) ⇒ (∃u) x ≈ xyu.

Dowód. Dowód przez indukcję ze względu na długość y. Dla |y| = 0 oczywi- ste. Niech y = y 0 α. Wtedy z założenia indukcyjnego (∃u 0 ) x ≈ xy 0 u 0 . Roz- łóżmy x = zαz 0 – istnieje taki rozkład, bo mamy założenie o Σ(y) ⊆ Σ(x).

Twierdzimy zatem, że istnieje u, że x ≈ xyu = zαz 0 y 0 αu. Wystarczy wziąć u = z 0 y 0 u 0 , bo wtedy otrzymujemy

xyu = zαz 0 y 0 αz 0 y 0 u 0 = z(αz 0 y 0 ) 2 u 0 ≈ zαz 0 y 0 u 0 = xy 0 u 0 ind. ≈ x Analogicznie można dowieść Σ(y) ⊆ Σ(x) ⇒ (∃u) x ≈ uyx.

1

(2)

Fakt 2. (∃w, t) x ≈ tˆ x ∧ ˆ x ≈ xw

Dowód. Niech x = pαy. Zachodzi Σ(y) ⊆ Σ(pα), więc można skorzystać z faktu 1: (∃u) pα ≈ pαyu i dodatkowo ustalmy w = uβq co daje

ˆ

x = pαβq fakt 1 ≈ pαyuβq = xuβq = xw

Analogicznie ustalmy x = zβq, mamy Σ(pα) = Σ(βq), więc (∃v) βq ≈ vpαβq i niech t = zv, zatem

x = zβq fakt 1 ≈ zvpαβq = zv ˆ x = tˆ x

Teraz można dowieść lematu:

x fakt 2 ≈ tˆ x ≈ tˆ xˆ x fakt 2 ≈ xˆ x fakt 2 ≈ xxw ≈ xw fakt 2 ≈ x ˆ

Przy pomocy lematu udowodnijmy twierdzenie główne.

Dowód. 1. Zauważmy, że relacja ≈ jest relacją równoważności (działa zwrot- ność, przechodniość i symetria), na mocy czego jeśli x 1 ≈ x 2 i ˆ x 1 ≈ ˆ x 2 , to wszystkie cztery słowa leżą w jednej klasie abstrakcji. Podobnie jeśli x 1 6≈ x 2 , to ˆ x 1 i ˆ x 2 znajdują się w dwóch różnych klasach abstrakcji.

2. (⇒) Załóżmy, że ˆ x 1 ≈ ˆ x 2 oraz nie zachodzi prawa strona twierdzenia (dowód nie wprost). Rozpatrzmy przypadki:

1. p 1 6≈ p 2 . Jeśli Σ(p 1 ) 6= Σ(p 2 ) (wtedy α 1 6= α 2 ), to za pomocą operacji podwojenia dowolnego podsłowa (lub odwrotnej) nie możemy doprowa- dzić do „wymienienia” α 1 na jakiś inny znak, a co za tym idzie zmiany zbioru Σ(p 1 ). Nie można zatem uzgodnić prefiksów słów ˆ x 1 i ˆ x 2 , więc sprzeczność z założeniem.

Załóżmy zatem, że Σ(p 1 ) = Σ(p 2 ) (wtedy także α 1 = α 2 ). Jeśli

|Σ(p 1 )| = 1, to wtedy p 1 ≈ p 2 i mamy sprzeczność. W przeciwnym przypadku rozbijmy p 1 i p 2 na czwórki (p p

1

, α p

1

, β p

1

, q p

1

) i (p p

2

, α p

2

, β p

2

, q p

2

) i rekurencyjnie dla krótszych słów o mniejszym alfabecie sprawdzamy przypadki tego twierdzenia. Na którymś poziomie tej rekurencji mu- siałoby okazać się (dla pewnych słów w 1 i w 2 ), że

• Σ(w 1 ) = Σ(w 2 ) i |Σ(w 1 )| = 1 i sprzeczność, albo

2

(3)

• α w

1

6= α w

2

lub β w

1

6= β w

2

, co doprowadzi do sprzeczności z zało- żeniem o ˆ x 1 ≈ ˆ x 2 , bo nie będzie się dało uzgodnić prefiksów.

2. q 1 6≈ q 2 . Analogicznie jak powyżej.

3. α 1 6= α 2 . Wtedy Σ(p 1 ) 6= Σ(p 2 ) i można skorzystać z dowodu pierw- szego podpunktu.

4. β 1 6= β 2 . Analogicznie jak powyżej.

2. (⇐) Niech ˆ x 1 = p 1 αβq 1 i ˆ x 2 = p 2 αβq 2 . Z założenia p 1 ≈ p 2 i q 1 ≈ q 2 , więc możemy prefiksy i sufiksy obu słów ze sobą uzgodnić niezależnie od siebie i będzie dobrze.

Problemy

1. Pokazać, że można sprawdzić relację ≈ w czasie O(n|Σ|).

2. Jakiego rzędu jest najkrótsze wyprowadzenie x z y jeśli x ≈ y?

3. Dla alfabetu rozmiaru k ile jest klas równoważności?

4. Wyznaczyć (szybkim algorytmem) najkrótszego reprezentanta każdej klasy. Czy reprezentanci maja jakies szczególne własności. W szcze- gólności podać szybki algorytm który dla danego słowa x wyznaczy najkrótsze y t. że x ≈ y.

3

Cytaty

Powiązane dokumenty

Niech A będzie gwiaździstym względem zera, pochłaniającym podzbiorem przestrzeni liniowej X, którego przecięcia z każdą prostą są domknięte2. Wykaż, że jeśli zbiór A

Zbiór A składa się z liczb przedziału [0, 1], których rozwinięcie dziesiętne nie zawiera cyfry 9.. Pokazać, że zbiór A ma miarę zero

Udowodnił niemożliwość rozwiązania równania algebraicznego stopnia wyższego niż cztery przez pierwiastniki, prowadził badania w dziedzinie teorii szeregów i całek

x-tyle kupiono długopisów y- tyle kupiono ołówków 3∙x – tyle wydano na długopisy 2∙y – tyle wydano na ołówki Tworzymy układ równań:. { 3 x +2 y=24

Niech F oznacza liczbę losowań, w których wyciągnięto monetę fałszywą, K-liczbę

Niech R będzie relacją równoważności określoną nie- pustym

[r]

Metoda rozwiązywania równania różniczkowego cząstkowego po- legająca na sprowadzeniu równania do postaci kanonicznej a następnie na rozwiązaniu równania w sposób