Azure Quantum Servisi ile Kuantum Hesaplamaya Giriş
1980'li yıllarda, klasik bilgisayarların kuantum sistemlerini simüle etmedeki yetersizlikleri, bilim insanlarını yeni hesaplama yöntemleri…
Azure Quantum Servisi ile Kuantum Hesaplamaya Giriş
Resim 1. Kuantum Hesaplama
1980'li yıllarda, klasik bilgisayarların kuantum sistemlerini simüle etmedeki yetersizlikleri, bilim insanlarını yeni hesaplama yöntemleri aramaya yöneltti. Bu dönemde, Sovyet matematikçi Yuri Manin ve Amerikalı fizikçi Richard Feynman, kuantum fenomenlerine dayanan donanımların, kuantum sistemlerinin simülasyonu için geleneksel bilgisayarlardan daha verimli olabileceğini öne sürdüler. Manin, 1980 yılında yayımlanan “Computable and Uncomputable” adlı eserinde, kuantum davranışlarının klasik simülasyonlarla yeterince temsil edilemeyeceğini belirtti. Feynman ise 1981 yılında MIT’de düzenlenen “Physics of Computation” konferansında yaptığı konuşmada, doğanın “Klasik” yöntemler ve metotlarla açıklanamayacağını çünkü doğanın böyle çalışmadığını belirtmiştir. Eğer doğayı simüle etmek isteniyorsa kuantum mekaniğinden yararlanılması gerektiğini vurgulamıştır.
Bu fikirler, kuantum hesaplamanın temelini atmış ve kuantum bilgisayarların geliştirilmesine öncülük etmiştir. Kuantum bilgisayarlar, süperpozisyon ve dolanıklık gibi kuantum mekaniği prensiplerini kullanarak, klasik bilgisayarların çözmekte zorlandığı karmaşık problemleri çözme potansiyeline sahiptir. Bu yeni hesaplama paradigması, kriptografi, malzeme bilimi, tıp ve optimizasyon teorisi gibi birçok alanda devrim niteliğinde gelişmelere yol açma potansiyeline sahip olduğu öne sürülmektedir.
Bu makalede kuantum hesaplamaya ve temel kavramlarına giriş yapacağız. Ardından Azure Quantum servisi hakkında bilgi verecek, Q# programlama dilinin öne çıkan özelliklerine değineceğiz. Son olarak, Q# diliyle geliştirilmiş basit bir kuantum rastgele sayı üreteci örneğini ve bu örneğe ait açıklamaları paylaşacağız.
Resim 2. Kuantum Fenomenleri
Kuantum hesaplama teorisinden söz ederken, bazı temel kavramları ve anlamlarını bilmek son derece önemlidir. Yazımızda sıkça kullanacağımız temel kavramların tanımlarına, konunun daha iyi anlaşılabilmesi için bu bölümde tanımlara yer veriyoruz.
Kuantum Fenomenleri (Quantum Phenomenas): Kuantum fenomenleri atomik ve subatomik ölçeklerde meydana gelen ve klasik fizik yasalarıyla açıklanamayan olaylardır. Bu fenomenler kuantum mekaniği teorisi ile açıklanır ve makro dünyada gözlemlediğimiz sezgisel deneyimlerimizden oldukça farklıdır.
Kübit (Qubit): Klasik bilgisayarlarda kullanılan bilgi birimi olan bit yerine Kuantum bilgisayarlarda kübit bilgi birimi kullanılmaktadır. Klasik bitlerden farklı olarak, aynı anda hem 0 hem de 1 durumlarında bulunabilir.
Fiziksel Kübit (Physical Qubit): Gerçek fiziksel sistemlerde (örneğin, iyon tuzakları, süperiletken devreler) gerçekleştirilen kübitlerdir.
Mantıksal Kübit (Logical Qubit): Birden fazla fiziksel kübitin hata düzeltme kodlarıyla birleştirilmesiyle oluşturulan, daha kararlı kübitlerdir.
Ölçüm (Measurement): Bir kübitin durumunun gözlemlenerek kesin bir değere (0 veya 1) indirgenmesi işlemidir.
Süperpozisyon (Superposition): Bir kuantum parçacığının aynı anda birden fazla durumda bulunabilme özelliğidir. Bu özellik, kuantum bilgisayarların paralel hesaplamalar yapabilmesini sağlar.
Dalga-Parçacık İkililiği (Wave-Particle Duality): Kuantum nesnelerin hem dalga hem de parçacık özellikleri gösterebilmesi. Işık dalgaları parçacık (foton) gibi davranabilir, elektronlar gibi parçacıklar ise dalga özellikleri gösterebilir.
Kuantum Tünelleme (Quantum Tunneling): Klasik fizikte aşılamayacak bir enerji bariyerini, kuantum seviyesinde parçacıkların geçebilmesi fenomenine verilen isimdir.
Dolanıklık (Entanglement): İki veya daha fazla kuantum parçacığının durumlarının birbirine bağlı olması durumudur. Bir parçacığın durumu değiştiğinde, diğerinin durumu da anında değişir.
Heisenberg Belirsizlik İlkesi (Heisenberg Uncertainty Principle): Bir parçacığın konumu ve momentumu gibi belirli fiziksel özellik çiftlerinin aynı anda kesin olarak ölçülememesi.
Kuantum Kapıları (Quantum Gates): Kuantum kapısları, kuantum bilgisayarlarda bilgileri işlemek için kullanılan temel mantıksal operasyonları ifade etmektedir. Klasik bilgisayarlardaki mantık kapılarının (Logic Gates) “AND, OR, NOT” gibi kuantum versiyonları olarak düşünebiliriz.
Kuantum Devresi (Quantum Circuit): Kuantum devresi, kuantum hesaplama işlemlerini gerçekleştirmek için kuantum kapılarının belirli bir düzen içinde bir araya getirildiği yapıdır. Klasik bilgisayarlardaki elektronik devrelerin kuantum versiyonu olarak düşünebiliriz.
Topolojik Kübit (Topological Qubit): Kuantum bilgiyi, topolojik özellikler kullanarak daha kararlı bir şekilde saklayan kübit türüdür. Çevresel etkilere karşı daha dayanıklıdırlar.
Kuantum Hata Düzeltme (Quantum Error Correction): Kuantum sistemlerde oluşabilecek hataları tespit edip düzeltmek için kullanılan yöntemlerdir. Bu sayede kuantum bilgisayarların güvenilirliği artırılır.
Kuantum Üstünlüğü (Quantum Supremacy): Bir kuantum bilgisayarın, belirli bir problemi klasik bilgisayarların pratikte çözmesinin mümkün olmadığı bir sürede çözebilme yeteneğidir.
Kuantum Hacmi (Quantum Volume): Bir kuantum bilgisayarın genel performansını ölçen bir metriktir. Kübit sayısı, hata oranı ve bağlantı gibi faktörleri dikkate alır.
Kuantum Anahtarlama (Quantum Annealing): Optimizasyon problemlerini çözmek için kullanılan bir kuantum hesaplama yöntemidir. Sistemi yavaşça en düşük enerji durumuna getirerek çözüm bulunur.
Resim 3. Azure Quantum Servisi
Azure Quantum, Microsoft’un bulutta sunduğu entegre kuantum bilişim ekosistemidir. Bu platform, kuantum programlama ve kuantum çözümleri geliştirmeyi kolaylaştırmak için tasarlanmıştır. Platform; önde gelen sağlayıcılardan kuantum donanımları, yazılımlar ve hizmetler sunar. Gerçek kuantum donanımı üzerinde program çalıştırma, algoritmaları simüle etmek gibi işlemleri gerçekleştirme imkânı sunmaktadır.
Azure Quantum’un sunmuş olduğu en önemli yetkinliklerden birisi de Hibrit Kuantum Hesaplama(Hybrid Quantum Computing) hizmetidir. Hibrit kuantum hesaplama, klasik bilgisayarlarla kuantum bilgisayarların birlikte çalışarak problemleri çözmesini sağlayan bir mimari ve yaklaşımı ifade eder. Azure Quantum’un sunduğu yeni nesil hibrit mimari ile klasik ve kuantum talimatları aynı program içerisinde bir araya getirilebilir. Bu yaklaşım, yalnızca kuantum hesaplama gücünden faydalanmakla kalmaz, aynı zamanda mevcut klasik altyapılardan da en verimli şekilde yararlanmayı mümkün kılar.
Ayrıca Azure Quantum ile birlikte kullanmaya başlayacağımız en kritik hizmetlerden biri de Kaynak Tahmincisidir(Resource Estimator). Kuantum programlarının ne kadar kaynak tüketeceğini önceden bilmek, hem geliştirme sürecini optimize etmek hem de farklı donanım seçeneklerini değerlendirmek açısından büyük önem taşımaktadır. Azure Quantum Kaynak Tahmincisi hizmeti yardımıyla, aşağıdaki sorulara yanıt bulmanız oldukça hızlı ve kolay hale gelmektedir.
- Bu algoritma kaç qubit’e ihtiyaç duyuyor?
- Hangi hata düzeltme protokolü tercih edilmeli?
- Farklı kuantum donanım teknolojileri arasında ne gibi kaynak farkları var?
Kaynak Tahmincisi, qubit özellikleri, hata düzeltme kodları, hata bütçesi gibi parametreleri girdi olarak alıp ardından ölçeklenebilir kuantum sistemler için fiziki kaynak ihtiyaçlarını hesaplayabilememizi sağlar.
Doğa, atom altı seviyede kuantum kurallarıyla işler. Kimyasal reaksiyonlar, protein katlanmaları veya malzeme oluşumları gibi süreçler, kuantum etkilerin merkezinde yer alır. Azure Quantum Elements, bu doğrudan kuantum mekaniksel etkileşimleri simüle edebilmek için özel olarak tasarlanmıştır. Kuantum simülasyonu, doğayı anlamanın ve yeni moleküler yapılar geliştirmenin kapısını aralar. Fotosentezden süper iletkenliğe kadar birçok doğal süreç, artık kuantum bilgisayarlarla modellenebilmektedir.
Kuantum Hızlanması (Quantum Speedup) sayesinde kuantum bilgisayarlar, çok büyük olasılık kombinasyonları gerektiren problemleri klasik bilgisayarlardan çok daha hızlı çözebilir. Bu duruma önemli bir örnek olarak, Grover’ın Arama Algoritması (Search Algorithm) verilebilir. Bu algoritma sayesinde:
- Yapılandırılmamış veri kümesinde arama işlemleri hızlanır
- “Evet ya da hayır” şeklinde cevaplanabilen problemlerde kuantum avantajı elde edilir
- Klasik algoritmalara göre polinomsal bir hızlanma sağlanır
Azure Quantum platformu, dünyanın önde gelen kuantum donanım sağlayıcılarını tek bir çatı altında birleştirerek kullanıcılara geniş bir test ve geliştirme yelpazesi sunar. Aşağıda listesi verilmiş sağlayıcılar arasından seçim yapılarak Kuantum yazılımlarını geliştirme işlemlerine hızlı şekilde başlanabilmektedir.
- IONQ
- PASQAL
- Quantinuum
- Rigetti
Resim 4. Q# Programlama Dili
Q#, Microsoft tarafından geliştirilen ve kuantum programları yazmak için tasarlanmış açık kaynaklı bir kuantum programlama dilidir. Bu dil, kuantum algoritmalarını yazmayı kolaylaştırırken, aynı zamanda klasik bilgisayarlarla kuantum sistemleri arasında köprü kurar.
Bir Q# programı, çağrıldığında kuantum sistemlerle etkileşime girerek belirli hesaplamaları gerçekleştiren klasik alt rutinlerin bir koleksiyonu gibi çalışır. Q# ile yazılan kodlar, doğrudan kuantum durumlarını modellemez. Bunun yerine, klasik bir bilgisayarın kübitlerle nasıl iletişim kuracağını tanımlar. Bu yaklaşım, geliştiricilere donanım bağımsız (agnostik) bir geliştirme deneyimi sunar; yani yazdığınız program, farklı kuantum donanımlarında farklı şekillerde çalışabilir.
Q#, yüksek seviyeli soyutlamalar sunan bağımsız bir dildir. Kuantum devrelerini veya kuantum durumlarını doğrudan modellemek yerine, klasik dillerde olduğu gibi ifadeler (expressions) ve deyimler (statements) ile çalışılır. Bu da hem klasik hem de kuantum bileşenlerin bir arada kullanılabildiği güçlü ve esnek bir programlama deneyimi sağlar.
Q#, diğer programlama dillerinden bazı önemli farklılıklara sahiptir:
- Donanım Soyutlaması: Q# programcıları, altta yatan donanımın detaylarını bilmek zorunda kalmadan kuantum algoritmaları geliştirebilir. Bu, farklı kuantum bilgisayar mimarileri arasında taşınabilirlik sağlar.
- Kuantum-Klasik Hibrit İşlemler: Q#, kuantum ve klasik hesaplamaları sorunsuz bir şekilde birleştirir. Klasik kontrol yapıları (if, for, while vb.) ve veri tipleri (int, double, array vb.) içerir, ancak bunları kuantum işlemleriyle entegre edecek mekanizmalar da sunar.
- Simülasyon Yetenekleri: Q# kodları, gerçek kuantum donanımı olmadan da klasik bilgisayarlarda çalıştırılabilen simülatörlerle test edilebilir. Bu, algoritmaları gerçek kuantum bilgisayarlara dağıtmadan önce hata ayıklama ve doğrulama imkanı sağlar.
- Kuantum Kütüphaneleri: Standart algoritma desenleri, kuantum aritmetiği ve kuantum hata düzeltme kodları gibi yaygın kuantum görevleri için kütüphaneler içerir.
Resim 5. Rassal Sayı Üreteci
Klasik bilgisayarlar gerçek rastgele sayılar üretemezler, bunun yerine belirlenimci (deterministik) olan sözde-rastgele sayılar üretirler. Kuantum bilgisayarları ise, kübit ölçümünün olasılıksal doğası sayesinde gerçekten rastgele sayılar üretebilirler.
- Bir kübit süperpozisyona sokulur (Hadamard kapısı kullanılarak)
- Bu kübit ölçüldüğünde, %50 olasılıkla 0 veya 1 değeri elde edilir
- Bu işlem tekrarlanarak birden fazla bit üretilir
- Bu bitler birleştirilerek daha büyük sayılar oluşturulabilir
Kuantum Rassal Sayı Üreteci Algoritması aşağıdaki gibi özetlenebilir:
- max: Üretmek istediğiniz en büyük sayıyı tanımlayın.
- nBits: Bu sayıya kadar olan değerleri temsil etmek için kaç bite ihtiyaç olduğunu hesaplayın.
- nBits uzunluğunda rastgele bir bit dizisi oluşturun.
- Eğer bu bit dizisi max değerinden büyükse, 3. adıma geri dönün.
- Eğer küçükse, sayıyı tamsayıya çevirin ve işlemi tamamlayın.
Aşağıda Q# diliyle geliştirilmiş olan basit bir Rassal Sayı Üreteci programının kodunu paylaşıyorum. Ayrıca hemen ardından her bir adımın açıklamasını içeren kısa özet metnini bulabilirsiniz.
namespace RassalSayiUreteci{
open Microsoft.Quantum.Convert;
open Microsoft.Quantum.Math;
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Canon;
/// # Summary
/// Result[] içindeki bitleri "01011…" formatındaki bir String’e çevirir.
function StringifyBits(bits : Result[]) : String {
mutable s = "";
for b in bits {
set s += (b == One ? "1" | "0");
}
return s;
}
/// # Summary
/// Bir kübit ölçerek rastgele 0 veya 1 (Result) döner.
operation GenerateRandomBit() : Result {
use q = Qubit();
H(q);
let r = M(q);
Reset(q);
return r;
}
/// # Summary
/// min…max aralığında, en çok maxRetries deneme ile rastgele sayı üretir.
/// Dönen değer: (sample, bit dizisi, toplam deneme sayısı)
operation GenerateRandomNumberInRange(
min : Int,
max : Int,
maxRetries : Int
) : (Int, Result[], Int) {
// Geçersiz aralık kontrolü
if (min < 0 or max < min) {
fail $"Geçersiz aralık: min={min}, max={max}.";
}
let nBits = BitSizeI(max);
mutable attempt = 0;
mutable sample = max + 1;
mutable bits : Result[] = [];
repeat {
// Her döngü başında bit dizisini sıfırla
set bits = [];
for idx in 1..nBits {
let b = GenerateRandomBit();
set bits += [b];
}
set sample = ResultArrayAsInt(bits);
set attempt += 1;
} until ((sample >= min and sample <= max) or attempt == maxRetries)
fixup {
// Gerekirse ek düzeltme burada yapılabilir
}
// Deneme limiti aşıldıysa clamp benzeri davranış
if (sample < min) {
Message("⚠ Deneme limiti aşıldı; sonuç alt sınıra çekiliyor.");
set sample = min;
} elif (sample > max) {
Message("⚠ Deneme limiti aşıldı; sonuç üst sınıra çekiliyor.");
set sample = max;
}
return (sample, bits, attempt);
}
@EntryPoint()
operation Main() : Unit {
let min = 10;
let max = 100;
let maxRetries = 5;
Message($"[{min}…{max}] aralığında rastgele sayı (en çok {maxRetries} deneme):");
let (number, bits, attempts) = GenerateRandomNumberInRange(min, max, maxRetries);
Message($"► Üretilen sayı: {number}");
Message($"► Bit dizisi : {StringifyBits(bits)}");
Message($"► Deneme sayısı: {attempts}");
}
}
Namespace: Tüm operasyon ve fonksiyonlarımızı RassalSayiUreteci isim alanı(namespace) altında topluyoruz.
open komutları: Kübit işlemleri (Intrinsic), matematiksel yardımcılar (Math), tür dönüşümleri (Convert) ve kontrol yapıları (Canon) için gerekli tanımları getiriyor.
StringifyBits Fonksiyonu: Girdi olarak bir Result[] (ölçüm sonucu bit dizisi) alır. Döngü ile her Result öğesini “0” veya “1” karakterine çevirip birleştirir. Çıktı olarak “01011…” formatında bir String döner. Hem bit dizisini okunabilir hale getirmek hem de kullanıcının konsola anlamlı bilgi yazdırabilmesi için kullanılır.
GenerateRandomBit Operasyonu: İlk olarak yeni bir kübit ayırır. Başlangıçta 0 durumundadır. H(q) ile Hadamard kapısı uygulanarak %50 olasılıkla 0, %50 olasılıkla 1 süperpozisyonuna sokar. M(q) ile ölçüm yaparak sonucu 0 veya 1 olarak elde eder. Reset(q) ile kübiti tekrar boşaltılacak şekilde 0 değerine eşitler. Son olarak da ölçüm sonucunu döner.
GenerateRandomNumberInRange Operasyonu:
- min, max: Üretilecek sayının alt ve üst sınırları.
- maxRetries: Geçersiz bit dizileri üretildiğinde yeniden deneme sınırı.
BitSizeI(max) fonksiyonu, belirtilen en büyük değeri temsil etmek için gereken bit sayısını (nBits) hesaplar.
repeat … until döngüsünde:
- Her tur için boş bir bits dizisi oluşturur.
- nBits kez GenerateRandomBit() operasyonunu çağırıp diziye ekler.
- ResultArrayAsInt(bits) ile bit dizisini tam sayıya çevirir.
- attempt sayacını artırır.
- Koşul sağlanana (min≤sample≤max) veya deneme limiti aşılana kadar bu işlemi tekrar eder.
Eğer halen aralık dışındaysa, sample değerini min veya max sınırlarına “clamp” ederek düzeltir. Üretilen sayı, son bit dizisi ve toplam deneme sayısını içeren üçlü değer döner.
Main Operasyonu: Programı başlatır ve konsola aşağıdaki bilgileri yazar:
- Hangi aralıkta kaç deneme yapıldığını.
- Oluşturulan Rastgele Sayı değerini.
- İlgili sayıyı oluşturmak için kullanılan bit dizisini.
- Toplam deneme sayısını.

