Not 02 · Hafta 2 · 8 Ekim 2026 · Bölüm 1/3

Sezgiseller için Problem Formülasyonu

Bir üst-sezgisel şehirleri, kamyonları ya da sunucuları tanımaz; yalnızca bizim tanımladığımız matematiksel durum uzayında dolaşır. Bu not, o uzayı kuran dört kararı ve beş prototip problemde nasıl verildiklerini anlatır.

Bu notta
  1. Algoritmik arayüz
  2. Dört temel karar
  3. Temsil ve kodlama
  4. Amaç ve değerlendirme
  5. Olursuzluğu ele almak
  6. Komşuluk operatörleri
  7. Beş prototip problem
  8. TSP
  9. 0-1 sırt çantası
  10. Graf boyama
  11. Kapasiteli araç rotalama
  12. Hub yerleşimi
  13. Proje konuları
  14. Formülasyondan aramaya

Algoritmik arayüz

Algoritma tarafı

Üst-sezgiseller probleme kördür

Yerel arama, tabu arama ve yinelemeli yerel arama (ILS) şehirleri, kamyonları ya da sunucuları anlamaz. Yalnızca matematiksel durum uzaylarında gezinirler.

Modelleme tarafı

Formülasyon araziyi belirler

Seçtiğimiz kodlama ve hamle operatörleri arazinin engebesini, platolarını ve yerel minimumlarını belirler. İyi modelleme zor arama uzaylarını kolaylaştırır.

Sonuç olarak aynı algoritma, aynı problemde, farklı bir formülasyonla çok farklı davranabilir. Bu yüzden sezgisel tasarımı algoritmayla değil, formülasyonla başlar.

s1: 16s2: 14s3: 12s4: 10s5: 8s6: 6s7: 4s8: 2s9: 1s10: 3s11: 5s12: 7s13: 9s14: 11s15: 13s16: 15Komşuluk A: 1 yerel minimums1: 12s2: 3s3: 1s4: 16s5: 13s6: 10s7: 2s8: 15s9: 5s10: 9s11: 6s12: 8s13: 4s14: 7s15: 11s16: 14Komşuluk B: 5 yerel minimumyerel minimumglobal minimum (aynı zamanda yerel)çubuk yüksekliği = g (düşük daha iyi)
Şekil 1. Aynı on altı aday çözüm, aynı \(g\) değerleri; değişen tek şey hangi çözümün hangisine komşu olduğu (yan yana çubuklar komşudur). A komşuluğunda arazi tek bir vadidir ve her yerel arama global minimuma iner. B komşuluğunda beş ayrı vadi oluşur; yerel arama başladığı yere göre bunlardan birinde takılır. Problemi değiştirmeden aramayı zorlaştıran ya da kolaylaştıran şey formülasyondur.

Arama formülasyonunun dört temeli

Temsil (representation)
Bir aday çözümün bellekte nasıl kodlandığı.
Değerlendirme (evaluation)
Arama adımlarını yönlendiren kalite puanı.
Kısıtlar (constraints)
Olursuz adayların nasıl ele alınacağı.
Komşuluk (neighborhood)
Bir \(s\) durumundan yapılabilecek geçerli geçişler, yani hamleler.

Bu dört karar verildiğinde arama uzayı, her noktanın kalitesi ve noktalar arasındaki yollar tanımlanmış olur. Algoritma bundan sonra yalnızca bu yollarda nasıl yürüneceğini seçer.

formülasyon: problem bilgisi bu dört kutuda1 · Temsils: bit, permütasyon, renk2 · KomşulukN(s): 1-flip, 2-opt, swap3 · Kısıtlarreddet · cezalandır · onar4 · Değerlendirmeg(s′) = f(s′) + λ·ihlalalgoritma seçer: s := s′probleme kör (SA, TS, ILS…)g değerleriyeni s
Şekil 2. Bir yerel arama adımında dört kararın yeri. Temsil mevcut çözümü tutar, komşuluk aday hamleleri üretir, kısıt yönetimi olursuz adaylara ne olacağını belirler, değerlendirme her adaya bir sayı verir. Algoritma yalnızca bu sayılara bakarak seçer; şehirleri ya da kamyonları hiç görmez.

