Universalitas gerbang Toffoli

20

Mengenai gerbang Toffoli kuantum :

  1. apakah itu klasik dan universal, dan jika demikian, mengapa?
  2. itu quantumly universal, dan mengapa?
Ran G.
sumber
Dalam logika non-kuantum, Anda menunjukkan bahwa seperangkat operator boolean lain yang dikenal universal dapat disimulasikan oleh set di tangan. Saya tidak tahu apakah itu sama di dunia kuantum, tetapi saya akan berpikir begitu.
Raphael
8
Dalam logika kuantum, gerbang Toffoli tidak universal, karena Anda hanya dapat melakukan perhitungan klasik dengannya. Anda juga memerlukan beberapa gerbang kuantum yang, jika input dalam status basis, menempatkan output ke dalam superposisi status basis.
Peter Shor
Saya menyadari pertanyaannya mungkin membingungkan, mungkin harus diedit untuk menanyakan perbedaan antara universalitas dalam dunia kuantum / klasik.
Ran G.
Saya mengedit jawaban saya untuk membahas kasus kuantum. Apa yang Anda pikirkan sekarang?
Victor Stafusa
1
@RANG. Kami seharusnya menunjukkan jalan untuk pertanyaan di masa depan, pertanyaan ini ditandai pekerjaan rumah, namun tampaknya Anda tidak menjelaskan mengapa Anda tidak bisa menyelesaikannya sendiri (dan di mana letak masalahnya). Saya pikir ini bukan pertanyaan yang bagus untuk versi beta pribadi (lihat diskusi meta ). Saya memilih untuk menutup pertanyaan ini.
Gopi

Jawaban:

13

Toffoli bersifat universal untuk komputasi klasik (seperti yang ditunjukkan oleh @Victor). Namun, Toffoli TIDAK universal untuk perhitungan kuantum (kecuali kita memiliki sesuatu yang gila seperti ).P=BQP

Agar universal untuk perhitungan kuantum (di bawah definisi biasa), grup yang dihasilkan oleh gerbang Anda harus padat di unitari. Dengan kata lain, diberi sewenang-wenang dan sasaran kesatuan U ada beberapa cara untuk menerapkan jumlah terbatas Anda gerbang kuantum untuk mendapatkan kesatuan U ' sehingga | | U - U | | < ϵ .ϵUU||UU||<ϵ

Toffoli dengan sendirinya jelas tidak universal dalam definisi ini karena selalu mengambil negara dasar ke negara dasar, dan dengan demikian tidak dapat mengimplementasikan sesuatu yang mengambil misalnya. Dengan kata lain, itu tidak dapat membuat superposisi.|012(|0+|1)

Artem Kaznatcheev
sumber
10

Dari artikel wikipedia yang Anda kutip :

Gerbang Toffoli bersifat universal; ini berarti bahwa untuk setiap fungsi boolean f (x1, x2, ..., xm), ada sirkuit yang terdiri dari gerbang Toffoli yang mengambil x1, x2, ..., xm dan beberapa bit tambahan diatur ke 0 atau 1 dan output x1, x2, ..., xm, f (x1, x2, ..., xm), dan beberapa bit tambahan (disebut sampah). Pada dasarnya, ini berarti bahwa seseorang dapat menggunakan gerbang Toffoli untuk membangun sistem yang akan melakukan perhitungan fungsi boolean yang diinginkan dengan cara yang dapat dibalik.

Yang berarti secara sederhana bahwa fungsi boolean apa pun dapat dibangun hanya dengan gerbang Toffoli.

Fungsi Boolean biasanya dibangun dari gerbang OR, AND dan NOT, yang dapat digabungkan untuk membentuk fungsi boolean apa pun. Secara luas diketahui bahwa hal yang sama hanya mungkin dilakukan dengan gerbang NOR atau hanya dengan gerbang NAND.

Gerbang Toffoli dapat diringkas sebagai:

