Я мало знаю о проблемах оптимизации, так что, надеюсь, это будет для меня дидактическим:
rotors = [1, 2, 3, 4...]
widgets = ['a', 'b', 'c', 'd' ...]
assert len(rotors) == len(widgets)
part_values = [
(1, 'a', 34),
(1, 'b', 26),
(1, 'c', 11),
(1, 'd', 8),
(2, 'a', 5),
(2, 'b', 17),
....
]
Учитывая фиксированное количество виджетов и фиксированное количество роторов, как вы можете получить серию пар виджет-ротор, которая максимизирует общее значение, при котором каждый виджет и ротор могут использоваться только один раз?