Você está na página 1de 17

Quantum Computer Science An Introduction - Chapter 2

General features and some simple examples

Gabriel Krzyzanowski de Almeida

Instituto Latino-Americano de Ciências da Vida e da Natureza - UNILA

2021

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 1 / 17


Sumário

1 O processo computacional geral.

2 Problema de Deutsch.

3 O problema Bernstein-Vazirani.

4 Problema de Simon.

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 2 / 17


O processo computacional geral.

O processo computacional geral.

Um computador quântico devidamente programado deve ser capaz de agir em um número x e


produzir outro número f (x), para alguma função especı́fica f . Se especificarmos o número x
como n-bits inteiros e o número f (x) como m-bits inteiros então precisaremos pelo menos
m + n Qbits para o processo computacional. Então vamos assumir que um cálculo de f será
feito apenas aplicando uma transformação unitária Uf , nos Qbits de entrada e saı́da.
Definimos então a atuação de Uf na base |xin |y im dos n + m Qbits compondo os registros de
entrada e saı́da como:
Atuação de Uf na base |xin |y im

Uf (|xin |y im ) = |xin |y ⊕ f (x)im (1)

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 3 / 17


O processo computacional geral.

O processo computacional geral.

Por exemplo, se o valor inicial registrado pelo bit de output y = 0, então:

Uf (|xin |0im ) = |xin |f (x)im

Essa transformação é claramente irreversı́vel.


Agora vamos aplicar a Hadamard gate na base |0i|0i:

1
(H ⊗ H)(|0i ⊗ |0i) = H1 H0 |0i|0i = (H|0i)(H|0i) = (|0i|0i + |0i|1i + |1i|0i + |1i|1i)
2
1
⇒ (H ⊗ H)(|0i ⊗ |0i) = (|0i2 + |1i2 + |2i2 + |3i2 )
2

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 4 / 17


O processo computacional geral.

O processo computacional geral.


Consequentemente :
Atuação de H na base |0in
2 n
⊗n 1 X
H |0in = |xin (2)
2n/2 x=0

Se aplicarmos então uma transformação linear Uf , temos:


2 n
⊗n 1 X
Uf (H ⊗ 1m )(|0in |0im ) = Uf (|xin |0im )
2n/2 0

2 n
⊗n 1 X
Uf (H ⊗ 1m )(|0in |0im ) = |xin |f (x)im (3)
2n/2 0

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 5 / 17


O processo computacional geral.

Paralelismo quântico

A eq. 3 nos diz que se antes de atuarmos com Uf , nos simplesmente aplicarmos uma
Hadamard em cada Qbit de entrada no estado padrão |0in o resultado da computação é
descrito por um estado cuja estrutura não pode ser explicitada sem conhecer o resultado de
todas as 2n avaliações da função f . Mas como sabemos da mecânica quântica não podemos
acessar esses 2n valores. Se tivessemos uma forma de clonar os 2n resultados antes de
realizarmos a medida, poderiamos medi-los separadamente. Mas essa ”cópia”é proibida por
um resultado fundamental.
Teorema da não-clonagem
Não existe transformação unitária que possa levar o estado |Ψin |0in para o estado |Ψin |Ψin ,
dado |Ψin arbitrário.

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 6 / 17


Problema de Deutsch.

Problema de Deutsch - Ideia geral