Toffoli(a,b,c)={(a,b,¬c)when a=b=1(a,b,c)otherwise.

Karena output pertama dan kedua selalu sama dengan input pertama dan kedua, kami dapat mempertimbangkannya. Jadi kita punya:

Toffoli(a,b,c)={¬cwhen a=b=1cotherwise.

Dengan itu, dimungkinkan untuk mendefinisikan gerbang NAND sebagai:

NAND(a,b)=Toffoli(a,b,1)

Karena gerbang NAND bersifat universal dan gerbang NAND dapat didefinisikan sebagai gerbang Toffoli, maka gerbang TANDING bersifat universal.

Ada cara lain untuk membuktikan bahwa Toffoli bersifat universal, dengan membangun langsung gerbang AND dan NOT:

NOT(x)=Toffoli(1,1,x)

AND(a,b)=Toffoli(a,b,0)

Kemudian, kita dapat membangun gerbang OR menggunakan hukum De Morgan :

OR(a,b)=NOT(AND(NOT(a),NOT(b))=Toffoli(1,1,Toffoli(Toffoli(1,1,a),Toffoli(1,1,b),0))


EDIT, karena pertanyaannya diedit dan cakupannya berubah:

Pertama, saya tidak mengerti komputasi kuantitatif, jadi jika ada yang salah, silakan tambahkan komentar. Saya melakukan sedikit riset untuk mencoba membuat jawaban ini lengkap dan diakhiri dengan ini:

Gerbang Toffoli dapat dibalik (tetapi Toffoli yang digunakan di atas tidak). Ini berarti bahwa perhitungan yang dilakukan dengan itu dapat dibatalkan. Ini adalah:

(a,b,c)=Toffoli(Toffoli(a,b,c))

Yang berarti bahwa untuk setiap tripel (a, b, c) jika Toffoli diterapkan dua kali, input asli didapat sebagai output.

Reversibilitas penting karena gerbang kuantum harus dapat dibalik, sehingga gerbang Toffoli (klasik) dapat digunakan sebagai gerbang kuantum karena hal ini.

Seperti yang diperlihatkan di sini , gerbang Deutsch didefinisikan dengan cara yang sama dengan gerbang Toffoli, tetapi bukannya gerbang klasik, itu adalah gerbang yang kuantitatif:

Deutsch(a,b,c)=|a,b,c{icos(θ)|a,b,c+sin(θ)|a,b,1cfor a=b=1|a,b,cotherwise.

Dengan cara ini, gerbang Toffoli adalah kasus khusus dari gerbang Deutsch di mana:

Toffoli(a,b,c)=Deutsch(π2)(a,b,c)

π2

Satu set Tgate kuantum universal dapat diperoleh, jika kita menggabungkan gerbang Toffoli dengan gerbang Hadamard. Inilah yang dilakukan gerbang Deutsch.

Referensi yang menarik dapat ditemukan di sini , di sini dan di sini . Referensi yang mungkin berharga, yang menunjukkan dasar-dasar transformasi Deutsch harus ada di sini , namun tautannya dilindungi kata sandi.

Victor Stafusa
sumber
Toffolli tidak universal untuk perhitungan kuantum, CNOT juga tidak sendiri. Ini mudah dilihat karena mereka tidak dapat membuat superposisi.
Artem Kaznatcheev
{}
Referensi Anda di EDIT 2 salah. Artikel itu dengan jelas menyatakan bahwa Toffoli + Hadamard bersifat universal, bukan Toffoli dengan sendirinya
Artem Kaznatcheev
@ ArtemKaznatcheev: Artikel itu mengatakan "Toffoli dan Hadamard". Kemudian saya berpikir bahwa ini berarti "Toffoli adalah contoh dan Hadamart adalah contoh lain". Bagaimanapun jelas sekarang.
Victor Stafusa
Saya mengeditnya, harus baik-baik saja sekarang.
Victor Stafusa