아핀 람다 미적분이 P의 모든 문제를 해결할 수 있습니까?


10

유형 및 프로그래밍 언어의 고급 주제에서는 하위 구조 유형 시스템 장에서 목록에 대한 재귀 조합기를 사용하여 "정교하게 제작 된"아핀 람다 미적분학에 다항식 실행 시간이있는 용어 만 입력 할 수 있다고 언급되어 있습니다. 복잡성으로 인한 증거 제시). 우리가 P의 모든 문제를 해결할 수 있다면 이것은 매우 흥미로울 것입니다. 나는 제시된 미적분을 사용하여 P- 완전 문제에 대한 해결책을 찾으려고 노력할 수 있습니다. P- 완전 문제에 대한 솔루션을 사용하는 데 필요한 모든 축소를 수행 할 수 있음을 의미하지는 않습니다 (확실히 보이지만).

아핀 람다 미적분이 P의 문제를 정확하게 풀 수 있다고 알려진 경우, P의 문제를 정확하게 해결할 수있는 알려진 미적분이 있습니까?


1
내 무지를 실례하지만 완전 문제 의 예는 무엇 이며, 더 중요한 것은 축소 개념을 사용하고 있습니까?
Andrej Bauer

wikipedia에서 일부를 찾았습니다 : en.wikipedia.org/wiki/P-complete#P-complete_problems . 회로 가치 문제 및 혼 -SAT가 중요하다. 선형 프로그래밍도 분명히 입니다. 이 슬라이드는 회로 가치 문제 preety well cs.cornell.edu/courses/CS6820/2012sp/Handouts/cvp.pdf에 대해 설명합니다 . 감소 또는 가 사용되는 것으로 보이며 감소는 감소 보다 약 합니다. 나는 어느 쪽에도 만족할 것이다. 대 를 사용한 결과 가 정확히 무엇인지 확실하지 않습니다 . L N C L N C L N C
Jake

6
P에는 완전한 선형 언어가 있습니다. 흥미롭게도, 일반적으로 문제에 대해서는 완벽하지만 알고리즘에는 적합하지 않습니다. 즉, P의 모든 문제에 대해 다중 시간 프로그램을 작성할 수 있지만 모든 다중 시간 알고리즘을 표현할 수있는 것은 아닙니다.
Neel Krishnaswami

그 진술이 "일반적으로 P에 대해서는 완전하지만 FP에 대해서는 완전하지 않다"와 대략 동등합니까? 또한 몇 가지 예를 제공 할 수 있다면 놀라운 답변이 될 것입니다.
Jake

3
닐 크리슈나 스와미, 당신은 참조를 제공 할 수 있습니까? 이거 흥미로운 데
Mateus de Oliveira Oliveira 20

답변:


12

편집 : 아래 첫 번째 단락의 내 추측이 잘못되었습니다! Ugo Dal Lago는 Martin Hofmann (POPL 2002에 등장)이 나에게 ATTPL 서적의 시스템이 실제로 ( F P 에서 모든 함수를 계산할 수는 없지만 ). 놀랍게도, 주요 질문에 대한 대답은 '예'입니다.에프


ATTPL 서적에서 언급 한 시스템에 관해서는 P의 모든 언어를 결정할 수 없다고 확신합니다 . 확실히 모든 기능 계산할 수 F P를 : 그 장의 메모에서 설명한 바와 같이, 시스템은 마틴 호프만 저소득 1999 용지 ( "선형 타입 및 비 - 크기 증가 다항식 시간 계산이") 수행되고있는 것이 도시되어 있음 표현 가능한 함수는 폴리 타임 및 비 크기 증가라는 것에프많은 polytime 함수를 제외합니다. 또한 해당 언어로 시뮬레이션 할 수있는 튜링 머신의 테이프 크기에 심각한 제한이있는 것 같습니다. 이 백서에서 Hofmann은 선형 공간 계산을 인코딩 할 수 있음을 보여줍니다. 내 생각에 당신은 훨씬 더 많은 것을 할 수 없을 것입니다. , 그 시스템에 해당하는 클래스는 대략 polytime과 linear 공간에서 동시에 해결할 수있는 문제입니다.

두 번째 질문과 관련하여 P 의 문제를 정확하게 해결할 수있는 몇 가지 계산이 있습니다 . 그들 중 일부는 참조하는 ATTPL 장의 노트 (1.6 절)에 언급되어 있습니다 : Leivant의 계층 형 λ- 미적분 (그의 POPL 1993 논문 또는 Jean-Yves Marion "Poly-Time의 람다 미적분학 특성화 논문"참조) ", Fundamenta Informaticae 19 (1/2) : 167-184, 1993), Bellantoni 및 Cook의 F P 의 특성화와 관련됨 ; 그리고 지라드의 가벼운 선형 논리 ( Information and Computation , 143 : 175-204, 1998) 또는 Lafont의 부드러운 선형 논리 (Theorytical Computer Science ) 에서 파생 된 λ- calculiλλ에프λ318 (1-2) : 163-180, 2004). 이 후자의 두 논리 시스템에서 발생하고 다중 시간 종료 (여전히 완전성을 즐기면서)를 보장하는 유형 시스템은 다음에서 찾을 수 있습니다.

패트릭 베이 요, 카즈 시게 테루이. 람다 미적분학에서 다항식 시간 계산을위한 조명 유형. 정보 및 계산 207 (1) : 41-62, 2009.

