代数的数に関する指数関数


8

代数的な数与えられた場合、私は の特定の精度までの近似を見つけることに興味があります。ここで、は複素数の実数部を指します。E αα(eα)()

形式的には、ような 有理数を計算したい| E α- R | 2 - Nr

|(eα)r|2n

αは(標準の)最小多項式によって与えられます。

この問題をどれだけ早く解決できますか?


場合浮動小数点、以下の基準として与えられます。α

R.ブレント。初等関数の高速倍精度評価。JACM、1976。

答えを出すようです。

ただし、代数的数使用できるかどうかはわかりません。 α


1
expとlogの両方は、時間ビットの精度に近似できます。数値ルート近似はそれほど高速ではないため(確かに少なくとも時間が必要です)、質問は基本的にを近似する複雑さと同等です。固定多項式の場合、後者はNewtonメソッドを使用して時間で実行できますが、多項式(および境界間隔!)が入力の一部である場合に正確に何が起こるかわかりません。Ω M N α O M N nO(M(n)logn)Ω(M(n))αO(M(n))
EmilJeřábek2014

(ニュートンの反復の漸近時間の複雑さは、多かれ少なかれ、与えられた入力で多項式をビットの精度で評価するのに必要な時間です。)n
EmilJeřábek14年

1
ああ、でも私が書いたものはすべて、相対誤差が必要ときに適用されます。つまり、は指数仮数表現で出力され、仮数の誤差範囲が保持されます。質問の記述方法では、が整数の場合、出力のサイズはすでに入力のサイズで指数関数的であるため、自明なより良い境界を得ることができません。。2 O N α ε = 1r2O(n)αϵ=1
EmilJeřábek2014

2
ドメインが単位間隔のようなコンパクトセットである場合、Emilが実際の関数の複雑さを参照するという問題を回避するために検討されます。あなたの場合は任意とすることができ、大きなその後、expが多項式時間で計算することはできません。α
Kaveh

PS:これらのアルゴリズムは一般に、代数的数値を含むすべての計算可能な実数に対して機能します。入力に対して任意の適切な近似を提供する必要があるだけです。
Kaveh 2014

回答:


3

書かれているように、問題は時間とします。ここで、は入力の長さです(残念ながら、他のものにを使用しました)。実際、たとえばが正の整数(最小多項式与えられる)で場合、出力のサイズは入力のサイズで指数関数になります。結果を計算する方法はいくつかあるため、この境界はもちろん最適です。 M 、N α X - α N = 0 2 O M 2Ω(m)mnαxαn=02O(m)


もう少し理にかなっているように質問を再構成してみましょう。主な問題は、入力と出力の表現、および近似の概念をどのように選択するかです。これにより、べき乗は、多項式時間で計算できるようになる可能性があります。

Kavehのコメントの1つに、ドメインを一定の有限区間に制限する方法が述べられています。これは機能しますが、不必要に制限されます。特に、代数的数を有界数に変換して指数関数が互いに何らかの関係を持つようにする方法はありません。

より柔軟なアプローチは、入力を固定小数点数として表し、出力を浮動小数点数として表すことです。具体的には、固定小数点表現は を表すで、であり、浮動小数点表現は であり、同様の解釈が行われます。ここで、は2進整数で、です。(例外として、それ自体を表すこともできます。)実数のからビットの絶対値の近似 ± Σ J A 、J 2 J A 、J{ 0 1 } ± 2 E × 0a 1a s e a 0 = 1

±arar1a0.a1as
±jaj2jaj{0,1}
±2e×a0.a1as
ea0=1x m x | x x0xm精度は、であるような実際のであり、相対精度のビットへの近似は、ようなです。固定小数点近似には絶対精度を使用し、浮動小数点近似には相対精度を使用します。したがって、どちらの場合でも、想定することもできます(1ビットの精度が失われるまで)。x m x | 1 x / x | < 2 - M S M|xx|<2mmx|1x/x|<2msm

2進ガウス有理数の固定小数点表現と浮動小数点表現、および複素数の近似は、実数のペアを使用して同様に定義されます。以下のどこでも、は入力の合計サイズを示します。n

