가장 중요한 정수 곱셈 및 이진 결정 다이어그램


15

하자 Y 두 이진수 N 개의 비트 Z = X Y 이진수 (길이 2 N 의 생성물) XY . 우리 는 곱 z = z 2 n - 1z 0 의 최대 시그 니 칸트 비트 z 2 n - 1 을 계산하려고합니다 .엑스와이=엑스와이 2엑스와이21=210

이진 결정 다이어그램 (특히 1 회 분지 분기 프로그램) 모델에서이 함수의 복잡성을 분석하기 위해 경우에 해당하는 일부 표현식을 찾으려고 노력합니다 . 가장 명백한 것은 z 2 n - 1 = 1 x y 2 2 n - 1입니다 (여기서 xy 는 이진수에 해당하는 정수임). 입력 비트를 일정하게 설정하면 어떤 일이 발생하는지 직관을 원합니다. 예를 들어 가장 중요한 입력 비트를21=121=1엑스와이221엑스와이 y 에서 0까지 상수 0 함수를 얻습니다. 그러나 유의성이 낮은 비트는 결과에 영향을 미치지 않습니다.엑스와이

인 경우에 대한 다른 동등한 표현이 있습니까? 입력 비트를 수정하면 어떻게되는지 더 알 수 있습니까? 도움이 될 수있는 두 개의 이진수를 곱하는 정제 된 방법이 있습니까? 아니면이 문제에 대한 다른 접근 방식이 있습니까?21=1


마지막 단락에서 세 가지 질문이 다소 모호하다는 것을 알았습니다. 보다 구체적인 질문을 고려하십시오.
slimton

질문은 의도적으로 모호합니다. 아마도이 문제에 대한 새로운 접근법이나 아이디어가있는 사람이있을 것입니다.
Marc Bury

문제의 BDD 너비를 찾고 있습니까?
Sylvain Peyronnet

BDD 크기의 하한에 관심이 있습니다.
Marc Bury

1
다항식 하한을 의미합니까? 곱셈은 ​​L에 있으므로 균일 한 다항식 크기 ​​BDD (균일 한 이기 때문에 너비 5도 포함 )가 있습니다. 1
Emil Jeřábek가 Monica를 지원합니다.

답변:


5

흥미로운 소스는 DE Knuth : The Art of Computer Programming, Volume 4, Fascicle 1, Bitwise Tricks & Techniques; 이진 결정 다이어그램 , Addison-Wesley, Pearson Education 2009

96 페이지에는 모든 비트 z = x⋅y에 대한 BDD가 있으며 여기서 x와 y에는 3 비트가 있습니다. 3 비트의 경우 최상위 비트를 나타내는 BDD는 7 개의 비단 말 노드를 가지고 있음을 보여준다. 아래 이미지를 참조하십시오. 지수 x = (x2, x1, x0) 및 y = (y2, y1, y0)를 사용하여 다시 그렸습니다.

Knuth의 책 140 페이지에는 무한히 많은 비트를 가진 두 숫자의 곱하기에 가장 중요한 비트를 나타내는 BDD에 대한 질문 (183 번)이 있습니다 ( "제한 선행 비트 함수"라고 함). 찾고 있습니다! 223 페이지의 대답은 결과 BDD의 첫 번째 레벨을 제공하고 모든 레벨의 노드 수에 대해 설명하지만 불행히도 그러한 BDD를 구성하는 알고리즘은 제공하지 않습니다.

두 개의 3 비트 숫자를 곱하기위한 가장 중요한 비트

그림 1 : (x2, x1, x0) 곱하기의 최상위 비트 * (y2, y1, y0)


1
이 참조에 감사드립니다. 바이너리 결정 다이어그램이이 "프로그래밍 백과 사전"의 일부라는 것을 몰랐습니다.
Marc Bury
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.