n入力ビットのANDとORを同時に計算するために必要なバイナリゲートの数


16

入力ビットのANDとORを同時に計算するために必要な最小数のバイナリゲートは何ですか?自明な上限はです。これは最適だと思いますが、これをどうやって証明するのでしょうか?標準のゲート除去手法は、入力変数のいずれかに定数を割り当てることにより、出力の1つを単純化するため、ここでは機能しません。n2n2

この問題は、Ingo Wegenerの著書「ブール関数の複雑さ」の演習5.12でも、わずかに異なる形式で示されてい。消去法では、サイズ下限のみを証明できます。より大きな下限を証明してください。」fn(x)=x1xnx¯1x¯nn+Ω(1)


1
@Ryan:質問は約ない約ANDしかしおよび OR。しかし、サーシャの質問に対する答えは知りません。
伊藤剛

1
@TsuyoshiItoありがとう、どういうわけか私はそれを間違って解析することができました。それは間違いなく重要な問題です。他の種類のゲートを使用して超える利点を得ることができるでしょう。2n2
ライアンウィリアムズ

2
@Sasha、以前の論文のように、SATソルバーを小さな例()に適用しようとしましたか?n=4
ライアンウィリアムズ

2
@Ryanはい、そうです。わかっているのは、、、です。これは本の機能用です(すべての入力ビットが等しい場合はです)。これはように成長します。また、サイズ回路は簡単に構築できます。まず、すべての(ゲート)を計算し、次に論理積を計算しますそれらの(ゲート)。C 4 = 5 C 57 1 N 2 N - 3 2 N - 3 X IX I + 1 I = 1 ... N - 1 N - 1 N - 2 C3=3C4=5C571n2n32n3xixi+1i=1,,n1(n1)(n2
アレクサンダーS.クリコフ

1
@Tsuyoshi:私はと考えて質問の第2の機能ゲートはサーシャの関数である(F NX = X 1 ... X nはˉ X 1 ... ˉ X N)で構築することができるN - 1 XNORゲート(x ix i + 1に適用)およびn 2 ANDゲートがXNORに適用されます。2n3fnバツ=バツ1バツnバツ¯1バツ¯nn1バツバツ+1n2
マルツィオデビアシ

回答:


14

Blum&Seysenのこの論文は役に立つかもしれません:

N.Blum、M。Seysen。ANDとNORの同時計算のためのすべての最適ネットワークの特性評価。Acta Inf。21:171-181(1984)

私が考えていることについて 2 のn - cはブラム&Seysenの方法を用いて得ることができる下限が、これがそうでないようです。バツ1バツnバツ¯1バツ¯n 2nc


1
Blum and Seysenの論文の公開PDFバージョンはありますか?
マルツィオデビアシ

@ウラジミール、参考にしてくれてありがとう!記事を見つけるときに、この場合にメソッドが適用可能かどうかを確認しようとします。
アレクサンダーS.クリコフ

3
@ウラジミール、再びありがとう!実際、この論文には私の質問anvに対する正確な答えが含まれています:ANDとORを同時に計算するにはが必要であり、このサイズの回路はANDとORを個別に計算します(興味深い!)あることを示すようにしても困難ではないC F NC A N D O R - C 2 N - 、C '2n2C(fn)C(AND,OR)c2nc
アレクサンダーS.クリコフ

@サーシャ、はい、私はこの単純な構造を見逃しました。ANDと紙で、物事を明確にするために、NOR機能が考慮され、そのためANDとOR我々が得る下つのゲートを変更することによって、そして行き、X 1 ... X nはˉ X 1 ... ˉ X N --- 2 n 52n2バツ1バツnバツ¯1バツ¯n2n5
ウラジミール・リシコフ

1
ただのリマインダー@SashaK。回答が気に入った場合は、投票数の下のチェックマークをクリックして「承認」してください。
スレシュヴェンカト

3

あなたの質問は、最小数の比較を使用してリストの最小値と最大値を同時に計算することに関するよく知られた質問に関連しています。その場合、答えは3n/2

比較の1つが最小値と最大値の両方を計算するため、上限を証明する巧妙なアルゴリズムは、同じ上限のAND / OR回路に変換されます。

ただし、少なくともモノトーン回路の場合(AND / OR回路はmax / minアルゴリズムに変換されるため)、下限(敵の引数によって与えられる)は変換されるようです。これは、以下の結合を意味するものであろう。おそらく、敵対的な議論を分析することにより、厳密な下限を得ることができます。3n/2

上限は「アルゴリズムの紹介」に表示されます。ここでは、ブール入力に対して機能する場合(適切なしきい値を使用)、max / minコンパレータ回路が有効であることを示す簡単な引数を見つけることもできます。下限は、たとえばここで見つけることができます


2
Sashaの質問で、すべての2ビットブール関数を使用して回路を構築できることに注意してください。
ライアンウィリアムズ

はい、下限をすべてのバイナリ関数のケースに変換する方法は明確ではありません。
アレクサンダーS.クリコフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.