Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quantum-kittens
GitHub Repository: quantum-kittens/platypus
Path: blob/main/translations/bn/ch-states/single-qubit-gates.ipynb
3858 views
Kernel: Python 3

একক কিউবিট গেটস

পূর্ববর্তী বিভাগে আমরা একটি qubit হতে পারে এমন সমস্ত সম্ভাব্য অবস্থা দেখেছি। আমরা দেখেছি যে qubits 2D ভেক্টর দ্বারা প্রতিনিধিত্ব করা যেতে পারে এবং তাদের অবস্থাগুলি ফর্মের মধ্যে সীমাবদ্ধ:

q=cos(θ2)0+eiϕsinθ21|q\rangle = \cos{(\tfrac{\theta}{2})}|0\rangle + e^{i\phi}\sin{\tfrac{\theta}{2}}|1\rangle

যেখানে θ\theta এবং ϕ\phi হল বাস্তব সংখ্যা। এই বিভাগে আমরা গেটগুলিকে কভার করব, যে ক্রিয়াকলাপগুলি এই রাজ্যগুলির মধ্যে একটি qubit পরিবর্তন করে৷ গেটের সংখ্যা এবং তাদের মধ্যে মিলের কারণে এই অধ্যায়টি তালিকায় পরিণত হওয়ার ঝুঁকি রয়েছে। এটি মোকাবেলা করার জন্য, আমরা পুরো অধ্যায় জুড়ে উপযুক্ত জায়গায় গুরুত্বপূর্ণ ধারণাগুলি উপস্থাপন করার জন্য কয়েকটি বিভ্রান্তি অন্তর্ভুক্ত করেছি।

কম্পিউটেশনের পরমাণুতে আমরা কিছু গেট জুড়ে এসেছি এবং একটি ক্লাসিক্যাল গণনা করতে তাদের ব্যবহার করেছি। কোয়ান্টাম সার্কিটের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল যে, কিউবিটগুলি শুরু করা এবং তাদের পরিমাপের মধ্যে, অপারেশনগুলি (গেটগুলি) সর্বদা বিপরীত হয়! এই বিপরীতমুখী গেটগুলিকে ম্যাট্রিস হিসাবে এবং ব্লোচ গোলকের চারপাশে ঘূর্ণন হিসাবে উপস্থাপন করা যেতে পারে।

from qiskit import QuantumCircuit, assemble, Aer from math import pi, sqrt from qiskit.visualization import plot_bloch_multivector, plot_histogram sim = Aer.get_backend('aer_simulator')

1. পাওলি গেটস

আপনার রৈখিক বীজগণিত বিভাগ থেকে পাওলি ম্যাট্রিক্সের সাথে পরিচিত হওয়া উচিত। যদি এখানকার কোনো গণিত আপনার কাছে নতুন হয়, তাহলে নিজেকে গতিতে আনতে আপনার রৈখিক বীজগণিত বিভাগটি ব্যবহার করা উচিত। আমরা এখানে দেখব যে পাওলি ম্যাট্রিসগুলি খুব সাধারণভাবে ব্যবহৃত কিছু কোয়ান্টাম গেটগুলিকে উপস্থাপন করতে পারে।

1.1 X-গেট

এক্স-গেট পাউলি-এক্স ম্যাট্রিক্স দ্বারা প্রতিনিধিত্ব করা হয়:

X=[0amp;1 1amp;0]=01+10X = \begin{bmatrix} 0 & 1 \ 1 & 0 \end{bmatrix} = |0\rangle\langle1| + |1\rangle\langle0|

একটি কিউবিটের উপর একটি গেটের প্রভাব দেখতে, আমরা কেবল গেট দ্বারা কিউবিটের স্টেটভেক্টরকে গুণ করি। আমরা দেখতে পাচ্ছি যে X-গেট 0|0\rangle এবং 1|1\rangle স্টেটের প্রশস্ততা পরিবর্তন করে:

X0=[0amp;1 1amp;0][1 0]=[0 1]=1X|0\rangle = \begin{bmatrix} 0 & 1 \ 1 & 0 \end{bmatrix}\begin{bmatrix} 1 \ 0 \end{bmatrix} = \begin{bmatrix} 0 \ 1 \end{bmatrix} = |1\rangle

অনুস্মারক

