SAT kodlamaları için tarif kitabı?


17

SAT çözümleyicileri büyük örnekleri çözmede giderek daha verimli hale geliyor ve çeşitli bağlamlarda arka uç olarak kullanılıyor. Belirli bir alandaki bir problemi çözmek için bunları her kullanmak istediğinde, sadece doğru çözümlere sahip olmakla kalmayıp aynı zamanda kısıtlamaları (gereksiz bile) bir forma koyan geçici bir kodlama bulması gerekir. çözücülerin buluşsal yöntemlerine daha hızlı bir çözüm bulmada yardımcı olur.

Bu tür kodlamaların çoğu bana çok yaygın gibi geliyor, örneğin: Sonlu bir düğüm kümesinin ağaç veya DAG olarak bağlandığını veya bir listenin sıralandığını iddia etmek ...

Optimize edilmiş çözümlerle ilgili genel sorunlar için ortak kodlamaların bir depo / tarif kitabı var mı?


1. Bu soru çok faydalı görünüyor, ancak potansiyel olarak aşırı yüklenme. Tek bir alana odaklanmanız daha iyi bir soru olabilir (evet, bu her alan için bir tane olmak üzere birden fazla soru içerebilir - ancak ne yapmadan önce bize biraz araştırma yaptığınızdan emin olun).
DW

2. Ayrıca, hangi araştırmayı yaptınız? STP, Alloy ve Minion gibi SAT kullanıcı arabirimlerine baktınız mı? Baktığınız mı cs.stackexchange.com/q/12087/755 , cs.stackexchange.com/q/13188/755 , cs.stackexchange.com/a/6522/755 , cs.stackexchange.com/a/12153/ 755 ? satvers çözücü veya satisfiability etiketli sorular ?
DW

Evet, soru biraz geniş olabilir. @DW bazıları doğrudan alakalı bağlantılar için teşekkürler. Belirli bir problemi çözmekle veya daha verimli kodlamalar için genel yöntemlerle ilgilenmediğimi söylemeliydim; kullandığım "en iyi uygulamalar" ifadesi muhtemelen yanıltıcıdır, ben de düzenleyeceğim. Tarif kitabıyla ilgileniyorum =)
Bordaigorl


Ayrıca bkz. İlgili soru cs.stackexchange.com/q/12087
András Salamon

Yanıtlar:


9

Birkaç yıl önce Magnus Björk'ün " Başarılı SAT Kodlama Teknikleri " ile alakalı bir anket yazısı okudum .

Öz:

Bu makalede, iyi bilinen bir dizi SAT uzmanıyla yapılan görüşmeleri analiz ederek SAT kodlamaları için iyi uygulamalar tanımlanmaktadır. Amaç, uzmanlar arasında fikir birliği olup olmadığını analiz ederek farklı kodlama stratejilerine olan güveni belirlemenin yanı sıra SAT kullanıcılarına gizli bilgi getirmektir.

Kodlama tekniklerinin SAT çözücünün verimliliği üzerinde genellikle dramatik bir etkiye sahip olduğu, iyi bir kodlama bulmak için genellikle çok çaba harcadığına ve bir kaplamanın boyutunun bir çözüm bulmanın sertliği ile çok gevşek ilişkili olduğuna dair fikir birliği vardır. . Mülakat yapılanların aynı fikirde olmadığı konular arasında, SAT problemlerine aritmetik eklenmesi ve problemlerin cümle veya devre olarak formüle edilip edilmeyeceği yer almaktadır.

Makale, sayıları temsil etmenin farklı yolları ve artımlılığın nasıl kullanılacağı gibi farklı durumlarda iyi olan bir dizi stratejiyi açıklamaktadır.


4

İlk önce Memnuniyet El Kitabını [1] kontrol etmek her zaman iyi bir fikirdir (sanırım serbestçe mevcut değil, üzgünüm). Burada Bölüm 2 "CNF Kodlamaları" olarak adlandırılmaktadır. En azından kitap, yazım sırasında en son teknoloji hakkında literatür referansları sağlar ve aramanızı aralarında genişletebilirsiniz.

