Sorunumu bir örnekle tanıtacağım. Bir belirli kümesi oluşan bir sınav, tasarlıyorsunuz Say (adaylar ya doğru ya da yanlış alabilirsiniz) bağımsız sorular. Soruların her birine verilecek bir puana karar vermek istersiniz, kural, toplam puanı belirli bir eşiğin üzerinde olan adayların geçeceği ve diğerlerinin başarısız olacağıdır.
Aslında, bu konuda çok titizsiniz ve olası tüm sonuçları tahmin ettiniz ve her biri için bu performansa sahip bir adayın başarılı olup olmayacağına karar verdiniz . Dolayısıyla , adayın tam cevaplarına bağlı olarak başarılı mı yoksa başarısız mı olduğunu gösteren bir Boolean fonksiyonuna sahipsiniz . Tabii ki bu fonksiyon monoton olmalıdır : bir dizi soru doğru olduğunda sizi geçmenizi sağlar, herhangi bir süper setin doğru olmasını da geçmelisiniz. f : { 0 , 1 } n → { 0 , 1 }
Sorulara verilecek puanlara (pozitif gerçek sayılar) ve bir eşik üzerine karar verebilir misiniz, böylece işleviniz "doğru soruların puanlarının toplamı eşiğin üstünde ise bir aday geçer" kuralı tarafından tam olarak yakalanır. ? (Tabii ki, eşik, genel bir kayıp olmadan, puanların bir sabitle çarpılmasına kadar 1 olarak alınabilir.)
Resmi olarak: monoton Boole işlevlerinin var öyle ki tüm için iff ?w 1 , … , w n ∈ R + v ∈ { 0 , 1 } n f ( v ) = 1 ∑ i w i v i ≥ 1
Tüm işlevlerin bu şekilde temsil edilemeyeceğini görmek o kadar zor değildir. Örneğin fonksiyon olamaz: olarak olarak kabul edilir Elimizdeki gerekir , bu yüzden, bir olmalıdır ve aynı şekilde . Şimdi, örneğin, ve , ancak reddedildiği için bir ; diğer vakalar benzerdir.( 1 , 1 , 0 , 0 ) a 1 + w 2 ≥ 1 ağırlık , 1 , w 2 ≥ 1 / 2 ağırlık 3 , ağırlık 4 ağırlık 1 ağırlık 3 ağırlık 1 + w 3 ≥ 1 ( 1 , 0 ,
Bu bana çok doğal bir sorun gibi geliyor, bu yüzden asıl sorum bunun hangi isim altında çalışıldığını bilmek. "Karakterizasyon" istemek elbette belirsizdir; sorum, bu şekilde temsil edilebilecek işlevler sınıfının bir adı olup olmadığını, bir giriş işlevinin kendisine ait olup olmadığını (formül olarak mı yoksa devre olarak mı verildiğini) sınamanın karmaşıklığı hakkında bilinenlerdir.
Tabii ki bu temadaki birçok varyasyon düşünülebilir. Örneğin, gerçek sınavlarda sorular bağımsız değildir, ancak bağımlılığı gösteren sorularda bir DAG vardır ve adaylar bir soruyu ancak tüm önkoşullar yanıtlanırsa yanıtlayabilir. Monoton işlevler üzerindeki koşul, daha sonra , bağımlılıkları karşılayan değerlemelerle sınırlandırılabilir ve soru, değişkenler üzerinde bir girdi DAG verildiğinde bir giriş fonksiyonunun yakalanıp yakalanamayacağını belirlemek olacaktır. Bir de puanları olan değişiklikleri olabilir k sabit, -tuples k daha fazla işlevleri yakalayabilir (bir eşik vektörüne özetlenebilir izlemeli ve kıyasla izlemeli), k . Alternatif olarak, Boolean olmayan ancak tamamen sıralı bir etki alanına giderek etki alanındaki konumunuzu göstermesi gereken farklı eşiklere sahip daha etkileyici işlevleri yakalamak isteyebilirsiniz. Son olarak, negatif puanlara izin verdiğinizde ne olacağından emin değilim (böylece işlevlerle ilgili monoton kısıtlamayı düşürebilirsiniz).
(Not: Beni bu konuda merak ettiren şey, adayların belirli bir puan eşiğine ulaşmaları durumunda seçildiği ve sorunların puanlarının, seçilmesi için hangi sorun kümelerinin seçilebileceğini düşündüğü yansıtacak şekilde dikkatle tasarlandığı Google Code Jam seçim turudur. Code Jam, sorular üzerinde bağımlılık yapısına sahiptir ve ilk önce "küçük girdi" yi çözmedikçe çözülemeyen bazı "büyük girdi" soruları vardır.)