33  Son Ders: Algoritmalar Her Yerde

Üç geometrici hocanın araştırma vitrini — origami, self-assembly, mesh geodeziği, ray casting ve redistricting; kursun kapanışı

NotOturum bilgisi

Kursun FİNALİ — tema: algorithms are everywhere (Demaine) + 6.006 is unavoidable (Solomon). Üç hoca da geometrici; kendi araştırmalarında 6.006 araçlarının (NP-hardness, DP, çizge, veri yapısı, approximation, hesaplama modeli) nasıl döndüğünü gösterirler.

33.1 Bu Derste Ne Var?

6.006’nın son dersi (Jason Ku açar, Erik Demaine + Justin Solomon devam eder). Üç hoca da geometrici — kendi araştırmalarında 6.006 materyalini nasıl kullandıklarını gösterirler. Tema tek cümle:

“algorithms are everywhere.” — Demaine

Ve Solomon’ın ısrarı:

“6.006 is unavoidable.” — Solomon

Uzmanlaşma dersleri (daha çok çizge, hesaplama modelleri, randomness, complexity) + uygulamalar (biyoloji, kriptografi, grafik/geometri) gezilir; sonra Demaine (computational origami, self-assembly, ileri veri yapıları, planar çizge, recreational) ve Solomon (mesh geometrisi, computer graphics, politik redistricting) somut örnekler verir.

flowchart TD
    A["Ders 32 (L21): Son Ders — Algoritmalar Her Yerde (Ku · Demaine · Solomon)"] --> O["Demaine — origami (6.849)"]
    O --> Oa["tasarım ÇÖZÜLEBİLİR vs foldability NP-hard<br/>Origamizer %22 · fold-and-cut · maze (sabit ölçek)"]
    A --> S["Demaine — self-assembly"]
    S --> Sa["DNA tile + tutkal; model GEOMETRİK<br/>keyfi şekil log n paralel · replikator (3B fotokopi)"]
    A --> D["Demaine — 6.851 / planar / 6.892"]
    D --> Da["van Emde Boas log w · fusion log n/log w < AVL log n<br/>planar SSSP lineer · Baker PTAS · oyun NP-hard"]
    A --> M["Solomon — mesh (6.838)"]
    M --> Ma["kenar-Dijkstra YANLIŞ (çizge ≠ üçgen)<br/>MMP geodezik n log n · fast marching"]
    A --> R["Solomon — graphics + redistricting"]
    R --> Ra["ray casting O(p·n) → KD tree O(p log n) · DAG · SIMD<br/>redistricting: en iyi plan + örnekleme NP-hard"]
    classDef root fill:#fef3c7,stroke:#b45309,stroke-width:3px,color:#1f2937
    classDef branch fill:#f3f4f6,stroke:#374151,stroke-width:2px,color:#1f2937
    classDef leaf fill:#ffffff,stroke:#9ca3af,stroke-width:1px,color:#1f2937
    class A root
    class O,S,D,M,R branch
    class Oa,Sa,Da,Ma,Ra leaf
Şekil 33.1: Ders 32’nin (L21) kavram haritası: kök = Son Ders Algoritmalar Her Yerde (Ku açar, Demaine ve Solomon devam) — kursun FİNALİ, üç geometrici hocanın araştırma vitrini. Beş dal — (1) Demaine origami 6.849: tasarım design hedef şekil to kıvrım deseni ÇÖZÜLEBİLİR vs katlanabilirlik foldability desen katlanır mı NP-hard; her şeyi katla 90 lar şerit yöntemi korkunç verimsiz; Origamizer Tachi 3B model to kare yüzde 22 alan çelik tavşan; fold-and-cut tek düz kesik herhangi şekil; maze folding köşe tipi gadget sabit ölçek faktörü. (2) Demaine self-assembly: DNA tile dört kenar tutkal tamamlayıcı yapışır sıcaklıkla ayarlanır; hesaplama modeli GEOMETRİK word-RAM tek komuttan farklı; keyfi şekil log n paralel adım sabit tutkal; replikator bilinmeyen şekli kalıplar 3B fotokopi. (3) Demaine ileri veri yapısı 6.851 planar recreational 6.892: van Emde Boas log w fusion tree log n bölü log w min karekök log n bölü log log n AVL log n den iyi; planar SSSP lineer Baker yaklaşımı BFS katmanları sil bir artı bir bölü k PTAS; oyun NP-hard Tetris Mario Portal Witness Recurse undecidable resim asma. (4) Solomon mesh 6.838: simplicial complex düğüm kenar ÜÇGEN; kenar Dijkstra YANLIŞ çizgeler üçgenlerle konuşamaz; doğru MMP geodezik n log n Dijkstra seviye kümeleri artı pencereleme; pratik fast marching yaklaşık hızlı. (5) Solomon ray casting 6.837 artı redistricting: ray casting O p çarpı n Stanford Bunny 69 bin üçgen 2 milyon piksel; sınırlayıcı kutu KD tree uzay bölme ağacı O p log n sezgisel; scene graph DAG 100 sandalye; GPU SIMD 30 fps; redistricting bağlı partisyon en iyi plan NP-hard tek düze örnekleme Hamiltonian indirgeme Yüksek Mahkeme. Birleştirici tema: 6.006 nın altı aracı sınıfta kalmıyor origami katlamadan DNA self-assembly ye mesh geodeziğinden ray casting ve politik gerrymandering e kadar her gerçek araştırma probleminde karşına çıkar algoritmalar her yerde 6.006 kaçınılmaz buradan 6.046 CS 6515 ve uzmanlık derslerine.