Matrices দ্বারা ভেক্টর গুণ করা ম্যাট্রিক্স গুণন হল অভ্যন্তরীণ পণ্যের একটি সাধারণীকরণ যা আমরা শেষ অধ্যায়ে দেখেছি। একটি ভেক্টরকে একটি ম্যাট্রিক্স দ্বারা গুণ করার নির্দিষ্ট ক্ষেত্রে (উপরে দেখা গেছে), আমরা সর্বদা একটি ভেক্টর ফিরে পাই:
Mv=[aamp;b camp;d][v0 v1]=[av0+bv1 cv0+dv1]M|v\rangle = \begin{bmatrix}a & b \ c & d \end{bmatrix}\begin{bmatrix}v_0 \ v_1 \end{bmatrix} = \begin{bmatrix}a\cdot v_0 + b \cdot v_1 \ c \cdot v_0 + d \cdot v_1 \end{bmatrix}

কোয়ান্টাম কম্পিউটিংয়ে, আমরা ভিত্তি ভেক্টরের পরিপ্রেক্ষিতে আমাদের ম্যাট্রিক্স লিখতে পারি:

X=01+10X = |0\rangle\langle1| + |1\rangle\langle0|

এটি কখনও কখনও একটি বক্স ম্যাট্রিক্স ব্যবহার করার চেয়ে পরিষ্কার হতে পারে কারণ আমরা দেখতে পারি বিভিন্ন গুণের ফলাফল কী হবে:

X1amp;=(01+10)1 amp;=011+101 amp;=0×1+1×0 amp;=0\begin{aligned} X|1\rangle & = (|0\rangle\langle1| + |1\rangle\langle0|)|1\rangle \ & = |0\rangle\langle1|1\rangle + |1\rangle\langle0|1\rangle \ & = |0\rangle \times 1 + |1\rangle \times 0 \ & = |0\rangle \end{aligned}

প্রকৃতপক্ষে, যখন আমরা দেখি একটি কেট এবং একটি ব্রা এইভাবে গুণিত হয়েছে:

ab|a\rangle\langle b|

এটিকে বাইরের পণ্য বলা হয়, যা নিয়ম অনুসরণ করে:

ab=[a0b0amp;a0b1amp;amp;a0bn a1b0amp;amp;amp; amp;amp;amp; anb0amp;amp;amp;anbn ]|a\rangle\langle b| = \begin{bmatrix} a_0 b_0 & a_0 b_1 & \dots & a_0 b_n\ a_1 b_0 & \ddots & & \vdots \ \vdots & & \ddots & \vdots \ a_n b_0 & \dots & \dots & a_n b_n \ \end{bmatrix}

আমরা দেখতে পাচ্ছি যে এটি প্রকৃতপক্ষে উপরে দেখা হিসাবে X-ম্যাট্রিক্সে পরিণত হয়:

01+10=[0amp;1 0amp;0]+[0amp;0 1amp;0]=[0amp;1 1amp;0]=X|0\rangle\langle1| + |1\rangle\langle0| = \begin{bmatrix}0 & 1 \ 0 & 0 \end{bmatrix} + \begin{bmatrix}0 & 0 \ 1 & 0 \end{bmatrix} = \begin{bmatrix}0 & 1 \ 1 & 0 \end{bmatrix} = X

কিস্কিট-এ, আমরা এটি যাচাই করার জন্য একটি শর্ট সার্কিট তৈরি করতে পারি:

# Let's do an X-gate on a |0> qubit qc = QuantumCircuit(1) qc.x(0) qc.draw()
Image in a Jupyter notebook

চলুন উপরের সার্কিটের ফলাফল দেখি। দ্রষ্টব্য: এখানে আমরা plot_bloch_multivector() ব্যবহার করি যা Bloch ভেক্টরের পরিবর্তে একটি qubit এর statevector নেয়।

# Let's see the result qc.save_statevector() qobj = assemble(qc) state = sim.run(qobj).result().get_statevector() plot_bloch_multivector(state)
Image in a Jupyter notebook

আমরা প্রকৃতপক্ষে দেখতে পাচ্ছি কিউবিটের অবস্থা প্রত্যাশিত হিসাবে 1|1\rangle। আমরা এটিকে ব্লোচ গোলকের x-অক্ষের চারপাশে π\pi রেডিয়ান দ্বারা ঘূর্ণন হিসাবে ভাবতে পারি। এক্স-গেটকে প্রায়শই নট-গেট বলা হয়, এটির ক্লাসিক্যাল অ্যানালগকে উল্লেখ করে।

1.2 Y & Z-গেট

একইভাবে X-গেটের মতো, Y & Z পাউলি ম্যাট্রিসগুলিও আমাদের কোয়ান্টাম সার্কিটে Y & Z- গেট হিসাবে কাজ করে:

