Я пытаюсь реализовать алгоритм рюкзака, чтобы играть в фэнтези-баскетбол. Я написал традиционный решатель рюкзака 0/1, который берет пары значений и весов (цен) для каждого игрока и выводит наиболее ценную комбинацию игроков, чья совокупная зарплата меньше, чем потолок зарплат.
Тем не менее, фэнтезийное соревнование требует, чтобы вы составляли свой состав из 8 игроков на основе позиций, которые играют игроки, т. е. ваш состав должен состоять из 1 разыгрывающего, 1 атакующего защитника, 1 легкого нападающего, 1 сильного форварда, атакующий защитник или разыгрывающий, 1 легкий нападающий или мощный форвард и 1 игрок любой позиции.
Я ищу совета о том, как я могу расширить традиционный алгоритм рюкзака динамического программирования, чтобы включить эти ограничения.