В реальной жизни у меня есть несколько корзин, наборов и предметов.Цель состоит в том, чтобы заполнить каждую обязательную ячейку ровно одним элементом правильного типа (T1 - T3) и заполнить дополнительные ячейки любым количеством элементов правильного типа (T4 - T5).Наборы могут включать предметы любого типа.Поэтому наборы могут включать элементы одного и того же обязательного типа, что является проблемой.Я пытаюсь смоделировать так, чтобы обход графика соответствовал выбору наборов и предметов.Но (как на первом изображении) происходит сбой всякий раз, когда набор включает два обязательных элемента одного типа.
Наборы заставляют выбрать ровно один из обязательных элементов того же типа, наряду с другими элементами.

Прямое решение состоит в том, чтобы взять каждый набор, включающий обязательные элементы одного типа, и создать новый набор для каждого из этих конфликтующих элементов,включая все остальные элементы без конфликта.Однако количество наборов увеличивается экспоненциально с увеличением числа конфликтов.

Любые предложения по моделированию, мысли или комментарии приветствуются!