Y=[0amp;i iamp;0]Z=[1amp;0 0amp;1]Y = \begin{bmatrix} 0 & -i \ i & 0 \end{bmatrix} \quad\quad\quad\quad Z = \begin{bmatrix} 1 & 0 \ 0 & -1 \end{bmatrix}Y=i01+i10Z=0011Y = -i|0\rangle\langle1| + i|1\rangle\langle0| \quad\quad Z = |0\rangle\langle0| - |1\rangle\langle1|

এবং, আশ্চর্যজনকভাবে, তারা যথাক্রমে ব্লোচ গোলকের y এবং z-অক্ষের চারপাশে [[π\pi|2π2\pi|π2\frac{\pi}{2}]] দ্বারা ঘূর্ণন সম্পাদন করে।

নীচে একটি উইজেট রয়েছে যা ব্লোচ গোলকের একটি কিউবিটের অবস্থা প্রদর্শন করে, একটি বোতাম টিপে কিউবিটের গেটটি সম্পাদন করবে:

# Run the code in this cell to see the widget from qiskit_textbook.widgets import gate_demo gate_demo(gates='pauli')

কিস্কিট-এ, আমরা ব্যবহার করে আমাদের সার্কিটে Y এবং Z-গেট প্রয়োগ করতে পারি:

qc.y(0) # Do Y-gate on qubit 0 qc.z(0) # Do Z-gate on qubit 0 qc.draw()
Image in a Jupyter notebook

2. ডিগ্রেশন: এক্স, ওয়াই এবং জেড-বেস

অনুস্মারক

Matrices এর Eigenvectors আমরা দেখেছি যে একটি ভেক্টরকে একটি ম্যাট্রিক্স দ্বারা গুণ করলে একটি ভেক্টর হয়:
Mv=vnew vectorM|v\rangle = |v'\rangle \leftarrow \text{new vector}Mv=λvM|v\rangle = \lambda|v\rangleZ0amp;=0 Z1amp;=1\begin{aligned} Z|0\rangle & = |0\rangle \ Z|1\rangle & = -|1\rangle \end{aligned}

আপনি আরও লক্ষ্য করতে পারেন যে জেড-গেটটি আমাদের কিউবিটের উপর কোন প্রভাব ফেলবে বলে মনে হচ্ছে যখন এটি এই দুটি অবস্থায় থাকে। এর কারণ হল 0|0\rangle এবং 1|1\rangle হল Z-গেটের দুটি eigenstates । প্রকৃতপক্ষে, গণনামূলক ভিত্তি (রাষ্ট্র দ্বারা গঠিত ভিত্তি 0|0\rangle এবং 1|1\rangle) প্রায়ই জেড-বেসিস বলা হয়। এটি একমাত্র ভিত্তি নয় যা আমরা ব্যবহার করতে পারি, একটি জনপ্রিয় ভিত্তি হল এক্স-বেসিস, এক্স-গেটের আইজেনস্টেট দ্বারা গঠিত। আমরা এই দুটি ভেক্টরকে বলি +|+\rangle এবং |-\rangle:

+=12(0+1)=12[1 1]|+\rangle = \tfrac{1}{\sqrt{2}}(|0\rangle + |1\rangle) = \tfrac{1}{\sqrt{2}}\begin{bmatrix} 1 \ 1 \end{bmatrix}=12(01)=12[1 1]|-\rangle = \tfrac{1}{\sqrt{2}}(|0\rangle - |1\rangle) = \tfrac{1}{\sqrt{2}}\begin{bmatrix} 1 \ -1 \end{bmatrix}

আরেকটি কম ব্যবহৃত ভিত্তি হল ওয়াই-গেটের ইজেনস্টেট দ্বারা গঠিত। এগুলিকে বলা হয়:

,|\circlearrowleft\rangle, \quad |\circlearrowright\rangle

আমরা এই গণনা একটি অনুশীলন হিসাবে এটি ছেড়ে. আসলে একটি অসীম সংখ্যক ঘাঁটি রয়েছে; একটি গঠন করতে, আমাদের কেবল দুটি অর্থোগোনাল ভেক্টর প্রয়োজন। হার্মিটিয়ান এবং একক ম্যাট্রিস উভয়ের ইজেনভেক্টর ভেক্টর স্থানের ভিত্তি তৈরি করে। এই বৈশিষ্ট্যের কারণে, আমরা নিশ্চিত হতে পারি যে X-গেট এবং Y-গেটের ইজেনস্টেটগুলি প্রকৃতপক্ষে 1-কুবিট অবস্থার জন্য একটি ভিত্তি তৈরি করে (পরিশিষ্টের রৈখিক বীজগণিত পৃষ্ঠায় এটি সম্পর্কে আরও পড়ুন)

