Минимизировать количество единиц в двоичном векторе с помощью xor
Пусть даны векторы x1
... xn
и вектор y
, все одинаковой длины, содержащие булевы значения. Известно что они линейно независимы, если рассмотреть их как векторы над полем вычетов по модулю 2. Иначе говоря, xor (поэлементный) любого непустого подмножества этих векторов не равен нолю. Требуется выбрать такое подмножество векторов x1'
... xm'
из множества x1
... xn
, что вектор z = x1' xor x2' xor ... xor xm' xor y
будет содержать наименьшее возможное количество единиц. Существует ли быстрый алгоритм поиска такого подмножества?