Feynman adalah perangkat untuk analisis rangkaian kuantum dalam model integral jalur mekanika kuantum. Toolkit ini terdiri dari metode sintesis, optimasi dan verifikasi berdasarkan representasi tindakan rangkaian sebagai penjumlahan jalur.
Ada dua cara untuk berinteraksi dengan proyek Feynman. Alat mandiri yang dibangun di Feynman, ditemukan di alat, menyediakan antarmuka baris perintah untuk mengoptimalkan dan/atau memverifikasi sirkuit kuantum, atau perpustakaan Feynman dapat diimpor dan digunakan langsung di proyek Haskell lainnya.
Proyek Feynman membutuhkan GHC >=8.0.2 dan Cabal >=1.24.0. GHC versi lama mungkin berfungsi tetapi belum diuji.
Pustaka Feynman dan biner yang dapat dieksekusi untuk optimasi ( feynopt
) dan verifikasi ( feynver
) dapat diinstal secara global dengan
cabal install
atau melalui serangkaian perintah yang lebih detail
cabal configure
cabal build
cabal install
Ketergantungan adalah masalah umum di Haskell, jadi versi Cabal sebelumnya memiliki opsi untuk secara eksplisit membuat kotak pasir lokal di mana dependensi paket akan diinstal tanpa menimbulkan masalah bagi paket lain. Untuk menginstal dependensi Feynman di sandbox, sebelum membangun atau menginstal Feynman dijalankan terlebih dahulu
# Cabal 1 & 2
cabal sandbox init
cabal install --only-dependencies
# Cabal 3
cabal v1-sandbox init
cabal install --only-dependencies
Secara default, Cabal menginstal binari di ~/cabal/bin/
untuk build unix. Untuk menentukan folder lain, instal dengan
cabal install --installdir=DIR
Feynman saat ini memiliki frontend untuk openQASM dan .qc. Contoh keduanya dapat ditemukan di folder benchmarks.
Untuk menjalankan feynopt
pengoptimal Feynman pada file .qc atau openQASM, jalankan perintah
feynopt <filename>.(qc | qasm)
feynopt
secara otomatis mengenali ekstensi .qc dan .qasm masing-masing sebagai file .qc dan openQASM.
Untuk daftar semua pengoptimalan dan transformasi yang tersedia, gunakan perintah
feynopt -h
Alat biner feynver
memungkinkan pemeriksaan kesetaraan file sirkuit terpisah. Penggunaan standar adalah
feynver <filename1>.qc <filename2>.qc
Rangkaian masukan harus menyetujui nama masukan utama (yaitu qubit yang tidak diinisialisasi), namun mungkin menggunakan tambahan yang berbeda.
Catatan: feynver
saat ini hanya mendukung frontend .qc
Repositori Feynman dilengkapi dengan serangkaian benchmark sirkuit kuantum, yang dapat ditemukan di folder benchmarks
. Untuk informasi lebih lanjut mengenai tolok ukur pengguna diarahkan ke Metode Formal dalam Desain Sirkuit Kuantum.
Paket benchmark juga menyertakan contoh sirkuit openQASM, yang diambil dari repositori github openQASM.
Feynman adalah kumpulan algoritma dan teknik yang mencakup sejumlah makalah. Jika Anda ingin mengutip dalam makalah akademis, makalah yang relevan tercantum di bawah ini.
Matius Amy