দ্রুত অনুশীলন

  1. যাচাই করুন যে +|+\rangle এবং |-\rangle প্রকৃতপক্ষে এক্স-গেটের ইজেনস্টেট।

  2. তারা কি eigenvalue আছে?

  3. ব্লোচ গোলকের Y-গেটের ইজেনস্টেটগুলি এবং তাদের কো-অর্ডিনেটগুলি খুঁজুন।

শুধুমাত্র পাউলি-গেট ব্যবহার করে আমাদের প্রাথমিক কিউবিটকে 0|0\rangle বা 1|1\rangle ব্যতীত অন্য কোন অবস্থায় স্থানান্তর করা অসম্ভব, অর্থাৎ আমরা সুপারপজিশন অর্জন করতে পারি না। এর মানে আমরা ক্লাসিক্যাল বিটের থেকে ভিন্ন কোনো আচরণ দেখতে পাচ্ছি না। আরও আকর্ষণীয় রাজ্য তৈরি করতে আমাদের আরও গেট লাগবে!

3. Hadamard গেট

হাদামার্ড গেট (এইচ-গেট) একটি মৌলিক কোয়ান্টাম গেট। এটি আমাদেরকে ব্লচ গোলকের মেরু থেকে দূরে সরে যেতে এবং 0|0\rangle এবং 1|1\rangle এর একটি সুপারপজিশন তৈরি করতে দেয়। এটির ম্যাট্রিক্স রয়েছে:

H=12[1amp;1 1amp;1]H = \tfrac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \ 1 & -1 \end{bmatrix}

আমরা দেখতে পাচ্ছি যে এটি নীচের রূপান্তরগুলি সম্পাদন করে:

H0=+H|0\rangle = |+\rangleH1=H|1\rangle = |-\rangle

এটিকে ব্লোচ ভেক্টর [1,0,1] (x এবং z-অক্ষের মধ্যবর্তী রেখা) এর চারপাশে ঘূর্ণন হিসাবে বা X এবং Z বেসের মধ্যে কিউবিটের অবস্থার রূপান্তর হিসাবে ভাবা যেতে পারে।

আপনি নীচের উইজেট ব্যবহার করে এই গেটগুলির সাথে খেলা করতে পারেন:

# Run the code in this cell to see the widget from qiskit_textbook.widgets import gate_demo gate_demo(gates='pauli+h')

দ্রুত অনুশীলন

  1. 0|0\rangle, 1|1\rangle, +|+\rangle এবং |-\rangle ভেক্টরের বাইরের পণ্য হিসাবে H-গেট লিখুন।

  2. দেখান যে গেটগুলির ক্রম প্রয়োগ করা: HZH, যেকোনো কিউবিট অবস্থায় একটি X-গেট প্রয়োগ করার সমতুল্য।

  3. X, Z এবং H-গেটগুলির একটি সংমিশ্রণ খুঁজুন যা একটি Y-গেটের সমতুল্য (গ্লোবাল ফেজ উপেক্ষা করে)।

4. ডিগ্রেশন: বিভিন্ন বেসে পরিমাপ করা

আমরা দেখেছি যে জেড-অক্ষ অভ্যন্তরীণভাবে বিশেষ নয়, এবং অসীমভাবে আরও অনেকগুলি ঘাঁটি রয়েছে। একইভাবে পরিমাপের সাথে, আমাদের সর্বদা গণনাগত ভিত্তিতে (জেড-বেসিস) পরিমাপ করতে হবে না, আমরা আমাদের কিউবিটগুলিকে যে কোনও ভিত্তিতে পরিমাপ করতে পারি।

উদাহরণ হিসেবে, এক্স-বেসিসে পরিমাপ করার চেষ্টা করা যাক। আমরা +|+\rangle বা |-\rangle পরিমাপের সম্ভাব্যতা গণনা করতে পারি:

p(+)=+q2,p()=q2p(|+\rangle) = |\langle+|q\rangle|^2, \quad p(|-\rangle) = |\langle-|q\rangle|^2

এবং পরিমাপের পরে, সুপারপজিশনটি ধ্বংস হয়ে যায়। যেহেতু কিস্কিট শুধুমাত্র জেড-বেসিসে পরিমাপ করার অনুমতি দেয়, তাই হাদামার্ড গেট ব্যবহার করে আমাদের নিজেদের তৈরি করতে হবে:

