Quali funzioni booleane monotone sono rappresentabili come soglie sulle somme?


16

Presenterò il mio problema con un esempio. Supponiamo che tu stia progettando un esame, che consiste in una serie di domande indipendenti (che i candidati possono ottenere nel modo giusto o sbagliato). Volete decidere un punteggio da assegnare a ciascuna delle domande, con la regola che i candidati con punteggio totale superiore a una determinata soglia passeranno e gli altri falliranno.n

In effetti, sei molto accurato su questo, e hai immaginato tutti i possibili risultati e hai deciso per ciascuno di essi se un candidato con questa prestazione dovesse passare o fallire. Quindi hai una funzione booleana f : { 0 , 1 } n{ 0 , 1 } che indica se il candidato deve passare o fallire a seconda delle risposte esatte. Naturalmente questa funzione dovrebbe essere monotona : quando ottenere una serie di domande giuste ti fa passare, anche ottenere qualsiasi superset giusto deve farti passare.2nf:{0,1}n{0,1}

Puoi decidere sui punteggi (numeri reali positivi) da dare alle domande e su una soglia, in modo che la tua funzione sia catturata esattamente dalla regola "un candidato passa se la somma dei punteggi per le domande corrette è superiore alla soglia" ? (Naturalmente la soglia può essere considerata pari a 1 senza perdita di generalità, fino a moltiplicare i punteggi per una costante.)f

Formalmente: esiste una caratterizzazione delle funzioni booleane monotone per cui esiste w 1 , , w nR + tale che per tutte v { 0 , 1 } n , abbiamo f ( v ) = 1 iff i w i v i1f:{0,1}n{0,1}w1,...,wnR+v{0,1}nf(v)=1Σiowiovio1?

Non è così difficile vedere che non tutte le funzioni possono essere così rappresentate. Ad esempio la funzione non può: poiché ( 1 , 1 , 0 , 0 ) è accettato, dobbiamo avere w 1 + w 21 , quindi uno di w 1 , w 2 deve essere 1 / 2 , e così per w 3 ,(X1X2)(X3X4)(1,1,0,0)w1+w21w1,w21/2 . Ora, se è, ad esempio, w 1 e w 3 , abbiamo una contraddizione perché w 1 + w 31 ma ( 1 , 0 , 1 , 0 ) è respinto; gli altri casi sono analoghi.w3,w4w1w3w1+w31(1,0,1,0)

Questo mi sembra un problema molto naturale, quindi la mia domanda principale è sapere con quale nome è stato studiato. Chiedere una "caratterizzazione" è vago, ovviamente; la mia domanda è sapere se la classe di funzioni che può essere rappresentata in questo modo ha un nome, cosa si sa sulla complessità del test se una funzione di input appartiene ad essa (data come una formula o come un circuito), ecc.

Naturalmente si possono pensare a molte variazioni su questo tema. Ad esempio, negli esami reali, le domande non sono indipendenti, ma esiste un DAG che indica la dipendenza e che i candidati possono rispondere a una domanda solo se tutti i prerequisiti hanno ricevuto risposta. La condizione sulle funzioni monotone potrebbe quindi essere limitata alle valutazioni in che soddisfano le dipendenze e la domanda sarebbe determinare se una funzione di input può essere catturata in questo modo dato un DAG di input sulle variabili. Si potrebbe anche pensare alle varianti in cui i punteggi sono k -tuple per k fisso (sommato in senso puntuale e confrontato in senso puntuale con un vettore di soglia), che può catturare più funzioni di k{0,1}nKK . In alternativa, potresti voler acquisire funzioni più espressive che non sono booleane ma passano a un dominio totalmente ordinato, con soglie diverse che dovrebbero indicare la tua posizione nel dominio. Infine, non sono sicuro di cosa accadrebbe se si consentissero punteggi negativi (quindi è possibile eliminare la restrizione monotona relativa alle funzioni).K=1

(Nota: ciò che mi ha fatto riflettere su questo è il round di selezione di Google Code Jam, in cui i candidati vengono selezionati se raggiungono una determinata soglia di punteggio e i punteggi dei problemi sono presumibilmente attentamente progettati per riflettere quali serie di problemi sono ritenute sufficienti per essere selezionate Code Jam ha una struttura di dipendenza sulle domande, con alcune domande "input di grandi dimensioni" che non possono essere risolte se non si è risolto prima il "input piccolo").


Queste sono note come funzioni di soglia (sebbene questo termine sia talvolta definito in modo più restrittivo). Non so se esiste una caratterizzazione sostanzialmente diversa. Una condizione evidente ovvia è che e f - 1 ( 0 ) sono convessi (cioè lo scafo convesso di f - 1 ( 1 ) intersecato con { 0 , 1 } n è incluso in f - 1 ( 1 ) e similmente per 0). f-1(1)f-1(0)f-1(1){0,1}nf-1(1)
Emil Jeřábek sostiene Monica

In realtà, ora che ci penso: una funzione booleana è una funzione di soglia se gli scafi convessi di f - 1 ( 1 ) e f - 1 ( 0 ) sono disgiunti. ff-1(1)f-1(0)
Emil Jeřábek sostiene Monica

2
In realtà, queste sono più precisamente le funzioni di soglia positive.
Kristoffer Arnsfelt Hansen,

@KristofferArnsfeltHansen: Esatto, grazie! In realtà questo è menzionato in Funzioni booleane: Teoria, algoritmi e applicazioni . Il teorema 9.16 afferma che, dato un DNF positivo, in PTIME possiamo verificare se si tratta di una funzione di soglia e, in caso affermativo, costruire un vettore (che sarà quindi positivo, credo, dal Teorema 9.6). Si sa qualcosa sulle varianti che ho suggerito, in particolare quella con un DAG sulle variabili? In caso contrario, sei il benvenuto a fare una risposta che lo dica (e sottrae il tuo commento), e lo accetterò. :)w
a3nm,

Risposte:


2

Nei commenti è stato menzionato che queste sono le funzioni di soglia positive.

Per quanto riguarda le altre caratterizzazioni, ho trovato quanto segue interessante. Supponiamo di avere una funzione di soglia positiva con pesi decrescenti : f ( v 1 , , v n ) = 1w1w2...wn Quindi, in particolare, l'insieme di input(v1,,vn)per cuif(v )=1è un ordine ideale del reticolo di majorization binario con2npunti, che è studiato in

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

Donald Knuth, "L'arte della programmazione per computer", Esercizio 109 della Sezione 7.1.1.

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

Tuttavia, non tutte queste funzioni sono funzioni di soglia positive! Cioè, solo perché hai ordinato le domande dell'esame dal più importante al meno, non significa che la tua regola di superamento / fallimento si basi solo sull'aggiunta di alcuni punteggi.

n

2,3,5,10,27,119,1113,...
2,3,5,10,27,119,1173,...

Grazie! Ho solo pensato di sottolineare che l'altro tipo di funzioni booleane menzionate nella tua risposta, quelle con un ordine totale sull'influenza delle variabili, sono chiamate funzioni booleane "normali". Questo è menzionato nella sequenza A132183 e tali funzioni sono studiate nel Capitolo 8 delle Funzioni booleane: Teoria, algoritmi e applicazioni
a3nm,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.