Kısıt memnuniyet problemi (CSP) vs. karşılanabilirlik modülo teorisi (SMT); kısıt programlamada bir koda ile


30

Birisi bu çalışma alanlarının ilişkisinin ne olduğunu açıklamaya çalışmakta mı, belki de problem düzeyinde daha somut bir cevap vermekte mi? Hangi yaygın olarak kabul görmüş bazı formülasyonları varsayarak hangilerini içerir. Bunu doğru anladıysam, SAT’dan SMT’ye geçtiğinizde, temel olarak CSP alanına girersiniz; tersi durumda, eğer CSP'yi boolean'lerle sınırlandırırsanız, temel olarak SAT ve belki #SAT gibi birkaç ilgili problemden bahsediyorsunuzdur. Bunun çok açık olduğunu düşünüyorum (örneğin, Sonlu Model Teorisi ve Uygulamalarında Kolaitis ve Vardi'nin “Kısıt Memnuniyetine Mantıklı Bir Yaklaşım” bölümü).Grädel ve diğerleri tarafından), ancak benim için daha az net olan, kısıtlamaların ne zaman "modulo bir teori" olduğu ve ne zaman olmadıkları? SMT her zaman teorinin sadece eşitlik kullandığı anlamına mı gelir ve eşitsizlik kısıtlamaları her zaman daha geniş CSP alanındadır? Söyleyebileceğim kadarıyla, sık sık gevşek değişkenler ortaya çıkarabilirsiniz , bu nedenle [eğer varsa] arasındaki fark açıktan daha azdır.

Nispeten yeni "Memnuniyet El Kitabı" (IOP Press 2009), hem SMT hem de CSP sorunlarını, geniş "tatmin edilebilirlik" şemsiyesi altında toplar, ancak yapılandırılma biçimine bakıldığında (çeşitli yazarlar tarafından yazılmış bölümler), bunu anlamama gerçekten yardımcı olmaz. .

Eğer kısıtlama söz ederken terminoloji daha az kafa karıştırıcı alır umut ediyorum programlama Hala umut minimize içerir (terim '' matematiksel programlama '' benzerliğiyle) / bir amaç fonksiyonunun maksimize. Kısıtlama programlamasına ilişkin Wikipedia makalesi, ne kadar belirsizdir ki, bu çerçevelemenin gerçekleşmesi durumunda gerçekten söyleyemem. Frühwirth ve Abdennadher'in (p. 56) Kısıtlayıcı Programlamanın Temelleri'nden elde edebileceğim şey, bir “kısıtlayıcı çözücünün” genellikle basitleştirme vs. pratikte önemli olmakla birlikte, sadece bir tatmin edilebilirlik kontrolünden fazlasını sağlamasıdır.

Her ne kadar bu gerçek bir CS-teori araştırma sorusu olmasa da, https://cs.stackexchange.com/questions/14946/distinguish- adresinde gördüklerimi verilen lisans CS.SE sitesinde buna iyi cevaplar beklemiyorum. karar prosedürü-vs-smt-çözücü-vs-teorem-prover-vs-kısıtlama-sol (çok fazla kelime içeren ama gerçek bir cevap olarak düşüneceğim şeyi değil, ne yazık ki).


bu ASP'ye ekleyin. SMT / ASP nispeten yeni gelişmeler. önceden ayrı alanlar harmanlanıyor. bkz. örneğin, Hybrid Automated Reasoning Tools: Kara Kutu'dan Clear-Box Integration / Balduccini'ye, Lierler'e zorlu bir anket olarak bakın.
saat

Yanıtlar:


47

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.

x1x2¯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 maddelerx1x2¯x3x4x1x2¯x3x4¯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 edebilirx5x=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 (distinctsembol), 2010 yılına kadar SMT çözücüler yalnızca distinctnaif bir algoritma ile uygulandı . Bu aşamada, standart CP çoğaltıcısından gelen eşleştirme tekniği, all-differentbü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 clasprekabetç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.


Bu çok yararlı cevap için Tks.
Xavier Labouze 21:15

2
Not: FOCS / STOC topluluğunda daha dar bir CSP tanımı kullanılır. Bu CSP'ler, CSP (L) biçimindedir, "sabit bir sınırlama ilişkileri kümesi L kullanılarak ifade edilebilecek tüm CSP örnekleri". Tamamen farklı olan kısıtlama bu çerçeveye uymuyor ya da ağaç benzeri bir yapıya sahip olan problemlere uymuyor.
András Salamon,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.