33.2 1. Üç Geometrici + Jason’ın Origami Yolculuğu

Bu dönemin üç hocası da geometriyle ilgilenir. Jason Ku makine mühendisi olarak başladı; tutkusu origamiydi. Origami modelleri tasarlarken kullandığı yöntemlerin aslında algoritma olduğunu sonradan fark etti. Demaine ile origami + katlanabilir yapılar (uzay uçuşu, açılır köprü/barınak, yeniden yapılandırılabilir madde) üzerine çalışmaya başladı — “telefonun maddesini yeniden programla” hayali (yazılım gibi maddeyi katla).

Bu ders, 6.006’nın tüm araçlarının gerçek araştırmada nasıl döndüğünü gösteren bir vitrindir: NP-hardness (Ders 28), DP (Quiz 3), çizge (Quiz 2), veri yapısı (Quiz 1), approximation, hesaplama modeli. Üç hoca sırayla origami, self-assembly, ileri veri yapıları, mesh geodeziği, ray casting ve redistricting örneklerini açar.

33.3 2. Demaine — Computational Origami (6.849)

İki problem tipi:

  • Tasarım (design): hedef şekil → kıvrım deseni (crease pattern). Genelde çözülebilir.
  • Katlanabilirlik (foldability): verilen kıvrım deseni katlanır mı? Genelde NP-hard (Demaine + Ku, genel foldability’nin NP-hard olduğunu kanıtladı).

“most of those problems are NP-hard.” — Demaine (foldability)

“Her şeyi katlayabilirsin”: yeterince büyük bir kareden herhangi bir poligon/3B yüzey katlanabilir (90’lar; ince şeride katla + zigzag — ama malzemenin tamamına yakınını çöpe atar, korkunç verimsiz). Modern hedef: ölçek faktörünü küçült. Origamizer (Tomohiro Tachi; Demaine+Ku analiz etti): 3B model → kareden kat, %22 alan (çelik tavşan). Maze folding (ilk Demaine+Ku makalesi): dikdörtgenden labirent; her köşe tipi (derece 4/3/2) için küçük gadget kıvrımları tasarla, sınırları uyumluysa yapıştır → keyfi n×n labirent sabit ölçek faktörüyle.

Fold-and-cut: kâğıdı düz katla + tek düz kesik → herhangi bir şekil (kuğu, melekbalığı, MIT logosu). Demaine’in ilk computational origami problemi; algoritma, çizdiğin herhangi bir çizgenin tüm kenarlarını hizalayan kıvrım desenini hesaplar. Şekil 33.2 bu üç fikri (tasarla vs katla, Origamizer, fold-and-cut + maze) tek panoda toplar — sayılar yalnız kaynak-alıntılıdır (%22 alan; sabit ölçek), motor rakamı değil.

İpucuBuilder Notu — NP-hardness pratiği refleksi

Foldability’nin NP-hard olması, bir builder için “bu problemi her zaman verimli çözen genel algoritma arama, yön değiştir” refleksidir. Tasarım yönü (şekil → desen) çözülebilirken karar yönü (desen → katlanır mı?) NP-hard — aynı domain’in iki yönü farklı zorlukta. Bu, Ders 28’deki reduction pratiğinin gerçek araştırmadaki karşılığı: yönü değiştirip kolay tarafa odaklan. OMSCS CS 6515’te bu, “verilen problemin hangi yönünün polinom, hangisinin NP-hard olduğunu tanıma” becerisidir.

Şekil 33.2: Computational origami (Demaine, L21 §1-2 VİTRİN): tasarla vs katla · Origamizer · fold-and-cut + maze. KART 1 ‘design vs foldability’ (iki yön, iki zorluk): şekil → katlama deseni ÇÖZÜLEBİLİR (yeşilimsi — verilen 3B hedefe ulaşan kıvrım desenini ÜRETMEK için algoritma var) vs desen → katlanır mı? NP-hard (kırmızı — bir desenin düz katlanabilirliğine KARAR vermek NP-zor; Demaine + Bern–Hayes, Ku kanıta katkı). KART 2 ‘Origamizer’ (amber vurgu): 3B model (çelik tavşan) → TEK kare kâğıt kıvrım deseni (Tachi); rozet ‘%22 alan (çelik tavşan)’ kaynak-alıntılı verim; 90’ların ‘şerit yöntemi’ üstü çizik ‘korkunç verimsiz’. KART 3 ‘fold-and-cut + maze’: düz katla + TEK düz kesik → herhangi düz-kenarlı şekil (kuğu silueti); maze folding köşe-tipi gadget’ları (derece 4/3/2) + sabit ölçek. Alt şerit: origami yolculuğu — yöntemlerin aslında ALGORİTMA olduğunu sonradan fark etti. KAVRAMSAL VİTRİN (sayı yalnız kaynak-alıntılı: %22 alan, sabit ölçek — motor rakamı değil).

