Najmniejszy stały punkt

Funkcja f ( x ) = x 2 − 4 ma dwa stałe punkty, pokazane jako przecięcie z niebieską linią; jego najmniejsza wynosi 1/2 - 17/2 .

W teorii porządku , gałęzi matematyki , najmniej stałym punktem ( lfp lub LFP , czasem także najmniejszym stałym punktem ) funkcji z częściowo uporządkowanego zbioru do samej siebie jest ten stały punkt , który jest mniejszy od każdego innego stałego punktu, zgodnie z kolejność pozy. Funkcja nie musi mieć najmniejszego punktu stałego, ale jeśli tak, to najmniejszy punkt stały jest unikalny.

Na przykład, przy zwykłej kolejności liczb rzeczywistych , najmniej stałym punktem funkcji rzeczywistej f ( x ) = x 2 jest x = 0 (ponieważ jedynym innym stałym punktem jest 1 i 0 < 1). W przeciwieństwie do tego, f ( x ) = x + 1 w ogóle nie ma punktów stałych, więc nie ma najmniejszego punktu, a f ( x ) = x ma nieskończenie wiele punktów stałych, ale nie ma najmniejszego jednego.

Przykłady

Niech będzie skierowanym wykresem i będzie wierzchołkiem Zbiór wierzchołków dostępnych z zdefiniować jako najmniejszy stały punkt funkcji , zdefiniowany jako Zbiór wierzchołków, które są współdostępne z przez podobny najmniejszy stały punkt. Silnie połączony składnik v jest przecięciem tych dwóch najmniej stałych punktów.

Niech będzie gramatyką bezkontekstową } Zbiór symboli, który tworzy ciąg najmniejszy stały punkt funkcji , zdefiniowany jako gdzie oznacza zestaw mocy V .

Aplikacje

Wiele twierdzeń o punkcie stałym daje algorytmy lokalizowania najmniejszego punktu stałego. Najmniej stałych punktów często ma pożądane właściwości, których nie mają dowolne punkty stałe.

Semantyka denotacyjna

Częściowe zamówienie na

W informatyce podejście semantyki denotacyjnej wykorzystuje najmniej stałych punktów, aby uzyskać z danego tekstu programu odpowiednią funkcję matematyczną, zwaną jego semantyką. tym celu wprowadza się sztuczny obiekt matematyczny, oznaczający wyjątkową wartość „niezdefiniowany” Biorąc pod uwagę np. typ danych programu int , jego matematyczny odpowiednik jest zdefiniowany jako dla każdego pozwalając dowolnym dwóm różnym członom być nieporównywalnymi wrt , patrz obrazek.

Semantyka definicji programu int f(int n){...} jest pewną funkcją matematyczną definicja programu f nie kończy się dla jakiegoś wejścia n , można to wyrazić matematycznie jako Zbiór wszystkich funkcji matematycznych jest częściowo uporządkowany przez zdefiniowanie jeśli dla każdego relacja fa jeśli lub Na przykład semantyka wyrażenia x + x / x jest mniej zdefiniowany niż x + 1 , ponieważ to pierwsze, ale nie drugie, odwzorowuje na i zgadzają się inaczej.

Biorąc pod uwagę jakiś tekst programu f , jego matematyczny odpowiednik otrzymuje się jako najmniej stały punkt pewnego odwzorowania funkcji na funkcje, które można uzyskać przez „tłumaczenie” f . Na przykład definicja C

       0         int  fact  (  int  n  )  {  if  (  n  ==  )  return  1  ;  w przeciwnym razie  zwróć  n  *  fakt  (  n  -1  );  } 

jest tłumaczony na mapowanie

zdefiniowany jako

Odwzorowanie jest zdefiniowane w sposób nierekurencyjny, chociaż został rekurencyjnie. Z pewnymi ograniczeniami (patrz twierdzenie Kleene'a o punkcie stałym , które są spełnione w przykładzie, koniecznie ma najmniejszy punkt stały, , czyli dla wszystkich . Jest to możliwe do pokazania

Większym stałym punktem jest np. funkcja przez fa

0 jednak ta funkcja nie odzwierciedla prawidłowo zachowania powyższego tekstu programu dla ujemnego np. call fact (-1) w ogóle się nie zakończy, nie mówiąc już o powrocie . Tylko najmniej ustalony punkt, być rozsądnie użyty jako semantyczny program matematyczny.

Złożoność opisowa

Immerman i Vardi niezależnie wykazali wynik złożoności opisowej , że obliczalne w czasie wielomianowym właściwości struktur uporządkowanych liniowo są definiowalne w FO(LFP) , tj. w logice pierwszego rzędu z operatorem najmniejszego punktu stałego. Jednak FO (LFP) jest zbyt słaby, aby wyrazić wszystkie właściwości struktur nieuporządkowanych w czasie wielomianowym (na przykład, że struktura ma parzysty rozmiar).

Największe punkty stałe

Można również określić największe punkty stałe. W przypadku liczb rzeczywistych definicja jest symetryczna z najmniej ustalonym punktem, ale w informatyce są one rzadziej stosowane niż najmniej ustalone punkty. W szczególności pozycje występujące w teorii dziedzin zwykle nie mają największego elementu, stąd może istnieć wiele wzajemnie nieporównywalnych maksymalnych punktów stałych, a największy punkt stały może nie istnieć. Aby rozwiązać ten problem, optymalny punkt stały został zdefiniowany jako najbardziej zdefiniowany punkt stały zgodny ze wszystkimi innymi punktami stałymi. Optymalny punkt stały istnieje zawsze i jest największym punktem stałym, jeśli istnieje największy punkt stały. Optymalny punkt stały umożliwia formalne badanie rekurencyjnych i współkursywnych , które nie zbiegają się z najmniejszym punktem stałym. Niestety optymalnym stałym punktem efektywnej definicji rekurencyjnej może być funkcja nieobliczalna, więc ma to głównie znaczenie teoretyczne.

Zobacz też

Notatki