Bu sayfayı, Q# Programlama dili ile ilgili ilerlememi kayıt altında tutmak ve bu süreçte önemli noktaları örnekleri ile beraber sizlerle paylaşmak için oluşturuyorum. Başlamadan önce, neden uzun bir süreçten sonra yazılım alanına ilgi duyduğumu da siz değerli takipçilerimle paylaşmak isterim. Bir Türk genci olarak, ülkemizde donanımsal anlamda çok kısıtlı imkanlar mevcuttur, bu teknolojiyi Teknoloji Bakanlığının memurlarının bilmediğini sizlere kanıtlayabilirim. 2014 yılı itibariyle bu alanı araştırmaya ve ilk çalışmalarımı yapmaya başlamıştım, kuantum teknolojilerini dua olarak nitelendirenler vardı. Aradan 9 yıl geçmesine rağmen kuantum bilgisayar teknolojileri ile alakalı 9 farklı tesis bile kurulamayan canım ülkemde, kuantum yaşam koçlarının sayısı 9 katına ulaştı. Öyle ki, üniversitemde bu alan ile ilgili araştırma yaptığımda, bu konuyla ilgili olarak Türkiye’de toplamda 10’dan fazla akademisyen olmadığını gördüm. Daha acısını sizinle paylaşmak istiyorum, QTurkey tarafından düzenlenen etkinlikte Ankara’da Bilkent Üniversitesi’nde insanlar ancak maksimum 35 kişi bir araya gelebildi. (Ankara’nın nüfusu 5.5 milyon civarındadır.) Bu süreçte beni kopma noktasına getiren kısımlardan biri, sınırlı sayıda bulunan üniversitelerin bu alanda yaptığı yüksek lisans çalışmalarına girebilmek için 40 dereden su getirilmesi olayı oldu. Bu üniversiteler özel üniversiteler olduğu için yüklü miktarda para ödemeniz gerekebilir, bu parasal yükümlülükten kurtulmanız için (eğer parasal anlamda fakirseniz) kılı kırk yararak, yüksek bir ortalama, çok iyi İngilizce bilmeniz, birbirinden farklı çalışmalar yapmış olmanız, referans mektupları almanız, o alanda sizi tanıyan ve övecek olan hocalar bulmanız ve yüksek motivasyona sahip olmanız gerekmektedir. Tabii bunları yaparken İngilizce sınavlarına 4000-5000 TL arasında para yatırmanız, hocalarınızın gözüne çok batmamanız ve onlardan güzel referans mektupları almanız, fakir olmanıza rağmen sponsorlar bulup birbirinden farklı çalışmalar yapmanız ve tüm bunlar yaşanırken ülkemizde geleceği bile olmayacak bir bölüm için yüksek motivasyonunuzu korumanız gerekecektir. Hayat bazen gerçekten zorlayıcı olabiliyor, hele ki siz bu olayların üstesinden geldiğinizde, toplum gözünde bir hiçmiş gibi göründüğünüzde, anlaşılamadığınızda… Dahası, ilerleyen süreçte bu teknolojinin daha yüksek fiyatlarla pazarlanacağını, bu teknoloji sayesinde tüm sektörlerde rakiplerimizden ne kadar geride kalacağımızı bilmeniz, beni olduğu gibi sizi de kötü etkileyebilir. Örneğin, bu yıl Finlandiya, IQM ile anlaşarak 20 kübitlik bir kuantum bilgisayarı kurdu. Hedeflerinin 2 sene içinde 100 kübitlik kuantum bilgisayarı olduğunu açıkladılar. Bende, bu noktadan sonra donanım yarışının çoktan kaybedildiğine kanaat getirdim ve yazılım alanında ilerlemenin geleceği yakalamakta daha iyi bir fırsat olacağı sonucuna vardım. Yüksek notlar, İngilizce seviyeleri, referans mektupları… hiçbir anlam ifade etmez, içinde tutku olmadıkça. Zihin derinliklerinde kendini bulduğu zaman, gerçekten yetkin olacaktır, diyorum ve birtakım eleştiriden sonra Q# ile devam ediyorum.
Neden Q#?
Q# Programlama dili açık kaynaklı, yüksek seviye bir programlama dili olup, kuantum algoritmaları için çok önemli bir yer tutmaktadır.
Bu dili öğrenirken quantum development kit ile başlayacağım.
Matrisler
Matrisler, matematikte olduğu kadar kuantum hesaplayıcılar ve dolayısıyla kuantum mekaniğinde de sıklıkla kullanılan yapılardır. Bir matris satır ve sütünlardan oluşan bir veri dizisini ifade eder. Matrisin satır sayısı “m” sütün sayısı “n” ile gösterilirse matrisin boyutu mxn’dir. Herbir satır ve sütünün kesiştiği noktada bulunan değere bu matrisin elemanı adı verilir. Matrisler, lineer cebirde denklem kümeleri üzerinde işlem yapmakta ve çözmekte ve kuantum mekaniğinde olduğu gibi vektörler üzerinde işlem yaparken çok kullanılan yardımcı yapılardır.
Bir matris bir skaler sayı ile çarpılması demek, her bir elemanın birer birer skalerle çarpılmasını sonucu oluşacak aynı boyuttaki bir matrise eşit olacaktır.
Azure Quantum Development Kit (Modern QDK), Azure Quantum hizmetiyle arabirim oluşturması için gereken SDK’dır. Quantum Development Kitile Azure Quantum’da kuantum donanımı üzerinde çalışan kuantum programları oluşturabilirsiniz.
Microsoft, beş yıl içinde siber güvenliğe 20 milyar ABD doları yatırım yapmayı taahhüt etti.
Bugün eğitimde son derece hoşuma giden bir video kaydı vardı, onu sizler ile paylaşmak istiyorum.
Bu dillere çalışmaya başlamadan önce bu videoyu izlemek her zaman daha iyi hissettirecektir.
Bugün itibariyle 3 farklı sertifika aldım, tabi bunlar biraz başlangıç sertifikaları ve beni o kadar bunaltmıyor. Ne yazık ki şunu anladım: Bu teknoloji benim tahmin ettiğimden de derin yerlere gidiyor. Yarın çalışmalara devam…
En kötü senaryoda, geçit tabanlı μs kubitleri (süper iletken kubitler gibi nanosaniye rejiminde işlem sürelerine sahip kubitler) kullanan bir kuantum bilgisayar ve yüzey QEC kodu, Shor algoritması kullanılarak 2.048 bitlik bir tamsayıyı çarpan altı yıl ve 37,38 milyon kubite ihtiyaç duyar.
Kapı tabanlı ns iyon kubitleri ve aynı yüzey kodu gibi farklı bir kubit teknolojisi kullanıyorsanız kubit sayısı çok fazla değişmez, ancak çalışma zamanı en kötü durumda iki gün ve iyimser durumda 18 saat olur. Örneğin, Majorana tabanlı kubitleri kullanarak kubit teknolojisini ve QEC kodunu değiştirirseniz, Shor algoritmasını kullanarak 2.048 bitlik bir tamsayıyı kükübik olarak ekleyerek en iyi senaryo senaryosunda 6,25 milyon kubit dizisiyle saatler içinde yapılabilir.
Denemenizden, Majorana kubitlerini ve Floquet QEC kodunu kullanmanın Shor algoritmasını yürütmek ve 2.048 bitlik bir tamsayıyı faktöre eklemek için en iyi seçenek olduğu sonucuna varabilirsiniz.