Венгерский алгоритм - что делать, если некоторые «рабочие места» недоступны для определенных работников? - PullRequest
0 голосов
/ 22 апреля 2019

В моей программе учащиеся (из групп / классов по нескольким годам) будут предлагать варианты действий с понедельника по пятницу.

Каждое мероприятие может относиться к одной или нескольким годичным группам. Каждый студент может сказать 4 варианта (1-й, 2-й, 3-й и 4-й) в день. Это сохраняется в каждом объекте студента как int [] [] studentCosts, которое будет studentCosts=new int[5][4].

Я закончил свой венгерский алгоритм, но мне нужно решить, как добавить выбор всех студентов в int [] [].

Я буду выполнять алгоритм отдельно для каждого дня, поэтому мне нужно будет объединить выбор всех студентов на этот конкретный день в int [] [] costForThatDay.

Моя проблема в том, как некоторым группам по годам могут быть предложены определенные виды деятельности, которые не предлагаются другим, например, в понедельник, Год 7 предлагается Виндсерфингу в понедельник , тогда как Годы 8 и 9 предлагаются Гольф в понедельник .

Если бы я выполнил алгоритм по дням, лучше ли было бы установить «затраты» на недоступные действия на что-то вроде Integer.MAX_VALUE, чтобы убедиться, что нет абсолютно никакого способа, которым он когда-либо будет выбран? Например. Сделайте стоимость игры в гольф для студентов 7-го курса и стоимость "Виндсерфинга" для студентов 8 и 9 классов Integer.MAX_VALUE

...