33.4 3. Demaine — Self-Assembly (Geometrik Hesaplama Modeli)

DNA şeritleriyle kendiliğinden birleşen kareler (tile): her karenin 4 kenarında “tutkal” (glue) deseni; yalnız tamamlayıcı desenler yapışır; sıcaklıkla ayarlanır (yüksek sıcaklık → yapışmaz, düşük → yanlış da yapışır). İyi ayarlanırsa ikili sayaç kuran bir sistem tasarlanır.

“the model of computation is geometric.” — Demaine

Bu, 6.006’nın “tek tek çalışan komut” modelinden çok farklı: program, o anda yüzen karelerin birleşimi. Bu modelde keyfi bir şekli log n paralel adımda (sabit sayıda tutkalla) inşa etmek kanıtlanabilir; hatta bir replikatör (bilinmeyen şekli kalıplayıp 3B fotokopi) kurulabilir. Şekil 33.3 DNA tile şemasını (tamamlayıcı kenarlar yapışır, sıcaklık ayarı) word-RAM vs geometrik model karşılaştırmasıyla yan yana koyar.

İpucuBuilder Notu — hesaplama modeli sınıfta kalmaz

Self-assembly’nin “geometrik hesaplama modeli”, word-RAM’in tek-işlemci komut sırası varsayımının bir alternatifidir — Ders 31’deki 6.046 köprüsünün “model değişimi” maddesi burada fiziksel forma kavuşur. Klasik analiz “adım sayısı”nı sayar; geometrik modelde program yüzen karelerin eş-zamanlı birleşimidir, paralellik fiziksel. Bir builder için ders: bir problemin karmaşıklığı hangi makine modelinde analiz ettiğine bağlıdır; quantum, GPU/SIMD ve DNA computing aynı “modeli değiştir, yeni alt sınırlar al” felsefesini paylaşır.

Şekil 33.3: Demaine vitrini: DNA öz-montaj (self-assembly) + GEOMETRİK hesaplama modeli (L21 §3 VİTRİN). SOL panel DNA karoları (tile): 4 kenarı tutkal (glue) desenli kareler; tamamlayıcı kenarlar (girinti ↔︎ çıkıntı) kendiliğinden yapışır — T1.sağ (tutkal A) ↔︎ T2.sol (tutkal A) amber okla YAPIŞIR; farklı tutkal (A ↔︎ B) yapışmaz (× işareti). Alt şerit sıcaklık ayarı: YÜKSEK → hiç yapışmaz, DÜŞÜK → yanlış kenarlar da yapışır. SAĞ panel ‘hesaplama modeli GEOMETRİK (Demaine)’: word-RAM vs geometrik mini-tablo (yürütme komut-sırası vs yüzen karelerin eş-zamanlı birleşimi; paralellik ardışık vs fiziksel paralel; durum bellek-hücreleri vs kenar-tutkalları + sıcaklık) + iki rozet (keyfi şekil SABİT tutkal kümesiyle log n PARALEL adımda kurulur; replikator bilinmeyen şekli kalıplar → 3B fotokopisini çıkarır). KAVRAMSAL VİTRİN (sayı yok; log n / ikili sayaç iddiaları Demaine L21 kaynak-alıntılı, motor rakamı değil).

33.5 4. Demaine — İleri Veri Yapıları, Planar Çizgeler, Recreational

İleri Veri Yapıları (6.851): dinamik sıralı küme (insert/delete + find-next/prev). 6.006’da gördüğümüz set AVL (Ders 10) = \(O(\log n)\). Daha iyisi word-RAM’de: van Emde Boas = \(O(\log w)\) (w = kelime boyutu), fusion trees = \(O(\log n / \log w)\). İkisinin min’i ≈ \(O(\sqrt{\log n / \log\log n})\) — AVL’nin \(\log n\)’inden hayli iyi (sıralı küme için sabit-zaman imkânsız, kanıtlanır). Bunlar kaynak-formüldür (Demaine L21), motor değil.

Planar Çizgeler: yolu düzlemde çizişimsiz (veya az çizişimli) çizge. Planar’da SSSP lineer (Dijkstra’nın \(v \log v\)’si yerine — Ders 19); planar Bellman-Ford ≈ lineer (\(v \log^2 v / \log\log v\), \(v^2\) yerine). Baker yaklaşımı (1994): BFS katmanlarına ayır (Ders 13’teki BFS katmanları), her k’ıncı katmanı sil (~\(1/k\) kayıp) → \(1 + 1/k\) yaklaşım; kalan sabit-katmanlı yapı “birkaç döngü” → fancy DP polinom-zamanda çözer → PTAS (her ε için \(1+\varepsilon\), ama büyük ε daha yavaş).

