Qiskit ile Basit Bir Kuantum Devresi Oluşturma ve Simüle Etme

nt

Emekli
Katılım
21 Nisan 2023
Mesajlar
1,215
Selam! dünyalı biz dostuz,

kuantum bilgisayarlarda kullanılan algoritmalar hakkında

Qiskit, IBM tarafından geliştirilen bir açık kaynaklı kuantum bilgisayar yazılım geliştirme çerçevesidir ve Python dilini kullanır.

udemyde 1.5 dan aşağı değildir

bizde para geçmez gardaş. :)
çök anlatıyorum çök çök

Bu kısa rehberde, Qiskit kullanarak basit bir kuantum devresi oluşturmayı ve simüle etmeyi göstereceğim. Eğer kuantum bilgisayarlar ve Qiskit hakkında daha fazla bilgi edinmek istiyorsanız, bu adımları takip edebilirsiniz.

Anlattıklarım linux içindir işletim sisteminize göre komutları değiştirebilirsiniz ya da işletim sisteminizi değiştirin :D

Öncelikle, Qiskit'i yüklemek için terminal veya komut istemcisine şu komutu yazabilirsiniz:
Bash:
pip install qiskit

Şimdi Python dilinde bir metin düzenleyici kullanarak aşağıdaki gibi basit bir kuantum devresi oluşturalım ben vscode kullanıyorum IDE olarak eğer nasayı hacklemeye çalışmıyorsanız ya da kuantum yerine süper iletkenin kodları bilgisayarınızda yok ise sizde IDE kullanın yeni başlayanlar için kolaylıkları vardır

Python:
from qiskit import QuantumCircuit, Aer, transpile, assemble

devre = QuantumCircuit(1, 1)

devre.h(0)

devre.measure(0, 0)

simülatör = Aer.get_backend('aer_simulator')
derlenmiş_devre = transpile(devre, simülatör)
sonuç = simülatör.run(derlenmiş_devre).result()

sayılar = sonuç.get_counts(devre)
print("Ölçüm sonucu:", sayılar)

kodun çıktısı ben 8 kez run yaptıgım için 8 farklı cıktı var:
Bash:
Ölçüm sonucu: {'0': 512, '1': 512}
Ölçüm sonucu: {'1': 536, '0': 488}
Ölçüm sonucu: {'1': 525, '0': 499}
Ölçüm sonucu: {'0': 521, '1': 503}
Ölçüm sonucu: {'0': 517, '1': 507}
Ölçüm sonucu: {'0': 523, '1': 501}
Ölçüm sonucu: {'0': 533, '1': 491}
Ölçüm sonucu: {'0': 484, '1': 540}

Ekran Görüntüsü - 2023-12-01 15-14-54.png
 
Son düzenleme:
şimdi biraz daha karmaşık olanla devam edelim
Python:
from qiskit import QuantumCircuit, Aer, transpile, assemble

devre = QuantumCircuit(3, 3)

devre.h(0)

devre.cx(0, 1)

devre.cx(1, 2)

devre.measure([0, 1, 2], [0, 1, 2])

simülatör = Aer.get_backend('aer_simulator')
derlenmiş_devre = transpile(devre, simülatör)
sonuç = simülatör.run(derlenmiş_devre).result()

sayılar = sonuç.get_counts(devre)
print("Ölçüm sonucu:", sayılar)

Bash:
Ölçüm sonucu: {'000': 535, '111': 489}
Ölçüm sonucu: {'000': 518, '111': 506}
Ölçüm sonucu: {'111': 502, '000': 522}
Ölçüm sonucu: {'000': 536, '111': 488}
Ölçüm sonucu: {'111': 512, '000': 512}
Ölçüm sonucu: {'111': 515, '000': 509}
Ölçüm sonucu: {'000': 501, '111': 523}
Ekran Görüntüsü - 2023-12-01 15-28-04.png


Bu devrede, birinci kubite Hadamard kapısı uygulanır, ardından CNOT kapıları ile ikinci ve üçüncü kubitlere bağlantılar sağlanır. Sonrasında, tüm kubitler ölçülür. Bu devre, Bell durumunu ifade eder, ki bu kuantum bilişimde önemli bir kavramdır. Bu örnek, daha karmaşık bir kuantum devresinin nasıl oluşturulabileceğini gösterir.
 
Şimdi buda ne sırf kod var!

dediğinizi duyar gibiyim ozaman biraz görselleştirrme ekliyelim

Bash:
pip install matplotlib

Python:
from qiskit import QuantumCircuit, Aer, transpile, assemble
import matplotlib.pyplot as plt

devre = QuantumCircuit(2, 2)
devre.h(0)
devre.cx(0, 1)
devre.h(0)
devre.h(1)
devre.measure([0, 1], [0, 1])

simülatör = Aer.get_backend('aer_simulator')
derlenmiş_devre = transpile(devre, simülatör)
sonuç = simülatör.run(derlenmiş_devre).result()

counts = sonuç.get_counts(devre)

plt.bar(counts.keys(), counts.values())
plt.xlabel('State')
plt.ylabel('Counts')
plt.show()
Figure_1.png
Figure_2.png
Figure_3.png
 
şimdi bunu biraz daha karmaşa hakim olsun bunlar çok basit ne bu dalgamı geçiyosun diyenler için :

üç kubit üzerinde Hadamard kapısı ve Toffoli kapısı kullanarak bir Bell durumu oluşturuyoruz. Sonra, ölçümleri yaparak elde edilen durumların frekanslarını bir grafikte gösteriyoruz.

Python:
from qiskit import QuantumCircuit, Aer, transpile, assemble
import matplotlib.pyplot as plt

devre = QuantumCircuit(3, 3)
devre.h(range(3))
devre.ccx(0, 1, 2)
devre.measure(range(3), range(3))

simülatör = Aer.get_backend('aer_simulator')
derlenmiş_devre = transpile(devre, simülatör)
sonuç = simülatör.run(derlenmiş_devre).result()

counts = sonuç.get_counts(devre)
plt.bar(counts.keys(), counts.values())
plt.xlabel('State')
plt.ylabel('Counts')
plt.show()



Figure_1.png
Figure_2.png
Figure_3.png
 
daha fazla ilgili iseniz IBM in kuantum oyun alanına bakabilirsiniz
Kuantum Oyun Alanı IBM tarafından tasarlanmıştır

 
Son düzenleme:

Forum istatistikleri

Konular
5,841
Mesajlar
99,644
Üyeler
2,480
Son üye
mozcelikors

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top