계산에서 실수는 어떻게 지정됩니까?


27

이것은 기본적인 질문 일지 모르지만 내쉬 평형 계산 및 선형 퇴행성 테스트와 같은 주제에 대한 논문을 읽고 이해하려고 시도했으며 실수가 입력으로 지정되는 방법을 확신하지 못했습니다. 예를 들어, LDT에 특정 다항식 하한이 있다고 언급 될 때 실수는 입력으로 취급 될 때 어떻게 지정됩니까?


1
여기에서 관심있는 토론을 찾을 수 있습니다. en.wikipedia.org/wiki/Computable_number
Joseph Malkevitch

누군가는이 서류들을 무료로 다운로드 할 수있는 전자 책에 정리해야합니다.
Dilawar

답변:


34

Kaveh의 답변에 동의하지 않습니다. 선형 프로그래밍 및 내쉬 평형의 경우 부동 소수점이 허용 될 수 있습니다. 그러나 부동 소수점 숫자와 계산 기하학은 매우 잘못 혼합됩니다. 반올림 오류는 알고리즘의 조합 가정을 무효화하여 종종 충돌을 일으 킵니다. 보다 구체적으로, 많은 계산 기하학 알고리즘은 주어진 값이 양수인지, 음수인지 또는 0인지를 검사하는 원시 테스트에 의존합니다. 해당 값이 0에 매우 가깝고 부동 소수점 반올림으로 인해 잘못된 부호가있는 경우 나쁜 일이 발생할 수 있습니다.

대신, 입력은 종종 정수 좌표를 갖는 것으로 가정되며, 중간 결과는 종종 오버플로를 피하기 위해 충분히 높은 정밀도를 가진 유리수 또는 대수로 정확하게 표현됩니다. 이러한 숫자에 대한 부동 소수점 근사값을 사용하여 계산 속도를 높일 수 있지만 부호 테스트에서 정답을 얻을 수있을 정도로 숫자가 0에서 충분히 멀어 질 수있는 상황에서만 가능합니다.

전산 기하학에있는 대부분의 이론적 알고리즘 논문에서,이 문제는 입력이 정확한 실수이고 입력 값에서 저도 다항식의 근의 부호에 대한 정확한 테스트라고 가정함으로써 회피됩니다. 그러나 기하학적 알고리즘을 구현하는 경우이 모든 것이 매우 중요합니다.


나는 Kaveh의 대답의 일부가 마음에 들었습니다. 그는 내가보고있는 논문에서 읽은 것과 일치하는 것처럼 대체 계산 모델이 있음을 제안했습니다. 즉, 나는 그 대답을 정말로 몰랐다 ... 나는 지금 Kaveh의 대답을 받아들이지 않았다. 나는 실제로 대수가 그것과 관련이 있다고 생각했다. 어쨌든, 내 질문에 무게를 question 수있는 시간을 내 주셔서 감사합니다 ... 나는 대답을 받아들이 기 전에 더 깊이 생각하고 읽을 것입니다.
Philip White

나는 그것이 CG에 대한 좋은 모델이라고 말했다하지 않은, 나의 점은 저자가, 입력이 실수 말하는 그들이 진짜로없는 경우에도 그 것이었다 실수 . 나는 다른 사람들에게 CG를 포함시키지 말아야한다는 것에 동의합니다. 나는 아주 적은 수의 CG 논문을 읽었으며 이론적 CG 논문에서 잘 확립 된 BSS 모델인가?
Kaveh

1
내 무지를 용서하지만 BSS는 무엇을 의미합니까?
Philip White

1
BSS 모델은 임의의 실수를 사용할 수 있다고 가정하는 이론적 모델입니다. CG에서 수행되는 작업에는 일반적으로 대수로 제한된 모델의 실제 구현이 포함됩니다. 또한 CG 구현은 작업 당 단가와는 거리가 멀다. 그래서 그들은 같은 것이 아닙니다. 예 : LEDA 실수 모델 citeseerx.ist.psu.edu/viewdoc/…
David Eppstein

10
@Kaveh : 아니요. 기하학적 알고리즘은 실제 RAM 모델에서 합리적인 입력뿐만 아니라 임의의 실제 입력에 적합하도록 설계되었습니다. 특히, 실제 RAM에서 사소하지만 (실제) 정수 RAM에 대해 효율적인 알고리즘이 알려지지 않은 프리미티브를 사용하기 때문에 정확하게 구현할 수없는 기하학적 알고리즘이 있습니다 . 가장 좋은 예는 제곱근 문제의 합입니다. 두 세트 와 양의 정수 T 가 주어지면 s S ST ? sSs>tTt
Jeffε