Recreational (6.892): oyun/bulmaca zorluk kanıtları. Tetris, Super Mario, Portal, The Witness NP-hard; “Recurse” undecidable (mükemmel oynayan algoritma yok). Ayrıca balon büküm, resim-asma problemi (iki çividen herhangi biri çıkınca resim düşsün; monoton Boole fonksiyonları; Rivest ile sonuç).

33.6 5. Solomon — Mesh Üzerinde En Kısa Yol (Dijkstra Neden Yanlış)

Solomon uygulamalı geometri/graphics çalışır (6.837 Computer Graphics, 6.838 geometri işleme). Ana nesne: simplicial complex — düğüm + kenar + üçgen kümesi. 6.006’da çizge sadece düğüm+kenardır; graphics’te bu bir yüzeydir.

Tuzak: üçgen mesh’te iki köşe arası en kısa yol için kenarlarda Dijkstra (Ders 19) koşturmak yanlış (sık yapılan hata). Çapraz geçen gerçek geodezik daha kısadır:

“graphs don’t know how to talk to triangles.” — Solomon

Şekil 33.4 bunu motor tanığıyla gösterir: birim kare mesh’te (4 köşe, 2 üçgen, köşegen kenar yok) karşı köşeye kenar-Dijkstra iki eksen-paralel kenar boyunca \(2.0\) verir; gerçek geodezik üçgen yüzeyini çaprazlar ve \(\sqrt{2} \approx 1.4142\) olur. Oran \(\sqrt{2}\) — kenar-Dijkstra %41 daha uzun. Tüm bu sayılar mesh_edge_vs_geodesic()’ten canlı gelir (kenar yolu \(= 2.0\), geodezik \(= \sqrt{2}\), oran \(= \sqrt{2}\); assert ile); _verify D32 koşusunda PASS.

Doğru algoritma MMP (üçgen alan üzerinde geodezik, \(O(n \log n)\)) — Dijkstra’nın mesafe-fonksiyonu seviye kümeleri fikrini genişletir (ama pencereleme ile). Pratikte fast marching (geodeziğin yaklaşığı; daha hızlı, kolay, neredeyse ayırt edilemez) tercih edilir.

Şekil 33.4: Çizgeler üçgenlerle konuşamaz: kenar-Dijkstra (2.0) vs gerçek geodezik (√2) — Solomon L21 §5 İMZA, motor-tanıklı. SOL birim kare mesh: 4 köşe (0,0)(1,0)(1,1)(0,1), iki üçgen yüzey, köşegen KENAR yok; eksen-paralel kenarlar w=1 ince slate; kenar-Dijkstra yolu (0,0)→(1,0)→(1,1) kalın slate KIRIK yol ‘uzunluk 2.0’; gerçek geodezik (0,0)→(1,1) düz amber çapraz ‘√2 ≈ 1.414’; ‘%41 daha uzun!’ rozeti. Tüm sayılar mesh_edge_vs_geodesic()‘ten CANLI: kenar yolu 2.0, geodezik √2, oran √2, yüzde (√2−1)·100 ≈ 41 (assert). SAĞ kural kutuları: Sorun çizge (düğüm+kenar) üçgenlerin İÇİNDEN geçen yolları BİLMEZ; Solomon alıntısı ’graphs don’t know how to talk to triangles’; Doğru çözüm MMP kesin geodezik O(n log n) — Dijkstra’nın seviye-kümeleri + pencereleme (Mitchell–Mount–Papadimitriou); Pratik fast marching eikonal denklem ızgarada yaklaşık hızlı. Alt not: graphics’te simplicial complex = düğüm + kenar + ÜÇGEN; 6.006 çizgesi yetmez.

33.7 6. Solomon — Ray Casting & Stanford Bunny

Ray casting (6.837): her ekran pikseli için, gözden bir ışın gönder, çarptığı ilk nesneyi bul → renk. Maliyet: piksel sayısı × nesne sayısı = \(O(p \cdot n)\). Stanford Bunny (69.000 üçgen) × 1080p (~2 milyon piksel) = iki büyük sayının çarpımı, çok yavaş. Bu rakamlar (69.000 üçgen, ~2 milyon piksel, ~30 fps bütçesi) kaynak verisidir (L21 birebir), motor değil. Her graphics özelliği (saydamlık, yansıma, parçalanma) maliyeti artırır.

Çıkış: veri yapıları + algoritmalar. Tavşanı bir kutuya koy; ışın kutuya değmiyorsa tavşana değmez (\(O(1)\) hızlanma). Kutuyu özyinelemeli ikiye böl → uzay-bölme ağacı (KD tree). İdealde \(O(p \log n)\) (ağaçta gez) — ama bu bir sezgisel; veriye bağlı, ortalama \(\log n\). Scene graph: sahnedeki 100 özdeş sandalye için 100 model saklama; bir sandalye + her kopya için bir dönüşüm → DAG (yönlü çevrimsiz çizge). GPU = SIMD paralellik; numerical + approximation; algı koruma (~30 fps bütçesi).