Çözüm temsili ve kodlama

İkili vektör

\(s \in \{0, 1\}^n\)

\(i\). bit 1 ise \(i\). eşya çantada ya da \(i\). tesis açık. Kullanım: 0-1 sırt çantası, SAT, tesis yerleşimi. Uzay büyüklüğü \(2^n\).

Permütasyon

\(\pi \in \Pi_n\)

Şehirlerin ziyaret sırası ya da işlerin makinedeki sırası. Kullanım: TSP, iş atölyesi çizelgeleme (job shop), rotalama. Uzay büyüklüğü \(n!\).

Ayrık bölümleme

\(c \in \{1, \dots, K\}^n\)

\(i\). düğümün rengi ya da \(i\). eşyanın kutusu. Kullanım: graf boyama, kutu paketleme, hub ataması. Uzay büyüklüğü \(K^n\).

İkili vektör → sırt çantası10110e1e2e3e4e51 = eşya çantada: e1, e3, e4uzay: 25 = 32 adayPermütasyon → tur3142512345uzay: 5! = 120 sıraRenk vektörü → graf boyama121321v12v21v33v42v5uzay: 35 = 243 aday
Şekil 3. Her temsilde üstteki dizi bellekte tutulan şeydir, alttaki ise onun problemdeki anlamı. İkili vektörde \(i\). bit \(i\). eşyanın çantada olup olmadığını; permütasyonda sıra şehirlerin ziyaret sırasını (3 → 1 → 4 → 2 → 5 → 3); renk vektöründe \(i\). sayı \(v_i\) düğümünün rengini söyler. Bu boyamada hiçbir kenarın iki ucu aynı renkte değildir.

Temsil seçimi bazı kısıtları kendiliğinden sağlayabilir. Permütasyon her şehri tam bir kez içerdiği için TSP'de “her şehir bir kez ziyaret edilir” kısıtı ayrıca denetlenmez. Kötü bir temsil ise olursuz çözümlerle dolu bir uzay yaratır.

Amaç fonksiyonu ve değerlendirme fonksiyonu

Matematiksel gerçek

Amaç fonksiyonu \(f(s)\)

Gerçek dünyadaki maliyeti ya da kârı tanımlayan, değiştirilemez ölçüt.

TSP: km cinsinden toplam tur uzunluğu

Algoritmanın pusulası

Değerlendirme fonksiyonu \(g(s)\)

Komşu geçişleri düzgün biçimde sıralamak için tasarlanmış sezgisel yönlendirme aracı.

SAT: ihlal edilen cümle (clause) sayısı

Neden ikisi ayrı? SAT bir karar problemidir: formül ya sağlanır ya sağlanmaz. Bu iki değerli bilgi aramaya yön vermez, çünkü neredeyse bütün komşular aynı “sağlanmıyor” cevabını verir. “İhlal edilen cümle sayısı” ise her adımda hedefe ne kadar yaklaştığımızı söyler ve \(g = 0\) tam olarak formülü sağlayan bir atama bulduğumuz anlamına gelir. \(g\) ile \(f\) aynı olmak zorunda değildir, ama \(g\)'nin global optimumları problemin çözümlerine karşılık gelmelidir.