ここで、(実数または複素数)べき乗を次の問題とします:入力は数値と単項自然数固定小数点表現であり、出力はからビットの相対精度の浮動小数点近似です。対して、対数は入力として浮動小数点数と単項取り、出力は(たとえば、複素数の場合は主分岐)の絶対精度のビットへの固定小数点近似です。m e x m x m log x mxmexmxmlogxm

いくつかの穏やかな規則性条件を満たす実行時の境界に固執し、定数の乗法因子を無視する限り、次のようになります。

  • 指数、対数、または同様の分析関数の複雑さは、少なくとも整数の乗算の複雑さです。たとえば、から読み取ることができますはの長さに線形な、十分に大きい場合。 EXPa2t aexp(a2t)=a2t+a222t1+O(a323t)ta
  • 指数と対数は同じ複雑さを持っています。その理由は、関数自体の評価を使用して、ニュートン反復(またはBrentのようなより洗練された方法)によってnice関数の逆を計算できるためです。反復には通常、乗算または除算が含まれますが、前のポイントまでに余裕があります。

代数的数値、それらは最小多項式(バイナリの整数係数のシーケンスとして記述)と、同じ多項式の根を区別するためのいくつかの手段で表すことができます。そのための自然な方法は、分離間隔またはディスクを必要とすることですような固定小数点数のペア。少なくともがこのプロパティを持つ一意の根であることを要求する必要がありますが、より強いものがより適切な場合があります。詳細は後ほど。F 、C ρ | C - α | < ρ α Fαfc,ρ|cα|<ραf

ましょう代数的数の近似値は、以下の問題である:代数的数所与上記表現であり、単項での(複雑な)固定小数点近似計算に絶対精度のビット。M α Mαmαm

元の質問ではが求められましたが、ここでは無視して、代数のべき乗を次の問題として定義します。とて、(複素数)を計算します浮動小数点近似に対して相対精度のビット。 α M E αメートルReeααmeαm

事実:線形因子まで、代数的数のべき乗の複雑さは、代数的数の近似の複雑さと、複素数のべき乗の複雑さを同じです。

証明スケッチ:一方で、最初に固定小数点近似を計算してから、それをべき乗することができます。なお、の絶対精度のビット決定に対して相対精度のビット、及びその逆を。メートルαα E α Mm+O(1)αeαm

一方、代数的数のべき乗を実行できる場合は、固定小数点数(正確と見なされる)を代数的数としての表現に容易に変換できるため、単純なべき乗も実行できます。上記のコメントにより、これは同じ時間範囲で対数を計算することもできることを意味します。したがって、最初に概算し、次に対数を取ることで代数的数値を概算できます。QEDeα

これは問題を2つのまったく関連のない問題に分割します。べき乗の最もよく知られている上限は

定理(ブレント):時間でビット整数を乗算できる場合、時間複素指数(および対数)を計算でき。M nO M n log n M(n)O(M(n)logn)

最もよく知られている下限は、上記のです。の最もよく知られている上限は、フューラーのアルゴリズムによるです。M n n log nΩ(M(n))M(n)nlogn2O(logn)

代数的数値近似(つまり、根の発見)のための最新技術を理解することは、まだ活発な研究分野であり、文献の範囲の定式化は、望んでいるほど明確ではないことが多いため、かなり困難です。示すとしましょう。OFNPOリットルのYLOGO~(f(n))O(f(n)polylog(f(n)))

以下のために、実際のルート近似、パンとTsigaridasを与えます:

定理:実数代数近似は、時間で実行できます。ここで、であり、はの係数のビット長の最大値です。D=FτFO~(d2τ+dm)d=deg(f)τf

