Przeskocz do treści

Delta mi!

Złoty podział w sortowaniu

Marcin Peczarski

o artykule ...

  • Publikacja w Delcie: grudzień 2013
  • Publikacja elektroniczna: 01-12-2013
  • Autor: Marcin Peczarski
    Afiliacja: Instytut Informatyki, Uniwersytet Warszawski
  • Wersja do druku [application/pdf]: (110 KB)

Złoty podział odcinka, zwany też złotą proporcją, jest doskonale znany. Okazuje się, że podobną własność można sformułować dla problemu sortowania...

Definicja. Niech math  będzie zbiorem częściowo uporządkowanym, czyli zbiorem math  wyposażonym w relację częściowego porządku math  spełniającą warunki:

  • (zwrotność) math dla każdego math ;
  • (przechodniość) jeśli math i  math to math dla każdych math ;
  • (antysymetryczność) jeśli math i  math to math dla każdych math

Definicja. Zbiorem liniowo uporządkowanym nazywamy zbiór częściowo uporządkowany, w którym każde dwa elementy są porównywalne, czyli spełniony jest dodatkowy warunek:

  • (spójność) math lub math dla każdych math

Definicja. Rozszerzeniem liniowym zbioru częściowo uporządkowanego math  nazywamy każdy zbiór liniowo uporządkowany math  który zachowuje relację porządku, czyli math  Rozszerzenie liniowe utożsamiamy z permutacją elementów zbioru math

W dalszym ciągu będziemy rozważać tylko zbiory skończone. Dla przykładu niech math  Totalnym nieporządkiem na tym zbiorze jest zbiór częściowo uporządkowany math  taki że nie zachodzi math dla dowolnych różnych math  ma sześć rozszerzeń liniowych:

display-math

Sortowanie zbioru częściowo uporządkowanego polega na zadawaniu pytań o relację między jego elementami w celu wybrania jednego z jego rozszerzeń liniowych. Niech math  będzie zbiorem częściowo uporządkowanym, który chcemy posortować. Jeśli na pytanie o elementy math i  math uzyskamy odpowiedź, że math to rozszerzamy relację math o tę informację. Wynikiem jest nowa relacja math i nowy zbiór częściowo uporządkowany math  Formalnie relacja math jest domknięciem przechodnim relacji math uzupełnionej o porównanie math

Definicja. Domknięcie przechodnie relacji dwuargumentowej math na zbiorze math  jest to najmniejsza (w sensie inkluzji) relacja przechodnia math  na zbiorze math  taka że math

Sortowanie kończy się, gdy w wyniku zadawania kolejnych pytań otrzymamy zbiór liniowo uporządkowany. Oczywiście, nie ma sensu zadawanie pytania, na które znamy odpowiedź, czyli pytania o relację między elementami math i  math jeśli math lub math Dla zachowania ścisłości przyjmujemy, że po zadaniu takiego pytania relacja nie zmienia się.

Wróćmy do naszego przykładu trójelementowego zbioru math  i totalnego nieporządku na nim. Chcąc go posortować, możemy zadać pytanie o relację między elementami math i  math Jeśli odpowiedzią jest math to nadal możliwe są rozszerzenia liniowe

display-math

Jeśli natomiast odpowiedź brzmi math to pozostają rozszerzenia liniowe

display-math

Zauważmy, że wykonanie porównania dzieli zbiór rozszerzeń liniowych na dwa rozłączne podzbiory. Niech math oznacza liczbę rozszerzeń liniowych zbioru częściowo uporządkowanego. Łatwo zauważyć, że dla dowolnego zbioru częściowo uporządkowanego math jeśli math  i  math oznaczają rozszerzenie math odpowiednio o warunek math i  math to math i przynajmniej jedna z wartości math lub math jest nie mniejsza niż math

Zastanówmy się, jaka jest minimalna liczba porównań math  potrzebna i zawsze wystarczająca do posortowania danego zbioru częściowo uporządkowanego math Gdyby było tak, jak w powyższym przykładzie, że zawsze możemy podzielić zbiór rozszerzeń liniowych na równoliczne podzbiory, to wystarczyłoby math porównań. Niestety, nie zawsze jest to możliwe. Rozważany przykład pokazuje, że możemy uzyskać trójelementowy zbiór rozszerzeń liniowych i wtedy najlepszy możliwy do uzyskania podział jest w stosunku math Okazuje się, że najprawdopodobniej jest to przypadek najbardziej pesymistyczny. Mówi o tym hipoteza math sformułowana wiele lat temu niezależnie przez Kislicyna, Fredmana i Liniala.

Hipoteza 1. Dla dowolnego skończonego zbioru częściowo uporządkowanego math który nie jest liniowo uporządkowany, zawsze możemy wskazać dwa elementy, takie że w wyniku ich porównania (niezależnie od wyniku tego porównania) otrzymujemy rozszerzenie math dla którego zachodzi

display-math

