Decydowanie o najbardziej znaczącym mnożeniu binarnym

10

Interesuje mnie określenie złożoności następującego problemu decyzyjnego: Biorąc pod uwagę dwie liczby całkowite i l 2 (każda z co najwyżej m bitami), zdecyduj, czy najbardziej znaczącym bitem z mnożenia l 1l 2 jest 1 (gdzie wynik jest drukowany w 2-bitowych bitach z możliwymi początkowymi zerami)?l1l2l1l2

Podstawowe informacje o tym problemie: Oczywiście ten problem jest szczególnym przypadkiem mnożenia binarnego, w którym pyta się, czy ty bit mnożenia l 1l 2 wynosi 1. W swoim artykule Jednolite obwody progowe o stałej głębokości do dzielenia i iteracji mnożenie , Hesse, Allender i Barrington dowodzą, że iteracja (a więc binarna) mnożenie jest w D L o g T i m e - jednolita T C 0 . Co więcej, wydaje się dobrze wiadomo, że mnożenie binarne to już D L O g T iil1l2DLogTime TC0 -jednolity T C 0 - twardy. Nie udało mi się jednak znaleźć konkretnego źródła potwierdzającego ten wynik twardości. Jako nie-ekspert w dziedzinie złożoności obwodu doceniłbym również wskaźnik do tego ogólnego wyniku twardości. Wreszcie, zakładając, że mnożenie binarne to D L o g T i m e -jednolity T C 0 - twardy, moje pytanie można również odczytać jako: Czy pozostaje D L o g T i m e -jednolity T C 0DLogTime TC0DLogTime TC0DLogTime TC0- twarde, jeśli chcemy zdecydować tylko o najbardziej znaczącym pomnożeniu binarnym?

AKTUALIZACJA: Odpowiedź Kaveha wyjaśnia, dlaczego mnożenie binarne jest twarde dla (redukcja z COUNT). Dokładna złożoność decydowania o najbardziej znaczącym pomnożeniu binarnym pozostaje otwarta (a nagrodą za to pytanie).TC0

Hej hej hej
źródło
Istnieje dowód w książce o złożoności opisowej iirc. Nie jestem pewien, co masz na myśli, mówiąc, że najbardziej znaczący jest bycie jednym, zawsze z definicji jest to jedno.
Kaveh
To tylko żart twojego nauczyciela: Bity mają wartość 0 lub 1, a najbardziej znaczącym bitem jest bit inny niż 0 na najwyższej pozycji. Z definicji jest równy 1 (chyba że jeden z czynników i l 2 wynosi zero). l1l2
Gamow
@Kaveh Dzięki za referencję: Sprawdzę to. Przepraszamy za zamieszanie dotyczące najbardziej znaczącego fragmentu. Domyślnie zakładam, że wynik jest drukowany w bitach 2m-1 i, jeśli to konieczne, z wiodącymi zerami.
Heyheyhey,
@Kaveh: W książce opisowej złożoności wymieniona jest tylko górna granica. Nie znalazłem jednak nic na temat twardości mnożenia binarnego.
Heyheyhey,
Piszesz: „Co więcej, wydaje się dobrze znane, że mnożenie binarne to już - jednolity T C 0 - twardy”. Dlaczego tak się wydaje? Wiem, że mnożenie binarne nie jest w A C 0 i to wszystko, na czym mi obecnie zależy. DLogTime TC0AC0
Thomas Klimpel

Odpowiedzi:

6

Mnożenie jest zakończone dla i jest to dobrze znany wynik. Redukcja jest z Count (liczba 1 bitów w liczbie binarnej). Porównanie liczb binarnych w A C 0 tak M j O R I T y sprowadza się do C O u n t .TC0AC0MajorityCount

CountMulta0a1ankaiabaaik>3nabFOCountFO(Mult)

Kaveh
źródło
1
Dzięki za odpowiedzi! Tak, to potwierdza, że ​​mnożenie binarne jest kompletne dla TC0. Co do najbardziej znaczących bitów, pozostały pewne problemy. Najbardziej znaczącym bitem z mnożenia (111 x 111) = 110001 jest 1, a dla tego (100 x 100) = 010000 jest to 0. Zauważ, że najbardziej znaczące bity mnożników są takie same w obu przypadkach. Dlatego nie sądzę, że ogólnie wystarczy zsumować najbardziej znaczące bity. Czy coś brakuje?
Heyheyhey,
1
x=2n+1/2y=2n+1/2x2y2xy
3
Edycja jest nieprawidłowa. Ponieważ dodajemy liczby m, może nie być tylko jeden bit przeniesienia, ale log m. Decyzja, ile z tego się rozprzestrzenia, jest wówczas znacznie trudniejsza.
Emil Jeřábek
1
Rzeczywiście, pomijając wszystko inne: obliczenie wykonania pojedynczej pozycji (powiedzmy, gdzieś pośrodku) jest już równoważne Countowi, stąd TC ^ 0-complete.
Emil Jeřábek
1
@Heyheyhey, wzór, który napisałem, to FO, a zatem w jednolitym AC0.
Kaveh