Kuantum Programlama Uygulamaları Hackathonu Sonuç Kitapçığı

Zeki Seskir
QTurkey
Published in
16 min readJan 20, 2020

Kitapçığın PDF haline erişmek için: https://ej.uz/hackathon_sonuc_kitapcik

Daha önce yayınladığımız “Kuantum Programlama Uygulamaları Alan Bilgi Kitapçığı”nın PDF haline erişmek içinse: https://ej.uz/hackathon_alan_kitapcik

Bu sonuç kitapçığı 14–15 Aralık 2019 tarihleri arasında ODTÜ Teknokent CoZone tesislerinde gerçekleştirilen “Kuantum Programlama Uygulamaları Hackatonu” etkinliğinin çıktılarını ilgili kişi ve kurumlarla paylaşmak adına hazırlanmıştır.

QTurkey — 3–4–5 Mayıs 2019 tarihlerinde yine ODTÜ Teknokent CoZone tesislerinde düzenlenen “Introduction to Quantum Programming Workshop” etkinliğiyle, QWorld girişimi altında kurulmuştur. Amacı Türkiye’de kuantum teknolojilerine dair ilgi, bilgi ve farkındalık düzeylerini yükseltmek ve alana ilgi duyan kişiler için bir platform sağlamak olan bir topluluktur. Şimdiye kadar Ankara, İstanbul ve Konya’da düzenlediği toplam 23 günlük eğitimlerde 225 kişiye ulaşmıştır. (https://www.qturkey.org/)

Gelecek Teknolojiler Derneği — 13 Eylül 2019 tarihinde TED Üniversitesi Sosyal İnovasyon Merkezi altında bir sosyal girişim olarak kurulmuştur. Amacı Türkiye’de haklar, özgürlük ve refah odaklı biçimde gelecek ve derin teknolojilere dair farkındalığı arttırmak, teknolojik değişim süreçlerinin olumsuz etkilerini azaltıp olumlu etkilerini katlamak adına Türk toplumunun her kesimini bilgilendirmek olan bir sivil toplum kuruluşudur. Şimdiye kadar TED Üniversitesinde “Gelecek Teknolojiler Sohbetleri” adı altında 6 etkinlik düzenlemenin yanında QTurkey ve TechLiberty gibi topluluklar için tüzel kişilik görevini de üstlenmektedir.

https://cozone.co/tr

Giriş

Bu hackathon ODTÜ Teknokent’in sponsorluğunda CoZone tesislerinde gerçekleştirilen üçüncü QTurkey etkinliği olmuştur. Daha önce 3–4–5 Mayıs ve 2–3–4 Ağustos tarihlerinde düzenlenen “Kuantum Programlamaya Giriş Atölyesi” etkinlikleri CoZone’da ODTÜ Teknokent desteği ile gerçekleştirilmiştir.

2–3–4 Ağustos etkinliğinden bir kare

Etkinlik programı aşağıda sunulduğu gibi planlanmış ve gerçekleştirilmiştir.

Açılış konuşmasının ardından katılımcılardan proje fikri olanlar sunum yapmış, fikirlerini hayata dökebilmek adına takım arkadaşları bularak proje ekipleri oluşturmuştur. Başlangıçta 12 grupla başlayan etkinlik bir süre sonra 11 gruba düşerek devam etmiştir.

Öğleden sonra QTurkey ekibinden Berat Yenilen ve Cenk Tüysüz’ün teorik ve uygulamalı eğitimleriyle devam eden programın ardından ekiplere proje fikirlerini geliştirmek üzere üç saatlik bir süre tanınmıştır. Ardından ekipler projelerini eğitmenlere sunmuş ve aldıkları geri dönüşler kapsamında sonraki 20 saatte fikirlerini hayata geçirmiştir.

Aradaki süreçte bir ısınma etkinliği, ekiplerin projelerindeki ilerlemeler üzerine fikir alabildikleri bir takım-mentor çalışması ve de sunum hazırlıkları kapsamında projelerin derlenip Github’a yüklenmesi de sağlanmıştır. Ardından jüriler de alana alınarak 16:00’da proje sunumlarına geçilmiştir.

Jüriler

Serdar Alemdar (ODTÜ Teknokent Genel Müdürü)

Hakan Kızıltoprak (TOBB Başkanlık Özel Müşaviri ve Türkiye CERN Sanayi İrtibat Temsilcisi)

Ali Osman Çıbıkdiken (NEÜ Bilgisayar Mühendisliği Bölümü Öğretim Üyesi)

Elif Sürer (ODTÜ Oyun Teknolojileri Programı Öğretim Üyesi)

Ahmet Çevik (Jandarma ve Sahil Güvenlik Akademisi Öğretim Üyesi)

Hackathon sonunda 11 proje ekibinin yaptığı sunumlar sonrasında 8 ekibe çeşitli kategorilerde ödüller uygun görülmüştür. Sunum yapan ekiplerin projelerine buradan ulaşabilirsiniz: https://github.com/qturkey/QHackathon19/issues

Projeler

Ödül alan proje ekiplerinin kendi hazırladıkları, proje özetlerini ve süreçlerini anlatan raporlar ise aşağıda sunulmuştur.

Teleportation with Quantum Scrambling

Alınan Ödülün Adı: Birincilik Ödülü (1.500 TL)

Grup Üyeleri:
1- Erdi ACAR
2- Sabri GÜNDÜZ
3- İlknur TEPE

Projenin Özeti: Bu projedeki yaklaşımın altındaki sezgi, kara delik dinamiğinin bir üniter operatör U olarak modellenebileceği varsayımı altında kara delik bilgi paradoksunun yeniden yorumlanması yatmaktadır. Şematik olarak, bir gözlemci (A) gizli bir kuantum durumunu bir kara deliğe atarken, bir dış gözlemci (B) daha sonra yayılan Hawking radyasyonunu toplayarak bu durumu yeniden inşa etmeye çalışır. Bu projede, daha önce iyon tuzaklama yöntemiyle gerçekleştirilen kuantum scrambling operatörü kullanılarak yapılan teleportasyon için kuantum devre modeli ayrıştırılarak (ing. decompose) tek ve iki qubitlik kuantum kapıları cinsinden ifade edilmiştir. Elde edilen devre modeli kuantum kapı karmaşıklığı açısından O(2n(2+n))dir. Bu qubit sayısı büyüdükçe çok fazla kapı uygulanması anlamına gelmektedir. Uygulanacak kapı sayısının artması sonucunda gürültü (ing. noise) artacaktır. Bu sebeple aynı scrambling işlemini gerçekleştiren ve kuantum kapılar cinsinden ifade edilebilen kapı karmaşıklığı açısından daha verimli bir scrambling operatörü elde edilmiştir. Bu operatör n-qubit için genellenmiştir. 3, 4 ve 5 qubitlik için kuantum devre modeli gösterilmiştir.

Proje Sürecinin Anlatılması: Öncelikle birçok fikir ve proje önerisine sahip olduğumuzdan özgünlüğüne ve gerçekleştirilebilir olup olmadığına göre hangi projenin seçilip seçilmeyeceğine karar verildi. İlk olarak seçtiğimiz proje çok sayıda qubite ihtiyaç duyduğundan ve literatürde daha önce var olan bir teleportasyon şeklinin bir benzeri olduğu öğrendildi ve proje sonlandırıldı. Hemen ardından litaratür taramalarına ekip olarak başlandı ve ilgi çekici bir konu olduğunu düşündüğümüz kara delikler ile ilgili teleportasyon makalesi üzerinde çalışılmaya başlandı. İlk olarak makalede kullanılan operatör ve devre kuantum hesaplama dilinde ayrıştırıldı ve bazı hesaplamalar yapıldı. Elde edilen hesaplamalar sonucunda ilgili scrambling devresi kuantum kapılar cinsinden yazıdı ve teleportasyon devresi IBM Q üzerinde test edildi. Elde edilen operatör devresi çok fazla karmaşıklığa sahip olduğundan aynı scrambling işlemini yapan daha verimli bir operatör bulmak için oldukça çok fazla deneme yanılma sürecinden geçildi. Sonuçta elde edilen operatör, teleportasyon devresi IBM Q üzerinde test edildi ve başarılı bulundu. Daha sonra qiskit kütüphanesi kullanılarak python üzerinde simüle edildi. Yapılan çalışmalar Jupyter notebook ile bir döküman haline getirildi. Bu süreçte bildiğimiz kuantum programlamayı daha da pekiştirmiş olduk.

Bir şeyler öğrenip pekiştirmenin yanı sıra ekip olmanın ve hep birlikte çalışmanın da bize oldukça katkısı olduğunu söyleyebiliriz. Ekip ruhunu yakaladık, çok iyi bir şekilde anlaşarak, birbirimizin fikirlerini dinleyerek çok güzel bir süreci birlikte tamamlamış olduk. Bu süreçte diğer yapılan projeler ve fikirler bize miras olarak kaldı. Bilmediğimiz birçok teknolojik gelişmeden haberdar olduk ve uygulama fırsatı bulduk. Takıldığımız zamanlarda çok değerli hocalarımıza ve mentörlerimize soru sormaktan çekinmedik onlar da ellerinden geldiğince bize yol gösterdiler. Bizlere gösterilen ilgi ve alakadan oldukça memnun kaldık. Her sunumdan sonra heyecanımız bir kat daha arttı. Jürinin projeleri değerlendirme ve ödül kazananları açıklama sürecinde heyecanımız en üst noktaya ulaştı. Sonunda uykusuz kaldığımıza değdi ve birinci olduğumuza çok sevindik. Aynı süreci baştan yaşasaydık yine birlikte çalışmayı tercih ederdik ve birlikte daha da güzel başka bir projeye imza atabilirdik. Organizasyon ekibine, çok değerli hocalarımıza, bütün katılımcılara ve emeği geçen herkese çok teşekkür ederiz.

Github linki: https://github.com/erdiacr/Teleportation-with-Quantum-Scrambling

QPID (Kuantum Bilgisayar ile PID Optimizasyonu)

Alınan Ödülün Adı: İkincilik Ödülü (1.250 TL)

Grup Üyeleri:
1- Saffet Bulut
2- Fethi Batıncan Gürbüz
3- Emre Ummak
4- Yaşar Kurt

Projenin Özeti: Günümüzde yapılan dinamik çalışmalarda kullanılan kontrol sistemlerinin başında PID yöntem gelmektedir. Bu yöntemle beraber teknolojilerin daha stabil bir şekilde çalışmasına olanak sağlanmıştır. Yöntem 3 aşamadan ve kullanılan yönteme göre değişen geri beslemeyle çalışır. Bu yöntemi çalışmamızda kullanarak hava araçlarının optimizasyonunu sağlama yoluna giderek projeye başladık.

Proje Sürecinin Anlatılması: PID tasarımı, transfer fonksiyonu ve daha sonrasında eklediğimiz PSO(parçacık sürü optimizasyonu) ile bir karşılaştırma yaparak projedeki ilk aşamamızı gerçekleştirdik. Daha sonrasında literatür taraması yaparak kuantum yazılım ile yapılmış olan PID çalışmalarını inceledik. Bir makaleyi baz alarak PERES GATE, PERES FULL ADDER tasarımını gerçekleştirdik. Bu sayede projemizin tasarımındaki en önemli kısım olan logicleri yani gatelerin tasarımını yapmış olduk. Bu aşamayı yaparken yaklaşık olarak 48 qubit kullandığımız ve sürenin bu toolbaxı gerçekleştirmek için yeterli olmadığı için bir çözümleme yapamadık. Bizim yaptığımız bu çalışma ile gelecekte oluşacak bir yazılım alt yapısının PID Toolbaxı gerçekleşmiş olduğunu inanmaktayız ve bunu uluslararası platformlarda yayınlanmış olan bir makaleyi baz alarak yaptığımız için de kanıtlamış bulunmaktayız.

Github linki: https://github.com/saffetblt/QTurkey-QHackathon19

Kuantum Anahtar Dağıtımı: Bir Giriş

Alınan Ödülün Adı: Üçüncülük Ödülü (1.000 TL)

Grup Üyeleri:
1- Ali Kutlu Durşen
2- Yusuf Behzat

Projenin Özeti: Lise ve üniversite öğrencilerine yönelik, kuantum anahtar dağıtım protokollerinden BB84’ün — bir tanıtım metninden sonra — iki parti arasında uygulamaya konmasını animasyonla anlatan bir Jupyter defteri. An itibariyle dil desteği eklenmiş durumda, dil veri tabanının doldurulmasıyla programın başka dillerde çalışması mümkün. Gelecekte protokol sayısı arttırılabilir ya da iletişimin kusurlu olması durumunda atılacak adımlar gösterilebilir.

Kullanımı, istenen dildeki defterde `BB84(HEDEF, lang=DİL)` kodunun çalıştırılmasıyla olmaktadır. Sistem arkaplanda bulunup dilenirse erişilebilir ve incelenebilir, ancak temel eğitim materyali koddan ziyade sunum olarak düşünülmüştür. Buna rağmen, kod içi açıklayıcı-işaretleyici yorumlar düşülmüş ve açık kaynak geliştirmeye temel sağlanmıştır.

Programın çalışmasında birincil yavaşlatıcı etken, Python Qiskit kütüphanelerinin yüklenmesidir, bunda da kütüphanenin boyutundan ötürü bir geliştirme yaşanması beklenmemektedir.

Proje Sürecinin Anlatılması: Projemiz, kuantum bilgisayarların iki-anahtarlı şifreleme sistemlerini güvensiz kılma riskiyle kritik iletişimde tek-anahtarlı şifrelemeyi yaygınlaştırma amacıyla yola çıktı. Burada ana mesele anahtarı güvenli bir şekilde dağıtmak olduğu için, bu yönde yapılmış kuantum protokolleri incelemek ve Türkiye’de bunun ürünleşebilmesi için neler yapılması gerektiğini araştırmak hedeflendi.

Türkiye’de kuantum anahtar dağıtımının ürünleşmesi için henüz yeterli altyapı olmadığının fark edilmesiyle, projemiz bu yöntemlerin teknoloji bilgi-dağarcığında yer edinmesi için bir eğitim materyali oluşturmaya evrildi. Bir interaktif web sitesi olarak planlansa da, daha doğrudan bir eğitim sunulması için Jupyter defterlere yönelindi.

Ortaya çıkan ürün, farklı eğitim kurumlarınca eğitim amaçlı kullanılabilecek, kendi içinde kapalı bir sistemdir. Birincil hedefi olan BB84 protokolünü temel durumunda sorunsuzca göstermektedir. Dinlenme ihtimali ya da kusur olması ihtimalinde alınacak kontrol mekanizmalarının sisteme entegrasyonu devam etmektedir.

Ürünün değeri, bu süreci görselleştirerek öğrenimi kolaylaştırmasında ve programatik esnekliğindedir. Projenin başında yapılan literatür araştırmaları, BB84’ün teknik detayları konusunda birçok materyal olmasına rağmen giriş seviyesinde ve erişilebilir bir eğitim materyali eksikliği göstermiştir. Aynı zamanda başka protokollerle zenginleştirilmeye de açıktır.

Süreçte grupça kazanımlarımız, Python betiklerinin Jupyter içinde bir projeye dönüştürülmesini görmek, temel Django eğitimi, yazı biçimlendirme ve bunun gibi UX gelişimleri.

İmkan olsa geliştirilecek şeyler, daha geniş ve yetkin bir grupla bir web servisi oluşturmak ve bunu animasyondan simülasyona döndürerek iki kişinin katılımını sağlamak olurdu, böylece pasif bir görsel öğrenme sürecinden aktif bir sürece dönüştürülürdü. An itibariyle bunun Jupyter üzerinde desteklenmesi mümkün görünmemektedir. Ayrıca, geliştirmesi hala sürmekte olan parçalar da bulunmakta, örneğin İngilizce ders içerik desteğinin geliştirilmesi ya da kullanıcı kılavuzlarının oluşturulması gibi.

Github linki: https://github.com/alidursen/QKD_visualizer

Optimization of Binary Linear Systems with Quantum Circuits

Alınan Ödülün Adı: Mansiyon Ödülü (500 TL)

Grup Üyeleri:
1- Mustafa Yıldız
2- H. Mert Çelik
3- Çağrı Şakiroğulları
4- Engin Karaman

Projenin Özeti: Değişkenlerin sadece 0/1 gibi iki değer alabildiği lineer sistemlerde optimizasyon yapmak için kuantum devrelerin nasıl kullanılabileceği, maksimumu bulunacak lineer denklem ile kısıtlayıcı denklemlerin kuantum devrelerinde nasıl gösterilebileceği hakkında literatür taraması ve birkaç devre denemesi. Bu süreçte IBM’in kuantum işlemci hizmeti sunduğu Q Experience sitesini ve bunun dışında python qiskit kütüphanesini kullandık.

Proje Sürecinin Anlatılması: Lineer sistemlerin optimizasyonuna dair algoritmalar (linear programming) temel bilimlerde, mühendislik bilimlerinde ve iktisadi/idari bilimlerde sıkça kullanılmaktadır. Kuantum devrelerle bu algoritmaların daha hızlı çalıştırıldığı bilinmektedir; ancak değişkenlerin 0/1 olarak tanımlandığı durumlara dair bir algoritma yoktur. Bu projede kuantum devrelerle parçacıkların süperpozisyon özelliğini de kullanarak bu durumların optimizasyonu için bir devre tasarımı ve algoritma geliştirmeyi denedik. Bununla ilgili IBMQ’da simülasyonlar yaptık ve Qiskit kütüphanesinin aqua alt kütüphanesindeki lineer sistem çözüm fonksiyonunun detaylarını inceledik.

Sürece ilk olarak kuantum kapıları inceleyerek başladık. Ana sorunlardan biri elimizdeki lineer sistemin denklemlerini kuantum sistemde nasıl temsil edeceğimizdi. 0 ya da 1 değerini alacak değişkenleri birer kubitle simgeledik. Lineer sistemdeki denklemleri temsil etmek için parçacıkların süperpozisyon özelliğini kullanabileceğimiz düşündük ve bu nedenle |0> olarak başlatılan parçacıkları ilk olarak süperpozisyon ve dolaşıklık olgularına müsait hale getirmek için H (Hadagard) kapısından geçirdik (Parçacıkların Bloch küresindeki konumu (x,y,z)=(π/2,0,0), durumları |+> oldu). Denklemlerdeki katsayılarını gösterebilmek için de kısıt denklemlerini normalize edip standart bir forma dönüştürdük. Bu normalize edilmiş denklemdeki katsayıları y=0 düzleminde π/2, π/2 aralığına ölçekledik. Onun dışında her kısıtın skaler ölçeğini belirtmek için de bir kubiti ayrıca süperpozisyona sokup sonrasında ölçtük. (Bu kubitin sonucunun kısıta uyup uymadığına göre 1/0 vereceğini düşündük.) IBMQ ve qiskitte 1024 atış kullanarak yaptığımız denemelerde arada birkaç deneyde beklediğimiz sonuçları alsak da genelde sonuçlar beklediğimiz gibi değildi.

Bu arada lineer sistem çözümü için qiskit aqua kütüphanesinde herhangi bir ikili (1/0 olma) sınırı olmayan lineer sistemleri çözmek için exact_ls_solver fonksiyonu olduğunu fark edip bu fonksiyonun kullandığı devreyi araştırdık, literatür taraması yaptık. Qiskit aqua’nın da referans verdiği Barz et al. (2013)’ün tasarlanan kuantum devresine ait detaylar içerdiğini fark ettik. Buradaki devrelerde de kısıt denklemlerini temsilen koyduğumuz ve ölçtüğümüz kubitlerin benzer şekilde devrelerde ancilla kubit adıyla kullanıldığını gördük, ancak bizim çözmeye çalıştığımız lineer sistemler ikili olduğu için bu makaledeki yöntemi birebir kullanmamız gibi bir durum söz konusu değildi.

Bu süreçte görevlilerin sunumları ve online sunulan kaynakların da yardımıyla kuantum kapılarına dair bilgi, kuantum algoritmaları denemek için kullanabileceğimiz ibmq gibi ortamlara aşinalık, qiskit gibi kütüphanelerle çalışma deneyimi, kuantum algoritmaların ne tür algoritmalar olduğuna ve ne tür sorunlara cevap verdiğine dair aşinalık ve bloch küresi üzerinde düşünme becerisi kazandık. Sonuç olarak bir ürün çıkaramamış olsak bile kuantum algoritmaların geliştirilmesi için daha derinleme bir kuantum bilgisi ve daha fazla zaman gerektiğinin farkına vardık.

Aynı süreci baştan yaşayacak olsam biraz kuantum çalışıp gelirdim. Kuantum algoritmalarla ilgili temel bilgi edinmeye gelmiştim, sonuçtan kendi adıma memnunum. (Çağrı)

Konuya ilişkin yayınları daha iyi tarayarak gelir ve literatüre hakim olarak başlardım. (Engin)

Proje sürecinde kuantum programlama ile ilgili kapsamlı bilgiler ögrendim. Projemiz seviyemize göre zor olduğu için alanla ilgili bilgileri öğrenmemiz zaman aldı. Fakat bu süreç bize çok farklı tecrübeler kazandırdı. Süreçten memnun kaldım. (Mustafa)

Bu hackathon qubitlerin ve quantum gate’lerin çalışma mantığını anlamama yardımcı oldu. Böyle bir hackathonu tekrar yaşayacak olsaydım eğer tutorial’dan yardım alarak tek başıma çalışır ve bir şeyler yapmaya çabalardım. Fakat bu sürece girmeden önce quantum computing hakkında çok fazla bir bilgim yoktu o yüzden bu bilgisizliğimi değiştirirdim. Bu çalışma ortamı bana tecrübe ve yeni bir düşünce sistemi kattı o yüzden son derece memnun kaldım. Umarım ileriki zamanlarda da bu tarz çalışma ortamlarına girebilirim. (Mert)

Kaynakça:

-Barz, S., Kassal, I., Ringbauer, M., Lipp, Y. O., Dakic, B., Aspuru-Guzik, A., & Walther, P. (2013). Solving systems of linear equations on a quantum computer. arXiv preprint arXiv:1302.1210.

Github linki: https://github.com/qturkey/QHackathon19/issues/12

QBrick

Alınan Ödülün Adı: QTurkey Mobil Uygulama Ödülü (500 TL)

Grup Üyeleri:
1- Ahmet ATASOGLU
2- Muhammed Mansur KAVAK

Projenin Özeti: Projemizde quantum programlama için kullanılan kapıların daha iyi anlaşılabilmesi için Qbrick isminde bir oyun tasarladık. Oyunda kapıların Q bitler için oluşturduğu durumları uyarladık. Hadamard, not gibi kapılar oyunda tasarlanarak kapıların özelliklerin oyuncu tarafından anlaşılması sağlanmıştır.

Proje Sürecinin Anlatılması: İlk başta iki farklı proje ile katılmayı düşündük, bunlardan birisi genetik algoritmalar kullanılarak gen haritasındaki hatalı DNA’ların düzeltilmesi üzerineydi diğer bir projemiz ise quantum programlama olgusunun daha iyi anlaşılabilmesi için bir mobil uygulama geliştirmek üzerineydi. Lakin ilk günün sonunda yapmış olduğumuz sunumda Zeki hocamızdan gelen tavsiye ile yalnızca bir proje üzerine odaklanmamız gerektiğine karar verdik ve projemizde yola çıktık. Gece boyu süren kodlamanın ardından kaybettiğimiz zamanı telafi ederek p5.js processing kütüphanelerinin yardımıyla QBrick oynunu ortaya koyduk.

Bu süreçte kuantum programlama mantığı daha düzgün temellere oturdu. Qiskit ile diğer kütüphaneleri nasıl ortak kullanabileceğimizi anladık. Sonuçtan memnunuz fakat tabii daha geliştirilebilir, birçok özellik eklenerek oyunun daha eğlenceli hale getirmenin mümkün olduğunu düşünüyoruz. İlk gün başka bir proje ile uğraşmanın bize vakit kaybettirdiğini düşünüyoruz belki yarışmanın başından itibaren tek projeye odaklansaydık daha iyi işler ortaya çıkarılabilirdi.

Github linki: https://github.com/atasoglu98/QBrick

Kuantum Jack

Alınan Ödülün Adı: QWorld Görsel Ortam Ödülü (500 TL)

Grup Üyeleri:
1- Cantekin ÇELIKHASI
2- Zeliha BEKTAŞ
3- Mustafa SELİM ÖZEN
4- Muhsin AKDOĞAN

Projenin Özeti: Bilgisayara (BOT) karşı yapılan bir kağıt oyunu. Rastgele verilen kağıtların herbiri bir kuantum kapısını temsil etmektedir. Oyunda bu kapıları kullanarak verilen giriş değerini en yüksek skorla |0> ya da |1> durumuna çekmek. Asıl amaç oyuncuya kuantum kapılarının (X,H,Y,Z) bir qubit üzerindeki etkilerini öğretmek.

Proje Sürecinin Anlatılması: Ekip üyeleri tarafından beyin fırtınası ile birçok fikir ortaya koyduk, mentörlerin yönlendirmesiyle de nihai olarak oyun yapmaya karar verdik. Ancak yapacağımız oyun kuantumluk, yapay zeka (Makine öğrenmesi algoritmaları ML) içereceği gibi eğlenceli de olmalıydı.

Proje aşamasında planlarımızı şu şekilde gerçekleştirdik. Kuantumluk kısmı; kullanıcıya, oyun oynayarak kuantum kapılarının çalışma prensibini öğretmekti. Oyunun çekişmeli olması ve sürdürülebilirliği içinde bilgisayarda bir ML ile çalışan rakip oluşturduk. ML eğitmek için, rastgele 4 kapı ile kurulu olan 2000 farklı devre tasarımının ve IBM simülasyon sonuçları kullandık. ML algoritmamız %98 doğruluk oranına sahipti. Oyunu eğlenceli hale getirme işinde ise kapıları birer iskambil kartı şekline çevirip, oyun görsellerini mümkün olduğunca gazino ortamına çevirmeye çalıştık ve bunu bir arka plan müziği ile destekledik.

Eksik yaptığımız kısım sunumda oyunumuzu ve amacımızı tam olarak anlatamamak. Biraz da kuantumluk durumlarını tam oturtamamak olabilir.

Mentörlerin katkısı ve fikirleri yadsınamayacak kadar çok ve önemliydi. Belki her mentör takım kursa ve onun liderliğinde bir proje oluştursa, başka bir deyişle mentörler de birer yarışmacı olsaydı daha çok şey öğrenme ile beraber ortaya çıkan ürünler daha kaliteli olabilirdi.

Github linki: https://github.com/cantek41/KuantumHackhathon2019

Quantum Othello

Alınan Ödülün Adı: QTurkey Eğitim Materyali Ödülü (500 TL)

Grup Üyeleri:
1- Ekrem BAL
2- Mehmet BAŞARAN

Projenin Özeti: Othello taşlarını qubit kullanarak, qubit gate lerinin çalışma prensibini öğretecek bir oyun. Othello oyununun dinamiklerinden faydalanarak, tek qubit lik gateleri öğretmek ve kuantum programlamaya ilgiyi artırmayı amaçladığımız projede Hadamard Gate, X-Gate, Z-Gate in çalışma mantığını othello oyunun dinamikleri ile beraber görselleştirerek açıklamak amacıyla oyunu kurguladık. Oyunda Uygulanan gatelere göre qubitlerin o anki durumlarını simüle ettik qubit o anda negatifmi, pozitifmi(|1>, |0>) veya hangi süper pozisyonda olması(|+> , |-> vb.) bekleniyor gibi soruları görsel olarak cevaplayabilmeyi amaçladık.

Othello iki oyuncu ile oynanan oyuncuların sıra ile tahtaya taş ekleyerek ve rakibinin taşlarını kendi taşları arasına alarak, aradaki taşları kendi taşına çevirdiği bir oyun biz de bu oyundaki bu mekaniği tek qubit lik gateleri taklit edecek şekilde kullanarak oyunculara tek qubitlik gatelerin çalışma şekillerini öğrenmesini sağladık.

Proje Süreci: Biz hackathon’a katılmadan önce kuantum programlama hakkında çok az bilgi sahibiydik. Hackatondan önce yapılan eğitim sunumları Ekrem için oldukça öğretici geçti. Ekrem’in fikriyle tek qubit gatelerin çalışmasını anlatan bir oyun tasarlama fikri oluştu qubit gatelerin çalışma mekaniğini simüle edeceğimiz bu oyunu tasarlayabilmek için othello oyununun klasik NOT işlemi ile benzerliğinden dolayı X-Gate’i simüle etmeye çok uygun olmasından dolayı othelloyu temel alan oyun mantığıyla Hadamard Gate, X-Gate, Z-Gate’i harmanlayarak bir oyun geliştirme fikri oluştu.

Oyunu hızlı ve oynanabilir şekilde geliştirmek için farklı mimarilerde ve farklı dillerle farklı çatılarla yazmayı düşündük en hızlı şekilde oluşturabilmek ve qiskit kullanarak kullanılan gate’e göre qubitlerin o anki durumlarını simüle edebilmek için python ve hızlı bir şekilde oynanabilir demo çıkarabilmek için pygame kütüphanelerini kullanarak oyunu yazdık.

Pygame kütüphanesini seçmemizin birden fazla nedeni var. Bunlardan ilki eski bir kütüphane olduğu için kolay öğrenebilecek olmamızdı. Pygame kütüphanesinin nasıl kullanıldığını tam olarak çözememiş olsak da geçici ve muhtemelen daha kompleks çözümlerle prototipi yapmayı başardık. Her ne kadar pygame kullanmaya karar vermeden önce Django kullanarak oyunu yapabileceğimiz bir web sitesi yapmayı hayal etmiş olsak da web tecrübemizin zamanı yetiştirmeye yetmeyeceğine karar verdik.

Projenin qubit gate’lerinin çalışma prensibini oyunlaştırarak öğreterek, kuantum programlamaya ilgi uyandırmak ve insanların qubit gate çalışma prensibini anlamasını kolaylaştırmayı amaçladık. Kullanıcı etkileşimi ile oynanan bir oyun olduğu için tek qubitlerin hangi kapılarla nasıl çalıştığının anlaşılmasına katkı sağlayacak bir oyunlaştırma çözümü sunmaya çalıştık. Bu projede özgün değer matematiksel olarak açıklanan mantığın görsel olarak ve kolayca denenebilecek şekilde oyunlaştırılarak sunulmasıdır.

Proje boyunca bizlere hem fikir veren hem takıldığımız noktalarda destek olan mentorlar sayesinde kuantum programlama hakkında özellikle qubitlerin uygulanan gatelere göre nasıl çalıştığını ve bunu oyunlaştırarak nasıl sunabileceğimiz hakkında bilgi edindik. Kuantum kapılar kullanılarak oluşturulan devrelerin, klasik kapılar kullanılarak yapılan mantıksal devre tasarımına alternatif olabileceğini öğrendik. Final sunumlarında bunun uygulamasına yönelik güzel örnekler görerek bu öğrendiklerimizin pratik uygulamaları hakkında bilgi edindik.

Aynı süreci tekrar yaşayacak olsam eğitim kısmını kesinlikle kaçırmazdım hackathona başvurma amacım ağırlıklı olarak başında yapılacak eğitim içindi fakat eğitime katılamadım tekrar olsaydı eğitime katılmak alanında bilgili kişilerde daha fazla bilgi edinmek isterdim.

Yaptığımız proje açısından, oyun tahtasını büyütmek veya birden fazla qubite etki eden CNOT gibi kapıları da simüle ederek oyuncuya daha fazla seçenek sunmak gibi özellikleri eklemeye vaktimiz yetmedi. Vaktimiz yetmediği için ekleyemediğimiz özellikleri de eklemek için aynı süreci tekrar yaşayacak olsak daha hızlı hareket eder mimari kurgulama ile uğraşmak yerine en hızlı yazacağım dil, çatı ile direk prototip çıkarmaya ve devamlı o prototipi mentorlardan alacağım bilgilendirmelere göre revize ederek vakitten kazanarak daha fazla özellik eklemeye çalışırdık.

Proje sürecinde karşılaştığımız problemlerden bir tanesi de birden fazla qubite etki eden CNOT gibi kapıları da simüle etmek istediğimizde oyun tahtasındaki her hücreyi aynı devre sisteminde kabul etmemiz gerekiyordu. Fakat bu kadar fazla qubit’i tek bir devrede simüle etmek şu anki bilgisayarlarda yavaş çalışır diye birden fazla qubite etki eden kapıları eklemeyi erteledik. Projenin ilk prototipini tamamladıktan sonra yaptığımız beyin fırtınasında ise tahtanın tamamını değil de sadece belirli bir kısmını birleştirebileceğimiz durumda ya da tahtanın yanına ek olarak bir tane daha hücre ekleyerek bu sorunu çözebileceğimizi düşündük.

Github linki: https://github.com/ekrembal/Quantum-Othello

Q PATİKA

Alınan Ödülün Adı: QTurkey Eğitim Materyali Ödülü (500 TL)

Grup Üyeleri:
1- Sait RAMAZAN GÜL
2- Hasan GÜZELMANSUR
3- Esat YENER

Projenin Özeti: Kuantum teknolojileri alanında dünyadaki gelişmeleri takip ederek bu gelişmeleri ilgili düzeydeki kişilere aktararak ilgili kişilerin ilk basamak bilgilerini eğlenceli bir şekilde adım atmalarını sağlamak. Bununla elde etmek istediğimiz durum ilgisi bulunan kişinin direk olarak akademik makale ve konuşmalara dalarak konuya önyargı ile değil daha basit ve temel anlamda bilgiler vererek o kişilerin merakını ve ilgisini bir üst düzeye çıkarmak.

Proje Sürecinin Anlatılması: Proje sürecinin başlamasında uzun zamandan beri bir arada bulunan temel ve orta düzeye hitap eden bir kaynak bulamadığımız için genel anlamda bu sorunun giderilmesi açısından bir şeyler yapmak istedik . Temel gerekliliği ise araştırma yapmak isteyen hedef kitledeki bir bireyin direk olarak akademik konulara giriyor olmasıydı. Oysaki bizim temel hedef kitlemize baktığımızda genel olarak kuantum alanında fazla bilgiye sahip olmadığını düşündüğümüz grup.

Bundan dolayı bizde kuantum alanında insanların temel ve orta düzey bilgileri burada alması burada uygulamaya koyabilmesi iyi bir şekilde öğrenmesini sağlayacak bir platform oluşturmak istedik. Böylelikle ilgili kişi temel ve orta düzey bilgiyi burada alarak bir üst seviyeye geçebilmesi adına gerekli altyapıyı hazırlamış olmak istiyoruz . Böylelikle kuantumla ilgilenen kişi sayısını artırmak istiyoruz.

Özgünlük değeri tamamen grup arkadaşlarımızla beraber neyin nasıl olması gerektiği konusunda çalışmalar yaptık . Yaptığımız araştırmada ve mentorlarımızın görüşlerine baktığımızda tamamen hackathonda ortaya çıkan bir proje oldu. İnsanların kuantum konusundaki dağınık ve karmaşık bilgilerini tek bir yerde ve düzenli olarak tutmak istiyoruz .

Kuantum alanındaki gelişmelerin kuantum programlama ile nelerin yapılabileceği dışında temel kuantum konularını öğrendik.

Sonuçtan memnun kaldık.

Temel olarak aynı proje üzerinde kalırdık ama muhtemelen daha fazla detaya girerdik. Web sitemizde oyunlar forumlar olabilirdi . Mobil uygulamamızda farklı içeriklerde sunabilirdik.

Github linki: https://github.com/qturkey/QHackathon19/issues/10

Kapanış

QTurkey ve GelTek ekipleri olarak Türkiye’de kuantum programlama alanındaki ilk hackathonu düzenlemiş olmaktan gurur duyuyoruz. Bu etkinliğin gerçekleşmesinde pek çok insanın yüzlerce saatlik emeği bulunuyor. Ancak bu emek yalnızca destekçilerimizin sağladıkları imkanlar sayesinde bu hackathona dönüşebilmiş durumda.

  • ODTÜ Teknokent ve CoZone’a bize sağladıkları mekan sponsorluğu, yemek ve kahve desteği, alan içi yardımları ve daha nice destekleri için teşekkür ederiz.
  • RedEye firmasına bize sağladığı sponsorluk ve ödül törenine yaptıkları katılım için özel olarak teşekkür ederiz. Onların desteği sayesinde proje ekipleri emeklerinin karşılığında maddi olarak da ödüllendirilebildiler.
  • Unitary Fund girişiminin desteği sayesinde katılımcılarımıza yemek imkanı sunabildik. Ayrıca QWorld’e yapıkları bağış sayesinde kuantum programlama alanındaki açık erişim ekosistemine katkılarımızı daha da olanaklı kıldılar.
  • FAME CRYPT bize kırtasiye masrafları konusunda yine destek olmaktan çekinmedi. Kendilerine ikinci kez sponsorumuz oldukları için ayrıca teşekkür ederiz.

Ayrıca Gelecek Araştırmaları Enstitüsü, TechLiberty ve Strangeworks’ü de yaptıkları çeşitli desteklerden ötürü buradan şükranla anıyoruz.

--

--

Zeki Seskir
QTurkey

METU \\ M.Sc. — Physics and STPS \\ Ph.D. candidate — Physics \\ Part-time blogger on http://www.duzensiz.org/.