Kuantum Programlamaya Giriş

Nedir Bu Kuantum Programlama?

Kuantum bilgisayarı nedir? 

Nasıl programlanır?

Kanada Başbakanı Justin Trudeau'nun ağzından kuantum programlama:

Peki ya Shakespeare bugünleri görseydi ne derdi? 

“Olmak ya da olmamak ya da arada bir yerlerde kalmak, işte bütün mesele bunlardan biri olabilir ya da olmayabilir!”

Justin Trudeau: 

Don't interrupt me! When you walk out of here, you will know more about quantum computers.

Bu işin içinde kimler var?

Şu anda bu alandaki teknolojik gelişmeler bir çok start-up şirket üzerinden devam etmekte olup özel sektörün dört dev şirketi de kuantum hesaplama ve kuantum bilgisayarlar konusunda büyük yatırımlar yapmaktadır. Bu durum bu alanın oldukça büyük iş gücü potansiyeline sahip olduğuna dair basit bir ipucu sayılabilir. Fizikçilerin bu alanda kendilerine çalışma sahası bulabileceği bir çok bölüm vardır. Örneğin kuantum bilgisayarlarının donanımsal eksiklikleri ancak temel deneysel fizik problemlerinin çözümü sayesinde giderilebilir. Bu noktada gelişmeler teorik ve hesaplamalı fiziğin potansiyel olarak sunduğu deneysel düzeneklerin fizikçiler ve bazı senaryolarda elektrik-elektronik mühendisleri tarafından hayata geçirilmesi şeklinde gerçekleşmektedir. Yazılım kısmına bakıldığında ise kuantum bilgisayarlarında halen devre seviyesinde programlamalar yapılmaktadır. Bu seviyenin bir üst basamağa taşınabilmesi için halihazırda fizikçiler ve yazılım mühendisleri dirsek temasında çalışmalarını sürdürmektedirler.

Hepsi dünya devi olan dört şirketin kuantum hesaplama ve kuantum bilgisayarları alanındaki güncel çalışmalarına aşağıdan ulaşabilirsiniz.

Kuantum Programlamaya Giriş Dersi Müfredatı

Bu ders kuantum hesaplama ve kuantum programlama konularının temellerine giriş seviyesinde bir derstir.

Ana materyal Jupyter notebooklarından oluşmaktadır ve bu notebookların hazırlanmasında QWorld topluluğunun Bronze, Nickel ve Silver isimli çalıştaylarından esinlenilmiştir. Bu çalıştaylarda bahsi geçen algoritmaların yanı sıra başka algoritmalar ve mevcut kuantum bilgisayarların donanımları konusu da derste işlenecektir.

Önkoşullar

Bu dersten en yüksek verim elde edebilmek için iki adet önkoşuldan bahsetmek mümkündür. 

İlk önkoşul için Python dilini, değişkenler, temel veri tipleri, döngüler ve koşullar konseptleri ile kod yazabilecek kadar bilmek yeterlidir. Eğer Python dili ile hiç deneyiminiz yoksa materyalde sunulan Python notebooklarını takip edebilirsiniz.

İkinci önkoşul için iki girilebilir-durumlu kuantum mekanik sistemlerini, örneğin elektronun spini, Dirac notasyonunda manipüle edebilmek yeterli olacaktır. Bu noktada eksikleriniz olsa dahi derslerde Dirac notasyonu yeterince ayrıntılı şekilde anlatılacaktır.

Bu iki önkoşul haricinde matris cebrinde vektörler, matris çarpımı ve tensör çarpımının bilinmesi öğrencinin işini kolaylaştıracaktır.

İlk ders öncesi

Marmara Üniversitesi Fizik Bölümü'nün Github Organizasyonuna katılma talebi göndermelisiniz.

Anaconda programını bilgisayarınıza kurmalı, ardından Qiskit ve Cirq kütüphanelerini yüklemelisiniz. Talimatlara buradan ulaşabilirsiniz.

Bu hazırlıklar sonrası "start_here" isimli notebook açılıp bütün materyale ulaşılabilir.

Dönem boyunca

Bu derste bahsedilecek ana bölümler aşağıda sıralanmıştır. Bir öğrencinin her bir bölüm için ayırması gereken kendi-kendine-çalışma süresi 2-3 saattir.

(Klasik bitler, Olasılıksal bitler, Yazı-Tura oyunu, Hileli para, Olasılıksal durumlar, Olasılıksal işlemciler, Korelasyon)

(Devrelerle kuantum programları: yazaçlar, kapılar, ölçümler, yürütümler, çıktıların okunması, kuantum durumları, kuantum işlemciler)


Kaynaklar

Başarı koşulları

Bu derste dönem içinde 1 adet vize sunumu ve dönem sonunda 1 adet final sunumu yapılacaktır. Öğrencinin dersi geçebilmesi için Marmara Üniversitesi Önlisans ve Lisans Eğitim-Öğretim ve Sınav Yönetmeliği'ne  göre Final sınavında 100 puan üzerinden en az 40 puan alması ve bunun yanı sıra geçme notunun da 100 puan üzerinden en az 40 puan olması gerekmektedir. Öğrencinin dönemde alacağı notlarla ilgili hesaplama formülleri şöyledir.

Dönem boyunca her hafta 1 adet ödev verilecek olup her bir ödev 100 puan üzerinden değerlendirilecektir. Ödevler her haftanın ilk dersinde Canvas sistemi üzerinden öğrenciye gönderilecek ve öğrencinin bu ödevi ilgili haftanın ikinci dersine kadar tamamlaması beklenecektir. Bir ödevin tamamlanmış sayılabilmesi için ödevden 100 puan üzerinden en az 25 puan alınması gerekmektedir. Öğrenci ödevi izin verilen süre zarfında sınırsız defa yeniden yapabilir. Bu denemelerde elde edilen puanlardan en yüksek olanı öğrencinin ödev notu olarak değerlendirilecektir. Tanımlı süre zarfında en az 25 puan alınamayan ödevlerin notu 0 puan olarak dikkate alınacaktır.

Örnek Ödev Sorusu:

Yazı gelme olasılığının 0.8 olduğu bir hileli paranız olsun. Bu parayı 1000 defa attığınızda aşağıdaki 

sonuçlardan hangisini elde ihtimaliniz bulunmaktadır? (8 puan)

a. Yazı: 802, Tura: 198

b. Yazı: 502, Tura: 498

c. Yazı: 320, Tura: 980

d. Yazı: 203, Tura: 797

Ödevlerde test sorularının yanı sıra, boşluk doldurma soruları, çok-seçmeli sorular, doğru-yanlış soruları, kod parçası yazma soruları vb. sorular da bulunacaktır.

"Quantum Computing & Quantum Information" konusunda 45 dk.'lık bir tanıtım konuşması için hazırlanmış sunumu aşağıda bulabilirsiniz.

QC

Ek Konular

Aşağıda listelenmiş olan konular dönem sonunda ders saati kalması durumunda işlenecektir.