8

이것은 귀하의 질문에 대한 직접적인 답변이 아니며 Raphael 에 대한 답변 입니다. 최근에 coinduction을 사용하여 실수 계산을 지정하는 작업이 꽤있었습니다. 여기 주제에 관한 기사가 있습니다.

그들은 전체 범위의 실수 계산을 거의 다루지 않지만 다양한 문제를 해결하기 위해 진보하고 있습니다.


1
좋은 생각이지만 계산 가능한 정의를 많이 가질 수 있기 때문에이 접근법은 전체 다룰 수는 없습니다 . 내가 간과합니까? 아니면 내가 오해했고 목표는 적어도 더 많은 숫자를 정확하게 나타내는 것입니까? R
Raphael

좋은 지적. 공동 접근 방식의 한계가 무엇인지 잘 모르겠습니다. 접근법은 초기 단계입니다.
Dave Clarke

7

실수에 대한 계산의 계산 복잡도는 Blum, Cucker, Shub 및 Smale에 의해 고려됩니다 . 다음은이 책에 대한 부분 설명입니다.

고전적인 계산 이론은 Goedel, Turing, Church 및 Kleene의 연구에서 시작되었으며 이론적 컴퓨터 과학의 매우 성공적인 프레임 워크였습니다. 그러나이 책의 주제는 대부분의 알고리즘이 실수 알고리즘 인 현대 과학 계산을위한 부적절한 기초를 제공한다는 것입니다. 이 책의 목표는 고전 이론의 주요 주제를 통합하고 수학, 수치 분석 및 과학 컴퓨팅의 문제에 더 직접 적용 할 수있는 공식적인 계산 이론을 개발하는 것입니다. 그 과정에서 저자들은 다음과 같은 근본적인 문제를 고려합니다. Mandelbrot는 결정 가능한가? 간단한 2 차지도의 경우 Julia가 정지 세트입니까? 뉴턴의 진짜 복잡성은 무엇입니까 방법? 일정 수의 단계에서 배낭 문제를 결정하는 알고리즘이 있습니까? Hilbert Nullstellensatz는 다루기 어려운가요? 4 차 다항식의 실제 0을 찾는 데 문제가 있습니까? 선형 프로그래밍이 실제보다 다루기 쉬운가?

이 책에 대한 리뷰는 ACM SIGACT News 에서 찾을 수 있습니다 .


이 책은 매우 흥미로워 보입니다. 감사합니다.
Philip White

천만에요
MS Dousti

5
실수에 대한 BSS 계산 모델이 논란의 여지가 있다는 점은 주목할 가치가 있습니다. 위의 의견에서 David Eppstein이 언급 한 것과 매우 유사한 이유입니다. 예를 들어 : BSS는 임의의 실수 x와 y에 대해 x <y가 한 단계 씩 걸 렸는지 계산하는 공리입니다 . 반대로, TTE (Type Two Effectivity)와 같은 접근 방식은 실수에 대한 입력 근사값을 사용하고 실수에 대한 함수에 대한 계산 가능한 근사값을 출력하는 기계를 정의합니다. 시간이 경과할수록 입력 및 출력 근사가 더 잘 될 수 있습니다. 그 접근 방식은 더 현실적입니다.
Aaron Sterling

@Aaron Sterling : Type 2 Effectivity에 대한 좋은 참고 자료를 알고 있습니까?
Joshua Grochow

3
@Joshua Grochow : 더 빨리 연락을받지 못했습니다. Kaveh와 관련된 책은 TTE의 "Nielsen and Chuang"입니다. 그러나 그것은 표기법이 너무 많아서 평범한 독자에게는 비열한 것처럼 보일 것입니다. 대신 Vasco Brattka의 다음 자습서 슬라이드를 제안합니다. cca-net.de/vasco/cca/tutorial.pdf
Aaron Sterling

7

주석을 기준으로 편집 / 수정

저자가 선형 프로그래밍, 내쉬 평형 계산, ... 대부분의 논문 (실수에 대한 계산 / 복잡성에 관한 논문이 아닌 논문)에서 실수 입력에 대해 이야기 할 때 실제 숫자를 의미하지는 않습니다. 그것들은 그들의 조작 (대수)으로 인해 발생하는 합리적인 숫자와 숫자입니다. 따라서 유한 문자열로 표현 된 것으로 생각할 수 있습니다.

