二項乗算の最も重要なビットを決定する


10

Iは、以下の決定問題の複雑さを決定することに興味があります:二つの整数を考えると及びL 2(最もmビットで各)、乗算の最上位ビットかどうかを決定するL 1L 2が 1(ここでの結果であります2mビットで出力され、先頭に0が付く場合があります)?l1l2l1l2

明らかに、この問題はかどうかを尋ねるバイナリ乗算の特別な場合である。いくつかの問題の背景乗算のビット目L 1L 2は、彼らの論文では1であり、分割および反復のためのユニフォーム一定の深さ閾値回路乗算、ヘッセン、アレンダー、バリントンは、反復(したがってバイナリ)乗算がD L o g T i m e - uniform T C 0であることを証明しています。さらに、バイナリ乗算はすでにD L o g T iであることはよく知られているようですil1l2DLogTime TC0 -均一 T C 0 -hard。しかし、私はこの硬度の結果を証明する特定の情報源を見つけることができませんでした。回路の複雑さの専門家ではないので、私はこの一般的な硬さの結果へのポインタにも感謝します。最後に、バイナリ乗算であると仮定すると、D L O G T iは、mは電子 -均一 T C 0 -hardを、私の質問はまた、読み取ることができますないが、それは残り D L O G T iは、mは電子 -均一 T C 0DLogTime TC0DLogTime TC0DLogTime TC0-バイナリ乗算の最上位ビットのみを決定したい場合は難しいですか?

更新:Kavehの回答は、2項乗算がハード(COUNTからの削減)である理由を明らかにしています。バイナリ乗算の最も重要なビットを決定する正確な複雑さは未解決のままです(そしてこの恩恵はこの質問にあります)。TC0


記述的複雑さの本iircに証明があります。最上位ビットが1であることの意味がわかりません。定義により常に1です。
Kaveh

l1l2

@Kaveh参照をありがとう:私はそれをチェックします。最上位ビットについての混乱でごめんなさい。結果は2m-1ビットで出力され、必要に応じて先行0で出力されると暗黙的に想定しています。
Heyheyhey 2017

@カベ:記述的複雑さの本では、上限のみが言及されています。しかし、二項乗算の硬度については何も見つかりませんでした。
Heyheyhey 2017

DLogTime TC0AC0

回答:


6

TC0AC0MajorityCount

CountMulta0a1ankaiabaaik>3nabFOCountFO(Mult)


1
答えてくれてありがとう!はい、これにより、TC0のバイナリ乗算が完了していることが確認されます。最上位ビットについては、いくつかの問題が残っています。乗算の最上位ビット(111 x 111)= 110001は1であり、これ(100 x 100)= 010000の場合は0です。被乗数の最上位ビットはどちらの場合も同じであることに注意してください。したがって、一般的に、最上位ビットを足すだけでは十分とは言えません。何か不足していますか?
Heyheyhey 2017

1
x=2n+1/2y=2n+1/2x2y2xy

3
編集は正しくありません。m個の数を追加しているので、キャリーは1ビットだけではなく、ログmになる場合があります。どれだけ伝播するかを決定することは、はるかに困難です。
EmilJeřábek2017

1
実際、他のすべてを無視します。単一の位置(たとえば、途中のどこか)のキャリーを計算することは、すでにCountと同等であるため、TC ^ 0-completeです。
EmilJeřábek2017

1
@Heyheyhey、私が書いた式はFOなので、均一なAC0です。
Kaveh 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.