Kuantum hesaplamalar python ile hespalıyalım mı ?

  • Konuyu başlatan Konuyu başlatan nt
  • Başlama tarihi Başlama tarihi

nt

Emekli
Katılım
21 Nisan 2023
Mesajlar
1,221
Selam gerçekten uykusuz kalmama değecek bir konu buldum

Kuantum hesaplama ? :( (quantum computing)

kuantum mekaniğini temel alan bir hesaplama paradigmadır.
Geleneksel bilgisayarlar, bit adı verilen temel veri birimlerini kullanırken,
kuantum bilgisayarlar kuantum bit veya kısaca kubit adı verilen birimleri kullanır.

shor algoritması hakkında ders veremem ama size bu işlemi nasıl kolayca kullanabliriz onu göstericeğim

Shor algoritması :https://tr.wikipedia.org/wiki/Shor_algoritması

şimdi pythonla basit bir şekilde bu değerleri görecek hesapları yapalım
temel mantığını kullanarak belirli bir değeri çarpanlarına ayırmak için olası periyotları bulur
bunu nasıl anlarız kullanırız basit bir örnek veriyorum umarım işinize yarar
bir kaç algoritma baktım bunların basında shor ve grover geliyor

Kod:
import numpy as np
import pandas as pd
def shor_algorithm(N, a):
    x_values = np.arange(0, N)
    periodicity = np.mod(a ** x_values, N)
    period_df = pd.DataFrame({'x': x_values, 'a^x mod N': periodicity})
    periods = period_df.groupby('a^x mod N')['x'].apply(list)
    return periods
N = 32
a = 3
periods = shor_algorithm(N, a)
print("Possible Periods:")
print(periods)
kodumuz : shor_algorithm adında bir fonksiyon tanımlıyor. Bu fonksiyon, Shor algoritmasının temel mantığına uygun olarak belirli bir değeri çarpanlarına ayırmak için olası periyotları buluyor.
Kod:
a^x mod N
1      [0, 4, 8, 12]
4     [2, 6, 10, 14]
7      [1, 5, 9, 13]
13        [3, 7, 11]
(Burada bir döngü başlamamıştır,)

başka bir imkanımız qiskit algoritmaları kullanarak simüle edebiliriz kuantum işlemci yoksa varsa hayırlı işler :D

bu kütüphane sayesinde kuantum çekirdekleri kodlayabilirsiniz hemde benim bu mesajı yazmamdan daha kısa bir kod ile
QFT bunu tersine çerirme gibi bilimum hesabı yapar
ve bir çokk algoritmayı bir satırda kullanabilirsiniz
bunun için "pip install qiskti"
 
Son düzenleme:
Sizce forumda bir kuantum bilgisayar bulunuyor mu?
ben @Sercan abiden cıkar diye düşünüyorum :D

sıra groverde bunun wikide türkçesi olmamakla birlikte bu algoritmamız kuantum bilgisayarlar içindir
kuantum cekirdek programlama alanına özel bir örnek olarak düşünülebilir.

Veritabanındaki işaretli öğeleri bulmak için kullanılır.

grovere gelmeden bunun ana bileşeni olan iki algoritmadan bahsetmek istiyorum

orace devresi :
[imath]Uf∣x⟩=(−1)f(x)∣x⟩[/imath]
işaretli öğeleri tanımlayarak, bu öğelerin fazını tersine çevirir.
Grover algoritmasında, işaretli öğeleri bulmak için kullanılır ve amplitüd amplifikasyonu adımında etkilidir.

hadamar kapısı :https://en.wikipedia.org/wiki/Hadamard_transform
[imath]H = \frac{1}{\sqrt{2}} \left( \begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right)[/imath]
bir qubiti süperpozisyona sokar ve diğer qubitlere etkileşim ekler. Grover algoritmasında,
Hadamard kapıları süperpozisyon durumu oluşturmak ve amplitüd amplifikasyonunu gerçekleştirmek için kullanılır.

Diyelim ki bir kuantum bilgisayarı, bir veritabanında belirli bir öğeyi bulmaya çalışıyor. Amplitüd amplifikasyonu, bu bilgisayarın belirli bir öğeyi içeren durumu daha olası hale getirmesine yardımcı olur.
kuantum bilgisayarı arama yaparken, istediği sonuca daha hızlı ve etkili bir şekilde ulaşabilir.

Grover algoritması çekirdeğini kullanarak işaretli öğeleri bulan basit bir kuantum algoritması örneği kodlıyalım
Kod:
import numpy as np
import pandas as pd

def grover_algorithm(database):
    """
    Grover algoritması çekirdeği.
 
    Parameters:
        - database (pd.DataFrame): İşlem yapılacak veritabanı, 'Items' ve 'Marked' sütunlarına sahip.

    Returns:
        - pd.DataFrame: İşlem sonucunda belirlenen öğeler.
    """
    marked_items = database[database['Marked'] == True]
    return marked_items
items = ['000', '001', '010', '011', '100', '101', '110', '111']
marked_items = ['110']
database = pd.DataFrame({'Items': items, 'Marked': [item in marked_items for item in items]})
result = grover_algorithm(database)
print("\nGrover Algoritması:")
print("Grover algoritması, kuantum bilgisayarlar tarafından kullanılan bir arama algoritmasıdır.")
print("Veritabanındaki işaretli öğeleri bulmak için kullanılır.")
print("\nÖrnek Veritabanı:")
print(database)
print("\nİşaretli Öğelerin Aranması:")
print("Burada, '110' işaretli bir öğedir.")
print("\nGrover Algoritması Sonuçları:")
print("İşaretli Öğeler:")
print(result)

Kodun ana amacı grover algoritmasını kullanarak işaretli öğeleri bulmaktır.
grover_algorithm adlı bir fonksiyon tanımlanır bir veritabanını parametre olarak alır ve işlem sonucunda belirlenen öğeleri içeren bir DataFrame döndürür.

Kod:
~$ /grover1.py

Grover Algoritması:
Grover algoritması, kuantum bilgisayarlar tarafından kullanılan bir arama algoritmasıdır.
Veritabanındaki işaretli öğeleri bulmak için kullanılır.

Örnek Veritabanı:
  Items  Marked
0   000   False
1   001   False
2   010   False
3   011   False
4   100   False
5   101   False
6   110    True
7   111   False

İşaretli Öğelerin Aranması:
Burada, '110' işaretli bir öğedir.

Grover Algoritması Sonuçları:
İşaretli Öğeler:
  Items  Marked
6   110    True
 
Son düzenleme:

Forum istatistikleri

Konular
7,285
Mesajlar
123,140
Üyeler
2,939
Son üye
Cano

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top