Quais funções booleanas monótonas são representáveis ​​como limites em somas?


16

Vou apresentar meu problema com um exemplo. Digamos que você esteja projetando um exame, que consiste em um certo conjunto de perguntas independentes (que os candidatos podem acertar ou errar). Você quer decidir sobre a pontuação a ser dada a cada uma das perguntas, com a regra de que os candidatos com pontuação total acima de um determinado limite serão aprovados e os demais falharão.n

Na verdade, você é muito profundo sobre isso, e você imaginou todas as possíveis resultados, e decidiu para cada um deles se um candidato com este desempenho deve passar ou não. Portanto, você tem uma função booleana que indica se o candidato deve ser aprovado ou reprovado, dependendo de suas respostas exatas. É claro que essa função deve ser monótona : quando acertar um conjunto de perguntas faz você passar, acertar qualquer superconjunto deve fazer você passar também. f : { 0 , 1 } n{ 0 , 1 }2nf:{0 0,1 1}n{0 0,1 1}

Você pode decidir sobre as pontuações (números reais positivos) a serem dadas às perguntas e em um limite, para que sua função seja exatamente capturada pela regra "um candidato passa se a soma das pontuações das perguntas corretas estiver acima do limite" ? (É claro que o limite pode ser considerado 1 sem perda de generalidade, até multiplicar as pontuações por uma constante.)f

Formalmente: Existe uma caracterização das funções booleanas monótonas para as quais existem tal que para todos , temos iff ?w 1 , , w nR + v { 0 , 1 } n f ( v ) = 1 i w i v i1f:{0 0,1 1}n{0 0,1 1}W1 1,...,WnR+v{0 0,1 1}nf(v)=1 1EuWEuvEu1 1

Não é tão difícil perceber que nem todas as funções podem ser representadas. Por exemplo, a função não pode: como é aceito, devemos ter , portanto, um de deve ser e da mesma forma para . Agora, se for, por exemplo, e , temos uma contradição porque mas é rejeitado; os outros casos são análogos.( 1 , 1 , 0 , 0 ) w 1 + w 21 w 1 , w 21 / 2 W 3 , W 4 W 1 w 3 w 1 + w 31 ( 1 , 0 ,(x1 1x2)(x3x4)(1 1,1 1,0 0,0 0)W1 1+W21 1W1 1,W21 1/2W3,W4W1 1W3W1 1+W31 1(1 1,0 0,1 1,0 0)

Isso me parece um problema muito natural, então minha pergunta principal é saber sob qual nome isso foi estudado. Pedir uma "caracterização" é vago, é claro; minha pergunta é saber se a classe de funções que pode ser representada dessa maneira tem um nome, o que se sabe sobre a complexidade de testar se uma função de entrada pertence a ela (dada como uma fórmula ou como um circuito), etc.

É claro que se pode pensar em muitas variações sobre esse tema. Por exemplo, em exames reais, as perguntas não são independentes, mas há um DAG nas perguntas indicando a dependência, e os candidatos só podem responder a uma pergunta se todos os pré-requisitos tiverem sido respondidos. A condição nas funções monótonas poderia então ser restrita a avaliações em que satisfazem as dependências, e a questão seria determinar se uma função de entrada pode ser capturada, assim, dado um DAG de entrada nas variáveis. Poder-se-ia pensar em variantes nas quais as pontuações são -tuplos para fixo (somadas em pontos e comparadas em termos de pontos a um vetor limiar), que podem capturar mais funções que k k k = 1{0,1}nkkk=1. Como alternativa, você pode querer capturar funções mais expressivas que não são booleanas, mas vão para um domínio totalmente ordenado, com limites diferentes que devem indicar sua posição no domínio. Por fim, não tenho certeza do que aconteceria se você permitisse pontuações negativas (para que você pudesse eliminar a restrição monótona sobre as funções).

(Observação: o que me fez pensar nisso é a rodada de seleção do Google Code Jam, em que os candidatos são selecionados se atingirem um determinado limite de pontuação e as pontuações de problemas são presumivelmente cuidadosamente projetadas para refletir quais conjuntos de problemas são considerados suficientes para a seleção. O Code Jam possui uma estrutura de dependência nas perguntas, com algumas questões de "entrada grande" que não podem ser resolvidas, a menos que você tenha resolvido a "entrada pequena" primeiro.


Elas são conhecidas como funções de limite (embora esse termo às vezes seja definido de forma mais restritiva). Não sei se existe uma caracterização essencialmente diferente. Uma condição necessária óbvia é que e são convexos (isto é, o casco convexo de cruzado com está incluído em e da mesma forma para 0). f - 1 ( 0 ) f - 1 ( 1 ) { 0 , 1 } n f - 1 ( 1 )f1(1)f1(0)f1(1){0,1}nf1(1)
Emil Jeřábek apoia Monica

Na verdade, agora que penso sobre isso: uma função booleana é uma função limiar se os cascos convexos de e forem disjuntos. f - 1 ( 1 ) f - 1 ( 0 )ff1(1)f-1 1(0 0)
Emil Jeřábek apoia Monica

2
Na verdade, essas são mais precisamente as funções de limite positivo.
Kristoffer Arnsfelt Hansen

@KristofferArnsfeltHansen: Exatamente, obrigado! De fato, isso é mencionado em Funções Booleanas: Teoria, Algoritmos e Aplicações . O teorema 9.16 diz que, dado um DNF positivo, podemos, em PTIME, testar se é uma função de limiar e, se sim, construir um vetor (que, em minha opinião, será positivo pelo teorema 9.6). Existe algo conhecido sobre as variantes sugeridas, especialmente a que possui um DAG nas variáveis? Caso contrário, faça uma resposta que diga isso (e inclua o seu comentário), e eu aceito. :)W
a3nm

Respostas:


2

Foi mencionado nos comentários que essas são as funções de limite positivo.

Quanto a outras caracterizações, achei o seguinte interessante. Suponha que tenhamos uma função de limite positivo com pesos decrescentes : Em seguida, em particular o conjunto de entradas para o qual é uma ordem ideal da rede de majoração binária com pontos, estudada em f ( v 1 , , v n ) = 1W1 1W2...Wn(v1,...,vn)f(v )=12n

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

Donald Knuth, "A Arte da Programação por Computador", Exercício 109 da Seção 7.1.1.

Em termos informais, é o tipo de função em que tornar os bits anteriores 1 a probabilidade de ser 1: portanto, por exemplo, . Ou seja, "alguns bits importam mais" e, para remover casos isomórficos redundantes, assumimos que os bits anteriores importam mais.fff(0 0,1 1,1 1)f(1 1,0 0,1 1)f(1 1,1 1,0 0)

No entanto, nem todas essas funções são funções limiares positivas! Ou seja, apenas porque você ordenou as perguntas do exame do mais importante ao menos não significa que sua regra de aprovação / reprovação se baseia apenas na soma de algumas pontuações.

De fato, o número de funções de limite positivo (com pesos decrescentes) em variáveis ​​é dado pela sequência (oeis.org sequência A000617 ), enquanto o número de esses ideais de ordem são (oeis.org sequência A132183 )n

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

Obrigado! Apenas pensei em salientar que o outro tipo de funções booleanas mencionadas na sua resposta, aquelas com uma ordem total sobre a influência das variáveis, são chamadas de funções booleanas "regulares". Isto é mencionado em A132183 sequência, e tais funções são estudadas no Capítulo 8 de booleanas Funções: Teoria, Algoritmos e Aplicações
a3nm
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.