f(a): model mi?evet / hayırg(a): sağlanmayancümle sayısı0100002001020100201102100011010211010111atama (x1 x2 x3)000: yerel min.
Şekil 4. Not 03'teki \(F = (x_1 \lor x_2) \land (x_1 \lor \lnot x_2) \land (x_1 \lor \lnot x_3) \land (\lnot x_1 \lor x_2) \land (\lnot x_1 \lor x_3) \land (\lnot x_2 \lor x_3)\) formülünün sekiz ataması. Üstte \(f\): yalnızca 111 modeldir, diğer yedi atama arasında fark yoktur ve arama yön bulamaz. Altta \(g\): atamalar 0, 1, 2 diye sıralanır ve aramaya hangi komşunun daha umut verici olduğunu söyler. 000'ın \(g = 1\) olmasına rağmen bütün komşuları \(g = 2\)'dir; bu bir yerel minimumdur (Not 03, Şekil 7).

Kısıtlar ve olursuzluğun ele alınması

Yaklaşım 1

Katı reddetme (strict rejection)

Yalnızca olurlu uzayda ara; olursuz komşuya hiç gitme.

Risk: olurlu bölge birbirinden kopuk “adalara” bölünebilir ve arama bir adadan ötekine geçemez.

Yaklaşım 2

Ceza ekleme (penalty embedding)

İhlallere izin ver, ama onları yumuşak bir ceza maliyetiyle değerlendirmeye kat:

\(g(s) = f(s) + \lambda \cdot \text{İhlal}(s)\)

Yaklaşım 3

Onarım operatörleri (repair)

Kısıtsız durumları geçerli çözümlere eşle; örneğin fazla dolu çantadan eşya çıkar.

Fayda: algoritmanın basitliği korunur.

1 · Katı reddetmeolursuzgeçiş yasak2 · Cezaolursuz+ λ · ihlal3 · Onarımolursuzolursuz sonar(s)
Şekil 5. Kırmızı zemin olursuz bölge, yeşil adalar olurlu bölgelerdir; yıldız optimumdur. Katı reddetmede arama soldaki adada kalır, çünkü sağdaki adaya giden her yol olursuz noktalardan geçer. Cezada bu geçişe izin verilir, bedeli \(\lambda \cdot\) ihlal kadar daha kötü bir değerlendirmedir. Onarımda olursuz bir aday en yakın olurlu noktaya taşınır.

Ceza katsayısını seçmek

Yukarıdaki formül minimizasyon içindir; maksimizasyonda ceza çıkarılır: \(g(s) = f(s) - \lambda \cdot \text{İhlal}(s)\). \(\lambda\) çok küçükse arama olursuz ama “ucuz” çözümlerde kalır; çok büyükse olurlu bölgenin sınırına yaklaşmak bile pahalı olur ve yöntem pratikte katı reddetmeye döner. Yaygın bir uygulama, \(\lambda\)'yı arama sırasında uyarlamaktır: olursuz çözümler çoğaldıkça artırmak, azaldıkça düşürmek.

olursuz: Σ wi xi > C0102030405005101520kapasite C = 10λ = 1λ = 5ceza terimi λ · max(0, Σ wi xi − C)toplam ağırlık Σ wi xiλ = 5λ = 1
Şekil 6. Sırt çantasındaki ceza terimi kapasite aşılana kadar sıfırdır, sonra aşım miktarıyla doğrusal artar. \(\lambda = 1\)'de bir birim aşım yalnızca 1 birim cezaya mal olur; değeri yüksek bir eşya bu cezayı rahatça karşılar ve arama olursuz bölgede kalabilir. \(\lambda = 5\)'te aynı aşım çok daha pahalıdır.

Bu alt bölüm slaytlarda yok; ceza yaklaşımını uygularken karşılaşılan tipik sorunu özetler.

Komşuluk operatörleri ve hamle topolojisi

Büyüklük ve hız

Komşuluk büyüklüğü

Operatör seçimi arama grafiğinin kenar yoğunluğunu belirler.

Küçük \(N(s)\): hızlı adımlar, sığ yerel minimumlar.
Büyük \(N(s)\): kaliteli hamleler, yüksek CPU maliyeti.

Uygulama şartı

