Tamil
மொழிகள்
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil

Note

இந்த பக்கம் tutorials/simulators/5_noise_transformation.ipynb இலிருந்து உருவாக்கப்பட்டது.

சத்தம் மாற்றம்

முன்னுரை

குவாண்டம் இரைச்சல் சேனல்களை வேறுபட்ட, மிகவும் பொருத்தமான, இரைச்சல் சேனலாக மாற்ற Qiskit Aer பயன்பாட்டு செயல்பாடுகளை approximate_quantum_error மற்றும் approximate_noise_model ஆகியவற்றை எவ்வாறு பயன்படுத்துவது என்பதை இந்த நோட்புக் காட்டுகிறது.

எங்கள் வழிகாட்டி உதாரணம் கிளிஃபோர்ட் உருவகப்படுத்துதல். ஒரு கிளிஃபோர்ட் சிமுலேட்டரால் குவாண்டம் கணக்கீடுகளை திறமையாக உருவகப்படுத்த முடியும், இதில் வரையறுக்கப்பட்ட, உலகளாவிய அல்லாத வாயில்களின் (கிளிஃபோர்ட் கேட்ஸ்) வாயில்கள் மட்டுமே அடங்கும். அனைத்து குவாண்டம் இரைச்சல்களையும் அத்தகைய உருவகப்படுத்துதல்களில் சேர்க்க முடியாது; எனவே, கிளிஃபோர்ட் சிமுலேட்டரில் உருவகப்படுத்தக்கூடிய "நெருக்கமான" இரைச்சல் சேனலைக் கண்டுபிடிப்பதை நோக்கமாகக் கொண்டுள்ளோம்.

மாற்றும் செயல்பாடுகளை ஏர் வழங்குநர் பயன்பாடுகளிலிருந்து இறக்குமதி செய்வதன் மூலம் தொடங்குவோம்

[1]:
from qiskit_aer.utils import approximate_quantum_error, approximate_noise_model

"தோராயமான" என்ற பெயர், இந்தச் செயல்பாடுகள் கொடுக்கப்பட்டவற்றுக்கு மிக நெருக்கமான (Hilbert-Schmidt மெட்ரிக்கில்) பிழையை உருவாக்குகின்றன.

Qiskit இல் வரையறுக்கப்பட்ட பல நிலையான பிழை சேனல்களைப் பயன்படுத்தி தோராயத்தை நாங்கள் நிரூபிக்கிறோம்.

[2]:
import numpy as np

# Import Aer QuantumError functions that will be used
from qiskit_aer.noise import amplitude_damping_error, reset_error, pauli_error

from qiskit.quantum_info import Kraus

கண்ணோட்டம்

1-கியூபிட் குவாண்டம் சேனல் ஒரு செயல்பாடு \(\mathcal{C}:\mathbb{C}^{2\times2}\to\mathbb{C}^{2\times2}\) அடர்த்தி ஆபரேட்டர்களை அடர்த்தி ஆபரேட்டர்களுக்கு மேப்பிங் செய்கிறது (படம் ஒரு அடர்த்தி ஆபரேட்டர் என்பதை உறுதிப்படுத்த \(\mathcal{C}\) முற்றிலும் நேர்மறையானதாக இருக்க வேண்டும் மற்றும் பாதுகாப்பதைக் கண்டறிய வேண்டும், CPTP).

கொடுக்கப்பட்ட குவாண்டம் சேனல்கள் \(\mathcal{E}_{1},\dots,\mathcal{E}_{r}\),மற்றும் நிகழ்தகவுகள் \(p_1, p_2, \dots, p_r\) போன்றவை :math: 0 le p_i le 1 மற்றும் \(p_1+\dots +p_r = 1\),ஒரு புதிய குவாண்டம் சேனல் \(\mathcal{C}_\mathcal{E}\) போன்றவற்றை உருவாக்கலாம் \(\mathcal{C}_\mathcal{E}(\rho)\) சேனலைத் தேர்ந்தெடுப்பதன் விளைவைக் கொண்டுள்ளது \(\mathcal{E}_i\) நிகழ்தகவுடன் \(p_i\) மற்றும் இதைப் பயன்படுத்துதல் \(\rho\).

இரைச்சல் மாற்றச் செயல்பாடு பின்வரும் மேம்படுத்தல் சிக்கலைத் தீர்க்கிறது: சேனல் \(\mathcal{C}\) ("இலக்கு") மற்றும் சேனல்களின் பட்டியல் \(\mathcal{E}_{1},\dots, \mathcal{E}_{r}\), நிகழ்தகவுகளைக் கண்டறியவும் \(p_1, p_2, \dots, p_r\) ஐக் குறைத்தல் \(D(\mathcal{C}, \mathcal{C}_\mathcal{E})\) சில தூர அளவீடுகளின்படி \(D\) (Hilbert-Schmidt மெட்ரிக் தற்போது பயன்படுத்தப்படுகிறது).

