IBM'in "derleyicisi" kimlik devremizi hiçbir şeye dönüştürür mü?

Aug 17 2020

Aşağıdaki kapıyla bir devre oluşturacak olsaydım:

$$\tag{1}R_\phi = \begin{bmatrix} 1 & 0 \\ 0 & e^{i \phi} \end{bmatrix},$$

ile $\phi$0'a eşit olduğu belirtilirse, çalıştırdığım kapı sadece kimlik kapısıdır ve devre kübitlere hiçbir şey yapmaz. IBM donanımı, bazı parametreleri 0'a olabildiğince yakın olarak ayarlanmış olarak gerçekten bazı kapıları "çalıştırır mı"? Ya da IBM'in derleyicileri, hiçbir şeyin yapılmaması gerektiğini ve hiçbir geçidi "uygulamayacağını" fark edecekler mi?

İki durum ideal olarak eşdeğer olsa da, pratikte "hiçbir şeyin" yapılmadığı durum, hataya daha az duyarlı olacaktır ve bu da gözlemlediğimiz sonuçlarda önemli bir fark yaratabilir.

Aynı şekilde, iki koyarsak $X$ IBM donanımında çalıştırılacak bir devrede yan yana kapılar varsa, IBM'in derleyicileri, devrenin yalnızca kimlik devresi olduğunu fark edecek ve birbirini iptal eden iki kapı uygulamak yerine hiçbir şey yapmamaya karar verecekler mi?

IBM'in yazılımı ve sabit yazılımı, bunun gibi devreleri ne ölçüde "derliyor"?

Yanıtlar

9 AliJavadi Aug 17 2020 at 10:56

Herhangi bir derleme / devre optimizasyonu Qiskit tarafından şeffaf bir şekilde gerçekleşir. Bir kullanıcı olarak, optimization_leveliletilen argüman aracılığıyla ne olacağı üzerinde kontrole sahip olursunuz transpile(). Optimizasyon seviyesini yüksek ayarlamak (örneğin seviye 3) daha fazla devre optimizasyonu yapacak ve düşük seviyeye ayarlamak çok az optimizasyon yapacak veya hiç yapmayacaktır (örn. Seviye 0). Sağladığınız iki örnek basittir. Optimizasyon seviyesi 3'te optimize edilecekler ve optimizasyon seviyesi 0'da yalnız bırakılacaklar.