Queremos avaliar uma função que toma um bit de input e leva a um bit de output. Ou seja:
( (
0 se x = 0 1 se x = 0
f1 (x) = , f2 (x) = 0 , f3 (x) = 1 e f4 (x) =
1 se x = 1 0 se x = 1

f1 e f4 são funções balanceadas. Já f2 e f3 são funções constantes.


O problema consiste em saber quando f (x) é constante ou balanceada, ou seja, quando:

f (0) = f (1) e f (0) = f (1)

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 7 / 17


Problema de Deutsch.

Solução quântica.

Vamos aplicar o operador Uf seguindo a eq.1 da seguinte forma:

Agora vamos aplicar a seguinte sequência de operadores:

(H ⊗ 1)Uf (H ⊗ H)(X ⊗ X )(|xi|y i)

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 8 / 17


Problema de Deutsch.

Solução quântica.

Para o estado inicial |Ψi = |0i|0i temos:


  
|0i − |1i |0i − |1i 1
|Ψi = √ √ = (|0i|0i − |1i|0i − |0i|1i + |1i|1i)
2 2 2
Então aplicamos Uf em |Ψi:
1
|Ψi = (|0i|f (0)i − |1i|f (1)i − |0i|f (0)i + |1i|f (1)i)
2
Se f (0) = f (1) podemos fatorar : |Ψi = 21 (|0i − |1i)(|f (0)i − |f (0)i)
Se f (0) = f (1) podemos fatorar : |Ψi = 12 (|0i + |1i)(|f (0)i − |f (0)i)

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 9 / 17


Problema de Deutsch.

Solução quântica

Aplicando a Hadamard gate apenas no qbit de input:

Se f (0) = f (1): |Ψi = √1 |1i(|f (0)i − |f (0)i)


2
Se f (0) = f (1): |Ψi = √1 |0i(|f (0)i − |f (0)i)
2

Note que apenas medindo o bit |xi descobrimos se f (x) é constante ou balanceada. A forma
generalizada do algoritmo para n qbits é a seguinte:

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 10 / 17


O problema Bernstein-Vazirani.

Problema Bernstein Vazirani - Ideia geral

Temos uma função f que toma como input uma string de bits (x) e retorna 0 ou 1, ou seja:

f ({x0 , x1 , x2 , ...}) → 0 ou 1 onde xn é 0 ou 1


Porém a f não é balanceada ou constante como no problema de deustch, agora f é garantida
de retornar o produto do input com algum string a. Em outras palavras, dado f (x) = a · x
(aqui a · x = a0 x0 ⊕ a1 x1 ⊕ a2 x2 ⊕ ... ) queremos encontrar a.
Suponha que tenhamos uma subrotina que calcule f (x) = a · x, quantas vezes teriamos que
rodar essa subrotina para encontrar o valor de a? Classicamente qualquer método requer ao
menos n iterações, porém vamos mostrar que utilizando um computador quântico fazemos isso
em apenas 1 iteração.

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 11 / 17


O problema Bernstein-Vazirani.

Solução quântica
Se o Qbit de output estiver no seguinte estado:
1
HX |0i = H|1i = √ (|0i − |1i)
2
Aplicando a nossa transformação unitária Uf temos:
1 1
Uf |xin √ (|0i − |1i) = (−1)f (x) |xin √ (|0i − |1i)
2 2
A partir dessa relação, e de uma forma inteligente de escrevermos a atuação de H ⊗n em |xin
podemos mostrar que se o estado inicial de n Qbits for H ⊗n |0i e o 1-Qbit de output for H|1i e
então aplicarmos Uf e novamente aplicarmos H ⊗n nos Qbits de input teremos como resultado
final |ain |1i1 . Ou seja:

(H ⊗n ⊗ 1)Uf (H ⊗n ⊗ H)|0in |1i1 = |ain |1i1


Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 12 / 17
O problema Bernstein-Vazirani.

Solução quântica

Temos uma segunda forma de enxergar o problema analisando alguns diagramass de circuito.
A ideia é notar que a atuação de Uf da maneira como definimos na eq.1 pode ser representada
como um conjunto de cNOT-gates. Note que quando f (x) = a · x a ação de Uf na base
computacional é inverter o valor do Qbit de output sempre que um bit de x e o bit
correspondente de a são ambos 1. Por exemplo:

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 13 / 17


Problema de Simon.

Problema de Simon - Ideia geral

Problema de Simon
Nos é dada uma função 2 : 1 f : {1, 0}n → {0, 1}n de tal modo que existe uma string
a ∈ {0, 1}n que: f (x) = f (x ⊕ a) e queremos encontrar a com a menor quantidade de
iterações possı́veis.

Com um computador classico podemos encontrar a com uma subrotina em que o número de
iterações cresce exponêncialmente com n. Com um computador quântico o número de
iterações da subrotina cresce linearmente com n. Então temos um ganho exponêncial na
computação nesse caso.

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 14 / 17


Problema de Simon.

Solução quântica
A ideia é primeiramente realizar o procedimento padrão de aplicar a transformação unitária Uf
apenas após o nosso estado inicial estiver em uma superposição do tipo da eq.2. Ou seja:
n −1
2X
1
|xi|f (x)i
2n/2 x=0

Como cada valor de f aparece duas vezes com a mesma amplitude, então o input terá o
seguinte estado após Uf :
1
√ (|x0 i + |x0 ⊕ ai)
2
Aparentemente esse resultado poderia nos levar ao valor de a se conhecêssemos os valores de
x0 e (x0 ⊕ a), porém a regra de Born excluı́ essa possibilidade. Se abandonarmos a ideia de
obtermos esses valores podemos utilizar algumas operações que vão nos levar a resultados
interessantes.
Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 15 / 17
Problema de Simon.

Solução quântica
Utilizando a ultima expressão como um input aplicamos a operação H ⊗n , obtendo:
2X −1 n
⊗n 1 1
H √ (|x0 i + |x0 ⊕ ai) = (n+1)/2 ((−1)x0 ·y + (−1)(x0 ⊕a)·y )|y i
2 2 y =0

Como (−1)(x0 ⊕a)·y = (−1)x0 ·y (−1)a·y , o coeficiente de |y i é 0 se a · y = 1 e 2(−1)x0 ·y se


a · y = 0. Logo a equação se torna:
1 X
(−1)x0 ·y |y i
2(n−1)/2 a·y =0
Então se agora medirmo os Qbits de input, iremos obter os termos para qual a · y = 0. Ou seja:
n−1
X
yi ai = 0
y =0
Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 16 / 17
Problema de Simon.

Solução quântica
Para cada iteração aprendemos um valor de y para qual y · a = 0. Assim podemos montar um
sistema linear de equações, e o resolvendo encontramos a constante a
Uma visão do diagrama de circuito para esse tipo de algorı́tmo é a seguinte:

Krzyzanowski (ILACVN-UNILA) N. David Mermin 2021 17 / 17

Você também pode gostar