Alt küme toplamı problemi - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Problemin Tanımı
  • 2 Alt Küme Toplamı Probleminin Karmaşıklığı
    • 2.1 Alt Küme Toplamı Problemi NP Sınıfında Bulunur
    • 2.2 3SAT Problemi, Alt Küme Toplamı Problemine Polinom Zamanda İndirgenebilir
  • 3 Ayrıca bakınız
  • 4 Kaynakça

Alt küme toplamı problemi

  • العربية
  • Deutsch
  • English
  • Español
  • فارسی
  • Français
  • עברית
  • 日本語
  • 한국어
  • Polski
  • Português
  • Русский
  • Simple English
  • Српски / srpski
  • Українська
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
Bu madde tümüyle ya da çoğunluğuyla tek kaynağa dayanıyor. Lütfen başka kaynaklar ekleyerek bu maddeyi geliştirmeye yardım ediniz. (Ağustos 2020)

Bilgisayar bilimlerinde, alt küme toplamı problemi karmaşıklık kuramında ve kriptografide önemli yeri olan bir problemdir.

Karmaşıklık kuramında, problemin tanımı ve açıklaması basit ve anlaşılır olduğundan NP-Complete sınıfında yer alan problemleri anlayabilmek için iyi bir örnek oluşturmaktadır.

Kriptografide ise, alt küme toplamı probleminin önemli bir yer tutmasının sebebi, şifrelenmiş bir metnin anahtarını bulabilmeyi sağlamasıdır.


Problemin Tanımı

[değiştir | kaynağı değiştir]

Alt küme toplamı sınıfı, alt kümeleri arasında elemanları toplamı t olan bir küme bulunan tüm S kümelerini içerir. Matematiksel olarak şöyle ifade edilir:

SUBSET-SUM = { < S, t > | S = { x 1 {\displaystyle x_{1}} {\displaystyle x_{1}}, ... , x k {\displaystyle x_{k}} {\displaystyle x_{k}}} ve bazı Y = { y 1 {\displaystyle y_{1}} {\displaystyle y_{1}}, ..., y l {\displaystyle y_{l}} {\displaystyle y_{l}}} ⊆ S için ∑ i = 1 l y i = t {\displaystyle \sum _{i=1}^{l}y_{i}=t} {\displaystyle \sum _{i=1}^{l}y_{i}=t} }

Bu tanımda geçen S ve Y kümeleri multisetlerdir, bu kümelerde eleman tekrarına izin verilir.

Basit bir örnek vermek gerekirse: < {1,2,3,4}, 5 > ∈ SUBSET-SUM

Alt Küme Toplamı Probleminin Karmaşıklığı

[değiştir | kaynağı değiştir]

Alt küme toplamı problemi NP-Complete sınıfında yer almaktadır. Bir dilin NP-Complete sınıfına ait olduğunu göstermek için;

  1. Dilin, NP sınıfında yer aldığını,
  2. NP sınıfında yer alan diğer tüm dillerin polinom zamanda o dile indirgenebilir olduğunu

göstermek gerekmektedir.

Alt Küme Toplamı Problemi NP Sınıfında Bulunur

[değiştir | kaynağı değiştir]

Alt küme toplamı probleminin [NP] sınıfında yer aldığını, S U B S E T − S U M ∈ N P {\displaystyle SUBSET-SUM\in NP} {\displaystyle SUBSET-SUM\in NP}, göstermek için bir doğrulayıcı (verifier) kullanılabilir. Sertifika olarak S'in bir alt kümesini kullanacak olan bu doğrulayıcı aşağıdaki gibi yazılabilir:

V= "< < S,t >,c > girdisinde:

  1. Sertifikada bulunan elemanların toplamının t’ye eşit olup olmadığını test et
  2. Sertifikada bulunan elemanların S kümesinin elemanı olup olmadığını test et
  3. Eğer ikisi de tamamsa, kabul et; değilse reddet."

3SAT Problemi, Alt Küme Toplamı Problemine Polinom Zamanda İndirgenebilir

[değiştir | kaynağı değiştir]

NP sınıfındaki tüm dillerin polinom zamanda alt küme toplamı diline indirgenebilir olduğunu göstermek için NP-Complete olan 3SAT dili kullanılabilir.

Bu problemin alt küme toplamı problemine polinom zamanda indirgenebilir, 3 S A T ≤ p S U B S E T − S U M {\displaystyle 3SAT\leq _{p}SUBSET-SUM} {\displaystyle 3SAT\leq _{p}SUBSET-SUM}, olduğu bir tablo kullanılarak gösterilebilir.[1]

Φ; x 1 {\displaystyle x_{1}} {\displaystyle x_{1}}, ..., x l {\displaystyle x_{l}} {\displaystyle x_{l}} değişkenli, c 1 {\displaystyle c_{1}} {\displaystyle c_{1}}, ..., c k {\displaystyle c_{k}} {\displaystyle c_{k}} cümleli (clause) Boolean bir formül olsun.