Powyższą hipotezę udowodniono dla wielu przypadków szczególnych, co pozwala wierzyć w jej prawdziwość. Jednak w ogólnym przypadku nadal pozostaje jednym z ważniejszych problemów otwartych teorii zbiorów częściowo uporządkowanych. Prawdziwość tej hipotezy implikuje możliwość posortowania zbioru częściowo uporządkowanego math za pomocą maksymalnie math porównań (przypomnijmy, że math dla math).

Czy można lepiej? Wydaje się, że tak. Autor tego artykułu sformułował kilka lat temu hipotezę złotego podziału dla zbiorów częściowo uporządkowanych.

Hipoteza 2. Dla dowolnego skończonego zbioru częściowo uporządkowanego math który nie jest liniowo uporządkowany, zawsze możemy wskazać dwa kolejne porównania, takie że niezależnie od ich wyniku otrzymujemy kolejno rozszerzenia math i  math dla których zachodzi

display-math

Hipoteza złotego podziału jest bardziej ogólna od hipotezy math Innymi słowy, prawdziwość hipotezy złotego podziału implikuje prawdziwość hipotezy math gdyż każdy kontrprzykład dla hipotezy math jest również kontrprzykładem dla hipotezy złotego podziału. Załóżmy, że math jest kontrprzykładem dla hipotezy math Wtedy dla każdego porównania na math jeden z jego wyników daje nierówność math Oczywiście, dla każdego porównania na math możemy wskazać jego wynik, taki że math Stąd math i otrzymaliśmy kontrprzykład dla hipotezy złotego podziału.

Jak można się domyślić, hipotezy złotego podziału również nie udało się udowodnić w ogólności, ale dowiedziono jej w tak wielu przypadkach szczególnych, że mamy podstawy, aby wierzyć w jej prawdziwość.

Zmierzając do finału, zobaczmy dwa proste twierdzenia, które uzasadniają nazwę hipotezy. Niech math będzie math-tą liczbą Fibonacciego, rozpoczynając od math a  math stałą złotej proporcji.

Twierdzenie 1. Jeśli hipoteza o złotym podziale jest prawdziwa i zachodzi math to math

Dowód. Dowód prowadzimy przez indukcję. Dla math z założenia wynika, że math czyli zbiór math ma tylko jedno rozszerzenie liniowe, więc jest już posortowany. Dla math zachodzi math czyli math ma co najwyżej dwa rozszerzenia liniowe, które można rozróżnić jednym porównaniem.

Załóżmy teraz, że twierdzenie jest prawdziwe dla math i  math Niech math Wybieramy dwa porównania, aby spełnić nierówność math gdzie math i  math oznaczają zbiory częściowo uporządkowane otrzymane odpowiednio po pierwszym i drugim porównaniu. Z własności liczb Fibonacciego wynika, że zachodzi przynajmniej jedna z nierówności math lub math Z założenia indukcyjnego w pierwszym przypadku możemy posortować math za pomocą co najwyżej math porównań, a w drugim posortować math za pomocą co najwyżej math porównań. Zatem w obu przypadkach możemy dokończyć sortowanie math tak, aby nie przekroczyć math porównań.


Twierdzenie 2. Jeśli hipoteza o złotym podziale jest prawdziwa, to

display-math

W powyższym twierdzeniu kres górny jest po wszystkich skończonych zbiorach częściowo uporządkowanych, których dotyczy hipoteza złotego podziału, czyli skończonych i nieuporządkowanych liniowo. Niech math będzie takim zbiorem częściowo uporządkowanym. Niech math będzie liczbą porównań wymaganych do jego posortowania ( math i nie można go posortować za pomocą math porównań). Z poprzedniego twierdzenia wynika, że math Wiadomo, że ciąg Fibonacciego spełnia nierówność math dla math zatem

display-math

Linial wskazał ciąg zbiorów częściowo uporządkowanych math nazywanych drabinami, takich że math ma math elementów, math  oraz math Rysunek poniżej pokazuje diagramy Hassego kilku początkowych zbiorów math i pozwala odgadnąć regułę ich konstrukcji oraz genezę ich nazwy.

obrazek

Ponieważ

display-math

więc mamy

display-math

Z powyższych rozważań wnioskujemy, że postulowanego ograniczenia tego math  nie da się już poprawić. Równość zachodzi wtedy i tylko wtedy, gdy math jest liniowo uporządkowany – wtedy math i  math  Zauważmy też, że math dla math Nieco nieformalnie można powiedzieć, że podczas sortowania każde porównanie może zmniejszyć średnio liczbę rozszerzeń liniowych przynajmniej o współczynnik złotej proporcji. Tak właśnie jest dla drabin. Chcąc posortować drabinę math należy porównać dwa jej elementy maksymalne. W wyniku zbiór jej rozszerzeń liniowych o liczności math zostaje podzielony na dwa podzbiory o liczności odpowiednio math i  math a problem redukuje się do posortowania odpowiednio drabiny math lub math