The period-finding circuit for Shor's algorithm

  • Context: Undergrad 
  • Thread starter Thread starter tomdodd4598
  • Start date Start date
  • Tags Tags
    Algorithm Circuit
Click For Summary

Discussion Overview

The discussion revolves around the implementation of Shor's algorithm, specifically focusing on the period-finding circuit and the necessity of calculating modular exponentials for building the circuit. Participants explore the implications of these calculations on the efficiency of the algorithm, particularly for small numbers.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant questions whether calculating modular exponentials of ##a## to powers of two is required for building the circuit, suggesting the possibility of alternative methods.
  • Another participant asserts that pre-calculating the necessary numbers for multiplication is essential and that there is no known way to deduce the period ##r## classically in an efficient manner.
  • Some participants discuss the potential for using methods analogous to binary search for deducing the period, but express uncertainty about the efficiency of such approaches compared to Shor's algorithm.
  • One participant reflects on the misleading nature of small examples and acknowledges that classical computation remains exponential in the number of bits despite pre-calculating values.

Areas of Agreement / Disagreement

Participants generally agree on the necessity of calculating modular exponentials for building the circuit, but there is disagreement about the efficiency of classical methods for deducing the period ##r##. The discussion remains unresolved regarding alternative approaches to modular exponentiation.

Contextual Notes

Participants note that the results of modular exponentiation have little structure, which may affect the efficiency of classical methods. There is also mention of the exponential nature of classical computation in relation to the number of bits.

tomdodd4598
Messages
137
Reaction score
13
TL;DR
Building the period-finding circuit for Shor's algorithm & the classical complexity of finding the period of modular exponentiation
I've been trying to learn about Shor's algorithm by writing out implementations of the circuit for modular exponentiation, ##{ a }^{ x }\; ({ mod }\; N)##, to find the period ##r## for small numbers such as:

##(N=15,\quad a=11)\quad \longrightarrow \quad r=2##,

##(N=35,\quad a=13)\quad \longrightarrow \quad r=4##,

##(N=21,\quad a=5)\quad \longrightarrow \quad r=6##.

I know these are incredibly small numbers, but I realized that in order to actually start building the cicuit at all (using the binary exponentiation method), I needed to calculate the values of ##{ a }^{ { 2 }^{ k } }\; ({ mod }\; N)## for all ##0\;\le\;k \; <\; 2\; \lceil { \log _{ 2 }{ N } }\rceil ##, which pretty much immediately made the values of ##r## obvious before I'd even started building the circuit.

For example, take the least trivial case from the above, where ##r=6##. I needed to calculate:

##{ 5 }^{ 0 }\; ({ mod }\; 21)=1##,

##{ 5 }^{ 1 }\; ({ mod }\; 21)=5##,

##{ 5 }^{ 2 }\; ({ mod }\; 21)=4##,

##{ 5 }^{ 4 }\; ({ mod }\; 21)=16##,

##{ 5 }^{ 8 }\; ({ mod }\; 21)=4##,

##{ 5 }^{ 16 }\; ({ mod }\; 21)=16##.

Simply by inspection, I can already see what the value of ##r## must be, because the result is the same when ##x## increases by six or twelve, but not after increasing by two or three.

I therefore have two questions:

1. Is calculating these modular exponentials of ##a## to powers of two *required* when building these circuits, or is there some way of not even having to do that?
2. If we do need to calculate these values, can we not deduce the period ##r## of this modular exponentiation function classically in an efficient way, starting with these values and then using a method analogous to a binary search (or 'interval halving'), selectively calculating other values of ##{ a }^{ x }\; ({ mod }\; N)##, or an I being misled by using small numbers? [SEE EDIT]

Thanks in advance!

EDIT: It has been pointed out to me that the results of modular exponentiation have very little structure, and so although perhaps faster than ##O(N)##, such an 'interval halving' method would not have logarithmic complexity, thus would be slower than Shor's algorithm for large enough ##N##.
 
Last edited:
Physics news on Phys.org
Yes, you can (and should) pre-calculate all of the numbers that need to be multiplied by and use that knowledge when generating the quantum circuit. In this sense Shor's algorithm is just a series of multiplications by easily computed constants, with the catch being that each multiplication is controlled (it may or may not occur) and each control qubit is in superposition.

I gave a talk on optimizing circuits for Shor's algorithm:

1. Is calculating these modular exponentials of a to powers of two *required* when building these circuits, or is there some way of not even having to do that?

I don't see any way to avoid computing them. You could obfuscate the fact that they were being computed, e.g. do the computation in ternary instead of binary, but basically you're asking for a way to perform modular exponentiation that doesn't use repeated squaring.

can we not deduce the period r of this modular exponentiation function classically in an efficient way

There's no known way to do this.
 
Strilanc said:
Yes, you can (and should) pre-calculate all of the numbers that need to be multiplied by and use that knowledge when generating the quantum circuit.

I don't see any way to avoid computing them.
I see, thanks. I watched your talk, which was very interesting, though a bit beyond me for now at points :P
Strilanc said:
There's no known way to do this.
Right - for some reason I thought that as you already have to pre-calculate all of the numbers to build the gates anyway, you would already have made progress at working out what the period is, but the smallness of the examples I was looking at in detail are misleading; the amount of classical computation still required is still exponential in the number of bits.
 
Strilanc said:
I gave a talk on optimizing circuits for Shor's algorithm:


I finally had time to watch the video and that was a very nice talk:bow:
I've been sending the link to everyone I work with suggesting that they should watch it.
 

Similar threads

  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 14 ·
Replies
14
Views
5K
  • · Replies 11 ·
Replies
11
Views
2K