Baixe o app para aproveitar ainda mais
Prévia do material em texto
TÓPICOS ESPECIAIS EM ENGENHARIA DA COMPUTAÇÃO AULA 3 Prof. Luciano Frontino de Medeiros 2 CONVERSA INICIAL Esta aula dá continuidade ao estudo da computação quântica, expandindo a compreensão para portas de mais de um q-bit, como a porta SWAP, a porta Toffoli e a porta Fredkin. Os circuitos quânticos são apresentados de maneira a mostrar como um circuito pode ser composto de várias portas, bem como o cálculo da evolução de um estado quântico. O tema da superposição e interferência é mostrado também, como preâmbulo para as operações que explorarão o paralelismo quântico. Por fim, é feita uma ponte com alguns conceitos da álgebra linear, relativos ao produto interno, ortogonalidade, ortonormalidade e produto externo, mostrando-se com exemplos uma forma mais prática de avaliar a evolução dos circuitos quânticos. TEMA 1 – PORTAS DE MAIS DE UM Q-BIT Anteriormente foram apresentadas as portas quântica de 1 q-bit e a porta CNOT, as quais constituem um conjunto universal para a computação quântica. Isso quer dizer que qualquer circuito quântico pode ser construído com base no uso dessas portas. Agora serão estudadas outras portas de mais de um q-bit. 1.1 Porta SWAP Outra porta derivada da CNOT é a porta de troca ou circuito de troca (SWAP), cuja representação é mostrada no quadro 1. Combinando-se três portas CNOT, de acordo com a Figura 1, tem-se a porta de troca (SWAP), que faz, portanto, a troca dos estados quânticos entre dois q-bits. Quadro 1 – Operador de troca (SWAP) Símbolo Representação Operador |=|a|b |b|a SWAP 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 |00 |00 |01 |10 |10 |01 |11 |11 A porta de troca é utilizada, por exemplo, nos circuitos para o cálculo da transformada quântica de Fourier. 3 Figura 1 – Circuito para a porta de troca Exemplo 1: aplique a porta de troca sobre o estado quântico de 2 q-bits |ψ0⟩ = (e iπ 4⁄ |01⟩ − |10⟩)/√2. A amplitude do primeiro estado |01⟩ contém uma potência complexa. Expressando o estado como um vetor coluna: |𝜓0⟩ = [ 0 𝑒𝑖𝜋 4⁄ −1 0 ] Será aplicado sobre este estado a porta SWAP, para produzir então um novo estado: |𝜓1⟩ = 𝑆𝑊𝐴𝑃12|𝜓0⟩ = [ 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ] . [ 0 𝑒𝑖𝜋 4⁄ −1 0 ] = [ 0 −1 𝑒𝑖𝜋 4⁄ 0 ] = −|01⟩ + 𝑒𝑖𝜋 4⁄ |10⟩ Note que os coeficientes de cada estado foram trocados entre si. Além disso, foram utilizados subíndices para indicar quais q-bits estão sendo trocados. Como o circuito continha apenas dois q-bits, poderia ser suprimido. Porém, no caso de se utilizar circuitos maiores, é necessário fazer a indicação. 1.2 Porta Toffoli Foi visto anteriormente que a porta CNOT possuía um q-bit de controle e um q-bit alvo. Ela pode ser modificada de forma a conter mais de um q-bit de controle, com o seu acionamento na dependência de combinações de q-bits. Quando ela opera sobre três q-bits, dois q-bits de controle e um q-bit de alvo, é denominada de porta Toffoli, levando esse nome devido ao seu criador, Tommaso Toffoli. Ela pode, inclusive, ser generalizada para mais q-bits de controle (Nielsen; Chuang, 2005). A porta Toffoli perfaz a operação de soma de módulo 2 do q-bit alvo com o produto dos q-bits de controle: 𝑐 ⊕ 𝑎𝑏. O produto 𝑎𝑏 indica que somente quando este resultado é 1, resultado que somente pode ser alcançado quando 4 𝑎 = 𝑏 = 1, o valor de 𝑐 será modificado; caso seja 0, o resultado da operação é 1; caso seja 1, o resultado será 0. A porta Toffoli pode ser utilizada, por exemplo, para reproduzir o comportamento da porta lógica AND e o meio somador lógico (half adder). Note que a porta Toffoli, manipulando 3 q-bits, é representada por meio de uma matriz 8x8, semelhante à matriz identidade, porém modificada nas duas últimas colunas e linhas (quadro 2). Como a porta Toffoli pode ser utilizada em circuitos com 3 q-bits ou mais, convenciona-se representar com subíndices. O primeiro subíndice se refere ao q-bit alvo e o segundo e terceiro são os q-bits de controle. Quadro 2 – Porta Toffoli Símbolo Representação Operador |=|a|b|c |a|b|cab TOFFOLI 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 |000 |000 |001 |001 |010 |010 |011 |011 |100 |100 |101 |101 |110 |111 |111 |110 Exemplo 2: demonstre a tabela-verdade da porta lógica AND com a porta Toffoli. Analisando o quadro 2, pode-se notar que na última tabela, quando o q- bit |𝑐⟩ é |0⟩, o operador 𝑇𝑜𝑓𝑓𝑜𝑙𝑖(1)23 reproduz exatamente o comportamento da porta lógica AND. Dessa forma, podemos construir a tabela-verdade: |𝑎⟩ |𝑏⟩ |𝑎 ∧ 𝑏⟩ = |0 ⊕ 𝑎𝑏⟩ |0⟩ |0⟩ |000⟩ |0⟩ |1⟩ |010⟩ |1⟩ |0⟩ |100⟩ |1⟩ |1⟩ |111⟩ Assim, somente quando os dois q-bits assumirem o estado quântico |1⟩, o q-bit |𝑐⟩ será |1⟩. 5 1.3 Porta Fredkin Assim como a porta Toffoli, a porta Fredkin pode ser considerada como uma generalização da porta SWAP, e leva o nome do seu descobridor, Edward Fredkin. Uma porta Fredkin possui quatro q-bits: dois q-bits de controle e dois q- bits alvo. A condição para acontecer a troca dos estados quânticos nos q-bits alvo é a de que os q-bits de controle assumam, simultaneamente, o estado quântico |1⟩. O quadro 3 mostra os detalhes da operação Fredkin. Quadro 3 – Porta Fredkin Símbolo Representaç ão Operador |=|a|b|c|d |a|b|d|c FREDKIN 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |0000 |0000 |0001 |0001 |0010 |0010 |0011 |0011 |0100 |0100 |0101 |0101 |0110 |0110 |0111 |0111 |1000 |1000 |1001 |1001 |1010 |1010 |1011 |1011 |1100 |1100 | | | | |1111 1101 1110 1110 1101 |1111 Como convenção, será assumido que o operador Fredkin contenha subíndices. Os dois primeiros entre parênteses são os q-bits alvo, e os posteriores serão os q-bits de controle. Por exemplo, 𝐹𝑅𝐸𝐷𝐾𝐼𝑁(12)34 indica que os q-bits 1 e 2 são os q-bits alvo, e os q-bits 3 e 4 são os q-bits de controle. Assim como as portas CNOT e Toffoli, a porta Fredkin também é reversível. Exemplo 3: aplique a porta Fredkin, num estado quântico com 4 q-bits |ψ0⟩ = (|0010⟩ + |0110⟩ + |1010⟩ + |1110⟩) 2⁄ , tendo os q-bits alvo 1 e 2 e q-bits de controle 3 e 4. 6 Este estado quântico é uma superposição de quatro estados, normalizado com o fator 1 2⁄ . Como são 4 q-bits, teremos 24 = 16 elementos no vetor coluna deste vetor: |𝜓0⟩ = 1 2 (|0010⟩ + |0110⟩ + |1010⟩ + |𝟏𝟏𝟏𝟎⟩) = 1 2 [ 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0] Aplicando a porta Fredkin sobre o estado, tem-se: |𝜓1⟩ = 𝐹𝑟𝑒𝑑𝑘𝑖𝑛(12)34|𝜓0⟩ = [ 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1] . 1 2 [ 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0] = [ 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0] = 1 2 (|0010⟩ + |0110⟩ + |1010⟩ + |𝟏𝟏𝟎𝟏⟩) A aplicação da porta Fredkin sobre o estado quântico superposto |𝜓0⟩ alterou apenas o último estado. Deve-se notar que, à medida que são utilizados mais q-bits, as matrizes tendem a crescer exponencialmente. Após o tema do produto externo, será apresentada a notação de projetor ou de produto externo, a qual facilita lidar com circuitos contendo vários q-bits, ao invés da representação matricial. 7 TEMA 2 – CIRCUITOS QUÂNTICOS Da mesma forma que em um circuito digital clássico, no qual podem ser combinadas portas lógicas para produzir determinada configuração de bits de saída, na computação quântica são criados os circuitos quânticos, combinando-se um conjunto de portas quânticas para a obtenção de um estado quântico desejado. A representação mais comum para um circuito quântico considera os q-bits como sendo “fios”, representando o estado de uma partícula evoluindo no tempo. Na Figura é mostrado um circuito quântico genérico U, havendo um estado combinado de entrada |q1,|q2...|qn, o processamento mediante um conjunto de portas quânticas, e o estado de saída resultante |q’1,|q’2...|q’n. Os estados quânticos são manipulados utilizando-se as portas quânticas, de forma que apenas ao final é feita a medida para se saber os estados dos q-bits resultantes. O símbolo da medida é colocado ao final de cada fio representando o q-bit. Figura 2 – Representação genérica de um circuito quântico Pode-se representar o circuito quântico U da figura como sendo um operador que mapeia o conjunto de q-bits |𝑞1, |𝑞2. . . |𝑞𝑛 para |𝑞’1, |𝑞’2. . . |𝑞’𝑛, da seguinte forma: 1 2 1 2: | | ... | | ' | ' ... | 'n nU q q q q q q Ao contrário dos circuitos lógicos clássicos, um circuito quântico não permite realimentação ou feedback. Enquanto um circuito digital pode ter diferentes direções e sentidos de propagação de um sinal, o estado dos q-bits em um circuito quântico evolui da esquerda para a direita. Uma característica 8 importante dos circuitos quânticos, inexistente nos circuitos clássicos, é a reversibilidade. Um estado quântico final pode ter sua ordem de evolução invertida no tempo, sendo aplicado à saída das portas quânticas, e o estado inicial pode ser, portanto, recuperado. Esse conceito está de acordo com a mecânica quântica, por meio da equação de Schröedinger, na qual o hamiltoniano, que é a função de evolução unitária no tempo aplicada sobre um estado quântico, sempre existe e possui inversa (Aharonov, 1998). A ordem de aplicação de várias portas, apesar de o circuito evoluir da esquerda para a direita, é representada no sentido contrário. O próximo exemplo ilustra esta situação. Exemplo 4: faça o diagrama para um circuito quântico de 3 q-bits da sequência de operações U = Toffoli123X3X2, com estado inicial |ψ0⟩ = |001⟩, que simula a porta lógica OR (com estradas nos q-bits 2 e 3 e saída no q-bit 1). O operador U se refere à aplicação, primeiro, de uma porta X no q-bit 2; a seguir, a porta X novamente no q-bit 3, e a porta Toffoli tendo como q-bit alvo o primeiro q-bit e os q-bits 2 e 3 como os de controle. O circuito quântico equivalente com as representações gráficas das portas é: Note que primeiramente é aplicada a porta 𝑋2, logo após a 𝑋3 e, por fim, a porta 𝑇𝑜𝑓𝑓𝑜𝑙𝑖(1)23. Exemplo 5: com base no diagrama, referente ao meio somador em representação quântica, elabore a sequência de operações respectiva. Pode-se notar no circuito a presença de uma porta Toffoli e outra porta CNOT. Assim, a equação com a sequência das operações é representada como 𝑈 = 𝐶𝑁𝑂𝑇23𝑇𝑜𝑓𝑓𝑜𝑙𝑖(1)23 9 Note que as operações são colocadas em sentido inverso. O meio somador é estruturado de forma que os q-bits 2 e 3 são as entradas. O q-bit 1 deve inicializar como |0⟩, sendo que, depois das operações aplicadas, o resultado da soma é colocado no q-bit 2 e o carry bit estará no q-bit 1. Exemplo 6 – combinação de portas: calcule a porta U resultante da sequência das duas portas Z e X (nessa ordem). Um circuito quântico 𝑈 pode ser representado apenas por uma matriz que é o resultado da multiplicação matricial das portas que a compõe: A sequência será (repare na ordem): 𝑈 = 𝑋𝑍 = [ 1 0 0 −1 ] . [ 0 1 1 0 ] = [ 0 1 −1 0 ] Exemplo 7 – produto tensorial de portas: para o circuito de 2 q-bits mostrado a seguir, mostre o operador na forma matricial. Este é um exemplo típico para demonstrar a necessidade de se fazer o produto tensorial na aplicação de uma porta de 1 q-bit para um circuito de 2 q- bits. Note que a porta 𝑋 está aplicada ao primeiro q-bit. Entretanto, como temos dois q-bits, são necessários 22 = 4 elementos para representação do estado quântico na forma vetorial. Como não é aplicada nenhuma porta ao q-bit 2, simula-se a aplicação da matriz 𝐼 (identidade) ao segundo q-bit. Dessa forma, é necessário o produto tensorial 𝐼 ⊗ 𝑋 (nesta ordem) para gerar o operador para dois q-bits: 𝑈 = 𝑋1 = 𝐼 ⊗ 𝑋 = [ 1 0 0 1 ] ⊗ [ 0 1 1 0 ] = [ 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 ] Exemplo 8 – produto tensorial de portas: para o circuito de 2 q-bits mostrado a seguir, mostre o operador na forma matricial. 10 Este exemplo é semelhante ao anterior. No entanto, os operadores estão invertidos, e a inversão dos operadores levará a um produto tensorial diferente. Agora, a porta quântica 𝑋 está no segundo q-bit. Isto indica que o operador na forma 𝑋 ⊗ 𝐼. No primeiro, será considerada a aplicação da porta 𝐼 (identidade). 𝑈 = 𝑋2 = 𝑋 ⊗ 𝐼 = [ 0 1 1 0 ] ⊗ [ 1 0 0 1 ] = [ 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 ] Compare o resultado com o que foi obtido anteriormente. Exemplo 9: obtenha em notação matricial o operador para o circuito quântico que produz o estado de Bell, contendo uma porta Hadamard e uma porta CNot. Tem-se, portanto, um circuito de 2 q-bits, com a porta Hadamard no segundo q-bit. A porta 𝐶𝑁𝑜𝑡 possui o alvo no primeiro q-bit e o controle no segundo q-bit. Para indicar estas ligações, utilizar-se-á os índices 𝐶𝑁𝑜𝑡12, em que o primeiro índice é o q-bit alvo e o segundo índice o q-bit de controle. Para 2 q-bits, tem-se um operador 4x4, que será construído a partir das duas portas. Em primeiro lugar, a porta Hadamard deve compor um operador 4x4, resultante do produto tensorial com a matriz identidade. Dessa forma, tem-se: 𝐻2 = 𝐻 ⊗ 𝐼 O índice 2 na porta composta indica que a operação Hadamard é aplicada no segundo q-bit. Por isso, note a precedência da porta H sobre a matriz identidade. Assim, a porta 𝐻2 será: 𝐻2 = 𝐻 ⊗ 𝐼 = 1 √2 [ 1 1 1 −1 ] ⊗ [ 1 0 0 1 ] = 1 √2 [ 1 0 0 1 1 0 0 1 1 0 0 1 −1 0 0 −1 ] 11 TEMA 3 – SUPERPOSIÇÃO E INTERFERÊNCIA A utilidade da porta Hadamard pode ser visualizada na geração de estados superpostos de vários q-bits. Por exemplo, o circuito da Figura gera uma superposição de oito estados para três q-bits. Figura 3 – Circuito com 3 portas Hadamard para gerar 8 estados superpostos Exemplo 10 – geração de estados superpostos: faça a representação matricial do operador H ⊗ H ⊗ H e aplique sobre o estado |ψ0⟩ = |000⟩. Representando o operador resultante com subíndices nos 3 q-bits, o operador 𝐻123 é obtido pelo produto tensorial aplicado duas vezes sobre a porta 𝐻. 𝐻123 = 1 √2 [ 1 1 1 −1 ] ⊗ 1 √2 [ 1 1 1 −1 ] ⊗ 1 √2 [ 1 1 1 −1 ] =𝐻123 = 1 2√2 [ 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 ] ⊗ [ 1 1 1 −1 ] = 1 2√2 [ 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 −1 −1 −1 1 −1 −1 −1 1 −1 −1 −1 1 1 1 1 −1 ] Lembrando que o estado |000⟩ também é um produto tensorial: |000⟩ = [ 1 0 ] ⊗ [ 1 0 ] ⊗ [ 1 0 ] = [ 1 0 0 0 ] ⊗ [ 1 0 ] = [ 1 0 0 0 0 0 0 0] 12 A aplicação deste operador sobre o estado quântico inicial irá produzir: |𝜓1⟩ = 𝐻123|𝜓0⟩ = 1 2√2 [ 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 −1 −1 −1 1 −1 −1 −1 1 −1 −1 −1 1 1 1 1 −1 ] . [ 1 0 0 0 0 0 0 0] = 1 2√2 [ 1 1 1 1 1 1 1 1] = Representando na notação de Dirac: |𝜓1⟩ = 1 2√2 (|000⟩ + |001⟩ + |010⟩ + |011⟩ + |100⟩ + |101⟩ + |110⟩ + |111⟩) A partir da entrada dos três q-bits |𝜓 = |000, as portas Hadamard aplicadas irão gerar o seguinte estado superposto |𝜓’: 1 | ' | 000 | 001 | 010 | 011 |100 |101 |110 |111 2 2 Ou ainda, com representação decimal: 1 | ' | 0 |1 | 2 | 3 | 4 | 5 | 6 | 7 2 2 Ou, como uma série ou somatório, para facilitar a representação: 7 0 1 | ' | 2 2 i i A superposição de estados é um dos recursos que torna a computação quântica peculiar, sendo a base para muitos algoritmos quânticos. Os estados superpostos indicam que o q-bit assume, ao mesmo tempo, todos os estados que fazem parte da superposição. Quando tal estado é processado pelas próximas portas quânticas do circuito, todos os estados que fazem parte são processados simultaneamente, mantendo-se a superposição (Aharonov, 1998). O estado superposto cessa somente quando se faz a medida do estado quântico. Assim, a porta Hadamard faz com que todos os estados resultantes tenham igual probabilidade de obtenção após a medida. Com relação ao exemplo anterior, quando se mede o estado |’, apenas um dentre os oito estados será retornado, com probabilidade 1/8 = 2|1/ 2 2 | . 13 Portanto, para n q-bits, o resultado da superposição é estendido para: 1 0 1 | ' | 2 n n i i Pode-se verificar o poder da computação quântica em trabalhar de forma exponencial com todos os 2n estados possíveis simultaneamente. O problema se coloca, a partir daí, é como extrair tal informação exponencial do sistema quântico (Aharonov, 1998). Quando se observa ou se procede a medida do sistema, acontece o colapso da função de onda. Esse colapso faz com que apenas um dos estados manipulados anteriormente em forma de superposição seja recuperável, e o montante de informação exponencial acaba se perdendo. Para obter vantagem do paralelismo exponencial, deve-se combiná-lo com outro aspecto quântico, a interferência. A Figura 4 ilustra o fenômeno da interferência entre ondas. Figura 4 – Fenômeno de interferência; em (a), dez ondas de diferentes frequências e amplitudes; em (b), o resultado da interferência das ondas A interferência permite que muitas computações sejam feitas em paralelo, exponencialmente, havendo cancelamento tal como o que acontece devido à interferência destrutiva de ondas. A meta, portanto, é combinar o cancelamento de forma que apenas aquelas computações que são de interesse permaneçam, e todas as restantes sejam descartadas. Isso pode ser visualizado no funcionamento do algoritmo quântico de busca de Grover, por exemplo. 14 TEMA 4 – PRODUTO INTERNO E ORTONORMALIDADE A notação de Dirac permite também a definição do vetor dual. Assim como um estado quântico, pode ser representado na forma de vetor coluna: | Existe o vetor linha, que na notação de Dirac assume a forma ⟨𝜓| = [𝛼∗ 𝛽∗]. O vetor ⟨𝜓|, também denominado de bra, não é somente o vetor coluna transposto para linha, mas as amplitudes 𝛼∗ e 𝛽∗ são conjugados complexos. 4.1 Produto interno A noção de vetor dual permite a definição do produto interno entre dois vetores ou estados |𝜓⟩ e |𝜙⟩ como sendo ⟨𝜓|𝜙⟩, em que ⟨𝜓| = (|𝜓⟩)†. Por exemplo, tendo-se o vetor coluna com os seguintes componentes: | O produto interno entre os vetores |𝜓⟩ e |𝜙⟩ é dado por: * * * *| O produto interno tem como resultado um número escalar, com ⟨𝜓│𝜙⟩ ∈ ℂ, de maneira diferente do produto tensorial, cujo resultado é outro vetor de dimensões mais altas no espaço de Hilbert. 4.2 Ortogonalidade A definição de ortogonalidade entre vetores pode ser obtida do produto interno. Se |𝜓⟩ e |𝜙⟩ são dois vetores distintos no espaço de Hilbert, tais vetores são ortogonais se e somente se | 0 Os vetores ortogonais permitem a definição de uma base para a representação no espaço de Hilbert. Como visto no início da seção, os estados 15 |0⟩ e |1⟩ constituem uma base para representação vetorial no espaço de Hilbert, pois fazendo-se o produto interno entre os dois estados: 0 |1 1| 0 0 Porém, a condição de ortogonalidade é necessária, mas não é suficiente para a formação de uma base. Os estados precisam ainda ser normalizados. O produto interno permite o cálculo da norma de um vetor: || || | Um vetor está normalizado se for um vetor unitário, ou seja, se sua norma ‖𝜓‖ = 1. A normalização de um vetor é feita dividindo-se o vetor por sua norma: | || || Pode-se verificar que a base {|0⟩, |1⟩} possui vetores unitários, ou seja: 0 | 0 1|1 1 Portanto, a base de estados {|0⟩, |1⟩} que possui as duas condições, a de ortogonalidade e normalização, é dita ortonormal. Em mecânica quântica e computação quântica, apenas a adoção de uma base ortonormal permite a distinguibilidade de estados quânticos em um sistema (Nielsen; Chuang, 2005). 4.3 Autovalores e autovetores Um autovetor de um operador linear 𝐴 é um vetor |𝑣⟩, em um espaço vetorial, tal que 𝐴|𝑣⟩ = 𝑣|𝑣⟩, em que o número complexo 𝑣 é chamado de autovalor de 𝐴 associado a |𝑣⟩. Para encontrar os autovalores e autovetores de uma matriz, é necessário calcular o polinômio característico: 𝑑𝑒𝑡|𝐴 − 𝜆𝐼| = 0 As soluções para esse polinômio são os autovalores de 𝐴. As matrizes hermitianas, tais como as portas X e Z, possuem propriedades peculiares: 16 a) se o operador 𝐴 é igual à sua hermitiana 𝐴∗, então o valor da expressão ⟨𝜓|𝐴|𝜓⟩ sempre retorna um número real; b) os autovalores de uma matriz hermitiana sempre são números reais; c) os autovetores associados aos autovalores de uma matriz hermitiana são ortogonais. Uma matriz unitária 𝑈 é aquela que multiplicada por sua hermitiana resulta na matriz identidade, ou seja, 𝑈𝑈∗ = 𝐼. Esta propriedade é importante, pois se um operador é unitário, significa que preserva o produto interno. Dessa forma, todos os autovalores de um operador unitário sempre terão módulo 1. Exemplo 11: calcule os autovalores e autovetores para a porta X. Para se obter os autovalores da porta X, deve-se calcular det(A − λI) = 0, em que det é o determinante da expressão entre parênteses. Assim, para a porta X: 𝑑𝑒𝑡(𝐴 − 𝜆𝐼) = |[ 0 1 1 0 ] − 𝜆 [ 1 0 0 1 ]| = | −𝜆 1 1 −𝜆 | = 𝜆2 − 1 = 0. Obtém-se os autovalores 𝜆 = ±1. Para obter os autovetores, faz-se primeiro para 𝜆 = 1: [ 0 1 1 0 ] . [ 𝑥 𝑦] = 𝜆 [ 𝑥 𝑦] = [ 𝑥 𝑦] Com as equações 0. 𝑥 + 1. 𝑦 = 𝑥 e 1. 𝑥 + 0. 𝑦 = 𝑦. Portanto, um autovetor para o autovalor 𝜆 = 1 é 𝑣1 = (1, 1). Para 𝜆 = −1, os autovetores serão: [ 0 1 1 0 ] . [ 𝑥 𝑦] = (−1) [ 𝑥 𝑦] = [ −𝑥 −𝑦] Com as equações 0. 𝑥 + 1. 𝑦 = 𝑦 = −𝑥 e 1. 𝑥 + 0. 𝑦 = 𝑥 = −𝑦. Portanto, um autovetor para 𝜆 = −1 será 𝑣2 = (−1,1 ).Exemplo 12: demonstre as propriedades para o operador hermitiano X. A primeira propriedade requer que ⟨𝜓│𝐴│𝜓⟩ ∈ ℝ. Essa operação é idêntica ao produto do vetor dual ⟨𝜓| pelo produto 𝐴│𝜓⟩. Pode-se representar então o vetor |𝜓⟩ contendo as amplitudes 𝛼 e 𝛽 ∈ ℂ, ou seja, números complexos: |𝜓⟩ = [ 𝛼 𝛽] = [ 𝑎 + 𝑏𝑖 𝑐 + 𝑑𝑖 ] 17 Portanto, o vetor dual será (lembrando do conjugado complexo): ⟨𝜓| = [𝛼∗ 𝛽∗] = [𝑎 − 𝑏𝑖 𝑐 − 𝑑𝑖] Assim, fazendo a operação 𝑋|𝜓⟩: 𝑋|𝜓⟩ = [ 0 1 1 0 ] . [ 𝛼 𝛽] = [ 𝛽 𝛼 ] Fazendo o produto com o vetor dual, tem-se: ⟨𝜓|𝑋|𝜓⟩ = [𝛼∗ 𝛽∗]. [ 𝛽 𝛼 ] = 𝛼∗𝛽 + 𝛽∗𝛼 = = (𝑎 − 𝑏𝑖)(𝑐 + 𝑑𝑖) + (𝑎 + 𝑏𝑖)(𝑐 − 𝑑𝑖) = = 𝑎𝑐 + 𝑎𝑑𝑖 − 𝑏𝑐𝑖 − 𝑏𝑑𝑖2 + 𝑎𝑐 − 𝑎𝑑𝑖 + 𝑏𝑐𝑖 − 𝑏𝑑𝑖2 = 2𝑎𝑐 + 2𝑏𝑑 ∈ ℝ. Portanto, mesmo que o vetor seja um número complexo, o resultado da operação ⟨𝜓│𝐴│𝜓⟩ será um número real. Para a segunda propriedade, utiliza-se o resultado do exemplo anterior, no qual os autovalores obtidos para o operador 𝑋 foram 𝜆 = ±1 ∈ ℝ. Para a terceira propriedade, utilizam-se os autovetores obtidos do exemplo anterior e calcula-se o produto interno entre eles. Assim: ⟨𝑣1|𝑣2⟩ = 1.1 + 1. (−1) = 0 Portanto, os autovetores obtidos são ortogonais. Exemplo 13: uma base alternativa para a representação de q-bits é {|+⟩, |−⟩}, em que os vetores são dados por: |+⟩ = 1 √2 [ 1 1 ] e |−⟩ = 1 √2 [ 1 −1 ] Verifique se essa base é ortonormal. A base compõe-se dos estados produzidos pela aplicação da porta Hadamard na base {|0⟩, |1⟩}. Para verificar a ortogonalidade, o produto interno deve ser zero: ⟨+|−⟩ = 1 √2 . 1 √2 + 1 √2 . (− 1 √2 ) = 0 18 Para verificar se a base é ortonormal, deve-se calcular a norma e verificar se os vetores são unitários. Assim: ‖|+⟩‖ = √⟨+|+⟩ = √ 1 √2 . 1 √2 + 1 √2 . 1 √2 = √ 1 2 + 1 2 = 1 ‖|−⟩‖ = √⟨−|−⟩ = √ 1 √2 . 1 √2 + (− 1 √2 ) . (− 1 √2 ) = √ 1 2 + 1 2 = 1 Os vetores são unitários. Portanto, a base {|+⟩, |−⟩} é uma base ortonormal. Caso a norma fosse diferente de 1, os componentes de cada vetor deveriam ser divididos pela norma. TEMA 5 – PRODUTO EXTERNO Tal como mostrado no produto interno entre dois estados, o qual produz um escalar complexo, existe a operação do produto externo, na qual é feita uma multiplicação vetorial como o apresentado a seguir (Nielsen; Chuang, 2005). Seja | e | dois vetores de estados quaisquer, com amplitudes | = [ ]T e |=[ ] T, representa-se o produto externo na forma ||: * * * * * * | | . O produto externo gera um novo operador, com base nos vetores de origem. Um operador na forma de produto externo pode ser aplicado a um vetor qualquer. Seja |’ um vetor, aplicando o operador produto externo || ao vetor: (| |) | ' | | ' Pode ser entendido também como a multiplicação do número complexo |’ pelo vetor |. Se |’ = [a b]T, então: * * * * * * * * (| |) | ' . a a b b a b Fazendo a multiplicação de | pelo número complexo |’: 19 * * * * * * * * | | ' . . ( ) a a b a b b a b Uma aplicação importante da notação de produto externo é permitir a representação de qualquer operador linear nesta forma (Nielsen; Chuang, 2005). A representação da base de estados ortonormal (|0, |1) pode ter a seguinte representação de produto externo: 1 1 0 | 0 0 | 1 0 . 0 0 0 0 0 0 | 0 1| 1 0 . 1 1 0 1 0 1 |1 0 | 0 1 . 0 0 0 0 0 0 |1 1| 0 1 . 1 0 1 Por exemplo, os operadores de Pauli podem ser representados na forma de produto externo: 0 1 0 1 0 0 |1 0 | | 0 1| 1 0 0 0 1 0 1 0 1 0 0 0 | 0 0 | |1 1| 0 1 0 0 0 1 0 0 1 0 0 (| 0 1| |1 0 |) 0 0 0 1 0 X Z i Y i i i i Por exemplo, a operação quântica dada pela porta X, que inverte um q-bit no estado |=|0 + |1, pode ser representada pela multiplicação do produto externo pelo estado do q-bit considerado: | (|1 0 | | 0 1|) | |1 | | 0 |X 0 1 Entretanto: 0 | 0 | ( | 0 |1 ) 0 | 0 0 |1 1 0 . 1| 1| ( | 0 |1 ) 1| 0 1|1 0 1 . 20 A expressão anterior fica com o resultado: | |1 | | 0 | | 0 |1X 0 1 A representação de produto externo também é utilizada para expressar o operador de medida. Exemplo 14: faça a combinação de portas XZ, utilizando a notação matricial e a notação de produto externo. O circuito quântico para essa composição é representado a seguir (desconsidere o estado inicial do q-bit): Esta composição irá atuar em estados de 1 q-bit. Primeiro, fazendo pela multiplicação matricial: 𝑋𝑍 = [ 0 1 1 0 ] . [ 1 0 0 −1 ] = [ 0 −1 1 0 ] Em notação de produto externo: 𝑋𝑍 = (|0⟩⟨1| + |1⟩⟨0|). (|0⟩⟨0| − |1⟩⟨1|) = = |0⟩⟨𝟏|𝟎⟩⟨0|−|0⟩⟨𝟏|𝟏⟩⟨1| + |1⟩⟨𝟎|𝟎⟩⟨0| − |1⟩⟨𝟎|𝟏⟩⟨1| = Como a base {|0⟩, |1⟩} é ortonormal, os produtos internos ⟨𝑖|𝑗⟩ = 1 para 𝑖 = 𝑗 e ⟨𝑖|𝑗⟩ = 0 para 𝑖 ≠ 𝑗, tem-se: = −|0⟩⟨1| + |1⟩⟨0| Exemplo 15: faça a combinação de portas ZX, utilizando a notação matricial e a notação de produto externo. Agora, o circuito quântico é representado por: O produto de duas matrizes não é uma operação que comuta. Portanto, o resultado anterior não pode ser associado à inversão dos operadores. Assim, em notação matricial: 𝑋𝑍 = [ 1 0 0 −1 ] . [ 0 1 1 0 ] = [ 0 1 −1 0 ] 21 Em notação de produto externo: 𝑋𝑍 = (|0⟩⟨0| − |1⟩⟨1|). (|0⟩⟨1| + |1⟩⟨0|) = = |0⟩⟨𝟎|𝟎⟩⟨1| + |0⟩⟨𝟎|𝟏⟩⟨0| − |1⟩⟨𝟏|𝟎⟩⟨1| − |1⟩⟨𝟏|𝟏⟩⟨0| = = |0⟩⟨1| − |1⟩⟨0| Note a diferença obtida com relação ao exemplo anterior. Exemplo 16: descubra o operador representado pelo circuito a seguir: Utilizando multiplicação matricial, o operador pode ser simbolizado por: 𝑋𝑍 = [ 0 1 1 0 ] . [ 0 1 1 0 ] = [ 1 0 0 1 ] = 𝐼 A porta 𝑋 aplicada duas vezes produz a matriz identidade. Ou seja, aplicando-se a um estado qualquer, o q-bit retorna ao estado inicial. 𝑋𝑋 = (|0⟩⟨1| + |1⟩⟨0|). (|0⟩⟨1| + |1⟩⟨0|) = |0⟩⟨0| + |1⟩⟨1| Portanto, o operador 𝑋 é unitário. Exemplo 17: para o circuito de 2 q-bits mostrado a seguir, mostre o operador na forma matricial e na forma de produto externo. Note que a porta 𝑋 está aplicada ao primeiro q-bit. Entretanto, como temos dois q-bits, são necessários 22 = 4 elementos para representação da base. Como não é aplicada nenhuma porta ao q-bit 2, simula-se a aplicação da porta 𝐼 (identidade) ao segundo q-bit. Dessa forma, é necessário o produto tensorial 𝐼 ⊗ 𝑋 (nesta ordem) para gerar o operador para dois q-bits. Portanto, 22 𝐼 ⊗ 𝑋 = [ 1 0 0 1 ] ⊗ [ 0 1 1 0 ] = [ 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 ] A operação não é a mesma da multiplicação matricial. O produto tensorial de duas matrizes 2x2 gera uma matriz 4x4. Em notação de produto externo, tem-se: 𝐼 ⊗ 𝑋 = (|0⟩⟨0| + |1⟩⟨1|) ⊗ (|0⟩⟨1| + |1⟩⟨0|) = O q-bit com a operação identidade tem precedência sobre o q-bit da operação X. Cada elemento deve ser multiplicado tensorialmente, gerando uma representação de 2 q-bits: = |00⟩⟨01| + |01⟩⟨00| + |10⟩⟨11| + |11⟩⟨10| Ao invés de números binários, pode-se utilizar números decimais: = |0⟩⟨1| + |1⟩⟨0| + |2⟩⟨3| + |3⟩⟨2| Note a simplicidade para a resolução pelo produto tensorial. À medida que sefaz o produto tensorial de mais q-bits, a notação em produto externo se torna mais vantajosa do que a notação matricial. Exemplo 18: obtenha o operador para o circuito quântico que produz o estado de Bell, contendo uma porta Hadamard e uma porta CNot: Tem-se, portanto, um circuito de 2 q-bits, com a porta Hadamard no segundo q-bit. A porta 𝐶𝑁𝑜𝑡 possui o alvo no primeiro q-bit e o controle no segundo q-bit. Para indicar essas ligações, utilizar-se-á os índices 𝐶𝑁𝑜𝑡12, sendo o primeiro índice o q-bit alvo e o segundo, o q-bit de controle. Para 2 q-bits, tem- se um operador 4x4, que será construído a partir das duas portas. Em primeiro lugar, a porta Hadamard deve compor um operador 4x4, resultante do produto tensorial com a matriz identidade. Dessa forma, tem-se: 𝐻2 = 𝐻 ⊗ 𝐼 23 O índice 2 na porta composta indica que a operação Hadamard é aplicada no segundo q-bit. Por isso, note a precedência da porta H sobre a matriz identidade. Assim, a porta 𝐻2será: 𝐻2 = 𝐻 ⊗ 𝐼 = 1 √2 [ 1 1 1 −1 ] ⊗ [ 1 0 0 1 ] = 1 √2 [ 1 0 0 1 1 0 0 1 1 0 0 1 −1 0 0 −1 ] Em notação de produto externo (já colocando a representação em decimal): 𝐻2 = 𝐻 ⊗ 𝐼 = 1 √2 (|0⟩⟨0| + |0⟩⟨1| + |1⟩⟨0| − |1⟩⟨1|) ⊗ (|0⟩⟨0| + |1⟩⟨1|) = 1 √2 (|0⟩⟨0| + |0⟩⟨2| + |1⟩⟨1| + |1⟩⟨3| + |2⟩⟨0| − |2⟩⟨2| + |3⟩⟨1| − |3⟩⟨3|) O operador 𝐻2 pode agora ser combinado com a porta 𝐶𝑁𝑜𝑡12. A porta 𝐶𝑁𝑜𝑡 é um operador para 2 q-bits, sendo uma matriz 4x4. Então, basta fazer a multiplicação matricial entre os dois operadores (note a precedência: a porta 𝐶𝑁𝑜𝑡12 é aplicada depois da porta Hadamard): 𝐶𝑁𝑜𝑡12 𝐻2 = 1 √2 [ 1 0 0 1 1 0 0 1 1 0 0 1 −1 0 0 −1 ] . [ 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 ] = 1 √2 [ 1 0 0 1 0 1 1 0 1 0 0 1 0 −1 −1 0 ] Utilizando a notação de produto externo (e economizando o passo do produto interno ortonormal): 𝐶𝑁𝑜𝑡12 𝐻2 = 1 √2 (|0⟩⟨0| + |0⟩⟨2| + |1⟩⟨1| + |1⟩⟨3| + |2⟩⟨0| − |2⟩⟨2| + |3⟩⟨1| − |3⟩⟨3|) (|0⟩⟨0| + |1⟩⟨1| + |2⟩⟨3| + |3⟩⟨2|) = 𝐶𝑁𝑜𝑡12 𝐻2 = 1 √2 (|0⟩⟨0| + |0⟩⟨3| + |1⟩⟨1| + |1⟩⟨2| + |2⟩⟨0| − |2⟩⟨3| + |3⟩⟨1| − |3⟩⟨2|) A porta 𝐻2 foi colocada antes da porta 𝐶𝑁𝑜𝑡12. Note também a baixa complexidade do produto externo em relação à multiplicação matricial. 24 Exemplo 19: calcule o operador para o circuito quântico T1 = I ⊗ T. Trata-se de uma porta 𝑇 que deve produzir um operador 4x4, resultante do produto tensorial com a matriz identidade. Dessa forma, tem-se: 𝑇1 = 𝐼 ⊗ 𝑇 = [ 1 0 0 1 ] ⊗ [ 1 0 0 𝑒𝑖𝜋 4⁄ ] = [ 1 0 0 𝑒𝑖𝜋 4⁄ 0 0 0 0 0 0 0 0 1 0 0 𝑒𝑖𝜋 4⁄ ] Em notação de produto externo: 𝑇1 = 𝐼 ⊗ 𝑇 = (|0⟩⟨0| + |1⟩⟨1|) ⊗ (|0⟩⟨0| + 𝑒 𝑖𝜋 4⁄ |1⟩⟨1|) = = |00⟩⟨00| + 𝑒𝑖𝜋 4⁄ |01⟩⟨01|+|10⟩⟨10| + 𝑒𝑖𝜋 4⁄ |11⟩⟨11| Utilizando números decimais: 𝑇1 = 𝐼 ⊗ 𝑇 = |0⟩⟨0| + 𝑒 𝑖𝜋 4⁄ |1⟩⟨1| + |2⟩⟨2| + 𝑒𝑖𝜋 4⁄ |3⟩⟨3| Tomando como base os exemplos, pode-se verificar que o uso da notação de produto externo tende a ser mais “econômico” em relação à notação em forma de matriz. FINALIZANDO Esta aula buscou expandir o aprendizado sobre computação quântica, adicionando as portas de mais de um q-bit (SWAP, Toffoli e Fredkin), além de mostrar os circuitos quânticos e a forma como um estado quântico pode evoluir por meio da aplicação das portas quânticas. Mostrou-se ainda a forma como pode ser gerado um estado em superposição, que será importante no estudo do paralelismo quântico. Vimos também conceitos da álgebra linear, como produto interno, ortogonalidade, ortonormalidade, autovalores e autovetores, e a representação de produto externo, que apresenta vantagens em sua adoção sobre a forma matricial, à medida que são adicionados mais q-bits a um circuito. 25 REFERÊNCIAS AHARONOV, D. Quantum computation. In: Annual Reviews of Computational Physics. 5. ed. Dietrich Stauffer World Scientific, 1998. NIELSEN, M. A.; CHUANG, I. L. Computação quântica e informação quântica. Porto Alegre: Bookman, 2005.
Compartilhar