이 유한 그래프 문제는 결정할 수 있습니까? 어떤 요소가 문제를 결정하게합니까?


17

다음과 같은 문제가 결정 가능한지 알고 찾는 방법을 알고 싶습니다. 내가 "예"또는 "아니오"그것을 말할 수있는 볼 때마다 문제 때문에 대부분의 문제와 알고리즘 (제공되는 몇 가지를 제외하고 decidable 있습니다 여기에 )?

입력 : A는 유한 관한 그래프와 VU 정점 같은 질문 :합니까에서 경로 GU 초기 정점과 같은 V 최종 정점으로서 존재?Gvu
Guv


답변:


18

모든 잠재적 인 솔루션을 열거하는 알고리즘이 있기 때문에 유한 한 양의 데이터 만 검사해야하는 모든 문제를 결정할 수 있습니다. 엄청나게 느릴 수 있지만 관련이 없습니다. 알고리즘이 있으면 결정할 수 있습니다.

당신이 언급 한 문제는 유한 그래프를 가정하며, 결정 가능한 것을 암시합니다. 엄밀히 말하면 조금 더 살펴 봐야합니다. 문제는 그래프의 경로에 대한 속성이며 그래프에주기가 포함 된 경우 때때로 무한한 수의 경로가 있습니다 (원하는 횟수만큼이주기를 반복 할 수 있음). 그러나 문제를 유한 문제로 쉽게 전환 할 수 있습니다. 로 시작 하고 v로 끝나는 경로가 포함 된 경로가 있으면 해당 경로의 모든주기를 잘라낼 수 있으며 새로운 해결책이 있습니다. 사이클을 포함하지 않습니다. 사이클을 포함하지 않는 유한 경로 수가 한정되어 있으므로 (그래프에 k 모서리가있는 경우 최대 k 개가 있습니다 !uvkk!같은 가장자리를 두 번 이상 사용하지 않는 경로), 에서 v 까지의 경로를 찾는 문제 는 사소한 것이므로 결정할 수 있습니다.uv

또한이 속성을 connectivity 라고 합니다 .

이 접근 방식은 축소 라는 일반적인 방법입니다 . 간단하지 않은 문제를 감안할 때 해결 방법을 알고있는 문제로 줄였습니다.

문제가 결정 불가능하다는 것을 증명하기가 어려운 경우가 많습니다. 문제가 결정 가능하다는 것을 증명하기 위해, 우리가해야 할 일은 그것을 결정하는 알고리즘을 보여주는 것입니다. 문제를 결정할 수 없음을 증명하기 위해 알고리즘이 존재할 수 없음을 증명해야합니다. 잘 알려지지 않은 몇 가지 문제가 있습니다. 실제로, 대부분의 경우, 우리가 문제를 결정할 수 없다는 것을 증명할 때, 우리는 우리의 문제를 줄이는 잘 알려진 결정 불가능한 문제가 있음을 보여줍니다. 우리의 문제에 대한 알고리즘은 잘 알려진 결정 불가능한 문제를 해결할 것이기 때문에 우리의 문제도 결정 불가능해야합니다.

“가장 큰”문제는 결정 가능하거나“가장 큰”문제는 결정 불가능하다고 말할 수 없습니다. 이론적으로는 거의 모든 문제를 결정할 수 없지만 "흥미로운"문제를 해결하려는 경향이 강하며 문제가 해결 될 가능성이 높습니다.


15

Gilles가 논평에서 지적한 것처럼 문제는 사소하게 결정 가능합니다. 다른 질문은 ...

몇 가지 ( 여기에서 제공됨 ) 를 제외하고 대부분의 문제와 알고리즘을 결정할 수 있습니까?

아니. 실제로 대부분의 문제는 결정할 수 없습니다. 실제로, 수많은 문제 (언어)가 있지만, 많은 Turing Machines 만있을 수 있습니다. 즉, 결정 가능한 많은 문제가 있습니다.


8

예, 가능한 모든 경로를 철저히 검색 할 수 있기 때문에 결정 가능합니다. "우회"를 건너 뛸 수 있기 때문에 정점을 반복하는 경로를 볼 필요가 없습니다. 그러나 반복되지 않는 경로의 길이는 유한 한 그래프의 크기로 제한되므로 이러한 경로는 유한하게 많으며 하나씩 확인할 수 있습니다.

Gabab


입력에 의존하지 않습니까? 주어진 정보가 답을 찾기에 충분하지 않은 경우, 결정 불가능하다고 말해야합니까?
Gigili

나는 당신이 무엇을 요구하는지 잘 모르겠습니다. 문제에 대해 입력 내용이 답을 찾기에 충분하다고 설명했습니다.
Carl Mummert

@Gigili 문제를 결정할 수 없다면, 모든 입력에 대해 yes 또는 no를 출력하는 알고리즘을 생각해내는 것이 불가능할 것입니다. BFS를 사용하면 경로가 존재하는지 여부를 항상 선형 시간으로 확인할 수 있기 때문에이 문제의 경우에는 해당되지 않습니다.
Zach Langley

@ZachLangley : 맞습니다. 일반적인 경우를 묻고있었습니다. 입력 한 정보가 문제를 해결하기에 충분하지 않으면 문제를 결정할 수 없습니까?
Gigili

uvuv

7

특정 문제를 결정할 수 있는지 여부를 알려주는 방법은 없습니다. 시간이 지남에 따라 특정 문제를 결정할 수 있는지 여부에 관계없이 좋은 "예감"을 얻을 수 있습니다.

내가 일반적으로하는 일은 다음과 같습니다.

  1. 문제를 해결하십시오. 즉, 주어진 문제를 해결하는 컴퓨터 프로그램을 생각해보십시오. 제안 된 문제-매우 간단한 프로그램은 가능한 경로를 확인하기 때문에 항상 경로를 찾거나 (존재하는 경우) 경로가 존재하지 않는다고 알려줍니다.
  2. 문제를 명확하게 공식화하십시오. 많은 문제가 너무 모호하지만 명확하게 쓰여질 때 결정 가능한지 여부를 쉽게 알 수 있습니다 (다른 문제와 비교하거나 결정 불가능한 것으로 알려진 쌀 이론 과 같은 알려진 방법을 사용하여 )
  3. (2)가 작동하지 않았지만 여전히 문제가 결정 불가능하다고 생각되면 결정 불가능한 문제를 줄임으로써 증명해보십시오 (대부분의 경우 문제 해결 (또는 보완)가 작동 함).

거의 항상, 결정 불가능한 문제에 대해 1 단계를 수행하려고 할 때, 무한한 수의 것들을 점검하기위한 프로그램이 필요합니다 . 이것은 일반적으로 문제를 결정할 수 없다는 신호입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.