직사각형 행렬의 순위를 계산하는 가장 빠른 알고리즘은 무엇입니까?


15

주어 행렬 (가정 , 컬럼의 랭크 및 기준을 계산하는 가장 빠른 알고리즘이 무엇인가)?m×nmn

선형 Matroid 교차를 통해 해결할 수 있다는 것을 알고 있습니다 .O 시간 결정 알고리즘과 시간 무작위 알고리즘을 의미합니다. 거기에 보다 직접적 행렬 곱셈에 문제 (또는 가우스 소거법)를 감소하는 시간 결정적 알고리즘?O(mn1.62)O(mnω1)O(mnω1)

답변:


9

당신은 가져올 수 시간에 쉴론 형태로 -matrix O를 ( N ω + ε ) 어떤을 위해 ε > 0 . Bürgisser, Clausen, Shokrollahi, Section 16.5의 "대수 복잡성 이론"책을 참조하십시오.2n×nO(nω+ϵ)ϵ>0

이제이 절차 를 m × n 행렬에 번 적용합니다 . 이것은 O ( m n ω - 1 ) 산술 연산을 가진 알고리즘을 제공합니다 .m/nm×nO(mnω1)

행렬을에 켈론 형태로 가져 오면 나중에 n x n 크기의 0 행렬이 포함 됩니다. 나머지 n × n- 행렬을 취하고, 입력 행렬의 새로운 n x n- 블록을 추가 한 후이를에 첼론 형식으로 만듭니다.2n×nn×nn×nn×n


1
행을 m / n 그룹 으로 나누는 것을 의미 합니까? m / n 결과를 어떻게 결합 하여 순위를 매기 는가? 첫 번째 열에 1이있는 다른 그룹의에 켈론 형태의 두 행을 고려하면 순위가 2 일 수 있습니까? mm/nm/n
Ho Yee Cheung

이에 대한 하한이 있습니까? 에서처럼 계급에는 계산력이 있습니까?
Thomas Ahle

3

우리는의 랭크 계산할 수 m×n 의 행렬 A O~(nnz(A)+rω) 시간 nnz(A) 의 0이 아닌 항목의 개수 A 그리고 r 계급 인 A . 이것은 Cheung et. 알. [CKL'13]r 이진 검색 . 이것은 위에서 언급 한 O(mnω1) 알고리즘 보다 빠릅니다 .


2
O(mnω1)

1
지적 해 주셔서 감사합니다. 위의 인용은 OP의 논문이므로 내 대답은 대부분 완전성입니다.
Ainesh Bakshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.