# Create the X-measurement function: def x_measurement(qc, qubit, cbit): """Measure 'qubit' in the X-basis, and store the result in 'cbit'""" qc.h(qubit) qc.measure(qubit, cbit) return qc initial_state = [1/sqrt(2), -1/sqrt(2)] # Initialize our qubit and measure it qc = QuantumCircuit(1,1) qc.initialize(initial_state, 0) x_measurement(qc, 0, 0) # measure qubit 0 to classical bit 0 qc.draw()
Image in a Jupyter notebook

উপরের দ্রুত অনুশীলনে, আমরা দেখেছি যে আপনি দুটি এইচ-গেটের মধ্যে আমাদের জেড-গেট স্যান্ডউইচ করে একটি এক্স-গেট তৈরি করতে পারেন:

X=HZHX = HZH

জেড-বেসিস থেকে শুরু করে, এইচ-গেট আমাদের কিউবিটকে X-বেসিসে স্যুইচ করে, জেড-গেট X-বেসিসে একটি নয়, এবং চূড়ান্ত এইচ-গেট আমাদের কিউবিটকে Z-বেসিসে ফিরিয়ে দেয়। ম্যাট্রিক্সগুলিকে গুণ করে এটি সর্বদা একটি এক্স-গেটের মতো আচরণ করে তা আমরা যাচাই করতে পারি:

$$ HZH = \tfrac{1}{\sqrt{2}}[1amp;1 1amp;1]\begin{bmatrix} 1 & 1 \ 1 & -1 \end{bmatrix} [1amp;0 0amp;1]\begin{bmatrix} 1 & 0 \ 0 & -1 \end{bmatrix} \tfrac{1}{\sqrt{2}}[1amp;1 1amp;1]\begin{bmatrix} 1 & 1 \ 1 & -1 \end{bmatrix}

[0amp;1 1amp;0]\begin{bmatrix} 0 & 1 \ 1 & 0 \end{bmatrix}

একই যুক্তি অনুসরণ করে, আমরা আমাদের পরিমাপের আগে X-বেসিস থেকে Z-বেসিসে রূপান্তর করে একটি X-পরিমাপ তৈরি করেছি। যেহেতু পরিমাপের প্রক্রিয়াটি সিস্টেমের উপর নির্ভর করে বিভিন্ন প্রভাব ফেলতে পারে (যেমন কিছু সিস্টেম সর্বদা পরিমাপের পরে qubit কে 0|0\rangle এ ফেরত দেয়, যেখানে অন্যরা এটিকে পরিমাপ করা অবস্থায় ছেড়ে দিতে পারে), qubit-পরবর্তী পরিমাপের অবস্থা অনির্ধারিত এবং আমরা যদি এটি আবার ব্যবহার করতে চাই তবে আমাদের অবশ্যই এটি পুনরায় সেট করতে হবে।

হাদামার্ড গেটটি কেন আমাদের জেড-বেসিস থেকে এক্স-বেসিসে নিয়ে যায় তা দেখার আরেকটি উপায় আছে। ধরুন আমরা X-বেসিসে যে qubit পরিমাপ করতে চাই তা a0+b1a |0\rangle + b |1\rangle অবস্থায় (স্বাভাবিক) অবস্থায় আছে। এটিকে X-বেসিসে পরিমাপ করার জন্য, আমরা প্রথমে রাষ্ট্রটিকে +|+\rangle এবং |-\rangle-এর রৈখিক সংমিশ্রণ হিসাবে প্রকাশ করি। সম্পর্ক ব্যবহার করে 0=++2|0\rangle = \frac{|+\rangle + |-\rangle}{\sqrt{2}} এবং 1=+2|1\rangle = \frac{|+\rangle - |-\rangle} {\sqrt{2}}, রাষ্ট্রটি হয়ে যায় a+b2++ab2\frac{a + b}{\sqrt{2}}|+\rangle + \frac{a - b}{\sqrt{2}} |-\rangle লক্ষ্য করুন যে X-ভিত্তিতে সম্ভাব্যতা প্রশস্ততা Z-বেসিসে প্রকাশিত স্টেট ভেক্টরের উপর একটি হাডামার্ড ম্যাট্রিক্স প্রয়োগ করে প্রাপ্ত করা যেতে পারে।

এখন ফলাফল দেখুন:

qobj = assemble(qc) # Assemble circuit into a Qobj that can be run counts = sim.run(qobj).result().get_counts() # Do the simulation, returning the state vector plot_histogram(counts) # Display the output on measurement of state vector
Image in a Jupyter notebook