Buna ek olarak, burada ve burada SAT önişleme konusunda iki yeni slayt var. Slaytlar, ön işleme tekniklerine ve ayrıca referanslara kısa bir genel bakış sunar. Fikir, sorunu "elle" modellemeye çalışmak yerine, onu en kolay şekilde modellemeniz, git tuşuna basmanız ve bir yazılımın size verimli bir kodlama vermesidir.


[1] Biere, Armin, Marijn Heule ve Hans van Maaren, ed. Elde edilebilirlik el kitabı. Vol. 185. IOS Press, 2009.


3

tam olarak doğrudan bir cevap değil, giderek daha yakından ilişkili bir başka açı: bunların bazıları SMT, Satisfiability Modulo Theories olarak bilinen nispeten yeni bir araştırma alanı ile kaplıdır . temel fikir, problem kodlamalarını (örneğin tamsayı aritmetiği, grafikler vb.) SAT çözücüsünde birleştirmek, ancak daha gelişmiş çözüm algoritmaları oluşturmak için bu bağlantıdan gelen ekstra bilgileri kullanmak / kullanmaktır. heres bir anket. belirtildiği gibi, geçici bir kodlama mekanizmasını standart SAT çözücülerle birleştirmekten çok daha verimli olabilirler.

  • Memnuniyet Modulo Teorileri: Bir Meze / Leonardo de Moura ve Nikolaj Bjørner

    Memnuniyetlilik Modulo Teorileri (SMT), mantıksal formüllerin bir veya daha fazla teori üzerinde tatmin edilebilirliğini kontrol etmekle ilgilidir. Sorun, bilgisayar bilimindeki en temel alanlardan bazılarının birleşiminden kaynaklanmaktadır. Boole memnuniyetini problemi, dışbükey optimizasyon ve sembolik sistemleri manipüle eden çalışma alanları gibi alanlarla birleştirir. Ayrıca, geçen yüzyıldaki sembolik mantığın en üretken sorunlarından da yararlanır: karar problemi, mantıksal teorilerin bütünlüğü ve eksikliği ve son olarak karmaşıklık teorisi. Her alan için özel amaçlı algoritmaları modüler olarak birleştirme sorunu, bir kombinasyon bağlamında özellikle iyi çalışan yeni algoritmalar bulmak kadar derin ve ilgi çekicidir. SMT ayrıca yazılım mühendisliğinde çok faydalı bir role sahiptir. Modern yazılım, donanım analizi ve model tabanlı araçlar giderek daha karmaşık ve çok yönlü yazılım sistemleridir. Bununla birlikte, özlerinde her zaman, durumları ve aralarındaki dönüşümleri tanımlamak için sembolik mantık kullanan bir bileşendir. En gelişmiş atılımları dikkate alan iyi ayarlanmış bir SMT çözücü, genellikle özel geçici çözümleyicilerin ötesinde büyüklük derecelerini ölçeklendirir.


Bu çok iyi bir nokta. Ancak bir SMT çözücü kullandığınızda bile, aramanın başarılı "tariflerden" yararlanabilecek tamamen SAT tabanlı bir kısmı vardır ...
Bordaigorl

"aramanın tamamen SAT tabanlı bir kısmı" olduğunu söylemek tamamen doğru değildir, çünkü (belirtildiği gibi / benim anlayışım gibi) sezgisel taramalarında üretilen örneklerin özel bir bilinen / inşa edilmiş yapısını bir "vanilya" çözücüsünün kullanamayacağı şekilde kullanır. "tanımak". diğer bir deyişle, (yani kombinasyon ), bileşen parçalara (yani kodlayıcı artı çözücü) veya sadece başka bir standart kodlama sistemine "indirgenebilir / ayrılabilir" değildir.
vzn

Anlıyorum. Bunun hakkında daha fazla bilgi vereceğim teşekkürler!
Bordaigorl

Elbette. ayrıca cevap kümesi programlamanın biraz benzer olduğuna dikkat edin.
vzn
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.