가우시안 제거의 실제 시간 복잡도는 얼마입니까?


72

이전 질문에 대한 답으로, “가우시안” 제거가 O(n3) 시간에 실행 된다는 일반적이지만 잘못된 믿음을 언급했습니다 . 알고리즘이 O(n3) 산술 연산을 사용한다는 것은 명백하지만 , 부주의 한 구현은 지수 적으로 많은 비트를 갖는 숫자를 생성 할 수 있습니다. 간단한 예로, 다음 행렬을 대각선으로 만들고 싶다고 가정합니다.

[2000120011201112]

나누기없이 한 행의 정수 배수를 다른 행 에만 추가하는 버전의 제거 알고리즘을 사용하고 항상 행렬의 대각선 항목을 피벗하면 출력 행렬에는 벡터 대각선을 따라.(2,4,16,256,,22n1)

하지만 입니다 가우스 소거법의 실제 시간 복잡도는? 대부분의 조합 최적화 작성자는 "강력 다항식"에 만족하는 것 같지만 다항식이 실제로 무엇인지 궁금합니다.

n×nmO(n(m+logn))m=O(logn)O(n5)O~(n4)O(logn)

이것이 여전히 최고의 분석입니까? 더 나은 명시 적 시간 제한을 제공하거나 필요한 정밀도에 대해 더 나은 제한을 제공하는 표준 참조가 있습니까?

더 일반적으로 : 임의의 선형 방정식 시스템을 푸는 것으로 알려진 가장 빠른 알고리즘의 실행 시간 (정수 RAM에서)은 얼마입니까?


2
(폭력적인 핸드 웨이브 삽입)이 특별한 경우 해싱 모듈로 작은 소수 트릭을 사용하여 큰 정수 문제를 해결할 수 없습니까? 알고리즘은 무작위 화되지만 여전히 .. 이것은 당신이 묻는 질문에 대답하지 않습니다 ...
Suresh Venkat

1
O(n3MB[n(logn+L)])

1
표준 가우시안 제거 알고리즘은 나중에 행을 줄이기 전에 피벗 행을 피벗 요소로 나눕니다. 공개 질문은이 표준 버전을 나타냅니다. 내 질문의 시작 부분에 제시 한 예는 다른 변형을 사용하며 피벗 요소로 나눌 수 없습니다.
Jeffε

3
궁금한. Bereiss의 알고리즘에 대한 Yap의 시간 제한은 Edmonds의 Gaussian 제거 분석에서 암시 된 시간 과 동일 합니다.
Jeffε

1
rjlipton 은 최근이 지역을 조사 하고이 주제에 대한 Kannan Phd 논문을 인용했습니다. 분석의 핵심 부분은 wrt Smith 정규 형식
vzn

답변:


35

O~(n3log(A+b))


참조 주셔서 감사합니다! 이것은 내 두 번째 질문에 대한 답변이지만 첫 번째 질문에는 대답하지 않습니다.
Jeffε

3
피벗을 사용하는 경우 가우시안 제거 (GE)에서 중간 결과의 비트 크기는 다항식이며 지수 폭발은 없습니다. 이것이 Bareiss 결과라고 생각합니다. GE의 복잡성에 대해서는 Gathen과 Gerhard의 책에 매트릭스 의 결정자를 계산하기위한 "현대 컴퓨터 대수학"알고리즘이 있습니다. 이것은 GE, 모듈 식 산술 및 중국 나머지 이론을 기반으로합니다 (5.5 절, pp 101-105). 복잡도는 입니다. 빠른 산술을 사용하여 의 요소를 저장할 수 있다고 생각합니다 . 내가 틀리지 않으면, 이것은 user834가 언급 한 경계입니다. AO(n4log2A)n
Elias

@ 엘리아스, 그 표현에서 규범의 정의는 무엇입니까? 절대 크기에서 가장 큰 계수입니까? 비트 크기입니까? 또한, 임의의 합리적인 행렬에 대한 결과입니까?
Juan Bermejo Vega

13

첫 번째 질문에 대한 답은 다음과 같은 주장으로 인해 생각합니다. Edmonds의 논문은 가우시안 제거의 변형을 설명하지 않습니다 그러나 알고리즘 단계에서 계산 된 숫자는 A의 일부 하위 행렬을 결정하는 요소임을 증명합니다. 선형 및 정수 프로그래밍 이론에 대한 Schrijver의 저서에 따르면 A의 인코딩에 b 비트가 필요한 경우 b는O~(n3log(A+b))O~(log(A)) 그런 다음 모든 하위 결정 요소에는 최대 2b 비트가 필요합니다 (정리 3.2). 가우시안 제거를 다항식 시간 알고리즘으로 만들려면 계산 된 몫에주의해야합니다. 중간 단계에서 계산하는 모든 분수에서 공통 인자를 취소해야하며 모든 숫자는 인코딩 길이가 A의 인코딩 길이에 선형입니다.

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