Существует задача, в которой необходимо найти глобально оптимальное решение. Дело в том, что выбор, сделанный в каждой из подзадач, не согласуется с другими, поэтому жадный алгоритм категорически не подходит. Да, звучит слишком абстрактно, но: какие есть математические способы решить поставленную проблему?
Абстрактно - гуглится по словосочетанию "методы оптимизации"
Чуть конкретнее - задаете критерии оптимальности и методы оценки для того или оного параметра. Также можно задать вес этого параметра. Формализуете это на любом удобном языке иметодом научного тыка находите оптимальное сочетание этих параметров.
В общем случае - полный перебор.
Без полного перебора глобальный оптимум можно и не найти. Один из быстрых алгоритмов - генетический: сначала делается случайный выбор, потом на каждом шаге отбираются несколько лучших вариантов (группа А) и в следующее поколение переходят три группы: группа А, дети группы А (скрещиваются случайные "гены" пары из группы А), а также мутации из группы А (несколько случайных "генов" меняются).