Tam Sayılı Programlama

From Systems analysis Wiki
Jump to navigation Jump to search

Tam sayılı programlama (TSP; İng. integer programming, IP) — bazı veya tüm değişkenlerin yalnızca tam sayı değerleri alması gereken problemleri inceleyen matematiksel optimizasyon dalıdır[1].

En çok çalışılmış özel durum, amaç fonksiyonu ve kısıtların doğrusal olduğu tam sayılı doğrusal programlamadır (TSDP; İng. integer linear programming, ILP). Değişkenlerin herhangi bir gerçel değer alabileceği doğrusal programlamanın aksine, tam sayılılık koşulu TSP problemlerini çözmeyi önemli ölçüde güçleştirmektedir[2].

Tam sayılı programlama; değişkenlerin doğası gereği ayrık olduğu (örneğin üretilen birim sayısı veya çalışan sayısı gibi) ekonomi, lojistik, üretim planlaması ve diğer alanlarda geniş uygulama alanı bulmaktadır[3].

Tanım ve Terminoloji

Tam sayılı doğrusal programlamanın genel problemi şu şekilde yazılabilir:

x vektörünü bul; bu vektör:

cTx'yi maksimize (veya minimize) eder

kısıtlar altında:

Axb
x0
xn (x vektörünün tüm bileşenleri tam sayıdır)

burada x — değişkenler vektörü, c ve b — vektörler, A ise katsayılar matrisidir[4].

Değişkenlere yönelik gereksinimlere bağlı olarak şu problem türleri ayırt edilir:

  • Tamamen tam sayılı programlama: tüm değişkenler tam sayı olmak zorundadır.
  • Karma tam sayılı programlama (İng. mixed-integer programming, MIP): yalnızca değişkenlerin bir kısmı tam sayı olmak zorundadır.
  • İkili (0-1) programlama: değişkenler yalnızca 0 veya 1 değerini alır; bu durum "evet/hayır" türündeki mantıksal kararların modellenmesine olanak tanır.

Temel Özellikler ve Karmaşıklık

Hesaplama Karmaşıklığı

Tam sayılı doğrusal programlama problemi genel durumda NP-zordur[5]. Bu, herhangi bir TSP problemi için polinom zamanda kesin optimal çözüm bulabilen bilinen bir algoritmanın mevcut olmadığı anlamına gelir. Karmaşıklık, problemin kombinatoryal doğasından kaynaklanmaktadır; zira olası tam sayılı çözümlerin sayısı, değişken sayısındaki artışla birlikte üstel olarak büyüyebilir.

Doğrusal Programlama ile İlişki (DP-Gevşemesi)

Herhangi bir TSP problemi için, değişkenlerin tam sayılılık koşulunun kaldırıldığı doğrusal gevşemesi — yani bir doğrusal programlama (DP) problemi — oluşturulabilir. DP-gevşemesinin çözümünün iki önemli özelliği vardır:

  1. Çok daha hızlı (polinom zamanda) bulunabilir.
  2. DP-gevşemesinin optimal amaç fonksiyonu değeri, orijinal tam sayılı problemin optimal değeri için bir sınır (maksimizasyon problemi için üst sınır, minimizasyon için alt sınır) sağlar[2].

Ancak DP-gevşemesinin kesirli çözümünün en yakın tam sayılara yuvarlanması, kural olarak, tam sayılı problemin optimal hatta uygun bir çözümüne ulaşmayı sağlamaz[1].

Tam Ünimodülerlik Özelliği