Kullanılacak olan tabloda kolonlar, Φ formülünün değişkenlerini ve cümlelerini; satırlar ise, S kümesinin elemanlarının ve t toplamının ondalık düzende gösterimlerini ifade eder.

Tablodaki çift çizginin üzerinde bulunan y 1 {\displaystyle y_{1}} {\displaystyle y_{1}}, z 1 {\displaystyle z_{1}} {\displaystyle z_{1}}, ..., y l {\displaystyle y_{l}} {\displaystyle y_{l}}, z l {\displaystyle z_{l}} {\displaystyle z_{l}} ve g 1 {\displaystyle g_{1}} {\displaystyle g_{1}}, h 1 {\displaystyle h_{1}} {\displaystyle h_{1}}, ..., g k {\displaystyle g_{k}} {\displaystyle g_{k}}, h k {\displaystyle h_{k}} {\displaystyle h_{k}} sayıları S kümesinin elemanlarıdır, çizginin alt kısmında kalan kısımda ise t sayısı yer alır. Kullanılan bu tabloda, Φ formülünde bulunan her bir x i {\displaystyle x_{i}} {\displaystyle x_{i}} değişkeni için y i {\displaystyle y_{i}} {\displaystyle y_{i}} ve z i {\displaystyle z_{i}} {\displaystyle z_{i}} şeklinde 2 sayı yer alır. Bu sayıların ondalık gösterimi iki bölümden oluşur. Tablonun sol tarafı, değişkenin indisine uygun y ve z satırına 1 rakamı, geri kalan kısımlarına ise tabloda görüldüğü gibi l-i tane 0 yerleştirilerek oluşturulur. Tablonun sağ tarafında ise, Φ'de bulunan her bir cümle için bir hane bulunur ve şu şekilde doldurulur:

Eğer x i {\displaystyle x_{i}} {\displaystyle x_{i}} ∈ c j {\displaystyle c_{j}} {\displaystyle c_{j}} ise y i {\displaystyle y_{i}} {\displaystyle y_{i}} sayısının j’inci hanesine 1 konur.
Eğer x ¯ {\displaystyle {\bar {x}}\,} {\displaystyle {\bar {x}}\,}i ∈ c j {\displaystyle c_{j}} {\displaystyle c_{j}} ise z i {\displaystyle z_{i}} {\displaystyle z_{i}} sayısının j’inci hanesine 1 konur.

Değerinin 1 olduğu belirtilmemiş hanelere ise 0 rakamı yerleştirilir.

Yukarıda bahsedilenlere ek olarak S kümesi, Φ'de bulunan her bir cümle için g ve h sayılarını barındırır. Bu iki sayı birbirine eşittir. Bu sayılar, c j {\displaystyle c_{j}} {\displaystyle c_{j}} cümlesine uygun düşen haneye 1 rakamı, geri kalan k-j haneye ise 0 yerleştirilerek oluşturulur.

Aşağıdaki tablo Φ = ( x 1 {\displaystyle x_{1}} {\displaystyle x_{1}} ∨ {\displaystyle \lor } {\displaystyle \lor } x ¯ {\displaystyle {\bar {x}}\,} {\displaystyle {\bar {x}}\,}2 ∨ {\displaystyle \lor } {\displaystyle \lor } x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}) ∧ {\displaystyle \land } {\displaystyle \land } ( x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} ∨ {\displaystyle \lor } {\displaystyle \lor } x 3 {\displaystyle x_{3}} {\displaystyle x_{3}} ∨ {\displaystyle \lor } {\displaystyle \lor } ... ) ∧ {\displaystyle \land } {\displaystyle \land } ( x ¯ {\displaystyle {\bar {x}}\,} {\displaystyle {\bar {x}}\,}3 ∨ {\displaystyle \lor } {\displaystyle \lor } ... ∨ {\displaystyle \lor } {\displaystyle \lor } ... )için doldurulmuştur.

358 × 455px

Φ'nin doğrulanabilir (satisfiable) olduğu varsayılırsa;

Bu varsayıma göre S'in bir alt kümesi oluşturulabilir. Bu alt kümeyi oluşturmak için şöyle bir yol izlenebilir:

Φ’yi doğrulayan x i {\displaystyle x_{i}} {\displaystyle x_{i}} değişkeninin değeri TRUE ise altkümeye y i {\displaystyle y_{i}} {\displaystyle y_{i}} sayısı
Φ’yi doğrulayan x i {\displaystyle x_{i}} {\displaystyle x_{i}} değişkeninin değeri FALSE ise altkümeye z i {\displaystyle z_{i}} {\displaystyle z_{i}} sayısı

seçilir.