同じ論文で、彼らはを複素根近似の最もよく知られている境界として言及しています。少し最近の論文(http://arxiv.org/abs/1404.4775)では、特定の分離ディスクに分離率があるとの仮定の下で、実際のケースと同じ境界を主張しているようです(ディスクの中心から最も近い他のルートまでの距離をディスクの半径で割った値)少なくともなどですが、かなり面倒な方法で記述されているため、誤って解釈することがあります。のF1+1/ログDO~(d3+d2m)f1+1/logd


さて、最後の合併症。私は問題を近似として定義しましたが、質問は要求します。これは、実際に問題が難しくなる:場合、次いで近似のに対して相対精度のビットがエラー有する、これは十分により大きくすることができる自体、いずれの場合においてで囲まれることが保証されていない。E αE α « イムeαReeα X + I Y E α m個のY 2 - MReeαImeαx+iyeαmy2m、X 2 - Mxx2m

正確な有理数の累乗については、問題を回避できます。

命題:考えると単項、バイナリ有理数(又は正確な固定小数点数)であり、我々は、浮動小数点の近似計算することができるに内の相対精度のビット上記で定義された複素指数と同じ時間限界まで、線形係数まで。(つまり、ブレントのアルゴリズムを使用した。)m個のX Y E α Mα=x+iymx,yReeαmO(M(n)logn)

証明の概略:我々は持っている。を概算でき、浮動小数点数を簡単に乗算できます。問題は、を相対誤差概算することです。最も近い整数を計算できます。ここで、はまたは。ここで、は満たします。をにするために、を計算する必要があり、が非常に小さい場合に問題が発生します。E X COS Y 2 - Mの KReeα=excosyexcosy2mkCOS Y ± COS Y ' ±2y/πcosy±cosyY ' = Y - K π±siny | y| π/4のSiNY'Y'のSiNY'MM+ログ| y1| y=u/vuvy=ykπ2|y|π/4sinyysinym相対精度のビット、絶対精度のビット。と仮定します。ここで、は入力として与えられる整数です。が小さい場合、: 適切な有理近似があり 現在、は有限不合理性測度を持っていることが知られています(現在の境界は、Salikhovによって作られています)。これは、 意味し、線形の上限を与え入力の長さに関して。したがって、を計算できますm+log|y1|y=u/vu,v π | π - 2 Uyππν76063| y| 1

|π2ukv|2|y|k.
πν7.6063ログ|
|y|12kν1vν,
y'siny'log|y1|y望ましい精度に; その場合、評価は問題になりません(が十分に小さい場合は、)。QEDsinyysinyy

同じことが代数的なも当てはまるかどうかはわかりません。上記の引数では、範囲を取得できますしかし、ベイカーの定理から、私が見たそのバージョンのどれも、必要な精度を入力のサイズで線形にするのに十分なものはありません。特に、境界には(かなり厄介な)多項式が含まれます。これにより、結果のアルゴリズムは入力のサイズが多項式になりますが、とんでもない指数になります。ログ| y | f αlog|y|deg(f)


主な問題は、整数のべき乗はポリ時間で計算できないことです。したがって、実数の指数を処理する1つの方法は、その問題を残りの問題から分離することです。1.であるような整数見つけます、3を計算します。。回答としてを返します。0 B /k、R = B / K ER K 0b/k<1r=(b/k)e(r,k,e)
Kaveh 2014

すみません、迷っています。何が、および何であるへの答え?とにかく、上記のように入力と出力に異なる表現を使用することの要点は、整数の累乗多項式時間を作成ことです。浮動小数点指数を作成だけで簡単に計算でき、も同様に機能します(指数はであり、次に、有界数を概算して仮数を取得します。R K E 2 A A E AA /ログ2 EXP - /ログ2 ログ2 k,b,e(r,k,e)2aaeaa/log2exp(aa/log2log2)
EmilJeřábek2014

申し訳ありませんが、エミール、私は少し不可解でした。を計算したい問題を考えてみましょう。私が言おうとしていたのは、計算を効率よく妨げる唯一の問題は、整数のべき乗の非効率性に起因する問題だということでした。be
Kaveh 2014

はい、ある意味問題は、整数の累乗が非効率的である(または、結果が大きすぎる)ことです。しかし、私はあなたの提案がどのように機能することになっているのか理解していません。どのようにを表現しますか?場合あるビット整数、次にもし言うの、その後指数関数的に小型であり、それゆえ我々はバック振り出しです。とにかく、結果をとして効果的に表現しているため、正規化されておらず、が変動する可能性があることを除いて、これは基本的に浮動小数点です。メリットは何ですか?E N B / K 1 / 2 R 2 - 2 n個のk Eの R K Krenb/k1/2r22nkerkk
EmilJeřábek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.