Şekil 33.5 bu hızlandırmayı Solomon örneğinin 1B analoğuyla motor-tanıklı gösterir: aynı sahnede (seed-32 ile 30 nesne × 25 ışın) naif ray_cast_naive 750 karşılaştırma, indexed ray_cast_indexed (sırala + ikili arama) 409 karşılaştırma yapar — ve hit’ler birebir aynı (doğruluk korunur, yalnız iş azalır). Bu sayaçlar motordan canlı gelir (assert ile); _verify D32 koşusunda daha geniş 40-rastgele sahnede de naif toplamı indexed toplamından daima büyüktür (motor tanığı; örn. 5526 > 4494 türünden — naif > indexed daima).

İpucuBuilder Notu — KD tree / collision gerçek-sistem

Ray casting’in \(O(p \cdot n) \to O(p \log n)\) kazancı, bir builder için uzay-bölme veri yapısı (KD tree, BVH, octree) refleksidir: “her nesneyi her sorgu için tarama, sahneyi hiyerarşik kutula”. Aynı yapı çarpışma tespiti (collision detection), 3B tarama, oyun navigasyonu ve nearest-neighbor aramada döner. Dikkat çekici nokta Solomon’ın “sezgisel\(\log n\) veri dağılımına bağlı” uyarısıdır: gerçek sistemde garanti değil, ortalama-durum performans mühendisliğidir. Scene graph’ın DAG’ı (Ders 19’daki DAG soyutlaması) ise tekrar eden geometriyi bir kez saklayıp dönüşümle paylaştırır — bellek mühendisliğinin temel deseni.

Şekil 33.5: Ray casting hızlandırma: naif O(p·n) → sıralı + ikili arama (uzay-bölme ağacı) — Solomon L21 §6 İMZA, motor-tanıklı. ÜST 1B model şeması (deterministik seed-32 sahne: 30 nesne × 25 ışın): sayı doğrusu üzerinde aralıklar (nesneler) + ışın noktaları (amber); NAİF her ışın × her nesne çizgi-demeti (yoğun slate, O(p·n)); INDEXED sırala + ikili arama (seyrek amber, ~O(p log n)). Sayaç rozetleri MOTORDAN: naif karşılaştırma 750 vs indexed 409 (kazanç 750→409); ‘hit’ler BİREBİR aynı’ doğruluk tanığı (yeşil). Tüm sayaçlar ray_cast_naive / ray_cast_indexed’ten CANLI (assert: c1==750, c2==409, hit’ler eşit). ALT Stanford Bunny anlatım kutusu (kaynak L21 §6): Naif O(p·n) = 69.000 üçgen × ~2 milyon piksel (1080p) iki dev sayının çarpımı → sınırlayıcı kutu O(1) eleme → uzay-bölme ağacı (KD) → ideal O(p log n) SEZGİSEL veriye bağlı (Solomon). Scene graph: 100 özdeş sandalye = 1 model + 100 dönüşüm = DAG. Donanım: GPU SIMD paralellik + numerical/approximation + ~30 fps render bütçesi. Bunny rakamları kaynak L21 (motor değil); sayaçlar motordan.

33.8 7. Solomon — Politik Redistricting (Gerrymandering)

ABD’de Kongre seçim bölgelerini çizmek (gerrymandering: sınırları çizerek sonucu mühendislik). Bölgeler = bağlantılı çizge partisyonları (düğümleri bağlı kalacak şekilde kümele). Sorunlar: (1) tek bir “en iyi” plan yok — birden çok kriter (bağlantılılık, nüfus dengesi, kompaktlık) dengelenir; (2) makul bir amaç fonksiyonu için bile en iyi planı üretmek NP-hard.

“generating the best possible districting plan is NP-hard.” — Solomon

Solomon’ın grubu plan üretmek yerine analiz eder: “önerilen plan, tüm olası partisyonlar uzayına göre nerede?” Ama tek-düze örnekleme (her partisyon eşit olasılık) bile hesaplama olarak zor (P ≠ NP varsayımıyla; Hamiltonian cycle’a indirgenir — Ders 28’deki reduction aracı). Bu sonuç bir Yüksek Mahkeme davasında atıflandı. Şekil 33.6 bu iki zorluğu (en iyi plan + örnekleme) iki geçerli bağlı partisyon planının yanında gösterir.

İpucuBuilder Notu — MCMC / hukuk + algoritma kesişimi

Redistricting analizi, NP-hardness’ın sosyal-bilim ve hukuk kesişimindeki en somut örneğidir: “en iyi planı üretemiyoruz, ama önerilen bir planı tüm partisyon uzayına göre örnekleyerek konumlandırabiliriz”. Tek-düze örnekleme bile zor olduğundan (Hamiltonian indirgemesi), pratikte MCMC (Markov Chain Monte Carlo) ile yaklaşık örnekleme kullanılır — Ders 31’in 6.046 köprüsündeki “randomized + sampling” maddesinin gerçek araştırma karşılığı. Bir builder için ders ikiyönlü: (1) örnekleme araçlarına temkinli yaklaş (yanlılık olabilir), (2) algoritmik analiz mahkeme delili olabilir — hesaplamalı sosyal bilim gerçektir.

