다음과 같은 문제가 결정 가능한지 알고 찾는 방법을 알고 싶습니다. 내가 "예"또는 "아니오"그것을 말할 수있는 볼 때마다 문제 때문에 대부분의 문제와 알고리즘 (제공되는 몇 가지를 제외하고 decidable 있습니다 여기에 )?
입력 : A는 유한 관한 그래프와 와 V 및 U 정점 같은 질문 :합니까에서 경로 G 와 U 초기 정점과 같은 V 최종 정점으로서 존재?
다음과 같은 문제가 결정 가능한지 알고 찾는 방법을 알고 싶습니다. 내가 "예"또는 "아니오"그것을 말할 수있는 볼 때마다 문제 때문에 대부분의 문제와 알고리즘 (제공되는 몇 가지를 제외하고 decidable 있습니다 여기에 )?
입력 : A는 유한 관한 그래프와 와 V 및 U 정점 같은 질문 :합니까에서 경로 G 와 U 초기 정점과 같은 V 최종 정점으로서 존재?
답변:
모든 잠재적 인 솔루션을 열거하는 알고리즘이 있기 때문에 유한 한 양의 데이터 만 검사해야하는 모든 문제를 결정할 수 있습니다. 엄청나게 느릴 수 있지만 관련이 없습니다. 알고리즘이 있으면 결정할 수 있습니다.
당신이 언급 한 문제는 유한 그래프를 가정하며, 결정 가능한 것을 암시합니다. 엄밀히 말하면 조금 더 살펴 봐야합니다. 문제는 그래프의 경로에 대한 속성이며 그래프에주기가 포함 된 경우 때때로 무한한 수의 경로가 있습니다 (원하는 횟수만큼이주기를 반복 할 수 있음). 그러나 문제를 유한 문제로 쉽게 전환 할 수 있습니다. 로 시작 하고 v로 끝나는 경로가 포함 된 경로가 있으면 해당 경로의 모든주기를 잘라낼 수 있으며 새로운 해결책이 있습니다. 사이클을 포함하지 않습니다. 사이클을 포함하지 않는 유한 경로 수가 한정되어 있으므로 (그래프에 k 모서리가있는 경우 최대 k 개가 있습니다 !같은 가장자리를 두 번 이상 사용하지 않는 경로), 에서 v 까지의 경로를 찾는 문제 는 사소한 것이므로 결정할 수 있습니다.
또한이 속성을 connectivity 라고 합니다 .
이 접근 방식은 축소 라는 일반적인 방법입니다 . 간단하지 않은 문제를 감안할 때 해결 방법을 알고있는 문제로 줄였습니다.
문제가 결정 불가능하다는 것을 증명하기가 어려운 경우가 많습니다. 문제가 결정 가능하다는 것을 증명하기 위해, 우리가해야 할 일은 그것을 결정하는 알고리즘을 보여주는 것입니다. 문제를 결정할 수 없음을 증명하기 위해 알고리즘이 존재할 수 없음을 증명해야합니다. 잘 알려지지 않은 몇 가지 문제가 있습니다. 실제로, 대부분의 경우, 우리가 문제를 결정할 수 없다는 것을 증명할 때, 우리는 우리의 문제를 줄이는 잘 알려진 결정 불가능한 문제가 있음을 보여줍니다. 우리의 문제에 대한 알고리즘은 잘 알려진 결정 불가능한 문제를 해결할 것이기 때문에 우리의 문제도 결정 불가능해야합니다.
“가장 큰”문제는 결정 가능하거나“가장 큰”문제는 결정 불가능하다고 말할 수 없습니다. 이론적으로는 거의 모든 문제를 결정할 수 없지만 "흥미로운"문제를 해결하려는 경향이 강하며 문제가 해결 될 가능성이 높습니다.
예, 가능한 모든 경로를 철저히 검색 할 수 있기 때문에 결정 가능합니다. "우회"를 건너 뛸 수 있기 때문에 정점을 반복하는 경로를 볼 필요가 없습니다. 그러나 반복되지 않는 경로의 길이는 유한 한 그래프의 크기로 제한되므로 이러한 경로는 유한하게 많으며 하나씩 확인할 수 있습니다.
특정 문제를 결정할 수 있는지 여부를 알려주는 방법은 없습니다. 시간이 지남에 따라 특정 문제를 결정할 수 있는지 여부에 관계없이 좋은 "예감"을 얻을 수 있습니다.
내가 일반적으로하는 일은 다음과 같습니다.
거의 항상, 결정 불가능한 문제에 대해 1 단계를 수행하려고 할 때, 무한한 수의 것들을 점검하기위한 프로그램이 필요합니다 . 이것은 일반적으로 문제를 결정할 수 없다는 신호입니다.