Như đã viết, bài toán yêu cầu thời gian 2 Ω ( m ) , trong đó m là độ dài của đầu vào (bạn không may sử dụng n cho mục đích khác). Thật vậy, nếu ví dụ: α là một số nguyên dương (được cho bởi đa thức tối thiểu x - α ) và n = 0 , kích thước của đầu ra là theo cấp số nhân theo kích thước của đầu vào. Ràng buộc này tất nhiên là tối ưu, vì có một số cách tính kết quả trong thời gian 2 O ( m ) .2Ω(m)mnαx−αn=02O(m)
Hãy để tôi cố gắng cải cách câu hỏi để nó có ý nghĩa hơn một chút. Vấn đề chính là làm thế nào để chọn đại diện của đầu vào và đầu ra, cũng như khái niệm gần đúng, để lũy thừa có cơ hội chiến đấu để có thể tính toán được trong thời gian đa thức.
Một cách đã được Kaveh đề cập trong các bình luận: giới hạn miền trong một khoảng hữu hạn cố định. Trong khi điều này hoạt động, nó là hạn chế không cần thiết; đặc biệt, không có cách nào tốt để chuyển đổi một số đại số thành một số bị giới hạn để số mũ của chúng có liên quan gì với nhau.
Một cách tiếp cận linh hoạt hơn là biểu diễn đầu vào dưới dạng số điểm cố định và đầu ra là số dấu phẩy động . Cụ thể, một đại diện điểm cố định là một chuỗi
± a r a r - 1 Lọ a 0 . một - 1 ... một - là
biểu thị ± Σ j một j 2 j , nơi một j ∈ { 0 , 1 } , và một đại diện dấu chấm động là
± 2 e ×
±arar−1…a0.a−1…a−s
±∑jaj2jaj∈{0,1}một 0 . một - 1 ... một - s
với một giải thích tương tự, nơi
e là một số nguyên nhị phân, và
một 0 = 1 . (Như một ngoại lệ, chúng tôi cũng cho phép
0 để đại diện cho chính nó.) Một xấp xỉ của một thực
x để
m bit
tuyệt đốichính xác là có thật một
x ' như vậy
| x - x ′ | < 2 - m và xấp xỉ với
m bit cóđộ chính xác
tương đốilà
±2e×a0.a−1…a−s
ea0=10xmx′|x−x′|<2−mmx ′ sao cho
| 1 - x ′ / x | < 2 - m . Chúng tôi sẽ sử dụng độ chính xác tuyệt đối cho các xấp xỉ điểm cố định và độ chính xác tương đối cho các xấp xỉ điểm nổi. Theo sau trong cả hai trường hợp, chúng tôi cũng có thể giả sử
s ≤ m (mất đến một chút độ chính xác).
x′|1−x′/x|<2−ms≤m
Các biểu diễn điểm cố định và dấu phẩy động của các tỷ lệ Gaussian dyadic và các xấp xỉ của các số phức, được định nghĩa tương tự, sử dụng một cặp số thực. Ở mọi nơi bên dưới, n biểu thị tổng kích thước của đầu vào.n
Bây giờ, hãy để lũy thừa (thực hoặc phức) là vấn đề sau: đầu vào là một đại diện điểm cố định của một số x và một số tự nhiên đơn phương m , và đầu ra là một xấp xỉ điểm nổi của e x với m bit có độ chính xác tương đối. Thông thường, logarit lấy đầu vào là số dấu phẩy động x và unary m , và đầu ra là một xấp xỉ điểm cố định của log x (giả sử, nhánh chính trong trường hợp phức tạp) với m bit có độ chính xác tuyệt đối.xmexmxmđăng nhậpxm
Miễn là chúng ta tuân theo giới hạn thời gian chạy thỏa mãn một số điều kiện đều đặn nhẹ và bỏ qua các yếu tố nhân liên tục, chúng ta có:
- Sự phức tạp của lũy thừa, logarit, hay bất kỳ chức năng phân tích tương tự, ít nhất là sự phức tạp của số nguyên nhân: ví dụ, chúng ta có thể đọc ra một 2 từ exp ( một 2 - t ) = một 2 - t + một 2 2 - 2 t - 1 + O ( a 3 2 - 3 t ) cho t đủ lớn , tuyến tính theo chiều dài của a .một2điểm kinh nghiệm( một 2- t) = a 2- t+ một22- 2 t - 1+ O ( a32- 3 t)tmột
- Lũy thừa và logarit có cùng độ phức tạp. Lý do là chúng ta có thể tính toán nghịch đảo của một hàm đẹp bằng phép lặp Newton (hoặc các phương thức phức tạp hơn như trong Brent ) bằng cách sử dụng đánh giá chính hàm đó. Lặp đi lặp lại thường liên quan đến phép nhân hoặc chia, nhưng chúng ta có thể đủ khả năng này cho điểm trước.
Đối với các số đại số α , chúng có thể được biểu diễn bằng đa thức f tối thiểu của chúng (được viết dưới dạng một chuỗi các hệ số nguyên trong nhị phân) cùng với một số phương tiện để phân biệt giữa các gốc của cùng một đa thức. Một cách tự nhiên để làm điều đó là yêu cầu một khoảng cách ly hoặc đĩa: một cặp số điểm cố định c , ρ sao cho | c - α | < Ρ . Ít nhất chúng ta cần yêu cầu rằng α là một gốc duy nhất của f với thuộc tính này, nhưng một cái gì đó mạnh hơn có thể phù hợp hơn. Thêm về điều đó sau.αfc,ρ|c−α|<ραf
Đặt xấp xỉ số đại số là vấn đề sau: đưa ra một số đại số α trong biểu diễn ở trên và m trong unary, tính một xấp xỉ điểm cố định (phức tạp) của các bit từ a đến m bit có độ chính xác tuyệt đối.αmαm
Câu hỏi ban đầu yêu cầu Re e α , nhưng bây giờ tôi bỏ qua điều đó và xác định lũy thừa số đại số là vấn đề sau: đưa ra giá trị α và m như trên, tính xấp xỉ điểm nổi (phức) của e α với m bit tương đối sự chính xác.Reeααmeαm
Sự thật: Tính đến các yếu tố tuyến tính, độ phức tạp của lũy thừa số đại số giống như độ phức tạp của xấp xỉ số đại số cộng với độ phức tạp của lũy thừa phức.
Phác thảo bằng chứng: Một mặt, trước tiên chúng ta có thể tính xấp xỉ điểm cố định của α và sau đó lũy thừa nó. Lưu ý rằng m + O ( 1 ) bit chính xác tuyệt đối cho α xác định e α để m bit chính xác tương đối, và ngược lại.αm+O(1)αeαm
Mặt khác, nếu chúng ta có thể thực hiện lũy thừa số đại số, chúng ta cũng có thể thực hiện lũy thừa đơn giản, vì chúng ta có thể dễ dàng chuyển đổi một số điểm cố định (được coi là chính xác) thành đại diện của nó dưới dạng số đại số. Bằng các ý kiến trên, điều này có nghĩa là chúng ta cũng có thể tính toán logarit trong cùng một thời gian ràng buộc. Do đó, chúng ta có thể tính gần đúng một số đại số bằng cách xấp xỉ e α trước , sau đó lấy logarit. QEDeα
Điều này phân tách câu hỏi thành hai vấn đề khá không liên quan. Giới hạn trên được biết đến nhiều nhất về lũy thừa là
Định lý ( Brent ): Nếu chúng ta có thể nhân các số nguyên n -bit trong thời gian M ( n ) , chúng ta có thể tính toán lũy thừa phức tạp (và logarit) trong thời gian O ( M ( n ) log n ) .nM(n)O(M(n)logn)
Là tốt nhất được biết đến dưới ràng buộc là Ω ( M ( n ) ) nêu trên. Giới hạn trên được biết đến nhiều nhất trên M ( n ) là n log nΩ(M(n))M(n)2 O ( log ∗ n ) theo thuật toán của Fürer.nlogn2O(log∗n)
Tìm ra trạng thái của nghệ thuật cho phép tính gần đúng số đại số (nghĩa là tìm kiếm gốc) khá khó khăn, vì nó vẫn là một lĩnh vực nghiên cứu tích cực và các công thức giới hạn trong tài liệu thường không rõ ràng như người ta muốn. Hãy ~ O ( f ( n ) ) biểu thị O ( f ( n ) p o l y l o g ( f ( n ) ) ) .O~(f(n))O(f(n)polylog(f(n)))
Để tính gần đúng gốc thực sự , Pan và Tsigaridas đưa ra:
Định lý: Có thể thực hiện xấp xỉ số đại số thực trong thời gian ˜ O ( d 2 τ + d m ) , trong đó d = deg ( f ) và τ là tối đa độ dài bit của các hệ số của f .O~(d2τ+dm)d=deg(f)τf
Trong cùng một bài báo, họ đề cập đến ˜ O ( d 3 + d 2 m ) là giới hạn được biết đến nhiều nhất cho xấp xỉ gốc phức tạp . Trong một bài báo gần đây hơn một chút ( http://arxiv.org/abs/1404.4775 ), họ dường như yêu cầu các giới hạn tương tự cho trường hợp phức tạp như đối với trường hợp thực, theo giả định rằng đĩa cách ly đã cho có tỷ lệ cách ly ( khoảng cách trung tâm của đĩa đến gốc khác gần nhất của f chia cho bán kính của đĩa) ít nhất 1 + 1 / log d hoặc hơn, nhưng nó được viết theo cách khá lộn xộn và tôi có thể hiểu sai.O~(d3+d2m)f1+1/logd
Bây giờ, biến chứng cuối cùng. Tôi đã xác định vấn đề là xấp xỉ của e α , trong khi câu hỏi yêu cầu Re e α . Điều này thực sự làm cho vấn đề trở nên khó khăn hơn: nếu Re e α ≪ Im e α , thì một xấp xỉ x + i y của e α đến m bit có độ chính xác tương đối có lỗi y 2 - m , có thể lớn hơn chính x và mọi trường hợp không được đảm bảo giới hạn bởi x 2 - m .eαReeαReeα≪Imeαx+iyeαmy2−mxx2−m
Để lũy thừa các số liệu chính xác, chúng ta có thể tránh được vấn đề:
Mệnh đề: Cho α = x + i y và unary m , trong đó x , y là số hữu tỷ nhị phân (hoặc số điểm cố định chính xác), chúng ta có thể tính xấp xỉ điểm nổi của Re e α với m bit có độ chính xác tương đối trong cùng thời gian bị ràng buộc như lũy thừa phức tạp như được định nghĩa ở trên, cho đến yếu tố tuyến tính. (Tức là, O ( M ( n ) log n ) bằng thuật toán của Brent.)α=x+iymx,yReeαmO(M(n)logn)
Bằng chứng phác thảo: Ta có Re e α = e x cos y . Chúng ta có thể xấp xỉ e x và các số dấu phẩy động dễ dàng được nhân lên, vấn đề là xấp xỉ cos y với sai số tương đối 2 - m . Chúng tôi có thể tính toán số nguyên k gần 2 y / π , đâu cos y là ± cos y ' hoặc ± tội lỗi y ' , nơi y ' = y -Reeα=excosyexcosy2−mk2y/πcosy±cosy′±siny′k π2 thỏa mãn| y′| ≤π/4. Vấn đề nảy sinh khi chúng ta cần phải tínhtội lỗiy'vày'là rất nhỏ, vì để cótội lỗiy'đểmbit chính xác tương đối, chúng ta cầnm+log| y′-1| bit có độ chính xác tuyệt đối. Giả sửy=u/v, trong đóu,vlà các số nguyên được đưa ra làm đầu vào. Nếuy'y′=y−kπ2|y′|≤π/4siny′y′siny′mm+log|y′−1|y=u/vu,vy′là nhỏ, chúng ta có một xấp xỉ hợp lý tốt của π :
| π - 2 uπk v | ≤2| y′|k .
Bây giờ,πđược biết là có một biện pháp phi lý hữu hạnν(dòng điện bị ràng buộc là7.6063bởiSalikhov). Điều này ngụ ý
| y′| ≥1
∣∣∣π−2ukv∣∣∣≤2|y′|k.
πν7.60632 k ν - 1 v ν ,
cung cấp giới hạn trên tuyến tính trên
log| y′-1| về chiều dài của đầu vào. Do đó, chúng ta có thể tính
y′với độ chính xác mong muốn; đánh giá
tội lỗiy'là sau đó không phải là một vấn đề (nếu
y'là đủ nhỏ, chúng tôi chỉ có thể lấy
tội lỗiy'≈y'). QED
|y′|≥12kν−1vν,
log|y′−1|y′siny′y′siny′≈y′
Tôi không biết liệu cùng giữ cho đại số α . Trong đối số ở trên, người ta có thể nhận được một ràng buộc trên nhật ký | y ′ | tuy nhiên, từ định lý của Baker , không có phiên bản nào mà tôi thấy đủ tốt để tạo độ chính xác cần thiết theo tuyến tính theo kích thước của đầu vào: đặc biệt, các giới hạn liên quan đến đa thức (khá khó chịu) trong deg ( f ) . Điều này làm cho thuật toán kết quả đa thức về kích thước của đầu vào, nhưng với số mũ vô lý.αlog|y′|deg(f)