Let Boolean değişkenleri için bir vektör olabilir. Let iki ikili devreler olarak . Aşağıdaki durumlarda benzer olduğunu :
üstel olarak küçüktür, x \ {0,1 \} ^ n'den rasgele bir şekilde çizildiğinde (diğer bir deyişle, neredeyse aynı işlevselliğe sahiptir); ve,
, grafik düzenleme mesafesinde küçük bir miktarda farklılık gösterir (düzenleme mesafeleri devrenin boyutundan çok daha küçüktür, örneğin, veya bazı küçük sabit), yani C'nin neredeyse tüm kapıları ve telleri eşleşir D'de karşılık gelen bir kapı ve tel , sadece birkaç kapı eklendi / silindi / değiştirildi.
Benim sorun: bir devre verilen am , ve bir devre olup olmadığını bilmek isteyen benzer özdeş ama (yani vardır burada , öyle ki ).
Herkes bu sorunu çözmek için bir algoritma önerebilir?
Eğer yardımı olacaksa, biz devrelerine dikkat kısıtlayabilirsiniz verilen devre daha küçüktür yani (biz bir devre olup olmadığını bilmek istiyorum böyle küçüktür , benzeyen ve vardır öyle ki ).
Eğer yardımcı olursa, ek olarak iyi bilinen test örnekleri verildiğini varsayabilirsiniz ( , için tüm tek devreler için, ve daha da dikkat kısıtlayabilir şekilde tüm .
Bu pratik bir uygulamadan kaynaklanır, bu nedenle bu sorunu çözemezseniz, herhangi bir varyantı veya ilginç özel durumu çözmekten çekinmeyin. Örneğin, herhangi bir parametreyi veya eşiği sizin için uygun olan herhangi bir şekilde somutlaştırmaktan çekinmeyin. Devrelerin çok büyük olmadığını (polinom boyutlu veya başka bir şey) olduğunu varsayabilirsiniz. Grafik düzenleme mesafesini, uygulamanın neredeyse eşleşmesi ölçüsüyle değiştirmekten çekinmeyin. Ayrıca, uygulamada SAT çözücüler genellikle pratikte ortaya çıkan yapılandırılmış devreler üzerinde şaşırtıcı bir şekilde etkilidir, bu nedenle bir SAT çözücüyü altyordam / kehanet olarak çağırmak muhtemelen iyidir (en azından, türetilmiş bir SAT örneği gibi bir şeye çağırıyorsanız gibi bir devreden ).
Alternatif olarak, herhangi bir algoritmadan yoksun, ben de var olma sorusuyla ilgilenirim: "ortalama" bir devre , tüm kriterleri karşılayan bazı var olma olasılığı nedir? (Bu olasılığın çok düşük olduğunu umuyorum, ancak bu durumda hiçbir fikrim yok.)
Pratik uygulama, bir devresinin kötü niyetli bir arka kapı / gizli Paskalya yumurtası içerip içermediğini test etmektir . Böyle bir şeyin nasıl yerleştirilebileceği hipotezi şu şekildedir. İstenen işlevselliği hesaplayan ve gizli bir arka kapısı olmayan bir "altın" devre ile başlıyoruz . Daha sonra düşman , gizli arka kapıyı tanıtmak için de küçük bir değişiklik yapar ve değiştirilmiş bir devre elde eder . Arka kapının amacı tarafından hesaplanan işlevi bir şekilde değiştirmektir. Eğer bir düşman muhtemelen tutmaya çalışır, böylece değiştirme makul bir rasgele testi ile çok küçük tespit edilebilir değildirçok küçük. Benzer şekilde, den çok fazla yerde farklıysa , bu devrenin rastgele muayenesi ile fark edilebilir, bu nedenle bir rakip muhtemelen değişiklik sayısını en aza indirmeye çalışacaktır. (Ve, bir test takımı olabilir biz "altın" devresi ne olduğunu bilmek, böylece arzu edilen özelliklerin örnekleri temsil eden çiftleri , bunu karşılamaktadır olan herkes için .) Sonuçta, biz devre verilir değil "altın" devresi ( ) ve biz olmadığını bilmek istiyorum bazı değiştirilmiş bir sürümü olabilir, bu tür gizli bir arka kapı tanıtmak için değişiklik yapıldı.