Jakie monotoniczne funkcje boolowskie są reprezentowane jako progi sum?

16

Przedstawię mój problem na przykładzie. Powiedzmy, że projektujesz egzamin, który składa się z pewnego zestawu niezależnych pytań (że kandydaci mogą mieć rację albo dobrze). Chcesz zdecydować o wyniku dla każdego pytania, z tą regułą, że kandydaci z całkowitą liczbą punktów powyżej pewnego progu przejdą, a pozostałe zawiodą.n

W rzeczywistości jesteś bardzo dokładny i przewidziałeś wszystkie możliwe wyników i dla każdego z nich zdecydowałeś, czy kandydat z takim występem powinien zaliczyć, czy nie. Mamy więc funkcję boolowską f : { 0 , 1 } n{ 0 , 1 }, która wskazuje, czy kandydat powinien zaliczyć, czy nie, w zależności od dokładnych odpowiedzi. Oczywiście ta funkcja powinna być monotonna : kiedy uzyskanie prawidłowego zestawu pytań powoduje, że zdajesz, uzyskanie odpowiedniego prawa superset musi również zdać.2nf:{0,1}n{0,1}

Czy możesz zdecydować o wynikach (dodatnich liczbach rzeczywistych), które należy podać w pytaniach, oraz o wartości progowej, aby twoja funkcja została dokładnie ujęta przez zasadę „kandydat przechodzi, jeśli suma wyników dla prawidłowych pytań jest powyżej progu” ? (Oczywiście próg można przyjąć jako 1 bez utraty ogólności, aż do pomnożenia wyników przez stałą.)f

Formalnie: czy istnieje charakterystyka monotonicznych funkcji boolowskich dla których istnieją w 1 , , w nR +, tak że dla wszystkich v { 0 , 1 } n , mamy f ( v ) = 1 iff i w i v if:{0,1}n{0,1}w1,,wnR+v{0,1}nf(v)=1iwivja1?

Nietrudno zauważyć, że nie wszystkie funkcje mogą być w ten sposób reprezentowane. Na przykład funkcja nie może: ponieważ ( 1 , 1 , 0 , 0 ) jest akceptowana, musimy mieć w 1 + w 21 , więc jedno z w 1 , w 2 musi być 1 / 2 , i podobnie w 3 ,(x1x2)(x3x4)(1,1,0,0)w1+w21w1,w21/2w3,w4. Teraz, jeśli jest np. i w 3 , mamy sprzeczność, ponieważ w 1 + w 31 ale ( 1 , 0 , 1 , 0 )w1w3w1+w31(1,0,1,0) jest odrzucone; pozostałe przypadki są analogiczne.

To wydaje mi się bardzo naturalnym problemem, więc moim głównym pytaniem jest wiedzieć, pod jaką nazwą to zbadano. Pytanie o „charakterystykę” jest oczywiście niejasne; moim pytaniem jest wiedzieć, czy klasa funkcji, które mogą być reprezentowane w ten sposób, ma nazwę, co wiadomo o złożoności testowania, czy należy do niej funkcja wejściowa (podana jako formuła, czy jako obwód) itp.

Oczywiście można pomyśleć o wielu odmianach tego tematu. Na przykład na prawdziwych egzaminach pytania nie są niezależne, ale DAG dotyczy pytań wskazujących na zależność, a kandydaci mogą odpowiedzieć na pytanie tylko wtedy, gdy zostaną spełnione wszystkie warunki wstępne. Warunek funkcji monotonicznych można by wówczas ograniczyć do wycen w które spełniają zależności, a pytaniem byłoby ustalić, czy można w ten sposób uchwycić funkcję wejściową, biorąc pod uwagę wejściowy DAG dla zmiennych. Można również pomyśleć o wariantach, w których wyniki są k -tu dla stałej k (sumowane punktowo i porównywane punktowo z wektorem progowym), które mogą uchwycić więcej funkcji niż k{0,1}nkkk=1. Alternatywnie możesz uchwycić bardziej ekspresyjne funkcje, które nie są logiczne, ale przechodzą do całkowicie uporządkowanej domeny, z różnymi progami, które powinny wskazywać Twoją pozycję w domenie. Wreszcie, nie jestem pewien, co by się stało, gdybyś dopuścił ujemne wyniki (abyś mógł zrezygnować z monotonicznego ograniczenia funkcji).

