Qiskit: 어떤 상태를 만드는 회로를 만들고 싶다! !
소개
어떤 상태를 만드는 회로를 쉽게 만들고 싶습니다! 생각하지 않습니까?
예를 들면...
\frac{|0>+|1>}{\sqrt{2}}
음, 이것은 간단합니다. 다음 회로로 만들 수 있습니다.
그러나 Hadamard gate를 몰라도 이 상태를 만들 수 있는 도구가 있습니다!
이것이 StateVectorCircuit입니다.
StateVectorCircuit
방금 설명한 상태를 만드는 회로를 StateVectorCircuit을 사용하여 만들어 봅시다.
먼저 사용할 패키지를 가져옵니다.
import numpy as np
from qiskit.aqua.circuits import StateVectorCircuit
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister, execute
from qiskit import BasicAer
from qiskit.visualization import plot_histogram
다음에 이번에 만들고 싶은 상태를 정의
state = [1 / np.sqrt(2), 1 / np.sqrt(2)]
이것을 StateVectorCircuit에 입력하십시오.
svc = StateVectorCircuit(state)
여기에는 두 개의 값이 저장됩니다.
print(svc._num_qubits)
# 1
print(svc._state_vector)
# [0.70710678 0.70710678]
여기에서는 아직 회로가 작성되어 있지 않기 때문에 construct_circuit를 실시합니다.
qc = svc.construct_circuit()
생성된 회로가 이
이제 실제로 실행하고 결과를 살펴 보겠습니다.
cr = ClassicalRegister(1)
qc.add_register(cr)
qc.measure([0], [0])
num_shots = 10000
backend = BasicAer.get_backend('qasm_simulator')
results = execute(qc, backend, shots=num_shots).result()
counts = results.get_counts(qc)
plot_histogram(counts1)
흠. 좋은 느낌이군요.
덧붙여서, 마음대로 normalize 해주기 때문에 예를 들어
state = [100, 100]
라든지라도 대응해 줍니다.
물론 여러 qubits에서도 괜찮습니다.
요약
이번에는 뭔가 편리한 StateVectorCircuit을 소개했습니다.
덧붙여서 사용하고 있는 Qiskit의 버전이 낡으면 error를 토할지도 모릅니다. qiskit 자체가 날마다 진화하고 있으니까요.
Reference
이 문제에 관하여(Qiskit: 어떤 상태를 만드는 회로를 만들고 싶다! !), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hotaru_77/items/6306a983c572bc7e166e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
\frac{|0>+|1>}{\sqrt{2}}
방금 설명한 상태를 만드는 회로를 StateVectorCircuit을 사용하여 만들어 봅시다.
먼저 사용할 패키지를 가져옵니다.
import numpy as np
from qiskit.aqua.circuits import StateVectorCircuit
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister, execute
from qiskit import BasicAer
from qiskit.visualization import plot_histogram
다음에 이번에 만들고 싶은 상태를 정의
state = [1 / np.sqrt(2), 1 / np.sqrt(2)]
이것을 StateVectorCircuit에 입력하십시오.
svc = StateVectorCircuit(state)
여기에는 두 개의 값이 저장됩니다.
print(svc._num_qubits)
# 1
print(svc._state_vector)
# [0.70710678 0.70710678]
여기에서는 아직 회로가 작성되어 있지 않기 때문에 construct_circuit를 실시합니다.
qc = svc.construct_circuit()
생성된 회로가 이
이제 실제로 실행하고 결과를 살펴 보겠습니다.
cr = ClassicalRegister(1)
qc.add_register(cr)
qc.measure([0], [0])
num_shots = 10000
backend = BasicAer.get_backend('qasm_simulator')
results = execute(qc, backend, shots=num_shots).result()
counts = results.get_counts(qc)
plot_histogram(counts1)
흠. 좋은 느낌이군요.
덧붙여서, 마음대로 normalize 해주기 때문에 예를 들어
state = [100, 100]
라든지라도 대응해 줍니다.
물론 여러 qubits에서도 괜찮습니다.
요약
이번에는 뭔가 편리한 StateVectorCircuit을 소개했습니다.
덧붙여서 사용하고 있는 Qiskit의 버전이 낡으면 error를 토할지도 모릅니다. qiskit 자체가 날마다 진화하고 있으니까요.
Reference
이 문제에 관하여(Qiskit: 어떤 상태를 만드는 회로를 만들고 싶다! !), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hotaru_77/items/6306a983c572bc7e166e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Qiskit: 어떤 상태를 만드는 회로를 만들고 싶다! !), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hotaru_77/items/6306a983c572bc7e166e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)