SAT, CP, SMT, (çoğu) ASP'nin tümü aynı kombinasyon kombinasyon optimizasyon problemleriyle ilgilenir. Ancak bu problemlere farklı açılardan ve farklı araç kutuları ile geliyorlar. Bu farklılıklar büyük ölçüde, her bir yaklaşımın arama alanının keşfi ile ilgili bilgileri nasıl yapılandırdığı ile ilgilidir. Çalışma benzetmemim, SAT'nin makine kodudur, diğerleri ise daha üst düzey dillerdir.
x1∨x2¯¯¯¯¯∨x3{(x1,0),(x2,1),(x3,0)}x1x3x2yasaklı kısmi ödevler, sadece başlangıçta verilenler değil. Bu nedenle yan tümce yapısı doğrudan doğrudan işlem yapmak için çok büyüktür: tipik olarak değişken sayısında en azından üstel bir boyuta sahiptir ve sonsuz olabilir. Bu nedenle, yan tümce yapıya sınırlı bir alanla yaklaşılmalıdır. SAT / CP / SMT / ASP, temel bir cümle yapısının az ya da çok üstü kapalı bir temsilini sürdürür ve günceller. Bu mümkündür, çünkü eğer bir kısmi ödevin madde yapısında olduğu biliniyorsa, bu diğer birçok maddenin de mevcut olduğu anlamına gelir. Örneğin, yukarıdaki SAT cümlesi ayrıca onu alt küme içeren herhangi bir kısmi atamayı da yasaklar, bu nedenle gibi maddelerx1∨x2¯¯¯¯¯∨x3∨x4x1∨x2¯¯¯¯¯∨x3∨x4¯¯¯¯¯∨x5
Cümle yapısının bir yaklaşımı, çözüm kümesini daraltmak ve bu kümenin boş olup olmadığını belirlemeye yardımcı olmak için tutulur. Arama sırasında bazı kısmi ödevler herhangi bir çözümde bulunmadığı ortaya çıkabilir (örnekteki her bir kısıtlamayı ayrı ayrı karşılasalar bile). Bunlar, ("Mr GNU") Stallman ve Sussman tarafından tanıtılan bir terim olan nogoods olarak bilinir.. Bu nedenle bir nogood cümlesi yan tümce yapısındadır ve yan tümce yankısına, çözüm arayışından budanabilen birçok yan tümcesinin kompakt bir gösterimi olarak dahil edilebilir. Nüfuz maddelerini yaklaşık yan tümce yapısına eklemek, tüm çözümleri korur, ancak bu çözümlere daha iyi yaklaşır. Dolayısıyla, yaklaşık cümle yapısı genellikle arama ilerledikçe değişmektedir. Ayrıca, sorunun kombinasyonel optimizasyon yaklaşımlarından birinde modellenmesi, yan tümce yapısını etkilemektedir, genellikle oldukça belirgindir. Örneğin, teklif değişkenleri gibi aralıkları temsil edebilirx≤5x=5. Bu nedenle, tek bir genel fıkra yapısı yoktur, ancak fıkra yapısının tekillerinin (değişmezlerin) neyi temsil ettiğine bağlı olarak, her temsil seçimiyle ilişkili olan bir tane vardır.
Kısıt programlama (CP) geleneksel olarak bir zamanlama, zaman çizelgesi oluşturma ve birleştirme problemlerine odaklanan bir AI disiplinidir ve bu nedenle iki değerden daha fazlasını alabilen (ancak genellikle sadece çok sayıda) değişkenler için merkezi bir role sahiptir. CP, etkili araştırmanın altını çizdi ve geleneksel uygulamalar tarafından motive edildi, all-different
(enjektivite) kısıtlamaya merkezi bir rol verdi , ancak aynı zamanda diğer birçok kısıtlama için verimli yayıcılar geliştirdi. CP'nin resmi tanımları, en azından Montanari'nin 1974 tarihli kağıt baskı ağlarından beri, öncülleri daha da geriye gidiyor. Tarihin bu ağırlığı, CP'nin son on yılda ham performanstaki diğer yaklaşımların gerisinde kalmasına katkıda bulunmuş olabilir. CP klasik olarak yan tümce yapısının tamamlayıcısının, değişkenler için bir dizi aktif alan aracılığıyla yaklaşımını korur. Amaç, değişken alanlardaki değerleri elimine etmektir, yan tümce yapısını değişkenlere aday değerleri atayarak ve gerektiğinde geri izlemeyi deneyerek incelemektir.
Doğrulanabilirlik modulo teorileri (SMT) doğrulama topluluğundan çıktı. Bir SMT çözücüsündeki her teori, potansiyel olarak sınırsız sayıda SAT yan tümcesinin örtülü bir temsilini oluşturur. SMT ile kullanılan teoriler ve CP'de kullanılan kısıtlamalar farklı tarihsel uygulamalarını yansıtmaktadır. SMT'nin ele aldığı teorilerin çoğu, tamsayı indeksli diziler, gerçek kapalı alanlar, doğrusal düzenler ve benzerleriyle ilgili; bunlar programların statik analizinden (bilgisayar destekli doğrulamada) veya matematiksel kanıtları resmileştirirken (otomatik muhakeme ile) ortaya çıkar. Buna karşılık, zaman çizelgesi oluşturma ve zamanlamada enjekte etme kısıtlaması merkezidir ve standart SMTLIB dili 2003'te kurulmasından bu yana bir enjekte etme kısıtı getirmiş olmasına rağmen (distinct
sembol), 2010 yılına kadar SMT çözücüler yalnızca distinct
naif bir algoritma ile uygulandı . Bu aşamada, standart CP çoğaltıcısından gelen eşleştirme tekniği, all-different
büyük değişken listelerine uygulandığında büyük etkiye; bkz. SMT'de Banker ve Marić, SMT 2010 tarafından farklı bir sınırlayıcı çözücü . SMT, fıkra yapısının yaklaşımı olarak SAT örneğini kullanır, nogood cetvellerini uygun şekilde teorilerden çıkarır. Güzel bir genel bakış Memnuniyet Modulo Teorileri:
De Moura ve Bjørner tarafından Giriş ve Uygulamalar , doi: 10.1145 / 1995376.1995394.
Cevap seti programlaması (ASP) mantık programlamasından çıktı. Kararlı bir model bulma konusunda daha genel bir problemi çözme konusundaki odak noktası nedeniyle ve aynı zamanda varoluşsal nicelemenin de evrensel olmasına izin verdiği için, ASP yıllarca CP veya SMT ile rekabet etmiyordu.
Resmen, SAT, Boole alanlarındaki CSP'dir, ancak SAT'da yan tümce öğrenmeye odaklanma, çatışma tespitinde iyi sezgisel tarama ve geri izlemenin hızlı yolları, geleneksel CSP'nin propagandacılara odaklanma, tutarlılık oluşturma ve değişken düzen için sezgisel taramadan oldukça farklıdır. SAT genellikle son derece verimlidir, ancak birçok sorun için önce sorunu bir SAT örneği olarak ifade etmek için büyük çaba gerekir. CP gibi daha yüksek seviyeli bir paradigma kullanmak, sorunun daha doğal bir ifadesine izin verebilir ve daha sonra CP örneği elle SAT'a çevrilebilir veya bir araç çeviriyle ilgilenebilir. SAT'ın somun ve civatalarına genel bir bakış Pipatsrisawat ve Darwiche, doi: 10.1007 / s10817-009-9156-3'ten Modern Clause-Learning Tatmin Edilebilirlik Çözücüleri Hakkında .
Şimdi genellemelerden günümüz özelliklerine geçelim.
Son on yılda, CP’deki bazı insanlar tembel madde üretmeye (LCG) odaklanmaya başladı. Bu, esasen CP aktif üreticilerini, oldukça katı aktif alan adlarından soyutlama yerine, daha esnek SMT benzeri teknikler kullanarak bir araya getirmenin yoludur. Bu yararlıdır, çünkü birçok problem türünü etkin bir şekilde temsil etmek ve çözmek için yayınlanan uzun süredir yayınlanmış CP üretici kitlesi vardır. (Tabii ki, benzer bir etki SMT çözücülerine yeni teorileri uygulama çabasıyla da uyumlu olacaktır.) LCG, genellikle SMT ile rekabet edebilecek bir performansa sahiptir ve bazı problemler için üstün olabilir. Hızlı bir genel bakış Stuckey'nin CPAIOR 2010 makalesi Tembel Cümle Üretimi: SAT ve CP (ve MIP?) Çözme gücünü birleştiriyor , doi: 10.1007 / 978-3-642-13520-0_3. Aynı zamanda bir CP-merkezli bir vizyon çiziyor Garcia de la Banda, Stuckey Van Hentenryck ve Wallace, pozisyon kağıdı okumaya değer Optimizasyon Teknolojisi Geleceği : doi 10,1007 / s10601-013-9149-z .
Söyleyebileceğim kadarıyla, son zamanlarda yapılan SMT araştırmalarının odağının çoğu, resmi yöntemlerde ve resmi matematikteki uygulamalara yöneldi. Bir örnek, SMT çözücülerinin, Isabelle / HOL gibi ispat sistemlerinin içinde , SMT kanıt izlerinde çıkarım kurallarını yansıtmak için Isabelle / HOL taktikleri oluşturarak yeniden oluşturduğu kanıtları yeniden oluşturmak ; ITP 2010'da Böhmer ve Weber tarafından Z3 için Hızlı LCF Tarzı Prova Yeniden Yapılanma bölümüne bakınız .
En iyi ASP çözücüleri son birkaç yılda CP, SMT ve yalnızca SAT çözücülerle rekabet edebilmek için geliştirilmiştir. Sadece clasp
rekabetçi olma gibi çözücülere izin veren uygulama detaylarına aşina olduğumu biliyorum, bu yüzden bunları SMT ve CP ile gerçekten karşılaştıramazsınız, ancak tokalaşmanın açıkça nogoods öğrenmeye odaklandığını duyuruyor.
Bu formaliteler arasındaki geleneksel sınırların ötesine geçmek, daha soyut problem temsillerinden daha düşük seviyeli ve etkili bir şekilde uygulanabilir formalitelere çevrilmesidir. En üst ASP ve CP çözücülerinin birçoğu, şimdi açıkça bir SAT örneğine çevirir ve bu da daha sonra bir kullanıma hazır SAT çözücü kullanılarak çözülür. CP olarak, Savile Row kısıtlama modelleme yardımcı kullanımları derleyici tasarım teknikleri gibi CP çözücüler giriş için uygun daha düşük bir seviyede formalitelere 'orta düzey dil Öz ifade sorunları çevirmek Minion veya MiniZinc . Savile Row, başlangıçta düşük seviyeli formalizm olarak bir CP temsiliyle çalıştı, ancak SAT 1.6'yı hedef olarak tanıttı. Üstelik daha da yüksek seviyeli dil Özüşimdi Conjure aracı ile otomatik olarak Essence'e çevrilebilir . Aynı zamanda, Lingeling gibi düşük seviyeli SAT-sadece çözücüler , her yıl, en son alternatif öğrenme ve işlem içi aşamaları; kısa özet SAT ve ASP Yarışmalarında Yenilikler'i AAAI 2015'te Heule ve Schaub tarafından.
Bu nedenle programlama dillerinin tarihçesi ile olan analoji uygun gözükmektedir. SAT, cümle yapısındaki yan tümcelerin keşif modelini hedefleyen bir tür "makine kodu" haline geliyor. Soyut paradigmalar, üst düzey bilgisayar dilleri gibi, kendine özgü metodolojileri ve uygulamaları ile ele almada daha iyi hale geliyor. Son olarak, bu farklı katmanlar arasındaki bağlantıların gittikçe yoğunlaşması, derleyici optimizasyon ekosistemine benzemeye başlıyor.