notasi Dirac adalah cara yang ringkas dan kuat untuk menggambarkan status dan operasi kuantum. Nama ini dinamai sesuai dengan fisikawan Paul Dirac, yang mengembangkan notasi pada 1930-an. Notasi dirac digunakan dalam komputasi kuantum untuk menggambarkan status kuantum, operasi kuantum, dan pengukuran kuantum.
Artikel ini memperkenalkan Anda ke notasi Dirac dan menunjukkan kepada Anda cara menggunakannya untuk menjelaskan status dan operasi kuantum.
Vektor dalam notasi Dirac
Ada dua jenis vektor dalam notasi Dirac: vektor bra , sesuai dengan vektor baris, dan vektor ket , sesuai dengan vektor kolom.
Jika adalah vektor kolom, maka Anda dapat menulisnya dalam notasi Dirac sebagai , di mana\cdot menunjukkan bahwa itu adalah vektor ket.
Demikian pula, vektor baris dinyatakan sebagai , yang merupakan vektor bra . Dengan kata lain, diperoleh dengan menerapkan konjugasi kompleks entry-wise ke elemen transpose . Notasi bra-ket secara langsung menyiratkan bahwa adalah produk dalam vektor dengan dirinya sendiri, yang menurut definisi .
Lebih umumnya, jika dan merupakan vektor status kuantum, maka produk dalamnya adalah . Produk skalar ini menyiratkan bahwa probabilitas bahwa hasil pengukuran status adalah adalah .
Dasar komputasi menyatakan dan diwakili sebagai $=\ket{{0}=\ket{1}$, masing-masing.
Contoh: Mewakili operasi Hadamard dengan notasi Dirac
Mari kita terapkan gerbang Hadamard ke status kuantum dan menggunakan notasi Dirac:
$$
\frac{1}{\sqrt{2}}=H\ket{{0}=\ket{+}$$
$$
\frac{1}{\sqrt{2}}
=
\ket{
{1} 1 = -1 \ket{-}$$H
Status yang dihasilkan sesuai dengan vektor unit di arah dan pada bola Bloch. Status-status ini juga dapat diperluas menggunakan notasi Dirac sebagai jumlah dan :
$$
\ket{+}=\frac{{1}{\sqrt{2}}(\ket{0} + \ket{1}) $$
$$
\ket{-}
=
\frac{1}{\sqrt{
{2}}(\ket{0} - \ket{1}) $$
Setiap status kuantum selalu dapat dinyatakan sebagai jumlah vektor dasar komputasi dan jumlah tersebut mudah diekspresikan menggunakan notasi Dirac. Kebalikannya juga benar dalam kondisi dan juga membentuk dasar untuk kondisi kuantum. Anda dapat melihat dasar ini dari fakta bahwa
Sebagai contoh notasi Dirac, pertimbangkan braket yang merupakan produk dalam antara dan . Hal ini dapat ditulis sebagai
Contoh ini mengatakan bahwa $\ket{{0}\ket{{1}\braket{0 | 1}=\braket{1 | 0}=0.\braket{0 | 0}=\braket{1 | 1}=1$, yang berarti bahwa kedua vektor dasar komputasi juga dapat disebut orthonormal.
Properti orthonormal ini digunakan dalam contoh berikut. Jika Anda memiliki status $\ket{\psi}={\frac{3}{5}}\ket{{1}+{\frac{{4}{5}}\ket{0}\braket{1 | 0}=01 adalah$
$$
\big|\braket{1 |\psi}\big|^2=\left|\frac{{3}{5}\braket{1 | 1} +\frac{{4}{5}\braket{1 | 0}\right|^2=\frac{{9}{{25}.
$$
Notasi Dirac berguna untuk mengekspresikan produk tensor. Produk tensor penting dalam komputasi kuantum karena vektor keadaan yang menggambarkan dua register kuantum yang tidak berhubungan adalah produk tensor dari dua vektor keadaan.
Produk tensor untuk dua vektor status kuantum dan ditulis dalam notasi Dirac sebagai . Berdasarkan konvensi, Anda juga dapat menulis produk tensor sebagai .
Misalnya, status dengan dua qubit yang diinisialisasi ke status nol adalah $\ket{{0}\otimes\ket{0}=\ket{0}\ket{0}=\ket{00}$.
Contoh: Jelaskan superposisi dengan notasi Dirac
Sebagai contoh lain tentang bagaimana Anda dapat menggunakan notasi Dirac untuk menggambarkan status kuantum, pertimbangkan cara-cara yang setara berikut untuk menulis status kuantum yang merupakan superposisi yang sama atas setiap string bit panjang
Di sini Anda mungkin bertanya-tanya mengapa jumlahnya berkisar dari hingga untuk bit. Pertama, ada konfigurasi berbeda yang dapat diambil oleh bit. Anda dapat melihat konfigurasi ini dengan mencatat bahwa satu bit dapat memiliki nilai tetapi dua bit dapat memiliki nilai, dan sebagainya. Secara umum, ini berarti bahwa ada kemungkinan string bit yang berbeda tetapi nilai terbesar yang dikodekan dalam salah satunya dan karenanya merupakan batas atas untuk jumlah.
Selain itu, dalam contoh ini Anda tidak menggunakan dalam analogi dengan $\ket{{0}^{\otimes n}=\ket{{0}$. Konvensi notasi ini dicadangkan untuk status dasar komputasi dengan setiap kubit diinisialisasi menjadi nol.
Ekspresikan linearitas dengan notasi Dirac
Fitur lain dari notasi Dirac adalah fakta bahwa itu linier. Misalnya, untuk dua angka kompleks dan , Anda dapat menulis
Anda dapat mendistribusikan notasi produk tensor dalam notasi Dirac sehingga mengambil produk tensor antara vektor status akhirnya terlihat seperti perkalian biasa.
Vektor bra mengikuti konvensi yang mirip dengan vektor ket. Misalnya, vektor setara dengan vektor status. Jika vektor ket adalah , maka versi vektor bra adalah $\bra{\psi}=\ket{\psi}^\dagger= (\bra{{0}\alpha^* +\bra{1}\beta^*).$
Sebagai contoh, bayangkan Bahwa Anda ingin menghitung probabilitas mengukur status $\ket{\psi}=\frac{3}{5}\ket{{1}+ \frac{4}{5}\ket{0}\ket{+}\ket{{-}\ket{-}$
$$|\braket{- |\psi}|^2=\left|\frac{{1}{\sqrt{{2}}(\bra{0} - \bra{{1})(\frac{3}{5}\ket{{1} + \frac{{4}{5}\ket{0}) \right|^2=\left|-\frac{3}{5\sqrt{{2}} + \frac{{4}{5\sqrt{2}}\right|^2=\frac{{1}{{50}.$$
Fakta bahwa tanda negatif muncul dalam perhitungan probabilitas adalah manifestasi dari interferensi kuantum, yang merupakan salah satu mekanisme di mana komputasi kuantum memperoleh keuntungan dibandingkan komputasi klasik.
Item terakhir yang layak dibahas dalam notasi Dirac adalah ketbra atau produk luar. Produk luar diwakili dalam notasi Dirac sebagai . Produk luar didefinisikan melalui perkalian matriks sebagai untuk vektor kondisi kuantum dan . Contoh paling sederhana, dan bisa dibilang paling umum dari notasi ini, adalah
$$
\ket{0}
\bra{
{0}
=
=\qquad\ket{1}\bra{1}==.
$$
Ketbras sering disebut proyektor karena mereka memproyeksikan kondisi kuantum ke nilai tetap. Karena operasi ini bukan uniter (dan bahkan tidak mempertahankan norma vektor), komputer kuantum tidak dapat menerapkan proyektor secara deterministik. Namun proyektor melakukan pekerjaan yang indah untuk menggambarkan tindakan pengukuran pada kondisi kuantum. Misalnya, jika Anda mengukur status , maka transformasi yang dihasilkan yang dialami status sebagai akibat dari pengukuran adalah
$$\ket{\psi}
\rightarrow \frac{(\ket{{0}\bra{{0})\ket{\psi}}{|\braket{0 |\psi}|}=\ket{{0},$$
seperti yang Anda harapkan jika Anda mengukur keadaan dan mendapati hasilnya adalah . Untuk menegaskan kembali, proyektor tersebut tidak dapat diterapkan pada keadaan dalam komputer kuantum secara deterministik. Sebaliknya, mereka dapat diterapkan paling baik secara acak dengan hasil muncul dengan beberapa probabilitas tetap. Probabilitas keberhasilan pengukuran semacam itu dapat ditulis sebagai nilai harapan proyektor kuantum dalam kondisi
yang menggambarkan bahwa proyektor memberikan cara baru untuk mengekspresikan proses pengukuran.
Jika sebaliknya Anda mempertimbangkan untuk mengukur kubit pertama dari status multi-kubit menjadi , maka Anda juga dapat menggambarkan proses ini dengan mudah menggunakan proyektor dan notasi Dirac:
$$P(\text{qubit = pertama 1})=\bra{\psi}\left(\ket{{1}\bra{{1}\otimes \mathbf{\mathbf{1}^{\otimes n-1}\right) . \ket{\psi}
$$
Di sini matriks identitas dapat dengan mudah ditulis dalam notasi Dirac sebagai
$$
\mathbb{I}=\ket{{0}\bra{0}+\ket{{1}\bra{1}=.
$$
Untuk kasus di mana ada dua qubit, proyektor dapat diperluas sebagai
$$
\ket{1}
\bra{1}
\otimes
\mathbb{I}=\ket{{1}\bra{1}\otimes (\ket{0}\bra{0}+\ket{1}\bra{{1})=\ket{10}\bra{{10} + . \ket{{11}\bra{{11}
$$
dan Anda dapat melihat bahwa proyektor ini konsisten dengan diskusi tentang kemungkinan pengukuran untuk status multiqubit menggunakan notasi vektor kolom:
$$ P(\text{qubit pertama = 1})=\psi^\dagger (e_{10}e_{10}^\dagger + e_{{11}e_{{11}^\dagger)\psi=|e_{{10}^\dagger\psi|^2 + |e_{11}^\dagger\psi|^2, $$
yang cocok dengan diskusi pengukuran multi-qubit. Generalisasi hasil ini untuk kasus multi-qubit, bagaimanapun, sedikit lebih mudah diekspresikan dengan notasi Dirac dibandingkan dengan notasi vektor-kolom, dan sepenuhnya setara dengan pendekatan sebelumnya.
Operator lain yang berguna untuk mengekspresikan menggunakan notasi Dirac adalah operator kepadatan, kadang-kadang juga dikenal sebagai status operator. Sebagai vektor kondisi kuantum, operator kepadatan menggambarkan kondisi kuantum suatu sistem. Sementara vektor status kuantum hanya dapat mewakili status murni, operator kepadatan juga dapat mewakili status campuran.
Secara umum, matriks yang diberikan adalah operator kepadatan yang valid jika kondisi berikut terpenuhi:
-
adalah matriks bilangan kompleks
-
(yaitu, merupakan Hermitian)
- Setiap eigenvalue dari adalah non-negatif
- Semua nilai eigen \ dijumlahkan ke 1
Bersama-sama, kondisi ini menjamin bahwa dapat dianggap sebagai ansambel. Operator kepadatan untuk vektor kondisi kuantum mengambil bentuk adalah dekomposisi eigenvalue dari , kemudian menggambarkan ansambel .
Keadaan kuantum murni ditandai oleh vektor ket tunggal atau fungsi gelombang, dan tidak dapat ditulis sebagai campuran statistik, atau kombinasi cembung, dari keadaan kuantum lainnya. Kondisi kuantum campuran adalah ansambel statistik dari kondisi-kondisi murni.
Bola Bloch mewakili keadaan murni oleh titik di permukaan bola, dan keadaan campuran oleh titik interior di bola. Pusat bola, berdasarkan simetri, mewakili keadaan campuran dari satu qubit. Kemurnian suatu keadaan dapat divisualisasikan sebagai derajat di mana itu dekat dengan permukaan bola.
Konsep ini mewakili status sebagai matriks, daripada vektor, seringkali nyaman karena memberikan cara yang nyaman untuk mewakili perhitungan probabilitas. Ini juga memungkinkan Anda untuk menggambarkan ketidakpastian statistik dan ketidakpastian kuantum dalam formalisme yang sama.
Operator kepadatan mewakili kondisi murni jika dan hanya jika:
-
dapat ditulis sebagai produk luar dari vektor kondisi,
-
-
Untuk mengetahui seberapa dekat operator adalah murni, Anda dapat melihat jejak - jumlah elemen diagonal - dari . Operator kepadatan mewakili kondisi murni jika dan hanya jika .
Q# urutan gerbang setara dengan kondisi kuantum
Poin terakhir yang perlu disampaikan tentang notasi kuantum dan Q# bahasa pemrograman: sebelumnya, artikel ini menyebutkan bahwa keadaan kuantum adalah objek dasar informasi dalam komputasi kuantum. Kemudian mungkin mengejutkan bahwa dalam Q# tidak ada gagasan tentang keadaan kuantum. Sebaliknya, Q# menjelaskan semua keadaan hanya melalui operasi yang digunakan dalam menyiapkannya. Contoh sebelumnya adalah ilustrasi yang sangat baik dari definisi ini. Daripada mengekspresikan superposisi seragam atas setiap string bit kuantum dalam register, Anda dapat mewakili hasilnya sebagai . Deskripsi status yang secara eksponensial jauh lebih pendek ini memiliki keuntungan bahwa Anda dapat secara klasik beralasan mengenainya. Ini juga secara ringkas mendefinisikan operasi yang perlu disebarluaskan melalui tumpukan perangkat lunak untuk mengimplementasikan algoritma. Untuk alasan ini, Q# dirancang untuk memancarkan urutan gerbang daripada kondisi kuantum; namun, pada tingkat teoritis kedua perspektif setara.