Şekil 33.6: Politik redistricting (Solomon, L21 §7 VİTRİN): bağlı partisyonlar · en iyi plan + örnekleme NP-hard. SOL panel 5×5 ızgara-çizge, iki BAĞLI partisyon örneği yan yana: Plan A (yatay şeritler) ≠ Plan B (girintili sınırlar) — AYNI çizge, FARKLI bağlı kümeleme (her bölge = kenar-komşu çizgede bağlı düğüm kümesi, 5 bölge × 5 düğüm; bölge-içi kenarlar kalın koyu, kesilen sınırlar ince soluk). Not: tek bir ‘en iyi’ plan YOK — bağlılık + nüfus dengesi + kompaktlık birlikte dengelenir. SAĞ panel iki hesaplama zorluğu: (1) en iyi planı ÜRETMEK NP-hard (makul amaç fonksiyonu için bile — Solomon, kırmızı); (2) tek-düze ÖRNEKLEME bile zor (her partisyonu eşit olasılıkla çekmek P ≠ NP varsayımıyla zor — Hamiltonian cycle’a indirgenir, kırmızı). Analiz notu: Solomon grubu plan ÜRETMEZ — ANALİZ eder (‘önerilen plan tüm olası partisyonlar uzayına göre nerede?’). Rozet (amber): sonuç bir Yüksek Mahkeme davasında atıflandı. Alt not: Ders 28 köprüsü — ‘indirgeme’ (Hamiltonian → partisyon örnekleme) = NP-hardness aracı. KAVRAMSAL VİTRİN (sayı yok; NP-hard/örnekleme/Yüksek Mahkeme iddiaları kaynak-alıntılı).

33.9 Bu Dersin Özeti

  1. Üç hoca, tek tema: 6.006 araçları gerçek araştırmada her yerde.
  2. Demaine — origami: design (çözülebilir) vs foldability (NP-hard); Origamizer; fold-and-cut; maze folding.
  3. Demaine — self-assembly: DNA tile, geometrik hesaplama modeli (log n paralel).
  4. Demaine — 6.851/planar/6.892: van Emde Boas (log w) < AVL (log n); planar SSSP lineer; Baker PTAS; oyun NP-hardness.
  5. Solomon — mesh: Dijkstra kenarlarda yanlış (çizge üçgenle konuşmaz); MMP geodezik (n log n).
  6. Solomon — graphics: ray casting \(O(p \cdot n)\) → uzay-bölme ağacı ≈ \(O(p \log n)\); scene graph DAG; SIMD/GPU.
  7. Solomon — redistricting: gerrymandering; en iyi plan + tek-düze örnekleme NP-hard (Hamiltonian indirgemesi).
ÖnemliTek Bir Cümle

6.006’nın araçları — NP-hardness, DP, çizge, veri yapısı, approximation, hesaplama modeli — origami katlamadan DNA self-assembly’ye, mesh geodeziğinden ray casting ve politik gerrymandering’e kadar her gerçek problemde karşına çıkar: algoritmalar her yerde, 6.006 kaçınılmaz.

33.10 Kontrol Soruları

Cevap: Tasarım (design): hedef şekilden başlayıp onu üreten kıvrım desenini (crease pattern) bulmak — şekil → desen. Genelde çözülebilir (algoritmalar var; örn. Origamizer 3B modeli kareden katlar, %22 alan). Katlanabilirlik (foldability): verilen bir kıvrım deseninin düz katlanıp katlanamayacağını belirlemek — desen → “katlanır mı?”. Demaine ve Ku bu genel problemin NP-hard olduğunu kanıtladı. Bu yüzden araştırma daha çok (daha kolay olan) tasarım tarafına odaklanır. Şekil 33.2 iki yönü (“kurmak ≠ çözmek”) yan yana gösterir.

Cevap: Çizge (düğüm+kenar) üçgenlerin içinden geçen yolları bilmez — Dijkstra yalnız kenarlar boyunca gidebilir. Sol-üstten sağ-alta giden gerçek geodezik bir üçgenin yüzeyini çaprazlama kestiğinde daha kısa olur; oysa kenar-Dijkstra düğümden düğüme zikzak çizmek zorundadır ve daha uzun bir yol bulur. Şekil 33.4 motor tanığıyla gösterir: birim karede kenar-Dijkstra \(2.0\), gerçek geodezik \(\sqrt{2} \approx 1.4142\) — %41 fark. Solomon’ın deyişiyle “graphs don’t know how to talk to triangles”. Doğru çözüm MMP algoritmasıdır (geodezik, \(O(n \log n)\)); Dijkstra’nın mesafe seviye kümeleri fikrini üçgen alana (pencereleme ile) genişletir. Pratikte fast marching (yaklaşık ama hızlı) sık kullanılır.

