Hàm số mũ trên các số đại số


8

Với một số đại số αα , tôi đang quan tâm đến việc tìm kiếm một xấp xỉ của ( e α )R(eα) lên đến một độ chính xác nhất định, nơi ( )R() đề cập đến phần thực của số phức.

Chính thức, tôi muốn tính một số hữu tỉ rr sao cho | ( e α ) - r | 2 - n

|R(eα)r|2n

αα được cho bởi một đa thức tối thiểu (tiêu chuẩn).

Làm thế nào nhanh chóng chúng ta có thể giải quyết vấn đề này?


Khi αα được cho là một dấu phẩy động, tham chiếu sau

R. Brent. Đánh giá nhanh chính xác nhiều chức năng cơ bản. JACM, 1976.

dường như đưa ra một câu trả lời.

Tuy nhiên, tôi không chắc nó có thể được sử dụng cho số đại số αα .


1
Cả exp và log đều có thể xấp xỉ với n bit chính xác trong thời gian O ( M ( n ) log n ) . Kể từ xấp xỉ gốc số không phải là đáng kể nhanh hơn (chắc chắn nó cần có thời gian ít nhất là Ω ( M ( n ) ) ), câu hỏi của bạn là về cơ bản tương đương với mức độ phức tạp của xấp xỉ α . Đối với một đa thức cố định, sau này có thể được thực hiện trong thời gian O ( M ( n ) )nO(M(n)logn)Ω(M(n))αO(M(n))sử dụng phương pháp Newton, nhưng tôi không chắc chính xác điều gì sẽ xảy ra khi đa thức (và một khoảng giới hạn!) là một phần của đầu vào.
Emil Jeřábek

(Độ phức tạp thời gian tiệm cận của phép lặp Newton ít nhiều là thời gian cần thiết để đánh giá đa thức trên một đầu vào nhất định với n bit chính xác.)n
Emil Jeřábek

1
Ồ, nhưng tất cả mọi thứ tôi đã viết đều áp dụng khi bạn muốn có lỗi tương đối , nghĩa là r là đầu ra trong một đại diện mantissa theo cấp số nhân và lỗi bị ràng buộc giữ cho lớp phủ. Cách viết câu hỏi, bạn không thể có ràng buộc tốt hơn so với 2 O ( n ) tầm thường , vì 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 đã có trong trường hợp α là một số nguyên và ϵ = 1 . r2O(n)αϵ=1
Emil Jeřábek

2
Để tránh vấn đề mà Emil đề cập đến sự phức tạp của các hàm thực được nghiên cứu khi miền là một tập hợp nhỏ gọn như khoảng đơn vị. Nếu giá trị α của bạn có thể lớn tùy ý thì exp không thể được tính trong thời gian đa thức. α
Kaveh

PS: các thuật toán này thường hoạt động cho tất cả các số thực có thể tính toán bao gồm các số đại số, chúng tôi chỉ cần cung cấp các xấp xỉ tốt tùy ý cho các đầu vào.
Kaveh

Câu trả lời:


3

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 - 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 ×

±arar1a0.a1as
±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 bittuyệ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áctương đối
±2e×a0.a1as
ea0=10xmx|xx|<2mmx 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|1x/x|<2msm

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ị α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 )n log nΩ(M(n))M(n)2 O ( log n ) theo thuật toán của Fürer.nlogn2O(logn)

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 )τ 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αmy2mxx2m

Để 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± cos y ' hoặc ± tội lỗi y ' , nơi y ' = y -Reeα=excosyexcosy2mk2y/πcosy±cosy±sinyk π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'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=ykπ2|y|π/4sinyysinymm+log|y1|y=u/vu,vylà 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

π2ukv2|y|k.
πν7.60632 k ν - 1 v ν , cung cấp giới hạn trên tuyến tính trênlog| y-1| về chiều dài của đầu vào. Do đó, chúng ta có thể tínhyvớ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ếuy'là đủ nhỏ, chúng tôi chỉ có thể lấytội lỗiy'y'). QED
|y|12kν1vν,
log|y1|ysinyysinyy

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)


Tôi nghĩ vấn đề chính là lũy thừa trên số nguyên không phải là tính toán nhiều thời gian. Vì vậy, một cách để xử lý lũy thừa so với số thực là tách vấn đề đó ra khỏi phần còn lại: 1. tìm một số nguyên k sao cho 0 b / k < 1 , 2. tính r = ( b / k ) e , 3. return ( r , k , e ) là câu trả lời. k0b/k<1r=(b/k)e(r,k,e)
Kaveh

Xin lỗi, tôi bị lạc. Là gì k , b , e , và là những gì ( r , k , e ) câu trả lời cho? Dù sao, toàn bộ điểm của việc sử dụng một đại diện khác nhau cho đầu vào và đầu ra như trên là làm cho số nguyên lũy thừa thời gian đa thức: bạn có thể tính toán 2 một trivially bằng cách chỉ cần làm một số mũ các dấu chấm, và e một công trình tương tự (số mũ là một / log 2 , và sau đó bạn tiến hành xấp xỉ số bị chặn exp ( một - k,b,e(r,k,e)2aaeaa/log2một / log 2 log 2 ) để có được mantissa). exp(aa/log2log2)
Emil Jeřábek

Xin lỗi Emil, tôi hơi khó hiểu. Hãy xem xét vấn đề mà chúng ta muốn tính b e . Những gì tôi đã cố gắng nói là vấn đề duy nhất ngăn chặn tính toán hoặc hiệu quả là vấn đề xuất phát từ sự không hiệu quả của lũy thừa trên các số nguyên. be
Kaveh

Vâng, theo một nghĩa nào đó, vấn đề là lũy thừa số nguyên là không hiệu quả (hay đúng hơn, kết quả là quá lớn). Tuy nhiên, tôi không hiểu làm thế nào đề xuất của bạn được cho là hoạt động. Làm thế nào để bạn đại diện cho r ? Nếu en bit số nguyên, sau đó nếu nói b / k 1 / 2 , sau đó r 2 - 2 n là theo cấp số nhân nhỏ bé, do đó chúng tôi đang trở lại tại một hình vuông. Dù sao, kể từ khi bạn đang đại diện cho một cách hiệu quả các kết quả như k e r , đây thực chất là một cơ sở- k dấu chấm động, ngoại trừ nó không được bình thường và krencó thể khác nhau, điều này gây khó khăn cho việc thực hiện bất kỳ tính toán nào trên các biểu diễn đó. Những lợi ích là gì?
Emil Jeřábek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.