01 — Problem
Ne isteniyor?
Classiq’in yarışma görevi: 1.097 siyah pikseli olan 64×64 ikili logoyu bir faz oracle olarak gerçekleştirmek.
İki adet 6 kübitlik register, koordinatları kodlar: x
ve y (little-endian). Oracle, işaretli bir
piksele denk gelen her baz durumunda fazı −1 ile çarpar; diğer tüm
durumları olduğu gibi bırakır. Ancilla’lar iş bitince |0⟩
’a dönmeli; koordinat kübitleri değişmemeli.
Bu, Grover tipi aramalardaki klasik “işaretli durumu işaretle”
bloğunun görsel bir örneği. Skor, oracle’ın u3
+ cx bazında, all-to-all bağlantıda derinlik
(öncelikli) ve CX sayısıyla ölçülür.
02 — Geometri
Logo tam olarak hangi pikseller?
Resmi baseline notebook’taki predicate dört parçanın birleşimi: iki dikdörtgen ve iki disk.
Piksel sayıları: A = 625, B = 120, C = 137, D = 225. Çakışmalar az: yalnızca A∩B = 5 ve B∩C = 5. Toplam işaretli piksel 1.097.
Canlı çizim · logo_pixel(x,y) formülünden · siyah = işaretli
03 — Kısıtlar
Grader neyi kabul eder?
Genişlik 12–18 kübit; en fazla 6 temiz ancilla. Tek qreg
q, OpenQASM 2.0, sadece u3
ve cx.
q[0] … q[5]
Little-endian. LSB = q[0].
q[6] … q[11]
Little-endian. LSB = q[6].
q[12] … q[17]
Temiz başlar, temiz biter.
Derinlik, grader’da basit bir katman sayacı: her kapı, operand kübitlerinin max derinliğini +1 artırır. Yani skor yeniden optimize edilmez; yazdığın (veya transpile ettiğin) katman düzeni doğrudan ölçülür. Ödül eşiği kapanışta ilk 5 (≤108); lider ~95 derinlik / 272 CX.
04 — Keşif
Neleri denedik, neden yetmedi?
Doğrudan “her siyah pikseli ayrı işaretle” yolu binlerce CX üretir. Daha akıllı kaplamalar da çoğu zaman derinlik duvarına çarptı.
Baseline: 18 dikdörtgen (~5329 derinlik)
Satır aralıklarını birleştirip Classiq
control(range, phase(π)) ile sentezlemek
doğru ama optimize edilmeden ~5000–5300 derinlik bandında kalıyor.
Bu “geçer not”un tavanı değil, başlangıç çizgisi.
ANF / ESOP faz polinomu — işe yaramadı
12-bit fonksiyonun ANF’i 886 terimli. Greedy ESOP ~77 terim / ~3000 CX; Qiskit EsopGenerator 164 terim / ~7800 CX. Liderin 269 CX’ine yaklaşmıyor. Faz polinomu doğru ama CX yağmuru.
Dyadic küp çarpımları — işe yaramadı
Dikdörtgenleri x-küp × y-küp olarak açmak 133 küp ve ~7000 CX verdi. Yüksek ağırlıklı ürünler kritik yolu şişiriyor.
İki canlı 6-bit karşılaştırıcı — sığmadı
6-bit comparator zirvede 5 carry + 1 sonuç ister. Bir x-flag tutulurken kalan 5 kübit, ikinci 6-bit compare için yetmiyor. Bu yüzden y tarafında comparator kullanamadık; y hep dyadic.
DiagonalGate / PhaseOracle — daha kötü
4096 diyagonal fazı Qiskit
DiagonalGate ile vermek ~8170 derinlik /
4094 CX. Disk için 8-bit PhaseOracle tek başına ~3585 derinlik.
“Her pikseli tabloya yaz” yolu kısa değil.
MCZ ile y-bayrağını kaldırmak — işe yaramadı
x-flag üzerine doğrudan H–MCX–H (MCZ) uygulamak, y-flag yaz-CZ-sil döngüsünden teoride ucuz görünüyor. Ama hedef süperpozisyondayken ucuz RCCX kullanılamıyor; exact Toffoli ile derinlik 4415’e çıktı. Geri alındı.
BQSKit yeniden sentez — işe yaramadı
Berkeley Quantum Synthesis Toolkit tek bir grupta bile ~27 sn sürdü ve Qiskit opt=3’ün 296 derinliğini 301’e kötüleştirdi. Tam oracle’a uygulanmadı.
Classiq auth — açıldı; kapalı form ~97 vermedi
classiq.authenticate() çalışıyor, bulut
sentezi gidiyor. Kapalı form
(x−55)²+(y−41)²≤42 ise
max_width=18 ile reddediliyor: motor en az
39 kübit istiyor. 40 kübitte derinlik ~4100. Tek dikdörtgen S bile
416; sadece x aralığı [2,26] 194.
İlk 5 (95–111) bu sentezleyicinin tek aralık kontrolünden daha kısa.
İşe yarayanlar: merge_S + supercube + paylaşımlı küp
S’yi tek dikdörtgen [2,26]×[29,53]
yaptık; orta şerit [27,61]×[39,43]
(B + sağ disk ekvatoru). Pahalı x-aralıklarını
([33,47], [34,46],
[50,60]) büyük dyadic küp ⊕ delik
tarifiyle kodladık; sol diskte [32,47]
küpünü bir kez tutup bantlar arasında paylaştık. geq2 hibrit +
pytket ile birlikte →
3229 derinlik / 2085 CX.
05 — Çözüm
Çalışan mimari
Logoyu örtüşmeyen x-aralığı gruplarına ayırdık. Her grup için: x-flag yaz → y-flag’leri sırayla yaz → CZ → geri al.
-
Örtüşmeyen gruplar
Baseline satır birleşimini, aynı x-aralığını paylaşan y-dilimleri altında topladık. 10 grup; kapsama tam 1.097, çakışma yok. Örnek:
x∈[38,42]iley∈{11,27}. -
Kübit rolleri
a0 = q[12]x-flag,a1 = q[13]y-flag, kalanlar scratch. X flag yazılırken 5 scratch serbest; y flag yazılırken x flag canlı olduğu için sadece 4 scratch var. -
Aralık bayrağı = XOR of dyadic cubes
[lo, hi]hizasız bir aralık, üst üste binmeyen hizalı 2-kuvvet bloklarına ayrılır. Her küp için sabit bitlere X, sonra MCX-XOR ile hedefe XOR, sonra X geri. Küpler ayrık olduğu için bayrak tam doğru. -
MCX-XOR merdiveni
Relative-phase Toffoli (RCCX) + son CCX: hedefe AND(controls) XOR’lanır, ancilla temiz kalır, faz +1. 6 kontrol için 4 ancilla yeter — y eşitliklerinin tamamı sığar.
-
Geniş x aralıklarında comparator / geq2 hibrit
[34,46]için iki iç içe≥comparator (aynı hedefe XOR) dyadic’ten ucuz. Kimlik:(v≥lo) ⊕ (v≥hi+1) = lo≤v≤hi. Non-result CCX’ler RCCX ile değiştirildi.[2,26]ve[2,61]için özel yol:v≥2 ⇔ OR(bits[1:5])(ucuz XOR-OR), sonrav≥27/v≥62comparator. İki tam comparator (~155) yerine ~113 derinlik. Involutory olduğu için compute/uncompute aynı devre. -
Faz = CZ(a0, a1)
x ve y bayrakları 1 iken CZ fazı çevirir. Sonra aynı XOR rutinleri tekrarlanarak bayraklar sıfırlanır (involutory).
Kapalı form (Qmod)
Gönderdiğimiz submission.qmod, predicate’i
tek control içinde tutar. Bu, Classiq
bulut sentezi için hazır model; yerel QASM ise el yapımı oracle.
qperm logo_phase_oracle(const x: qnum, const y: qnum) {
control ((A) | (B) | (C) | (D)) {
phase(pi);
}
}
05b — Yolculuk
Skor nasıl düştü? Ne denendi?
Kısa bir zaman çizelgesi: hangi fikir kaç derinlik bıraktı, hangisi çöpe gitti.
-
Baseline Classiq notebook
~5329 derinlik / 3502 CX. Doğru ama kasıtlı olarak pahalı.
-
Gruplu el oracle (
logo_oracle.py)10 x-grubu, dyadic + comparator, RCCX merdiveni → ~4222 / 2671. Statevector yeşil.
-
Açık kaynak derleyiciler
pytket FullPeephole: 4222 → 4190 (küçük ama gerçek). BQSKit: tek grupta kötüleşme, bırakıldı.
-
geq2 hibrit
Geniş gövde aralıklarında
v≥2 = OR(üst bitler)→ ~4053, pytket sonrası ~4063 / 2565. -
merge_S + supercube + paylaşımlı küp
S tek blok; pahalı x-aralıkları büyük küp ⊕ delik; sol diskte
[32,47]bir kez tutuldu → 3317 / 2122. -
Auth + Classiq hibrit
Hesap açıldı. Classiq S+B dikdörtgenleri (~708) + yerel diskler → doğrulanmış 3229 / 2085. Kapalı form ~97 vermedi; lab günlüğünde ayrıntı.
05c — Lab günlüğü
Auth açıldıktan sonra ne denedik?
29 Eylül 2026: classiq.authenticate()
geçti. Aşağıdakiler o günden beri yapılan ölçümler — her biri
“neden / nasıl / sonuç” üçlüsüyle.
1) Kapalı form: “tarif → kapı listesi” — 18’e sığmadı
synthesize_closed_form.py logoyu dört
geometrik cümleyle yazar:
DEPTH + max_width=18 ile sentez:
motor en az 39 kübit istiyor. Genişliği 40’a
açınca sentez olur; derinlik ~4100 / CX binlerce — bizim 3229’dan
kötü. Genişliği 48’de ~5552.
Ders: “formülü yaz, sentezleyici kısaltsın”
yolu bu hesapta / bu SDK’da (1.29.1) lider bandına gitmiyor.
Geniş Classiq çıktısını submission.qasm
üzerine yazmadık.
Çocuk dili: pastayı tek tarifle fırına verdik, fırın “tepsim küçük, 39 kişilik olsun” dedi. Büyük tepside pişince pasta bin kat oldu — şampiyon pastası değil. Büyük tepsiyi çöpe attık.
2) Parça parça ölçüm: tek aralık bile ilk 5’ten derin
Liderboard (29 Eylül): 1. sıra 95 / 272, ilk 5 hepsi 95–111 derinlik, 18 kübit.
Aynı motora tek tek aralık verince (doğrulanan / ölçülen):
- x ∈ [2,26] → derinlik 194, CX 105
- y ∈ [29,53] → 217 / 119
- S dikdörtgeni [2,26]×[29,53] → 416 / 246
- orta şerit [27,61]×[39,43] → 264 / 221
- Classiq S+B birlikte → ~708 / 470
194, “bir sayıyı aralığa koy, ancillayı temizle”nin bedeli. İlk 5’in bütün logosu bundan kısa. Kazananlar aralıkları uç uca dizmiyor; kritik yolları bir karşılaştırıcıdan kısa.
Çocuk dili: şampiyon bütün ödevi 95 satırda bitirmiş. Bizim makine tek soruya (“2 ile 26 arasında mı?”) 194 satır harcıyor. Demek ki şampiyon başka makine kullanıyor!
3) Hibrit: Classiq S+B + yerel diskler → 3229
Classiq kalın dikdörtgenlerde iyi (S+B ~708). Yerel OSS S+B tek başına ~840. Disk halkaları OSS’de paylaşımlı küp ile ~2524.
Birleşim (doğrulandı, statevector yeşil): 18 / 3229 / 2085. Bu, 3317’den ~88 katman kısa. Gönderi dosyası buna güncellendi.
Dikkat: Hadamard’lı sentez çıktısında u3(π/2,0,π) prep kapıları kalabiliyor; oracle ölçümünden önce onları çıkarmak / prep’siz model yazmak şart. Aksi halde faz kontrolü bozulur.
Çocuk dili: kalın işleri robota, ince yuvarlakları elimize verdik — 88 satır kısaldı, sınavdan geçtik. Yeni rekor: 3229!
4) İnce satırlar (yükseklik 1): Classiq siliyor
Disk halkalarındaki tek piksel yüksekliğinde bantlar
(y=11, y=35…)
Classiq’de yalnız başına veya hatta S ile birlikte sentezlenince
faz çoğu zaman kayboluyor: derinlik 0 veya “doğru gibi görünen”
ama 56 piksel eksik.
Yükseklik ≥2 bantlar tutuluyor. Çözüm: ince satırları OSS’de bırakmak; kalın parçaları Classiq’e vermek (hibrit).
İki yükseklik-2 bandını XOR’layınca
([11,12] ⊕ [12,13]) y=11 ve y=13
fazlanır, y=12 iptal olur — motor her iki h=2’yi de tutuyor.
Komşu logo pikselleri yüzünden bu hileyi doğrudan uygulamak
zor; yine de “motor neyi siler?” sorusuna cevap verdi.
Çocuk dili: robot incecik çizgileri görmüyor — silip geçiyor, 56 piksel kayboldu! O yüzden ince çizgileri biz boyadık, kalınları robota bıraktık.
5) Sığ ama yanlış: 4 bitlik a²+b²≤42
Classiq’e 4 bitlik unsigned
a*a + b*b ≤ 42 verince
derinlik 17 / CX 12 gibi “rüya” bir skor çıktı.
Statevector: 256 noktanın 41’i yanlış. QASM’de
çarpma / karşılaştırma kapıları fiilen boş; faz silinmiş.
Ders: skor tablosuna bakmadan önce statevector. “Sığ” Classiq aritmetiği bazen yanlış. Dikdörtgen karşılaştırmaları (S, B) bu motorla doğru çıktı; kareler güvenilmez.
Çocuk dili: robot “17 satırda bitirdim!” dedi, sevinçten zıpladık. Sonra cevap anahtarıyla karşılaştırdık: 41 soru yanlış! Meğer robot bazı soruları boş bırakmış.
6) 4 bit ofset: +9 doğrulandı (derinlik 25)
Sağ disk merkezi 55. Alt 4 bit için
(x−55) ≡ (x_low + 9) (mod 16)
ve x ∈ [49,61] iken bu, gerçek
x−55 ile birebir.
Elle yazılan +9 mod 16 (2 CCX + CX’ler): derinlik 25, CX 16; 16 girdi için doğrulandı. Benzer ofset y için de mümkün.
Sonraki adım kare + toplam + ≤42. 6 ancilla ile sıkışıyor: kare bit 1 hep 0 → sonuç 5 bit; ikinci kareyi toplarken AND hedefi + carry aynı anda yetmiyor. Ancillasız MCX merdiveni (4 kontrollü ~65 derinlik) birkaç kez dizilince tek disk, liderin bütün bütçesini aşıyor.
Çocuk dili: “55’e ne kadar uzağız?” Son 4 rakama 9 ekleyince cevap çıkıyor — üstelik sadece 25 satır! Ama bu sadece ilk adım; kareler derken masalar doluyor.
7) Neden ilk 5 “parça birleştir” ile gelmiyor?
Kabaca lider bütçesi: ~95 derinlik ≈ birkaç Toffoli derinliği; ~272 CX ≈ ~45 Toffoli. Bizim doğru parçalar:
- tek x-aralığı Classiq: 194 (zaten bütçenin 2×’i)
- ofset: 25 (ucuz, ama sadece giriş)
- hibrit bütün logo: 3229
İlk 5’e girmek için logonun en uzun kapı zinciri bir aralık kontrolünden kısa olmalı. Bu, ya tamamen farklı bir Boolean / BDD paylaşımı ya da 6 ancillayı yeniden kullanan çok sıkı bir aritmetik makine demek — Classiq’in varsayılan “geniş aritmetik + uncompute” şablonu değil.
Çocuk dili: şampiyonun çantası küçük: 95 satır, ~45 zımba. Bizim tek cetvelimiz bile 95 satırdan uzun. Çantaya sığmak için cetveli değil, bütün çantayı değiştirmek lazım.
8) qmod uyumu: tarif defteriyle pişen yemek eşleşti
Neden: yarışmaya iki dosya veriliyor:
submission.qasm (pişen yemek —
puanı bu alır) ve submission.qmod
(tarif defteri — yaklaşımı anlatır). Bizim tabakta 18 kübitlik
hibrit vardı ama defterde hâlâ “39 kübit isteyen kapalı form”
yazıyordu. Garson (grader = otomatik puanlayan robot) tabağa
bakar, ama defterle tabak çelişmemeli.
Nasıl: qmod, GROUPS’un 17 dikdörtgen
cümlesiyle yeniden yazıldı (“x şu aralıktaysa VE y bu
aralıktaysa faz ver”, 17 kez). Classiq’in model kurucusu
(create_model = “tarifi makineye
okut”) max_width=18 ile
OK verdi — yani bu tarif 18 kişilik tepsiye
sığıyor.
Sonuç: qasm değişmedi (3229 / 2085), paket tutarlı. Eski defter yedekte duruyor.
Çocuk dili: yemeğimiz doğruydu ama üstündeki etiket başka yemek yazıyordu. Etiketi düzeltip tabağın üstüne yapıştırdık — yemek aynı, etiket artık doğru.
9) QROM blokları: doğru Lego’lar, ama kule kısa kalmadı — park
Neden: sağ diski “kare al, topla, 42 ile karşılaştır” diye yapmak istiyoruz. Sayıları 4 bite indirgemiştik (madde 6’daki +9 numarası). Bu turda üç Lego parçası tek tek dökülüp ölçüldü:
- +9 ofseti: derinlik 25, CX 16. 16 girdinin 16’sında doğru. Sadece 2 CCX (CCX = Toffoli = “iki anahtar da açıksa üçüncüyü çevir”).
- +7 ofseti (y ekseni için): 63 derinlik, 16/16 doğru. Biraz hedef üstü ama sağlam.
- Füzed kare (ofset+kare tek parça, x’e dokunmadan): 432 derinlik / 305 CX, 16/16 doğru. “Füzed” = iki işi tek hamlede yapmak; kare bit 1 hep 0 çıktığı için 6 yerine 5 bit yetti.
Ders (v=7→8 böceği): ilk denemede çarpımlar
yanlış sırayla yazılmıştı: 7 girince 8 çıkıyordu. Sebep basit
bir mutfak hatası — malzemeyi doğrarken aynı bıçakla tabağı
düzeltmek: bitleri değiştirince sonraki çarpımlar kirli
bitleri okudu. Kural: önce bütün çarpımları temiz
girdiden hesapla, girdi bitlerini en sona bırak.
Düzeltilen parçalar qrom_disk.py
bankasında duruyor.
Neden park: tek eksenin karesi bile 432. Öbür eksen + toplama + karşılaştırma eklenince tek disk ~1200+ olur; iki disk + dikdörtgenler 3229’u geçemez. Doğru Lego’lar, yanlış kule.
Çocuk dili: disk pastasını kesmek için üç bıçak yaptık. Bıçaklar keskin çıktı, tek tek denedik, hepsi kesti! Ama bütün pastayı kesmek yine de çok uzun sürdü. Bıçakları kutuya kaldırdık — belki başka pastada kullanırız.
10) ROBDD: 83 düğümlü akıllı harita 6 masaya sığmadı — park
Neden: 886 terimli ANF (madde 5’in kuzeni) ölmüştü. Ama aynı sorunun ROBDD haritası (Reduced Ordered Binary Decision Diagram = “aynı alt yolları paylaşan karar ağacı”) sadece 83 düğüm: aynı soru iki yerde soruluyorsa harita tek düğümde birleştiriyor. Katman genişlikleri [1,2,4,6,10,9,10,11,14,10,4,2] — en kalabalık katmanda 14 düğüm aynı anda açık.
Nasıl denendi: her düğüm “alt yol XOR (soru VE fark)” formülüyle tek bayrağa işlenecekti. Pebbling (çakıl taşı oyunu = “hangi ara sonucu hangi masada tutayım, hangisini silip gerekirse yeniden hesaplayayım” planı) simülasyonu gösterdi: aynı anda ~17 masa lazım, bizde 6 ancilla (ancilla = yardımcı kâğıt) var. Sığmıyor.
Geri dönüş ve sonuç: harita 139 ayrık yola
açılıp her yol ayrı ayrı hesaplandı → doğruluk OK ama
29348 / 19442, 9 kat kötü. Yeniden-hesaplama
(recompute = “masan yoksa sil, lazım olunca baştan yap”)
ödünü de 3229’u geçemez. Park edildi; harita ve üreteç
build_bdd_oracle.py’de duruyor.
Sıradaki deneme: 111 dyadic çifti parite-gadget’lara çevirip
TODD ile sıkıştırmak (GraySynth).
Çocuk dili: bütün soruları tek akıllı haritada birleştirdik — sadece 83 durak! Ama haritayı okumak için 17 masa lazım, bizde 6 masa var. Herkes ayrı yoldan gidince de yol 9 kat uzadı. Haritayı çekmeceye kaldırdık.
11) Parite ütücüsü: yanlış soru sorulmuş — park
Neden: 111 küçük bloğu “parite listesi”ne çevirip TODD akıllı ütücüsüyle sıkıştırmak istedik. Parite = “bu kübitlerin toplamı tek mi çift mi?” sorusu. Plan: her bloğu tek parite cümlesi yap, ütücü listeyi kısaltsın.
Nasıl: her dyadic çifti tek
ParityPhase(π) olarak kuruldu.
S alt kümesi 464 two-qubit, tam merdiven 1966. Transpile
sonrası 625 / 509 gibi rüya bir skor
göründü — ama sınavdan kaldı.
Neden öldü: “hepsi 1 mi?” (çok-kontrollü
kapı) ile “toplam tek mi?” (parite) farklı sorular. 12
kontrollü bir kapı, tek parite cümlesine değil
4096 parite cümlesine eşit. Tek-kontrollü
bloklar şans eseri doğruydu (Z kapısı = tek parite),
kalabalık bloklar fazı bozdu. Üstüne TODD, π-fazlı
(Clifford) devrede ütülenecek T bulamayıp devreyi boşalttı.
625/509, yanlış devrenin skoruydu. Dosya yazılmadı,
submission.qasm el değmeden duruyor.
Çocuk dili: “herkes el kaldırsın mı?” ile “tek sayıda el mi kalktı?” farklı sorular! Biz ikinci soruyu sorup birinci sorunun cevabını bekledik. Küçük sınıfta şans eseri tuttu, büyük sınıfta yakalandık.
12) Çok-kontrollü kapı kıyaslaması: ağaç 6 kontrolü 42’ye indirdi
Neden: her aralık bayrağı “şu bitlerin hepsi
1 mi?” diye soruyor. Bu kapının katman sayısı, her grubun
tabanı. Aynı işi linear RCCX merdiven, dengeli ağaç ve
Qiskit’in Khattar–Gidney sentezleriyle ölçtük
(mcxlib.py).
Sonuç (doğrulandı): CCX = 11, RCCX = 7 katman. 5 kontrol + 3 boş ancilla: ağaç 34 (eski merdiven 38). 6 kontrol + 4 boş: ağaç 42 (eski 46). Ancilla yokken 6 kontrol 191 katman — yani yardımcı kâğıt olmadan bu Lego çok pahalı.
Çocuk dili: “beş kişi aynı anda onay versin” diye sormak. Eski yol: sırayla sor, herkes “evet” desin. Yeni yol: ikişer kişilik grup, sonra grupların grupları — merdiven yerine ağaç. 6 kişilik onay 46 basamaktan 42’ye indi. Küçük kazanç, ama her grupta iki kez kullanıyoruz.
13) Paralel bayrak motoru: 3229 → 1991 — gönderildi
Neden: eski oracle x-bayrağını yazıyor, sonra y-bayrağını yazıyor; ikisi sırayla duruyor. Ancilla’ları iki havuza bölüp x ve y’yi aynı anda hesaplayınca katmanlar üst üste biner. Üstüne her küme için 0–2 CX’lik “affine ön-dönüşüm” arandı: küme, ucuz bir dyadic küp olsun diye bitler birbirine XOR’lanıyor, iş bitince geri alınıyor.
Üç gruplama (hepsi statevector yeşil):
-
A satır:
GROUPS— 1991 / 1868. Kazanan. - C hibrit: S + orta şerit + disk dilimleri — 2063 / 2421.
- B sütun: geniş y-birleşimleri küp sayısını şişirdi — 2844 / 3033.
Bağımsız kontrol: qasm_metrics
1991/1868; 3 rastgele çarpım-faz girişinde hata ~5×10−16;
ancilla temiz. Dosya:
flag_engine_full.qasm.
30 Eylül’de submission.qasm
bu dosyayla yollandı (HubSpot accepted).
Neden 113 değil: 10 grup, her biri ~164–278
katman. En pahalı üçü: S bar 278, [33,47]
250, orta şerit 236. x-bayrağı y ile gizlendi; kalan fatura
tek satırlık y-bantları (her biri 6-kontrollü küp, yaz+CZ+sil).
Çocuk dili: eskiden önce “x bu aralıkta mı?” diye soruyorduk, cevap gelince “y bu dilimde mi?”. Şimdi iki soruyu aynı anda soruyoruz — pasta katmanı kısalıyor. 3229’dan 1991’e indik. Ama 10 ayrı pasta dilimi hâlâ sırayla pişiyor; şampiyon pasta 108 katman, biz dilim başı ~200’deyiz.
14) Birleşik y-bantları: 3582 — daha kötü, park
Plan: her grubun y-dilimlerini tek kümeye birleştirmek. Örnek: {11, 27} yalnız 4. bitte farklı → tek 5-kontrollü küp. Tahmin 1100–1400’dü.
Ölçüm (doğrulandı, ~19 dk): A2 3582 / 2358, A3 3586 / 2362. Satır gruplarını birleştirmek paralel gizli y-bayraklarını tek, daha şişman kümeye yığdı; kritik yol uzadı. QASM’a yazıp yeniden yükleyince kirli ancilla (q[12] uyarımı) — o kopya geçersiz; bellek içi 3582 yeşildi. 1991’lik gönderim duruyor.
Çocuk dili: iki kısa yoklamayı tek uzun yoklamada birleştirdik. Soru sayısı azaldı ama soru zorlaştı, merdiven 1991’den 3582’ye çıktı. Bu tarifi çekmeceye kaldırdık.
qasm_metrics,
(3) statevector. Üçü yeşil değilse dosyaya yazma.
Gönderilen (30 Eylül): 1991 / 1868
(submission.qasm).
Önceki zarf: 3229 / 2085.
Park: QROM (432 tavan), BDD (peak 17>6), GraySynth (yanlış
parite varsayımı).
06 — Doğrulama
Nasıl emin olduk?
Klasik kapsama testi + tam statevector faz kontrolü.
Önce grupların birleşiminin tam 1.097 piksel ve sıfır çakışma verdiğini saydık. Sonra 12 kübite Hadamard, oracle, statevector: norm 1, ancilla uyarımı yok, her (x,y) genliğinin büyüklüğü 2−6, beyaz piksele göre bağıl faz logo_pixel ise −1, değilse +1 (tolerans 10−6).
Transpile: Qiskit optimization_level=3,
baz u3,cx; ardından isteğe bağlı
optimize_pytket.py (FullPeephole + U3/CX
rebase). Grader ile aynı katman sayacı
qasm_metrics ile ölçüldü.
07 — Sonuç
Gönderilen skor
30 Eylül 2026’da paralel bayrak motoru HubSpot’a gitti: 1991 / 1868. Tabloda en son görünen satır “Halil I.” 3317 / 2122 (~72/91). 1991 public tabloda görünmedi; kapanıştan sonra sayfa kilitlendi.
- Genişlik
- 18
- Derinlik
- 1991
- CX
- 1868
- İlk 5 (30 Eyl)
- ≤108
Zincir: baseline ~5329 → el oracle ~4222 → geq2 4063 → merge_S 3317 → hibrit 3229 → paralel bayrak 1991 / 1868 (gönderildi, 30 Eylül). Son açık tablo: 1. 95, 2. 107, 3. 108, 4–5. 109. 1991 işlenseydi ~65/91 olurdu; tabloda teyit yok. Bu mimarinin tavanı ~1000–1400; ilk 5 (≤108) değil.
08 — Kapanış
Yarışma bitti; notlar duruyor
30 Eylül 2026 kapanış. 1991 gönderildi. İlk 5 (≤108) bu mimariden çıkmadı. Aşağıdaki maddeler “sırada ne var” değil, “neden yetmedi” özeti.
-
Lab günlüğünü oku
05c — Lab günlüğü: hangi Classiq tarifi doğru, hangisi sığ ama yanlış, neden 39 kübit.
-
Paylaşımlı harita denendi — 6 masaya sığmadı
83 düğümlü karar haritası (ROBDD) doğru çıktı ama aynı anda ~17 ara sonuç istiyor; 6 yardımcı kübit yetmedi, geri dönüş 29348 derinlik oldu. Ayrıntı lab günlüğü madde 10’da. Parite-gadget + TODD denemesi de madde 11’de öldü (yanlış soru sorulmuş).
-
Lego blokları doğrulandı — ama kule kısa kalmadı
+9 (25 derinlik), +7 (63), füzed kare (432) — üçü de sınavdan geçti, fakat tek disk bile ~1200+ tutuyor. Ayrıntı lab günlüğü madde 9’da. Bloklar
qrom_disk.pykutusunda saklanıyor; ileride parça lazım olursa geri döneceğiz. -
1991 gönderildi; tablo kilitlendi
HubSpot accepted dedi.
submission.qasm= 1991/1868. Public liderboard kapanıştan sonra şifrelendi; 1991 satırı teyit edilemedi. Son açık sıra: 72 (3317).