TSDP problemlerinin, DP-gevşemeleri kadar kolay çözülebilen önemli bir sınıfı vardır. Bunlar, kısıt matrisinin A tamamen ünimodüler olduğu problemlerdir (yani herhangi bir kare alt matrisinin determinantı 0, +1 veya −1'e eşittir). Eğer A matrisi tamamen ünimodüler ve b vektörü tam sayıysa, DP-gevşemesinin uygun çözüm çokyüzlüsünün tüm köşe noktaları otomatik olarak tam sayılı olacaktır. Dolayısıyla simpleks yöntemi ile bulunan çözüm tam sayılı olacaktır[4]. Bu tür problemlere örnek olarak ulaştırma problemi ve atama problemi gösterilebilir.

Çözüm Yöntemleri

Tam ünimodülerlik özelliğine sahip olmayan genel TSP problemlerinin çözümü için örtük sıralama fikrine dayalı kesin yöntemler geliştirilmiştir.

  • Dal ve sınır yöntemi (İng. Branch and Bound) — uygun çözümler kümesinin sistematik olarak alt kümelere bölünmesine (dallanma) ve optimal çözümü kesinlikle içermeyen alt kümelerin elenmesine dayanan temel kesin yöntemdir. Alt kümelerin umut vaat edip etmediğini değerlendirmek için DP-gevşemesi kullanılır[6].
  • Kesme düzlemleri yöntemi (Gomory yöntemi; İng. Cutting Plane Method) — probleme sıralı olarak yeni doğrusal kısıtlar ("kesimler") ekleyen yinelemeli bir yaklaşımdır. Bu kesimler, DP-gevşemesinin kesirli çözümlerini "keserken" uygun tam sayılı çözümlerin hiçbirini etkilemez ve DP-gevşemesinin uygun çözüm bölgesini kademeli olarak tam sayılı çözümlerin konveks zarfına yaklaştırır[6].

Modern çözücüler genellikle her iki yaklaşımın avantajlarını birleştiren dal ve kesme yöntemi (İng. Branch and Cut) gibi hibrit algoritmalar kullanır.

Örnekler ve Uygulama Alanları

Tam sayılı programlama, kombinatoryal optimizasyonun pek çok klasik problemini modellemeye olanak tanır.

  • Sırt çantası problemi: toplam ağırlık kısıtını aşmadan maksimum toplam değere sahip eşya setini seçmenin amaçlandığı klasik bir 0-1 programlama problemidir.
  • Gezgin satıcı problemi: belirli bir şehirler kümesinden geçen en kısa rotanın bulunması problemidir. Değişkenlerin grafın kenarlarının nihai rotaya dahil edilip edilmediğini temsil ettiği bir tam sayılı programlama problemi olarak formüle edilebilir.

Esnekliği sayesinde TSP, yöneylem araştırmasının en çok talep edilen araçlarından biri olup şu alanlarda uygulama bulmaktadır:

  • Lojistik ve tedarik zinciri yönetimi: taşıma rotalarının optimizasyonu, depo yerleşimi, stok yönetimi.
  • Üretim planlaması: üretim çizelgeleri oluşturma, kaynak dağılımı, ekipman yüklemesi.
  • Finans ve ekonomi: yatırım portföyü oluşturma, sermaye bütçelemesi.
  • Telekomünikasyon ve enerji: iletişim ağı tasarımı, enerji ünitelerinin çalışma planlaması.

Ayrıca bakınız

  • Doğrusal programlama
  • Dal ve sınır yöntemi

Notlar

[1] [2] [3] [4] [5] [6] </references>

  1. 1.0 1.1 1.2 "Целочисленное программирование". Википедия. [1]
  2. 2.0 2.1 2.2 Wolsey, Laurence A. (2020). Integer Programming (2nd ed.). John Wiley & Sons.
  3. 3.0 3.1 Писарук Н.Н. (2010). Модели и методы смешанного целочисленного программирования. Минск: БГУ.
  4. 4.0 4.1 4.2 Conforti, M., Cornuéjols, G., & Zambelli, G. (2014). Integer Programming. Springer.
  5. 5.0 5.1 Karp, Richard M. (1972). "Reducibility among Combinatorial Problems". In: Complexity of Computer Computations. Springer.
  6. 6.0 6.1 6.2 "Integer programming". Wikipedia. [2]