Я пытаюсь оптимизировать группировку / выбор участников пробной версии с ограниченным пространством, и у меня возникают некоторые проблемы. У меня есть кадры данных pandas, готовые к оптимизации, и я могу без проблем запустить линейную оптимизацию, за исключением одного ограничения, которое мне нужно добавить. Я пытаюсь использовать двоичные файлы для выбора (но я не привязан к этому по какой-либо причине, поэтому, если другой метод решит эту проблему, я могу переключиться) из большого списка. Мне нужно минимизировать общее время испытаний для выбора в следующем раунде испытаний, но некоторые субъекты уже провели несколько испытаний из-за характера эксперимента. Я хотел бы выбрать лучшую комбинацию предметов на основе минимизации времени, но разрешить некоторым предметам быть в списке несколько раз для оптимизации (так что мне не нужно вручную удалять их заранее). Например:
Name Trial ID Time (ms) Selected?
Mary Smith A 11001 33 1
John Doe A 11002 24 0
James Smith B 11003 52 0
Stacey Doe A 11004 21 1
John Doe B 11002 19 1
Есть ли способ разрешить 2 записи Джона Доу для оптимизации, но ограничить вывод только одним его выбором? Спасибо за ваше время!
df.sort_values(['Name', 'Time (ms)']).drop_duplicates('Name')
, и у вас останется самое короткое время для каждого человека. - person ALollz   schedule 26.06.2018pulp
: Используя pandas, я бы идентифицировал каждую повторяющуюся тему (Джо Доу). Для каждой такой темы вам нужно добавить одну (двоичную) переменную 0/1. Наконец, добавьте SOS (специально упорядоченный набор) этих переменных, по одному ограничению на повторяющуюся тему.y_JD1 + y_JD2 <= 1
, чтобы на выходе было не больше одной темы. - person Ram Narasimhan   schedule 02.07.2018