Cevap: Naif ray casting her piksel için tüm nesneleri (üçgenleri) tarar → \(O(p \cdot n)\). Stanford Bunny 69.000 üçgen × ~2 milyon piksel (1080p) = iki büyük sayının çarpımı, çok yavaş; her graphics özelliği (yansıma, saydamlık) bunu artırır. Çözüm: tavşanı bir sınırlayıcı kutuya koy — ışın kutuya değmezse hiçbir üçgeni kontrol etme (\(O(1)\) eleme). Kutuyu özyinelemeli ikiye böl → uzay-bölme ağacı (KD tree); ışın ağaçta gezerek çoğu üçgeni atlar, ideal \(O(p \log n)\). Şekil 33.5 bunu motor-tanıklı 1B sahnede gösterir (naif 750 → indexed 409 karşılaştırma, hit’ler birebir aynı). Dikkat: bu bir sezgisel — gerçek \(\log n\) garantisi değil, veri dağılımına bağlı ortalama davranış. (Ayrıca özdeş nesneler scene graph = DAG ile bir kez saklanır.)

Cevap: İki katman: (1) En iyi plan NP-hard: seçim bölgeleri bağlantılı çizge partisyonlarıdır; makul herhangi bir amaç fonksiyonu (bağlantılılık + nüfus dengesi + kompaktlık) için en iyi partisyonu bulmak NP-hard’dır — üstelik kanun zaten “en iyi”yi şart koşmaz. (2) Tek-düze örnekleme zor: bir planı, tüm olası partisyonlar uzayından rastgele eşit-olasılıkla çekilen bir planla kıyaslamak için, her partisyonu \(1/N\) olasılıkla (\(N\) = toplam partisyon sayısı) üreten bir araç gerekir; bu P ≠ NP varsayımıyla zordur (Hamiltonian cycle’a indirgenir — Ders 28 reduction aracı). Yani gerrymandering analizinde kullanılan örnekleme araçlarına temkinli yaklaşmak gerekir — sonuç bir Yüksek Mahkeme davasında bile atıflandı.

33.11 Egzersizler

Egzersiz 1. Bu derste geçen her araştırma örneğini bir 6.006 kavramıyla eşle (foldability→NP-hard, mesh path→Dijkstra/geodezik, ray casting→ağaç/log n, scene graph→DAG, redistricting→Hamiltonian reduction).

Egzersiz 2. van Emde Boas (\(\log w\)) ile fusion tree (\(\log n / \log w\)) sınırlarının min’ini al; \(w = \log n\) ve \(w = n\) için hangisi kazanır?

Egzersiz 3. Baker yaklaşımında her 4. BFS katmanını silmek neden \(1 + 1/4\) (yani %25 içinde) bir çözüm verir? \(k\) arttıkça runtime’a etkisi?

Egzersiz 4. Ray casting’i scene graph (DAG) ile birleştir: 100 özdeş sandalyeli bir sahnede bellek ve render maliyeti nasıl değişir?

Egzersiz 5. Self-assembly’nin “geometrik hesaplama modeli”ni word-RAM ile karşılaştır: hangi işlemler paralel, hangi maliyet farklı?

33.12 6.006 Tamamlandı — Kurs Kapanışı

Bu, 6.006’nın son dersiydi. 32 video boyunca: hesaplama modeli → veri yapıları → sıralama → hashing → ağaçlar/yığınlar → çizgeler/BFS/DFS → en kısa yollar (BFS/DAG/Dijkstra/Bellman-Ford/Johnson) → dinamik programlama (SRTBOT) → hesaplama karmaşıklığı (P/NP) → sentez → araştırma vitrini. Şekil 33.7 bu 32-ders yolculuğunu tek bir nehir-harita olarak — dört Quiz bloğu, üç hoca, yedi kilometre taşı — gösterir; kitabın kapanış görseli.

“I hope you enjoyed this class… algorithms are everywhere.” — Demaine (kapanış)

Sonraki adım (Builder/OMSCS): 6.046 (CS 6515 Graduate Algorithms) ve uzmanlık dersleri (6.849 folding, 6.851 ileri veri yapısı, 6.837/6.838 graphics/geometry, 6.892 recreational).

Şekil 33.7: 6.006 — 32 dersin tam haritası (İMZA KURS KAPANIŞI): dört Quiz bloğu, üç hoca, tek nehir. 32 ders-düğümü soldan sağa DÖRT blok-bandında dizilir: Quiz 1 (D1-12 + D14: modeller · veri yapıları · sıralama · hashing · ağaçlar, slate-soluk); Quiz 2 (D13-22: çizgeler BFS/DFS/SSSP/Johnson, slate); Quiz 3 (D23-30: dinamik programlama, amber-soluk); Final (D31-32: sentez + vitrin, amber). ÜÇ HOCA şeritleri (altta): Solomon / Ku / Demaine hangi dersleri taşır; D32 ÜÇÜ BİRDEN (amber yıldız: Ku · Demaine · Solomon). Yedi kilometre taşı rozeti: D1 GİRİŞ · D14 QUIZ 1 · D22 QUIZ 2 · D27 DP FİNALİ · D28 P–NP · D30 QUIZ 3 · D32 FINAL. Üst köprülü oklar (çizge & DP omurga akışı): D16 relax→BF, D18 BF→Dijkstra, D19 Dijkstra→Johnson, D23 SRTBOT→pseudo, D27 pseudo→NP. Kapanış rozeti: ‘algorithms are everywhere — 6.006 is unavoidable (Demaine + Solomon, L21)’. KAVRAMSAL KURS-YAPISI figürü (ders numaraları + blok yapısı; sayısal motor iddiası yok).
UyarıKurs Kapanışı + Buradan Nereye (Ders 32 — SON DERS)

