Открываем школьный учебник по программированию...
(Бондарев В.М., Рублинецкий В.И., Качко Е.Г. "Основы программирования" / Харьков: Фолио: Ростов н/Д: Феникс, 1997)
Раздел "Теория расписаний"
Задача Джонсона
Имеем 2 станка. Обработка i-й детали производится путём исполнения операции длительности ai на первом станке, а затем (возможно, после перерыва) исполнения операции длительности bi на втором станке.
Решение. Теорема. Оптимальный порядок строится по следующему правилу: i-ая операция предшествует i+1-й, если
max(si, si+1) < max(s'i, s'i+1), где
si = sum(ak, k=1...i) - sum(bk, k=1...i-1)
si+1 = sum(ak, k=1...i+1) - sum(bk, k=1...i)
s'i = sum(ak, k=1...i-1) + ai+1 - sum(bk, k=1...i-1)
s'i+1 = sum(ak, k=1...i+1) - sum(bk, k=1...i-1) - bi+1
уж доказательства писать не буду - тут много страниц
Может вышеприведённое поможет или направление поисков определит.