Сведем к более наглядной задаче. Сначала центрируем строки,вычитая из каждой строки среднее арифметическое всех 50 строк,ответ задачи от этого не изменится.Получаем 50 векторов
10000мерных но естественно лежащих в каком-то подпространстве размерности до 50(кстати косинусы углов между ними-это коэффициенты корреляции этой пары строк).Сумма их =0.Посчитаем D - сумму квадратов длин всех векторов.Для каждого разбиения 50 векторов на 4 группы М1,М2,М3,М4
откуда ясна задача-первое слагаемое максимально приблизить к D/4, а у суммы векторов каждого подмножества сохранить свойство всего множества -сумма=0,или мала.То есть просто набирать минимизируя сумму,пока сумма квадратов длин набранных не дойдет до D/4,потом 2ю группу,итд.Получится уже неплохое DM~0,2D, и при организации полного перебора разбиения,у которых сумма квадратов длин хотя бы одной группы меньше DM,смотреть не нужно.То есть разово задача решаема,но если она в цикле...