আমরা |-\rangle স্টেটে আমাদের qubit আরম্ভ করেছি, কিন্তু আমরা দেখতে পাচ্ছি যে, পরিমাপের পরে, আমরা আমাদের qubitটিকে 1|1\rangle স্টেটেভেঙে দিয়েছি। আপনি যদি আবার সেলটি চালান, আপনি একই ফলাফল দেখতে পাবেন, যেহেতু X-ভিত্তি বরাবর, স্টেটে |-\rangle একটি বেসিস স্টেট এবং এটিকে X বরাবর পরিমাপ করলে সবসময় একই ফলাফল পাওয়া যাবে।

দ্রুত অনুশীলন

  1. যদি আমরা +|+\rangle রাজ্যে আমাদের qubit শুরু করি, তাহলে |-\rangle এ এটি পরিমাপের সম্ভাবনা কত?

  2. +|+\rangle এবং |-\rangle ( ইঙ্গিত: আপনি .get_counts() এবং plot_histogram() ) ব্যবহার করতে চাইতে পারেন।

  3. Y-ভিত্তিতে পরিমাপ করে এমন একটি ফাংশন তৈরি করার চেষ্টা করুন।

বিভিন্ন ঘাঁটিতে পরিমাপ করা আমাদের হাইজেনবার্গের বিখ্যাত অনিশ্চয়তা নীতিকে কার্যে দেখতে দেয়। Z-বেসিসে একটি অবস্থা পরিমাপের নিশ্চিততা থাকা X-বেসিসে একটি নির্দিষ্ট অবস্থা পরিমাপের সমস্ত নিশ্চিততাকে সরিয়ে দেয় এবং এর বিপরীতে। একটি সাধারণ ভুল ধারণা হল যে অনিশ্চয়তা আমাদের যন্ত্রপাতির সীমাবদ্ধতার কারণে, কিন্তু এখানে আমরা দেখতে পাচ্ছি অনিশ্চয়তা আসলে কিউবিটের প্রকৃতির অংশ।

উদাহরণস্বরূপ, যদি আমরা আমাদের কিউবিটকে 0|0\rangle এ রাখি, Z-বেসিসে আমাদের পরিমাপ 0|0\rangle হবে নিশ্চিত, কিন্তু এক্স-বেসিসে আমাদের পরিমাপ সম্পূর্ণ র্যান্ডম! একইভাবে, যদি আমরা আমাদের কিউবিটকে |-\rangle এ রাখি, X-বেসিসে আমাদের পরিমাপ নিশ্চিত |-\rangle হবে, কিন্তু এখন Z-বেসিসে যেকোন পরিমাপ সম্পূর্ণ র্যান্ডম হবে।

আরও সাধারণভাবে: আমাদের কোয়ান্টাম সিস্টেম যে অবস্থায়ই থাকুক না কেন, সর্বদা একটি পরিমাপ থাকে যার একটি নির্ধারক ফলাফল থাকে।

এইচ-গেটের প্রবর্তন আমাদের কিছু আকর্ষণীয় ঘটনা অন্বেষণ করার অনুমতি দিয়েছে, কিন্তু আমরা এখনও আমাদের কোয়ান্টাম অপারেশনগুলিতে খুব সীমিত। এখন একটি নতুন ধরনের গেট প্রবর্তন করা যাক:

5. P-গেট

পি-গেট (ফেজ গেট) প্যারামেট্রিসড, অর্থাৎ, এটিকে ঠিক কী করতে হবে তা বলার জন্য এটির একটি সংখ্যা (ϕ\phi) প্রয়োজন। P-গেট Z-অক্ষের দিকের চারপাশে ϕ\phi ঘূর্ণন করে। এটির ম্যাট্রিক্স ফর্ম রয়েছে:

P(ϕ)=[1amp;0 0amp;eiϕ]P(\phi) = \begin{bmatrix} 1 & 0 \ 0 & e^{i\phi} \end{bmatrix}

যেখানে ϕ\phi একটি বাস্তব সংখ্যা।

আপনি নিচের উইজেটটি পি-গেটের সাথে খেলার জন্য ব্যবহার করতে পারেন, স্লাইডার ব্যবহার করে ϕ\phi নির্দিষ্ট করুন:

# Run the code in this cell to see the widget from qiskit_textbook.widgets import gate_demo gate_demo(gates='pauli+h+p')
VBox(children=(HBox(children=(Button(description='X', layout=Layout(height='3em', width='3em'), style=ButtonSt…
Image(value=b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01 \x00\x00\x01 \x08\x06\x00\x00\x00\x14\x83\xae\x8…

কিস্কিট-এ, আমরা p(phi, qubit) ব্যবহার করে একটি P-গেট নির্দিষ্ট করি:

qc = QuantumCircuit(1) qc.p(pi/4, 0) qc.draw()
Image in a Jupyter notebook

আপনি লক্ষ্য করতে পারেন যে Z-গেট হল P-গেটের একটি বিশেষ ক্ষেত্রে, ϕ=π\phi = \pi সহ। প্রকৃতপক্ষে আরও তিনটি সাধারণভাবে উল্লেখ করা গেট রয়েছে যা আমরা এই অধ্যায়ে উল্লেখ করব, যার সবকটিই পি-গেটের বিশেষ ক্ষেত্রে:

6. I, S, এবং T-গেট

6.1 I-গেট

প্রথমে আসে আই-গেট (ওরফে 'আইডি-গেট' বা 'আইডেন্টিটি গেট')। এটি কেবল একটি গেট যা কিছুই করে না। এর ম্যাট্রিক্স হল পরিচয় ম্যাট্রিক্স:

I=[1amp;0 0amp;1]I = \begin{bmatrix} 1 & 0 \ 0 & 1\end{bmatrix}

আপনার সার্কিটের যেকোন জায়গায় আইডেন্টিটি গেট প্রয়োগ করলে কিউবিট স্টেটে কোনো প্রভাব পড়বে না, তাই এটি আকর্ষণীয় যে এটিকে একটি গেট হিসেবেও বিবেচনা করা হয়। এর পিছনে দুটি প্রধান কারণ রয়েছে, একটি হল এটি প্রায়শই গণনায় ব্যবহৃত হয়, উদাহরণস্বরূপ: এক্স-গেটটি তার নিজের বিপরীত প্রমাণ করা:

I=XXI = XX

দ্বিতীয়টি হল বাস্তব হার্ডওয়্যার বিবেচনা করার সময় 'কিছুই না' বা 'কিছুই না' অপারেশন নির্দিষ্ট করার জন্য এটি প্রায়ই কার্যকর।

দ্রুত অনুশীলন

  1. আই-গেটের eigenstates কি কি?

6.2 S-গেটস

উল্লেখ করার পরের গেটটি হল এস-গেট (কখনও কখনও Z\sqrt{Z}-গেট নামেও পরিচিত), এটি ϕ=π/2\phi = \pi/2 সহ একটি P-গেট। এটি ব্লোচ গোলকের চারপাশে এক চতুর্থাংশ ঘুরিয়ে দেয়। এটি লক্ষ্য করা গুরুত্বপূর্ণ যে এই অধ্যায়ে এ পর্যন্ত প্রবর্তিত প্রতিটি গেটের বিপরীতে, এস-গেটটি তার নিজস্ব বিপরীত নয় ! ফলস্বরূপ, আপনি প্রায়ই S -গেট, (এছাড়াও “S-ড্যাগার”, “Sdg” বা Z\sqrt{Z}^\dagger-গেট) দেখতে পাবেন। S -গেট স্পষ্টতই ϕ=π/2\phi = -\pi/2 সহ একটি P-গেট:

S=[1amp;0 0amp;eiπ2],S=[1amp;0 0amp;eiπ2]S = \begin{bmatrix} 1 & 0 \ 0 & e^{\frac{i\pi}{2}} \end{bmatrix}, \quad S^\dagger = \begin{bmatrix} 1 & 0 \ 0 & e^{-\frac{i\pi}{2}} \end{bmatrix}

"Z\sqrt{Z}-গেট" নামটি এই কারণে যে দুটি পরপর প্রয়োগ করা S-গেটের একটি Z-গেটের মতো একই প্রভাব রয়েছে:

SSq=ZqSS|q\rangle = Z|q\rangle

এই স্বরলিপি কোয়ান্টাম কম্পিউটিং জুড়ে সাধারণ।

কিস্কিটে একটি এস-গেট যোগ করতে:

qc = QuantumCircuit(1) qc.s(0) # Apply S-gate to qubit 0 qc.sdg(0) # Apply Sdg-gate to qubit 0 qc.draw()
Image in a Jupyter notebook

6.3 T-গেট

টি-গেটটি একটি খুব সাধারণভাবে ব্যবহৃত গেট, এটি ϕ=π/4\phi = \pi/4 সহ একটি P-গেট:

T=[1amp;0 0amp;eiπ4],T=[1amp;0 0amp;eiπ4]T = \begin{bmatrix} 1 & 0 \ 0 & e^{\frac{i\pi}{4}} \end{bmatrix}, \quad T^\dagger = \begin{bmatrix} 1 & 0 \ 0 & e^{-\frac{i\pi}{4}} \end{bmatrix}

এস-গেটের মতো, টি-গেটটি কখনও কখনও Z4\sqrt[4]{Z}-গেট নামেও পরিচিত।

কিস্কিটে:

qc = QuantumCircuit(1) qc.t(0) # Apply T-gate to qubit 0 qc.tdg(0) # Apply Tdg-gate to qubit 0 qc.draw()
Image in a Jupyter notebook

এই অধ্যায়ে এখন পর্যন্ত যে সমস্ত গেট চালু করা হয়েছে তার সাথে খেলার জন্য আপনি নীচের উইজেটটি ব্যবহার করতে পারেন:

# Run the code in this cell to see the widget from qiskit_textbook.widgets import gate_demo gate_demo()

7. U-গেট

যেমনটি আমরা আগে দেখেছি, I, Z, S & T-গেটগুলি ছিল আরও সাধারণ P-গেটের বিশেষ ক্ষেত্রে। একইভাবে, ইউ-গেটটি সমস্ত একক-কুবিট কোয়ান্টাম গেটগুলির মধ্যে সবচেয়ে সাধারণ। এটি ফর্মের একটি প্যারামেট্রিসড গেট:

U(θ,ϕ,λ)=[cos(θ2)amp;eiλsin(θ2) eiϕsin(θ2)amp;ei(ϕ+λ)cos(θ2)]U(\theta, \phi, \lambda) = \begin{bmatrix} \cos(\frac{\theta}{2}) & -e^{i\lambda}\sin(\frac{\theta}{2}) \ e^{i\phi}\sin(\frac{\theta}{2}) & e^{i(\phi+\lambda)}\cos(\frac{\theta}{2}) \end{bmatrix}

এই অধ্যায়ের প্রতিটি গেট U(θ,ϕ,λ)U(\theta,\phi,\lambda) হিসাবে নির্দিষ্ট করা যেতে পারে, তবে এটি একটি সার্কিট ডায়াগ্রামে দেখা অস্বাভাবিক, সম্ভবত এটি পড়ার অসুবিধার কারণে।

উদাহরণ হিসেবে, আমরা U-গেটের কিছু নির্দিষ্ট ক্ষেত্রে দেখি যেখানে এটি যথাক্রমে H-গেট এবং P-গেটের সমতুল্য।

U(π2,0,π)=12[1amp;1 1amp;1]=Hamp;amp;U(0,0,λ)=[1amp;0 0amp;eiλ ]=P\begin{aligned} U(\tfrac{\pi}{2}, 0, \pi) = \tfrac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \ 1 & -1 \end{bmatrix} = H & \quad & U(0, 0, \lambda) = \begin{bmatrix} 1 & 0 \ 0 & e^{i\lambda}\ \end{bmatrix} = P \end{aligned}
# Let's have U-gate transform a |0> to |+> state qc = QuantumCircuit(1) qc.u(pi/2, 0, pi, 0) qc.draw()
Image in a Jupyter notebook
# Let's see the result qc.save_statevector() qobj = assemble(qc) state = sim.run(qobj).result().get_statevector() plot_bloch_multivector(state)
Image in a Jupyter notebook

এটি থেকে এটি স্পষ্ট হওয়া উচিত যে সম্ভাব্য ফটকের একটি অসীম সংখ্যক রয়েছে এবং এর মধ্যে R x এবং R y -গেটগুলিও রয়েছে, যদিও সেগুলি এখানে উল্লেখ করা হয়নি। এটি অবশ্যই উল্লেখ করা উচিত যে জেড-বেসিস সম্পর্কে বিশেষ কিছু নেই, এটিকে স্ট্যান্ডার্ড কম্পিউটেশনাল ভিত্তিতে নির্বাচিত করা হয়েছে। কিস্কিট S এবং Sdg-গেটের X সমতুল্য যেমন SX-গেট এবং SXdg-গেট যথাক্রমে প্রদান করে। এই গেটগুলি ব্লক গোলকের চারপাশে X-অক্ষের সাপেক্ষে এক চতুর্থাংশ বাঁক করে এবং R x- গেটের একটি বিশেষ ক্ষেত্রে।

বাস্তব IBM কোয়ান্টাম হার্ডওয়্যারে চালানোর আগে, সমস্ত একক-কুবিট অপারেশন II , XX, SXSX এবং RzR_{z} এ কম্পাইল করা হয়। এই কারণে তাদের মাঝে মাঝে শারীরিক দরজা বলা হয়।

8. অতিরিক্ত সম্পদ

আপনি কিছু সাধারণ কোয়ান্টাম গেট এবং তাদের বৈশিষ্ট্য সহ একটি সম্প্রদায়ের তৈরি চিট-শীট খুঁজে পেতে পারেন এখানে

import qiskit.tools.jupyter %qiskit_version_table