Artımlı Δ-değerlendirme

Güncel SLS uygulamalarının olmazsa olmazı.

Kaçın: her komşu için amacı baştan \(O(n)\)'de hesaplamak.
Hesapla: hamlenin farkını \(\Delta g(s \to s')\) \(O(1)\)'de.

Bir fikir vermesi için tipik komşuluk büyüklükleri: ikili vektörde 1-flip \(n\) komşu; permütasyonda iki eleman takası (swap) \(n(n-1)/2\) komşu; \(n\) şehirli bir turda 2-opt, bitişik olmayan kenar çifti sayısı kadar, yani \(n(n-3)/2\) komşu. Her adımda bütün komşular değerlendiriliyorsa, Δ-değerlendirme bir adımın maliyetini \(n\) kat düşürür.

Beş prototip problem

ProblemAmaçAçıklama
SAT\(F = (l_{11} \lor l_{12}) \land (l_{21} \lor l_{22}) \land \dots\) sağlansınÖnermesel bir formülü sağlayan değişken ataması bul.
TSP\(\min \sum w(u_i, u_{i+1})\)Her düğümü tam bir kez ziyaret eden en düşük ağırlıklı Hamilton çevrimini bul.
KSP\(\max \sum p_i x_i\)Kapasite \(C\)'yi aşmadan kârı en büyükleyen eşya alt kümesini seç.
GCP\(\min \max_i c_i\)Bağlı komşular aynı rengi almayacak şekilde bütün düğümleri en az renkle boya.
VRPtoplam mesafe min.Merkezi bir depodan çıkan, kapasite kısıtlı araç rotaları tasarla.

Gezgin satıcı problemi (TSP)

Temsil ve amaç

Kodlama: permütasyon \(\pi = (\pi_1, \pi_2, \dots, \pi_n)\).

Kısıt: olurluluk temsilin içinde; her düğüm tam bir kez ziyaret edilir.

Amaç: toplam tur kenar ağırlığını en küçükle.

Komşuluk operatörleri

2-opt: iki kenarı kes, aradaki parçayı ters çevirerek yeniden bağla.

Swap: iki şehrin ziyaret sırasını değiştir.

Δ: farkı dört uç noktanın uzaklıklarından \(O(1)\)'de hesapla.

\[ f(\pi) = \sum_{i=1}^{n-1} d(\pi_i, \pi_{i+1}) + d(\pi_n, \pi_1) \]
2-opt hamlesi: kesişen (a,b) ve (c,d) kenarları çıkarılır, (a,c) ve (b,d) eklenir, b ile c arasındaki parça ters çevrilir. Önce a b c d 2-opt Sonra a b c d
Şekil 7. Tur … a → b … c → d … sırasıyla gidiyor. 2-opt kesik çizgili (a, b) ve (c, d) kenarlarını çıkarır, yerine (a, c) ve (b, d) kenarlarını ekler; b'den c'ye giden parça ters yönde dolaşılır ve kesişme ortadan kalkar.

Simetrik TSP'de ters çevrilen parçanın içindeki kenarların uzunluğu değişmez. Bu yüzden hamlenin farkı yalnızca dört uç noktaya bağlıdır:

\[ \Delta f = d(a, c) + d(b, d) - d(a, b) - d(c, d) \]

\(\Delta f \lt 0\) ise hamle turu kısaltır. Tur uzunluğunu baştan \(O(n)\)'de toplamak yerine bu dört terimi hesaplamak, Δ-değerlendirmenin en bilinen örneğidir.

Swap hamlesi ise iki şehrin turdaki yerini değiştirir. İki şehrin her biri iki komşusundan ayrılıp yeni iki komşuya bağlandığı için, şehirler bitişik değilse dört kenar çıkar ve dört kenar girer:

Önce123456π = (1 2 3 4 5 6)swap(2, 5)Sonra123456π′ = (1 5 3 4 2 6)
Şekil 8. swap(2, 5): permütasyonda 2 ile 5'in yeri değişir. Kesikli dört kenar çıkar, yeşil dört kenar girer; (3, 4) ve (6, 1) kenarları aynı kalır. Fark yine sabit sayıda terimle, burada sekiz uzaklıkla, hesaplanır. TSP'de yerel arama için swap genellikle 2-opt'tan daha zayıf bir komşuluktur.

0-1 sırt çantası problemi (KSP)

Model: kodlama ikili dizi \(x \in \{0, 1\}^n\).

\[ \max \sum_{i=1}^{n} p_i x_i \qquad \text{öyle ki} \qquad \sum_{i=1}^{n} w_i x_i \le C,\qquad x_i \in \{0, 1\} \]

Arama mekaniği:

1-flip için Δ da sabit zamanlıdır: \(i\). eşya eklenirse kâr \(p_i\) artar, ağırlık \(w_i\) artar; toplam ağırlık bir değişkende tutulursa yeni ceza da \(O(1)\)'de bulunur.

Graf boyama problemi (GCP)

Atama yapısı

Kodlama: renk vektörü \(c \in \{1, \dots, K\}^{|V|}\).

Değerlendirme: çakışan kenar sayısı, \(g(c) = \bigl|\{(u, v) \in E : c_u = c_v\}\bigr|\).

Hedef: \(g(c) = 0\) olan çakışmasız durumu bulmak.

Komşuluk dinamiği

1-recolor: çakışmada olan tek bir düğümün rengini değiştir.

Kempe zinciri: iki rengin bağlı bir alt graftaki atamalarını takas et.

Üst-strateji: sıfır çakışmaya ulaşınca \(K\)'yı azalt ve yeniden ara.

Önce: g(c) = 11v12v21v31v43v53v6çakışma1-recolorSonra: g(c) = 01v12v21v32v43v53v6v4: renk 1 → 2
Şekil 9. \(K = 3\) renkle bir 1-recolor hamlesi. Düğümdeki sayı rengini gösterir. Solda \(v_3\) ile \(v_4\) aynı renkte (1) ve aralarında kenar var: \(g = 1\). \(v_4\)'ün komşularının renkleri 1, 3 ve 3 olduğu için ona verilebilecek tek çakışmasız renk 2'dir. Hamleden sonra \(g = 0\).

Bu üst-strateji “en az renk” optimizasyon problemini bir dizi karar problemine çevirir: “\(K\) renkle boyanabilir mi?” Her başarılı aramadan sonra \(K\) bir azaltılır; başarısız olunca son başarılı \(K\) en iyi bilinen değerdir.

Kapasiteli araç rotalama (CVRP)

Temsil ve kısıtlar

Kodlama: dev tur (giant tour) ya da depoyla ayrılmış rota listeleri.

Amaç: toplam yol mesafesi + filo kullanımı en küçük.

Kapasite: bir rotadaki müşterilerin toplam talebi ≤ araç kapasitesi \(Q\).

Ceza: \(g(s) = \text{Mesafe}(s) + \lambda \cdot \max(0, \text{rota aşımı})\).

İki düzeyli komşuluk

Rota içi: tek bir tur içinde 2-opt ve düğüm taşıma (relocate).

Rotalar arası taşıma: bir müşteriyi A rotasından B rotasına kaydır.

Cross-exchange: iki rota arasında alt dizileri takas et.

2-opt*: iki bağımsız rotanın kuyruk parçalarını değiştir.

Öncedepo323333A: yük 11 / 10, aşımB: yük 6 / 10crelocateSonra: c, B rotasınadepo323333A: yük 8 / 10B: yük 9 / 10crota Arota Bdüğümdeki sayı = talep, Q = 10
Şekil 10. Rotalar arası taşıma (relocate). Kapasite \(Q = 10\), düğümdeki sayı müşterinin talebidir. Solda A rotasının yükü 11 ile kapasiteyi aşıyor; ceza terimi bu çözümü kötü gösterir. c müşterisi B rotasına taşınınca A'nın yükü 8'e iner, B'ninki 9 olur ve iki rota da olurlu hâle gelir.

Hub yerleşim problemi (p-hub medyan)

Problem

Düğümler: \(n\) başlangıç-varış noktası.

Hub'lar: tam olarak \(p\) düğüm aktarma merkezi olarak seçilir.

İndirim: hub'lar arası akış \(\alpha \lt 1\) katsayısıyla ucuzlar.

Algoritmik yapı

Kodlama: ikili hub vektörü \(y \in \{0, 1\}^n\), \(\sum_i y_i = p\).

Amaç: toplama + aktarma + dağıtım maliyetinin toplamı en küçük.

Komşuluk: 1-exchange, yani açık bir hub'ı kapalı bir düğümle takas et.

1-exchange hamlesi açık hub sayısını \(p\)'de tutar; böylece \(\sum_i y_i = p\) kısıtı temsilin içinde kalır ve hiçbir komşu olursuz olmaz. Her düğümün tek bir hub'a bağlandığı durumda, \(i\)'den \(j\)'ye giden \(W_{ij}\) akışının hub \(k\) ve \(m\) üzerinden tipik maliyeti şöyledir:

\[ W_{ij}\,\bigl(c_{ik} + \alpha\, c_{km} + c_{mj}\bigr) \]
ijkmtoplama cikaktarma α · ckmdağıtım cmjp = 2 hub; i'den j'ye akış k ve m üzerinden gider
Şekil 11. \(p = 2\) hub'lı bir ağ. Her düğüm bir hub'a bağlıdır. \(i\)'den \(j\)'ye giden akış önce \(k\) hub'ına toplanır, hub'lar arasındaki kalın bağlantıda \(\alpha\) indirimiyle taşınır, sonra \(m\)'den \(j\)'ye dağıtılır. 1-exchange hamlesi hub'lardan birini kapatıp başka bir düğümü hub yapar; bütün bağlantılar ve maliyet buna göre değişir.

Maliyet ifadesi slaytta yok; “toplama + aktarma + dağıtım” tanımının yaygın matematiksel karşılığıdır.

Proje konuları: öncelikli uygulama alanları

Slaytlar, dönem projesi için üç uygulama alanında konular öneriyor. Her konunun dayandığı temel problem, formülasyonun nereden başlayacağını gösterir.

KonuTemel problem
Afet yönetimi ve insani lojistik (deprem sonrası müdahale)
Afet sonrası acil tesis ve yardım merkezi yerleşimip-medyan / kapasitesiz hub yerleşim problemi (HLP)
Hasarlı yol ağında acil yardım dağıtımıZaman pencereli araç rotalama (VRPTW)
İnsani yardım hava ikmali ve tahliye için kaynak tahsisiÇok boyutlu 0-1 sırt çantası (MKP)
Avrupa Yeşil Mutabakatı ve sürdürülebilir lojistik
Batarya değişimi ya da şarj duraklı elektrikli araç rotalamaKapasiteli araç rotalama (CVRP)
Dinamik elektrik tarifeleri altında enerji duyarlı üretim çizelgelemeİş atölyesi / paralel makine çizelgeleme
Sağlık operasyonları ve kaynak optimizasyonu
Ameliyathane ve cerrahi ekip çizelgelemeKutu paketleme (bin packing)
Evde sağlık hizmeti rotalama ve vardiya planlama (HHCR)Zaman pencereli ve beceri eşleştirmeli araç rotalama

Statik formülasyondan arama yörüngesine

Formülasyon arama uzayını kurar; arama algoritması bu uzayda bir yörünge çizer. Haftanın kalan iki bölümü bu yörüngeyi çizen yöntemleri anlatır: