Podobnie jak programowanie logiczne , zawężanie zbiorów wartości algebraicznych daje metodę wnioskowania o wartościach w nierozwiązanych lub częściowo rozwiązanych równaniach. Tam, gdzie programowanie logiczne opiera się na rozdzielczości , algebra zestawów wartości opiera się na regułach zawężania. Reguły zawężające pozwalają na eliminację ze zbioru rozwiązań wartości niezgodnych z rozwiązywanymi równaniami.
W przeciwieństwie do programowania logicznego, zawężanie zestawów wartości algebraicznych nie wykorzystuje cofania się . Zamiast tego wszystkie wartości są zawarte w zestawach wartości i są rozpatrywane równolegle.
Podejście to jest również podobne do stosowania ograniczeń w programowaniu logiki z ograniczeniami , ale bez podstawy przetwarzania logicznego.
Probabilistyczne zestawy wartości to naturalne rozszerzenie zestawów wartości do prawdopodobieństwa dedukcyjnego . Konstrukcja zestawu wartości zawiera informacje wymagane do obliczenia prawdopodobieństw obliczonych wartości na podstawie prawdopodobieństw wartości początkowych.
Historia
Wczesne języki programowania były koniecznością . Implementują one funkcjonalność, umożliwiając reprezentację zmian. Instrukcja przypisania umożliwia zmiennej zmianę jej wartości.
W matematyce wartość zmiennej może się nie zmieniać. Ma to fundamentalne znaczenie dla podejścia matematycznego. funkcyjne oparte na rachunku lambda umożliwiają takie matematyczne podejście do programowania. Języki funkcyjne opracowane przez wdrożenie leniwej oceny i umożliwienie przekazywania funkcji jako parametrów.
Leniwa ocena jest istotną cechą nowoczesnych funkcjonalnych języków programowania, takich jak Haskell . Haskell jest najnowszym z serii języków opartych na rachunku lambda i wyrażeniach let . Języki te zapewniają bogatą funkcjonalność dzięki leniwej ocenie i polimorficznemu systemowi typów wykorzystującemu wnioskowanie o typie . Funkcjonalne języki programowania w naturalny sposób obsługują również funkcje wyższego rzędu .
Programowanie logiczne oparte na rozdzielczości opracowanej równolegle z programowaniem funkcjonalnym. Programowanie logiczne jest formą programowania relacyjnego , która dokonuje dedukcji na temat wartości. Programowanie w logice z ograniczeniami rozszerza programowanie w logice, obsługując ograniczenia . Języki programowania w logice z ograniczeniami, takie jak ECLiPSe, umożliwiają rozwiązywanie złożonych problemów logicznych. Jednak ECLiPSe nie jest leniwy .
Języki programowania logiki, choć mają większe możliwości dedukcji, nigdy nie zyskały mocy i elastyczności języków funkcjonalnych.
Zawężanie to technika, która umożliwia dedukcję logiczną z elastycznością języków funkcjonalnych.
Wstęp
W matematyce wyrażenie reprezentuje pojedynczą wartość. Funkcja jedną lub więcej wartości na jedną unikalną wartość.
Odwrotności funkcji nie zawsze są dobrze zdefiniowane jako funkcje. Czasami wymagane są dodatkowe warunki, aby odwrotność funkcji pasowała do definicji funkcji.
W szczególności niektóre operacje boolowskie nie mają odwrotności, które można by zdefiniować jako funkcje. W szczególności dysjunkcja „lub” ma odwrotności, które dopuszczają dwie wartości. W języku naturalnym „lub” reprezentuje alternatywne możliwości.
Zawężanie jest oparte na zestawach wartości, które umożliwiają pakowanie wielu wartości i traktowanie ich jako jednej wartości. Pozwala to zawsze traktować odwrotności funkcji jako funkcje.
Aby to osiągnąć, zestawy wartości muszą rejestrować kontekst, do którego należy wartość. Zmienna może przyjąć tylko jedną wartość w każdym możliwym świecie . Zestawy wartości oznaczają każdą wartość w zestawie wartości ze światem, do którego należy.
Światy możliwe należą do zbiorów światów. Zbiór światów to zbiór wszystkich wzajemnie wykluczających się światów. Łączenie wartości z różnych możliwych światów jest niemożliwe, ponieważ oznaczałoby to łączenie wzajemnie wykluczających się możliwych światów.
Zastosowanie funkcji do zestawów wartości tworzy kombinacje zestawów wartości z różnych światów. Zwężenie zmniejsza te światy, eliminując kombinacje różnych światów z tego samego zestawu światów. Zawężające reguły wykrywają również sytuacje, w których niektóre kombinacje światów okazują się niemożliwe.
W przypadku zwężania nie jest wymagane śledzenie wsteczne. Dzięki spakowaniu możliwych wartości w zestawie wartości wszystkie kombinacje wartości mogą być brane pod uwagę w tym samym czasie. Ocena przebiega jak dla języka funkcjonalnego, łączącego kombinacje wartości w zbiorach wartości, z regułami zawężania eliminującymi ze zbiorów wartości niemożliwe.
Wprowadzenie do zestawów wartości
Zestaw wartości to obiekt, który reprezentuje zestaw wartości, które może mieć zmienna. Zestaw wartości zachowuje się matematycznie jak pojedyncza wartość, podczas gdy wewnętrznie reprezentuje wiele wartości. Aby to osiągnąć, zestaw wartości śledzi wartość wraz z kontekstem lub światem, w którym wystąpiły.
Wiele rozwiązań równania
W matematyce wyrażenie musi reprezentować pojedynczą wartość. Rozważmy na przykład równanie,
co implikuje,
Jest to jednak trochę zagmatwane i nie pozwala nam pracować z wieloma wartościami jednocześnie. Jeśli dodatkowe warunki lub ograniczenia zostaną dodane do x, chcielibyśmy rozważyć każdą wartość, aby zobaczyć, czy pasuje do ograniczenia. Tak naiwnie chcielibyśmy napisać,
Naiwnie wtedy
ale to jest złe. Każdy x musi reprezentować pojedynczą wartość w wyrażeniu. Albo x wynosi 2, albo x = −2. Można to rozwiązać, śledząc te dwie wartości, aby upewnić się, że są one używane konsekwentnie, a to właśnie robi zestaw wartości.
Reprezentacja
Wartość ustawiona dla „x” jest zapisywana jako,
Jest to kontener V , który posiada zestaw tagów, par wartości,
Wartość 2 jest powiązana z możliwym światem . Wartość -2 jest powiązana z możliwym światem . Oznacza to, że wartość nie może być jednocześnie 2 i −2. świecie wartości musi wynosić 2. Na świecie wartości musi wynosić
Rozwiązanie równania,
Jest,
Możliwe światy
Możliwy świat jest tu używany jako termin nieformalny. Formalnie możliwy świat jest definiowany przez warunek logiczny. Możliwy świat można uznać za zbiór możliwości dla świata, które pasują do warunku.
Termin „możliwy świat” jest używany, aby ułatwić śledzenie opisu zestawów wartości.
Zestawy świata
Zbiór światów to zbiór możliwych światów, które reprezentują wszystkie możliwości. Więc to świat ustawiony jako x = 2 (w świecie) lub = −2 (w świecie ). Nie ma innych możliwości.
nie jest możliwe, aby zdania dla obu światów i były prawdziwe w tym samym czasie.
Zastosowanie funkcji
Reguła stosowania funkcji do zbiorów wartości brzmi:
Na przykład,
Jest,
Przecięcie świata możliwego z samym sobą jest światem możliwym,
Przecięcie możliwego świata z innym możliwym światem z tego samego zestawu światów jest puste,
Więc,
Reguła pustych światów umożliwia odrzucanie oznaczonych wartości z pustych światów
dający,
Dając wynik, że zgodnie z oczekiwaniami wynosi -4 lub 4.
Zastosowanie do Booleanów
Jest związkiem między a , b i prawdą , z którego wynika, że zarówno a, jak i b muszą być prawdziwe.
Zezwala na wiele wartości dla a i b . jeśli jest ,
wtedy dla b
Oznacza to, że jeśli a jest fałszywe , to b musi być prawdziwe .
Teraz rozważ,
daje,
I
ujednolicenie tych dwóch zestawów wartości daje,
Para odrzucana z powodu zasady „twierdzenia równości”
wartość nie pasuje do .
Zależne światy
Rozważ problem,
Najpierw oblicz wartość ustawioną dla ,
Ponieważ to stwierdzenie jest prawdziwe, wszystkie fałszywe wartości są odrzucane, dając,
Światowy,
są niemożliwe. Światy są puste.
Jeśli zestaw światów jest uwzględniony w obliczeniach, to każdy świat ze zbioru światów musi zostać uwzględniony w wyniku. Jeśli świat nie zostanie znaleziony, jest nazywany światem zależnym i musi być pusty. Świat więc musi być pusty Wartość ustawiona dla jest teraz mniejsza,
Drugi warunek jest teraz prostszy ze względu na mniejszy zestaw wartości.
Wtedy zestawy wartości są,
A kalkulacja jest taka,
Ale jest pusty. Więc,
Więc i są puste,
Teraz nie są reprezentowane i są Więc,
Każde wykonane obliczenie może zmniejszyć rozmiar zestawów wartości poprzez usunięcie zależnych światów, ale dodać nowy zestaw wartości, którego rozmiar jest iloczynem rozmiarów wejściowych zestawów wartości. Następnie obliczenia należy przeprowadzić najpierw tam, gdzie iloczyn wielkości wejściowych zbiorów wartości jest najmniejszy.
Pizza, piwo, whisky
Po ciężkim dniu pracy, próbując dotrzymać jakiegoś szalonego terminu z projektem z piekła rodem, nadchodzi ta desperacka godzina o 22:00, kiedy wszyscy potrzebujemy pizzy, piwa i whisky. Pizzerie czynne są w godz.
Piwo, które możesz dostać,
Whisky,
Policja jest w pobliżu, a my nie stajemy się młodsi. Gdzie iść?
Jeśli wiązania są stosowane w kolejności od lewej do prawej ,
Następnie musimy ujednolicić to z,
Spowoduje to utworzenie 24 kombinacji, z których są pasujące,
W końcu musimy ujednolicić się z whisky.
Co daje 6 kombinacji. Pasujący jest,
Łącznie wygenerowano 30 kombinacji.
Jeśli wiązania są stosowane w kolejności od prawej do lewej ,
Następnie musimy ujednolicić to z,
Spowoduje to utworzenie 8 kombinacji, z których będzie pasować,
W końcu musimy ujednolicić się z pizzą.
Co daje 6 kombinacji. Pasujący jest,
Wynik jest taki sam, ale wygenerowano tylko 14 kombinacji, aby dojść do wniosku.
Każde obliczenie łączy zestawy wartości w celu utworzenia zestawu wartości, który jest iloczynem rozmiarów wejściowych zestawów wartości. Ustawiona wartość zostanie następnie zmniejszona. A każda kalkulacja ma taką samą szansę na zawężenie kalkulacji. Tak więc kontrolując kolejność i kontynuując obliczenia z najmniejszym iloczynem rozmiarów, będzie mniej obliczeń i mniej kombinatorycznej eksplozji .
Niech wyrażenia i wiele wartości
Potrzebne jest ogólne rozwiązanie problemu odwrotności funkcji, które nie są funkcjami. Wymagana jest reprezentacja wartości, która jest ograniczona do przynależności do zbioru wartości. Wyrażenie let może być użyte do przedstawienia wartości, która jest członkiem zbioru,
tym . Ograniczenie jest wyrażeniem boolowskim, które musi spełniać zmienna. Wyrażenie let umożliwia przedstawienie ograniczenia w wyrażeniu. Gdyby istniała ogólna reguła stosowania funkcji wyrażeń z ograniczeniami, wówczas ograniczenie można by traktować jak wartość.
W ramach zastosowania funkcji, jednego wyrażenia pozwól drugiemu,
Ale inna reguła dotyczy zastosowania wyrażenia let do samego siebie. Wyrażenie let nie ogranicza zakresu zmiennej x, więc x jest tą samą zmienną w dwóch wyrażeniach let.
Wydaje się, że nie ma prostej reguły łączenia wyrażeń let. Wymagana jest ogólna forma wyrażenia reprezentująca zmienną, której wartość należy do zbioru wartości. Wyrażenie powinno być oparte na zmiennej i zbiorze.
Zastosowanie funkcji zastosowane do tego formularza powinno dać inne wyrażenie w tej samej postaci. W ten sposób dowolne wyrażenie na funkcjach o wielu wartościach może być traktowane tak, jakby miało jedną wartość.
Nie wystarczy, aby forma reprezentowała tylko zbiór wartości. Każda wartość musi mieć warunek określający, kiedy wyrażenie przyjmuje wartość. Wynikowa konstrukcja jest zbiorem par warunków i wartości, zwanym „zbiorem wartości”.
Teoria zbiorów wartości
„Zestaw wartości” K jest zdefiniowany jako zbiór par, z których każda para składa się z wartości i zestawu warunków zależnych. Zestaw warunków zależnych jest używany przez „funkcję warunkową” do określenia, czy zestaw wartości przyjmuje tę wartość.
Funkcja warunku jest zdefiniowana przez 3 aksjomaty,
- Każda para zestawu wartości wynosi v , jeśli warunku została zastosowana do listy, , jest prawdą.
- Jeden z warunków jest prawdziwy.
- Tylko jeden z warunków jest prawdziwy.
Warunek jest reprezentowany jako funkcja zastosowana do zestawu warunków zależnych, aby umożliwić kontrolowanie struktury warunku. Również zestaw warunków służy do zawężania przez wykluczenie wartości zależnych . Jednak w większości przypadków zestaw wartości można traktować jako zbiór par wartości i warunków. Funkcja warunkowa tłumaczy zbiór na warunek.
Formalnie,
Nazwa |
Definicja |
Funkcja warunkowa |
|
Warunek wartości |
|
Kompletny zestaw |
|
Wykluczenie |
|
Funkcja wartości
Używając warunku wartości i kompletnych aksjomatów,
Jako wyrażenie let staje się to,
Pojedyncza wartość
Wartość ustawiona do reprezentowania pojedynczej wartości to,
wyprowadzenie jest,
Element zestawu
Zestaw wartości reprezentujący element zestawu to:
Ta dość dziwna definicja dodaje wartość ustawioną jako część warunku zależnego. Służy to zawężaniu przez wykluczenie wartości zależnych .
Wartość wyrażenia to
-
.
Zarówno R, jak i x muszą być zawarte w warunku zależnym, ponieważ R identyfikuje zestaw wartości, do którego należy warunek zależny, a x dostarcza zmienną używaną do przenoszenia wartości w wyrażeniu let.
Jeśli pominie się dodanie R do warunku zależnego, wyrażenie przybiera prostszą i bardziej zrozumiałą postać,
wyprowadzenie jest,
Zastosowanie funkcji
Zastosowanie funkcji zestawów wartości jest podane przez,
Pochodzenie,
Następnie używając,
Dostawać,
Wykluczenie
Wykluczenie to reguła określająca, kiedy warunki muszą być fałszywe,
Może to wynikać z,
Uproszczenie
Reguła uproszczenia pozwala na odrzucanie wartości, których warunek jest fałszywy.
Pochodzenie
Podsumowanie rezultatów
Nazwa |
Reguła |
Funkcja wartości |
|
Pojedyncza wartość |
|
Ustaw element |
|
Zastosowanie funkcji |
|
Wykluczenie |
|
Uproszczenie |
|
Twierdź równe |
|
Wartość ustawia tożsamość
Definiując zastosowanie funkcji do zbiorów wartości, zdefiniowano również na nowo definicję równości zbiorów wartości. Stara definicja równości nadal istnieje, ponieważ zbiory wartości są konstruowane jako zbiór par. Dwa zbiory są równe, jeśli zawierają te same elementy. Ta definicja równości zestawów wartości jest w najlepszym razie myląca.
Potrzebne jest użycie nazwy lub tożsamości zmiennej, z której zbudowany jest zestaw wartości, jako części struktury zestawu wartości. Dzięki temu zestawy wartości byłyby odrębne, chyba że byłyby oparte na tej samej zmiennej.
W matematyce kwantyfikacja dotyczy wartości, a nie formuł. Aby przejść dalej z dokładną definicją zestawów wartości, potrzebna jest kwantyfikacja na podstawie formuł, w sposób umożliwiający porównanie identyczności formuł. Rozróżnienie między formułą reprezentującą wartość a tożsamością formuły to rozróżnienie użycie-wzmianka . notacja,
wprowadza się jako średnią kwantyfikacji względem wzoru x , gdzie x odnosi się do wartości, jako zastosowania, a u odnosi się do tożsamości wzoru przedstawionego lub wspomnianego.
Używając tej notacji, elementem definicji zestawu byłoby:
Każde odniesienie do zestawu wartości musiałoby wówczas zostać zmienione, aby uwzględnić dodatkowy poziom struktury w zbiorze wartości, co utrudniłoby czytanie opisu. Ze względu na czytelność ten dodatkowy poziom struktury został pominięty w definicji zestawów wartości.
Zwężenie
„Zawężanie” określa, kiedy warunki dla wartości muszą być fałszywe . Zawężanie rozpoczyna się, gdy wartość dwóch zestawów wartości jest równa.
Zawężenie przez zapewnienie równego
Stwierdzenie, że dwa zestawy wartości są równe, daje regułę zawężania,
Do wyprowadzenia zacznij od,
Warunek wartości daje,
Zwężenie przez spójnik
Jeśli dowolny warunek bazowy jest fałszywy, wszystkie otrzymane z niego warunki są fałszywe.
Wynika to z definicji funkcji Warunek,
Warunek bazowy dla (r, z, u) to:
jeśli to jest fałszywe
Zawężenie przez skrzyżowane warunki
Jeśli lista warunków zależnych ma dwa różne warunki podstawowe z tego samego zestawu wartości, musi to być fałsz.
Aby to wywnioskować, zacznij od reguły wykluczenia, która jest:
Wtedy dla dowolnego zestawu warunków zależnych l ,
Jeśli więc zależna lista warunków jest oparta na dwóch warunkach z tego samego zestawu wartości, wartość warunku tej zależnej listy warunków jest fałszywa.
Zawężanie przez wykluczenie wartości zależnych
Każdy zestaw wartości nakłada ograniczenie na podstawowy zestaw wartości, z którego jest zbudowany. Jeśli zestaw wartości podstawowych zawiera wartości, które nie występują jako wartości zależne w zestawie wartości, warunki dla tych wartości muszą być fałszywe.
Aby to wyprowadzić, zacznij od pełnej reguły zestawu,
Funkcja warunku to
Można wybrać konkretny warunek zależny, ponieważ implikuje to cały warunek,
Więc
tutaj . Wyrażenie można zmienić, aby zdefiniować zestaw wartości, które może przyjąć
a więc,
Następnie stosując regułę wykluczenia,
daje,
Jest to zawężająca reguła wykluczania. K to zbiór wartości w zestawie wartości bazowej L , które są reprezentowane w zbiorze wartości K. Warunki dla innych wartości muszą być fałszywe.
Zestawy wartości probabilistycznych
Zestaw wartości rejestruje zależne warunki, do których można zastosować funkcję warunku w celu wydedukowania prawdziwości twierdzenia, że zestaw wartości ma określoną wartość. Tej samej struktury można użyć do podania prawdopodobieństwa, że zestaw wartości będzie równy określonej wartości. Funkcja warunku to
Funkcja prawdopodobieństwa to
Jest to prawdopodobieństwo, że każdy przypadek bazowy ma określoną wartość, jeśli zdarzenia są niezależne.
Funkcja prawdopodobieństwa jest zdefiniowana przez 3 aksjomaty,
- Każda para że prawdopodobieństwo zestawu wartości v jest funkcją prawdopodobieństwa zastosowaną do listy, .
- Suma prawdopodobieństw dla całego zbioru wartości wynosi 1.
- Prawdopodobieństwo wystąpienia dowolnych dwóch par w zbiorze wartości wynosi zero.
Funkcja prawdopodobieństwa podaje prawdopodobieństwa wyników na podstawie prawdopodobieństw początkowych określonych przez wnioskowanie indukcyjne Boole'a .
Formalnie,
Nazwa |
Definicja |
Funkcja prawdopodobieństwa |
|
Warunek wartości |
|
Kompletny zestaw |
|
Dozwolone wartości |
|
Wykluczenie |
|
Prawdopodobieństwa dla każdej wartości w zbiorze wartości można obliczyć z prawdopodobieństw w zbiorach wartości bazowych przy użyciu funkcji prawdopodobieństwa i warunku wartości. Zestawy wartości bazowych są przeznaczone dla pojedynczej wartości lub wielu zestawów wartości.
Prawdopodobieństwo dla pojedynczej wartości
Wartość ustawiona do reprezentowania pojedynczej wartości to,
Kompletna reguła brzmi:
Co jest zgodne z aksjomatem.
Prawdopodobieństwa dla wielu wartości
Wartość ustawiona do reprezentowania wielu wartości to,
Prawdopodobieństwo określa reguła dozwolonych wartości,
co upraszcza,
Jeśli podane są wcześniejsze oszacowania prawdopodobieństw dla wartości, to będą one proporcjonalne do prawdopodobieństw późniejszych, jeśli wartość jest w zbiorze wartości.
Jeśli wartość nie znajduje się w zestawie wartości, prawdopodobieństwa wyniosą zero,
Więc,
Jeśli wszystkie prawdopodobieństwa wcześniejsze są takie same, to prawdopodobieństwa są takie,
Prawdopodobieństwa ogólnych zbiorów wartości
Ogólny zestaw wartości jest tworzony z zastosowania podstawowych zestawów wartości. Regułę warunku wartości i funkcję prawdopodobieństwa można połączyć, aby dać,
Dostęp do zestawu wartości
Zawężanie umożliwia eliminację wartości, które nie spełniają ograniczeń zmiennej. Uważane za podstawę algorytmu rozwiązywania równań, to zawężenie daje zestaw wartości zgodnych z ograniczeniami nałożonymi na zmienną. Jednak w matematyce nie ma sposobu, aby uzyskać dostęp do tego zestawu wartości.
Jeśli jest wyrażeniem ograniczającym zmienną , to zbiór wartości, które może przyjąć zmienna, to mi ( x ) {
Zdefiniuj gset x jako zbiór wartości, które spełniają ograniczenia na x . Rozważ zdefiniowanie gset jako,
Definicja ta polega na znajomości wyrażenia E , które jest warunkiem dającym wszystkie ograniczenia na x . W matematyce E nie można otrzymać z x . Tak więc nie ma funkcji matematycznej, którą można zastosować do zmiennej, aby zażądać zestawu wartości. Czy zatem gset można dodać do matematyki?
Definicja metamatematyki
Możliwa może być metamatematyczna definicja gset . Wyobraź sobie, że to, co znamy jako matematyka, jest w rzeczywistości realizowane przez metafunkcję o nazwie math . matematyka przyjmuje abstrakcyjne drzewo składniowe i nadaje znaczenie zmiennym i strukturom matematycznym oraz dodaje kwantyfikatory egzystencjalne dla zmiennych, które nie zostały jawnie skwantyfikowane.
math byłaby wyrażeniem w środowisku metamatematycznym z własnymi zmiennymi. Aby odróżnić te metazmienne od zmiennych matematycznych, przedstaw je wielkimi literami, a zmienne matematyczne małymi literami.
Załóżmy teraz, że istnieje rozszerzona implementacja matematyki zaimplementowana przez funkcję xmath , zdefiniowaną jako:
Używając xmath , gset można zdefiniować przez,
Tutaj znowu zapis,
jest używany do oznaczania kwantyfikacji względem zmiennych x , gdzie x odnosi się do wartości, a u odnosi się do unikalnej tożsamości zmiennej.
Przykład
Weźmy na przykład wyrażenie ograniczające . Następnie,
Wtedy wyrażenie xmath to,
-
Wtedy gdzie u jest unikalną tożsamością zmiennej x, reprezentowanej tutaj jako liczba 1 (dla pierwszej zmiennej użytej w wywołaniu gset ),
Tutaj powołuje się na T z M jako N.
Zobacz też