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?
algorithms
proof-techniques
Erel Segal-Halevi
źródło
źródło
Odpowiedzi:
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/ L2) L.1 L.2) L.1/ L2)= { x ∣ ∃ y∈ L.2) takie, że x y∈ L.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.1 L.2) L.1/ L2)
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, F.) R Q fa L. jest zbiorem stanów, z których końcowy stan może przyjmując ciąg z L .fa′= { q∈ Q ∣ ∃ y∈ L.δ( q, y) ∈ F.} 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, F.′) M. fa′ R/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. fa′ fa′ Q R 2)| 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.
źródło
Aby rozwinąć oryginalny komentarz Hendricka, rozważ ten problem
Problem ten jest rozstrzygalny, ponieważ w jednym z dwóch przypadków można uzyskać:
W przypadku (1) algorytm decyzyjny dla problemu byłby jednym z
aw przypadku (2) algorytm byłby
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.
źródło
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.
źródło