Вы можете сортировать В1 и В2 по норме.Если a = b1 + b2, то || a ||= || b1 + b2 ||<= || b1 ||+ || b2 ||, поэтому для любых a и b1 можно эффективно исключить все элементы B2, имеющие норму <|| a ||- || b1 ||.Также может быть какой-то способ использовать распределение норм в B1 и B2, чтобы решить, следует ли поменять роли двух наборов в этом.(Я не вижу ничего странного, как это сделать, но мне кажется, что что-то подобное должно иметь место, если распределения норм в B1 и B2 значительно отличаются.) </p>
Что касается параллелизмаКажется, что каждый цикл можно превратить в параллельные вычисления, поскольку все вычисления одной внутренней итерации не зависят от всех других итераций.
EDIT
Продолжение анализа: так как b2 = a - b1, мы также имеем || b2 ||<= || a ||+ || b1 ||.Таким образом, для любых данных a и b1 вы можете ограничить поиск в B2 теми элементами с нормами в диапазоне || a ||± || b1 ||.Это говорит о том, что для B1 вы должны выбрать набор с наименьшей средней нормой. </p>