Resim 6. Rassal Sayı Üreteci Programı Çıktısı
Bu yazıda kuantum hesaplamanın temel prensiplerinden Azure Quantum servisine; Q# diline ve bu dil ile geliştirilmiş kuantum rastgele sayı üreteçlerine kadar önemli başlıkları ele aldık. Azure Quantum ve sunduğu araçlar sayesinde kuruluşlar, Microsoft’un geliştirdiği dünyanın ilk topolojik kübit mimarili kuantum işlemcisi Majorana‑1 gibi devrim niteliğindeki yenilikleri kendi projelerine entegre edebilecek. Böylece siber güvenlikten finansa, tarımdan ilaç keşfine kadar pek çok alanda yenilikçi çözümler geliştirmek mümkün hâle gelecek.
Azure Quantum veya diğer konularla ilgili sorularınız için **LinkedIn** üzerinden bana ulaşabilirsiniz.
Sevgi ve saygılarımla, Batuhan
Kaynakça
- Smith, F. (2019). Quantum computing for dummies. Hoboken, NJ: John Wiley & Sons
- Mykhailova, M. (2021). Teaching quantum computing using Microsoft Quantum Development Kit and Azure Quantum. Proceedings of the 52nd ACM Technical Symposium on Computer Science Education (SIGCSE ’21), 1001–1001. https://doi.org/10.1145/3408877.3439710
- Hooyberghs, J. (2020). Introducing Microsoft quantum computing for developers: Using the Quantum Development Kit and Q#. Independently published.
- Microsoft. (2025). What is Azure Quantum?. Microsoft Learn. https://learn.microsoft.com/en-gb/azure/quantum/overview-azure-quantum
- Olivares, S. (2022). A student’s guide to quantum computing. Springer.
- Zygelman, B. (2020). A first introduction to quantum computing and information (2nd ed.). Springer.
- Mykhailova, M. (2022). Q# pocket guide. O’Reilly Media.
- Microsoft. (2025). Microsoft unveils Majorana 1: The world’s first quantum processor powered by topological qubits [Blog post]. Azure Blog. https://azure.microsoft.com/en-us/blog/quantum/2025/02/19/microsoft-unveils-majorana-1-the-worlds-first-quantum-processor-powered-by-topological-qubits/
- Microsoft. What is Azure Quantum?. Microsoft Learn, https://learn.microsoft.com/en-us/training/modules/intro-to-azure-quantum/3-what-is-azure-quantum
- Microsoft. Grover’s algorithm in quantum computing. Microsoft Learn. https://learn.microsoft.com/en-gb/azure/quantum/concepts-grovers
- Microsoft. Understanding quantum computing. Microsoft Learn. https://learn.microsoft.com/en-gb/azure/quantum/overview-understanding-quantum-computing
- Microsoft. Create a quantum random number generator. Microsoft Learn. https://learn.microsoft.com/en-us/azure/quantum/tutorial-qdk-quantum-random-number-generator?tabs=tabid-vscode
메타데이터
- post_id
- e366cf5b24d5
- slug
- azure-quantum-servisi-ile-kuantum-hesaplamaya-giriş-e366cf5b24d5
- url
- https://medium.com/sabancidx/azure-quantum-servisi-ile-kuantum-hesaplamaya-giri%C5%9F-e366cf5b24d5
- canonical_url
- https://medium.com/sabancidx/azure-quantum-servisi-ile-kuantum-hesaplamaya-giri%C5%9F-e366cf5b24d5
- author_url
- https://medium.com/@batuhan.guney
- status
- ok
- fetched_at
- 2026-06-10 18:44:10