Czy istnieje algorytm, który można udowodnić, chociaż nie wiemy, co to jest?


21

W matematyce istnieje wiele dowodów na istnienie, które nie są konstruktywne, więc wiemy, że istnieje pewien obiekt, chociaż nie wiemy, jak go znaleźć.

Szukam podobnych wyników w informatyce. W szczególności: czy istnieje problem, który możemy udowodnić, że można go rozstrzygać bez pokazywania odpowiedniego algorytmu? Tzn. Wiemy, że można go rozwiązać za pomocą algorytmu, ale nie wiemy, jak wygląda algorytm?


5
Istnieje banalna odpowiedź. Podjęcia wszelkich tak / nie pytanie, którego odpowiedź jest unkown, jak „to random”, to pytanie jest rozstrzygalne, tylko my nie wiemy jeszcze, który z dwóch możliwych algorytmów jest prawidłowe. π
Hendrik Jan

6
vzn

1
@babou Rzeczywiście: rozstrzygające jest pytanie o unikalnej odpowiedzi. Wydaje się, że tutaj ignorancja jest kwestią „nie wiem” z pytania, chociaż tylko „nie wiem teraz ”. Gdy dowiemy się, czy jest przypadkowa, czy nie, musimy poszukać innego przykładu. Twoja odpowiedź poniżej jest oczywiście znacznie lepsza! Jest to forma „nie wiem”, która z natury „nigdy się nie dowie”. π
Hendrik Jan

1
@HendrikJan: I tę procedurę nazywamy algorytmem w CS. Ale biorąc za przykład problem zatrzymania, nie możemy nawet udowodnić, że istnieje algorytm!
MSalters

1
Niektóre bardziej interesujące przykłady można znaleźć tutaj: cstheory.stackexchange.com/questions/4777/…
Erel Segal-Halevi

Odpowiedzi:


14

Najprostszy przypadek, jaki znam algorytm, który istnieje, choć nie wiadomo, który algorytm dotyczy automatów skończonych.

Iloraz języka L 1 przez język L 2 jest zdefiniowany jako L 1 / L 2 = { x y L 2  tak, że  x y L 1 } .L.1/L.2)L.1L.2)L.1/L.2)={xyL.2) takie, że xyL.1}

Łatwo jest udowodnić, że zbiór regularny jest zamykany pod ilorazem przez dowolny zestaw. Innymi słowy, jeżeli jest regularny i L 2 jest dowolna (niekoniecznie regularny), a L 1 / L 2 jest prawidłowe, za.L.1L.2)L.1/L.2)

Dowód jest dość prosty. Niech będzie FSA akceptującym regularny zbiór R , gdzie Q i F są odpowiednio zbiorem stanów i zbiorem stanów akceptujących, i niech L będzie dowolnym językiem. Niech F = { q Q y LM.=(Q,Σ,δ,q0,fa)RQfaL. jest zbiorem stanów, z których końcowy stan może przyjmując ciąg z L .fa={qQyL.δ(q,y)fa}L.

Automat , który różni się od M tylko w jego zestawie F ' stanów końcowych rozpoznaje dokładnie R / l . (Lub zobacz Hopcroft-Ullman 1979, strona 62, aby uzyskać dowód na ten fakt.)M.=(Q,Σ,δ,q0,fa)M.faR/L

Jednak gdy zbiór nie jest rozstrzygalny, może nie być algorytmu decydującego, które stany mają właściwość, która definiuje F ' . Tak więc, chociaż wiemy, że zbiór F ' jest podzbiorem Q , nie mamy algorytmu określającego, który podzbiór. W konsekwencji, choć wiemy, że R jest akceptowane przez jeden z 2 | Q | możliwe FSA, nie wiemy, co to jest. Chociaż muszę wyznać, że w dużej mierze wiemy, jak to wygląda.L.fafaQR2)|Q|

Jest to przykład tego, co czasami nazywa się prawie konstruktywnym dowodem, który dowodzi, że jedna ze skończonej liczby odpowiedzi jest poprawna.

Przypuszczam, że rozszerzenie tego może być dowodem na to, że jedna z wymienionych odpowiedzi jest właściwa. Ale nie znam żadnego. Nie znam też czysto niekonstruktywnego dowodu, że jakiś problem jest rozstrzygalny, na przykład używając tylko sprzeczności.


1
@DW Powiedziałem, że jest regularne, ale L jest arbitralne . Nie musi być wyliczalny rekurencyjnie ani regularny. Żadna właściwość L nie jest używana poza faktem, że jest to zbiór ciągów. Jeśli mi nie ufasz, sprawdź Hopcroft-Ullman 1979, strona 62.RLL
babou

Dzięki. To moja ulubiona odpowiedź, ponieważ rozstrzygający język jest nieskończony.
Erel Segal-Halevi

@babou, mój błąd, źle przeczytałem to, co napisałeś. Moja wina - przepraszam za to. Zredagowałem twój post, aby zrobić część, którą źle zrozumiałem, mam nadzieję, że Cleraer.
DW

@DW Cieszę się, że miałeś problem, ale zdarza mi się również. Ale może powinienem być jaśniejszy. To nie było zamierzone. Mówiąc to, ponieważ niektórzy matematycy uważają, że bardziej elegancko jest być tajemniczym. Dzięki za edycję.
babou

12

Aby rozwinąć oryginalny komentarz Hendricka, rozważ ten problem

Biorąc pod uwagę liczbę całkowitą czy istnieje ciąg n lub więcej kolejnych 7s w rozszerzeniu dziesiętnym π ?n0nπ

Problem ten jest rozstrzygalny, ponieważ w jednym z dwóch przypadków można uzyskać:

  1. Istnieje liczba całkowita dla której rozwinięcie dziesiętne π zawiera ciąg NN.πN. kolejnych 7, ale już nie biegnie.
  2. Dla dowolnego rozszerzenie π ma ciąg n kolejnych 7.nπn

W przypadku (1) algorytm decyzyjny dla problemu byłby jednym z

Jeśli odpowiedz „nie”, inaczej odpowiedz „tak”.n>N.

aw przypadku (2) algorytm byłby

Odpowiedz „tak”.

Oczywiście każdy z nich jest algorytmem decyzyjnym; po prostu nie wiemy który. To wystarcza, choć od rozstrzygalności wymaga jedynie istnienie algorytmu, a nie specyfikacji których algorytm do użycia.


+1 To prosty przykład, który pamiętam z mojego profesora w zakresie obliczalności i logiki. To mój przykład, ponieważ nie wymaga dużej wiedzy na temat domeny, więc łatwo ją przekazać.
Joshua Taylor

1
Dla alternatywnych receptur, patrz również tutaj .
Raphael

2

Oto brak odpowiedzi. Publikuję, ponieważ uważam, że jest to pouczające, ponieważ pierwotnie twierdziłem, że jest odwrotnie, a osiem osób wyraziło zgodę na głosowanie, zanim @sdcwc wskazał błąd. Nie chciałem po prostu edytować mojej pierwszej odpowiedzi, ponieważ nie jestem pewien, jak wiele osób zagłosowałoby za nią, gdyby wiedzieli, że to jest złe.

S.S.

H.H.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.