반면에, 논문이 분석의 계산 및 복잡성에 관한 경우, 그들은 일반적인 계산 모델을 사용하지 않고, 실수에 비해 계산 불가능한 다양한 계산 / 복잡성 모델이 있습니다.

논문에서 실수에 대한 계산 모델을 지정하지 않은 경우 첫 번째 사례, 즉 합리적인 숫자라고 가정 할 수 있습니다.

계산 기하학이 다릅니다. CG의 대부분의 논문에서 저자가 알고리즘의 정확성과 복잡성에 대해 논의 할 모델을 지정하지 않으면 BSS (일명 실제 RAM) 모델이라고 가정 할 수 있습니다.

모델은 현실적이지 않으므로 구현이 간단하지 않습니다. (이것은 CCA의 일부 사람들이 Ko-Friedman / TTE / Domain 이론 모델을 선호하는 이유 중 하나 이지만,이 모델의 문제점은 실제로 부동 소수점 계산만큼 빠르지 않기 때문입니다.) BSS 모델의 알고리즘이 반드시 구현 된 알고리즘의 정확성으로 전달되는 것은 아닙니다.

Weihrauch의 은 다른 모델들 사이의 비교를 포함합니다 (9.8 장). 세 페이지 만 읽을 가치가 있습니다.

(CG에 더 적합한 세 번째 방법도 있습니다.이 백서를 살펴보십시오.

Chee Yap, " EGC에 따른 실제 계산 이론 "

여기서 EGC는 정확한 기하 계산 입니다.)


"주로 관심있는 논문은"우리는 공식적으로 계산 모델을 정의합니다 "라는 문장이 포함 된 모델을 지정한다고 생각합니다. 이 논문을 "만족도 문제에 대한 하한"이라고하며 선형 결정 트리 및 쿼리 다항식에 대한 논의가있는 것으로 보입니다. 그래서 나는 그것이 내가 찾고 있던 대답이라고 생각합니다 ... 감사합니다. 논문을 다시 읽고 이해가되는지 살펴 보겠습니다.
Philip White

2
동의하지 않습니다. 이것은 계산 기하학에 대한 잘못된 모델입니다. 아래에서 더 자세한 답변을 참조하십시오.
David Eppstein

1
@ Kaveh : 부동 소수점 숫자가 아니라 합리적인 숫자 라고 말해야한다고 생각합니다 . 정확한 합리적 숫자는 유한 문자열로 쉽게 표현할 수 있으며 많은 응용 (예 : 선형 프로그래밍 관련)에서 입력이 합리적이면 중간 결과도 합리적 숫자가됩니다. (.. 데이빗 엡스타인이 지적 물론, 완 기하 구조는 중간 결과는 일반적으로 합리적이 아니라는 점에서 주목할만한 예외입니다.)
유카 Suomela

@ Juka : 당신은 맞습니다, 나는 부동 소수점을 합리적인 것으로 대체 할 것입니다.
Kaveh

5
아니. 나는 "실수"를 쓸 때, 난 정말 "실수"를 의미하고 내 말 것을에 의해 정말 정말 실수에서 실수를. 정말. 특히 @Philip이 다루는 논문에서 알고리즘이 임의의 실제 입력에 대해 작동한다고 가정해야 하므로 비표준 분석의 결과를 적용 할 수 있습니다.
Jeffε

3

그들은 그렇지 않으며 일반적으로 할 수 없습니다. 우리는 계산 모델로 계산할 수있는 수의 입력 (및 출력과 함수) 만 처리 할 수 ​​있습니다. 특히, 모든 입력은 유한해야하지만 모든 실수가 유한 표현을 갖는 것은 아닙니다.

요청에 따라 특정 실수의 다음 자리를 생성하는 일종의 오라클 (스트림과 같은)을 추측 할 수 있습니다. 그렇지 않으면 (임의의 정확한) 근사치로 살아야합니다.


이것이 사실이라면 LDT는 어떻게 실수를 다룰 수 있습니까? "r- 선형 의사 결정 트리"에 대한 내용을 읽었지만 "선형 만족도 문제에 대한 경계 하한"이라는 논문에서 그들이 무엇을 말하고 있는지 실제로 이해하지 못했습니다.
Philip White

나는 그들이 Turing 기계 (또는 동등한 conecpts)를 사용할 수 없거나 사용하지 않는다는 내기. 내 것만 큼 엄격하지 않은 일반적인 대답은 이것에 약간의 빛을 비춰 야합니다.
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.