Suponha que recebamos um conjunto de n variáveis booleanas x_1, ..., x_n e um conjunto de m funções y_1 ... y_m onde cada y_i é o XOR de um subconjunto (dado) dessas variáveis. O objetivo é calcular o número mínimo de operações XOR que você precisa executar para calcular todas essas funções y_1 ... y_m.
Observe que o resultado de uma operação XOR, digamos x_1 XOR x_2, pode ser usado no cálculo de vários y_j, mas é contado como um. Além disso, observe que pode ser útil computar o XOR de uma coleção muito maior de x_i (maior que qualquer função y_i, por exemplo, computar o XOR de todos os x_i) para computar o y_i com mais eficiência,
Equivalentemente, suponha que temos uma matriz binária A e um vetor X e o objetivo é calcular o vetor Y de modo que AX = Y, onde todas as operações são executadas em GF (2), usando o número mínimo de operações.
Mesmo quando cada linha de A tem exatamente k um (digamos, k = 3) é interessante. Alguém sabe sobre a complexidade (dureza de aproximação) desta pergunta?
Mohammad Salavatiopur
fonte