தோராயமானது நேர்மையானது என்பதை உறுதிப்படுத்த, தோராயமான பிழை சேனல் உண்மையான பிழை சேனலுக்கு "மேல் வரம்பாக" செயல்படுகிறது என்ற பொருளில், கூடுதல் நேர்மைக் கட்டுப்பாட்டைச் சேர்க்கிறோம்:

\[\text{F}(I,\mathcal{C})\ge F(I,\mathcal{C}_\mathcal{E})\]

எங்கே \(\text{F}\) ஒரு நம்பக நடவடிக்கை மற்றும் \(I\) என்பது ஐடென்டிட்டி சேனல்.

எடுத்துக்காட்டு: மீட்டமைக்கும் சத்தத்துடன் வீச்சு குறைக்கும் சத்தம்.

வீச்சு ஒடுக்கம் சத்தம் ஒரு அளவுருவால் விவரிக்கப்படுகிறது \(0\le \gamma \le 1\) மற்றும் Kraus ஆபரேட்டர்களால் வழங்கப்பட்டது:

\[\begin{split}\left(\begin{array}{cc} 1 & 0\\ 0 & \sqrt{1-\gamma} \end{array}\right),\left(\begin{array}{cc} 0 & \sqrt{\gamma}\\ 0 & 0 \end{array}\right)\end{split}\]

Reset பிழை நிகழ்தகவுகளால் விவரிக்கப்படுகிறது \(0\le p, q\le 1\) போன்றவை \(p+q\le 1\) மற்றும் Kraus ஆபரேட்டர்கள் வழங்கியவை:

\[\begin{split}\left(\begin{array}{cc} \sqrt{p} & 0\\ 0 & 0 \end{array}\right),\left(\begin{array}{cc} 0 & \sqrt{p}\\ 0 & 0 \end{array}\right),\left(\begin{array}{cc} 0 & 0\\ \sqrt{q} & 0 \end{array}\right),\left(\begin{array}{cc} 0 & 0\\ 0 & \sqrt{q} \end{array}\right)\end{split}\]

