У меня есть список из 1000 предметов, у каждого предмета есть своя категория, цвет и оценка (чем выше, тем лучше), я хочу
- выберите 16 предметов из всех, чтобы сформировать матрицу 4х4 (предпочтительнее выбрать предмет с более высоким баллом)
- 2 предмета из той же категории (и цвета) не должны находиться рядом или друг над другом
- Каждый предмет в каждой строке относится к разной категории
pd.DataFrame({'item': np.arange(1000), 'category': np.random.randint(0,10, size=1000),
'color':np.random.randint(0,20, size=1000), 'score': np.random.random(size=1000)})
Я пытался сгенерировать 4х4 жестоко, заполняя ячейки одну за другой после проверки категории и цвета. Интересно, есть ли более разумный способ сделать это, или какой-то алгоритм может помочь с этим.
Чтобы сделать вещи более сложными, есть цвета, которые не сочетаются друг с другом, и есть категории, которые не сочетаются вместе ... Буду признателен, если есть какие-либо предложения о том, как решить эту проблему!
Спасибо