(Uwaga: zastanawiałem się nad tym, to runda selekcji Google Code Jam, w której kandydaci są wybierani, jeśli osiągną określony próg punktowy, a wyniki problemów są prawdopodobnie starannie opracowane, aby odzwierciedlić, które zestawy problemów uznaje się za wystarczające do wybrania Code Jam ma strukturę zależności od pytań, z niektórymi pytaniami „dużego wkładu”, których nie można rozwiązać, chyba że najpierw rozwiązałeś „małe wejście”).

a3nm
źródło
Są to tak zwane funkcje progowe (chociaż ten termin jest czasem definiowany bardziej restrykcyjnie). Nie wiem, czy istnieje zasadniczo inna charakterystyka. Oczywistym warunkiem niezbędnym jest, i M - 1 ( 0 ), są wypukłe (to jest wypukła kadłub f - 1 ( 1 ) przecinają się z { 0 , 1 } n jest zawarte w F - 1 ( 1 ) i podobnie dla 0). f1(1)f1(0)f1(1){0,1}nf1(1)
Emil Jeřábek wspiera Monikę
Właściwie teraz, kiedy o tym myślę: funkcja boolowska jest funkcją progową, jeżeli wypukłe kadłuby f - 1 ( 1 ) i f - 1 ( 0 ) są rozłączne. ff1(1)f1(0)
Emil Jeřábek wspiera Monikę
2
W rzeczywistości są to dokładniej funkcje progu dodatniego.
Kristoffer Arnsfelt Hansen
@KristofferArnsfeltHansen: Dokładnie dzięki! W rzeczywistości jest to wspomniane w funkcjach boolowskich: teorii, algorytmach i aplikacjach . Twierdzenie 9.16 mówi, że biorąc pod uwagę dodatni DNF, możemy w PTIME przetestować, czy jest to funkcja progowa, a jeśli tak, skonstruować wektor (który, jak sądzę, będzie dodatni według Twierdzenia 9.6). Czy coś jest znane na temat wariantów, które zasugerowałem, szczególnie ten z DAG dla zmiennych? Jeśli nie, możesz udzielić odpowiedzi, która tak mówi (i subskrybuje Twój komentarz), a ja go zaakceptuję. :)w
a3nm

Odpowiedzi:

2

W komentarzach wspomniano, że są to funkcje progu dodatniego.

Jeśli chodzi o inne cechy, uważam, że następujące są interesujące. Załóżmy, że mamy dodatnią funkcję progową ze zmniejszającymi się ciężarami : f ( v 1 , , v n ) = 1w1w2wn W szczególności zbiór danych wejściowych(v1,,vn),dla którychf(v )=1jest ideałem porządku sieci binarnej z2npunktami, czyli studiował w

f(v1,,vn)=1iwivi1.
(v1,,vn)f(v)=12n

Donald Knuth, „Sztuka programowania komputerowego”, ćwiczenie 109 z rozdziału 7.1.1.

fff(0,1,1)f(1,0,1)f(1,1,0)

Jednak nie wszystkie takie funkcje są dodatnimi funkcjami progowymi! To dlatego, że uporządkowałeś pytania egzaminacyjne od najważniejszych do najmniej ważnych, nie oznacza, że ​​twoja reguła zaliczenia / zaliczenia polega na dodaniu kilku punktów.

n

2),3),5,10,27,119,1113,
2),3),5,10,27,119,1173,
Bjørn Kjos-Hanssen
źródło
Dzięki! Pomyślałem, że zwrócę uwagę na to, że inne funkcje boolowskie wspomniane w odpowiedzi, te o całkowitej kolejności wpływu zmiennych, nazywane są „zwykłymi” funkcjami boolowskimi. Wspomniano o tym w sekwencji A132183, a takie funkcje są omówione w rozdziale 8 funkcji boolowskich: Teoria, algorytmy i aplikacje
a3nm