பாதிக்கப்பட்ட குவிட்டின் குவாண்டம் நிலையை \(\left|0\right\rangle\) க்கு நிகழ்தகவு \(p\), க்கு \(\left|1\right\rangle\) உடன் rangle`, மற்றும் நிகழ்தகவுடன் எதையும் செய்ய வேண்டாம் \(1-(p+q)\).

\(p,q\) தோராயமாக ஒரு \(\gamma\) அலைவீச்சு அடர்த்தியான சேனலை பகுப்பாய்வு செய்வதற்கான சிறந்த மதிப்புகளை தீர்மானிப்பது மிகவும் கடினம் அல்ல, விவரங்களை இங்கே காண்க here. சிறந்த தோராயமானது:

\[p=\frac{1}{2}\left(1+\gamma-\sqrt{1-\gamma}\right), q=0\]
[3]:
gamma = 0.23
error = amplitude_damping_error(gamma)
results = approximate_quantum_error(error, operator_string="reset")

உண்மையான தோராயத்தை செய்ய மேலே உள்ள குறியீடு மட்டுமே எங்களுக்கு தேவைப்பட்டது.

[4]:
print(results)

p = (1 + gamma - np.sqrt(1 - gamma)) / 2
q = 0

print("")
print("Expected results:")
print("P(0) = {}".format(1-(p+q)))
print("P(1) = {}".format(p))
print("P(2) = {}".format(q))
QuantumError on 1 qubits. Noise circuits:
  P(0) = 0.8237482193044617, Circuit =
   ┌───┐
q: ┤ I ├
   └───┘
  P(1) = 0.17625178069553835, Circuit =

q: ─|0>─

  P(2) = 2.158685879252966e-23, Circuit =
        ┌───┐
q: ─|0>─┤ X ├
        └───┘

Expected results:
P(0) = 0.8237482193696062
P(1) = 0.17625178063039387
P(2) = 0

பகுப்பாய்வு ரீதியாக கணிக்கப்பட்ட முடிவுகளை நாங்கள் பெற்றுள்ளோம்.

வெவ்வேறு உள்ளீட்டு வகைகள்

தோராயமான செயல்பாட்டிற்கு இரண்டு உள்ளீடுகள் வழங்கப்படுகின்றன: தோராயமாக பிழை சேனல், மற்றும் தோராயத்தை நிர்மாணிப்பதில் பயன்படுத்தகூடிய பிழை சேனல்கள்.

தோராயமாக பிழை சேனல் QuantumError ஆப்ஜெக்ட்டாக மாற்றக்கூடிய எந்த உள்ளீடாகவும் கொடுக்கப்படலாம்.

உதாரணமாக, வீச்சு ஒடுக்கத்தின் Kraus மேட்ரிக்ஸை நாங்கள் வெளிப்படையாகக் கட்டமைத்து, முன்பு இருந்த அதே தோராய செயல்பாட்டிற்கு செல்கிறோம்:

[5]:
gamma = 0.23
K0 = np.array([[1,0],[0,np.sqrt(1-gamma)]])
K1 = np.array([[0,np.sqrt(gamma)],[0,0]])
results = approximate_quantum_error(Kraus([K0, K1]), operator_string="reset")
print(results)
QuantumError on 1 qubits. Noise circuits:
  P(0) = 0.8237482193044623, Circuit =
   ┌───┐
q: ┤ I ├
   └───┘
  P(1) = 0.1762517806955376, Circuit =

q: ─|0>─

  P(2) = 6.463899246563026e-23, Circuit =
        ┌───┐
q: ─|0>─┤ X ├
        └───┘

தோராயமான சேனலை உருவாக்க பயன்படும் பிழை ஆபரேட்டர்கள் ஒரு பட்டியல், அகராதி அல்லது கடின குறியீட்டு சேனல்களைக் குறிக்கும் ஸ்ட்ரிங் என வழங்கப்படலாம்.

எந்தவொரு சேனலும் க்ராஸ் ஆபரேட்டர்களின் பட்டியலாக இருக்கலாம் அல்லது 'குவாண்டம் எரர்' பொருள்களாக இருக்கலாம்.

ஐடென்டிட்டி சேனலை நேரடியாக அனுப்ப தேவையில்லை; இது எப்போதும் மறைமுகமாக பயன்படுத்தப்படுகிறது.

எடுத்துக்காட்டாக, மீட்டமைப்பு சத்தங்களுக்கு வெளிப்படையான Kraus பிரதிநிதித்துவத்தைப் பயன்படுத்தி தோராயமாக வீச்சு தணித்தல்:

[6]:
reset_to_0 = Kraus([np.array([[1,0],[0,0]]), np.array([[0,1],[0,0]])])
reset_to_1 = Kraus([np.array([[0,0],[1,0]]), np.array([[0,0],[0,1]])])
reset_kraus = [reset_to_0, reset_to_1]

gamma = 0.23
error = amplitude_damping_error(gamma)
results = approximate_quantum_error(error, operator_list=reset_kraus)
print(results)
QuantumError on 1 qubits. Noise circuits:
  P(0) = 0.8237482193044617, Circuit =
   ┌───┐
q: ┤ I ├
   └───┘
  P(1) = 0.17625178069553835, Circuit =
   ┌───────┐
q: ┤ kraus ├
   └───────┘
  P(2) = 2.158685879252966e-23, Circuit =
   ┌───────┐
q: ┤ kraus ├
   └───────┘

வெளியீட்டு சேனலில் உள்ள வேறுபாட்டைக் கவனியுங்கள்: நிகழ்தகவுகள் ஒன்றே, ஆனால் உள்ளீட்டு க்ராஸ் ஆபரேட்டர்கள் பொது க்ராஸ் சேனல்களாக மாற்றப்பட்டனர், அவை கிளிஃபோர்ட் சிமுலேட்டரில் பயன்படுத்த முடியாது. எனவே, முடிந்தவரை க்ராஸ் மெட்ரிக்குகளுக்கு பதிலாக QuantumError பொருளை அனுப்புவது எப்போதும் நல்லது.

[7]:
import qiskit.tools.jupyter
%qiskit_version_table
%qiskit_copyright

Version Information

Qiskit SoftwareVersion
qiskit-terra0.24.0.dev0+dba2eff
qiskit-aer0.11.2
qiskit-ignis0.7.1
qiskit-ibmq-provider0.20.0
qiskit0.41.0
System information
Python version3.8.11
Python compilerClang 12.0.5 (clang-1205.0.22.11)
Python builddefault, Jul 27 2021 10:46:38
OSDarwin
CPUs8
Memory (Gb)64.0
Wed Feb 15 14:17:23 2023 JST

This code is a part of Qiskit

© Copyright IBM 2017, 2023.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

[ ]: