image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Gubio Lima
Gubio Lima20/05/2024 22:06
Compartilhe
Microsoft - Azure AZ-900Recomendados para vocêMicrosoft - Azure AZ-900

Tutorial básico: programado em um computado quântico

    # Vamos ver como podemos implementar um circuito facilmente usando PennyLane.

    # Importando PennyLane e NumPy

    import pennylane as qml
    from jax import numpy as np
    import jax
    

    ##############################################################################

    Criando um dispositivo:

    Antes de podermos construir nosso nó quântico, precisamos inicializar um **dispositivo**.

    Qualquer objeto computacional que possa aplicar operações quânticas e retornar um valor de medição

    é chamado de **dispositivo** quântico.

    Para este tutorial, estamos usando o modelo de qubit, então vamos inicializar o dispositivo ``'lightning.qubit'``

    fornecido pelo PennyLane.

    dev1 = qml.device("lightning.qubit", wires=1)
    

    ##############################################################################

    Argumentos:

    * ``name``: o nome do dispositivo a ser carregado

    * ``wires``: o número de subsistemas para inicializar o dispositivo

    Aqui, como só precisamos de um único qubit para este exemplo, definimos ``wires=1``.

    ##############################################################################

    Construindo o QNode:

    Agora que inicializamos nosso dispositivo, podemos começar a construir um**nó quântico** (ou QNode).

    QNodes são uma abstração encapsulada de uma função quântica, descrita por um ircuito quântico. QNodes estão vinculados a um dispositivo quântico específico, usado para avaliar valores esperados e de variância deste circuito.

    Primeiro, precisamos definir a função quântica que será avaliada no QNode:

    def circuit(params):
      qml.RX(params[0], wires=0)
      qml.RY(params[1], wires=0)
      return qml.expval(qml.PauliZ(0))
    

    image

    ##############################################################################

    Este é um circuito simples, correspondendo ao descrito acima. Observe que a função ``circuit()`` é construída como se fosse qualquer outra função Python; ela aceita um argumento posicional ``params``, que pode ser uma lista, tupla ou array, e usa os elementos individuais para os parâmetros dos portões. No entanto, funções quânticas são um **subconjunto restrito** das funções Python.

    Para que uma função Python também seja uma função quântica válida, existem algumas restrições importantes:

    * **Funções quânticas devem conter operações quânticas, uma operação por linha, na ordem em que devem ser aplicadas.**

    Além disso, devemos sempre especificar o subsistema ao qual a operação se aplica, passando o argumento ``wires``; este pode ser uma lista ou um inteiro, dependendo de quantos fios a operação atua.

    * **Funções quânticas devem retornar um único ou uma tupla de observáveis medidos**.

    Como resultado, a função quântica sempre retorna uma quantidade clássica, permitindo que o QNode interfira com outras funções clássicas (e também com outros QNodes).

    @qml.qnode(dev1)
    def circuit(params):
      qml.RX(params[0], wires=0)
      qml.RY(params[1], wires=0)
      return qml.expval(qml.PauliZ(0))
    

    ##############################################################################

    Assim, nossa função quântica ``circuit()`` é agora uma: class: pennylane.QNode`.

    Que será executado no dispositivo ``dev1`` toda vez que for avaliada.mPara avaliar, simplesmente chamamos a função com algumas entradas numéricas apropriadas:

    params = np.array([0.54, 0.12])
    print(circuit(params))
    

    Fonte : PennyLane

    Compartilhe
    Recomendados para você
    Microsoft Certification Challenge #4 - DP 100
    Microsoft Certification Challenge #4 - AZ 204
    Microsoft Certification Challenge #4 - AI 102
    Comentários (1)
    Gubio Lima
    Gubio Lima - 20/05/2024 22:17

    A saída 0.85 indica que, após aplicar as rotações definidas pelos parâmetros fornecidos, o qubit ainda está majoritariamente no estado ∣0⟩, com uma pequena componente no estado ∣1⟩.

    Isso reflete uma grande probabilidade de medir o qubit no estado ∣0⟩e uma menor probabilidade de medir no estado ∣1⟩.


    Recomendados para vocêMicrosoft - Azure AZ-900