Ders 32 (L21) kursun SON dersiydi — sonraki ders yok. Üç geometrici hoca (Ku · Demaine · Solomon) 6.006 araçlarının gerçek araştırmadaki vitrinini kapattı. Ders 31’in (L20) omurga görüşü (veri yapısı → çizge → DP) ve 6.046 köprüsü, burada nihai bağlamına oturdu: algoritmalar her yerde.

Buradan nereye:

  • 6.046 (Design and Analysis of Algorithms) = OMSCS CS 6515 (Graduate Algorithms) — doğal devam dersi; Ders 31’deki 6.046 köprüsü (union-find, MST, max-flow, randomized, approximation, model değişimi) bunun haritasıdır.
  • Uzmanlık dersleri: 6.849 (computational origami / folding), 6.851 (ileri veri yapısı: van Emde Boas, fusion tree), 6.837 (computer graphics: ray casting, scene graph), 6.838 (geometri işleme: mesh, geodezik), 6.892 (recreational: oyun NP-hardness).
  • Geriye köprüler: Dijkstra (Ders 19) mesh geodeziğinde, NP-hard/reduction (Ders 28) foldability ve redistricting’te, AVL (Ders 10) van Emde Boas karşılaştırmasında, BFS katmanları (Ders 13) Baker PTAS’ında karşına çıktı.

33.13 Anahtar Kavramlar (Cheat Sheet)

Hoca / Alan Örnek 6.006 bağlantısı
Demaine — Origami (6.849) design vs foldability; fold-and-cut NP-hardness, reduction (Ders 28)
Demaine — Self-assembly DNA tile, ikili sayaç Geometrik hesaplama modeli, paralel
Demaine — İleri DS (6.851) van Emde Boas log w, fusion tree AVL (log n) sınırını aşma (Ders 10)
Demaine — Planar / Recreational Baker PTAS; oyun NP-hard BFS (Ders 13), approximation, hardness
Solomon — Mesh (6.838) MMP geodezik (Dijkstra yetmez) Dijkstra seviye kümeleri (Ders 19)
Solomon — Graphics (6.837) ray casting; scene graph \(O(p \cdot n) \to\) ağaç \(\log n\); DAG
Solomon — Redistricting uniform sampling zor Hamiltonian reduction, P≠NP (Ders 28)

33.14 Builder ve OMSCS Bağlantıları

İpucu7 köprü

Bu vitrin dersi, 6.006’nın altı aracının gerçek araştırma ve sistem mühendisliğine nasıl bağlandığını gösterir; köprülerin özeti:

  1. NP-hardness pratiği → foldability, redistricting, oyun zorluğu: “bu problem verimli çözülemez” refleksi (OMSCS CS 6515).
  2. İleri veri yapısı (6.851) → van Emde Boas/fusion tree; gerçek sistemlerde \(\log n\)’i kırma.
  3. Planar/approximation (PTAS) → routing, harita, ağ optimizasyonu: “yapı varsa daha hızlı”.
  4. Mesh geodezik (MMP/fast marching) → robotik yol planlama, 3B tarama, oyun navigasyonu.
  5. Uzay-bölme ağaçları + scene graph (DAG) → render, çarpışma tespiti, GPU; gerçek performans mühendisliği.
  6. Geometrik/self-assembly model → DNA computing, moleküler nano-üretim farkındalığı.
  7. Redistricting/sampling → MCMC, hesaplamalı sosyal bilim, hukuk+algoritma kesişimi.

ÖnemliTek bir şey alıp gideceksen

6.006’nın altı aracı — NP-hardness, DP, çizge, veri yapısı, approximation, hesaplama modeli — sınıfta kalmıyor; origami katlamada (design çözülebilir, foldability NP-hard), DNA self-assembly’de (geometrik hesaplama modeli), mesh üzerinde en kısa yolda (Dijkstra yetmez → MMP geodezik), ray casting’de (\(O(p \cdot n) \to\) uzay-bölme ağacı + scene graph DAG) ve politik gerrymandering’de (en iyi plan + örnekleme NP-hard) gerçek araştırma problemlerine dönüşüyor. Üç geometrici hocanın ortak mesajı tek: algoritmalar her yerde, 6.006 kaçınılmaz. Buradan 6.046 (CS 6515) ve uzmanlık derslerine.