Marco Gaboardi, 시모나 론치 델라 로카 조명 논리에서 유형 지정까지 : 사례 연구. IGPL 17 (5) : 499-530, 2009 의 논리 저널 .

이 두 논문에서 다른 많은 참고 문헌을 찾을 수 있습니다.

결론적으로 Neel Krishnaswami의 발언을 확장하겠습니다. 상황은 약간 미묘합니다. 위의 모든 -calculi는 당신이 말해 F.을, 더 많은 단지 polytime 기능에 비해 계산 예를 들어 시스템에 대해 말할 수있는 일반적인 결석의 제한으로 볼 수 있습니다, 당신은 속성 정의 Φ 시스템 F의 프로그램의 P를 : 문자열bool 과 같이 :λΦ:부울

건전성 : P에 의해 결정된 언어가 P에 있음을 의미합니다 .Φ()

완전성 : 모든 대한 , F 시스템 프로그램있다 P 결정 L 되도록 Φ ( P )는 .Φ()

관심은 로 표현되는 속성 이 순전히 구문적이고 특히 결정 가능 하다는 것 입니다. 따라서 완전성은 확장적인 의미로만 유지 될 수 있습니다. LP 에서 선호하는 언어 이고 P 가 시스템 F로 표현 된 L 을 결정하기 위해 선호하는 알고리즘 인 경우 Φ ( P ) 가 보유하지 않을 수 있습니다. L을 결정하는 다른 시스템 F 프로그램 P ' P가 있고 Φ ( P ' )가 유지 된다는 것만 알고 있습니다. 불행히도, P 'ΦΦ()'Φ(')'당신의 보다 훨씬 더 고안되어 있습니다 . 실제로, 완전성 (polynomially-clocked) 튜링 기계를 Φ를 만족시키는 시스템 F 항으로서 인코딩함으로써 완전성이 입증된다 . 따라서 선호하는 알고리즘을 사용하여 L 을 해결하는 유일한 방법은 튜링 머신에서 해당 알고리즘을 구현 한 다음 완전성 증명에 제공된 인코딩을 사용하여 시스템 F에서 변환하는 것입니다 (자체 인코딩이 작동하지 않을 수 있습니다!). 프로그래밍 측면에서 가장 우아한 솔루션은 아닙니다 ... 물론 많은 경우에 "자연"프로그램 PΦ를 만족시킵니다 . 그러나 다른 많은 경우에는 그렇지 않습니다. 위에서 언급 한 LICS 1999 논문에서 Hofmann은 삽입 정렬을 예로 들어 설명합니다.ΦΦ

더 넓은 언어의 폴리 타임 프로그램을 정확하게 입력 할 수있는 의도적으로 완전한 유형 시스템 (위의 예에서는 시스템 F)이 존재합니다. 물론, 그들은 일반적으로 결정할 수 없습니다. 보다

Ugo Dal Lago, Marco Gaboardi. 선형 종속 유형 및 상대 완전성. 컴퓨터 과학의 논리적 방법 8 (4), 2011.


1
나는 당신이 하반기에 말하려는 것을 이해하지 못합니다. 귀하의 설명에 따라, 동일한 시간을 해결하는 폴리-시간 클록 링 튜링 머신을 F- 프로그램으로 구문 변환하는 방법이 있습니다. 내가 알 수있는 한, 이것은 한 계산 모델에서 다른 계산 모델로 변환 할 때 기대할 수있는 최선의 방법입니다.
Emil Jeřábek

3
@ EmilJeřábek : 나는 가 상당히 제한적이며 많은 "자연적인"폴리 타임 F- 프로그램을 거부 한다고 말하려고 합니다. 이 시스템 F 프로그래머 같은 것이 있었고, 당신이 하나 있었고, 경우 내가 단항 유형의 정수 (곱위한 프로그램을 작성하는 방법을 요구한다면, N t을 : = X . ( X X ) X X ), 아마도 λ m N a t을 쓸 것입니다 . λ n N a t . Λ X . λ s X Φ: =엑스.(엑스엑스)엑스엑스. 그런 다음 용어가 거부되었다는 사실에 실망 할 수 있으며 대신 반복을 추가하여 곱셈을 프로그래밍해야합니다. (계속)λ미디엄.λ.Λ엑스.λ에스엑스엑스.미디엄엑스(엑스에스)
Damiano Mazza

3
(위의 예는 실제입니다. 폴리 타임에 대한 모든 선형 논리 파생 형식 시스템에서 곱셈에 대한 일반적인 용어는 입력 할 수 없습니다). 난 당신이하지 프로그램 종류와 같은, 삽입을 말할 수있다 (polytime 확실히이다) 그러나 당신이해야한다는 말한다면 당신은 더 실망 할 수있다 그것을 구현하는 튜링 기계를 기록 하고 인코딩 것을 에 시스템 F. 내가 말하고 싶지만 무엇 높은 수준의 프로그래밍 언어 것은 유형 검사는 "나는 당신의 중첩 된 검사 입력 할 수 없습니다 말에 만족하실 것입니다 무엇 프로그래머 : 당신은 바로 실망 할 것 어셈블리에서, 루프하시기 바랍니다 코드이?" :-)에프영형아르 자형
Damiano Mazza

나는 이것이 괜찮다고 생각한다. 나는 주로 기능 검색 (특정 속성을 최대화하는 함수 찾기)에 관심이 있으므로 프로그래머가 될 필요는 없습니다. 컴퓨터. 오늘 밤 나는이 참고 문헌을 살펴볼 시간이 있습니다. 감사!
Jake
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.