Oluşturulan bu alt kümenin elemanları toplandığında, tablonun t satırındaki ilk l hanede 1 rakamı elde edilir, çünkü alt kümeye ya y i {\displaystyle y_{i}} {\displaystyle y_{i}} ya da z i {\displaystyle z_{i}} {\displaystyle z_{i}} sayısı seçilmiştir. Ayrıca son k hanede ise toplamın en fazla 3, en az 1 olduğu görülür. Bunun sebebi, Φ formülü doğrulanabilir olduğundan her cümlede en fazla 3, en az 1 değişkenin TRUE değerini almış olmasıdır. Toplamın 3 olmadığı durumlarda ise uygun indisli g ve/veya h sayıları kullanılarak toplamın 3'e ulaşması sağlanabilir.

S kümesinin elemanları toplamı t olan bir alt kümesi olduğu varsayılırsa;

Tablodan da görüldüğü gibi, altküme elemanlarının hanelerinde ya 1 ya da 0 rakamı bulunmaktadır, ayrıca her kolonda en fazla 5 adet 1 rakamı bulunduğundan toplama işlemi eldesiz gerçekleşir. İlk l kolonda toplamın 1 olması, ya y i {\displaystyle y_{i}} {\displaystyle y_{i}} sayısının ya da z i {\displaystyle z_{i}} {\displaystyle z_{i}} sayısının alt küme elemanları arasında yer almakta olduğunu gösterir. İkisi birden alt kümede bulunamaz, çünkü o durumda toplamları 2 olacağından varsayıma aykırı olur. Bu varsayımdan yola çıkılarak, Φ formülünün doğrulanabilirliği şu şekilde sağlanabilir:

Eğer alt kümede y i {\displaystyle y_{i}} {\displaystyle y_{i}} sayısı bulunuyorsa x i {\displaystyle x_{i}} {\displaystyle x_{i}} değişkenine TRUE değeri,
Eğer alt kümede z i {\displaystyle z_{i}} {\displaystyle z_{i}} sayısı bulunuyorsa x i {\displaystyle x_{i}} {\displaystyle x_{i}} değişkenine FALSE değeri

atanır.

Bu atamayla Φ formülünün doğrulanabilirliği sağlanabilir, çünkü son satırdaki t sayısının son k hanesinde 3 rakamı bulunmaktadır. Son k kolonda toplamın 3 olmasını sağlayacak en az 1 tane değer, alt kümeye seçilmiş olan y i {\displaystyle y_{i}} {\displaystyle y_{i}} veya z i {\displaystyle z_{i}} {\displaystyle z_{i}} sayısından gelmelidir, çünkü alt kümeye seçilebilecek olan g ve h sayılarından en fazla 2 toplamı elde edilebilir.

Bu durumda;

eğer bu 1 rakamı, y i {\displaystyle y_{i}} {\displaystyle y_{i}} sayısından geliyorsa x i {\displaystyle x_{i}} {\displaystyle x_{i}} ∈ c j {\displaystyle c_{j}} {\displaystyle c_{j}} ve x i {\displaystyle x_{i}} {\displaystyle x_{i}} = TRUE
eğer bu 1 rakamı, z i {\displaystyle z_{i}} {\displaystyle z_{i}} sayısından geliyorsa x ¯ {\displaystyle {\bar {x}}\,} {\displaystyle {\bar {x}}\,}i ∈ c j {\displaystyle c_{j}} {\displaystyle c_{j}} ve x i {\displaystyle x_{i}} {\displaystyle x_{i}} = FALSE

olduğundan dolayı Φ formülünde bulunan her c j {\displaystyle c_{j}} {\displaystyle c_{j}} cümlesi doğrulanabilir, dolayısıyla Φ formülü doğrulanabilir olduğu gösterilebilir.

Son olarak da yukarıda bahsedilen tablonun kullanımıyla yapılan bu indirgemenin polinom zamanda gerçekleştirildiğini göstermek için tablonun boyutlarına bakılabilir. Tablonun boyutları kabaca ( k + l ) 2 {\displaystyle (k+l)^{2}} {\displaystyle (k+l)^{2}} olarak ifade edilebilir, dolayısıyla bu indirgeme için harcanan zamanın O( n 2 {\displaystyle n^{2}} {\displaystyle n^{2}}) olduğu söylenebilir.

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  • Cook-Levin teoremi
  • 3SAT-KLIK indirgemesi
  • Bağımsız küme problemi
  • Hamilton yolu problemi
  • P ile NP Arasındaki İlişki
  • Karmaşıklık

Kaynakça

[değiştir | kaynağı değiştir]
  1. ^ Michael Sipser: "Introduction to the Theory of Computation" Course Technology Press Second Edition, 2005.
"https://tr.wikipedia.org/w/index.php?title=Alt_küme_toplamı_problemi&oldid=36410396" sayfasından alınmıştır
Kategoriler:
  • Karmaşıklık teorisi
  • Dinamik programlama
Gizli kategoriler:
  • Ek kaynaklar gereken maddeler Ağustos 2020
  • Ek kaynaklar gereken tüm maddeler
  • Sayfa en son 07.17, 18 Kasım 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Alt küme toplamı problemi
Konu ekle